9.28.2006

Mwahahahaha!

On the left is my temporary machine, a hand-me-down dual-core G5 that really belongs to the team of graphical and user-interface geniuses. In the box on the right, which just arrived this afternoon, is a shiny new 2.66Ghz quad-core Mac Pro -- my permanent machine.

I have no choice now but to make myself worthy of such a fine tool. I can't wait to set it up.

Machines have come a long way since the 1.77Mhz Z-80 that I started on. Pardon me; my mind is being boggled...

the new commute

Yesterday after work the streets were wet from rain on the way home. It was a very pleasant ride up sumner. I threw my amp & axe into the trunk and went to go jam with Mark & Al.

The fingers were a bit stiff from not being forcibly disciplined by the bus commute, but at the same time they were doing some things that I didn't think myself capable of. This was my first jam since I filed for divorce. There's clearly a connection between emotional upheaval and music. I might need to have a 2nd and 3rd failed marriage before I can quit my day job, though.

Fortunately, I love my day job. The best part was not being too dead after work to go jam.

9.24.2006

lincoln arts festival

I spent some time checking out the wares at the Lincoln Arts Festival this weekend. There were also two corners allocated for live musicians. The group pictured had a classical guitarist ripping through some classics like Beethoven's Für Elise and Mozart's Minuet in G, all nicely accompanied by a couple of bowed instruments. It was especially cool to watch him play these two songs because I played them on the piano when I was just a wee lad. His arrangements for guitar were really good, and made me wish they were selling tablature. Alas, all they had were CDs.

In the opposite corner was a band whippin' out some bluegrass and some traditional Irish songs on mandolins. They were a lot of fun to watch too.

9.21.2006

health hazard

This is the building where I work -- up on the seventh floor, partially cut off in the picture.

This building is part of the Cornhusker Marriott, connected to the building on the left at the ground level. This is important because I discovered a health hazard there: a little shop where one can buy a latte and a LaMar's donut.

As anyone with taste for such things knows, a LaMar's donut is the most perfect donut. I honestly don't understand how the Krispy Kreme empire cast a spell over investors. LaMar's is where it's at.

I couldn't resist coffee & donut after riding to work in the rain. It was delicious, but it made me feel a bit uneasy.

9.20.2006

bike inside

I've noticed something about my new commute.

The old commute (from 77th & A on up to 84th & Adams) leaves one with the impression that not very many people commute on their bicycles. I say this because seeing someone on a bike is a noteable event along that route.

My new commute leads me down to 13th & M. Even on days that I'm starting to consider a little nippy there are scads of people on bikes. Copious buttloads. They're cheaper by the dozen. Ya can't swing a dead cat without hitting a bicycle commuter.

Heck, there are 4 of them in my office once I get there.

And, by the way, I brought the bike inside today -- as is the custom in my new surroundings.

Life is good.

9.19.2006

ok, that rocked

Day one of the new job was really cool: pedal downtown, meet & greet the people I'll be working with, fill out the standard paperwork, and get thrown straight into code with a tight deadline attached. No wading around by the water's edge.

I'm working at Nanonation, which is a real technology company specializing in media-rich technology. Their initial market was kiosks, and they branched out into digital signage. Their software that drives these systems exists for both Windows and Mac OS X (depending on what the customer wants to be driving the devices), and I get to work on the latter version.
\o/ w00t!
That means Objective C and Cocoa, but my most immediate task will be using my Java skills on some web services written using the WebObjects framework.

So much to learn, so little time. And, for the first time ever, I'm going to say goodbye to emacs and embrace an IDE: Xcode.

Heh.

In the mid 1990s, I made a conscious decision to learn Java and Linux, knowing that the WORA property of the former would allow me to develop on the latter, even in an environment that was hostile to the latter. I saw a synergy between the two that would allow me to ride-out the dark ages, knowing that ultimately the world would be made safe for diversity in system software -- and that eventually I would be able to work with NeXT-derived technology.

I'm officially declaring that strategy a success.

9.16.2006

reunion

On day two of the four-day-weekend between jobs I got together with six old members of the original g team, as it existed prior to the move to Omaha. We spent a few hours hanging around in the Haymarket.

It was a fun blast from the past to be with them.

On the way home I stopped by Cycle Works to buy a lid for the noggin.

9.13.2006

buzzword onboard

It's amazing to me how new idioms can appear suddenly.

Maybe it's just the way that buzzword memes propagate, and that some epidemiological model could explain why something you've never heard before suddenly appears multiple times in the same day.

Or maybe it's a matter of awareness: perhaps one suddenly becomes cognizant of something that was always around them, and it only seems to be new.

Today's example is the use of the word "onboard" as a verb. I don't think I've ever heard it before, but I heard it in two completely separate contexts today.

The first context was in a small meeting where a manager was talking about efforts to hire new employees to replace some that have moved on to other places. He referred to it as "onboarding them".

The second context was a situation that I would have thought to be somewhat culturally separated: a representative from a software vendor eager for us to buy their product. This time the phrase was something like "once they've been onboarded", again in reference to new employees -- ableit hypothetical employees this time.

