Archive for April, 2008

Buzzword Moment

0

Huh. I just did some dependency injection via monkey patching in what appears to be a valid use of both. Amazing that either technique would be useful in real life.

Twitter Use On The Rise in Iran?

2

I’ve noticed I’m picking up a lot of Twitter followers from Iran in the last few weeks. Anybody else noticing this? Is Twitter hitting mainstream in Iran?

Pimp My Minivan

1

With 3 kids in tow I’m on the inevitable slope towards owning a minivan. Having long ago given up the last vestiges of pride in what type of car I drive, I’m perfectly ok with this, but the wife is not into minivans.

Just about everyone I know is in this boat – they know a minivan is the most practical and comfortable choice, but they really don’t want to drive a minivan.

It occurs to me that there’s a great opportunity for someone to pimp out minivans to remove some of the stigma associated with them. I’m not talking the ridiculous stuff from the TV show; drop in an aggressive front / hood, put in some nice ground effects, tint a few windows and lights, and put on some nice rims, and I’ll bet that minivan will start to look less stodgy and more palatable.

There are some very talented car artists out there, I’m sure something could be done.

America’s Equipment Obssession

1

I haven’t yet met a nation more in love with its equipment.

I live close to a bike path. Every weekend hordes of exercise minded Americans come to bike. It’s a wondrous site to see.

Some subset of these folks are a bit overweight, carrying perhaps an extra 40 or 50 pounds.

Bless them for exercising, it’s wonderful. As is their choice of attire and equipment.

When I see someone who’s clearly quite out of shape riding a $1500 bike in extremely stretched lycra biker ensemble, I have to wonder. Do you really need the extra milliseconds the aerodynamic nature of that lycra outfit buys you? Are you really able to exercise the extra capabilities of the $1500 bike, versus the $200 one you could get a Costco?

I’m coaching my son’s soccer team. These kids are 4 and 5 years old. All have cleats and shin protectors. Wonderful.

I played soccer most days for the first 14 years of my life. I never wore a shin guard. Not once. I bought my cleats when I got to America. I’ve played plenty of games where the ball was a crushed soda can. Part of soccer’s popularity is due to the very fact that you need almost nothing to play it.

A good friend of mine has several thousand dollars worth of scuba equipment he uses at best once a year.

I’m fascinated by the “let’s buy the uniform and the equipment” mentality that goes along with sports in this country. There’s something culturally significant about this. I just haven’t figured out what yet. Perhaps it’s the shoes.

IE6 Image Works Suprisingly Well

0

I needed to test a site on IE6. Normally this involves stealing my wife’s laptop, since it’s the last computer in the house to still have IE6.

Today I was too lazy to go downstairs, so instead I decided to give the IE6 Image a try. This is basically a windows virtual machine image with IE6 loaded and ready to go.

The download was fairly large, but the install was easy, all the defaults just worked, and it’s now running smoothly in its own little sandbox on my Vista box. Well done Microsoft, and well done virtualization.

Ubuntu Confidence

0

Ubuntu Logo

I needed a version of mod_python that supports python 2.5 . I was running Ubuntu 6.10 (which started life as a 5.x install and upgraded its way to 6.10) and knew version 7.x has the mod_python I needed. So it occurred to me that the easiest way to get the new version of mod_python was to upgrade the whole operating system.

And it really was that easy. I followed the upgrade instructions, came back a little while later, and it was pretty much set. There was a minor problem with one of the language packages, but once that was taken care of I had upgraded a running system in place with almost no effort. This is my third smooth experience upgrading Ubuntu, so I’m beginning to build an unhealthy confidence in the upgrade process that gives me a little too much bravado and will probably come back to bite me later.

Minimal-Identifying-Subset Keyword Based Navigation

2

Operating systems and applications need to support a mode wherein typing the smallest identifying subset of keys will cause the appropriate file/function to be opened. Firefox 3 does this for history urls – start typing and you’ll see URLs that contain that set of keystrokes anywhere in them. iPhone’s safari also does a decent job. Adium does a basic version: you can hit apple-N to get a New Message window and type the start of the person’s name. I think Quicksilver also does this although I’ve never been able to make heads or tails of it.

Every application should do it. Eg. Eclipse – it’s silly for me to go hunting for the file I’m looking for in the tab + drop-down list of files I’m editing. I should be able to hit Ctrl-Something and start typing some piece of the name of the file and it should show up.

On the command line – it’s silly to type in the full path to get at the directory I want when it has a set of uniquely identifying (or at least narrowing down) set of keywords.

In adium, instead of showing only the contacts that start with what I’m typing, show contacts that have those characters anywhere in their name. How am I supposed to know Max’s id is crazymax2007 ? I just want to type max.

In short, I should be able to hit some hot-key combination, type a few letters, and get access to the most common functions and files that are identified by that set of letters, from every application.

HTML ID Syntax

1

From W3C HTML Recommendation:

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens (”-”), underscores (”_”), colons (”:”), and periods (”.”).

(Noting here because I always forget and have to look this up)

