Posts from Nimble Code...

Explaining Twitter

As regular readers might know, I’m a big fan of Twitter. Perhaps it’s my lamentably shrinking free time or the general state of fatigue that makes it hard for me to coerce sentences together into a coherent post, but it’s a lot easier for me to prolifically twitter about all the profound and mundane (okay, pretty much just the mundane) moments in my life. More personal than the referential style of tumbleblogging but also too short to generally encourage overweening preciousness, Twitter hits that nice sweet spot of letting my friends know what I’m up to, but without it becoming a large chore to do it. Yeah, twitter is stupid, but it’s the right kind of stupid in the way in which it emphasizes that communication is the glue of community and the ease in which it allows everyone to take part. Microblogging is here to stay.

Last week, I gave a talk at the New York Times about Twitter. At the Times, we regularly have lunchtime talks on various educational topics and I thought it would be fun to do one on twitter and why I think it matters (_on a related note, it is interesting to see how various sections in the paper have covered the twitter phenomenon so far). As the developer behind the nytimes twitter feed, I also personally have an interest in seeing how twitter might mesh with more traditional forms of journalism and discuss what we could do further with the feeds, so it seemed like an excellent opportunity to talk about new technology at the Gray Lady. Here are the slides.

I was going for a more oblique visual style on the slides, so you might need to infer the context for a few of them, but the general thrust should be apparent. I’ve also had to redact a couple of slides where I made some suggestions about how the New York Times could expand and enhance its presence on twitter. There was nothing proprietary or wildly radical in them, but I wanted to just head off Gawker or other sites that might erroneously construe them as representing the Grand Official Vision for the New York Times on Twitter. There are some changes I would like to make to the feeds (visual branding of the icons is an obvious one), but my real goal here is to be part of a discussion at the paper and beyond about our place on Twitter and the modern Web at large. Let me know what you think. Thanks.

Tags: web, twitter, presentations

On Returning To Blogging Here After A Long Time Away

In which the author continues to use a title formulation—one that seems right out of the 19th century, but these days denotes a certain overweening preciousness well suited to be published by McSweeney’s—to explain his long absence from-,

Ah, screw it. The question on the minds of my remaining readers (all 10 of you) might be where the heck have I been (sorry for the sad invective, but I’ve been trying to cut down on my cursing for reasons that should soon be clear) and why am I blogging again now? 250-some days is a long day to be quiet, and it’s not like the blog was that awesome before it went on hiatus. What happened?

Good question. To be honest, the main reason is I’ve been rather busy. For starters, I have still been blogging all this while, but for the New York Times’ open source initiatives at our blog Open. The main reason though is that I am a proud father of the most amazing kid in thr world. It’s not that the baby keeps me from blogging, rather it’s just that blogging doesn’t really compare at all to spending time with him (my personal coding productivity has similarly been very low). Especially since, to be bluntly honest, the writing on this blog had become as boring as listening to a Garrison Keillor marathon. Better not to do it.

So, why restart now? Because it just feels fun again. And because I actually feel like it might also be interesting as well to continue my musings on the future of newspapers (and my experiences and experiments along those lines) in a forum that is not as official and fraught with consequences for misplayed snark like the official New York Times blog would be.

This is not to say I will be dishing dirt and spilling secrets. I like my job enough to not want to lose it, and that’s not really my style. But I think it would be fun (at least to me) to post my occasional rants with perspective from inside the New York Times, and perhaps, if I’m lucky, fun for some random people on the Interwebs to read it. Sound like a plan?

If worse comes to worse, I’ll just stop again. It wouldn’t be the first time…

Tags: meta

On Appearing In The Background Behind Two Pulitzer Winners

Adventures in Background Lurking

Wow, this is just so unexpected… Where to begin…

Let me start by stating how amazed I am to be here. As a semipro quasi-journalist wannabe, I’ve been in awe of the Pulitzers for a long time. And while I have daydreamed many a tired morning of winning one, I never seriously believed I would find myself in this spot today: unwittingly standing in the background in a photograph of two Pulitzer winners.

I wish I could say it was skill: my uncanny knack for being sublimely oblivious to photographers focusing on their actual subjects a few feet in front on me. But I must admit that luck has played a far larger part in my current fortune than most other men might want to admit. If not for the chance proximity of me to these fine Pulitzer winners, my labor would be relegated to obscurity like so many other such pictures, scattered across the negatives and memory cards of so many tourists’ vacations.

Of course, fate may have delivered me to this moment, but once there my years of training guided to success. I refrained from blinking, I didn’t pick my nose, I subconsciously stood at the right place to hide the coffee stain on my jeans, all of which made a difference in the selection of this photo over so many others. Luck may deliver you to these opportunities, but once there, it’s up to your talents to make the most of it.

But enough about me; sorry I’m rambling so much, it’s just such a crazy moment! To riff on Hillary, it certainly takes a village to take a Pulitzer crowd shot, and I have so many people to thank for making this day possible. Obviously, a lot of praise goes to Walt Bogdanich and Amy Harmon not just for truly excellent reporting that illustrates the power of journalism but also for standing in front of me at the decisive moment.

To the amazing NY Times photography desk, for their peerless skill at capturing the moment when the winners are smiling and I don’t have a dorky look on my face. They make it look easy, but it’s not! Photography was the key difference in bringing my story to light… Of course, thanks also go to Graphics and Computer Assisted Reporting, who led the way up the stairs but at a key moment went left while I went right. And to the Web Producers who ran this photo on the website, thus ensuring I had my 15 minutes of Internet fame to blog about. And that Website which also gave me a job so that I could one day stand here. Right behind the Pulitzer winners.

Of course, thanks also go out to Renzo Piano for designing this new building with its skylight that allows me to be bathed in flattering natural light as opposed to the harsh judgment of flourescent.

