Archive for December, 2006

My Christmas present: clothing


My mother has complained about my wardrobe for years; it consists mostly of free t-shirts, worn jeans, scuffed shoes, and the few scruffy jackets she’s been able to get me to wear. Now that I’ve stopped growing, she wants to give me one of these as a Christmas present (belated). I think she’s trying to tell me something.

Clothes are things I lump in the same category as grades and money; I wish they didn’t matter, grudgingly acknowledge they do matter to many people, and set things up so that I can ignore them as soon as possible. For instance, I get only shirts and pants that match nearly all my other shirts and pants so that when I perform my complicated selection procedure of “pick the shirt at the top of the pile when you get up in the morning,” chances are that I won’t look too bad. All jeans go with all t-shirts, so this is easy.

Mom’s making the compelling argument that if I go suit-shopping with her now, it saves me money (the suit and associated wardrobe will be a graduation-birthday-Christmas present, although I’d much rather have a new laptop, a dremel, or another two years of webhosting)
and time (because I won’t have to buy a new suit for many years, on account of I’m no longer growing… and because she’ll stop nagging me about it). Since a professional wardrobe is one of those things that I’m going to have to do eventually and might as well get over with now, and since it will make my mother happy (and probably my dad’s parents, too), I said okay.

So I get to go clothes shopping for a whole new wardrobe this winter break. Yay. I’d much rather be working on math instead…


Constraints


Constraints are liberating. When you have the right limits to push, you can work on pushing them instead of figuring out what the limits are. Give me constraints to struggle against, and I’ll probably subvert them somehow; if the ceiling is wide open, I stand agape at it for a while, and then go “now what?”, too overwhelmed with possibilities to begin… until I start building my own mental scaffolding around it. There’s value in being able to enjoy something quietly, for its own sake, with no constraints or rules or end goals whatsoever, but sometimes we need that extra kick.

Design is a fun way to explore constraints, as it is (in part) the art of finding the correct constraints to gently bound an elegant solution to a problem. Bootstrap started as a series of projects between Eric Munsing and myself experimenting with how far we could push the “time” constraint. Can you go from problem area to polished product design in 60 hours while still getting sleep and homework done? Interface design and education taught me how to design with constraints on knowledge; how do you make something that “teaches” users as they go? Appropriate technology and sustainable design inspire you with constraints on resources. Using only natural materials, using only $25, using tools in your garage, what can you build?

The nice (and dangerous) thing about setting your own constraints is that you can also decide when to relax them. If I’m working in a two-color palette and I know it would be so much better if I could just have three shades, then I can decide whether to relent or force myself to see what I can do with two anyhow. I can excuse myself for not performing perfectly because I could only use two shades, or take 15 minutes, or only lines from Shakespearean plays. I can stop fretting about whether to use blue or purple because I can only work in black and white. I can stop fussing and get down to business.

The ability to design our own constraints is one of the skills I feel is most lacking in education, where so many rules are set for us when we’re young. I struggled in my first design classes in college because I hadn’t learned how to create my own certainty in the midst of uncertainty. I struggled in my first independent studies and self-managed projects because I was so caught up celebrating the lack of someone else’s structure to create my own to replace it.

As children, constraints are largely set for us; 5-paragraph essays, 30 minutes to do a timed test, be home before 7. How far can you go within those bounds? What are the reasons behind them, and can they be challenged? One of the major milestones of childhood is when the kid first realizes that adults are fallible, and their decisions are as well. Another major milestone is when the kid learns how to challenge the decisions of an authority in a respectful and mature manner (“I don’t WANT to go to bed BECAUSE!” doesn’t count). And then there’s the process of growing up, where the young adult is expected to start making more and more of their own decisions and setting their own constraints (in an ideal world; some children are pushed into this far too soon, others are only allowed to do it too late).

How we deal with this freedom defines who we are. Who are you when nobody is watching over your shoulder? Do you keep the same restrictions that your parents or teachers set for no apparent reason (“the 5-paragraph is the right way to write, so I’ll use it”)? Do you find your own reasons for the rules handed down to you (“I’m cranky if I don’t sleep before midnight”)? Do you reshape them to fit your own whims (“Mum used to only let me eat one candy a day, but 25 a meal is a more reasonable limit.”)? Do you push the boundaries to discover your own (“my parents raised me Lutheran, but I’m studying Buddhism because…”)?