There Will Be Blood: Surprisingly Good

0

I had watched about half of There Will Be Blood, enjoyed it, but was surprisingly un-motivated to watch the rest. Tonight I finally watched the second half.

The first half of the movie is quite good, and Daniel Day-Lewis is fantastic. But the second half takes an unexpected turn and suddenly you’re face to face with a beautiful character study.

I don’t recall a movie diving into hatred as well this one has in a long time. Little by little it turns and material success unleashes the deep misery of the main character. “I have a competition in me” he says, and we see the results of that competition.

Nicely done, well worth watching.

Hadoop Is the Linux of Data Processing

0

Mentioned in passing by Roberto today. Sounds about right to me.

University Engineering Optimization Function

2

I was surprised by the persistent constraint of “4 years, x dollars” that came up in the Engineering Dean’s conference. Apparently any change to the university curriculum that challenges the 4 years or the cost basis for graduating is virtually impossible to make. This came up in the context of input from the industry panel suggesting new and increased requirements for graduates (things like “ability to communicate” and “leadership”, which, frankly, I’m not entirely on-board with).

Apparently the reasons for the immovability of the “4 years, x dollars” are numerous and complex, but an over-riding one is driven by students. If your university takes 4 1/2 years and mine takes 4, it is thought that students will go to mine instead of yours.

This and some of the other commentary made me wonder what function universities are optimizing. It seems the function is something like: maximize the number of graduates you can produce in 4 years and x dollars.

It’s not clear to me that’s the right function. From an employer’s perspective, the function I care about is: how many graduates can you produce within a reasonable time and cost that I can hire.

There’s a big difference between the employer’s optimization and the university’s optimization. Of all the graduates, only a small subset will have the skills I need. Increasing the number of graduates doesn’t necessarily increase the number I can hire; in fact it could make it harder to find the needle in the haystack.

Imagine a university that produced a very small number of graduates, but 90% of those graduates were a good fit for my hiring needs. That would be much better for me than a university that produces a very large number of graduates, but only 1% were a good fit for me. I could virtually guarantee the former university’s graduates a well paying job without even interviewing them.

So what’s the presumed “show-me-the-money” student’s optimization function? The desire for the shortest / cheapest path to a degree is a fallacy. The function the student is trying to optimize is the effort and time they put in versus the resulting payoff. Increased time and / or cost is acceptable if there is a commensurate increase in payoff. This is why people spend extra time and money getting MBAs.

My interests are well aligned with the student’s. He wants to graduate and make good money, and I want him to graduate and pay him good money in return for good work.

The “4 years, x dollars” optimization function is aligned with neither the student’s nor the employer’s interests. I can image there are valid reasons for its existence, but the presumed student driven aspect is not one of them. Btw, if you know of the reasons, please enlighten me.

My take is: if you’re running an engineering school, go for the high-margin graduates that get the high-margin jobs. Spend any extra time or money necessary. Recognize that in an increasingly global engineering economy the low-margin jobs will likely not be in the US, so even if you’re churning them out in 4 years and x dollars you’re not doing them any favors.

Btw, I’m not convinced extra time is necessary to teach a full curriculum, but I do recommend undergrads take 5 years to graduate and throw some internships in for good measure.

Engineering Skills For The Future

1

I was part of the industry panel at the American Society for Engineering Education’s Engineering Dean’s Institute Conference last week on the “Defining the Engineer of the Future – What are the skill sets industry is looking for?” panel.

Most of the nonsense I spewed can be summarized as: don’t approach the CS degree as a vocational degree. Don’t teach resume-checklist items. Don’t concern yourself with what technology/programming language/IDE is in vogue at the moment.

It’s very tempting to create curriculum to fill out a resume, as it presumably helps candidates find jobs. However, it’s the wrong thing to do.

Instead, universities should teach science.

The reason is simple: tools and technology change quickly; science changes much less quickly.

If you’re graduating as an “X programmer” for any value of X (say, Java), you’re doing yourself a disservice. X (say, Java) will be out of vogue in a little while.

Science goes stale more slowly. Understanding algorithms, computational complexity, statistics, data structures, operating systems, and compilers will remain useful 20 years from now. Knowing the minutia of J2EE will not be useful 5 years from now (or is that today?).

And my pet peeve: for heavens sakes, if you’re graduating an “engineer”, make sure he understands statistics, at least a basic level. If he doesn’t understand what a standard deviation is and can’t explain it to a 10 year old, he’s no engineer. If he doesn’t know what sampling is and why and when you’d use it, he ain’t engineer. Stats people, stats!

Internet Addiction?

2

I’m sitting in front of a 67 inch HDTV reading rss on the iPhone. And blogging. Hopeless.

Writing Good

2

Ran across Brendan Eich’s popularity post via Ajaxian. Besides the interesting history lesson (which, btw, is quite interesting), I was struck by the quality of writing. It’s rare to see such quality and care in blog posts. I was immediately motivated to subscribe (although I didn’t because it looks like he posts about once a quarter).

Anyway, if you blog, take a moment to write good.