The Sense of Time

There are a lot of scary things about getting older, but the scariest and the weirdest is the change in perception of time. I’ve encountered this idea twice, once in Stephen King’s short story “My Pretty Pony”, and another in the movie “Blue Thunder”. At the time, in late 80s I thought that time “flies” only when you are enjoying something, and “creeps” when you don’t. Saturdays go by faster than Mondays. Turns out, as you get older time picks up pace, everything becomes a blur, good or bad.

Cult 80s movie “Blue Thunder” has this little bit about a helicopter pilot playing with his fancy digital Casio watch that had an interesting analog countdown feature. He was using the watch to test his time perception, claiming that “it was the first thing to go when you go over the edge.”

Watch buffs know this watch as Casio AA-85 and the analog feature as Module 101. I always wanted one of these, and now I finally picked one up on eBay for a song. I know I need it – it seems to me that I am really losing the proper perception of time, it really sped up for me.

In Stephen King’s short story “My Pretty Pony”, an old man is instructing his grandson on the nature of time after watching him lose in a hide and seek game to a kid who counted too fast. He says, that there are three times, only one of which is real. When you are little, it seems that the time goes by very, very slowly. I remember that very distinctly – days were very long, even the summer vacation took forever. Then, when you are about 14, time starts to be “real” – neither slow nor fast. As you get older time picks up pace, only slowing down when you are badly hurt. He called time “a pretty pony with a wicked heart.”

I don’t know about you, but time is definitely speeding much more now than when I was younger. It’s pretty scary.

[Update] Bought on eBay, fixed and even found a similar watch band:

Daydreams

I have two recurring daydreams that run through my mind in the morning, as I’m making my way from the subway platform to my cubicle. I’ve had them for years and years.

In the first one I’m standing inside the office tower where I work and look outside. The longboat from the spaceship I’m a captain of is hovering outside. Most of my crew is in it, the mechanic is holding my space suit, cargo master – my two guns. The air is swirling from the heat of the longboat’s thrust rockets pointed down. The pilot edges the boat forward and the window shatters. They motion for me to jump, hundreds of meters above Manhattan. We got to get back into orbit and rendezvous with my ship.

The second daydream is not so science-fictiony. In it I own a small apartment in a tall residential tower: there was always on near every location where I worked. When I worked at 888 Broadway, a tower like that was being built, and the ad at its base promised dedicated ISDN connections for every tenant. Anyway, my apartment is unlike any that I ever lived in: it’s very high up, it has floor to ceiling glass windows, all the furniture is super modern (Design Within Reach kind). And now, I don’t really have to show up at work right away – I can go to my apartment in the sky and take a nap first.

What about you? Any daydreams you can share?

7 Things You Can (Mostly) Do Without in Your Web Business

I’ve spent a lot of time in meetings about websites. Not as much as I’ve spent building websites, but a sizable chunk of my career. I mostly spent that time listening and not being listened to. But now that I’m older, have “Sr” in my title (it stands for Senor), a beard, those cool designer glasses, and have a lot more weight in meetings. Mostly due to the fact that I got pretty fat.

Previously I wrote about the evils of redesigns in The Russian Tea Room Syndrome, and about how web developers are like cooks and prison inmates. Restaurants are a notoriously difficult businesses to run, mostly because there are a lot of amateurs who do not understand what is not important. It’s not what’s important. Everything is important. It’s knowing what can be cut, especially in the beginning, that makes some restaurants succeed when others fail.

Here’s my list of 7 things that seem like they are important in websites, but really aren’t. These are not deal breakers. These are the things to think about last.

1) Looks. It’s nice to have a clean and beautiful design. But making a site pretty is not going to make you more money. Just look at plentyoffish.com – probably the ugliest dating website in existence. It does not stop its maker from raking in 10 mil a year without any hard work whatsoever.

2) SEO. SEO is the alchemy of the web business. I’ve seen more sites get sandboxed by Google than gain pagerank from SEO efforts. Most big url rewriting efforts create broken links, which are bad no matter how you look at it. Don’t break urls, if you can – make them descriptive, and try to make your site linkable (i.e. GET instead of POST search forms), but that’s about all that might help you. Spending a lot of money on SEO is just plain stupid.

3) Performance. Everybody hates slow and crashing websites. But unless this lasts for years, it’s not a deal breaker. Twitter suffers from worst imaginable performance trouble. Livejournal went through a long stretch of bad performance. Even the big dogs like eBay and Amazon have a slow spell or outage or two. MS Windows became the most popular OS in the world not because of its stability. Of course it’s currently losing market share to Apple, but this precess took decades. If anything, it looks like Twitter outages make its users miss the service so much, that when they get back in the twitter their brains out after bitching about the outage for a bit.

