Kiln's Evolution, Part 1: DVCS as Code Review

One of the things that really sucks about doing online code reviews is that, in all the systems I know, your code reviews do not integrate with your source control. If the code reviews are versioned at all—and they’re frequently not—then they’re in an entirely different system than your real VCS. For larger reviews, where you’re talking about a major piece of functionality, that means that your source control system will end up lacking the history of how a feature came to be. In other words, the more you use code reviews, the less actual history you have in your VCS.

That’s totally broken. You’re being punished for doing the right thing.

A little over a year a year ago, Tyler came to me and asked me to join him in the Django Dash, a weekend code sprint. Tyler and I had been talking about the code review problem, and had been thinking of writing our own that lacked these issues. Django Dash seemed like the perfect time to try to actually do that.

That opened up a question: how do you actually achieve better code review? If you accept that a huge part of the problem is that the code review history is out-of-stream with your VCS, then it follows that you have to somehow store the in-process code in the VCS.

In most systems, that means using branches. But branches in almost any system suck. Everyone has a horror story about trying to do a merge in Subversion, or CVS, or Perforce—and these are usually not meaningfully large merges; just small feature branches. Trying to use branches for long-running code reviews in these systems simply isn’t viable.

But DVCSes are great at handling this kind of problem. To be distributed, they have to have extremely robust branching and merging systems. Because their systems are so good, it’s very common in DVCSes to do quick experiments and features in their own branch, then merge when complete.

Tyler and I were both big fans of Mercurial (in fact, we convinced all of Fog Creek to switch to Mercurial from Subversion), so using Mercurial as our DVCS base seemed like the best bet. After some discussion of the technical details for making the system work, we got a good night’s sleep, woke up early, threw a nice breakfast on the table, and started coding.

Forty-eight hours later, we had our first prototype. When users wanted to contribute code to a repository, they would fork the repository, push all of their changes to the fork, and then request a review on the fork. Users would see the exact diff of what they would be approving to the repository; no more, no less. Code could not be approved unless it had already merged in the trunk, ensuring that the user who wrote the code had taken care of the merge. When the review was approved, it’d be seamlessly merged into trunk (guaranteed seamlessly, due to the previous rule), with full history.

The design was inflexible and unintuitive, and would have had serious issues in a shipping project, but we achieved what we set out to do:

  1. Approving a code review was the same as pushing it
  2. Which meant that we could fully separate the concepts of code author and code approver
  3. And which meant that the full history of reviewed code was completely preserved

The original Kiln code review

A screenshot of the prototype that would later become Kiln

Even in its nascent form, the tool was already impressive enough, and unique enough, that we won the Django Code Dash.

Tyler and I talked of making our code review tool into a real product, but we were knee-deep in Copilot work, so it had to wait. But we had proved, if only to ourselves, that using a DVCS, even in a centralized model, provided some very unique capabilities that simply were not possible in other systems.

When Joel announced a few months later that FogBugz needed a source control system, we’d be ready.

The Launch of a Secret Product

For the past year, an odd thing has happened, if you’ve followed my doings. My work on Fog Creek Copilot seemed to dwindle, I became tight-lipped about what I was working on, and I started getting really excited about an upcoming product release. Also around this time, my knowledge of Mercurial, Python, C#, and ASP.NET MVC all seemed to dramatically increase, even though my free-time code output shrank to nothing. What was going on?

Oh, the usual. I was working on a top-secret brand-new project. And now, it’s released to closed beta.

Kiln, the modern take on DVCS

I’d like to introduce to you Kiln, a brand-new source code hosting and code review tool from Fog Creek. Kiln introduces what I believe is a truly novel take on code reviews that integrates the strengths of Mercurial and FogBugz to provide rejectable code review after commit. We also have some unique takes on Mercurial features, such as the ability to preview what will go into a merge beforehand, really awesome branch management, the most beautiful DAG view I’ve seen in any DVCS product, and lots more.

Over the next few days, I’ll be providing a couple of blog posts detailing how Kiln was developed. In the meantime, go check out Kiln and sign up for the beta. We’re approving new people for the beta on a regular basis, so if you don’t get an invite immediately, don’t worry; we’ll get to you sooner rather than later.

Adam Savage on Obsession

I normally avoid reposting news I find on other news aggregators, but sometimes I come across an item sufficiently singular and unique that I feel I have no choice. In this case, Adam Savage of MythBusters recounts his attempt to sculpt a perfect recreation of the Maltese Falcon as a way to explore the nature of obsession. The talk is at once highly entertaining and deeply moving. In a way I never fully grokked when watching MythBusters, Adam is a true geek.

Secret Santas at Fog Creek

You know you’re getting too casual with your coworkers when your Secret Santa leaves this on your desk:

How to Talk to Girls

(Thanks to Tyler for the picture.)

Lies of the New York MTA

This morning, on the 6 train, I saw the following advertisement:

Believe it or not.

In 1986, the subway and bus fare was $1. That’s $1.89 in 2008 dollars. Today 30-day Unlimited Ride MetroCard brings the fare down to $1.17. Believe it.

I have a better idea: I’ll accuse the MTA of engaging in false and deceptive advertising practices.

The ad makes a completely bogus comparison. There were no Unlimited Ride MetroCards in 1986. Hell, there were no MetroCards in 1986. There were single-ride tokens. The equivalent of a single-ride token today is a single-use MetroCard, which retails for $2.00. This is a 6% increase in fare since 1986.

But, just for fun, let’s check their bogus comparison. Where does the $1.17 come from? Well, a 30-day Unlimited Ride MetroCard is $81. Even if we assume you ride the train twice a day, every day, for a total of 60 times over the life of the card, that means you’re spending $1.35 per ride—still higher than their $1.17. Indeed, you have to ride the train 70 times in 30 days to get down to their $1.17 price point. Where’d they get that number? Who knows. They could just as easily have decided that New Yorkers ride the train fifteen times a day, and claimed a 30-day unlimited card drops your fare to 18¢. The beauty of unlimited v. limited comparisons is I can make up whatever numbers I want.

What’s so stupid is that there’s a comparison that the MTA could have made that would have been valid, and does translate to a real fare drop. When the MTA introduced MetroCards, they instituted a discount program: for every $x you put on the card (currently $7), you get a free ride. As long as you’re buying rides in bulk, the cost of a ride has dropped to $1.75—which is indeed a solid 7.5% drop from the 1986 price.

But that’s not what the ad claims. The ad makes a bogus comparison, and should be called out for the tripe it is.

Believe it? No thanks. I’ll stick to the truth.

Happy Thanksgiving

As my American readers sit down to enjoy a happy Thanksgiving meal, I wanted to take a moment to wish everyone a wonderful holiday season.

Rachmaninoff Had Big Hands

I don’t want to get into the habit of posting videos, but having played a lot of Rachmaninoff when I was younger—including Prelude in C# minor, Op. 3, No. 2—this video had me in hysterics:

For the record: when I last played the piece, I couldn’t play the full chords, either.

(Courtesy of The Old New Thing)

Google Continues Quest to Index All Atoms

Google has begun digitizing old newspapers, making certain old Onion stories a bit less funny.

I hope it goes without saying that I love technology, but…at the same time, there’s something I used to find infinitely more gratifying about having to use card catalogs, paper indexes, and microfiche. That romantic nostalgia makes me keep my diaries in Moleskines and sketchbooks, causes me to allow piles of books to keep refuge in my apartment, strikes fear into my heart when I see the disturbingly named Kindle, and explains why I may own cutting-edge computers, but can’t give up my fountain pens. As much as technology buys you speed, it costs you personality, until the only concrete objects you interact with do little more than reify equations and thoughts into some transient form you can ingest and vomit out at a later date. When you can acquire information with no effort, its value disintegrates. Sometimes, I worry that this yielding to an ephemeral reality, not a loss of privacy, is the price we pay by having Google around.

The Geek Globetrotter

Far too much travel

This was kind of funny, until it really processed that I’ve got three more confirmed trips this year and a fourth in planning stages with a fifth likely—and that’s only good enough to be #2 in my network. I might want to admit I have a travel addiction.

T-Rex on Automation

I think T-Rex may have a point, for once…

WALL•E's Soundtrack

In my earlier review, I compared WALL•E—at least the first half—to a silent film. (True, the sentences, “Directive?”, “WALL•E,” “EVE,” and “Classified!” are indeed spoken, but since that’s it, I’m willing to fudge a little.) Silent films were, of course, not actually silent; a pianist—or, for larger locales, an organist, or even an entire orchestra—provided music to accompany the visuals. I had hoped that WALL•E would honor that tradition by having an outstanding soundtrack. I was not disappointed.

The WALL•E soundtrack, though certainly not the most technically complicated score I’ve heard in recent years, does stand singularly one of very few scores where I can re-experience the movie simply by listening to the music. Specifically because WALL•E and EVE have so few words to speak, my aural memories of them are through their orchestral backing. I can still see the dreary desolation of Earth in 2815 A.D., laugh at WALL•E’s inquisitiveness in Wall-E, feel WALL•E’s horror at EVE’s comatose state in Worry Wait, and feel their carefree love for each other in Define Dancing. That’s something I can say about depressingly few soundtracks these days. I’m very happy that WALL•E’s did not disappoint.