And where would I be without Bill Keller who drove this story every step of the way: from calling the all-hands meeting to naming the awards to pointing out the Pulitzer winners just a few feet from where I haplessly stood.

Finally, none of this would be possible without the fine work of our publisher Arthur Sulzberger, Jr.. Not only does he continue the best damn newspaper in the whole world. Not only did he give us this fine new newsroom. But he continues the tradition of championing excellence and integrity in journalism that all of us stand behind.

For some of us, more literally than others. Thank you.

Tags: silly, pulitzer

Rails Under the Knife

After months of rehearsing and revising, I finally gave the talk at OSCON. I think it could use another month of refinement, but people seemed to enjoy it, and I actually enjoyed giving it as well. If you were at the talk, thank you for coming and feel free to let me know if you have any feedback or questions.

My talk was Rails Under the Knife, a look at the some of the internals of Rails to get a better idea of 3 powerful Ruby techniques:

You can download the slides at

This talk is aimed at an intermediate Rails programmer who knows the basics of Rails coding (I have another similar talk for beginners called Rubyisms in Rails), but still is a bit unsure about the power trio of serious Rails hackery. Hopefully, this will help to provide some inspiration for you to delve into the Rails code on your own. Enjoy.

Tags: programming, ruby, rails, oscon

See You at OSCON, Maybe...

I know I haven’t been posting to this blog much lately (see this link for one reason why). But I just wanted to note that I will be giving a talk at OSCON 2007 in Portland this week, and I would love to talk to you if you are there.

In addition, my coworker will be giving a talk on the DBSlayer (one of the projects we’re open sourcing) that should be fun to see.

Finally, be sure to come to one of our Birds of a Feather (BoF) sessions:

Now I just have to make it there, which is the subject of another angry post about disconnecting effects of technology, or how United Airlines can oversell flights and then randomly bump a father and mother with 2-month old infant leaving them to scramble for a flight next day. To be followed by 45 minutes waiting in a customer service line only to be told I’m supposed to go to a customer service station in the next terminal. Joy!

The shorter version of this story: United Airlines is a miserable and indecent excuse for a business and when they go bankrupt again, I shan’t shed a tear…

Tags: miscellaneous, oscon

Unsafe At Any Speed

Last night, I almost saw my dog killed in front of my very eyes.

We were crossing with the light on 7th Avenue in Brooklyn, having just stopped by Cafe Steinhof to say hi to some of the people outside. When an SUV accelerated into the left turn, I saw a front bumper miss me by an inch and pass over my dog’s head. I then had to pull her out of the front wheel well before he crushed her and bring her back to the curb. The driver was oblivious to my screaming and kept on down the road. Nobody got the plates, and I was on my way running down a few blocks to the pet hospital with Bella in my arms (when you’re on adrenalin, a 55-pound dog seems much lighter).

We should probably rename her “Lucky.” After $500 of tests and screening, she may have emerged without much in the way of major injury (I’m hoping a tear in her Anterior Crucial Ligament isn’t in the cards though), but she hasn’t been too happy here at home, even with the pain killers. So, I guess I should be feeling fortunate…

But I just feel angry instead. This was not an accident that had to happen, and I think the fact it was a massive SUV was the cause of the problem. This is not to say that there are no bad drivers for smaller cars, but it’s a lot harder to run someone over and not notice in a MINI. The driver did not race away in a panic, we were just a bump in the road, a minor skip for the CD system, nothing to notice. And that was the truly scary part to me. How can car makers talk about the “safety” of your vehicle, when they’re really engineering a decrease in safety for everyone else? And what does this do to our cities, our public places, when we create these speed lanes for the oblivious and disconnected to barrel through without any caution? There is no single point to blame here, but I feel like we’re engineering a society disconnected from the effects of its actions, insulated from the outside world, and craving more of the same. And that just fills me with sadness this morning.

Blogging? Me?

Sometimes, it’s best to just come out and say it, so here we go: I suck at blogging these days. This is not me beating myself – I don’t feel bad in the slightest – I just am acknowledging the truth of the matter. Sorry for any of my readers who haven’t consigned me to the dustbins of their feed readers yet, but it’s unlikely I will be producing any riveting content anytime in the near future. I have a lot of changes in my life coming up – new coop! baby! projects here at the Times! – that I’m spent when I get home to blog (of course, thanks to Time-Warner Cable I haven’t had Internet at home anyway) and don’t produce any writing that meets my high standards for Original Blogging Content (TM).

However, I do still have time to feed content into a few other places, for those that need to get their Jake fix. For starters, you can follow the minutiae of my random thoughts (all less then 140 characters) at Twitter. In addition, I have started what’s known as a tumbleblog over on Tumblr, which is where I will post content that’s the opposite of Nimble Code: pithy, snarky, non-technical, and varied. Feel free to check both out and one day I will get back to writing here as well.

Finally, if you were interested in some of the topics from my Future of Newspapers posts but want to see a professional journalist’s perspective, I strongly suggest Frontline’s News War series, being broadcast now on PBS and also viewable on the Web.

Tags: meta

Packaging Your First Gem With Hoe

My name is Jacob Harris, and I am a rubygem addict. I’d estimate I have hundreds of them tooling around on my hard drive, useful little snippets of Ruby or C library wrappers or random noodlings. I might not actually use most of them in any of my projects, but like a vast library of unread books, I enjoy having them around. But for the longest time, I’ve been a freeloader. I’ve downloaded gems, but I’ve never written one, but it’s time I start giving something back.

