Thursday, July 15, 2004

The only reason left to use Windows
Rhapsody. I'm hooked. Why don't they port it to the Mac?

iTunes is great for buying music, but it's terrible for checking out new stuff that you may or may not like. Rhapsody is perfect. It's also perfect for collecting all those stupid songs you like but would never purchase otherwise.

And are you noticing how the prices of CD's are starting to come down as iTunes and Rhapsody get more popular?
Learning Lisp, continued
Learning Lisp is a lot easier than it used to be, because you can get all of these things right off the web without spending a penny, and they all work on your Mac:

The only quibble is that you may need to download additional GNU libraries, like gettext. I probably should be using Fink, but I haven't gotten around to it.

"What a beautiful world this will be, what a glorious time to be free" Donald Fagan, "I.G.Y", The Nightfly (1982)
#!@&*Blogger
What happened to preview mode? I had to rewrite the previous post 10 times before I got it to look right. (And it still sucks, but that can't be blamed on the tool).

Blogging tools are the flint axes of software. I use MoveableType at work for an internal blog I set up, and it's only incrementally better. It isn't really fair to compare them to, say, my IDE, since one is a native program and the other is HTML-based. But is it that hard to do some simple WYSIWYG features? Like highlighting a piece of text you want to link and having a window pop up to enter the URL, instead of #!@&%$ A HREF=blah, blah, blah. Would it be that friggin' hard?

Joel on Software, btw, has some really good essays on the subject of improving HTML-based client apps here and here. He actually starts talking about towards the end of this article here and he's still talking about it here.

Friggin A HREF=#!@&*!^$
Learning Lisp
I've decided to learn Lisp.

Of all of the new technical kicks I could go on, this seems the least likely. I haven't even mentioned to my other hacker friends, because I'll get quizzical looks and disparging remarks. But I picked up Paul Graham's Hackers and Painters this week at the bookstore (literally - I haven't bought it yet, but fully intend to) and started reading. I've read many of his essays - and the new book mostly expands on those essays - but he convinced me about the value and relevance of Lisp in a way he hadn't before.

The three main points that convinced me were:

  • All other languages are gradually evolving into Lisp.
  • You can express things in Lisp, easily, that you can't express in other languages.
  • The right way to write programs is bottom-up, not top-down.

All of these things come together in a single, compelling idea:
The programs you write in Lisp will be fundamentally different - you will get a larger language with more abstract operators and a smaller program written in it.

I've been trying to work towards something roughly similar lately by trying to build systems that consist of two kinds of components - low-level components that solve generic problems and high-level components that reflect and provide solutions in terms of the problem domain. This is hardly an original idea, but I've seen very few systems that really attempted to model their problem domains in non-naive ways. Most "systems", frankly, are collections of code that lump together the features their designers and builders thought were important at the time they were building the system. I'm in the process of trying to rework/replace one of those kinds of systems right now.

I'm thinking in terms of building blocks - constructing something, lego-like, out of pre-fab materials, with the language as the mortar. The blocks and language are made out of the same material - the language - but they're conceptually and cognitively different.

Graham is suggesting something much more elegant. He's talking about expressing the solution directly, in the language itself. The difference is subtle - especially since I'm not expressing it very well - but huge. And it resonates with me to the point where I feel compelled to try to become proficient in the language. Even, possibly, to write real systems in it.

I still firmly believe Dennis Ritchie's dictum that the way to learn a language is to write programs in the language. I've gotten myself back up to speed in the basics (I noodled around in Interleaf Lisp about 10 years ago, but never really learned to use the idioms of the language properly). So now I need to pick some programs to write.

Wednesday, July 14, 2004

Kenny Boy
I just finished reading Robert Bryce's Pipe Dreams: Greed, Ego, and the Death of Enron last week, which was by coincidence the same week Ken Lay finally got indicted.

Bryce's book is lucidly written, funny as hell, sharp, and incisive. It's in the same league as James Stewart's Den of Thieves. He gives a surprisingly comprehensive look at the entire energy industry as well as a lot of insight into the people who drove Enron into the ground.

Kenny Boy, meanwhile, is making a very public defense that he didn't know what was going on and that Andrew Fastow was the evil genius behind it all. After reading Bryce's book, you can almost believe the "I was clueless defense" - Lay frequently comes across as downright stupid - except for his actions on October 23, 2001.

Bryce's core thesis is an old Texas saying: "Fish rot at the head". Lay proves it. He's either a liar or an irresponsible, incompetent fool. What kind of leader defends himself by saying "I didn't know what was going on" when the company he's Chairman and CEO of collapses in the biggest financial scandal ever?

But even if he's indicted, the SOB will probably get to keep most of his ill-gotten gains. Just like Michael Milliken. Crime does pay, if you practice it at a high enough level.

War and Peace
I felt compelled to write this comment to this post by Brad DeLong about Sy Hersh's assertions that the White House is covering up a massive amount of criminal wrongdoing w/r/t Abu Ghraib:
If it's true, why isn't this a front-page article on the NYT, and why isn't it the lead story on the nightly news? If it's true, why hasn't anyone else stepped forward?

If it's not true, then why is Sy Hersh telling these stories?

I hope what he's saying isn't true, because it's horrible beyond belief. I fear that it's true, because I have no faith in the decency, honesty, or competence of the Bush administration. But assertions of this kind demand incontrovertible facts. Where are they?

As usual, I found it difficult to convey exactly what I'm thinking in a few short words. So here are some more:

The last thing I want to see is more pictures/videos of American soldiers and/or civilians degrading Iraqi prisoners. But if they exist, and are significantly worse than what we've already seen, then someone in a position to know and with sufficient credibility needs to come forward and admit the truth - with sufficient and undeniable evidence to back them up. If they don't, then someone equally informed and credible (the latter of which means not someone from the administration) needs to squelch the rumours.

I find it difficult to believe that what we already know as established fact was the work of a few low-ranking enlisted soldiers. It's impossible for me to believe that the unit's NCO's and officers weren't aware of what was going on. It's equally impossible to believe that they were aware but weren't responsible - that is, that they hadn't given the orders allowing torture and humiliation. It's difficult for me to believe that there's no connection between what happened at Abu Ghraib and what happened at other places in Iraq and Afghanistan. It's equally difficult to believe there's no connection between the administration's discussions on the use of torture, the denial of Geneva Convention rights, and what happened at Abu Ghraib and other places.

But there's a big gulf between belief and proof. The best possible thing that can happen now is for the truth - all of it, without exception - to come out. If, in fact, it was just a few out-of-control enlisted troops this needs to be something the evidence supports and can be believed by any reasonable person. If, in fact, this was encouraged and directed at the highest levels of government this too needs to be established beyond reasonable doubt and appropriate actions taken. Because that gives us a chance to act on the truth and do the right things. In fact, it is the only thing that can help us in the eyes of the rest of the world, because it would show that at least we are willing and able to punish those who exceed the limits of the law and of human decency.