What I learned about web development from the new Macbook Pro

May 29th, 2006

I started work as Online Editor for the Missourian last week and as part of the job I got a new Macbook Pro. I have to say, I was a little uncertain about it, after reading so many blog posts about it whining and overheating, but so far the only problem is the somewhat frequent crashing.

That said, the Macbook Pro is supposed to be something like 5X faster than my own 12-inch Imac. In most cases, this extra horse power is hardly noticeable. I suppose it opens programs a little faster and responds a little more nimbly, but not much more than I’d expect from any new computer.

The one area where the new Macbook sails, though, is in surfing the web. Pages load noticeably faster on this sucker. Which brings up a question: Have I been optimizing in the wrong place? I’ve been worried about database queries and back-end drains, but maybe it’s the in-browser stuff — the trendy AJAX javascript that goes on for pages — that’s really slowing down webpages. If this jump in processing power is so noticeable, I have to imagine that there’s an equally noticeable slowness on older machines. I’ve done a little bit of benchmarking on my own computers, but I haven’t really tested accross slower desktops. This seems like something worth looking into.

May 29th, 2006

Fantasy Sports ARE Journalism

May 16th, 2006

The New York Times has an interesting article today about a spat between MLB and a small fantasy baseball outfit in St. Louis. The MLB wants the company to pay to use the names and stats of players. The company argues that this is journalism. The article mostly dwells on the legal debate, only touching briefly on the philosophical question: Is this journalism?

Definitely. And I’d say damn good journalism at that. One of the buzzwords in the world of online, data-driven graphics these days is “play,” which has become an acceptable replacement for the now-taboo and more-or-less meaningless word “interactivity.” As journalists, we are only beginning to learn how to use the, uh, interactive, communicative and “playful” capabilities of technology in order to tell better stories with the information at hand. Does playing fantasy baseball give a richer understanding of baseball? Definitely. And even better, it encourages community and debate around a topic. If only we could marshall such journalism about something like governance or public safety. We’re only beginning to introduce elements of play and exploration into these areas.

I just “graduated”* from the nation’s first journalism school, where our commencement speaker, Adrian Holovaty, delivered an address about the importance of database-driven, playful tools. It might have scared some people, but if you’ve heard Adrian talk about what he does, you know the excitement in his voice. There’s possibility there. Lots of it.

*Thesis, thesis thesis.

New York Times Homicides

April 30th, 2006

My second Google map project, a map of NY homicides, ran in the New York Times on Thursday and Friday. As with the marathon map, this was another project with Rick and Theo of Faneuil Media. The final product is a million times better than it would have been without their patience and suggestions, as well as the editing that seemed to bubble up from somewhere inside the Times.

Still, we ran into some loading issues when the story first ran. All told, the package consists of nearly 1MB of data, which we load onto the map in chunks as high as 150 murders at a time. Despite our best efforts at chunking the data into manageable bits, we still had some troubling handling the story getting slammed by Digg, and sailing up to the second-most emailed story of the day. It seems to be running fine now, but I’ve learned my lesson. Must. Optimize. Code.

Aside from the initial high of just having something on the front page of nytimes.com, it’s been fun to see everyone accross the web talk about the map. Now back to the thesis. . .

Conditional Design

April 22nd, 2006

I’m working on another freelance project right now and have begun to realize something that distinguishes the design of interactive graphics from static in-the-paper graphics. When you’re designing for the paper, there’s almost always a point when the data is locked down and you begin designing. There are some cases — like an election-night map — where you pre-build a container and hope the data fits, but usually you have data and build a design around that. You do it once and it never changes.

When you’re designing interactive graphics, though, the data changes. That’s the point. So instead of making one design that always works, you have to design conditionally. “If I have this information, do this, otherwise do this, or this, or this.” In a way this is just a codification of something we already do when designing graphics; we still make those kinds of decisions. But now you have to tell the software to make them for you on the fly. I always find the most difficult challenge in designing information graphics is accounting for missing information. You end up writing more code to design around something that’s not there, than something that is there.

Maybe this is an obvious point, but I thought it was an interesting distinction.

Boston.com launches my Google map

April 16th, 2006

I’m a little slow to blog about this, but Boston.com has been running a Google map I made of the marathon (it’s linked under the Course heading on the left-hand side, or here, directly). It’s also been on the front page all weekend on the sports tab at the top, which is pretty cool.