And so, I’ve written my first gem. It’s nothing incredible – all things have to start simple – but I like it. It’s called Amazon Hacks and it consists of two classes (for now) to benefit people whose sites handle Amazon links. The Amazon::Hacks::Link class contains a few methods to extract an ASIN from any product link, normalize product links, and append an affiliate ID easily. The slightly sillier Amazon::Hacks::Image class puts a convenient Ruby wrapper around the convoluted syntax Amazon uses for its image transformation engine. If you work on a site that links to Amazon product pages (e.g., All Consuming), try it out and let me know if it works for you or it can be improved. It’s simple to get started, simply run

gem install amazon-hacks—include-dependencies

Which brings me to hoe. Last night, I gave a talk on hoe to the NYC.rb group and the slides are here if you want to learn more about the process.

Before last week, I had no idea of what it takes to create a gem, but it seemed like a lot, and I had better things to distract myself with. And it does indeed require a fair amount of busy work, what I call administrivia, to turn your snippet of Ruby code into a packaged gem, and this work has to be started anew for each gem you want to create. Now, as pragmatic programmers, we learn to automate menial tasks whenever possible, and hoe makes the creation of gems a lot more manageable by automating the busy-work away via a set of useful rake tests. The result is more time for coding, faster releases, and more likely you’ll release that gem in the first place. So, give hoe a shot, learn about gems, and start writing gems. You’re a brilliant Ruby coder, it’s time to share it with the world. And when you write that gem, I’ve got a cherished spot on my hard drive for it.

Tags: programming, hoe, gems, presentations, ruby

A Year In Consumption

This year, as an experiment I started living in public. By this, I don’t mean I jumped into the online exhibitionist extreme that seems to be required for MySpace users, but I have started tracking my media consumption of books/movies/music online. So, as a short post to tide everyone over until I gird myself to continue the never-ending newspapers series, here’s a review of my year in media.

In the last year, I read approximately 63 books, of which the most notable were:

This last year I also saw approximately 67 movies and TV shows (new and rentals), of which the following 5 were the best, in no ranked order:

Finally, here were the top 10 bands I listened to last year, courtesy of last.fm

Anyhow, there you have it; my life as a consumer for one year (but am I going to go see movies this weekend? Yes!) Anyhow, happy new year and see you all next year! If you’ll excuse me, I’ve got some more books to read.

Tags: books, music, miscellaneous

My NYTIIH Score, Year Two

Sunset Cranes

It’s that time of the year again, when the air gets a certain crispness, snatches of holiday song fill the air, and everybody communes with their friends and family, joined in warmth by their shared commitment to one thing: figuring out their New York Times Year In Ideas Hipness score. For those of you who missed this last year, I’ve started the personal tradition of reading through the New York Times Magazine’s annual Year In Ideas issue and tabulating how many of the collected phenomena I had known about beforehand. This is no mere game; a sufficiently high score is the only thing that allows me to still bask in the comfort of being “with it”, so please appreciate the seriousness of this moment.

I’ve been a bit late coming to the game this year (it’s been a really busy December), but now is the moment of truth and a big game day question: Now that I actually work at the Times, how will that affect my score? On the one hand, I am that much closer to the elitist, liberal, intellectual mindset the Times is so renowned for, so that should conceivably help my score. But – and I am painfully aware of the irony here – I find myself with so much less time to read the news these days now that I’m actually working for it, which might detract from my score.

If you’ve never read the Year in Ideas issue, give it a gander and see how much you recognize. I’m sure there will be some things you recognize a little, some you’ve known for years (as the picture shows, I’m very aware that shipping containers explain everything), and some things that will completely surprise you. And if you’re feeling competitive, tally up your score and see how intellectually hip you are. My results follow:

The Aerotropolis The New Inequality
Air-Index Impressionism Olfactory Cuisine
The Ambient Walkman Paternity Confidence
The Ballot That Is Also a Lottery Ticket Phantom Pianists
The Beer-Gut Flask Psychological Neoteny
Bicycle Helmets Put You at Risk Publication Probity
Big Urbanism Redefining Torture
The Boomerang Drone The Return of the Corporate State
Cohabitation Is Bad for Women’s Health Reverse Graffiti
The Comb That Listens The Robot Fielder
Creative Shrinkage Rods From God
Digital Maoism Sailing an Oil Tanker
The Diplomat-Parking-Violation Corruption Index Salt That Doesn’t Stick
The Drivable One-Man Blimp Shipping Containers Explain Everything
The E. Coli Wipe Smart Elevators
Empty-Stomach Intelligence The Social-Cue Reader
Energy-Harvesting Floors Sousveillance
The Eyes of Honesty Speed-Reducing Art
The Fashion Czar Spit Art
For-Profit Philanthropy Sporno
The Gyroball Straw That Saves Lives
The Hidden-Fee Economy Taxing Virtual Economies
Homophily Techno Fashion
Human-Chimp Hybrids The Tongue Sucker
The Humane Flophouse Trash-Talk Exegesis
Hyperopia Tushology
Indie Sitcoms Unscratchable Paint
Jujitsu Advertising The Visage Problem
The Lady Macbeth Effect Voting-Booth Feng Shui
Literary Spam Walk-In Health Care
Low Starting Prices Lead to High Auction Sales Web-Based Microfinancing
Misery Chic The Wheelchair Car
Money-Circulation Science Wine That Ages Instantly
The Myth of ‘the Southern Strategy’ Workplace Rumors Are True
Narcissistic Celebrities Yodeling Is Universal
N.C.A.A. Psyop The YouTube Referee Indictment
Negativity Friendships The Ziggurat of Zealotry

There you have it. A total score of 46 out of 74, for a NYTYIIH score of 55.4%! Given the wide-ranging scope of ideas, this might seem decent enough, except last year I scored an impressive 65.38%. Oh the humanity! I guess I’m now longer the idea hipster/coolhunter I thought I was. But can you do better?

Tags: silly, nytimes, ideas

