Django: So Easy, a Journalist Can Use It FTW!

The St Petersburg Tribune just won a Pulitzer for polifact.com, a site it created in 2007 for fact checking the 2008 presidential election campaign.  What’s most notable for me is that it was developed quickly, by a small team and, Matt Waite, the lead developer was a former reporter who hadn’t done any real programming before they built the site with Django.

I discovered Django, a python web framework, shortly after its first public release in the summer of 2005.  I’d been wanting an excuse to learn a little Python, and had been looking for a web framework to help get me past some of the fussy parts of starting a new web app.  Ruby On Rails was getting a lot of attention at the time, but looking at Ruby gave me bad Perl flashbacks.  Since then I’ve been keeping track of the progress of the project, and I have a series of half finished learning projects I’ve undertaken.

I’m now at the point where I feel semiproductive with it.  It takes me a little while to get going, and I don’t generally get all that far before I’m interrupted, but I get to the point where I remember enough Django and Python that I don’t have to look things up for every line I type.

The first “amateur” Django site I’d seen was called Lost Theories (currently off-line).  It was created by as a personal project by Jeff Croft, one of the web designers at the Lawrence World Tribune, the newspaper that birthed Django.  It was a simple but useful site for sharing theories about the TV show Lost.  A little looking at the source code made it clear that the designer had figured out how to do it himself, without getting a lot of help from any developer friends, which I thought was awesome.

Given the panic in print journalism circles, I wouldn’t be surprised if this ends up getting a lot of mainstream attention, provided they can take a deep breath and stop their Twitter freak-out long enough to notice the implications.

(via Can I Has Django)

Safari 4 Beta is Good, but not Good Enough for Me, Yet.

After a sneering rant from one of the Firefox marketing guys made me take stock and realize how frustrated I’ve grown with Firefox, I decided to give the Safari 4 beta a shot.  So far, results have been mixed.

The good:

  • Comparing a freshly started Firefox 3.0.7 to a freshly started Safari Version 4 Public Beta (5528.16) with the same ~20 or so tabs open split between two windows, Safari is using about 1/3rd the CPU of Firefox.  Actually, Safari has this Ajax heavy WordPress editing window open too.  A clear win for Safari
  • On the other hand, Safari is using about 50% more memory than Firefox.  The advantage would seem to go to Firefox, but since Safari is a beta build, it may be bloated with debug code.
  • When reloading a variety of pages in both Safari and Firefox, Safari just seems snappier.
  • Just opening an empty window on Safari is faster