I’ve never tried to use the Mayan instead of the Gregorian calendar to keep track of my appointments simply because I think many other things are more important. I haven’t questioned the design of arcane bits of C syntax I’ve been forced to type because getting my project to work was higher priority at that moment. But I do succumb to the “you must graduate from college” maxim partly because I’m afraid of what it means to look inside and challenge it. Which constraints do you consciously choose to keep unquestioned and why?

If you have control over the walls that hem you, you have control over deciding where you want to go and who you want to be. Constraints don’t enslave us; they make us masters of ourselves.

Note: This post has plenty of rough spots and could use a rewrite, but my constraint was that I had to post this and be in bed by 1:30am. So here you go, in all its flawed glory.


Back in Chicago.


Back home in Chicago! I got my orange mug off the “visitors” shelf and put it in the dishwasher to signal that I’m living here temporarily (and that I was thirsty) and fell asleep under the same Mickey Mouse blanket I used when I was six. (It barely covers both my toes and my shoulders at the same time.)

While wandering NY, NJ, and MA visiting family, I fell horribly behind in all sorts of things. Catching up with that stuff now. Instead of checking email, I got to see my new twin cousins (Julian and Luke, a month old and we weren’t allowed to touch them without rubbing our hands with alcohol every time), eat the best cheesecake ever (Junior’s), and learn that three-year-olds have a disturbing propensity towards potty humor.

Joe and I booked our plane tickets to Japan last night. The two of us and Gui are going there at the very end of January to present our designs to roboticists and businesspeople looking for new product ideas. Our hands were shaking as we booked the tickets (more a function of being broke than nervous, though).

Now to catch up on all that work.


A web design newbie’s reading survey


This is where I’m starting: I know the basics of html, css, and that xml exists (if you haven’t seen these before, the preceding links are tutorials at w3schools; HtmlDog also has excellent tutorials). These are the things I’d feel comfortable explaining to other people; although I have tinkered with a smattering of things including various Python web frameworks, php, mysql, javascript, and ruby on rails, I don’t feel comfortable enough in them to count them.

So where to start? Well, for inspiration, I’ve been flipping through the sites and layouts on csszengarden and misspato (the clean section – most of the rest, while good-looking, is too flashy to suit my style). When I get back to Chicago, I need to check out Web Design In A Nutshell and read through the remaining chapters that didn’t get hit during Thanksgiving break.

Since I learned HTML back in high school, it seems that the “slice n’ dice images into tables to make everything pretty” has been replaced by a focus on standards and separation of content and presentation, which is just fine by me; if there’s a default semantic order to things, I don’t have to make up new relationships for every project I set out on.

Tonight’s reading was working through the “primer” articles in A List Apart, a web design blog with some well-written articles far beyond my current level of sophistication. Specifically, I’m reading through all the posts referenced in the ALA Primer and the ALA Primer, Part II. I’m calling out a few gems more buried in these posts:

  • 10 styles of webdesign – nice job of calling out various visual styles. I’ve noticed that a good number of computer geeks favor the HTMinimaLism style with a smattering of SuperTiny SimCity – my favorite is a balance between HTMinimaLism and Hand Drawn Analog.
  • Speaking of visual styles: my mother calls mine “colorblind,” which is why I’m grateful for the suggestion to pick your color palette from a favorite photograph, as I can take nicer photographs than I can create color schemes.
  • A surprising interlude about what design is and isn’t. Design “necessarily involves solving problems” and “satisfying the requirements of a user,” which is “what distinguishes it from art or self-expression.” Replace some of the web terms with engineering ones, and you could peg it as a Ben Linder lecture.
  • What is the difference between a hyphen, a minus, an em-dash, and an en-dash? Note to self: take typography. Actually, make that graphic design classes… I’d still love to get at least a certificate someday.
  • What about fonts? A study suggests that sans serif in readable column sizes (~11 words per row of text) is the way to go. Here’s a list of beautiful typefaces. I’ve also been partial to bitstream vera sans ever since Brian Shih suggested it on his blog.
  • I’ll have to come back to glish.com, which has links to css tutorials and samples of nice layouts, including a 3-column with a fluid middle column. There is also a walkthrough of a css recreation of a table-heavy website.
  • Instead of using tables for markups, how about lists and css instead? This is one of those “why it’s great to separate style from content” demonstrations. It also means you can use son of suckerfish dropdowns (original suckerfish here) and then sliding doors to make the css more than pretty colored text.
  • Then we turn those prettified lists into css rollovers with no preloads, or for the more graphically inclined, an image slicing replacement.
  • I liked this article on the three-column layout not just for the column layout, but as an example of how to use css to drag semantically marked blocks of text into place.
  • You can give each little content-block its own background and create visually separated columns as in layoutgala’s example gallery, or keep the content block backgrounds transparent and use a background image to fake the “column” look.
  • Speaking of background images… they go over the background color, meaning that you can create a background image for the top (or side or bottom) in one color to give a semantic content block a little colored heading (from the article on mountaintop corners). I always wondered how they did that.
  • Make layouts resize gracefully with elastic design (now with concertina padding!) I like the line numbers on code snippets in the second link.
  • In addition to ordered and unordered lists, there are also definition lists. New tag for me.