Advertising The Future Newspaper

And now for the second post in this minor series All The News Fit To Serve wherein the blogger attempts to parlay a passing knowledge of the newspaper business into an exploration of how newspapers might change in the Web age. As it should go without saying, these are my opinions, and do not reflect any thinking at my employer or any actual strategy being taken there. Just needed to clear that up. That said, on with the show! This post’s theme: advertising, or how “old media” is not so much different than new media when it comes to bringing home the bacon.

Analyzing the newspaper business today is a study in contrasts. On the one hand, print circulation continues to decline and the recent drop suggested a more extreme decline may be in the future. Net wisdom decries newspapers as ailing dinosaurs doomed to extinction by 2014. On the other hand, papers still enjoy healthy profit margins and often monopoly status in local markets that gives them an advantage in covering a local area unmatched by anyone. Still, newspapers have seen some unsettling drops in readership and the decline in classifieds might be a troubling portent. On the other hand, newspapers are far from finsished and the warning signs have actually helped some papers to retrench and repair wasteful processes. In terms of readership, ewspapers still enjoy esteemed and privileged positions in their local markets that are still worth a lot, but Wall Street is alarmed whenever at the anemic growth or even retreat many papers are suffering. Putting it more simply:

  1. The glass is half full
  2. But the water level is dropping at an accelerating rate

And now every paper is trying to figure out how to refill the glass. But why is declining readership such a concern for newspapers? It helps to understand how the business operates.

You might assume that papers are supported largely by subscription fees and the decline in print readership is troubling because of decline in that revenue. But for many papers, subscriptions only offset delivery and printing costs; indeed, it is possible for some small urban papers to even make a business giving away their product for free! Rather, subscriptions have the unusual property in that they are meaningless as money, but essential as a quantity. Because the real value of circulation is to set the advertising rates.

Like many Web sites, the dominant driver of revenue for newspapers is advertising. Of course, there are sometimes a few other minor revenue streams (licensing, royalties, books), but advertising is such a dominant revenue source that you can directly gauge the health of a paper by the advertising rates it can charge. And since the value of an advertising in a paper is largely determined by the size of the audience it reaches, advertising rates (and advertising profits) are directly influenced by the circulation of the paper. Advertising has been exceedingly good for newspapers – the total ad market for papers is estimated at $45 billion – but the writing is on the wall. Classifieds (another form of advertising) have already precipitously declined, and it’s only a matter of time before commercial advertisers follow suit. The party is over; this is why the papers are getting scared.

There is some good news on the horizon though. Internet readership of papers has been climbing steadily and ad rates are expected to continue increasing at a phenomenal rate – next year, internet advertising is expected to increase by 29% while traditional media advertising will increase only an anemic 1-2% – and some papers like the New York Times have built online web sites that reach a global audience and dwarf the readership of their printed versions. A lot of geeks read these trends and argue that papers should save themselves today by discarding the printed product and surviving off websites only, but such a move would only be suicide for any paper foolish enough to try it today.

The catch is for all its promise, Internet advertising is nowhere near the profitability of print advertising – optimistic estimates suggest it might be there in 10 years. This gap is simply stunning to casual pundits like me who think the Web is a ready equivalent to anything in traditional media. Why is this disparity so great? I think it has to do with a few different factors. One possibility is that Internet advertising is not attractive enough to traditional print advertisers yet, perhaps because of its perceived limitations (you just can’t buy a flashy three-page spread in the first few pages of the Magazine online). In addition, unlike print advertising, no single entity has a monopoly in a local ad market on the Internet. Which belies another difference between the two ad markets: the print version is local, the web version is global. I think it will take a while for some advertisers to want to reach the latter.

All is not bad for for Web advertising however. As stated before, web ads are able to reach sheer numbers of people inconceivable for any print publication today and at all times of the day and night, so some profits might be made in volume. Newspapers could also conceivably farm out web advertising to outside sources too who might have a better chance selling to Internet-savvy advertisers (Google is certainly hoping for this). The main advantage of online advertising in the long run will prove to be demographics however, and how intelligently newspapers are able to target them. The audience for a print ad can only be considered as an aggregate average, since the same ad goes to every subscriber, be they rich or poor, urban or suburban, dog owners and/or video game players and/or coffee drinkers. But the beauty of Internet advertising is that you can target the ads to the consumers more likely to respond to them – I am still talking about marketing to aggregate groups and not individuals (that gets a little too much into privacy), but the groups are much smaller here. This might make Internet advertising rates eventually exceed those of print ads. Newspapers would be foolish to ignore this opportunity. Which is why every newspaper at this point seems to require users to register. As an anonymous reader, you’re worth so very little to advertisers; as a 27-year old female from the Midwest, you (as part of an advertising group) might be worth much more. More readers and better marketing might help to make up for the decline in print readership.

But the real kicker is that for many newspapers, the website will never be able to close the gap.

Online readership growth for any paper must eventually reach a stable plateau where it starts to level off. How do you increase readership to greater levels beyond that? One possibility is to increase the paper’s website to be more than the news. The New York Times has followed this idea and unveiled sites for interactive applications like movies, travel, and home finance. Another possibility it acquiring outside media sites like About.com (NY Times) and Slate (Washington Post). This helps to some degree, but it can also seem like developing portals in an age where portals are no longer relevant. Personally, I think the opposite approach might be the wave of the future. Stop expecting your readers to live their online lives at your websites and distribute your content to them all over the web. But that’s a topic for the next post.

Tags: web, newspapers, advertising

All The News That's Fit To Serve