The Bad:

  • When I try opening the “add link” overlay dialog in the WordPress editor on Safari, it comes up part way, but then freezes and I can’t do anything until I reload the page.  This may be a show stopper until it is fixed.  This is particularly odd, since other dialogs that load as an overlay work just fine. Update: I’m using the latest build of WebKit from WebKit.org and it works just fine.
  • There doesn’t seem to be any way to get rid of the search form at the top of the browser page, without also getting rid of the location/URL form at the same time.  I never use the search form, I prefer search shortcuts that I can enter into the location bar.
  • No way to rescue accidentally closed tabs on Safari.  On Firefox, one of the reasons I still use the Session Manager extension, rather than just relying on the build in session manager, is that Session Manager lets me recover the last 10 tabs I closed in each window, and the last 10 windows I closed, saving my ass when I close something by accident.  Safari lets you reopen the last closed window (and all the tabs in it), but it doesn’t do the same for tabs.  Advantage to Firefox for large ecosystem of plugins/extensions (and also, I realize, because it has basic tab-rescue features weven with out Session Manager.

Yeah Asa, But What Has Mozilla Done for Me Lately?

I’ve had my frustrations with Firefox, but it wasn’t until the last day or so that I realized how bad things are. Bare with me for a minute while I explain why.

There was an opinion piece on the PC World website a few days ago called “Firefox Might Already Be Dead.” The author tried a pre-beta build of the Chrome browser on Linux and was blown away at how much faster it was than Firefox, which made him wonder what the Firefox developers have been spending their time on.  The piece drew some attention.

Dave Winer offered his opinion, he needed some Firefox add-ins, so he wasn’t likely to jump ship anytime soon.  He also wondered how well Chrome would run when it had something like feature parity with Firefox, but then went on to add that most of the new features in Firefox over the last few years didn’t interest him.  Dave’s comments made me realize that the only Firefox add-ins I consider must-haves I use as work arounds for its performance and reliability problems.

Something about Dave’s criticism or the way it was delivered touched a raw nerve with Asa Dotzler, a Mozilla Corporation employee who is credited with starting the Firefox Quality Assurance and marketing efforts.  To put it bluntly, Asa seems to have completely lost his shit.  You can and probably should read it for yourself, but basically Asa decries Dave as an out-of-touch “sceenster” whose ideas about software are the enemy of “the regular user,” for whom Asa and Firefox have been brave and lonely champions against the evils of Microsoft.  In Asa’s mind Dave and pretty much everyone else owe them boot-licking thanks for that.

To a degree, I agree with him, but the smugness and uglyness in his post broke the dam on my long brewing frustration with Firefox.  I left a comment on his blog, but it may never make it past his comment moderation, and I think it’s something that needs saying.

Yeah, Asa, but what has Mozilla done for us lately?

I realized yesterday, my two must-have Firefox extensions are AdBlockPlus and SessionManager.  AdBlock, because it lets me shut down embedded flash ads that Firefox lets bog it down,  SessionManager so that I can get back to where I was if the browser crashes or I have to restart it to troubleshoot, or because it’s bogged down and/or sucking memory and CPU.

What has Firefox done for me lately?  Right now with maybe 20 web pages (none of them particularly dynamic) open over 4 tabs it’s sucking down 25% of the processing power on my MacBook Pro and torpedoing my battery-life.

What has Firefox done for me lately?  Once again my “regular user” wife is complaining that her computers is slow and glitchy because on her machine, with however many tabs and windows worth of IE6-renderable web pages she has open, Firefox is eating an entire CPU core and half of the real memory.  Or she’s nearly on the verge of tears because all the research she’s done, captured in those open tabs and windows, has been lost because the browser crashed (again) and the built-in session restore didn’t work right.

I’ve told her time and again that Firefox just can’t handle it, and she does her best, but really, why shouldn’t a regular user do exactly what she’s doing?  Why does Firefox let regular people open a hundred tabs in a dozen windows if it’s not cut out for the job.

The truth is, it’s been this way for years.  Awesomebar, mailto: opening in gmail? (recent Firefox features that Asa cites as examples of exciting innovation) W T F?  Most of the “regular users” I know haven’t discovered them and wouldn’t miss them, they only matter to you and your self-satisfied sceenster friends who think they know best.  Why are you wasting time on that when existing popular features, features you used to “sell” Firefox to end users in the first place result in so much pain.

And you have the nerve to demonize Microsoft?  There wouldn’t be a consumer Internet, a consumer web, web browsers, Firefox, or Google ad revenue to fund jobs for you and your smug sceenster friends if Microsoft hadn’t driven volume up and prices down in the PC industry.  You want Dave and the rest of us to kiss your feet?  Ok, fine, right after you get down and grovel in front of Bill Gates and Steve Balmer.

Firefox has had a good run, but if 3.5 comes out with more new features without the basics working smoothly and consistently, I’d say that you, like Microsoft, are no longer part of the solution.  You are part of the problem.  And really, maybe Dave provoked you, but this post still makes you look like a jerk.

I appreciate the role Mozilla has played in moving the web forward.  I appreciate that Firefox, more than a lot of open source projects, gives a damn about “regular users.”  I even like the awesome bar.  Even though I haven’t used it, I was glad that it is finally possible to have things like mailto: URLs in a web app, like Gmail, rather than having to choose a desktop application.  I appreciate their focus on security.   None of which means I won’t jump ship when Chrome comes to the Mac.  I’m already leaning more and more to using Safari as my primary browser.  Earlier versions had some real reliability problems, but whenever I’ve used v3 for an extended period of time, stability has been great, and performance has held up pretty well too.

PS:  Does anyone remember when Microsoft came out with the Coolbar

Update: It looks like Miguel De Icaza tweeted a link to this post.  Since this is a topic that is drawing strong passions on both sides, I’m closing comments before a real flamewar breaks out here that I don’t have time to moderate.  Trackbacks are still on, so if you post to your own blog, it’ll be linked here.

Wither the Newspapers, Whither the Advertisers?

Clay Shirky’s great essay on the past, present, and future of newspapers begs the question of what will happen to big advertisers whose drive for economies of scale allied them with the big publishers and broadcasters who were driven by the same Industrial-age imperatives.  What’s to become of the national brands?

If you want to know why newspapers are in such trouble, the most salient fact is this: Printing presses are terrifically expensive to set up and to run. This bit of economics, normal since Gutenberg, limits competition while creating positive returns to scale for the press owner, a happy pair of economic effects that feed on each other.

What is Google AppEngine Good For?

Dare Obasanjao recently asked “Is Google App Engine the wrong product for, the market?” and then tried to answer the question in a blog post.

He concludes, rightly, I think, that it’s certainly the wrong thing for “enterprise developers,” and gives a good rundown of the issues web developers trying to use it now will face in having to deal with its non-relational datastore, and restricted Python centered development environment.

I’m coming at it from a different direction, wondering what Google AppEngine is good for and I see at least two classes of applications:

  1. Small, focused applications that are developed quickly and expected to live hard and die young (lots of traffic for a short amount of time).  Something intended to spread quickly, like a lot of facebook apps or MySpace widgets.  The sort of app that a designer and one or two developers could do in a month or less.  With those sorts of time-frames, building an infrastructure that could scale up and down quickly wouldn’t be hard to justify, even using something like Amazon EC2.
  2. Installable apps with just a few users (like a private Wiki) that wouldn’t justify the expense and upkeep of even a small Virtual Private Server, but which are valuable enough that people wouldn’t want to depend on some startup remaining in business to keep their data available.  If people installed the app on their own AppEngine account, then they could be reasonably sure their data would be accessible even if the original developers abandoned the project.
  3. Installable apps with the potential of spiking to a whole lot of users, like a public blog, etc.  Again, depending on Google for hosting would be easier to swallow than some startup that could vanish.
  4. Federated apps.  Users would control their own data via their own personal installed instance, but would also take advantage of services that create a network of all the installations.  For example, imagine an application that people would invest a significant amount of work in, maybe something like Twitter.  Their personal data would be in their own instance, but it would tie in to a larger Twitter network  for interuser communication, and emergent features, like app-wide search.  If the startup providing the core services went away, the end user would still have all the content entered into their profile, and, potentially, their existing social graph.