With that bit of reading under my belt, it’s time to put some things in practice, so somewhere in the next few “hurrah web design” ramblings here will hopefully be sketches of designs I’m thinking of.


The winter break to-do list


Tonight I ate enormous amounts of dessert, learned how to swaddle a baby, and renewed my dislike of television as a mind-filler (I like well-made television, but as a communication medium and deliberate form of art, not “for lack of something better to do”). I also need longer stretches of productive work-time with my laptop, which will be difficult to find, which means that I am really behind on a lot of things.. There are a couple things I’m trying to do over winter break. We shall see how well these turn out.

  1. Start learning web design in earnest. In the spirit of learning by doing, I’m going to be working both on my website and on Bootstrap’s, the itinerant and currently ill-defined design group that’s spontaneously struggling into selfhood among a group of Oliners.
  2. Set old ghosts to rest – there are a few things, academic and nonacademic, that have been nagging me for months. An essay I never revised. An email I didn’t reply to. It’s time to clear these from my conscience.
  3. Echo: Make a professional-looking presentation package for the Japan Design Foundation Robotics competition that Bootstrap is traveling to in January. It’s a design competition, but we came up with a robotics application, were shocked when we became finalists and people started asking us where they could buy the things, and are now trying to figure out the technology to implement it while getting provisional patents filed and everything; I’m mentally treating it as a tech startup because that’s what it might become.
  4. SCOPE magic. It’s going to be a hectic next semester, and any sort of head start is very, very good. I haven’t been able to convince my cousins that the PIC and Blackfin boxes I brought home are computers – they don’t fit into their mental model of what a computer should be.
  5. Solidify next year’s journey. I need a coherent writeup and the beginnings of plans for my trek across the globe in the name of engineering education.
  6. The mathiness! As Jon pointed out, I’ve got some research to catch up on over break…

Enough to do for a month, I think. But first I need to get over this nasty little cold and/or allergy; I can’t tell which, but it’s leading me to kill a good many trees in the name of uncongestion (and Kleenex).

Edit: Whoa, almost left the math out. Thanks, Jon. I wonder if I’ll have enough time to learn dynamics and controls too, so I can hound Gui and Mark Penner incessantly with questions next term…

Edit: Man, this betting pool is old. Note that Mark Hoemmen has already lost his bet, as he’s married. All others are still up in the air.


ConnVex


Between finals and Expo, a few of us (led by the intrepid Ash Walker) volunteered at ConnVex, the first Vex regionals in CT. This involved a 5am drive by Andrew Tsang, who is also responsible for the pictures that follow.

Ash was one of the refs; I was the… “field reset attendant,” which means I got to scurry around the field stacking neon yellow softballs between rounds. Andy was the photographer, and Matt Roy handed out crystals (and fielded a heck of a lot of questions from people coming up to his table).
If you ignored the continuously pounding rock music, it was a lot of fun, and we got to see a good number of inspired robot designs – things like using zip ties as “fingers” to rake in the balls or putting two small pegs on the bottom of a “ball shovel” that the robots later used as hooks to pull itself up onto the bar with. The kids seemed genuinely thrilled to be there, and screams and shouts erupted during the bouts as loud as any I’ve heard at a high school basketball or football game (the few I’ve been to, anyhow). Gives me hope for the future generation of engineers – the best folks at a job are the ones who think it’s a ton of fun.

