Zombie Operating Systems and ASP.NET MVC

June 12, 2009 | programming
In 1973, an operating system called CP/M was born. CP/M had no directories, and filenames were limited to 8.3 format. To support input and output from user programs, the pseudofiles COM1, COM2, COM3, COM4, LPT1, LPT2, CON, AUX, PRN, and NUL were provided. In 1980, Seattle Computer Products decided to make a cheap, approximate clone of CP/M, called 86-DOS. 86-DOS therefore had no directories, supported 8.3 file names, and included the pseudofiles COM1, COM2, COM3, COM4, LPT1, LPT2, CON, AUX,…

Introducing FogBugzMiddleware

June 3, 2009 | programming
While I alternate between loving it and hating it, the web framework I use the most is Django. By default, when your deployed Django application encounters a 500 error (and, optionally, an internal 404 error), it sends an email to everyone in the ADMINS sections of your settings.py. Since I don’t like using my email client as my bug tracker, and I take advantage of FogBugz Student and Startup Edition to get a free and awesome bug tracker, I had long ago told Django to take advantage of…

Your Language Features Are My Libraries

May 20, 2009 | programming
At lunch today, we had a lengthy discussion about the merits of various .NET technologies, including LINQ. I complained that, although I like LINQ, and I like C#, I cannot help but be annoyed that many of these “cool” language features in C# are nothing more than libraries in Smalltalk. Joel responded that the comparison wasn’t fair; C# allows you to invent more syntax than those languages permit, and afford greater flexibility. Without disagreeing, let’s visit some specific examples. The…

When to Use Seaside Components

May 8, 2009 | programming
Although, for the past couple of years, I’ve largely stopped doing development in Squeak, I’ve still kept an eye on the Smalltalk community, including looking for Smalltalk questions on StackOverflow. It’s a good way to learn, keep up-to-date, and occasionally earn some easy reputation. Today, I saw that Julian Fitzell, one of the original authors of the Seaside web framework, had posted an outstanding answer explaining when and how to use components in Seaside. If you’re just learning…

Bill Gates on Reforming Education

February 6, 2009 | politics
Because the main thing I’m hearing about Bill Gates’ TED talk is, “Bill unleashed mosquitos!”, I want to encourage everyone to watch his entire speech. Bill Gates gave an outstanding explanation of the problems with the American education system, including a solid overview of how we can start to fix this problem. Teachers in general are diametrically opposed to being held accountable for their work. With some luck, Gates and others can help get the situation changed, enabling us to fix our…

The Palm Pre’s IP

January 29, 2009 | technology
When I first saw Palm demo the Palm Pre, I was very excited: for the first time, I saw a phone that looked as if it would be a genuine competitor to the Apple iPhone. Palm has clearly put lot of thought put into its design: the interface is intuitive and fluid, basically invents a reasonable way to do multitasking on a portable device, and still seems to adhere closely to Palm’s historical emphasis on simple, clean UIs—something that my nine-year-old Handspring still does better than my…

Outsourcing is Dangerous

January 1, 2009 | technology
Not outsourcing to India; outsourcing to third parties. The Wall Street Journal details how Sony’s R&D budget paid for the CPU in Microsoft’s Xbox360, and how that ended up being part of the reason for the 360’s success against the PS3. Joel’s defense of NIH syndrome for core functionality in your product makes more and more sense the longer I spend in the industry.

Pownce is Dead

December 1, 2008 | technology
I’ve long preferred Pownce to Twitter. It allows longer messages, has better uptime, has a better API, allows you to send links, photos, and files in addition to text…basically, it was just better in every way. The Copilot team made heavy use of Pownce during our Hair on Fire sprint, and continued to use it until we adopted Laconica internally. So I was deeply saddened to learn that, in a mere two weeks, Pownce will be no more. I guess Twitter’s where I’ll be now, whether I like it or…

Thanksgiving Computing

November 27, 2008 | technology
Just remember: nothing says traditional Thanksgiving like the Honeywell H316 Pedestal “Kitchen Computer”.

Rebasing in Mercurial

November 24, 2008 | programming
So, you’ve adopted git. Or maybe Mercurial. And you’ve started to use it. The problem is, every other commit reads some variant of, “Merged with stable,” “merged with base,” or some such. These commits convey no useful information, yet completely clutter your commit history. How do you make your history more useful? The answer lies in rebasing. Rebasing is a technique made popular by git where you rewrite your not-yet-pushed patches so that they apply against the current remote tip, rather than…