A little background on the project. Several months ago I sent a random email to Faneuil Media because I saw their credit line under a Google map on the Nytimes site (They’re responsible for pretty much anything Google mappy you see on the Times.) We exchanged emails and a couple months later they asked if I was interested in working with them on a project, which turned into another project, which turned into the map on Boston.com. If you’re in digital media land, I’d keep my eye out for Faneuil Media. They’re really smart guys cooking up some cool projects, some of which I’ll hopefully continue to be involved in.

As for the map, I’d appreciate any feedback. This was my first foray into Google maps land, and I certainly learned quite a bit. I can definitely see that in order to integrate this into the newsroom more fully you’d need to essentially develop a Google-map-building application. I wrote about as much code just to trace the route and calculate the mile markers as I did to run the final map (not counting the re-write when Google changed their API the week before launch). When I start over at the Missourian, I’ll talk to them about maybe building a library of helper applications so we can have the (non-technical) graphics staff building simple Google locator maps and such to go along with the ones we run in the print edition.

Which reminds me. Special bonus information for this post: I’ve accepted the position of Online Managing Editor for the Columbia Missourian. (Don’t be mislead by the title. In the end I’m still just building the Internets.) My mandate is to shake things up and reimagine the web presence for the Missourian family of publications (Missourian, Vox, Adelante, and MyMissourian). It actually says in the job description that I’m supposed to make the managing editor “uncomfortable.” As you can imagine, I’m pretty excited about the job. I never would have expected this much creative freedom in my first job out of grad school.

Yahoo launches Sorta Nearby News Beta

March 27th, 2006

Yahoo just launched its much ballyhood local news (beta, of course) over the weekend, which brought with it all the talk of yet another threat to newspapers. Curious to see what publications they tapped into locally, I put in Columbia Missouri. No dice. Apparantly my growing city of 100k — big enough for four Walmarts, a Best Buy, and recently a Chuckie Cheese — isn’t big enough to be on the radar of Yahoo Local. To get my “local” news I have to choose “a nearby metropolitan area,” either St. Louis or Kansas City. Now that’s what I call local.

Django on OS X TIGER

March 16th, 2006

After tooling around with django on my webserver for a while I decided to load it locally on my Mac so I could develop, well, locally.
After spending an entire day wrangling various Python problems on OS X Tiger (which comes with Python 2.3.5 installed by default), I thought I’d put some warnings out there for others who come accross similar problems.

To anyone who wants to run django locally on Tiger, I’d HIGHLY recommend first installing macpython 2.4 (and of course the accompanying fix). Do this before you install django, because then django will install into 2.4.

The reason you need to do all this is because 2.3 creates some madenning problems when trying to instal mysqldb, which is the required module to run the mysql database. No matter what I tried, I kept getting errors on install: when I tried to compile from source (requires gcc, which is available in the xcode tools — use spotlight to find and install it) gcc failed to find Python.h. When I tried to compile from the package installer at pythonmac.org it just did nothing (which is even more maddening).

But if you install 2.4, then everything works great. i didn’t try to compile mysql db from source on 2.4, however. Instead I used this package available at macpython.org. I now have the django development web server humming along on my mac just nicely.

An ode to Django (first of many, no doubt)

February 2nd, 2006

Tonight Chase Davis and I got together to start roughing out a new website for the school. It may be a secret so, sorry, no more details for now. After an hour or so of getting on the same page and that kind of stuff we decided to try our hand at creating a simple Django Ap. A mere hour later (with plenty of time for stupid syntax mistakes) we had a fully working admin system complete with lookup fields and pretty colors.

And keep in mind that at this point neither Chase or I could program our way out of a paper bag using Python yet. It was simply amazing. All of the tedius, gut-wrenching forms validation and terrible terrible admin construction was done. immediately. and well.

I’ve Moved

January 27th, 2006

After a year or so of procrastinating, I’ve decided to finally learn Python in order to start using Django. To do that, I’ve had to move over to a new server. It’ll take me a few days to get up and running again (as you can see I’ve at least temporarily just installed wordpress, left the defaults, and called it good enough).

But once I do get up and running, I’ll even start blogging again. How’s that for service.