Here in New York, it’s routine for people you’ve just met to ask you what you do for a living (we inquire about rent when we get to know each other better, about 10 minutes later). As interesting as it was at Alacra, most people’s eyes would start to glaze over when I summarized the various minutiae of reselling financial information online (I eventually learned to describe it through the metaphor of a grocery store). But everybody knows about the New York Times, and I can almost visualize the cascade of associative thoughts—complete with press passes tucked in fedoras, people shouting at each other in a news room, and the obligatory spinning newspaper transition. This then leads right into the next question: that’s the newspaper, but what do you do at Times Digital that’s so different and special? Not much for the moment, and that’s a problem.

The lion’s share of traffic to the New York Times Digital goes to www.nytimes.com, which is largely just a reformatting of the printed paper for a web audience. Sure there are some additional applications specific only to the website (eg, you can search through movie reviews and we now have videos), but you could easily miss them, since the focus on presenting a cohesive look that mirrors the printed product all but guarantees that anything truly exclusive to the website will never be allowed to stand out. Indeed, one might get the sense that the management of the Times thinks of the Web as merely another printing format, rather than a completely different medium in its own right. Despite the fact that online readership obliterates the print subscribers these days, I would honestly be surprised if any newspaper’s editorial board contained a member who only read the paper online and “understands” the web. Furthermore, even “understanding” the Web does not entail grokking how savvy readers browse the paper online—how many newspaper editors know what a tabbed browser is for instance? or why single column is preferable to users with scroll wheels on their mice? My guess is not many. These sort of blind spots are not much of a big deal to those who want to just maintain the status quo in a new marketplace (and how mostly see the online paper as merely a convenience for people on the go), but I think there are so many unique web-only opportunities being missed out that newspapers need to grasp. And I’m going to write the next few blog posts on some ways in which newspapers might uniquely evolve online. I think the problem is not so much the people, but the cultural mindset needs to evolve a new notion of what newspapers are and how the public interacts with them. In the next few posts I will explore some ways in which the notion of newspapers might change online and how that might affect the news of tomorrrow.

But first, a few disclaimers. I’m not singling out my employer only for ridicule. Many of the problems the Times faces in the Internet age (declining readership and a demographic that’s skewing older) are striking the industry as a whole. Also, unlike some smaller regional papers, the Times has been working hard to position itself as a global news brand both in print and online, which could make all the difference between success and failure in any new web ventures. And the paper side of the operations here does at least recognize that something must be done to reverse the slide in readership and profitability and integrate the web and newspaper operations more tightly (although they don’t quite know what that might be). But the New York Times does share much of the mindset current to the newspaper industry, and I do work here, so it’s too easy for me to single them out for examples indicative of newspapers as a whole.

Also, I am not a media analyst or expert in how the newspaper business works. I do not have a journalism background and I do not even have a lot of experience working in a newspaper environment. I have never visited a newsroom and even navigating the old building’s corridors to visit the credit union or get a photo ID left me as bewildered and confused as a tired old man. It’s possible I’ll gloss over something momentous or overstate something glib. But I do think I understand the Web and how people use it and I will treat the idea with more seriousness and depth than the usual buzzwords when geeks try to reinvent the newspaper business. Hopefully it’ll be good, but as always let me know how you feel in the comments.

And finally, I do believe there is a place for newspapers in the Web world and I am working here at the Times mainly because I am interested in being a part of developing new refinements of a business model that’s been unchanged for hundreds of years

That said, on with the show! Newspapers online are rather limited, what are the ways they can change and embrace the web? I will be following up with four further posts organized into distinct but overlapping themes:

Notice how I started the latter three with ‘D’ to be extra clever. Those will link to the further posts when they are published, but stay tuned and watch this space.

Tags: web, newspapers

My Best Blogging Excuse Yet

Hi!

So, if you’ve been checking on my blog lately, you might have noticed I’ve been rather lame about blogging lately (as opposed to before when I was somewhat lame). Sorry about that, I can promise I’ll try to change, but I have a lot of stuff going on in my life that doesn’t involve sitting in front of a computer. Mainly, this:

Yes, that’s right. I’m going to be a father for the first time (expected due date: May 9th). Now that we’ve passed beyond the first trimester superstitiousness and jitters, I want to tell the whole world. Thanks for reading, and hopefully I’ll write something else for you one of these days.

Tags: meta

Or You Can Cheat

Wow, long time no blog. Work and home life have just sucked all the mental energy out of me lately. For those of you who still have kept me in your feedrolls or click here from time to time, I have a new set of slides presented for your personal enjoyment.

Last week—transfixed by the horror of an empty slate of speakers—I decided it was time to give another talk to the NYC.rb and so I spent a few days throwing together a presentation I titled Or You Can Cheat. It’s all about how you can write C extensions for Ruby and also how this something you shouldn’t undertake lightly. I have a very interesting approach to presentations: when I want to learn more about a subject, I throw together a presentation on it. I think the combination of casual interest and the abject fear of humiliation in front of my peers is a great personal motivational tool. This talk continues that trend, and while I can not claim to be a definitive expert on C extensions for Ruby, I certainly know a lot more about the subject now and I think you will too.

If you are interested, you can download the talk here

Or You Can Cheat (600K PDF)

This is a bit more silly and off-the-cuff than Rubyisms in Rails, and I really enjoyed it. There are a few references I should clarify though. First, there is the matter of arepas. The arepa is the official food of NYC.rb and it is a rite of passage here to take visiting Ruby eminences to our official supplier, the Caracas Arepa Bar. Asides from being addictively tasty, arepas serve as a perfect metaphor for Ruby extensions, in that they wrap the tasty ingredients inside a pragmatic corn flour shell. They really are that tasty. Yes, I also suppose I was a bit harsh calling Joel Spolsky a troll, but I had no other term to describe his wild extrapolation that current Ruby interpreter performance augurs that Ruby will always be slow, that Rails is a horrible web development framework, and how you should shackle your entire development environment around the slowest part. But he is right that Ruby currently is slow for some uses, and C exensions are a potent way to resolve those edge cases without throwing in the towel.

