Work is a Queue of Queues

Do you ever get that feeling like no matter how hard you work, you just can’t keep up?

This isn’t a problem uniquely faced by modern knowledge workers. It’s also a characteristic of certain software systems. This state — of being perpetually behind on intended work-in-progress — can fall naturally out of the data structures used to design a software system. Perhaps by learning something about these data structures, we can learn something about the nature of work itself.

Let’s start with the basics. In computer science, one of the most essential data structures is the stack. Here’s the definition from Wikipedia:

… a stack is a data type that serves as a collection of elements, with two principal operations: (1) “push”, which adds an element to the collection; and (2) “pop”, which removes the most recently added element that was not yet removed. The order in which elements come off [is known as] LIFO, [or last in, first out]. Additionally, a “peek” operation may give access to the top without modifying the stack.

From here on out, we’ll use the computer science (mathematical) function call notation, f(), whenever we reference one of the operations supported by a given data structure. So, for example, to refer to the “push” operation described above, we’ll notate it as push().

I remember learning the definition of a stack in college and being a little surprised at “LIFO” behavior. That is, if you push() three items onto a stack — 1, 2, and 3 — when you pop() the stack, you’ll get the last item you added — in this case, 3. This means the last item, 3, is the first one pop()‘ed off the stack. Put another way, the first item you put on the stack, 1, only gets processed once you pop() all the other items — 3, 2 — off the stack, and then pop() once more to (finally) remove item 1.

Practically speaking, this seems like a “frenetic” or “unfair” way to do work — you’re basically saying that the last item always gets first service, and so, if items are push()’ed onto the stack faster than they are pop()’ed, some items will never be serviced (like poor item 1, above).

Continue reading Work is a Queue of Queues

Going mobile in 1998

My first mobile device was a Palm V. I understood the power of mobile really early. I was 15 in 1999, when the Palm V was released. I first came across the Palm devices in 1998, when the Palm III came onto the scene. I never owned one, but played with the one my Dad owned, but barely used.

This device was comically under-powered in retrospect. It had 2 megabytes of RAM, which had to be used as not only the working memory of the device, but also the storage. It had a 16 Hz processor, a 4-greyscale screen, and a stylus-driven interface.

The Palm V was an amazing device. In lieu of the plastic of the Palm III, it had a finished anodized aluminum finish, very similar to the kinds of sleek devices we would only begin to regularly see in the last couple of years. It was nearly half the weight of its predecessor, and as thin as the stylus you used to control it. It had a surprisingly well-designed docking station (imagine this: since USB hadn’t yet been developed, it had to sync over the low-bandwidth Serial Port available on PCs at the time).

Continue reading Going mobile in 1998

Questioning the Canon

I was in the best of settings when I realized that Shakespeare was indeed great. My freshman year in high school, I had English class with an esteemed teacher, Mr. Broza—hailed as the Paul D. Schreiber High School Shakespeare aficionado, founder of Schreiber’s Annual Shakespeare Day, and, perhaps most heart-warming of all, a self-proclaimed Shakespeare lover whose posters of The Bard could be found as wallpaper in his small office. How lucky I thought I was. Indeed, if I wanted to appreciate Hamlet, I was in the right hands.

But how misled I actually was—at least, in Walker Percy’s eyes. In his essay, “The Loss of the Creature,” Percy recalls a scene from The Heart Is a Lonely Hunter:

…the girl hides in the bushes to hear the Capehart in the big house play Beethoven. Perhaps she was the lucky one after all. Think of the unhappy souls inside, who see the record, worry about the scratches, and most of all worry about whether they are getting it, whether they are bona fide music lovers. What is the best way to hear Beethoven: sitting in a proper silence around the Capehart or eavesdropping from an azalea bush?

Percy here contrasts two different approaches to viewing art—the girl who informally and spontaneously encounters the work of art, out of context, as opposed to the “unhappy souls inside” who formally prepare themselves for a kind of pre-packaged listening experience. Percy wonders which is better—a question meant for the reader’s pondering. But his essay offers his answer: we can only truly see or hear a piece of art by “the decay of those facilities which were designed to help the sightseer”. Perhaps Percy is right—it might have been better if my experience with Hamlet had been an accidental discovery rather than a guided tour, an “eavesdropping from an azalea bush” rather than “proper silence around the Capehart.” Perhaps I should have encountered the text unaware of its origin but intrigued by its mystery. After sitting by a tree and reading the text front-to-back, perhaps then I would be able to “see” Shakespeare in Percy’s sense of the word.