WALL•E: The Last Great "Silent" Film

I was more excited about the arrival of WALL•E than I have been about any movie in a very long time. WALL•E would be one of the last Pixar films with minimal Disney influence, promised to make us fall in love with a pair of robots, and, I hoped, would give the Pixar a chance to redeem itself from Cars (also known as “Doc Hollywood with less nudity and more automobiles”). Besides, the trailer for this post-apocalyptic G-rated adventure used part of the soundtrack from Brazil. What wasn’t there to love?

Unfortunately, last week, seeing WALL•E on opening day looked problematic. The annual Fog Creek summer party was on that Friday, plus most of the people I wanted to see the movie with were busy Friday night and gone for the weekend.

So I did what any sane person would do: I dragged my roommate and an unsuspecting intern to the 12:01 AM showing on what was, technically, Friday morning. After a few quick naps and a few quick Redbulls, we wobbled our way into Times Square, bought our tickets, and headed into the theater.

By the time we arrived—still a good twenty minutes before the show started—the theater was packed, and the audience already on the edge of their seats. Unsurprisingly, I saw very few children; the audience was composed almost entirely of twenty-somethings and a few thirty-somethings, many of whom were clearly diehard Pixar fans. That made me happy: seeing a movie with an enthusiastic crowd can add a tremendous amount to a movie.

(And a dead crowd can subtract. I saw the movie for a second time Sunday afternoon, and was…well, saddened by the audience’s reactions. WALL•E‘s start-up sound—the same as the Apple IIGS—spawned laughter and applause at the initial screening. The reaction from the audience the second time I saw it? Nothing. There were a half-dozen other jokes that the Sunday matinée’s audience simply failed to grok or find funny, leaving me the only one laughing in the theater.)

Finally, the movie began.

First, I have no idea how Pixar managed to slide the opening short—entitled Presto—past the Disney censors. The cartoon, though hilarious, steals liberally from the best of the maniacally violent Warner-Bros. cartoons of yesteryear. Although not worth the price of admission by itself (movie tickets in New York are up to $12), I definitely look forward to being able to add it to my DVD collection.

Finally, the main feature began. Would WALL•E live up to my overhyped expectations?

In my opinion, WALL•E is two movies. One of them truly is the best movie I’ve ever seen. The other is solid. Combined, it’s still an amazing piece, but I find myself wanting for what WALL•E could have been.

The first movie, which lasts for roughly forty minutes WALL•E, has virtually no dialog. One of the characters is a cockroach with no facial expressions. Another is a trash compactor with binoculars for a head. The third has no mechanism whatsoever for expressing emotions other than two pupil-less eyeballs that are always the same shade of blue. Yet, I was almost moved to tears. The emotions expressed were so beautiful, so pure, and so dire, that I can’t think of any way to describe it except as visual poetry. It is emotionally and visually exquisite, and devastating.

The second movie, which roughly corresponds with the latter half, has substantially more dialog, shallower emotions, and more plot. The haunting poetry of the first section devolves into more typical Disney fare. I still thought that this movie was enjoyable to watch and significantly higher-calibre than most movies I see, but it lacks the artistry and panache of the first half. To be honest, I felt cheated. WALL•E‘s opening promised so much more. That the second half was merely above-average left me oddly disappointed.

For this reason, I find rating WALL•E painfully difficult. WALL•E could have been the last great silent film—and, for awhile, it was. I want this WALL•E to be divorced from any emotions I may I have about the work as a whole; I want to be able to point to it and say, “This is what movies should be.” But the actual movie simply does not maintain that bold vision throughout, and, unless you have a brutal taste for tragedy, the movie-within cannot stand by itself.

I did love the movie enough to see it again two days later—something I don’t think I’ve done since Aladdin—and I’ve recommended it heartily to family and friends. I just wish Pixar had had the courage to finish the movie with the same bold vision that they had for the first half.

The Ultimate Philosophers

Whenever someone asks me who my favorite philosopher is, my answer usually elicits either a blank stare or a chuckle.

My answer is always Bill Watterson.

Watterson’s comics meant a lot to me when I was growing up. Even though I was hardly an impossible-to-manage kid (cough), I empathized strongly with Calvin’s view of the world. As a constant daydreamer myself, his blurring of reality and fiction spoke to me in a way that few other works, comic or otherwise, really could.

As I grew older, Calvin and Hobbes aged with me. The more adult themes of the comic began to appear, and I started appreciating that, as much as Calvin and Hobbes could be a pure comic strip, it was also, in a very real sense, a philosophy told in comic form. That philosophy, ultimately, was simple: love life, don’t grow old, don’t be afraid to see things differently than others, and never forget the value of love. How is that not a more beautiful, more tangible, philosophy than anything Kant, Nietzsche, or Mendelssohn ever came up with? Not as complex, certainly, but more applicable. When my parents lovingly gifted me the Complete Calvin and Hobbes for my birthday, I gave it a prominent place on my bookshelf, and have enjoyed reading a bit whenever life gets me down.

I guess it’s for that reason that today’s xkcd made me smile. xkcd, like Calvin and Hobbes, can be a pure comic, but frequently ends up actually being philosophy that uses the comic format as little more than a vehicle to discuss deeper ideas. I can’t help but appreciate the idea of the two comics’ main characters running into each other. It gives me a wonderfully fuzzy feeling for some reason, and makes for a lovely conclusion to an otherwise frustrating week.

An Ode to Primer

One of my absolute favorite movies is Primer. Written, directed, and scored by an engineer who also serves as the film’s leading actor, Primer stands as a testament to what science fiction can be. Too many science fiction works either are nothing but social commentary that use science as a glorified MacGuffin, or else have plots that exist primarily to rant about new scientific ideas. Primer has neither fault, beautifully embracing hard science while having a riveting interpersonal drama based on trust and deceit. Primer‘s success is all the more amazing when you learn that it was shot for a budget of $7000 on Super 16 film stock. That’s simply unheard of these days.

Scott Tobias at The Onion A.V. Club apparently feels the same way: this week he has written a wonderful article lauding Primer‘s incredible production values. Scott talks at length about how the use of film stock over digital, and the singular drive of the film’s creator, resulted in a surprisingly high-quality independent film. It’s a good read whether you’ve heard of Primer or not—and, if you haven’t, will hopefully help persuade you to add it to your Netflix queue.

(Hat tip: kottke)

Life of the Simple Folk

For most of my life, I’ve been deeply involved in technology. My father taught me GW-BASIC when I was five. I had traced Smalltalk down to the bytecodes by the time I was twelve and from there to 68k assembly a year later. I insisted on disassembling most of the objects we had in the house in an attempt to figure out how they worked, and to build my own (which, unfortunately, tended not to work as well as the originals). In many, many ways, technology has defined me for most of my life.

Yet at the same time, it’s been a love-hate relationship. As much as I love technology, there’s little question that it’s made my life more and more hellish. Simply keeping track of the incoming deluge of instant messages, emails, tweets, phone calls, Facebook pokes, and more, has gotten to the point where most of my day seems to be taken up entirely by nothing but trying to keep in touch with everyone. Living in New York, the problem has simply gotten worse and worse. The constant noise. The constant pollution. The unceasing stream of needy women who want my body. Not only am I crushed by people trying to get in touch with me; I’m crushed by those who succeed.

Well, I’ve had it.

I’ve long respected the Amish. They have tight-knit groups, strong social standards, and manage to be wonderfully self-sufficient. In an age when the rest of the world cannot do anything but focus on drugs, money, and late-model DeLoreans, they represent everything that could be right with the world, a harmony between intellectual and spiritual, between man and nature, between sacred and profane. But there’s a problem: the Amish are Christian. I’m Jewish. So, I’ve done the only logical thing: I’ve decided to convert.

I’ll be getting my affairs in order over the next several weeks, selling most of my possessions to give to the bishop, and learning the Ordnung of whichever fellowship I end up deciding to join. I’ll try to blog about the experience as much as possible so that anyone else who opts to follow my same path knows how to easily do so. If you’re in the NYC area and wish to join me for key parts of my quest, I’d strongly encourage you to join my twitter feed (username dblywteef) so that you can tag along easily. Feel free to ask, either here or in email, any questions you have about why I’ve decided this is the only reasonable course. I’ll get back to you as quickly as possible, but please understand if I’m a bit slow to respond to work and personal reasons.

I guess that’s it. It’s been wonderful being on the forefront of technology for the past twenty years, but I think it’s high time that I took a break and returned to the finer things in life.

Thanks everyone for your kind support. I’ll see you on the flip side.


Nota bene: This article was written on April 1st. Please reflect on that date before responding.

A Gentle Story for the Sabbath

Not remotely related to science or technology, but this nice story of a mugging taking a beautifully positive turn is more appropriate for the end of the week anyway.

NYC Police

Bloomberg announced today that New York City will be deploying new cops to crime-ridden areas of Brooklyn in an attempt to decrease the city’s crime rate. That’s a really spiffy idea, and I support it, but, personally, I think that maybe stemming the mass exodus of qualified police officers—perhaps by increasing their salaries so they’re at least competitive with nearby cities and towns that have a lower cost-of-living—might be a better idea. In order to finance a pay raise, I propose a $100 fine for anyone on 34th St. walking slower than 2 M.P.H., and a $500 fine for gaggles of teenagers walking more than two abreast on narrow sidewalks. These two changes alone should bring in more than enough not only to increase officer pay, but to ensure the T line actually gets completed if federal funding evaporates again.

