Contact Info

(for those who care)

Instant Gratification   

Thu, 31 Jul 2008

Delicious, Refreshing!

The website formerly known as is now simply And just when I was getting good at remember where the dots go.

In the words of Monty Python - “Say no more!” Just go forth and bookmark. Them and Flickr give me tons of hope!

23:36 CST | category / entries / links
permanent link | comments?

Mon, 28 Jul 2008

Mmmmmmhhh… Crêpe




I’m gonna state that adding the butter last is a good idea (otherwise the flour wants to stick to it and get a bit clumpy), but that you might try the wet-first, then dry method.

These crepes are neutral in flavor. It sounds interesting to do a bit of savory crepes for maybe chicken or potatoes. I’d hesitate to make them sweeter if you’re doing a sweet filling because you really do get enough sweetness from the ingredients and the neutral flavor of the crepe keeps your teeth from falling out.

Bon Appétit!

22:49 CST | category / entries / links
permanent link | comments?

Fri, 11 Jul 2008

Burlington Coat Factory, I Love You

Your search for “bowtie” did not match any of the products we carry.

We searched for “potties” instead. Did you mean “bow tie”, “bow”?


I almost spit up coke when I read that.

21:49 CST | category / entries / links
permanent link | comments?

Thu, 10 Jul 2008

The Soul of the Guitar

The guitar is one of the hardest instruments, right up there with orchestra conductor and concert pianist, because of the the high level of “personal leadership” that is expected of us. If I were an orchestra player, I would have a conductor to start me and stop me and bring me back in if I got lost, to show me what tempo, where the beat is, to write in the bowings, breathing and articulations, to tell me what phrasing and dynamics are expected of me, and so on — you know, the 130 things that the conductor does.

And then I would have someone sitting next to me doing the same thing as me. Someone I can peek at to see what I’m supposed to be doing; if I play a wrong note, I can catch it before it becomes apparent to the world. And if I get lost, they can play a little louder to cover for me until I get back in. As guitarists, we are expected to do all those jobs: start yourself, stop yourself and bring yourself back in when you get lost before anyone notices; cue yourself for entrances. And everyone expects you to smile even though you wish you were at home with your loved ones.


Thank you, Kevin.

23:39 CST | category / entries / links
permanent link | comments?

Tue, 08 Jul 2008

Kicking and Screaming Towards Lisp

A great article, worthy of it’s own pullout (not just an anonymous bookmark link):

My point is that it may be too late to start with Lisp so you don’t have to reimplement all of its features. Because all of those new languages have already implemented them. At least what most people consider the important ones.

I imagine people will disagree with this view. People might say that although Java and C# have many of the features that made Lisp great, it doesn’t have the essence that makes Lisp still the best choice for discriminating programmers. That essence might include meta-programming facilities, or first-class closures, or macros.

Macros let you subsume more code into less code. Macros let you write more functionality with fewer lines. Macros let you abstract away boilerplate into new syntax.

But the corporate manager will say: if everyone writes their own syntax, my programmers can’t read each other’s code. So instead of having to learn a language once, they will have to learn a new language each time they approach a program for the first time. And the value of macros is lessened.

Code as data lets you manipulate code at runtime. It means you can optimize it, count it, store it, send it somewhere, and more importantly, write it in itself. The possibilities are endless.

But the corporate manager again has an answer: Java is already written. Why would I want to rewrite it? I have a program to develop—-and you’re worried about optimization? Let the folks at Sun worry about that. We’re not language developers!

And so do each of the features fall like dominoes. Either they hinder some unforeseen corporate best-practice, or they just aren’t really as powerful in that environment as one would really hope their expressive purity would like.


…really great article talking about essential lispy-ness. C and C++ are dead to me (an interesting thing to say, and I’ll probably regret it :^). Java replaces C++ … C is OK, but it’s like adding salt to a dish- put it into a well-written library off to the side and write everything else in a different language that is ~easier~ or ~better~. The cases where machine efficiency outweighs development or maintenance efficiency are limited (and valuable!), but brutal machine-efficiency is steamrolling the less-people-efficient languages for many cases.

People seem to groove on Objective-C, I haven’t had a chance to use it and comment, but perhaps it strikes a better balance between people-efficiency and machine efficiency. Certainly any language that drives against people-efficience is now doomed to failure. I just hope we don’t go to drag+drop flowchart programming. :^)

16:54 CST | category / entries / links
permanent link | comments?

Wed, 02 Jul 2008

Simple PHP Framework Performance Comparison




Baseline HTML


Baseline PHP







Zend Framework




Up at work Rasmus always dogs on PHP frameworks due to their “high per-request overhead at scale”. There was another article I read recently about PHP itself being a web framework more-so than other programming languages. Ah, here it is - the article comparing PHP out of the box to rails.

Sure, Cake, Symfony, CI - they all help you build PHP applications. But unlike a Ruby framework or a Python framework, coding is perfectly tolerable without them. Of course, most developers tend to create their own framework as they go along - I call this PHP’s DIY framework mentality, where you build the last level in your stack, and by extension you know exactly what’s going on under the hood.


The idea being that when you take on a framework, you get a rapid increase in initial development speed, but a lot of decisions have already been made for you, and it might not be convenient to shake out those rough spots after you’re significantly invested in the platform. It is extremely easy to make the case that if you have this problem, it’s a pretty good problem to have.

Personally when working with frameworks, my goal is to have as little framework-dependent code as possible, such that when I do feel the need to switch from framework a to framework b I don’t lose my “logic”. My strategy is generally to have as much code as possible in library classes with unit tests, then layer functionality on top of that in whatever framework du-jour happens to be appropriate.

The other thing Rasmus talks about (which feels funny to most PHP programmers) is that you shouldn’t really program in PHP. He thinks that you should do your serious work in C (making it a PHP extension) and use PHP just for the HTML, etc. When people come up with “I’m looking for a good templating language for PHP”, his general response is: “PHP makes a pretty good templating laguage.” :^)

See the principle of least power for an example of what people asking for a PHP templating language are really asking for. Maybe it’d be nice to add an extension to PHP like:

<?simplephp … ?>

…that only accepted echo, foreach. It’s not about PHP’s fitness for purpose, but that it has grown to be too powerful, and people now tend to use it as the general purpose language, muddying some of the benefits that it started off with.

10:19 CST | category / entries / links
permanent link | comments?

Like what you just read? Subscribe to a syndicated feed of my weblog, brought to you by the wonders of RSS.

Thanks for Visiting!