Continue reading Questioning the Canon

The New Novel

Salon.com has an interesting article about the craft of writing. It’s from 2010, but still interesting.

… far more money can be made out of people who want to write novels than out of people who want to read them. And an astonishing number of individuals who want to do the former will confess to never doing the latter. “People would come up to me at parties,” author Ann Bauer recently told me, “and say, ‘I’ve been thinking of writing a book. Tell me what you think of this …’ And I’d (eventually) divert the conversation by asking what they read … Now, the ‘What do you read?’ question is inevitably answered, ‘Oh, I don’t have time to read. I’m just concentrating on my writing.’”

When I was younger, I thought there was no greater ambition than becoming the writer of the next great novel. However, this article made me reflect on my own media consumption habits, and what a small audience I would affect even if I did write such a work.

I think similarly about painting and sculpture and classical music. These expressive forms are certainly demanding of skill, but who is the audience?

It would be unfair to consider television programming or film the new novel. Certainly, these media have the capacity to change people’s ideas and have a wide impact. But, even with the technology and cost barriers breaking down on film production, it lacks the visceral nature of writing. Anyone with an idea and a pen (or laptop) can pursue writing, but you have to be a technician of sorts to make a film.

By this disqualification, software — though increasingly recognized as an art form — is definitely not it, either. So, what is?

Turning 27

Today, I turn 27. Even though I was deep in the middle of a project late last night, I peeled myself away from my monitors, went to sleep, and woke up late to enjoy a day of reading outside.

Parse.ly has an official “take your birthday off” policy, so I made sure to set a good example.

I remember when I was younger, I used to look forward to birthdays very eagerly. Birthdays were when I got a new videogame or programming book. Birthdays were about stuff, and taking the day to play with new toys.

Now, over a decade later, my birthday is much less about stuff. I don’t play videogames anymore, and I already know how to program. I am fortunate to live comfortably and don’t long for stuff any longer. My Nintendo Wii gathers dust (like everyone else’s, it seems). My computer is no longer used to amuse me, but to allow me to work on my passions — building software, building a company, staying informed, informing others. I have a seemingly endless queue of books I’d like to read, movies I’d like to watch, things I’d like to write, software I’d like to build. I’ve come to realize that birthdays, at my age, are more about time.

In my ruthlessly efficient worldview — where I regularly talk of cost-benefit analysis, backlog prioritization, and productivity — my birthday has become about taking a moment to flip my prioritized world on its head. Let’s not pick an item from the top of the prioritized backlog. Instead, let me take something from the backburner, for once. Let me behave — if only for a day — as if I had all the time in the world.

I don’t need stuff. I just need time. Of course, that’s the bittersweet part of one’s birthday. That even as you come to realize the importance of time, the day acts as a reminder of how our time on this earth is limited. 1 day passes, and only n-1 left to make a difference.

Non-native New Yorkers

Nobody moves to New York because they think they’re just like everybody else. A young kid, fueled by a toxic blend of bravado and wicked insecurity, can expend a truly terrifying amount of energy trying to prove her exceptionalism, prove that she is different (read: better) than the dull hometown peers she left behind, who go to uncreative jobs in uncreative clothes, eat at Chili’s, practice monogamy.

Describes many non-native New Yorkers really well. No offense non-natives, but some of you are definitely trying to prove something! 😀 From Dirty pictures I didn’t want taken

An Empty Calendar, a Dusty Blog

I took a look at my WordPress calendar, and realized I haven’t written a post in over a month. A sad state of affairs — I guess my blog waxes/wanes in and out of popularity for me.

One thing I have wanted to do is to create a “schism” in my blog between the political and technological sections. I realize there is no sense forcing my audience to wade through technology posts to get to the political stuff they may be interested in, and vice versa.

The main thing stopping me from doing so is the fact that even as I have a single blog for these two topics, I hardly find the time to post to either of them. That isn’t to say I don’t have much to say. I’ve been reading quite a bit lately about Lisp (for the first time in my life), and have interesting ideas surrounding my use of Eclipse technologies and modeling tools at work. I have been following a lot on the political side of things, from Libby’s commuted sentence to debates over globalization, to WSJ’s potential new owner. And I’ve finished a slew of books, from John Kenneth Galbraith’s The Affluent Society to Jared Diamond’s Guns, Germs and Steel.

But I just lack the time to write. I’m busy at work (at least 10-12 hours a day, when you include commute time), and the last thing I want to do when I get home is use computers some more. Which is sad, but an inevitable result of my situation.

I truly do not want this blog to die. How might I save it?