Mental Break

As the world gets more insane, I sometimes need a mental break. For example, President Bush covering U2’s Sunday Bloody Sunday.

Am I bad for liking this version more than the original?

Chicken Chicken Chicken

Chicken chicken chicken chicken, chicken chicken chicken chicken. (Chicken chicken chicken—chicken chicken chicken—chicken chicken.) Chicken chicken chicken chicken chicken chicken! Chicken chicken chicken chicken chicken.

Blast Your Friends

One of my friends adamantly refuses to carry a cell phone on him. Although I don’t have a lot of sympathy for that these days, I’ll be changing my opinion very quickly if blasting your friends starts to become common.

Memories

As I stand on the dawn of a new year, I find myself drenched in the past.

This is the first Rosh HaShanah in five years I won’t be spending at Duke, and the first in two years I won’t be spending with someone I love. Perhaps for that reason, I am completely unable to get the smells, the textures, and the sounds of college out of my head. The smells, in particular, carry with them an unreasonable power to move me through time. I don’t merely remember, I feel I can actually smell the luscious scent of the Duke gardens, the coldness of the sanctuary’s tile floor, the succulent aroma of Henry’s cooking, the seductive hint of a young lady’s perfume. With those smells come back vibrant images and emotions that have twice moved me to tears. My psyche for the moment is unwillingly, relentlessly dragged backwards, out of the present and into memories that have until now lain dormant.

Rosh HaShanah and the Days of Awe have always been a time of intense introspection for me. Whether it’s merely the deluge of religious practices, or whether it’s something more primal in my heart, I find myself always asking, What am I doing? Why am I doing these things? What lies ahead of me, and how much of that will be left to my control? As part of answering these questions, I must look backwards. But looking backwards, and living in the past, are different, and I have slid far too much into the latter.

Therefore, this year, during the Days of Awe, I am going to turn myself forward. I am blessed with a loving family whom I can see easily and frequently. I have a very close batch of kind and intelligent friends who are extremely supportive. I have a stimulating and fun job working on things I love. These are things that I want to carry with me into the future. To the extent that I look backward, I will be doing so with the intention of learning how to maintain and grow these blessings.

bit qua bit 2.0

I barely ever visit blogs anymore. Instead, I tend to just read everything in the comfort of my news reader (Google Reader, if it matters). Nevertheless, I still think there’s a place for having a good website design, and bit qua bit’s stank like a disemboweled skunk in an outhouse. So, rather than sleep tonight, I’ve been working like mad trying bang out the last of my redesign before the holiday, and I’m happy to say that I’ve basically succeeded. There are a few things I don’t like, a lot that needs a bit of polish, and one or two bugs left, but, overall, I’m extremely pleased with the result.

Comments on what you like and what you don’t more than welcome; I’m quite willing to admit that web design isn’t exactly my strong suit.

Edit: Any IE experts want to help me figure out what magical incantation I need to say to make the design look the same in Explorer as it does in Opera, Firefox, Safari, and basically every other browser made except IE?

Duke in the News

It’s so nice when bad things happen to bad people.

Now if they could just do something about the other idiot in this affair…

Who Killed the Electric Car?

A few days ago, I watched Who Killed the Electric Car?, a documentary covering the growth and decline of electric cars in the 90s. The movie focuses on the GM EV1 as its poster child, interviewing several EV1 drivers, sales personnel, and parts manufacturers. Because I had only a dim memory of the EV1, or even of the concept of electric cars being on the road, I found a lot of the documentary fascinating.

To be sure, the documentary has a clear message: the electric car was killed because it was too reliable (hurting dealer’s repair centers) and too damaging to the oil industry, and thus lost the support of an industry-kowtowing government. Yes, the “murder trial” at the end of the movie actually “convicts” consumers, big oil, car companies, government, the California Air Resources Board (which for some oddball reason isn’t part of the government, I suppose), and hydrogen fuel cells, but quite frankly, I don’t think there’s enough evidence in the movie to support that. Consumers in the movie practically want to have conjugal relations with their EV1s, and hydrogen fuel cells don’t even make an appearance until literally three minutes before they’re convicted. CARB and GM are presented throughout the entire movie as alternatively stupid and evil organizations. Despite the closing segment, the viewer knows who’s truly guilty. Not consumers; not the technology; just the car companies and big oil.

I don’t honestly think that’s fair. There were significant problems with electric cars as they existed at the time of an EV1. The biggest problem, and the reason that I can’t see myself buying an EV1 if they still existed, is that the 80-mile range really isn’t sufficient for a lot of Americans. The movie (and electric car proponents in general) like to point out that 80 miles is well above what the average American drives in a day. That’s true. What it’s missing, though, is the distribution curve. When I used to have a car, I drove on average about 20 miles per day during the week, but on weekends, when I would be out with friends or running errands, I could easily put on three times that number. A round-trip to downtown Indianapolis, excluding any other errands I might need to run, was 40 miles all by itself. Add in summer heat, idling in traffic, and a swing by a friend’s house, and you’re looking at trouble. Similarly, when my sister went to college, her average daily driving during the school week probably came out to only a few miles per day, but on weekends, when she came home, she could easily slap 160 miles on the odometer. Many of my friends over the years have had similar driving patterns. It’s the classic focus on mean without remembering to look at the standard deviation.

Of course, there’s no reason that anyone should have to drive such large amounts. The problem here is one of infrastructure. In Europe, certainly, you don’t have to drive nearly as much, nor do you in vast tracts of the Northeast. Instead, the trains take over, providing convenient mass transit for the medium haul. If the country had a decent rail system, I think that a purely electric car would have a much better shot. Since that’s realistically not going to happen in the near future, any successor to the gas-powered automobile is going to have to handle both short and medium distances.

Thankfully, there are green alternatives in the pipe that can do exactly that. The one I’m most enthusiastic about is the Chevy Volt, a re-envisioned hybrid. The Volt, currently just a prototype, has the ability to drive 40 miles off an electric charge, while gracefully falling over to gasoline, biodiesel, or (blech) E85.

Digression: E85 is a completely idiotic concept in the US until we eliminate the sugar tariff. I’m sick and tired of propping up corn farmers making horribly inefficient, environmentally damaging, and unhealthy substitutes for sugar products just because America’s addicted to growing corn. (End digression)

The result is a zero-emissions electric vehicle for daily chores that transparently becomes a traditional automobile for longer trips. I’m extremely enthusiastic about the future of the Chevy Volt concept, and very hopeful that it will enter production in some form very soon. This is what the EV1 should have been to begin with.

I should also point out that pure electric car technology itself has improved tremendously in the last ten years. The Tesla Roadster, for example, is a brand-new electric sports car that has outstanding performance characteristics and manages more than 200 miles on a charge—a distance that I’d argue is nearly sufficient for everyone. It’s only just starting to roll off the assembly line, so we’ll have to wait and see how efficient it is, but I’m hopeful it will do well enough in its first few markets to expand.

Overall, I have to recommend Who Killed the Electric Car?, if only because it does bring a lot of facts to light about electric cars that I doubt most people know. I wish it were slightly more coherent in its ending, but even with it, I think it’s a good watch.

Psyches and Schedules

Over the last two weeks, I’ve altered my schedule in a very simple way: on most days, I get up earlier and go to bed earlier.

At one point, I was a morning person. Sleeping ‘til 8 or later was a rare treat; most days, I got up at 6:05 AM sharp. For the first two years I was in college, I made the radical change of getting up at 7 instead of 6, but otherwise kept the same schedule. In my last two years of college, though, I fell apart. Most college students sleep from about 2 AM—10 AM, and if you want to socialize—or even worse, date—that’s got to be your schedule, too, so slid everything in my day back by three three hours. Because Fog Creek has flexible hours and I had a college-attending girlfriend through July, I kept my 2—10 schedule when I began work as well.

For the last couple of weeks, though, I changed that, sleeping most nights from 11 to 7. On the surface, there should be no difference. I’m awake the same total number of hours. New York stores are open plenty late enough that I can get done everything I want to get done regardless of my hours. Tyler runs on the same schedule I ran on, so there’s no reason my work should’ve been affected. Empirically, there should be no difference.

But…there is. I’m better about praying and meditating regularly. I get more exercise. For heaven knows what reason, I eat more healthily, get more done at work, and am generally in a better mood. I used to think that the old adage, “Early to bed and early to rise/Makes a man healthy, wealthy and wise” was nothing more than a saying, but I’m beginning to think that, at least my body, the statement holds more than a bit of truth.

Copilot for College

My day job is working on Fog Creek Copilot, a powerful, cross-platform remote assistance solution. This week, Tyler and I were talking about how it’s too bad that Copilot didn’t really exist when we were in college, because we always ended up doing tech support for our families over the phone, which always went something like:

Me: What do you see now?

Family Member: A dialog box.

Me: What’s it say?

Family Member: It’s got a stop sign with an exclamation mark and says that the server can’t be found.

Me: Okay, click “Okay,” then read me back the line that says “SMTP Server.”

