Monthly Archive for April, 2005

The Mischievious Black Box

Just a moment ago I was reading about the black art that is new molecule discovery, and I realized that the story in Harry Potter and the Prisoner of Azkaban about the Boggart in the wardrobe is an interesting allegory for science.

What comes out of the box depends an awful lot on what you are looking for.

At my most futuristic

So, I spent my Friday night rewriting Moda from scratch in Windows. Actually, I don’t think I used any Windows-specific code, so it should run out of the box on Mono, but I haven’t tested it.

Why did I rewrite it? I have been thinking about this architecture in terms of sinks and sources, and translators connecting them. So I wanted to start from that and see where it led me. And actually, I got quite far:

moda-screenshot-4-23-05.gif

This is a kind of crude folder/image/text viewer, but the back end is quite clean. Auto-discovery of the proper translators is working reasonably well. We do something like this: (obviously this is pseudocode, and wouldn’t work.)

  UrlToFile = Find something that will turn uris into files.
  UrlToFile.Source = "/home/erik"

  FileToObject = Find something that will turn UrlToFile.Sink
                 into a paintable object.
  FileToObject.Source = UrlToFile.Sink

  Painter = Find a painter for UrlToFile.Sink.
  Painter.Source = UrlToFile.Sink

  this.Paint +=new PaintEventHandler(Painter.Paint)

That’s a simplification, but the actual thing is literally nine lines of code, so it’s not simplified by much. Anyway, I am feeling pretty good about this codebase. It feels closer to correct than other things have in the past. I am using really light interfaces instead of heavier abstract classes… that might be part of it. Another part of it might be that I am just implementing the bare minimum to support the basic use cases I have in mind.

Either way, this is really exciting progress for me, and I don’t even feel bad that I didn’t get any “important” work done tonight. It is Friday, after all. Tomorrow: nose, grindstone.

Download the snapshot.

Sheep shears itself and knits sweater

I get paid to do strange things:

sheep.gif

IU Informatics and Open Source

Open Source Software is, generally speaking, code written by volunteers to “scratch an itch”. Someone wants a weblog, but none of the commercial ones work with their picture album, so they write WordPress, for example. There are a lot of well known examples of open source software: Mozilla Firefox, Linux, Apache, and OpenOffice are big ones.

Generally, Open Source Software (OSS) is not known for good interaction design. In terms of ease of use, it has historically been clunky and several years behind Apple and even Microsoft. In addition, the OSS world is largely run by “hackers”–programming enthusiasts who control the code. As a result, interaction designers and other HCI people have avoided OSS.

However, I think working with OSS projects could be hugely beneficial to HCI designers and researchers, especially the HCI/d program here at IU. Here are six reasons why IU can’t wait another day to integrate OSS into our curriculum:

  1. Recruitment – High school and college HCI enthusiasts-to-be read Slashdot. They use Wikipedia and Firefox. Many of them even run Linux. If “Indiana University” becomes synonymous with HCI in Open Source circles, we will be the first school these kids think of when putting together their college application lists.
  2. Prototyping – As designers, we often invent concepts which would be painfully hard to implement, or even prototype. By working with Open Source codebases, we can get to working high-fidelity prototypes much faster than starting from scratch.
  3. Practical Experience – An Open Source project is a client. It forces us to work within the constraints and demands of the developers and their user base. This is invaluable experience for HCI students.
  4. Portfolio Building – By contributing to an open source project, we are building a portfolio of polished, implemented design work that will be visible for years to come.
  5. Purpose – If our designs get implemented, real people will use them, potentially hundreds of thousands.
  6. Networking – IBM, Sun, Red Hat, Intel, HP, Apple… all of these companies employ people to work on OSS projects. By participating in these projects, we can make contacts at these companies.

So what are we doing to make this a reality? Well, in Design Club, we have started working on a design that will be contributed to MediaWiki and perhaps other Wiki software projects. And we’ve been talking about this post and possibly making this a long-term design project for the summer. I’m really excited about this stuff, and congrats to those of you reading this who are going to be coming out to Bloomington, IN this fall. It’s a really exciting time to be in the program!