4) Good branding. A good name, url, and logo are not going to make you more money. They are just not that important. As long as it’s not too embarrassing, like therapist.com it’s going to be ok. If you look on Alexa, icanhascheezburger.com has almost as much traffic as tvguide.com.

5) Pure CSS markup and web standards compliance. I’m sick and tired of being told that “tableless” design is somehow important. It’s not, it’s not, it’s not. Go to google.com, amazon.com, ebay.com, nytimes.com and view the source. You will see tables galore. Wasting time eliminating tables is just plain stupid. And all-div completely web standards-compliant XHTML markup is not going to make you any more money. I refuse to feel bad about using tables. And perfectly validating XHTML is only going to help page scrapers.

6) Keeping the site ad-free. Site users are ok with ads. They really, really are. If you have what they want they will suffer through the biggest ads you can throw at them. “Half Page Godzillas”, “Skyscrapers”, “Page Killas”, “Shrieking Flash Sound Diddlers” – whatever you call your most annoying ad – despite heated assurances from the users, it’s not going to make most of them leave. Some will and more will follow, but it’s not as drastic as you might think. If you have something unique. I’m not advocating horrible Flash ads. “Flash Sound Diddlers” are not more effective in selling stuff than tasteful Adsense ads which will not have anybody at all leave. You can use ad money to buy more servers, more content, ads of your own. This will bring in more users.

7) Widgets. If your entire web strategy is based on building widgets, well, you are in trouble. You are entering an frenzied and very crowded market. Widgets are the bastard child of old school web “badges” and “push technology.” Widgets sometimes work great for increasing pagerank, just like the “web awards” that were given out by some sites in Web 1.0 times. They might get people to link to you, especially if these people are Myspacers that are constantly looking for shiny things to line their pages with. But in the big scheme of things widgets are not a great way to spend ttime and money.

Masonic Apple

It’s been a few months already that I haven’t used Windows. The unreal amount of time that it takes to make Ubuntu play sound or use a second monitor and then do it again after a software update drove me straight to Mac.

By the way, why does the “applications” icon look so masonic?

CRUD Ain’t Hard

And now for a little exercise in armchair software architecture — the most despicable coder’s pastime. Dear non-coding readers: despite its name, this blog is still mostly not about programming. Just skip this post or something. Dear coders, many of you will probably disagree with me. I am not a very good or accomplished coder myself, and you probably should not be taking your advice from me. But then again, I could be right, so keep your mind open.

You might have been aware of the very popular, but uptime-challenged social networking tool called Twitter. They have one of the best problems to have: too many very active users. The site is so popular that it constantly goes down and displays and “over capacity” screen that the users have nicknamed The Fail Whale.

Rapidly writing and displaying short chunks of text with high concurrency on the web is not one of them unsolvable problems in programming. It’s not easy, but with right people and tools Twitter could be rewritten inside a month. Twitter founders should do some soul searching. Meanwhile the critical mass has already been reached, the niche for bloggers who want to SMS instead of blogging is big, and even horrible uptime can’t this service. I use it myself.

There is a lot of speculation in the blogocube about whether the reason behind the Fail Whale is the wrong choice of technology — the highly hyped and sexy Ruby on Rails and if it can “scale”. Or is it just simple incompetence?

To me Ruby on Rails falls into a class of technologies that are affected by what I call “the VRML syndrome.” Basically, if I wait long enough the hype will go away, the recruiters will stop posting job listings requiring 4 years of experience in a 4 month old technology, books as fat as my two fists will stop being published, and I will not have to learn it.

What’s the problem with Ruby on Rails? Well, it’s the same problem that slightly affects the content management system that I am currently working with (Drupal), and is the reason why I completely gave up using Microsoft web technologies which are saturated with this shit. See, software craptitechts all of a sudden decided that writing CRUD applications is too difficult for regular developers, and complicated GUI tools and frameworks need to be created to help the poor things. CRUD stands for “Create, Read, Update, Delete” and is just a funny way to say “a browser-based application chock-full’o forms”.

The default way to build these is to rather simple. You hand-code the html forms, then you write functions or classes to deal with the form input — validators and SQL queries for creating, updating and deleting. Then you write some code that will query the database and display the saved data in various ways: as pages, xml feeds, etc. None of this is difficult or non-trivial. Bad coders don’t do a good job of validation and input sanitizing resulting in the Little Bobby Tables-type situation, but these things are not very hard to learn and there are great libraries for this.

Ruby on Rails makes it very easy to create CRUD apps without hand-coding forms or writing SQL. RoR goes to great lengths to abstract out SQL, not trusting the developers to do it right. SQL is more functional than procedural, and thus a difficult thing for many programmers to grasp, but it’s not that hard. Really. SQL is located far enough levels from the machine that abstracting it out becomes a horrible thing due to the Law of Leaky Abstractions. Even when you have full control of SQL queries optimizing them is sometimes hard. When they are hidden by another layer it becomes next to impossible.