And yet, I hope you’re not dropping everything to write them.

Why the lukewarm recommendation? Well, I think Ruby performance has become an all-purpose scapegoat these days. In some cases, this is deserved (we need YARV. Now.), but it’s all too easy to blame Ruby when the real problem is your web server, your database, or some stupid algorithm you wrote that’s wildly inefficient. Rule all that out first before you dive into C extensions for Ruby. Because C is dangerous, C is tricky, and C is just plain no fun. C extensions can be like eating an arepa filled with broken glass if you aren’t careful. But they also are a useful tool for performance and especially for wrapping existing libraries and legacy code.

Which gets me wondering if there are any cool killer apps for C extensions and Ruby. Are there some cool open-source libraries that would be nice with Ruby bindings? How cool would could a combination of Starfish and RubyInline really be? Would we need to use C extensions to create rbsh, a Ruby shell? What other fun things could you do if you had nice Ruby tongs to keep that nasty C code at bay? Let me know if you have any awesome ideas and if you enjoyed these slides. And in return, I’ll try to see if I can actually blog again one of these days. Thanks.

Tags: programming, ruby, performance, presentation

Rubyisms In Rails DRM Woes?

Sorry for the silence. I was on vacation in Alaska recently, so I’ve not really been in the blogging mood. But here is a short note and plea for understanding.

Early reviews (okay, review as I’ve only had one; let me know if you’ve written one or want to do a review) of the ebook have been encouragingly favorable, but the biggest complaints I’ve gotten so far have been about the DRM. I have spoken to my publisher and she’s informed me this was a mistake that was corrected after the first day, and if you’ve been stung with a DRM-afflicted version, we will provide you with a DRM-free replacement. Furthermore, no books in the Ruby Shortcut series will have DRM.

The best way to do this would be to mail me directly and I will pass along your email address to my publisher to send you a replacement copy. My email address is harrisj @ schizopolis.net. It’s probably easier to just click that mailto link above though.

Sorry for the problems. This is a new direction for them and me, and I guess we still had a few kinks to work out. Thanks for your patience.

Tags: books, rubyisms, drm

Rubyisms in Rails Redux

self.promote!

I am pleased to announce that the digital shortcut PDF version (to purchase, you have to go to the Digital Shortcuts page or you can buy it from Safari Sorry!) of my Rubyisms in Rails presentation is finally available for purchase. At 54 pages in length for the low price of $9.99, I guarantee you’ll glean at least 18.5 cents of insight from each page (disclaimer: that’s a mean instructional value; although gorgeous, the title page is not particularly educational in itself).

In addition, the book is also now available in Safari Books Online, and possibly Amazon or other retailers as well. Also, be sure to check out the list of other upcoming Ruby titles.

So, what’s in it? If you’ve read the original presentation, you already have a sense of the scope of material I am covering here, but the shortcut allows me to focus on the material in greater depth. The result is a richer and more thorough examination of the examples presented in the original slides. If you are an intermediate to advanced Rails hacker, you probably know all this stuff already. But if you are a newcomer to Ruby through Rails, or you still find yourself still stuck coding PHP or Java-like Ruby, this ebook might help to align your thinking to the Ruby way.

Will I write another ebook? I’d say yes, but I’ll have to think up another interesting topic. But if you are ever thinking of creating a technical book, I’d recommend starting in a smaller dose like this first. As I discovered, even 54 pages can be a lot of work, and it’s better to test out your time commitments and abilities with something small before you start pitching large references. But that’s a topic for another blog posting. Make me happy: Buy the ebook or read it on Safari and give me your feedback. Thanks!

Update

Fixed purchase link to be go to Shortcuts page (where you can add to cart).

Tags: books, web_coding, programming, ruby, rails, rubyisms

Moving On

Eight years. That’s how long I have worked at Alacra, starting fresh out of school in the heady days of the first web boom. Eight years is an astounding length of time to most programmers, conditioned to a revolving door approach to employment, and it is a testament to what an interesting and nurturing place Alacra is that I’ve been here this long. Furthermore, I’m hardly an anomaly among the developers, most of whom have been here well over five years too. It’s a place where people like to stay, and it feels more like a family than an office sometimes. But I am now leaving. Alacra’s been my only post-college job, and it’s simply time for me to try something new.

Next week, I will start working at New York Times Digital. Yes, that New York Times that is delivered to about 1.5 million readers in dead tree form. That number might seem impressive in itself, but 50 times that number of users read the online web version, meaning I will be working on apparently the most popular online news site in the world. Yow. No pressure there. Seriously though, I am looking forward to the challenges and I hope to learn a lot of new skills on the job. The new office building will also be pretty sweet when it opens.

Still, the change is weird. It’s definitely been a strange two weeks in this liminal zone, and I am filled with conflicting emotions. I am sad about leaving all my colleagues at Alacra, but enthusiastic about the opportunities ahead. It’s an exciting time.

Tags: career, alacra, nytimes

Things I Figured Out

And now for something different (and shorter, for those recovering from the length of the last post). Insanely talented Internet prankster Rob Cockburn recently posted a short and sweet article Things I Figured Out, where he listed a bunch of interesting and slightly stupid revelations he’s had over the years. This has been followed by 15 pages of reader comments chronicling their own brilliant insights and forehead-slapping moments.

I think this is a brilliant idea for an article, and I’ve certainly had my moments of utter brilliance and sheer stupidity (even this blog probably has examples of both). So, I’m going to post a few of the things I’ve figured out on my own or, failing that, learned the hard way. But since this is a technical blog only, there will be no personal idiocy. Just technical things I now know better about now