Quick Update

My Mom and Dad came to visit this weekend, and we had a really spectacular time. We went to the little 500 on Saturday, which was a really unique experience, a little Bloomington culture and a great opportunity to chat and spend some time outside. I made a Chicken Saag curry, and we had a nice dinner with Josh and Will, chatting about hiring programmers and other relevant topics.

On Sunday, Dad came and picked me up, and we went back to their bed and breakfast where we had a really delicious breakfast: baked pear with granola, a quiche of some sort, some hash browns, bacon, a teeny tiny muffin, some strawberry and pineapple. I had some hot tea as well, and the whole thing was very relaxing.

We went to T.J. Maxx to get me some black pants… I found some $25 100% wool Nautica slacks. Thanks Mom for paying. After that, we drove out to Monroe Lake, which I saw for the first time. They talked about how much they want a house on the water. Then we drove up to try and find a nursery where I could buy some herbs (cilantro, parsley, chives, basil) but the herbs aren’t in yet. Apparently the frost date isn’t until May.

We had some Tibetan food for a late lunch/early dinner, and I had my concert. The concert went well, and Josh and Will came. Then we took Josh and Will out for a late dinner/early breakfast at Lenny’s. More nice conversation, and then home. We said my goodbye’s and Mom and Dad went back to the B&B, to fly early the next morning.

Today I revisited my To-do list and my budget for April/May/June. Both are looking very tight, and I’m feeling stressed. Things are moving fast, but everything is going really well so I can’t complain. A weekend with my parents, three weeks with Niamh, hockey at Jeff’s, riding my bicycle through beautiful Bloomington, and doing lots of exciting work… these are all blessings.

… a time for meditation in cathedrals of our own

I find April 15th is a good day to reflect on all aspects of my life, good and bad. Here’s the top of that list:

Good: My federal taxes are in Bad: The IRS audits these things sometimes
Good: I got a great job for the summer Bad: I’m not going to be able to do everything I had planned
Good: I’m going with Niamh to Europe in a month! Bad: I miss her
Good: My parents are coming to visit Bad: The schoolwork is piling up
Good: I have a bunch of really interesting projects going on right now Bad: I don’t really have time for all of them
Good: I’ve saved some money in the last year Bad: I’m probably going to have to spend some of it

Filing taxes sucks.

That is all.

Oops

Bad news today: my PDA crashed. It still boots, but many applications seemed to have been wiped away entirely. I am able to access the hard disk, but most of the data has been wiped, and what is left is somewhat corrupted.


Dead PDA

Still, I should be thankful. Most other PDAs wouldn’t even turn on after being run through the wash. And the only reason this one went in was because it is small and durable enough to survive in my back pocket. Given that this little accident was my fault, I can hardly blame the manufacturer. Guess I’ll just have to lay down another $0.69 at Kroger to get a new one.


Dismal prospects for data recovery.

In the end, all technology is disposable. It’s just not fun to have to replace a device you just paid for.

Summer days, summer nights

I have some great news to report: assuming enought students sign up, I am going to be teaching I300 (Intro to HCI Design) this summer! It took a decent amount of persistence on my part, but it was worth every bit of it. This is my #1 job choice for this summer: it will build up my Ph.D. applications, it will allow me to stay in Bloomington and keep a finger on my research, it will allow me to work around my trip with Niamh, it will be fun, and it is probably going to be one of the best learning experiences of my grad school career. If Apple called and offered me an internship designing the next version of Automator, I would still have to think twice. That’s how excited I am.

But I am currently half way through my ALife exam, and I really need to wrap that up. So no more writing for now.

Thought

There are things that are good about being a kid, and there are things that suck about being a kid. One of the blessings of having a bad memory is that the bad things tend to evaporate, leaving only the good ones behind. One of the good things about being perpetually dissatisfied with your life is that you don’t see much undone business when you look backward. I think the biggest problem with my life right now is the tyranny of my alarm clock; the gluttony of staying up late. I suppose some things haven’t changed.