I had a lot of impassioned thoughts while on a run today and decided to bang out this Twitter-thread-blog-post instead of letting them die a slow, silent death, alone in my brain, as they often do.
Hastily written post with the results of some free-form Saturday language research.
I took a deep dive into this question, and the answer is: kinda, mostly, yeah! CSS + HTML (duh) + user input is Turing complete. Is it possible to remove the user input part? Then I can re-title this post to be more, ahem, declarative.
Over the past year, I've been giving a talk called The Algorithms of CSS, originally created for CSSConf EU. This post covers the first part of my presentation, and breaks down how CSS fits into the categories of programming languages.
I've been researching design systems lately, and this is an evolving list of the resources I've found particularly resonant for my purposes. Have anything to add?
The code we humans write cannot be read by computers – it must be translated into machine code. Compilers and interpreters do that, and the browser is an interpreter!
This is the first in a potentially long series about browser mechanics, in my own words. Read on to learn about one of the first steps a browser takes: decoding bytes to Unicode code points.
Is CSS a programming language? What is a "CSS algorithm"? Read on to answer these questions, and to learn how CSS fits into the world of programming and computer science.
I'd seen dimmed properties before, and I always thought of them as the properties that are there by default, or ones I'm not supposed to manipulate. It turns out that's pretty much correct. The technical term for that is that dimmed properties are non-enumerable vs. enumerable properties.
If I told my 16-year-old, art student self I'd be writing a blog post about logarithms, I wouldn't have believed it. I've tried hard to avoid math for much of my life, yet here I am, not only learning about it but enjoying it! This post is an outline of what logarithms are and how they tie into computer science by way of Big O notation and binary search.
Stacks and queues are quite similar in that they are both linear and abstract data structures (meaning they describe the behavior of a different data structure, like a linked list or array). All the action in terms of adding and removing items happens at their ends, and their main difference is in which end that adding/removing happens.
Day 2 of Data Structures...let's talk about trees! What is a binary tree versus a binary search tree? Isn't the DOM a tree? All of this and more!
Linked lists are very similar to arrays in that they are a one-dimensional list of elements. Unlike arrays, however, in a linked list, you cannot just jump to index 4, you have to walk through the list, starting with the "head", or the first element in the list, and work your way through to the fourth element. They are very useful for lists where you need to add/remove elements, but not so useful if you need to search elements.
I’m studying up for a real-deal interview. There will be whiteboards. There will be coding questions much more involved than FizzBuzz. There will be algorithms and math and data structures and all of the things I have successfully avoided for much of my career. This is potentially a […]
I'm usually not one for non-fiction, but the times have changed. I'm currently reading Predictably Irrational: The Hidden Forces that Shape Our Decisions
by a cool dude named Dan Ariely
. In short, we humans are constantly influenced by "hidden forces" that cause us to make decisions that don't always make logical sense. Can't say I'm surprised.
In a nutshell, progressive enhancement is building "content out", separating the structure of a website (HTML) from its presentation and behavior (CSS and JS). Content should be available regardless of the capabilities of the device, and should not rely on styling or scripting to function at a base level. There are some strong opionions for and against, but it sounds like a good idea to me!
…the amount of time in view steadily rises as we move downpage to a peak between about 1200 pixels down. This portion of the page is viewed for nearly three times as long as the top of the page. Amen to that – awesome reference point for clients stuck […]
About every other day I read a blog post about a new take on CSS best practices. I think either “I’m doing right!” or, “Ohh that makes sense, I’ll change my ways”. Cargo Cult CSS is another of these posts, and resulted in an “Ahh…now I’m really confused, […]
Chemistry in the SMALLab. Credit: Ken Howie Photography>
In this post I'll go over two applications of embodied learning. First is SMALLab, a learning environment using motion-capture technology and large scale projections to track movements in space, and second is Science Choreography, a project through Wesleyan University and the Liz Lerman Dance Exchange that combines art, science, and kinesthetic learning to teach science topics. But before getting into all of that, a look at what embodied learning actually means:
The SMALLab website defines embodied learning as "a field that blends the learning sciences and human computer interaction". Science Choreography deals more with the direct translation of a process or concept into movement. In this video, Liz Lerman describes, "when you embody a process you start to realize what you don't understand, and you begin to ask questions because you want to get the movements right." In embodied learning, physical movement is the medium through which we internalize knowledge.
A few learning theories relevant to embodied learning are embodied cognition, differentiated instruction, and social constructivism. Some quick-ish definitions before getting into the examples:
Embodied Cognition is the argument that all aspects of cognition are determined by the body. This includes higher level cognition like reasoning, judgement, and categorization.
Differentiated instruction refers to a teaching philosophy contrary to the "one size fits all" model that many schools go by today. Students are provided avenues for learning and assessment that are effective for all students, regardless of ability.
Dominic Crapuchettes (founder of North Star Games) talks about the renaissance of modern board games. A few main points:
Tablets are making traditional board games obsolete.
Similar to books vs. ebooks: the production process is very expensive compared to buying a game from the App Store, and the convenience of a tablet is certainly desirable.
Game Designers are no longer anonymous.
You won't see the name of the Monopoly's or Scrabble's designer on the box; prior to modern board games, designers were completely anonymous. In this case, designers receive no upside from sales even if the brand is massively successful, and receive no recognition for their work.
Had a great weekend at DML 2013: met a ton of excellent people, heard excellent talks, and had some excellent dinners in Chi City. A few resonant themes and takeaways:
Civics are not in crisis, agency is.
It seems like civics are the problem because of widely popularized (and hilarious) media showing ignorance (Jaywalking). The stats actually haven't changed, our expectations have. College degrees are much more prevalent now so we are dealing with a larger pool of people. The problem lies in the fact that this demographic feels that they have no influence in the antiquated legislative system (Ethan Zuckerman).
Chicago is cool.
While this wasn't explicitly stated at the conference, it's certainly true. What a great city, I hope to go back in the near future and have more time to explore.
Green river for St. Patrick's Day!
Students are expected to be better than perfect.
The average high school GPA of incoming freshman at UC Irvine is 4.1/4.0 (Cathy Davidson).
Badges are all the rage right now, but they aren't necessarily the answer. The danger in badges is that learners will be motivated because of the badge, rather than what they are learning (Barry Joseph, Mitch Resnick).
In a couple of weeks (March 14-16) I'll be heading to Chicago for the annual Digital Media and Learning Conference organized by the DML Research Hub. The theme this year is "Democratic Futures: Mobilizing Voices, and Remixing Youth Participation".
There has been a longstanding narrative of youth political apathy and disengagement from democratic life. As the currents of social, political, financial, and global change intensify, what is the future of participatory democracy, youth activism, and civic and political education? How are the practices and forms of participatory democracy evolving in the age of social, digital, and mobile media?
So many good talks, and I think a few of my favorites overlap unfortunately. Anyhow, here are some I'm especially looking forward to:
ChicagoQuest Curriculum Design Jam
"In this workshop, players will be taught the different phases of our curriculum design process. They will form small teams to compete against other teams in a guided challenge to design at each of the “levels” of the curriculum design process, both experiencing and designing CQ-style game-like learning."
Seems that I've been mentioning the Quest Schools in every post at this point...
Games, Learning and the Future of Assessment
"The development of game-based assessments to support the learning of domain-based knowledge and skills." Very excited for this one.
Article: Quest to Learn as a Model for Higher Education Pretty much exactly what I want to do. In this article, Justin W. Marquis goes through a few key features of Q2L and examines how they might be applied to higher ed, particularly the […]