Okay, that’s all I have so far. But I’m sure the realizations will keep coming. Happy 4th of July everybody!

Tags: project_management, silly, programming, career

Quality Ingredients: Story, Voice, and Metaphor

I’ve been thinking a lot about writing lately. There’s been a practical reason — I’ve written an ebook version of Rubyisms on Rails that I’ll tell you more about later — but my motivations are more abstract. I’ve been reading way too many technical books lately. Many have been good, but as one afternoon browsing the bookshelves will demonstrate, most are terrible. As Joel Spolsky exclaims in exasperation in the forward to the excellent book of software essays The Best Software Writing 1:

The software development world desperately needs better writing. If I have to read another 200-page book about some class library written by 16 separate people in broken ESL, I’m going to flip out. If I see another hardback book about object-oriented models written with dense faux-academic pretentiousness, I’m not going to shelve it any more in the Fog Creek library: it’s going right in the recycle bin. If I have to read another spirited attack on Microsoft’s buggy code by an enthusiastic nine-year-old Trekkie on Slashdot, I might just poke my eyes out with a sharpened pencil. Stop it, stop it, stop it!

For Spolsky, the most important ingredient missing from dull technical books is story. As he puts it, good tech writing captures your interest by creating a plausible or interesting story. The resulting text may be much more verbose — in an example, he spins out the insipid truism “a good team leader provides inspiration by setting a good example” into an involved 400 word story — but the story is what makes you want to keep reading more. Looking at some recent purchases, I can see the effectiveness in some notable recent books. In the simplest case, you can go far with a compelling example application you elaborate in each successive chapter like Enterprise Integration with Ruby does. is built on the solid story of an example integrated in each chapter. It’s not necessary to have one big story, however. You can also structure your book as a sequence of independent smaller stories, as recent favorites Practices of an Agile Developer and The Art of Project Management did so well.

On a contrasting note, Amy Hoy in an article disparaging the suggestion that being a woman is what solely makes her a good writer, suggests another important ingredient is breasts voice. The way to make a technical article compelling is to make it personable. This is something that Joel hints at with his dig at “16 separate writers” and it is something certainly borne out by the selections in the book — practically every selection is a blog posting and is thus opionated, direct, and personal by their very nature — but Joel focuses more on what is being said than how it is said. Voice matters, and nobody has done as good a job asserting the importance of a personal tone than Amy has. But it’s hard for technical writers to understand. When we are first learning to write essays in elementary school, we’re taught to prize dispassionate objectivity above a personal voice. This is not to blame teachers; that makes a lot of sense when you’re teaching writing to fifth graders whose idea of an argument might run along the lines of “This book is bad because I didn’t like it,” and good writers learn eventually to balance their personal opinions and objective fact in essays. Unfortunately, nerds usually aren’t good writers, and I think too many books are written by developers too mortified to express their personalities (even if they could). But if you edit out your personality from your writing, you might as well do your readers a favor and delete the whole book. An example of books that benefit from voice are Martin Fowler’s classic Refactoring and the more recent book Refactoring Databases. Refactoring code is a discussion prone to tedium, but the books succeed because they sparkle with clarity and reflect the single voices of their authors.

Before I continue, I should clarify a few points. Joel’s emphasis on story and Amy’s on voice are not mutually exclusive: I can explicitly emphasize that something happened to me or something happened to me, but both voice and story exist in any compelling technical narrative. The second point is you can only do so much. There will be always be some dullness that’s unavoidable in technical literature. It’s simply impossible to make some content interesting (ever read a truly fun man page ever?), and if you tried to make it fun, you’ll actually annoy your readers (“Hey kids! Let’s sing the arguments to GCC as a song!”). But a technical book is more than a listing of compiler options or valid function parameter or working code samples. Like introns in DNA, the bulk of any technical work is interstitial material that holds the boring stuff together. And that is where your writing should shine.

Which brings me to my point. I want to draw attention to another important ingredient that complements those two yet gets short shrift: metaphor. To see what I mean by metaphor in action, look at my DNA example from the previous paragraph (I know, technically it’s a simile). Assuming you knew what an intron is — in a book I obviously would explain it more explicitly than a blog post — that aside conjures up a rich web of allusion that clarifies the emphasis of the point (that the bulk of your book might not be technically explicit and yet still be meaningful for the whole). The beauty of metaphors is they evoke all sorts of mental associations in your readers that act like scaffolding (a metaphor) that helps your readers learn material by building upon concepts they’re innately familiar with. And they come with an expressive power that allow you to express complicated ideas succinctly through allusion (ie, instead of having to spell out what scaffolding is used for like I just did, you can just describe it as scaffolding and leave the reader’s brain to fill in the rest).

Metaphors are truly useful things, and since this is my soapbox (another metaphor!), I’ll declare that metaphors are woefully under-utilized in technical writing. I think one reason for this is technical writers are discouraged from metaphor to be more universal — if I make a metaphor specific to New York City, it might fall flat to a reader in Germany or India; not only would I have to explain my technical content, I’d have to explain my metaphor! You can avoid regionalism pretty easily though, so I think the biggest stumbling block is geeks themselves. Mainly, that same literal geek writer that sticks to the facts and recoils in horror from anything that smacks of poetry.

This is a dearth made more unfortunate because good metaphors reinforce both story and voice. If you are boring like me and have no personal experiences to relate, you can fabricate your narrative on the back of a metaphor instead. And your use of metaphor breaks your text out of the dry and technical and provides a place for your unique personal voice to be expressed. To give an example of this in action, I recently had to explain the virtue of iterators in Ruby for the ebook on Rubyisms. I could describe how they work technically easy enough, but I felt that a metaphor was the best way to explain why iterators make more sense (and given the number of programmers still iterating through array elements in Java, this is something most programmers still don’t understand). So I brought out an unlikely metaphor to anchor why iterators are better: traveling crosscountry on local roads vs. highways.

