I got linked to an MSDN blog and noticed that the URL was http://blogs.msdn.com/jensenh/archive/2005/11/08/490348.aspx. I don’t think that this is the actual folder structure on the server’s filesystem. I think it’s just what gets passed on to a script, that determines what content is being requested, and generates that content.

The “.aspx” must be deliberate. I think it’s an advertisement to anyone who programs computers that the website uses XML-based ASP (Active Server Pages, a Microsoft technology).

I think that this is pretty silly, because the extensions in the URLs are extra typing, are incorrect after switching languages, and don’t make things any easier for developers that are using URL dispatchers.

On the other hand, I think it’s a pretty slick move by Microsoft, and in some way I wouldn’t mind seeing it countered by Java, Python, and Ruby programmers.

Any thoughts?

Django, Wikis

Over the last couple of weeks, I’ve been trying to code up a news aggregator that works the way I want it to. That meant I had to decide what I was going to use to develop it.

I thought about what I like, and read about a few different web application frameworks. A few things I was thinking when I chose to give Django a try:

  • I prefer liberal open source licenses (MIT, BSD) to copyleft ones (GPL).
  • I want Python or Ruby. Of the two, I prefer Python because it has less syntax and more libraries coded for it.
  • I like PostgreSQL. It has some cool extension libraries (for mapping and other domains) and a liberal license.
  • I want something that’s proven
  • I want something that is very actively being worked on
  • Not having to write any SQL at all for simple sites is a plus.

I thought about web.py, Rails, Turbogears, and Django. I also thought about Python servlets or writing my own framework.

Things that impress me about Django, besides meeting my above criteria:

  • The template system. It has its own template system that supports “Template Inheritance”, which is a very neat concept. It also plays well with Dreamweaver, they say. I haven’t used Dreamweaver so I’m unable to confirm that.
  • The admin interface. It’s a bunch of code that comes with Django to provide a nice admin screen. In the program I’m making, if feeds become corrupted I could go into the admin and fix them. Or I could just have a good look at the data
  • The configuration files, including regular expressions for URLs.

I set to work installing it, and decided to document how I did it in a Wiki. For this, I installed Instiki, which is an impressive program. One thing I like about it is the fact that it supports three different wiki languages. I chose Markdown, which is not the default. I expected that since it was not the default, the support would be very rudimentary. I was pleasantly surprised! It’s supported and documented every bit as well as TextPattern, including a quick reference on the side of the editing pages.

After I figured out how to get a kick-ass Django development installation on my iBook, I decided to share my knowledge with others. The best place to post the information, I determined, was on the Django wiki. The wiki, as it turns out, is powered by Trac. It has its own wiki syntax that is similar to wikipedia.

After a search for translation tools, I started manually converting what I’d written to Trac’s wiki format. This was tedious, so I wrote a script to help out. After that I searched around a bit more, and found that Aaron Swartz wrote an html2text that converts from HTML to markdown syntax. What a great idea! First, Markdown looks good in plain text format, since it was designed to use the same idioms that people use when sending plain text e-mails. Second, it can be used to go from any wiki format to Markdown. This is because in order to display pages wikis convert from plain text to html. So all you have to do is go into view source in any wiki, copy the segment of the wiki you want, paste it into a text editor, save it, and run Swartz’s html2text on it, and voila, you have converted from that wiki format to Markdown.

If I get around to writing a serious tool to help me translate from Markdown to Trac, instead of just writing something to go between the formats, I’ll write a script to convert from HTML to the Trac wiki syntax.

Be more productive

I just got done reading a great article called HOWTO: Be more productive on Aaron Swartz: The Weblog. One part I found interesting:

Time when you’re hungry or tired or twitchy is low-quality time. Improving it is simple: eat, sleep, and exercise.

If you’re not exercising, I’d like to encourage you to start again. Please feel free to encourage me next time I forget that exercising actually makes me more likely to get other things done.

Switching from Mac OS X

A couple of months ago I bought an iBook. The idea was to get a laptop with good battery life and to try out Mac OS X. I’ve used it for a while, and decided that I prefer Linux.

The current version of iTunes is the best example I can think of to show what bugs me about Mac OS X, as a platform. iTunes does a ton of things now – music, video, shopping, downloading, burning, and podcasts. I don’t think it is possible for a single application to do all of those things the “best” way. For one thing, what’s best depends on the person. Another thing is that some applications just don’t go so well together – like music listening and podcasts. When I’m browsing and listening to my music I don’t want to see my podcasts in my library with the music. Another thing is music and video.

I prefer to have a bunch of small applications that I can pick and choose from. And this extends to other parts of the OS. Especially desktop managers.

I’ve read several well-written negative reviews of Mac OS X. I found one today called How MacOS X sucks.