It was a little weird to be on the other side of an event with kids involved. When the adults gave their requisite lecture on safety and sportsmanship, I fought the urge to roll my eyes; I still felt in part like a kid such diatribes are usually directed towards. At the same time, I understand why the adults have to say such things. It’s just that a half-hour “Don’t Do Drugs!” skit, a little one-page worksheet on racism, or a 45-second lecture on sportsmanship will just skid right off our consciousness unless a deeper framework has already been laid.


Posts from last year


It’s end of term reflection time, and I’m procrastinating on my Expo presentation with a blast from the past. It’s turning out to be one of those “the more things change, the more they stay the same” things.

Re: inability to ask for help

[Talking about the Olin-as-deep-end-of-pool analogy] If I sink, I will sit at the bottom and slowly drown as I stare at the sunlight filtering through the water. I won’t ever let anyone save me. Some strange little part of my brain still thinks that if I let myself be saved, then I will not be able to save anybody else, when in fact it should be the other way around.

If I let myself be saved, that makes me fallible. Fallible people can’t swoop down all godlike and help others. They might fall apart themselves. (from here)

Re: Eye.size > stomach.size syndrome

Behold a small dipper from the continuous stream of sage professorial advice which I’ll forever remain grateful for. Man, we’re lucky to have great teachers here.

Gill Pratt: “Life is the art of knowing which things you can let slide.” (from here)

Re: Being simultaneously arrogant and underconfident


I hate being smart, but I like being smart. I hate that other people think that I’m smart (I’m not). At the same time, I like that they do. (I’m not.) I like looking smart. (I’m not.) I want to think that I’m smart, and sometimes I do. (I’m not.) And I hate that I like to look smart (because I’m not).

Hubris, anyone? (from the same post as the first quote)

I wrote this stuff when I was 19. I’m 20 now. I wonder if I’ll still be able to call these things true when I’m 25. A small voice in the back of my head keeps saying it’s narcissitic to quote yourself like this, so I’ll stop now, reply to the comment backlogs, and then actually get back to “real work.”


Thinkers and doers and the OLPC


There’s this passage from Holes In The Wall, a BusinessWeek post about Indian physicist Sugata Mitra who installed a computer in the wall of his office facing the slums to see what the local street children would do. They experimented and became computer-literate in an amazingly short amount of time, but could not explain why things worked, only that input X led to response Y.

Mitra: …it’s functional literacy… It’s already happened in cable TV in India… The guys who set up the meters, splice the coaxial cables, make the connection to the house, etc., are very similar to these kids. They don’t know what they’re doing. They only know that if you do these things, you’ll get the cable channel. And they’ve managed to [install] 60 million cable connections so far.

Functional literacy is a great start, but it is only a start. It’s great to have functional literacy in many fields, but you need to be able to take at least a few into mastery. As Raymond explained to me a few days ago, it’s not enough to acquire skills and take the information that’s fed to you; if you want to do more, you’ve got to continually ask So What? and Why? and figure out how things work instead of memorizing the steps it takes to make them happen. Be a thinker, not just a doer. (Of course, thinkers must also be doers in order to get their thoughts into fruition.)

More on thinking vs doing here.

There’s a bad truism among certain activists that education is the key. The key to what? Like all truisms the idea is incomplete. Decades of valuing education over action have left social movements educated and impotent. Thinking about power is more important than thinking about education — spreading information is only important if people will do something with that information. We’ve figured out how to spread the information, but people aren’t doing anything with it.

To this I would argue that education is lots more than just the spread of information; it include thinking about power and learning how to use it. The trouble is that this kind of thinking – doing-something thinking – is the type that you can’t explicitly teach. It’s part of what I’m aiming to say tomorrow during my Expo presentation on good textbooks. A good textbook (or a teacher or class, for that matter) isn’t simply a way of conveying content from one mind to another. It’s a way of creating (or recreating) an experience that transforms the learner’s way of thinking. By definition, you can’t come up with a standard way to make that happen – the point is nonstandardization, the point is figuring it out for yourself, and that’s what makes teaching so tough (and so rewarding).