Family Member: Wait, I just clicked “Okay” twice. Now what do you want me to do again?

And so on. Not fun.

The good news is that Copilot exists now, and makes doing remote tech support really easy. Unfortunately, college students are basically perpetually broke. Tyler and I remember what that’s like. It sucks. You just got to school. There are eighty bajillion things going on and at least ten girls or guys that have caught your eye and (if you’re very lucky) your pants. Having to pick between wasting an hour helping someone, or using valuable booze money just so you only need five minutes, can be a painful choice.

Well, we’ve got a proposal: for the month of September, we’ll let anyone with a .edu address use Copilot for free, up to three times. These aren’t two-minute trials; they’re real, legit, 24-hour day passes. Plus, if that’s not enough, we’ve got a referral program: if you refer a friend with a .edu address to use Copilot, you get another three day passes. Ad nauseam. No limit. No catch.

So if you’re in college, the next time someone asks you for help, grab a free Fog Creek Copilot day pass. Then spend your leftover time grabbing a beer. Best of both worlds.

Almost...there...

Our last major piece of furniture, an expandable glass coffee table, arrives today. After this, the only things left to buy for the apartment are a music keyboard (I’m currently favoring the Roland FP-7) and a bit of shelving for my closet, after which I’ll at long last be able to unpack my sweaters and throw out the very last box. It’s so, so nice to finally be moved in. This apartment is the first place I’ve lived in New York that I’d actually feel comfortable calling home.

Kosher, Kasher, Kwhat?

Since I moved in with my current roommate, we’ve wanted to have a kosher kitchen. This past Sunday, with a plethora (two hours) of free time, we finally got around to kashering it.

Q. What the frak is Kosher?

A. Kosher is just a Hebrew word that means, basically, “in full accordance with the rules,” where “the rules” means “laws established in the Hebrew Bible.” The laws set forth in the Hebrew Bible are all in the first five books, known as the Pentateuch or the Book of Moses to scholars and Christians, and known as the Torah to Jews.

Q. I thought kosher only applied to food.

A. It usually does, in common parlance, but there are lots of things that can be kosher, ranging from food to clothing to sex.

Q. Kosher sex?

A. Yes. For example, sex on Friday night with your spouse is not only kosher, but Biblically commanded.

Q. Sweet.

A. Totally.

Q. But what makes a kitchen kosher?

A. Several things. First, all food in the kitchen has to be kosher.

Q. What does that mean?

A. Kosher food is limited to fruits, vegetables, fish with scales, specific kinds of fowl (such as chicken, turkey, and duck), and meat from cloven-hoofed, cud-chewing mammals that has been killed in a specific way under rabbinic supervision. You also cannot mix milk and meat. (For kosher purposes, though, fish does not count as meat.) Shellfish, insects, pork, and camel, among others, are not kosher.

Q. Those rules seem arbitrary.

A. They actually have definite health benefits in a society lacking modern sanitation, but nowadays, following the rules are a matter of faith, tradition, or both.

Q. So is all that’s required for a kosher kitchen having kosher food?

A. No. You also have to follow a bunch of other rules, such as, you have to have separate milk and meat dishes and implements.

Q. That’s nuts.

A. I can see that.

Q. So what’s kashering mean?

A. Kashering a kitchen is the act of making it kosher. This basically involves throwing boiling water over the countertops and throwing any non-kosher silverware or pots into boiling water in a kosher pot such that, at least for a moment, they touch neither the sides of the pot nor anything in the pot.

Q. That sounds wonderfully dangerous.

A. I have burn aloe recommendations if you need them.

Q. I am an Orthodox Jew. You are grossly oversimplifying.

A. Congratulations. You are not the target audience for this post. שקט. :-)

Q. Why is this important to you? You never seem that religious.

A. The full response to that is long and complicated, and is something that I want to talk about fully in another article. For now, though, I’d point out that there can be an incredibly spiritual experience in elevating something as mundane as a kitchen to a miniature sanctuary, in turning eating food into a religious experience. It’s not for everyone, but it’s something that even an atheist—something which, despite the vibe I may give off, I am not—could appreciate, if not share.

Scientists v. Romantics

I honestly haven’t figured out whether this comic is really funny or really sad, but the romantic in me mostly just wishes that it were false.

The College Aftertaste

Does anyone other than me have a recurring dream that you didn’t actually graduate college? I tend to get it whenever Duke gets in my face—such as right now, just as classes are resuming. It’s…it’s getting kind of annoying.

(Yeah, I should’ve posted this at Michael‘s Dream Ledger, but in general I don’t like making my dreams public. It feels like maintaining a Flickr gallery of your underwear.)

Good news, everybody!

What's in a Name?

Today, I was going through the sizable network that my roommate and I have built up, compiling a sysadmin-style binder of addresses, MACs, components, operating system settings, and so on, and was surprised how many systems we actually have on the network just within the apartment. The following is a full list. What I find interesting is how these machines’ names at once make them more “interesting” than just being “the machine in the bedroom,” and also seem to reflect something of what was going on in the brain of the owner at the time, to the extent I can easily tell which machines are mine and which are my roommates.

Mungus/Pacifica

  • Apple Power Macintosh
  • Mac OS X 10.4
  • 2x2.5 GHz PowerPC G5
  • 2 GB RAM
  • 410 GB storage
  • ATI Radeon 9800 XT
  • 1680x1050 20” LCD

Squeegee

  • Nokia N800
  • Official Maemo-derived Linux
  • 330 MHz Texas Instruments OMAP2420 (ARM11 variant)
  • 128 MB RAM
  • 256 MB Flash ROM
  • 800x480 4.1” LCD

Twoface

  • Dell Inspiron 6400
  • Ubuntu Linux 7.04/Windows XP Pro
  • 1.67 GHz Core 2 Duo
  • 2 GB RAM
  • 80 GB storage
  • ATI Radeon Mobile X1400
  • 1680x1050 15.1” LCD

Blue

  • Custom-built machine
  • Windows Vista Ultimate Edition x86
  • 2.33 GHz Core 2 Duo
  • 2 GB RAM
  • 400 GB of stoorage
  • ATI Radeon HD 2600 Pro
  • Dual 1024x768 LCDs

Haven/Gumbi Expandomatic

Apple AirPort Express, used nowadays purely for music broadcasting (though, as you can probably guess from the name, it was originally an AirPort network extender as well)

Wii

Our Wii. I wish there were a name to change what name the Wii self-identifies as, but there doesn’t appear to be.

NintendoDS

We have a DS and a DS Lite, though neither I nor my roommate play them much these days

Persephone

Our router, a Linksys WRT54G 8.0

Smear

Our PAP2 VoIP-to-phone adapter

Vera

  • Custom-built machine
  • Debian Etch
  • 1.70 GHz Pentium 4
  • 2 GB RAM
  • 144 GB storage

Solomon (Retired)

Solomon is all but dead (the memory clip, located directly under the keyboard, broke from strain, and I can’t justify replacing the whole mobo on a six-year-old machine), and is being left to live out its remaining days in my climate-controlled office at Fog Creek for occasional use.

  • PowerBook G4
  • Mac OS X 10.4
  • 667 MHz PowerPC G4
  • 512 MB RAM
  • ATI Radeon Mobile 7500
  • 1280x854 15.1” LCD

Best. Product. Name. Ever.

Okay…who else is psyched about being able to buy an i.Beat blaxx?

The German company also seems very excited about their upcoming sun-colored version, the i.Beat jooz.

Edit: The company has renamed the product simply “blaxx.” You can still see the original name in Wired’s piece on the player.

Where Have All the Yuppies Gone?

One of the eating establishments at Duke that everyone knows is Cosmic Cantina. Cosmic is best described as a Chipotle or Qdoba, but without the fine dining experience. Sure, its food might not be the best, and sure, at first glance you wonder whether the health inspector died on his last visit, but it has two unspeakably powerful draws: it’s cheap and it’s open until about 3 AM.

Tonight, as many of my friends graduated from Duke University, I started getting nostalgic. As it happens, there are three Cosmic Cantinas in the world: one in Durham, one in Chapel Hill, and…one in New York City. So I dragged my girlfriend halfway across town so that I could have a nostalgic burrito.

It turns out that Cosmic New York and Cosmic Durham have about as much in common as a freshman and a human. Our experience started when I walked in to order something from the counter. I was quickly informed by a genteel pothead that Cosmic Cantina was a sit-down establishment, and I was welcome to take a seat, following which I would be served. As I tried to suppress a laugh, Irena and I headed outside and sat ourselves down at one of the funky plus-sign-shaped tables. The waiter dude soon came over to hover over us like a hippie vulture while we tried to figure out what to order. We eventually decided on two glasses of water, primarily to make him go away. As I then perused the rest of the menu, I was happy to discover that “generic water” was $2 per glass. When stonerwaiter returned, I settled on a $7 veggie burrito for myself and a $5 glass of sangria for my belle.

Total bill: $18 with tip

Expected bill when I set out: $4

Laughing maniacally at what a rip-off Cosmic is in New York: priceless.

Some things money can’t buy. As long as you have a really fat wallet, Cosmic burritos aren’t one of them.

Ah, New York