In short, RoR makes something that is easy (building CRUD apps) trivial, and something that’s hard – optimizing the database layer next to impossible.

In Drupal there are two modules, CCK and Views that allow you to create CRUD entirely through web interfaces. This is a feature that exist in just about every major CMS, it’s just that in Drupal it’s a little buggier and overcomplicated than necessary. These are fine for small websites and are really useful to amateurs. The problem arises when these are used for high traffic websites.

I think that a lot of people will agree with me that writing HTML and SQL queries using GUI tools is amateur hour. You just can’t make a good website with Microsoft Front Page. You can’t, you can’t, you can’t. But in Drupalland it’s all of a sudden fine to use Views to build queries for high traffic sites. Well, it’s not. Dealing with Views and Views Fast Search has been an ongoing nightmare for me. Hell is not even other people’s code in this case. It’s other people’s Views.

RoR, Views, CCK are one level of abstraction higher than you want to be when building a high performance application. The only way the can be an “Enterprise” tool if your enterprise is a) run by a morons that require 100 changes a day AND b) has very few users. In short, if it’s an app for the HR department of a company with 12 employees – knock yourself out. If you are building a public website for millions of people – forget about it.

Your, Deadprogrammer.

P.S. Yes, I know, you can abstract just about everything and reduce your software application to a single button labled “GENERATE MONEY”. You have to be a very smart LISP developer for that.

Bread and Circuses 3: Smelts and Westlake; Uni and Defoe

This is a third, and likely last article in which I pair up food with books. The previous two did not generate a single comment, but I still want to finish the series.

My third favorite cuisine is Japanese. The best Japanese cooking is about the ingredients. Think about it: sashimi is basically sliced up raw fish. It’s an ingredient with the least preparation possible. Yet it’s one of the tastiest things ever, if the fish is good and the chef sliced it well. Simplicity and lightness, that’s what I like about Japanese food. I’ve picked two of my favorite dishes, a fried fish and sea cucumber roe, and paired it up with two simple light reading book series.

My father grew up on Sakhalin island, a place where salmon and even sturgeon roe were dirt cheap and widely available. Kids would thumb their noses at their caviar and smoked fish, my dad said. But there was one fish still highly prized. A humble smelt. Easily caught, it was usually full of delicious roe. Fried – the tastiest thing ever. While fresh, interestingly enough, smelts smell like fresh cucumbers. I first tasted a fried smelt in a Japanese restaurant Yakitori East, one of the few places in New York that serves them. They are also available in Japanese and Korean supermarkets, I’ve bought and fried them at home many times.

Fried smelts are just as addictive as books from the Dortmunder series by Donalde E. Westlake. These are masterpieces of a particular subset of subset of crime fiction genre: a comical caper story. You get too root for a band of bumbling crooks led by John Archibald Dortmunder, a very competent, but extremely unlucky master thief with a beer-inspired last name.

You know how the two Alice stories have a chess game and a card game theme? Well, Dortmunder stories can be thought of as games of American football. The characters are highly specialized, just like football players, they face constant fumbles and setbacks, but from time to time they get to score. In fact, if I remember correctly, one of Dortmunder books even has chapters based on football: “First down”, and so on to more downs than there are in game rules.

Dortmunder’s core crew includes an all-purpose crook Andy Kelp, a thuggery specialist Tiny Bulcher, a getaway driver obsessed with New York City traffic patterns Stan Murch. Kelp and Dortmunder can pick locks, but when the job calls for it experts are called in. So are extra drivers, computer experts, and other colorful characters. Everybody except Stan Murch has long time girlfriends who take part in criminal acts from time to time. Stan’s cab-driving Mom known as “Murch’s mom” is a frequent cast member.

The now-canceled Firefly tv series is definitely inspired by the Dortmunder stories: as a nod, Joss Whedon named one of the big Alliance ships IAV Dortmunder.

There’s something amazingly likable about a competent, but unlucky master thief with a hang-dog look about him. I, for some reason deeply identify with Dortmunder. On the other hand, in real life I’m probably more of Arnie Albright, the friendless and obnoxious (and aware of it) fence. Arnie’s so obnoxious that nobody willingly deals with him (unless they have to). Dortmunder would much prefer dealing with another fence, Stoon who’s unreliable and pays much less.

I’ve read every single Dortmunder book there is. Westlake is currently working on the next installment in which the gang participates in a reality show.

***

Uni is a simple dish. Well, it’s not much of a dish. It’s sea urchin’s roe. You just dunk it in soy sauce and eat it. Uni had amazing taste: creamy, briny,sweet, custardy. If you watched Iron Chef at all, you probably spent hours listening to the judges rave about uni.