I found the above quote by following a comment link from a blog post on nonlinear learning that points out that knowledge tools (specifically, the OLPC) are not enough if students aren’t taught how to use them. Several comments down the line, someone essentially says “OLPC is about hardware, not about how to use the hardware… other people need to pick up the educational aspect of things.” It seems like we need people interested in education and fluent in teaching that can travel and immerse themselves in different school systems while understanding the technology behind the laptop well enough to see how it could be best implemented in various places.

Well, then. I may have found something productive to do with my global wanderings investigating engineering education next year. I’m going to need to do more work and research on this, but I wonder if it’s an idea worth bringing up to the OLPC people at some point – and when and how (and to whom). I’ve been lurking on the project mailing lists since they existed, but have never actually spoken.

PS – David pointed out that I have a huge comments backlog – sorry about that, everyone! I’m not used to moderating these things (actually, I’m just going to turn moderation off and leave the captcha on; trying to cut down on blog spam here). Now to write replies to everyone!


Other people’s expectations


How much should we live up to other people’s expectations?

I’ve had an especially interesting series of discussions with professors over the last few months around this topic as it relates to learning (and grading). This thread of conversation has been going on ever since a conversation with Gill (badly paraphrased) about ECS, way back when I was actually complaining about it in what was probably my sophomore year. I was griping about how ECS didn’t have any metrics (yes, the dreaded m-word; I also questioned this!) which meant you never knew what you were supposed to do. “Well,” Gill explained, “we want you to stumble around and decide what you want to learn, and find out how to learn it.” “But it’s so inefficient!” I said. “Exactly.”

Then this semester, I was talking to Ozgur about the vagueness of his comments during our design project reviews. “It’s not enough feedback,” I said. “We don’t know what we did that was good or bad.” “In the real world,” Ozgur replied, “people might not tell you that. We give you lots of feedback in your earlier design classes*, and I wanted you to see how you would do without it. You need to decide for yourselves if something is good or bad.” Adjust to feedback, but don’t depend on it; it might not come. It’s a variant of waiting for someone else to tell you what to do.

*which is open to debate, but I’ve found that folks in general are usually good about giving you really good, detailed critiques if you ask them in person later… I don’t do this as often as I should.

If you’re a teacher, how can you strike the balance between having your students do what you think is good and having them do what they think is good? Is it possible to imprint your own values too strongly onto them and prevent them from becoming their own person?

If you’re a student, how can you strike the balance between doing what you think is good and doing what other people think is good? How can you tell whether what you want is what you want, or what you want because other people want you to do it?


Craziness: the antidote to boredom


From Chemmybear’s page comes an excellent example of the kind of ubiquitous curiosity that makes a good hacker. It’s a passage written by Ira Remson in a book by Bassam Shakhashiri.

While reading a textbook of chemistry I came upon the statement, “nitric acid acts upon copper.” I was getting tired of reading such absurd stuff and I was determined to see what this meant…

In the interest of knowledge I was even willing to sacrifice one of the few copper cents then in my possission. I put one of them on the table, opened the bottle marked nitric acid, poured some of the liquid on the copper and prepared to make an observation. But what was this wonderful thing which I beheld? The cent was already changed and it was no small change either. A green-blue liquid foamed and fumed over the cent and over the table. The air in the neighborhood of the performance became colored dark red. A great colored cloud arose. This was disagreeable and suffocating. How should I stop this?

I tried to get rid of the objectionable mess by picking it up and throwing it out of the window. I learned another fact. Nitric acid not only acts upon copper, but it acts upon fingers. The pain led to another unpremeditated experiment. I drew my fingers across my trousers and another fact was discovered. Nitric acid acts upon trousers. Taking everything into consideration, that was the most impressive experiment and relatively probably the most costly experiment I have ever performed…

That reminds me of this diagram from the infamous Ghetto Indoor Pool Caper.

Crazy things always make better stories later on, regardless of whether they work or not. They also teach you more. The trick is really a two-step process:

  1. Do more crazy things
  2. Tell the stories about them so you remember what you learned

The second one (especially if your listeners are enthusiastically receptive) will usually get you excited enough to do more of the first, leading to a positive feedback loop and the end of any semblance of boredom.