Nothing quite says summer in the city like the sweet, succulent scent of melting urine gently raping your olfactory senses.

It Says Quiet Car for a Reason

I’m currently on an Acela bound from New York to Boston. The train’s unfortunately full, so I got stuck in the quiet car. I’d much prefer to be able to talk on my cell phone, but because the upper half of the Northeast Corridor is absolutely beautiful, I placed a high premium on getting a window seat. Choosing between facing backwards on an aisle with my cell phone or looking at the lakes and forests rush by at 120 MPH, I’ll take the latter.

That said, I’m somewhat dumbfounded by how few people are actually respecting the quiet car rules. The fellow sitting in front of me markedly refuses to silence his Blackberry, which fires every several minutes. Cell phones in general are going off every couple of minutes. A few people are listening to music through headphones, but have them turned up so loudly that I can hear them quite clearly.

If Amtrak is going to have a “quiet car,” the least they could do is actually enforce their own rules. As-is, it’s only penalizing people who are trying to be respectful.

Everybody Dies

I was extremely happy to discover today that Ambrosia Software has finished porting Introversion’s DEFCON to the Mac. DEFCON is a happy-go-lucky simulation of global thermonuclear war. Each player controls a collection of boomers (nuclear-missile-armed submarines), missile silos, aircraft carriers, and airfields in an interface highly reminiscent of NORAD as depicted in the movie WarGames. Over the course of the game—which can range from a few minutes to a full eight hours—players compete to disarm their opponents while inflicting the highest number of causalities possible, as measured in millions of deaths. Although arguably ghoulish, the game’s surprisingly well-done, from the intuitive controls to the fairly solid AI to the quiet weeping that fills your ears as the first ICBMs kiss the ground. It’s not going to displace the Empire Earth series as my favorite strategy game, but it’s a very nice diversion. You can grab a demo from Ambrosia’s website.

Oh, Hells No!

So Google already has my email. They already know what news I read and what hobbies I have. They have my essays, my portfolio, my photos, and even my encrypted bookmarks and passwords, not to mention my code, my data, my spending habits, and my readership.

This morning, I log into Google, and discover that they’re now willing to track everything I do at any time anywhere on the internet and show it to me in a cute and cuddly UI.

I’m getting to the point where I’m having serious trouble convincing myself it’s possible to have an irrational paranoia of Google.

Smart Guys Date in Parallel

There are few people in my life I admire more than my father. My father is the one who taught me how to swim, showed me my first BASIC programming, painstakingly explained algebra to me in fifth grade when I got annoyed at the confusing methods our my math teacher was teaching us, and demonstrated to me the value of problem-solving in high-anxiety situations when I was four by locking me in the child restraint seat and leaving me in the garage. I still turn to him when I’m in need of advice, support, or a good laugh.

Those who know me well know that I loathe Valentine’s Day. Part of that is just me being bitter—I’ve been in a stable relationship on Valentine’s Day exactly once—but a lot of it’s also that I don’t quite get why, on February 14th, everything is just supposed to be so much more hunky-dory than any other day. It’s a day created by card and flower companies to make sure you’re buying their products year-round, since otherwise, they’d have to go from Christmas to Mother’s Day without any real sales. If you really want to do something that will be romantically appreciated, in my experience, you’re much better off doing something random and out-of-the-blue when it’s least expected and your S.O. is feeling down than on a day whose main icon is a naked kid with bow-and-arrows who wanders around shooting people in the name of love. It’s like we have a whole holiday for John Hinckley.

So a few days ago, I was on the phone, whining to my dad about throwing a Fifth Annual F–- Valentine’s Day party and trying to figure out my personal life. My dad listened thoughtfully, and then began explaining to me what I was doing wrong.

The problem, he said, is that I date girls serially.

Lisa sucking out your soul with 28Ω resistance

Let’s let V be potential difference between dating girls and doing something productive, I be current of love, and R be resistance to current flow. The problem with serial dating is the same as with serial circuits. If resistance starts to increase, you’re stuck: because V = IR, and R is increasing, I must decrease to hold the equality. Worse still, because P = IV, you’re just not going to have as much power with the increased resistance. Note on the above diagram that current is a lousy 214 mA, and we’re only able to get 1.93 “jewels” from our relationships. This is even worse than it seems: because there’s only one path—through all relationships—you’ll end up spending the majority of your energy on the relationship with the greatest resistance, which is exactly the opposite of what you want to do.

Worst of all, if (horror of horrors) you actually blow out one of your relationships, all current stops until you can manually patch things up. Your love life will be at least momentarily in ruins.

Time to get magazines from the sympathetic gas station attendant

Now let’s examine the case where you’re dating multiple girls at once.

Coulomb's law, Volt's law, and Monty Hall's paradox

Even before we try the (admittedly more complicated) calculations, we can already tell the situation has significantly improved. Because we’re dating in parallel, we compensate automatically for higher resistance. Even though Lisa clearly is just not putting out, the result isn’t the massive slow-down we saw before, but instead results in conservation of energy, as you expend less effort on a mostly dead branch and focus instead on more promising branches. Whereas before, Lisa sucked the majority of our energy, now Sally and Judy do—at 16.2 and 9 jewels, respectively.

A broken circuit also no longer really fazes us. In the case that one of the relationships completely evaporates (which, let’s face it, Lisa’s not heading in a good direction), we’ve still got other branches to take up the slack. Best of all, because Lisa was high-resistance anyway, her departure barely affected net current, which decreases from 3.1 A to 2.8 A—both radically higher than net series current.

Lisa: out of the loop

And with that simple metaphor, I suddenly felt much better about how things are going in my life right now. Dads are awesome.

So, in summary, dating serially is for chumps. If you really want to have a better fail-safe, be less affected by resistance, and have a wonderful net increase in power, go for parallel relationships. It’s the only way.

The Q Train

In the process of writing my column on transit system maps, I got distracted by a Wikipedia clickfest, and discovered the answer to a longstanding question I’ve had. The Q can indeed go further north than 57th St.—to 63rd and Lexington Avenue, as it happens, where it would one day be able to hand off passengers to the mythical and deadly T train (the always-not-quite-here-yet Second Avenue line). When that happens, I’d expect traffic on the Q to skyrocket.

Maps and Simplicity

Recently, on reddit, someone linked to a map of the US interstate system laid out “subway style.” Rather than including all the geographical features of the United States, the artist opted to realign everything on a relatively simple aligned grid, emphasizing the purpose of the system (“get me from here to there”) rather than the implementation (“via this bridge over this river, using this exit by this town”). The artist himself complains tongue-in-cheek about the complexity of the existing system:

You know, the Interstate System is a pretty incredible bit of infrastructure, but have you ever looked at a map? It’s all over the place! Did those civil engineers never hear of a ruler?

Perhaps such a map is a nice idea in practice, but in the name of becoming simple, the map loses so much information that it becomes nearly worthless. The elimination of any sense of scale leaves you no idea how long it will take to get between two points. The absence of any geographical information means you have no idea what conditions or weather you may encounter. The elimination of intermediate place-names means that you cannot get to a location not on the map, no matter how close it may be to places that are on the map, unless you already know the complex system that the simplified layout is trying to hide. In an attempt to isolate the reader from the complexity of the Interstate, the map has given up an overwhelming amount of what made that same Interstate useful to begin with.

This whole discussion may seem like an aimless rant. After all, no one is seriously proposing to replace our normal Interstate maps with this simplified design. Yet such systems already dominate major mass transit maps. Take a look at the maps for the Chicago “L”, the DC Metro, or the T in Boston. The maps all list place names, but street names and major landmarks are completely missing (except for the Loop insert on the Chicago map), and times can vary tremendously. (Stops on the DC map, for example, go from at least one minute to about five with no indication, and relative distances on the map can be horribly misleading. Judging by the map, Foggy Bottom to Court House should be the same time as Metro Center to Farragut North, with both among the longest inter-station travel times in the system. That’s not even close to being correct.)

The New York Subway map is better in some ways and worse than some ways than Chicago, Boston, and DC. Taking advantage of the fact that most parts of the city are on grid systems, the map emphasizes intersections over place names. Although the map still lacks any meaningful scale, the grid system is simple enough that even a newcomer to the city, with a minute or two instruction, could make at least a rough guess for travel times—at least in Manhattan north of Houston. Even here, though, the map falls short. If someone wants to get to downtown Manhattan or one of the outer boroughs, they’re stuck. The map does not include enough information to make rational decisions without consulting an additional, detailed, scale map, just as with the other systems.

Now take a look at onnyturf’s map of the New York Subway. The subways and their stops still stand out and are easy to find, but now the entire map is to scale. The lines no longer run graceful curves; instead, the small blips and squiggles of long-forgotten zoning fights and long-gone support pillars for defunct skyscrapers are there for all the eye to see. Yet, if anything, the map has actually become easier to use. Someone completely new to the New York Subway could make a decent guess about how to get from one point to another, even if he were trying to get to a place not on the official New York Subway map. The added complexity actually simplifies the utility.

Simplicity is a good thing, but the focus should always be on simplicity for the user, not of the item itself. Sometimes, making something simple to involves exposing its warts.

I'll See You in Hell, Pachelbel