Finally, I’ll mention how I’m doing the switch. I like the ability to run all major OS’s, for testing, so I’m not getting rid of OS X entirely. But I want it off the laptop I use every day. So I’m going to get an external drive, install Mac OS X on it, and boot from the external drive when I want to use Mac OS X. But I’ll stick to Linux for programming.

Update: I changed my mind about installing Linux on my iBook. It’s a hassle, and I thought of a number of good things about Mac OS X that I previously had not considered. Also, I re-read that link, and realized that a number of the problems have been fixed, or aren’t real problems. Finally, I’m removing the text suggesting reading it for insights into software design – it really has nothing to do with the subject. It’s a rant.

Y Combinator’s New Location

I just thought I’d share this thing I noticed with anyone from Startup School who might still be reading my blog.

After Startup School for Hackers there was an Open House at Y Combinator, a unique Venture Capitalist firm started by Paul Graham and others. I might apply for funding for their 2005 summer founders program. Y Combinator’s office was in a home-type building in a neighborhood in Cambridge. They’re moving to Silicon Valley for the winter, though.

A punch of the address to google maps reveals that in Silicon Valley they’ll be using a traditional office building.

Firefox 1.5 Beta

After having some performance problems with Firefox 1.07 (slow-scrolling text with the new design on Joel On Software), I opened Firefox 1.5 Beta and tried viewing the page with it. I found that not only was the scrolling issue gone in the beta, but that the time it takes to go back to a previous page is much quicker.

This is good to see. Firefox is playing a key role in moving from desktop applications to web applications. They have long been good about implementing new features, but with the current generation of web applications, a lot of work needs to be done on other things, like performance.

One thing that I see happening is Firefox dealing with lots of issues normally left to the Operating System. Firefox is no ordinary program – it’s a platform for running applications, and has to deal with lots of issues of being a platform. When many pages are open, memory management between different pages becomes an issue. Same with page histories, and making the back button instantaneous. I also see a lot of work to be done on isolation. I’ve had Firefox freeze a number of times with complicated JavaScript, CSS, or Flash. The obvious thing to do is to make Firefox do internally what the OS does when Firefox crashes, that is, isolate the crash to a single web page, the same way the OS isolates a crash to a single application.

I see a lot of exciting times ahead for Firefox.


Sea Lion

Originally uploaded by vote_zaphod_beeblebrox.

Yesterday, of the places I planned to go, I only went to the Empire State Building. Instead of going to the Gugenheim Museum and the Intrepid Sea, Air, and Space Museum I went to the Metropolitan Museum of Art, the Queens Zoo, and the New York Hall of Science in Queens.

The Metropolitan Museum of Art is a very large building with thousands of exhibits. I could spend a whole week in there.

Queens is very green and very beautiful. It also has some poor areas, something I have not seen in Manhattan.


I’m in New York right now. So far I’ve been to Central Park, Times Square, Washington Park, and Prospect Park in Brooklyn. I’ve also been on a ferry to and from Staten Island, where I saw the Statue of Liberty. I ate some pretty good New York Pizza in Manhattan. A friend also showed me a great dumpling place called The Dumpling Man.

Tomorrow I’m going to the Empire State Building, the Gugenheim Museum, and the Intrepid Sea, Air, and Space Museum.

I’ll post some photos later.

I’m blogging this

The Startup School is excellent. About two thirds of the talks have been given, including talks by Paul Graham and Steve Wozniak.

Paul Graham had another interesting mathematical observation that nobody else ever seems to come up with. He said that there is an even smaller percentage of female software company founders than there are females in the computer field. He explained that this is because people generally hang out with people of the same sex, and so the minority is reduced to an even smaller minority when we’re talking about partners. Then he tied it together with a joke: “Never attribute to malice that which can be explained by math”.

Steve Wozniak’s talk was amazing. He talked about starting Apple, and the goal of creating a complete computer system.

Michael Mandel, Chief Economist of BusinessWeek, said that he expects a boom right now, because of people like us, who are starting companies.

I asked a question at the end of the talk and used the word “lifestyle”, which for me meant whether people do things online or have to talk to people on the phone, working hours, etc. Almost everyone burst into laughter after my question. I think it’s because they heard the word “lifestyle” and thought of “alternative lifestyles”. Should have known. I hope I’m not visible in the video!

Adobe/Macromedia Merger


Dmitry Skylorav, arrested after a complaint by Adobe, for DMCA violation by overseas company.

From the Macromedia Flash Player EULA:

You shall not use the Software to develop any software or other technology having the same primary function as the Software, including but not limited to using the Software in any development or test procedure that seeks to develop like software or other technology, or to determine if such software or other technology performs in a similar manner as the Software.

I don’t like the new company.