Well, I guess they were hypothetical in both cases.

Anyway, this happened to me at a time when I'm in the heat of transition: preparing to onboard one company after overboarding another.

9.12.2006

morning TT

The new bus departs 15 minutes earlier than the Limbusine I used to ride. I've been leaving the house at the same time, pushing myself harder to compensate. It takes a lot more conscious effort to make myself breathe hard (and my heart pound) than it did a few months ago.

Fear of missing the bus is a good motivator.

Mornings have become chilly, and the air has been full of moisture. Yesterday there was a fascinating light precipitation that seemed like a dense fog when I was stationary, but like an extremely light rain while in motion.

Tomorrow will be my last commute on the bus.

9.08.2006

language invention

Today I gave a small talk about some of the most interesting work that we were able to do over the years at my current job, or at least a subset of it.

The best times were when real computer science principles were put into practice. The pinnacle of that, in my mind, was the invention of a small expression language, replete with constants, variables, mathematical operators, comparators, string literals, boolean operators, arbitrary nesting of parentheses, and functions with an arbitrary number of arguments (each argument potentially being any arbitrary sub-expression).

Hand-rolling a parser for such a language would be a perverse exercise, but the simple application of some time-tested tools made the problem approachable and, in retrospect, even trivial.

There are two main tools that we used.

The first was a conceptual tool: context-free grammars. These were first invented by linguists to model the structure of natural languages, and adopted by computer scientists in the early days of experimenting with programming languages. You can think of these as rigorous mathematical formalisms of the same idea behind the grammar rules you learned in junior high school.

(Do they even teach diagramming anymore?)

The second tool was a parser-generator. These are an incredible invention: they read-in the aforementioned grammar, automagically generate a provably-valid parser for the language, and provide a way for you to subsequently define the semantics of your language.

The particular parser-generator that we used was SableCC, which had a nice, novel way of allowing one to define the semantics of the language they wished to invent: while most other parser-generators expected us to modify generated source code, SableCC merely generated an interface that allowed us to implement a vistor, in the sense of the visitor design pattern.

Slick.

Inventing languages in this manner used to be de rigueur among computer programmers who had become somewhat advanced in their technique. Today most need for small custom languages (configuration languages, typically) is satisfied by XML, which is much easier to wrap one's mind around. This renders the work facile, but with the tradeoff of rendering the resulting language inelegant -- and rendering the programmer flaccid.

Mind you I'm not saying this as someone who considers himself an expert in the subject, but as someone who felt the rush of sudden experience points just from having gone through the exercise once.

One day Vint Cerf came to speak to us at work, and I got the opportunity to be among a few who attended a small breakfast with him. Mostly I just listened, drinking in as much of his luminosity as I could. Eventually, however, his eyes fell upon me and he asked me to describe what I did.

I told him. He sat back, smiled, and said that he was very happy to hear that language invention was still alive and well in the corporate world.

I feel very fortunate to have had the opportunity to practice real computer science on the job -- it's so much more rewarding than charting the path of one's career by popular shrinkwrap, entrenched brands, or skyrocketing buzzwords.

It's the road less travelled, but the view is lovely.

9.04.2006

granola recipe

I mentioned making granola before. My friend Sheryl gets credit for the umpteenth request for the recipe, which motivated me to post. The recipe itself came from a magazine insert in the newspaper one Sunday, and thank google I don't have to type it in: there is an online edition.

The ratios in this recipe are forgiving. Play with it.

The recipe calls for wheat germ. You can replace this with wheat (or oat) bran, or a combination of the three. I have been doubling the amount that the recipe calls for. These things get bound & baked onto the whole oats by the sweeteners, oil, and water. You may want to increase the wet component of the recipe slightly to compensate for increasing the germ & bran.

I have also substituted some (but not all) of the whole oats with a 7-grain cereal mix (sold under the Weat Montana brand) which contains oats, rye, barley, triticale, spelt, and hard & soft wheat.

My breakfast has been 1/2 cup of granola. I moisten it some days with a bit of soy milk, and other days with a few heaping tablespoons of vanilla-flavored yoghurt. Add an iced coffee (also with soy milk) and a small glass of grapefruit juice and I'm ready to go.

I have been making double-batches, which easily last a couple of weeks or longer.

9.01.2006

david bowman model of life

One minute you're out in deep space just doing your job, the next it's "Open the pod bay doors, HAL." Before you know it, you're firing explosive bolts and yanking optical modules to the tune of "Daisy, Daisy".

Then "OMFG it's full of stars" and you're whooshing down a wormhole to an eerily-lit bedroom where you see yourself as an elderly man eating blue food in his jammies. You chill in earth orbit for a while as a starchild (no, not that one -- this one). Finally you catch a cold, and with a stuffy nose and clogged sinuses you say...
Something is going to happen. Something wonderful.
I've got a job offer in Lincoln, and I'm taking it. No more long journeys to Jupiter for me.

I sense a tuesday night ride in my future.