I hadn’t even heard of Rob Paravonian until over the weekend, when I went with a friend of mine to wander around Duke, but I’ve become an immediate fan. Anyone who’s ever played classical music has developed an intense loathing for Pachelbel’s Canon in D. The song is highly repetitive, playing the same melody over and over, in a giant, musical circle of pain, with only the most miniscule changes over its multitudinous repetitions. It’s like a three-year-old’s take on Bolero. Combine that with the fact that I used to date a cellist myself, and you have a recipe for laughter in Paravonian’s take on the Canon in D.

The Where's-My-Subway-Pass Diet

I have discovered a new, guaranteed way to lose weight fast: lose your unlimited MetroCard. Last week, on my way home, I accidentally dropped mine at some point, likely because my ski jacket has a hole in the left-hand pocket (which unfortunately I didn’t know at the time). As a result, I’ve been walking to work every day—a trek that comes in at an even six miles a day round-trip. The downside is that I have to get up considerably earlier—my commute suddenly takes 50 minutes instead of 15—but I’ve discovered that I’m feeling much better when I get to work and when I get home again, plus I oddly can do much longer workouts at the gym when I get home. All the walking is stealing time from writing my book, but it’s also leaving my head clearer when I sit down to write. Hopefully that will enable me to get back on schedule by the end of next week.

Commodity Media

One of the things that continues to amaze me as computers become increasingly ubiquitous is how entire industries are beginning to vanish because their product has become superfluous. Nearly everyone following the tech sector knows that the decline of the media cartels has already begun: increasing numbers of bands are bypassing traditional recording labels and posting directly to iTunes and similar services; amateur directors are posting videos on sites like Google Video and YouTube rather than worrying about running in indie theaters; and would-be talk-show hosts are creating podcasts that are slowly beginning to challenge traditional radio. That whole area, though, makes me blasé; computers are by definition good at transmitting digital media, and, as all media becomes digital, it just makes sense that the studios would become yet another vestigial appendage of an older era.

What’s less intuitive to me, and what I follow with keen interest, is how computers are moving back into the traditional realms by revolutionizing physical media. Many people are familiar with CafePress, which allows nearly anyone to set up a store selling their original music or T-shirts, but more interesting to me are sites like Zazzle that let users make custom one-off designs for themselves. Of these, the one I’m excited about due to NaNoWriMo is Lulu, an extremely modernized on-demand publisher which will happily do one-off books at very reasonable prices ($9.50 and $12.50 for a 200- and 400-page paperback, respectively). The upshot is that, if I succeed at NaNoWriMo, no matter how poor the quality of what I produce, I can spend a pittance to get it in a professional form that I could sell to others.

No publisher. No editor. No agent. Just a PDF, a website, and few spare dollar bills.

Michael Gorsuch, our new sysadmin at Fog Creek, will be joining me in a month of NaNoWriMo misery beginning tomorrow. If we both win, my hope is to redact our novels just enough so that they don’t stink to high heaven, use my old newspaper background to typeset them and make them pretty, and then publish them in a joint volume through Lulu. That would’ve been impossible even two years ago, but now it’s ridiculously easy. If more people discover this technology, I fully expect that the publishing industry will end up reshaping itself more than ever as a purely marketing machine. Anyone who wants will get published; the publishers will be companies that simply trade a cut of the profits for free advertising. It’ll probably take a long time to get there, but it’ll be fun to watch the process.

Awesome! This makes it an impulse purchase!

Sometimes, I have to wonder whether computers have a sense of humor. Yes, technically, it is a discount, but I think Amazon might want to consider not displaying the discount if it’s under, say, five cents.

The Great Amazon Discount

Wait...what?

Last night, at about one in the morning (before the DST switch), I was playing one of my biweekly games of Subway Hopscotch, which is my name for the two to three subway transfers it takes for me to get from wherever I am on the weekend (usually Union Square, Soho, or the Lower East Side) to my home in the Upper West Side. Last night, working on recommendations from a new friend, I decided to alter my route in a way that would send me through Times Square Station for a transfer. Times Square that late on a weekend is actually a bit surreal. The place seems uninhabited, with vast open spaces with no one at all, the normally bustling crosstown shuttle parked in the station with lights off, and homeless people taking their Sabbath rest from asking people for “loose” change.

So I guess I shouldn’t have been that surprised to come across a svelte young lady in expensive furs who was biding the time waiting for her train by working on her laptop. Nor should I have been overly surprised that she was using the guardrail between the platform and the tracks as a table to balance her laptop. But I still maintain that I’m allowed to be surprised that what elegantly dressed woman was working using her laptop for was was debugging some Java program in Eclipse.

At 1 AM.

In the Subway.

Wearing what had to be about $800 in clothing.

That’s either dedication or insanity.

A Question of Courtesy

I confess that, until I got to college, I basically never used public transport, but between dealing with Duke’s massive bus system, making numerous trips to Boston and Washington, D.C., and living in New York City, I feel somewhat qualified making the following statement:

New Yorkers are brutish morons.

I say this not in the general sense. One-on-one, they’re all amicable, intelligent folk. A bit chatty, perhaps, and occasionally in rather a bit of a hurry to get wherever they’re going (which inevitably has greater importance than wherever you are trying to get to at the same point in time), but generally nice, thoughtful people. But throw them in front of a subway car and…

…well, you’d have a florid puddle of drying blood.

So let’s instead say that if you place them beside a subway car, then you end up with a cluster of people who are a walking demonstration that people sometimes have difficulty thinking further ahead than, say, about 250 milliseconds.

Here’s the problem: chances are pretty good—hell, depending on the time of day, even high—that the subway car currently has people inside, and, equally important, that at least a few of those people wish to exit the car. Further, at least in this universe, it’s fairly safe to bet that the people currently in the car trying to exit take up volume. So, rationally, the right thing to do, in order to get into the train as quickly as possible, is to let the people on the train get off, which frees up space, and then enter the subway car, once there’s more space available and the doorway is clear of people trying to leave.

Citizens on the D.C. Metro have figured this out.

Bostonians on the T, comically poor drivers though they may be, have figured this out.

Even Duke students, with the exception of the East-West bus around lunchtime, have figured this out.

New Yorkers, on the other hand, pile up right next to the subway door, and, the moment it opens, try to start a fusion reaction by walking into each other as forcefully as possible. They willingly shove people trying to exit the subway car back and push people out of the way in the name of getting inside as quickly as possible, and then—here’s the kicker—stand right next to the door so that they will be able to exit easily at the next stop, which in turn blocks the people behind them from entering and makes it even more difficult for the poor saps trying to get off from actually doing so. That’s right: they know that the same discourtesy they just inflicted upon everyone else will be revisited unto them at the next station, so, rather than simply not doing that again, they instead compound the situation so that they’ll have an easier time muscling past like-minded folk. Add it all up and I’d say that maybe half the riders on the subway car at any given point actually wanted to get off at the previous stop.

My proposed solution? Simple. If you’ve ever rented a car, you’ve noticed that the entrances to the lot have spikes coming out of the ground. These don’t hurt cars coming in, because the spikes are angled into the lot and have flat outside edges such that a car entering the lot can push the spikes into the ground without damaging its tires. A car coming out of the lot, on the other hand, will lose its tires as their soft rubber comes directly into contact with the sharp points of the spikes. To avoid this, the gate attendant simply has to manually lower the spikes when someone has been authorized to exit the parking lot.

All I propose is that we use these exact same spikes on that yellow part of the subway platform, facing away from the subway car. People exiting the train never, ever have a problem, because the way their foot lands will push the spikes down safely, but people trying to enter the train will end up with impromptu acupuncture. Only once everyone has successfully disembarked the train does the conductor lower the spikes so people can finally come in.

Of course, this solution would actually be effective, and therefore won’t ever be implemented, but I can at least dream.

The Greater Good

I had always assumed that I’d love San Francisco. San Francisco is a big city, but not as large as New York or Chicago; big enough to always have something to do, small enough that you stand a good chance of being able to do it without standing in line for five hours. San Francisco’s got nearly perfect weather. It’s got a solid mass-transit system. It’s near all of the major computer companies. It has tons of outdoor activities. It’s near ocean. In every way, it seemed as if it ought to be perfect for me.

The reality has hit me much harder than I anticipated. The city is just about the right size, it is pretty, and it does have great transit and a wonderful selection of activities. My problem with San Francisco is the weather.

Complaining about the weather in San Francisco at first seems bizarre. It barely ever rains, the sky’s gorgeous, and most noticeably, the city’s always slightly cool and never too hot or too cold. What you miss at first is that the weather has an unexpected side-effect: there are a ridiculous number of homeless people.

Superb weather every day means that beggars can easily sleep on the street; they never have to worry about being roasted alive, as in Phoenix, or frozen to death, as in New York. Suddenly, and very unfortunately, classic supply-demand economics kicks in: a high supply of beggars leads to high demand for handouts, which vastly surpasses the supply of “loose” change available, so the homeless end up having to be very aggressive in order to get enough cash.

“Being aggressive” actually can take many forms. One, of course, is literally being extremely pushy. I’m no stranger to homeless people; New York has more than its share of beggars wandering the street. New York beggars, though, basically hold still with a cup out; they rarely approach you, and when they do, they’re actually almost always relatively polite. The subway beggars, for example, usually give a speech similar to this one, which I actually heard just a few days ago:

Excuse me, ladies and gentlemen, if I could have a minute of your time. I normally play the congo drum, but at the moment I have lent my drum to a musician in greater need than me. I could use your help to get by. If you could please find it in your heart to help me in this difficult time, I would greatly appreciate. May the L-rd be with you.

Following the speech, the person will walk up and down the subway car, then leave. Now, you can say that she’s full of it, and I’ll of course agree with you, but the point is that, though she may be annoying, she’s easy to ignore and relatively polite about things.

San Francisco is an entirely different matter. I have been here all of two days, and I’ve had two different guys unleash a stream of invectives when I deliberately ignored them, one of whom actually started walking after me for about fifty feet before I stared him down. Beggars here do not like to be ignored. My treatment, unfortunately, did not seem to be unusual; I’ve seen maybe five or six other people hounded in the same manner.

Even when you give a beggar a coin, they complain, sometimes forcefully, that you didn’t give them enough. I heard one exchange in particular that was at once both hilarious and unspeakably pathetic:

Man: Can’t anyone spare a nickel?

Woman: [Gives him a nickel]

Man: All you got’s a fucking nickel?

Aggressive begging goes beyond merely being forceful verbally and physically. Many beggars around here are in wheelchairs and claim to be disabled, but if you keep walking by the same spot, you will soon spot the “disabled” beggars using their feet to pedal around in their wheelchair, or even stand up and walk around for a stretch. It’s insulting and degrading for everyone involved.

I’d be somewhat more willing to put up with all of the above if the economy in San Francisco had gone to hell and these people were truly desperate. The problem is, San Francisco’s economy isn’t that bad, and very, very few beggars look like they’re even in troubled times. Many are wearing perfectly fine T-shirts and pants; quite a few have nice tennis shoes, and at least one I saw, a 200-pound man who was cussing me out for not helping him “get a bite to eat” (“I’m fucking hungry, yo” he elaborated) was wearing what had to be week-old Nikes.

When I was little in Indiana, it used to be common for beggars to sit by the freeway exits with cardboard signs begging for money for their three kids (it was always three kids; never two, never four, always three). My dad made a habit of offering these beggars jobs, which they inevitably declined. “I don’t want a job, man,” one man begging near my dad’s old office told him. I strongly believe that this sentiment encapsulates the minds of many beggars whom I have seen over the last couple of days. They could work; they find begging for money easier.

I am unsure how to solve this problem. Clearly, supporting these beggars financially is good neither for them nor for society. If everyone stopped giving, they would vanish, because they do need to eat. If we could all be disciplined to not give any more handouts, though, we’d also cut off those people who truly are too incapacitated to work and truly have run out of options. The “fake” beggars would be forced to find work; the “real” beggars would starve and die. Sadly, the mere fact that these people are also in the street begging means that we are currently being utterly unsuccessful reaching them through charities, shelters, and soup kitchens.

I wish with all my heart that I knew some magical solution to the homeless/beggar problem, but I’m human; I don’t. Greater minds than mine have fought with the problem and failed, either in effectiveness or in motivation. But I find it incredibly disheartening that the problem has deteriorated so badly in San Francisco that it becomes the most prominent feature I notice.

San Francisco has the potential to be one of my favorite cities, and maybe some day it will be, but at the moment, I’m looking forward to returning to New York.

WWDC Monday: Meeting the Savior

Amazingly, the woman at registration was right. I fell onto the floor got up at 5:30 AM, groggily showered, grabbed a bagel and some OJ at a patisserie that was apparently run by the bitter sister of Soup Nazi, was politely asked for “loose” change about forty-two times by people who admittedly were wearing pretty beat-up Nikes, and then went to Moscone to find a line that already arced its way around the convention center.

Apple let us approach the Presidio in steps. First, at seven, they let us into the lobby of Moscone. When they finally let us in, we immediately filled up most of the lobby. There, I met Allen (a student from some place in Canadia, a suburb of Bismarck), Michael (a youngish developer who somehow already manages to provide the aura of the bitter old-timer who longs for The Good Old Days), and David (a student from the People’s Republic of Berkeley), all of whom were smart, friendly, very fun to talk to, and who were in the rare majority of attendees who knew how to use mouthwash and shampoo. Then, at about eight, they herded us to the second level, where we requeued and spent the next hour next to some food trays that had been carefully selected to only contain comically strong coffee and foods that were at least 87% raw cane sugar. Thenataboutninethirtywewereallowedupstairsyay OMG I AM GOING TO MEET STEVE JObS I AM SO PUMPED!!!!!!!!!1111one!

Just about the time that my sugar high was beginning to quietly wander off in exactly the way a hangover doesn’t, Steve Jobs Himself walked onto the stage. Thus began the keynote.

The keynote had a four-part agenda, broken down roughly as follows:

  • 40% showing side-by-side pictures of Vista ripping off Tiger
  • 30% repeating the phrase, “So that’s iFoo. We’re very excited about it, and really looking forward to seeing how you can integrate it into your products.” I began to wonder whether there was an implicit “because quite frankly we have absolutely no idea” they weren’t adding to this sentence.
  • 28% introducing features of Leopard that are great for end users, but that duplicate functionality already written by third parties, thereby using the Developer’s Conference to announce features competing with developers
  • 2% discussing new features that impact developers

Once He was done speaking, we all organized ourselves into a high-velocity stampede outside, where we viewed the new hardware, and from there basically fell en masse down the escalator into the lunch room, where we refueled on high-starch foods and your choice of lemonade, lemon tea, or regular Dr. Pepper. During lunch, as people stopped being so incredibly focused on Steve Jobs, I also made the discovery that, if I’m not famous, I’m at least very well-known. This is not that surprising to me, since my lovers apparently advertise my name so often that numerous companies contact me with offers for Viagra, but it was kind of cool to get a ton of people saying, “What’s it like to work at Fog Creek?”, “What was it like to be in the documentary?”, “Are you really as sexy in real life as you appear in the movie?”, etc. One person, in a mildly surreal echo of a conversation I had with Eric last week, even took the time to explain to me that the equations we had on the board to figure out whether you’d make it to the other building neglected to factor in air resistance.

In the afternoon, we began the NDA sessions. I unfortunately am not legally allowed to post my thoughts on these sessions, but I will continue to blog about parts of Leopard that are public and about my time in San Francisco. For now, though, signing off.

WWDC Sunday: Preparing to Wait

Today was…long. The fun started when I got a call at 7:20 AM reminding me that my car was coming at 8. For some reason, I’d had in my head it was coming at nine, and so decided that I’d wake up at about 7:30, spend 45 minutes packing, take a quick shower, and be ready to go. Instead, I pretty much literally just dumped a wad of clothes into a suitcase, jumped into the shower, and proved that you can easily run with a 35-pound suitcase if you have enough adrenaline and don’t really care about who you hit.

On the bright side, first-class transcontinental is just…awesome. The meal they served for lunch was vastly superior to any dinner I’ve had recently, the seats had plenty of legroom, and for the first time in my life, I actually didn’t mind a long flight all that much (although for true comfort, I eagerly await the day that hard liquor counts as a business expense). By 6 PM EST, I arrived, grabbed a cab whose driver was trying to impersonate Shaft in dress, behavior, and music selection, quickly verified I hadn’t accidentally time-warped back to the 70s by counting the number of tie-die shirts (12), and then rode into the city.

Once I was checked into the hotel, who helpfully verified the credit limit on my MasterCard, I went to register for the conference. As you may or may not know, Jobs’ keynotes are generally very well-attended, by which I mean that Mecca got nothing on developers trying to bump and grind their laptops into the Presidio at Moscone so that they can see His stubble and sweat in person. This year, the keynote is supposed to start at 10 AM PDT. I’d like to share my conversation with the woman who helped me register:

Me: So, the keynote’s at 10, right?

Woman: Yeah.

Me: So when should I be here?

Woman: Well, the doors open at 7, so you probably want to get here before then.

Me:

So, I am now diligently going to bed early. I’ve got my alarm set, I’ve got my clothes laid out, and I am ready to run out and wait.

WWDC, Baby!

Because I’m working on somethingerother for Fog Creek Copilot (hint: rhymes with Pack Client), I learned yesterday that I’m going to be flying out to San Francisco to go to the Apple Worldwide Developer’s Conference!

Which, of course, opens up the next question: will I be the first to legitimately call bingo?

Here’s to hoping…

IMDB: Idiot-Manipulated Database

Good news: Benjamin Pollack is now listed as starring in Aardvark’d.

Bad news: Banjamin Pollack is still listed, too.

Great News: I apparently have been a writer, producer, and editor.

The Filmography of Banjamin Pollack

I have always had a hate-hate love-hate relationship with the media, particularly when I’m in them. On the one hand, it’s cool being in front of that many people, but on the other hand, the media’s success in actually quoting what I say and getting my name right has been fairly abysmal.

One of my first TV appearances, for example, was made when WISH-TV, a local CBS affiliate, showed up at school one day and wanted to interview me and two classmates for our work on the Legacy Initiative, a high-school product that collates, edits, and publishes a large collection of war letters. That particular day, I hadn’t shaved, badly needed a haircut, and was wearing a heavily beat-up sweatshirt. I’m not petty when it comes to looks, but if I couldn’t be broadcast looking my best, I wish I’d at least been broadcast looking my average.