What would go great with uni? Gideon Defoe’s Pirates! books. What are they about? Well, they are about oh, only the most important things in the world. Ham. Piracy. Marine mammals. Science, Philosophy, Love. Sea shanties. Ham.

The nameless Pirate Captain leads a large group of child-like pirates and Cutlass Liz through most amazing adventures. His evil rival Black Bellamy constantly defeats an humiliates him and his crew, but the Pirate Captain does not like to dwell on that.

If I were to trust what I’ve read on the Internet, Pirates! was written to impress a girl to leave her boyfriend (which she didn’t). Defoe also is somehow related to Daniel Defoe.

There are three books out:

[amazon cover 0375423214]
[amazon title 0375423214]

[amazon cover 0375423850]
[amazon title 0375423850]

[amazon cover 0375423974]
[amazon title 0375423974]

According to Gideon’s livejournal, The Pirates! In An Adventure With Napoleon is already out. Also he’s working with Aardman on a Pirates! cartoon.

Blue Sun Corporations

Blue Sun Corporation is and important, but not very noticeable part of the the brilliant, but so very canceled TV series Firefly. Their logo is everywhere you look, but they are oh so very evil. They conveniently provide all sorts of goods and services, but at the same time they run sinister human experiments, employ vicious killers and wallow in their crapulence in every imaginable way an evil corporation could.

You can buy your very own Blue Sun t-shirt at Think Geek.

In Manhattan there are two corporations that very much remind me of Blue Sun: Verizon and Chase. Every time I deal with them I feel that I am forced to do things that I don’t want to do and that I am getting a bad deal. The only reason everybody’s dealing with Chase and Verizon is because they are everywhere you look. In Manhattan you can’t swing a dead cat without hitting a Chase branch, and Verizon cellular signal reaches underground into some subway stations.

Chase advertises its omnipresence with this sinister ad that could just as well be from an alien infection film.

This kind of ubiquity allows these corporations to charge above market prices and have bad customer service.

Why do I hate Chase? Well, they keep thinking of ways to make depositing money more difficult. First they changed their deposit slips. Am I the only one inconvenienced by that? No. Here somebody altered the little poster announcing the change.

Now they started using cash machines that do not take envelopes, but scan your check. As you, me, and the people who plowed money into Riya, you can’t rely on computers to non-trivial optical recognition. I tried depositing 3 checks several times. The machine ate one of the checks (not giving me a receipt) and rejected the other two. I wasted a lot of time and cell phone minutes trying to report the issue (they did not even provide a courtesy customer service phone). I still haven’t seen the money from that check.

Lying commission-driven customer service is another big problem. At Chase they constantly trying to sell you something. Once a customer rep tried to sell me a historically market out-performing mutual funds. He had this awesome “prospectus” with charts carefully selected to show crazy returns, but refused to give me a copy so I could research it.

Verizon reps will routinely forget to tell you about contract extension that comes with any service change, even if you don’t have get a new phone. Then they will refuse to change anything in your contract. They will add expensive features you don’t ask for. Good luck trying to have your defective phone repaired – it’s an ordeal.

Both Chase and Verizon are a bad value, but great convenience. I suspect that part of their penchant for name changing is not so much because they keep buying up competition, but because their customers don’t think very well of them at all. I was their customer when they were Chemical Bank and Bell Atlantic. They sucked back then too.

The worst part of dealing with banks and communications companies is that they heavily penalize you for your mistakes, but there’s not much you can do to charge them for theirs.

Chase stopped sending me Amazon credit card rewards for about a year. An hour of customer service phone calls and a month later I got my Amazon gift certificates. It’s free for them to mess with you: you have to do a lot of work to make sure that what you get from them actually comes through. Instead of digitally depositing the certificates, they send them on paper slips containing long strings of letters that you have to type in. It’s cheaper to splurge on the cost of printing and mailing in the hope that it will get lost. And if they stop sending them and you forget? Bonus. Also, there’s something called “float.”

On the other hand, send your credit card payment late and you get a huge fee.

Use a bit more minutes than are in your Verizon plan, and you’ll get a bill that will make your teeth grind. But on the other hand, they overcharge you and then sheepishly return the money (which just now happened to me), you don’t get to charge them a fine.

I think there was this guy who charged his bank a fine for every mistake that they’ve made, but I can’t find a link.

Anyway, to make the long story short, Verizon and Chase make me want to vomit in terror. I’ve been with them for years, but it’s time for a change.

It’s interesting to note that I’ve worked for both Chase (briefly as a consultant) and for Newscorp. What’s interesting about it? Well, Newscorp owns New York Post which was founded by Alexander Hamilton. The “Manhattan” part of Chase Manhattan Bank (as Chase used to be known) comes from The Manhattan company, founded by none other than Aaron Burr. Because I currently work at the World Trade Center, I frequently walk past Hamilton’s grave in Trinity churchyard.