I’ve described this book as a drive down local roads, but now it’s time to take to the highways. Highways are fascinating concepts. Although they seem like an inevitable part of the driving infrastructure, highways are actually quite new in the history of roads. As recently as the early 1900s for instance, a drive across the country was essentially the same as driving across town, navigating a dense network of local roads that would get you there eventually but not efficiently. Routes were not clearly demarcated, and road maps as we know them didn’t exist. Each driver would have to figure out their own routes, a challenge when navigation comprised only instructions like “take right at third fork in the road” or “turn left at the willow tree.” Of course, getting lost was inevitable. And accidents and mishaps were all too common on neglected backcountry roads. This might seem a cartoonish depiction of long-distance driving, but it’s that’s largely a reflection on just how fast, safe, predictable, and even boring intercity travel has become due to highways. And that’s because the highway changed the very nature of long-distance trips.

Highways are built not from asphalt and cement, but from limitations. Instead of connecting to every road, a highway runs largely isolated from local roads with only a scant selection of exits where new traffic can enter and leave. Highways never actually intersect directly with other roads except by exits and ramps, meaning traffic control mechanisms like rotaries and stop lights aren’t needed and traffic can move faster. This also has the additional effect of discouraging local traffic from taking the road, leaving the road for the serious long-haul motorists. Most significantly of all, highways simplify navigation. Rather than picking a route over local roads, the highway is a road that limits your route. To enter a highways is to largely surrender navigational choices: there are no turns or forks in the road to decide among; backtracking and U-turns are forbidden; your only option is to drive forward until you reach your exit. You can drive faster because you have less to decide, and you can navigate easier because you have less to consider. And so a trip from New York to Chicago used to be an impossible slog of endless directions. Now, it’s a largely mundane trip of only 3 highway segments (although admittedly, you stay on I-80 for an astonishing 750 miles of the way).

I then go on to explain that running through array elements by incrementing an integer index is a lot like driving cross country on local roads, prone to complexity, mishap and error. From there, an Iterator is a lot like a highway, less worrying about navigation, more involvement with the act of driving. I’m not posting this example to toot my horn in any way (and not as a teaser for the book, although it works that way). It’s just a nice recent case where I pulled a metaphor out of my writer’s toolbox. From there, I was able to spin out the explicit technical reasons why it’s better to use iterators, but I feel I can succeed because the reader is able to relate to the scaffolding of highway driving, a metaphor well understood by much of my audience (sorry to readers in deepest Papua-New Guinea). I think you’ll agree it’s a lot more vivid to think of access violations as wrong turns and fencepost errors as navigational errors. You can’t help but learn the material because you already know it in some sense. Metaphors aren’t poetic navel-gazing, they’re a necessary ingredient to the book. So, mix them in sometime. I think you’ll like the taste.

Update: The book is coming out soon. I’ll post details when I know. Watch for an announcement soon. I promise!

Tags: books, writing, metaphor, story

Short Takes: PDAs, Planet Argon, and Happiness

Time for more quick little roundups of notes and followups on things I’ve mentioned before.

Life Without a PDA

This is random, but I now have written for an alternative weekly. About six months ago, a friend of mine who lives in New Haven and writes for the New Haven Advocate told me they were thinking of starting a personal tech column (think of a snarkier Walt Mossberg or David Pogue), and he wanted to know if I was interested. The pay would be low of course (this is an alt. weekly), but visions of free electronics swag kept dancing in my head. Thus, I wrote a few audition columns before Christmas. The column idea was eighty-sixed, but one of my submissions apparently lived on. And it surfaced for last week’s issue as Against Palm Pilots or How one man lost his religion and re-discovered note-taking on paper. In which I lay out my long-running problems with the Palm and the happiness I’ve found instead with Moleskines and the Hipster PDA (Merlin, they left out the credit, but know it belongs all to you.) I like writing for a more general public audience, and I hope I will get to do more columns in the future.

Are You Happy?

I realize I should also have linked to the original book on Flow. For those who want to read more recent discussion on the subject, Lifehacker highlighted some good recent treatments from FastCompany and Metafilter on the book and application. And of course, 43 Folders has a nice roundup of links as well as a related discussion on zanshin. Scott Berkun touches on how Flow relates to sucky software. And so on.

The point here is people are doing Ruby on Rails not because it comes within some whiz-bang IDE (it doesn’t) or it has a bunch of wizards and graphical builder dohickeys (it doesn’t) or even because it promises productivity boosts (they’re there, but as a result). Rather, they’re excited because with only a text editor and a copy of Pickaxe by your side, you can do some amazing things and get into that state. And that makes you happy. And that makes you productive, because you actually want to do the work.

Planet Argon Rocks!

Wow, I was wondering about an uptick in my readership, and now I know I have Robby Russell to thank! harrisj loves Planet Argon! Seriously, Robby and his brave and fearless crew are doing some of the smartest and most honest coding and writing I’ve seen, and you should definitely read Robby Russell’s blog and and book Programming Rails when it comes out. I would also like to point out the excellent blogs of Jeremy Voorhis, Dave Gibbons, Jason Watkins and the rest of my fellow Planet Argon inhabitants.

New Camera

One last thing. The Canon S400 that I revived through surgery died again thanks to an accidental coat check at the Van Gogh Museum in Amsterdam (the attendents seem to not so much hang coats as fling and kick them I guess). So, after a bit of a photographic drought, I now have a Panasonic Lumix DMC-FZ7, and I love it. There is something wonderful about the feel of it in your hand, and it takes much better pictures at a fraction of the price and weight of Digital SLRs.

Tags: flow, pdas, gtd, newhaven, planetargon, robbyrussell
next page »