As part of that same project, I was interviewed by WIBC, a major Indiana radio station. Unlike WISH-TV, I knew about that interview a day in advance, and because I did radio as part of speech team, I was actually looking forward to it, prepared ahead of time, and gave a solid interview. WIBC used a lot of my sound bytes in the story. It was great.

Except that no one listening would have known, since they attributed the quotes to a Brian Pollack.

So over the weekend, I heard with some trepidation that Aardvark’d: Twelve Weeks with Geeks is now on IMDB. I’m not on the cast list, though; Banjamin Pollack is. Lerone made a typo when submitting it, and due to the lethargy that is IMDB, it’ll take weeks to get fixed.

Ah well. I suppose it beats having my name be correct due to a centralized personnel database, but still, it’d be nice, just once, to be in the media without something going awry.

Getting an Apartment in New York

There are lots of things to love about New York, but I’d like to think that even the most diehard New Yorker would admit that the housing situation is as easy to decipher as a message sent by an Enigma machine in Sanskrit, and about as pleasant to deal with a hungry Reaver.

In recent days, I’ve been in a fight with various New York agencies as I try desperately to get permission to give them a ton of money. You see, I’m trying to rent an apartment on the Upper West Side directly adjacent to Central Park. In most parts of the country, this process works as follows:

  1. You inform the landlord that you would like to live in the apartment
  2. You give the landlord a bunch of money
  3. You move in

Most apartments would also want to run a credit check on you, and a very nice apartment might want a personal reference or two, but that’s it. You’re done.Things in New York work a bit differently. First, you fill out a lease, which, in the case of the apartment I’m trying to get, runs a cool 57 pages. Then, eight or nine hours later, you ask three friends to write you personal references, all of which read:

Benjamin is the most kind, friendly, loving, generous, sympathetic, empathetic, helpful, cooperative, gracious, reliable, trustworthy, responsible, and extremely rich person I have ever known in my entire life. I would gladly give most of my major organs in exchange for the privilege of living in his vicinity, and would pray that you accept him as a tenant lest your life become profoundly devoid of meaning.

Then you go to your bank and ask them for a letter of good standing, which is basically a how-to guide for identity theft that contains your account numbers, account types, current balances, average monthly balance, and so on. Then you sign a credit authorization form, perhaps a form saying you won’t have any pets, a form saying you will not hurdle objects out the window, and a form saying that you will not chew on windowsills but that, if you do, it’s your fault you get lead poisoning (I swear I am not making this up). Then, depending on how you found out about the apartment, you write checks for at least one of broker’s fees, application fees, or duplication fees—and it’s not unheard of to have all three of these, the first two of which run anywhere from several hundred dollars up to a month and a half’s rent. (I have just an application fee, thankfully, and it’s far less than a month’s rent.)

If you’ve actually made it this far, then you finally get to submit your application to the apartment’s board, who will take up to a month to tell you whether or not they will deign to give you permission to live there. If they finally give you approval, then you usually have upwards of 18 minutes to move into the apartment before it goes back on the market. Also, your first month’s rent, and the last month’s rent, are due immediately, so get your checkbook back out.

Currently, I’m stuck before the last step. The problem is that, because I’m a yougin’, I need to have a guarantor, and my guarantor is very legitimately unwilling to give them certain things that they’ve demanded, such as personal references (why on Earth would the guarantor need personal references?!) and a detailed listing of his accounts. So, currently, I’m just in a stand-off. I have no idea how this ultimately will turn out, but hopefully, I’ll end up with an apartment. And, if not, there’s always joining the hoards of homeless.

Gearing Up

After a semester of virtually no coding, I’m preparing to return to New York to do more work for Fog Creek on Fog Creek Copilot. This will be the first time in my career that I’m returning to a code base that I haven’t seen in a bit over a year.

In some ways, this is very exciting. Knowing that something I put so much time and effort into has proven to be truly useful to a large number of people is extraordinarily gratifying, and getting a fresh chance to fix all the little things that I ran out of time to fix will be wonderfully cathartic (and make Copilot an even better product than it is now).

In other ways, though, I’ve rarely had more trepidation about an assignment. The parts of Copilot adapted from TightVNC are disjoint and not well written, and a lot of the knowledge I picked up last year about how the code actually works has probably leaked out of my brain. A lot of that we documented; some of it, we did not. I’m going to be very interested to see exactly how quickly I can return to being productive when working with the Copilot code base. I have no doubt that I’ll have no problem adding the features we want to add; I just feel equally sure that I’ll have at least a small ramp-up period as I get re-acclimated.

Update: I forgot to mention, but the end-user components of Fog Creek Copilot are open-source. You can download the current version by following the links from the FAQ page.

Return to the City

I love New York City. Sure, it has its flaws: the air reeks in summer, people are surprisingly rude and insensitive (and desensitized to people acting that way), the city whines, groans, and clanks at a painful volume, and the crowds move with all the speed and grace of a human mudslide. Despite that, I love it for all the things that it gets right: the superb mass transit, the unsurpassed arts, and the melting pot of worldwide culture that lets you wander in and out of America while staying comfortably within 200 streets and 12 avenues. I also simply love the beat of a city that, true to its word, never sleeps. I am very much looking forward to returning there at the end of summer.

I need to make it crystal clear that I do love New York City so that the following statement is not taken as bitter whining:

New Yorkers need to actually open their eyes for ten seconds, shut up, listen to the world, and realize that they are not at the center of the universe, and there is life even when you’re outside of an island whose great geographic pride is that it’s not physically attached to New Jersey.

I realized that I needed to make this argument when I landed at La Guardia and started listening to a conversation that a flight attendant was having with one of the passenger. The passenger had apparently asked the attendant what he thought about Indianapolis.

“Eh, I guess it’s a fine city,” he responded, “but I’m not sure what there is to do if I lived there.”

I have heard that sentence, or a slight variation on it, far more times than I care to count. A week without at least one, “Oh, I think $place is fine, but there’s nothing to do there,” was an odd week indeed. Now, the statement is invariably false. To defend Indianapolis simply because I know enough to respond: it has one of the best symphonies in the US, and the largest children’s museum in the world, and the only basketball team to innovatively integrate boxing when playing Detroit, and the Indy 500, and a massive art museum with some truly great works, and a repertory theater, and the Colts, and then tons of seasonal events, such as the Broadripple arts show, touring theater productions, and more. On top of that, you’ll find bars, comedy clubs, jazz, and just about anything else you want. It may not all be centralized downtown, but it’s all there. Anyone who cannot find anything to do has their head buried in the sand.

Although this list is specific to Indianapolis, I have no doubt that I could create a similar list for any other city someone throws into that sentence. Yet that’s not what bothers me the most. What bothers me most is how arrogant and, more importantly, how pretentious that claim is. When I took a boat tour of New York this summer as part of my internship, the tour guide told us that he was frequently asked about how you live in a city of eight million. His response is worth reprinting:

You live here just like you live in any other town. People laugh when I say that, but it’s true. New York is broken into neighborhoods, and each neighborhood has its own feel and its own community. The dirty little secret is that most New Yorkers only know their own neighborhood. It’s only when you realize that, and then look at all the neighborhoods together, that you get how people really live in New York City.

That statement is more true than most New Yorkers would willingly admit. Most New Yorkers seem to live in private bubbles that cover their apartment and five or six surrounding blocks. New York City may have eight million, but most New Yorkers actually know a much smaller community on the order of a few tens of thousands—far smaller than most cities in the US. This is, in fact, how every city operates, except that the neighborhood feel actually gets exaggerated so that its occupants can find some identity within the sprawling whole.

More than that, though, the same New Yorkers who claim loudest that there’s nothing to do…don’t actually do that much. Most New Yorkers, just like most people everywhere else, only go out a few times a week to places truly unique to Manhattan, such as Broadway or the New York Philharmonic. (Expensive restaurants and bars do not count. The Magnolia Grill, off Duke’s East Campus in the dinky city of Durham, North Carolina, has better food than many of the best restaurants I’ve eaten at in New York. Bigger cities have a greater selection, but any half-decent city has enough restaurants to keep even its richest, most pompous diners quite happy.)

If New Yorkers don’t already know this, it’s only because they’ve not reflected on it for the ten seconds needed to reach the above conclusion. Why, then, are New Yorkers so insistent that there’s nothing else to do anywhere except Manhattan? What it comes down to is that New Yorkers feel a pressing need to make others feel as if they are missing out, and that every New Yorker is inherently superior to everyone else. New Yorkers have lives; the Others simply survive. It’s an insidious inferiority complex that brings with it a dogma every bit as inflexible as religious law. I don’t know whether its cause is simply that most New Yorkers really haven’t reflected, or that they need to justify their small apartments and painfully living expenses, or that they simply really do need to believe they are at the center of the world, but, bluntly, I’m sick of it.

There’s stuff to do everywhere. Lots of stuff. There are many, many things that make it wonderful to live in New York, but the mere presence of “stuff to do” is not among them.

So I’m going to enjoy my week here in The City. By which I mean Indianapolis. And I’m going to enjoy it.