Blog

  • Deadprogrammer’s Hierarchy of Web Needs

    I recently received a phone call from a recruiter. He wanted to lure me away to some “big company” that still had “small company feel” to participate in a “redesign of a major website”. He felt like all of these things, as well as “a well stocked kitchen” were big selling points.

    I am a veteran of many website redesigns, major and minor. I’ve come to dread the word “redesign” because very frequently it meant taking a perfectly good website and making it significantly worse, and then through major struggles making it marginally beter. In the past I wrote a rather bloated article titled “The Russian Tea Room Syndrome” about this. Today I would like to write a bit more about this, as this topic rarely leaves my mind and my life.

    Earlier in my career, I had very little influence over the redesign process, but this is changing. This is the primary reason why my job title has the shameful word “Architect” in it: I write code and configure servers, but I want my say in strategery as well.

    So, Michael, you might ask, what is the problem with redesigns? Aren’t redesigns about making websites better? Well, many redesigns suffer from not following IBM’s famous motto.

    IBM has one of the best corporate mottos ever: CRUSH and DESTROY. Uh, I mean THINK. They even give out props with the word “THINK” on it and publish THINK magazine.

    Many redesigns happen simply as a knee jerk reaction: oh, look company X is doing Y and using Z. When you sit in a meeting and somebody is describing a redesign purely in terms of things other people do, you are likely in trouble. No thinking is involved at all.

    But sometimes it’s the type of thinking that is going on that is the problem. You have to think about the relative importance of things.

    I have a picture by famous graffitti artist Banksy hanging on my wall. It is a metaphor about true and false importance.

    In 1943 a Brooklyn College professor Abraham Maslow outlined what is now known as Maslow’s Hierarchy: a pyramid that ranks human needs. It looks like prior to him nobody really gave a lot of thought to relative importance of pooping and morality. Well, maybe a little – there’s a Russian idiom for a person of untrustworthy nature that originated during WWI when soldiers relieved themselves in rows, next to specially dug trenches: “I would not take a dump next to this person”. Also see “I hope they serve beer in hell

    Here’s Maslow’s pyramid in all of its glory:

    I decided I’d come up with the hierarchy of web needs:

    standard adherence: strict XHTML, CSS, etc

    choice of technology: language, CMS, OS, cloud/servers, etc

    other features: widgets, games, microformats

    multimedia: video, podcasts, interactive flash

    design: graphical elements, typography, pleasing layout

    semantic web: metadata, tagging

    usability: text size, image size, logical layout, uncluttered interface, site name/urls, browser support

    community features: comments, ratings, feeds

    googliness: search, speed, security

    content qualities: usefulness, interest, freshness, uniqueness

    content: text, images, links

    In my opinion unsuccesful redesigns happen when people start from the wrong end of the pyramid (always skipping the first step: I’m yet to meet anybody with power who thinks about these things are important).

    I will expand on this in my next post.

  • December 11th – National Backup Awareness Day

    Something horrible just happened to Jeff Atwood aka CodingHorror.

    “ugh, server failure at CrystalTech. And apparently their normal backup process silently fails at backing up VM images.”

    “I had backups, mind you, but they were on the virtual machine itself :(“

    It’s a times like these we start wishing for a time machine, a cosmic undo button or reversible computing.

    Jeff’s blog was read by tenth of thousands of programmers and system administrators for many years. It contains information that is very valuable for these people, and represents an unthinkable amount of hours spent by Jeff. An agency rate for somebody like Jeff is between $250 and $500 an hour, but this is like appraising a priceless family heirloom.

    I am not going to go through the motions of telling everybody how to backup things, about how important offisite backups are, how disk drives are fragile, how I don’t trust virtual servers, how raid is not a backup strategy, and how version control is not backup strategy, etc, etc. JWZ wrote a good article about backups.

    Here are things I want to say. First, we are all not backed up sufficiently and likely have already lost data that we would want back.

    I can’t find my grandmother’s recipe book (I still hope it’s only lost), my wife’s first email to me, my first web page through which she found me, my first job search web page that had a picture of the Twin Towers and said how I wanted to work there, my early school grading papers, a rare book about fishing in the Black Sea, a stamp from the Orange Republic that used to be in my father’s stamp album, the password to my very short-numbered ICQ account. A lot of stuff.

    All of our digital information is susceptible to an electromagnetic pulse, fire, flood. Spinning platter hard drives are particularly bad – they have very short lifespans measured in low single digit years. CDs are even worse – aluminum inside them rots (I have a cd with a lot of outlook emails that reads as a blank filled with 1s).

    So the first thing that I would like to mention is that if you never simulate a failure, you’ll never know if your stuff can be replaced. It’s not an easy thing to practice, though – restores and failovers are tricky to do.

    A few jobs ago we were getting a fancy new load balancer set up. It was up and running, and supposedly we had failover: if one of the servers died, we would not even need to do anything, the backup servers would pick up the slack. I suggested that we should test it by pulling the network plug on one of the machines off hours. My boss would not allow that, saying that we could possibly break things. My argument that it’d be better if something like that happened when we were ready it would not be as bad if it happened when the actual failure would occur. When the actual failure did occur the load balancer did not switch, and we had an outage that was a good deal longer (it happened at night).

    Load balancers are not backup solutions, but this story highlights an irrational streak in system administration: nobody wants to practice failure: it’s just too nerve-wracking, and a lot of hard work. It’s much easier to assume that somebody up the line did everything correctly: set up and tested backups, startup scripts, firewalls and load balancers. Setting up and validating backups and testing security are thankless jobs.

    This brings me to a another point. The act of taking a backup is not risk free in itself. The biggest data losses that I suffered happened to me in the process of setting up backups. As an example I’ll bring up the legendary story about Steve Wozniak (whom I met yesterday):

    The Woz was creating a floppy driver under an extreme time pressure, not sleeping much and feeling sick. The end result was a piece of software of unimaginable beauty: it bypassed a good deal of clunky hardware, and thanks to a special timing algorithm, was fast and quiet. When other disk drives sounded like a machine gun (I dealt with a few of those when I was young), Woz’s purred like a kitten. Finally he wrote the final copy onto a floppy, and decided to make a backup of it. Being dead tired, he confused the source and destination drives, and copied an empty floppy onto the one with the precious driver. Afterward he proceeded to burnish his place at the top of engineering Olympus by rewriting the thing from memory in an evening.

    It’s really the easiest thing in the world to confuse the source and destination of a backup, destroying the original in the act of backup! The moral of the story?

    Do as much backing up as possible, while being careful not to destroy your precious data in the process. Have an offsite backup. Print out your blog on paper if it’s any good. In fact, print out as much stuff as you can. Your backup strategy should be like a squirrel’s: bury stuff in as many places as possible (well, except sensitive information, which is a whole other story in itself).

  • Entrepreneurship Heros II: Night at the Museum

    If the Seal of New York City were designed today, it would not have a sailor and a Native American on it. It would have a cab driver and a food cart vendor.

    Cab driving and food vending wood seem like the two of the most democratic enterpreneurial options, the foundation of which is the public streets New York City: you just wheel out your vehicle and try to make some commerce happen. The only thing that you need is a license. The one for cab driving is called a “medallion”, costs $766K, and as an investment vehicle outperformed just about any commodity and stock index. The food cart licesnses are also very expensive. Plus you are hounded by NYPD, Department of Sanitation, and who knows what else. Cab drivers and food cart vendors are some of the hardest working and most prosecuted businesmen in the city, but sometimes they have their own victories, big and small.

    You don’t need to go any further than the Metropolitain Museum of Art to see two interesting examples. Right in front of the museum there’s a collection of food carts. They all are very typical carts, none of them are of the fancy variety. There are two types represented – the basic “dirty water hot dog” cars and “street meat” carts. But there’s one important difference – they all have stickers that say “Disabled Veteran”, and there’s usually an actual veteran somewhere nearby.

    In the past years the space in front of the museum was either empty or occupied by one or two carts licensed by the Department of Parks. Then one day Dan Rossi, a disabled veteran, discovered a 19th century state law that allows disabled veterans to sell food in areas that are off-limits to others. The location in front of the museum is particularly lucrative because there are no affordable restaurants as far as an overweight tourist can walk. This hack is a small, but significant victory for food vendors. They are still ticketed mercelesly by NYPD, have to work crazy hours, and deal with the need to urinate in some kind of a miraculous way. At least they got an article in the New York Times written about them.

    Across the road from the veteran’s carts is a mansion that belongs to billionaire Tamir Sapir, a former cab driver.

    Mr. Sapir’s legend starts in Georgia, USSR. He found an interesting niche business: filling out complicated emigration forms for the Soviet Jews. At some point he was persuaded by his mother to give up his excellent life (it was a very lucrative business, from what I understand) and emigrate to Israel himself. He found himself in the middle of the Yom Kippur War, and quickly emigrated to the United States. He worked hard to earn enough money to leave rural Kentucky for New York, and then even harder to buy a cab medallion (which was a lot more affordable in those days). Then he risked everything again by putting up that medallion as collateral for a loan that he needed to open up an electronics store with a partner.

    In the 80s there was a bit of a thaw in Sovet-American relations – Perestroyka and whatnot. There was a significant amount of people visiting the US – diplomats, scientists, sailors, and those invited by relatives. These people were allowed to exchange a small sum of rubles into dollars at the official rate – if I remember correctly, 60-something kopeks to a dollar.

    What these lucky tourists wanted the most was electronics. In particular – vcrs, doule deck cassette players, and Walkmen. They had the money to buy these things, but here’s a problem: they needed 220 volt round plug devices, and more than that, VCRs needed to support the SECAM standard. You could not just walk into any store and find these: American market was all 110V and NTSC.

    Every child in Odessa back then knew all of this, as well as that if you found yourself in New York City with some money, all you needed to do was trudge over to Timur’s (this was before he changed his name) store in Manhattan and find 220V SECAM VCRs.

    Mr. Sapir was making a mint, but more importantly he was making connections with the Soviet ministers, diplomats, and future oligarchs. A little later he was invited back to the USSR, and made more connections there. These connections allowed him to play on the Soviet deregulation arbitrage market.

    You see, when the Soviet Union was transitioning to the market economy all prices were regulated except those for commidities like metals, oil, and fertilizer. Those with connections could buy these commodities for already devalued rubles and sell them abroad for hard currency, making millions of dollars. All you needed was connections, which Mr. Sapir had.

    He made millions, but the game became very dangerous as people tougher than NYC cabbies entered it. Mr. Sapir did not continue his career as a commodity exporter. Instead he invested his millions into New York City skyscrapers. The real estate market bottomed out, and you could buy a whole skyscraper for 10 million dollars or so. He bought a whole bunch of them. The price of Manhattan real estate exploded, and he became a billionare.

    He bought a mansion across from the Metropolitain Museum to house his collection of carved ivory (for some reason this was a very popular area of collecting in the Soviet Union), has a yacht that used to be stuffed with a collection of exotic animal taxidermy that could rival Mr. Burn’s wardrobe or Amy’s car from Futurama.

    Well, the two lessons here are: 1) you have to take risks and 2) you have to find a niche. The rest is luck.

  • Entrepreneurship Heros I

    To celebrate my 2 year anniversary of working for Fast Company and Inc magazines, I decided to write 2 posts about entrepreneurship. Here’s the first one.

    The owner of super awesome HMS Beekeeper store recently complained that people told her that she should close “because it’s ‘buy nothing day’”. I’m pretty sure that these people would have enjoyed my childhood in the Soviet Union, where most days were ‘buy nothing day’. Soviet Union was the kind of place where reporting your father to the secret police could make you a national hero, while engaging in business activity was a crime.

    I was brought up in an environment where 99% of non-governmental commercial activity was outright illegal, and the allowed kind was considered extremely unwholesome by association. Just about any item produced by the Soviet industry would be stamped with a price in order to discourage illegal arbitrage, like this condom, for example:

    These days outside of California it’s hard to imagine a society that considers this much commercial activity evil, but when I was a kid, any schoolchild caught engaging in commercial activity of any sort could get in a lot of trouble. Personal entrepreneurship was literally a criminal activity. This kind of an environment tended to produce excellent jet fighters, but pretty crummy condoms.

    In America entrepreneurs get a lot of respect (outside of government and hippie circles), and they tend to start early. You always read about the likes of Warren Buffet and Bill Gates having business ventures in high school and college.

    My former co-worker told me a story about his daughter who got into trouble for her entrepreneurial activities in 2nd grade. She and her friend decided to cash in on the popularity of Webkinz. They went into the business of selling hand-drawn counterfeit Webkinz trading cards. Surprisingly they were able to sell a good deal of those. The trouble came when the teachers noticed that they were engaged in market segmentation and variable pricing (which is a topic of one of my favorite Joel on Software articles). You see, the girls were selling cards at a discount to the popular kids and at inflated prices to unpopular ones.

    This episode only increases my dislike of schoolteachers. If I were in their place I would have praised the girls for entrepreneurship, and explained to them that it’s copyright infringement that is problematic, while market segmentation is perfectly kosher, even if a little sneaky. I’d teach them about premium vs generic branding and how some people happily pay a lot more for identical items in different packaging.

  • Nepso

    I present you my four year old daughter’s latest creative output. While other kids are drawing useless doodles, Natalie is mastering the steps of NPD, brainstorming, advertising, and graphic design.

    This is a rather detailed concept for “Nepso” brand candy (here seen “falling into a basket”).

    Note the unique brand name, the pleasing overall layout, and a fine, fine logo work in the bottom right corner.

    While this work might be considered derivative of products of Mars, Incorporated, I still feel that this is a fine first foray into marketing.

  • wi.nr

    A couple of my friends created a new url shortener. Wait, stop booing. There’s a twist – it has the coolest url ever – http://wi.nr. And you can win something or other by just using it. And you get statistics. Well, I guess it’s about it. Did I mention these are my friends that are doing that?

    Why should you care how short your url is? Well, it’s basically because the retards at Twitter don’t allow for inline urls (if they will one day, url shorteners would die like they deserve to), and if you want your stuff retweeted, you need to leave a couple of characters for RT and the username. Of course url shorteners are evil in general, and people at Twitter are incompetent technologically, but very lucky. And being lucky is more important than being competent.

    The funny thing is, I absolutely legitemately won their first $5 Amazon gift certificate.

  • The Vault

    A friend of mine, a contractor, recently came to me with a strange problem. He did an excellent job renovating my apartment, and since then he got used to me delousing his Windows computer and coming up with creative googled-up solutions for just about anything. This one has me stumped though.

    Right now he is demolishing a location, previously occupied by a bank. It has a vault door in it that my friend needs to cart away.

    He wants to sell it. I mean, the thing looks valuable – but I have no idea of who would want something like that. Movie people? A restaurant? Eric Sink (his company has a product called Vault and he must be flush after Microsoft buying a chunk of his stuff). I wonder what would happen if we did place it on eBay. Well, in fact there are a few of them there, and people don’t seem to be buying.

  • 8 Pieces of Architectural Advice for CMS

    I have some advice for those in the business of building large websites with content management systems.

    1) Do not implement search yourself.

    Your CMS sucks at search, and so do you. I see this again and again and again. Everyone is implementing search on large websites instead of using Google. Developers are afraid of looking unprofessional. Managers are answer yes to the question “do you want advanced/faceted search” (the correct answer is no – user’s don’t like it and don’t use it). As a result a lot of resources (both server and developer) go into implementing something that Google is awesome at. Even some very smart people, like Jeff Atwood roll their own search, and their users end up going to google.com and typing “foo site:stackoverflow.com”.

    Users are very happy with Google CSE, and don’t mind the text ads. Those text ads – well, that’s revenue that you would otherwise would not have, however small this is. If you absolutely can’t do Google CSE – buy their search appliance. If you can’t do that either – well, you better be using Solr.

    2) Do not implement comments yourself (unless comments are what you do for a living).

    It is extremely difficult to get comments right. Users absolutely abhor comments. Spammers – well, they love it. Luckily, you can just go and get DISQUS to do all the heavy lifting for you. The time saved on using DISQUS can be used on building something else, meanwhile users absolutely love leaving comments through it, while spammers hate it.

    3) Physically separate your admin interface from the stuff that is going to be used by your users.

    Maciej Ceglowski has some words of advice about not having your blog hacked: cache your output in flat files and hide the admin interface. The benefits of this are tremendous: cached files are fast and secure. You will need to do some fancy footwork to serve up parts that change a lot, but you can do it the same way DISQUS and Google CSE do it – through the magic of AJAX.

    4) Sanity check: calculate the amount of RAM in the home computers of all of your interns. Compare that to the amount of RAM in your server farm. Who wins?

    5) Use a CDN and/or caching proxy, don’t be cheap. These things will save your butt when Yahoo and Digg will come a-knocking at the same time. I’m not even going to mention Memcached – you can’t get big without it at all.

    6) Fight WYSIWYG editors. These things are the worst. They are the Devil. They are a security hole. You never get what you see. People paste from Word. Do I need to go on?

    The best middle of the road solution is something like Markdown.

    Do not underestimate the user’s ability to learn a few simple rules. When I worked at TV Guide there was this movie database application. Very non-technical editors were using a very scary-looking Unix-based interface at an amazing speed. When I rewrote it as a web interface, it became more “user-friendly”, but they could not enter stuff as fast as before.

    7) Make sure you have good backups

    8) I know you won’t be able to follow my advice, I know I can’t either. Life is a constant compromise.

  • Zombie-free Mac Children’s Games

    I was born at the beginning of the age of information. I welcome the content deluge.

    I’m not a snob. I do not discriminate amongst the sources of content, gladly consuming books, television, movies, music, magazines, websites, wikis, and blogs. I like to think that thanks to technologies like ebook readers, blog aggregation, suggestion engines at Amazon and Netflix, and Tivo I limit my input to only the stuff that is “awesome” on the “Normal people” scale.

    I remember the time when the flow of information available to me was limited to my father’s sizable library and a few hours a week of interesting TV culled from the 3 horrible channels of Soviet television, and really don’t miss it.

    My 4 year old daughter is swimming in the sea of information together with me. We read books to her (the quality of children’s books these days is amazing), she watches dvd and tivo’d shows, youtube videos on a laptop. She really wants to play with a computer as well.

    Unfortunately the only game that I have is “Plants Vs. Zombies“. We play it together usually as a reward for good behavior. She enjoys the “zen garden” part of the game, as well as the regular “zombie” part. This, of course led to the questions on the nature of zombies (uhh), their diet (brains), the nature of brains, and the absence of female zombies in the game (uhhh).

    When Natalie was younger and I used to have a PC, there was a whole bunch of craptastic PC games (one even with a special keyboard, if I remember) that we used to play. These crashed often and were pretty retarded.

    Now that I have a Mac, I’m looking for some better, zombie-free games suitable for a 4 year old. Finding good computer games is much more difficult than finding good children’s books. Do you have any suggestions?