Saturday, November 29, 2008

Death of the Premium

What a great article on Gizmodo! After numerous failed attempts to buy a decent laptop recently, I’ve been ranting about the depressing effects of Sturgeon’s law on computer industry. My wife tells me I’m getting old. Perhaps... But there is one thing I am sure about: this isn’t just about computers.

It has been universally accepted that 90% of everything available to buy, watch, eat or listen to is crap, but the mere existence of those “normal” 10% made me feel OK about it. Want something that works? Want to see a movie that wasn’t made for a dumbass? Want to eat an actual grown vegetable instead of a toxic manufactured biomass sprayed with “taste” yet approved by FDA because it hasn’t been proven to kill instantly on contact? Well, you could always pay extra and get the “other 10%” - the stuff that works, movies that make sense, food that’s been grown as opposed to manufactured, software that doesn’t crash, an alive customer service rep. instead of a robot-over-email, etc. Yes, premium goods and services usually cost a lot more, but hey! - this food will give your dog a chance to actually live as long as the wikipedia article says he’s supposed to.

The problem is that we’re seeing a slow death of the premium. Many companies are deciding that the other 10% just aren’t worth the trouble. Market doesn’t want it as much. The consumer prefers free and slow crashing software over paying $59.99 for something that works. Pre-broken computers are popular because they would have been $50 more expensive if sold in a proper working condition without damaging crapware on them. Weird crunchy red objects at my local grocery store are called “strawberries” and there is a growing generation of kids that actually believe that strawberries are supposed to be that. You cannot buy a laptop with a usable LCD: today your only available option will be TN-based, 6-bit, low-contrast, glossy wide-screens with pathetic color reproduction often spiced up by horrendous light bleed. Yeah, those 12-megapixel noisy photos from your latest Canon camera will look fantastic! Never mind that 4 year old cameras available for $20 on eBay actually take better looking photos. And even Apple won’t build you 16.7 million colors laptop despite their pricing: dithered 262,000 is “good enough”. And who’s complaining? $499 for a freakin computer can do no wrong, you can buy one for every Christmas (and why shouldn’t you? Next year they’ll drop another megapixel into an integrated webcam and a keyboard will be glossy too!)

Our bottom-line oriented, cost-driven consumer culture is dragging us into the world of affordable mediocrity, where everything is commoditized, standardized, made in China and very affordable. There are grown ups now who call shopping their hobby. I guess nobody wants stuff that works simply because most of what people buy never gets any real world use, the mere fact of buying the goddamn thing, not using it, is the point.

There are two practical and unfortunate effects from all this. First, we can’t dodge the crap anymore by buying less and paying more. That stinks but well... You can always picture poor kids in Africa or go 200 years back in time to realize how silly you look bitching about those LCDs... But there is another, more troubling aspect of it though: the death of premium means that innovation, engineering and science don’t matter as much as marketing, advertising and packaging. As much as I hate the military, they remain the only customer capable of demanding more. And paying for it. And since Cold War is long time over, I guess we’ll continue living off the tech we had built to fight it. Until the aliens, of course, threaten to conquer us all.

Sunday, November 2, 2008

Are Social Networks Underhyped?

Apparently someone thinks so.

Pretty bold statement, in spite years of Facebook's repeated failure of making any money. If you don't have the time to read the article, the argument goes like this: we haven't seen the full potential of them yet. In the future the entire Internet will be revolving around social graphs because, presumably, our social connections are what guides us in real life: doctor recommendations, business introductions etc. And these real life nets are going to be transitioning online dragging the rest of the Internet along.

Don't think so. All that stuff's online already, there isn't a greater degree of "onlineniness" possible. This is not an early adopter game anymore. How's someone is going to "get more connected"?

In fact I am observing the opposite: the mainstream public (looking at my non-techie friends) have been fully exposured to it, had enough of it, and is slowly getting tired of it. We're not talking about early adopters anymore: everybody has an online identity and has learned its limitations and implications.

If anything, social networks are getting boring: outside of your real circle of friends you see the same strangers posing to be smarter, better looking and happier than they really are: people aren't that different after all, and your real social network stays where it has always been: in your cell phone's address book.

And that's where I'll be turning to for an advice about finding a doctor or a car mechanic. I don't give a rat's ass about what "people on the internet" have to say. At least half of them voted for Bush. Twice.

Saturday, November 1, 2008

Yes. Windows is a ghetto.

This guy complains that developing for Windows is tough. No kidding. Ironic as it is, but his writing is mostly about an easy kind of Windows development. Web apps behind IIS? Not that hard, really.

Try building an installable desktop software for Windows. That's where real fun begins. It is quite common for teams doing Windows work to dedicate as much as 20% of available manpower to the installer alone (!). I've been coding Windows desktop in C++ since graduation in 98 and has always looked down on web programmers since they had it so easy. But once I got older I realized that all my Windows-fighting instincts and in-memory database of gotchas are nothing to be proud of: most of my career I was boxing against the platform I was working on, while some were having fun building an actual software.

Some may ask why on earth would someone spend 20% of time writing an installer, copying files shouldn't be hard, right?

Wrong. The problem isn't getting files in the right place, the problem lies in how inter-connected and "integrated" everything is on Windows. "Internet Settings" in the control panel, while they seem to be IE's settings, actually affect how some Windows Internet-family API functions behave. Then there is a big hairy mess called COM/ActiveX: you can't parse XML without it, yet there will be computers, be it one out of 100, with broken XML parser COM registration. Same applies to various shell-related COM servers which are essential to desktop integration. And yes, IE is the part of the OS despite of the illusion that you can uninstall it.

Then there are cases when other applications break your code: Symantec used to install their own version of MFC DLL right into System32. Then there are super-aggressive anti-spyare/anti-virus/anti-whatever packages that are basically hacks breaking all kinds of legit software. Windows encourages this style of development: when an application essentially becomes a collection of COM servers scattered across your hard drive, hooked into your system via complex mesh of registry settings. And there is no way around it: this is what MSDN tells you to do.

Then you'll have users complaining that when they launch your RSS reading software (or whatever you do), they get a popup that says "Windows Installer: configuring Microsoft Office" that disappears after about a minute of "collecting system information". And users will tell you that everything worked great for 2 months but then "computer did something" and this popup started appearing.

And they keep adding more shit on top of existing shit. Now, in addition to COM and MSI and registry you get this "side-by-side execution" bullshit, when you can't even tell which version of a DLL is being loaded and Windows Explorer essentially hides your own fucking files from you, so even locating a misbehaving DLL becomes a debugging session on its own, where you'll need to decode cryptic hidden directory names and extract a manifest from some executable's resources to see which DLL it actually wants. Having a DLL side by side with an executable isn't guaranteed to work anymore. When they rolled that out I felt sick for a while.

And finally, there is no such thing as "Windows API" anymore. XP machine connected to a domain controller/AD is a very different beast than XP home or Win2K. I'm not even mentioning Vista here.

For my last Windows project I went for "xcopy deployment" with one single fat executable statically linked to everything it needed to run with some help from open source libraries, essentially very similarly to how Firefox does it. But this style of development isn't really for "Windows Platform", this way you're targeting a "sane subset" of Windows platform.

There may be a few minor technical mistakes in what I've written. After all I haven't seen Visual Studio in a long time, but I know that largely I am correct. And I don't hold any excitement about upcoming Windows 7. Why would I? None of their initiatives is targeted towards developers. They're tweaking minor and irrelevant UI pieces, massaging services installed by default, but in the end it's exact same old lame turd. If Microsoft wants to impress me, release a version of Windows without system registry, without MSI and make c:\windows completely sealed: make it so after 3 years of installing Windows, there isn't a single new file sitting under that folder. Make everything, every little piece of next version of Windows fully scriptable and include JavaScript, Python, Perl and Ruby by default. Make the server edition completely free. Integrate with Xen and others, instead of competing with them. Implement every imaginable suggestion for future HTML/CSS in IE9 strictly according to the spec. Break backwards compatibility whenever you want and keep selling XP for those who need it. Finally, try to reinvent the desktop: the damn thing hasn't changed in decades and people still lose their own files without any help from a faulty hardware: they just forget where they are and how they're called.

Linux, and especially OSX, aren't prefect either – there are tons of areas for improvement. Innovate Microsoft, instead of competing with Google in a lame contest of being the most technologically inclined media company. It's very easy to compete with a media company: just make sure you focus on software and where do you think the best CS grads will want to work at?

The irony of it is that once upon a time Microsoft was kinda cool. I was a teenager but I still remember those "good&old" days of snobby IBM/Sun/Oracle salespeople with their super-expensive software, hardware, development tools and even documentation (I was told you could sell your car for a full copy of OS/2 SDK). And then there was Microsoft and Borland, with great, inexpensive and innovative products, driving PC revolution and attracting folks like me and my friends to CS.

Tuesday, June 17, 2008

Opera is THE browser for Linux

Ever since my “big switch” away from Windows a few years ago, I couldn't help but notice how much worse, quality wise, Firefox worked on Linux as compared to its Windows version. Don't get me wrong, Firefox on Ubuntu is not a bad piece of software – I use it heavily and usually I have multiple windows open in several desktops each with multiple tabs. Sure it crashes once or twice day, not a big deal. I even like occasional crashes. Crashes are exciting, they add a little bit of spice to every day's perfectness of my computing environment. :-)

What's been killing me though, wasn't that – it was what I call a “800Mz scrolling” problem. When I am on a battery, the laptop naturally is trying to preserve some power and switches to a conservative CPU scaling governor which likes to stick to 800Mz unless applications absolutely need more. Which is fine, most laptops do that. Except that Firefox on Linux really needs a lot of CPU power to scroll pages. This is kind of ridiculous, since scrolling has been done (mostly) by graphics hardware on Windows for the last 15 years, but FireFox on Linux demands 2Gz of CPU horsepower to scroll a freaking page, unless it's something as trivial as

Find a moderately heavy web page, quickly scroll up and down using the strip on a touchpad's left side and watch for 10 seconds – FF will be scrolling, turning your 800Mz Core Duo2 into 386SX 32Mz relic. I run Windows on VirtualBox, and “virtual WinFirefox” is many times more responsive than it's native Linux version, it scrolls web pages quickly dammit...

So one day and installed the latest Opera. Again. This wasn't my first time though, I've done it before and every time I get turned off by how foreign and ugly Opera always feels: the hotkeys were always wrong, UI didn't resemble any other applications on Windows or Linux, the whole package felt like it just landed from Mars.

The latest version is different. Alt+D finally took me to the address bar by default. Backspace took me to a previous page. UI was still butt-ugly, but it took me only a few seconds to find a theme that looked great, right there in “Tools/Appearance”, no googling required. The mandatory ad blocker is built-in and filters are easily discoverable. Most hot keys were already in place and a few missing ones were easy to add.

But how about that incredible rendering speed! Plus nearly instant start-up times, and the damn thing can actually SCROLL TEXT quickly! What a miracle... It also seamlessly imported my Firefox bookmarks. And after three days of casual surfing I am yet to find a single site, a single page rendered incorrectly. Those sweet mouse gestures are as close to heaven (Safari's multi-touch) as you can get without switching to OSX. Check them out!

Here is the list of changes I've done compared to default settings:

Preferences/Advanced/Shortcuts: remove actions for mouse buttons #5 and #6. This will disable back/forward actions on horizontal touchpad scrolling (in case it annoys you like it does me).

Preferences/Advanced/Shortcuts: add ctrl+K for moving focus to Google search bar and add Ctrl+1 and Ctrl+2 for cycling through tabs.

Appearance/Skin – change the disgusting default skin to “d_t_a__opera_9_only__-trial2” (available via “find more skins”). Or find something you like – almost everything there is better than the default nightmare Opera comes dressed up in.

Download filters for ad-blocking:

Done! You've got yourself the most powerful browser the world of Linux has ever seen.

Sunday, June 15, 2008

My First Mac

A little confession: I have been jealous of Mac users for a while. Most of them don't deserve it though, just visit a random message board where Mac fans hang out. I liked Macs despite their fans. I liked them because OSX is a real UNIX plus you get native versions of most popular softwares. Bash + Terminal + Photoshop = Jealous Me.

So I've been mostly an observer, albeit from a very microscopic distance since my wife has dumped the worst laptop ever made for a Mac almost a year ago. Her Macbook amazed be at being a much better citizen on a Windows network than Windows XP itself. It could share folders, and folders remained shared until I change my mind. I could transfer files over home network every time I wanted. Fascinating stuff... I could never truly master such bulletproof-solid home networking with my ever-varying garbage-farm of beige Windows boxes.

But lucky me, we started trying some collaborative design sessions in Fireworks at work and I got a 4th generation (latest of May 08) Macbook Pro, an ultimate notebook as some people call it. Upon its arrival I burned a full weekend exploring the beast, and it wasn't an easy task: OSX is not Linux nor Windows, and googling for any kind of a solution inevitably lands you on one of those message boards full of useless and loud Mac fans (some tried to convince me that “you don't need to move files”). Where all Mac hackers are? They must be hiding somewhere, but they exist - just look what people go to programming conferences with.

So... it's been a month since then, perhaps not too early for "My First Macintos" post. :-) I won't try to write a “review” of anything, I'll just share a few biggest surprises, something I didn't know or heard about Macs until I ran into it first-hand.

1. Safari is awesome. It blows Firefox out of the water. From developer's perspective I never had an issue with it misunderstanding my CSS, and as a user I now find it hard to live without multi-touch browsing and sweet highlighting of search results as I type. The way Safari renders pages makes me feel like Internet suddenly got 20% faster. I did install Firefox 3 almost immediately, old habits die hard, but I hardly ever use it anymore: it just feels so out of place, so outdated and very slow. The final nail in the coffin arrived when I found the ad blocker for Safari that seems to use same filters as AdBlock Plus.

2. Apple sucks at consumer software. I honestly didn't expect to encounter this. OSX is an engineering marvel and Cocoa is a wonderful piece of work. I also love what they've been doing to Objective C. But now I am starting to suspect that there are two completely separate organizations within Apple: systems and tools vs consumer software. The latter hasn't figured out how to code yet. Every single piece of bundled software I tried pretty much sucked. I could fill a page with rants about each of iPhoto, iCal, Aperture, Finder and iTunes. They all suck and are much worse than analogous software I used on Windows and Linux. It's seems puzzling how come Safari is so great while everything else barely functions. I had to write bash scripts and set up cron jobs to combat iPhoto – that's right, we have a little war going on between us: each claims to know better what concept of “photograph” is supposed to mean and how a computer should aid humans in dealing with it. I am literally counting days for Google's release of Picasa for OSX.

3. OSX is a true UNIX. No compromises. I expected to find a heavily modified Linux-like environment with proprietary Apple specifics everywhere, and in some cases that was exactly what I found, but most of the time I didn't feel Apple, in fact my Terminal experience was very pleasant, and Mac version of gVim shocked me by its visual polish. I installed everything I wanted from the Linux world and it just worked. Not as seamlessly as apt-get on Debian, but pretty close.

4. Keyboard is nearly disabled. This may be related to #2, and can be mostly fixed by installing a better software. Still, what a huge surprise! I was sure I had heard many times how one could “fly” in OSX once he learns all the hotkeys. Not sure about flying, I'm still learning to crawl... This is area where Gnome beats OSX hands down: not only there are fewer keyboard-friendly actions, but flexibility of configuration is lacking too. Apple wants me to use the mice more than I would like, and drag-n-drop is ridiculously overused throughout the entire system. This could be less of an issue on a bigger desktop Macs with full-sized keyboards and dedicated mouse, but for notebooks it's a pain – keyboard/mouse switch keeps interrupting. Simple tasks like selecting multiple non-adjacent items in lists are impossible to do any other way. The keyboard itself is somewhat crippled as well: no dedicated backspace, page up/down, etc. And the way how applications use ctrl, option and command buttons isn't very consistent.

5. You must switch your monitor to Gamma 2.2. Otherwise you won't not see any web content properly, especially photos. Safari tries to correct this by reading embedded ICC profiles for JPEG images, but it rarely works: Flickr, PicasaWeb and others will always display distorted colors: washed out, too bright, with yellowish tint. Go to System Preferences, Monitors, Colors. Click “Calibrate” and select Gamma 2.2 – now your Mac is Internet-ready.

In the end, I just couldn't move all of my development form Linux to the Mac. Perhaps it's better this way – someone needs to file tickets about slow FireFox scrolling and workarounds for bugs in Intel X3100 drivers. Besides that, Linux is just a better programmer's environment, at least for what I do.

For everything else MBP+OSX is years ahead of Vista and somewhat better than Linux, especially at being a “home computer”. Web surfing on a Mac will truly be a revelation to many, once they try scrolling with two fingers and flipping pages with three. And simple IT tasks like installing popular printers and setting up home networking are grandma-proof. This is what I'll be recommending to all my non-programming friends from now on, sounding exactly like those annoying Mac fans from Internet message boards. :-)

Saturday, May 10, 2008


Is it just me, or perhaps all of us get this stepped-in-a-pile-of-dog-poop feeling every once in a while whenever we click on a link and it turns out to be a PDF file?

I mean, isn't it nice whenever web site creators think about us, users, and instead of expected and nicely formatted web pages we get awarded by this wonderful clunky, sluggish Adobe PDF plugin that hijacks our browsers, not giving a rat's ass about our preferences for hotkeys, font sizes, having its own idea how to scroll, zoom and search? At least Linux users don't have to suffer from Adobe's bad-ass PDF software: Gnome/KDE come with much nicer, lightning-fast PDF readers that don't feel like they came from Mars. I am using Evince and it's nice: I actually don't mind PDFs anymore.

What's interesting is that I can't even think of a single case whenever the choice of PDF was justified: nope, same shit every time: text with pictures. Yep, something HTML isn't capable of.

Moreover, here is a new kid on the block, now we all need to stare at a flash plugin to get the same text-with-pictures experience. Welcome to Web 2.0 fellas.

Scribd is nice as a tool for being able not to care about document format, and I wish they'd allow me to simply view every uploaded document as a proper HTML (as every user would expect), but it is barely usable trapped in Flash: the browser's search doesn't work and even scrolling is painful, while you've got to scroll a lot because you're looking at a document through tiny little hole. Someone joked that using scribd is like a watching a live video of a printed document, except you can tell an operator to move the camera to the next page. But they do allow you to download a document as PDF, which is nice - I can read it in Evince, so Scribd gets my vote: check it out!

Why do content publishers believe that we somehow are dying to print their documents? Come on, what else PDF is good for? Dudes, please stick to HTML. It's gotten a lot nicer since 96. And no, I won't be printing or keeping a copy of your booklet/article/whitepaper, but for those five people who will, just have small but gorgeous links on a side: "print" and "PDF", ok? Thank you.

Tuesday, April 29, 2008

Gnome or KDE?

I am a Gnome user. Gnome is fine, despite what Linus says. Yes, there isn't much customization allowed and often it tries a bit too hard to act like an bastardized twin of OSX, but who doesn't?

My wish list is short: just replace Nautilus with something usable, there is no point in “fixing” it, just give me something in 2009 at least half as powerful as Norton Commander was in 1991.

But Nautilus is just a minor annoyance - I don't find myself using file manager type of applications on Linux as much as I did on Windows, perhaps due to the fact that I don't wonder around the entire file system anymore: on Linux you quickly learn to live in your home directory and quickly access data directly from applications.

Nevertheless, off to KDE lands I went...

After playing with it for half a day I quickly went back despite the amazing feature in KDE that gives the focus to a control that currently is under the mouse. And oh yes, the beast is customizable in every way imaginable, and the default set of applications blows Gnome's counterparts away. But in the end, it doesn't matter.

I want back because I appreciated Gnome's directness and simplicity and its tendency to stay out of my way. I don't use those basic default programs, I use my own set of tools. I mostly don't even see or “feel” Gnome, even the main menu bar is a lot smaller than KDE's giant log with plethora of little icons and clunky and bold date/time widget. KDE's approach to user interface can be described as “visualizer of data structures”, it simply maps various configuration data to UI elements on screen. “Added a boolean? We better find a spot for a checkbox somewhere for it”. I can understand why programmers appreciate it.

Perhaps I only got lucky and I happened to have pedestrian, simple needs. I can launch my usual 4-5 applications with a single click or keypress, I can see what time it is and how much battery juice I have left, I can switch between windows and desktops. I can logout or fall into a standby mode. If they take away the ability to minimize or maximize windows, I won't even notice.

Gnome doesn't do a lot. Gnome is simple and weak on features. It knows only a handful of tricks but plays them very well.

Sometimes less is more, and with computer interfaces it almost always is.

Saturday, April 26, 2008

Get yourself Ubuntu 8.04

Ubuntu 8.04 is out!

Canonical rules and Shuttleworth rocks! These guys made me feel like I am back to high school again, I believe the last time I was this excited was whenever Windows NT 4 and the latest OS/2 were about to come out. I urge my Russian comrades to reimburse Mark the millions they had him pay for his Souiz spaceflight: come on, how can you take money from the guy who's been so relentless at pulling all our computing experiences out of the current medieval cave we stuck in?

Is Ubuntu Ready?

You cannot possibly be serious if you ask this question. I mean come on – most of the world's population is using five year old XP, which cannot even be installed on a typical laptop without myriad of drivers and custom patches directly from Dell or Lenovo. I can't even think of anything of this size with such a painless installation process: network, video with 3D accelerated desktop, audio, wireless, printers and surrounding Windows servers – everything got detected and works like a charm with default settings. The thing only asked me about my name and which time zone I was in. Most Windows applications are harder to install than this. And hey, I am dealing with an operating system here. Even the most historically problematic area of power management works great: my ThinkPad suspends and resumes like a champ without any configuration tweaking and consumes fewer watts than before. When was the last time you heard someone say “I upgraded my operating system and got a longer battery life?” Yes Ubuntu 8.04 is that good.

Got some Windows-only software that you absolutely must keep? Check out VirtualBox - the first easy to use Linux-based virtualization software built for users, not just geeks: you'll be running both OSes at the same time. Virtualization is the only sane way to run Windows anyway, so you can take snapshots and roll back if it starts acting crazy and blasting you with popups and ads. VirtualBox even automatically maps your Linux home folder to a Windows share: you see, someone thought about this.

And did I mention that Ubuntu handles Windows networking better than Windows itself? Just imagine your life without waiting forever for a list of shares to appear (if you're lucky to find your Windows server in your "Network Neighborhood", it's not always there, isn't it? ;-)

What's New in 8.04?

Most of online media reports the exact same list of new features with Gnome 2.22 being the most important thing. Yea it's cool and all, but I don't think it's that interesting: you don't make money using Gnome so why should you care if they introduced a new “virtual file system layer”? You see, that is one of the problems with Linux: it always gets crappy press coverage, i.e. press does not target you when they talk about Linux. I bet Apple added a bunch of “virtual layers” all over Leopard too, but you hardly ever heard of them. That's right: leave that to programmers. Instead, they should be reporting about applications that we actually use. For one, you'd be happy to hear that new Ubuntu finally, after years of waiting... are you ready for this? ... comes with usable Open Office! That's right – you can actually use it now for reading and typing text because they finally managed not to screw the font rendering. Open Office now uses default system settings for fonts, like every other application in the world. And those fonts are the reason big enough to ditch Windows: even my Mac-loving wife is envious of my “beefy and tasty” fonts that make everything so much more readable, especially on a high-DPI display.

Besides, forget about the new: the “old” Ubuntu had plenty of treats to eat for millions of starved windows users, such as painless application installation and removal, nice UI and 3D-accelerated desktop, total absence of junkware, no-nonsense security and speed. Then there are thousands of high-quality programs and many more less polished ones than you can play with and uninstall in seconds without headaches.

What's wrong with Macs?

Nothing, really. I have one. It's very nice and works well. But I urge you to give Ubuntu a try anyway: you may like its font rendering better, just remember to switch it to slight hinting and sub-pixel smoothing in “Appearance” menu in Gnome. You may also discover how flexible everything is and you'll keep discovering little gems of adjustment here and there, ultimately ending up with something that fits your work flow much better than the default Steve-knows-it-all world of Apple. And if you're a programmer, you'll just find a bit more power available to you. Heck, you may even enjoy having decent screen savers that you don't have to pay for. Finally, Ubuntu runs on a hardware where OSX can't: there are some finest pieces of computing machinery out there such as Thinkpads: the Laptops from God.

What's wrong with Windows?

Nothing, really. But there was nothing really wrong with candles and horses too - lots of folks used to think that way - but that didn't stop nerds of old from switching to electric bulbs and automobiles anyway. Besides, if enough people ditch Windows, Microsoft may be forced to lay off thousands of wasted programmers and some of them will inevitably decide to build meaningful things, maybe creating a true AI, affordable personal jetpack or something. By using Windows you are personally slowing the pace of innovation in the world. Evolve already – get Ubuntu. Help us all get closer to Singularity :-)

Sunday, April 20, 2008

Startup School 2008 Impressions

Startup School 2008 is over. The videos of the event I am sure will be posted all over the Internet tomorrow, thus there is no point for me to simply describe what happened, you can go and see for yourself: the early, albeit a bit rough, footage is already available on Justin TV.

Instead I'll just share my impressions of what I've seen and heard. I got to see famous Anybots robots in action and I met their famous creator Trevor Blackwell and many, many other people I've known forever but always wondered how they were like in real life, including Paul Graham himself. Trevor turned out to be a lot younger and easier to talk to than I previously imagined, I had no idea where I got that previous "crazy professor" picture from.

The speakers were all excellent, but Paul Buchheit's performance easily wins my heart. It was just that: a freaking masterpiece of a speech on a seemingly lightweight topic. If anyone wants to know how to work the audience so seamlessly, without any visible effort - watch Paul do it. Don't get me wrong, the crazy in-your-face punchy style of DHH and sleek and polished talk by Greg McAdoo were both fine examples of public speaking, but Paul is simply in another league: he can easily switch careers and get into entertainment industry or something. Go and watch him and laugh your ass off in the process.

By the way, I simply could not believe my eyes when I saw on average about 20% of the attendees spent a fair share of their time there surfing freaking reddit, slashdot and checking their emails. There was one dude right next to me who had Visual Studio open (yes, a fucking Visual Studio) and kept resizing an empty form non-stop without paying any attention to Jack Sheridan talking. WTF have you been smoking yesterday? Here you have a well respected lawyer from Silicon Valley teaching you basics of freaking incorporation for free! Yet you prefer to ignore him perhaps not realizing that most of all (those who will get there) will pay $400/hour to guys like him, explaining these details in a more private and expensive setting.

And what the deal with all those Vista laptops everywhere? I thought it was supposed to be a hacker's event, not a retirement home.

Paul Graham's talk was the most unusual, out of place almost. I am sure what we heard was his next essay and you can expect it to appear on his site now. This time Paul turned a bit too much philosophical - and I'm just "not there yet" and need to think a bit about his observations.

With all that said, however, I predict that DHH's talk will be the most quoted on the Internet tomorrow. Of course it had a few f-words and a ton of funny bursts of clever analogies, but I believe most people in the room didn't take what he said seriously. Nearly everyone I talked to, seemed to be stuck in this "I gotta get a million eyeballs" trap and I couldn't imagine a more perfect audience for David's talk - it was the most relevant to this gathering.

Of course I don't want to crush anyone's feelings, but statistically speaking there were not any "next googles" in the room today. Or should I say "such event was highly unlikely", yet every hacker with an idea I talked to, seemed to be going after those "billions of advertisement dollars" and I came away with a strong suspicion that very few of them actually knew how many uniques a month they should be generating to pay for their own salary and rent. Just charge the freaking money for what you made, how hard can it be?

It was kind of ironic to observe the never-ending series of technical hickups, from dropped Internet connections to barking microphones and blacking-out projectors at a conference of young hackers in the heart of Silicon Valley. If we can't get our own shit straight how do we expect our customers to use what we make and pay us for it? Even PG himself, after proclaiming (a few years ago) that everything belongs to the browser now, had to ask the audience to "stop using the Internet" for his presentation pictures to get downloaded. In 2008! If Steve Ballmer was in the room, he'd be flattered: "your cloud is not always with you".

And, by the way, how do Stanford students manage to get any hard studying done in those surroundings? That's just too damn nice to be practical :-)

Sunday, February 10, 2008

Web vs Desktop Nonsense

Technologists and investors are predicting that desktop is over and online applications are the future, while slashdot posters, at least once a week, argue over this silly Desktop vs WebApps issue. But what is a web application?

Paul Graham, who is well known not only for his writings on Lisp, but also for creating the first app of this kind, once characterized a web program by its ability of executing counterparts of "New/Edit/Save File" on a server, preserving a visitor's state in between.

But what do users think when they hear "Web Application"? Why would they want it? Most would agree that expected web-specific features are:

Web applications are accessible from anywhere, along with the data you create and manipulate with them.
Web applications do not require you to install anything.

Cool: access from anywhere without annoying installers.

But what if I took the code of Emacs and modified it to save and load your documents using the same site via HTTP. Will that make my new Emacs a web application? You can access your documents from anywhere this way, can't you? But hold on, there is still that archaic download&install Emacs nonsense. Well...

How about YouTube then? YouTube requires you to download and install a hefty Flash runtime, would you say it makes YouTube more "desktop" now? How about web version of QuickBooks? This popular web app needs (and asks you to install) an ActiveX control from Intuit site and works only in IE.

To think of it, any software can be logically broken into three large components:

The Code.
A run-time system this code runs on.
Your data that the code operates on.

But you can have any combination of those three to be downloaded. And slicing this pie into local and remote pieces does not really mean anything. More often than not, when people say "web app" they simply mean that run-time is the browser (i.e. local) and it runs JavaScript code (downloaded) that cooperates with some remote code and uses a combination of local and remote data.

Some sites are 100% flash, i.e. they really don't need HTML and JavaScript with DOM; in other words they actually don't even need the browser, only the Flash runtime. Which needs to be downloaded, by the way.

Alternatively, some applications (like Pikluk Browser) are obviously desktop-based but they're using locally stored HTML pages with JavaScript to compose the entire user interface. We could also have served a user-customized XUL code for our browser directly from our servers every time you start it, turning it essentially into a FireFox with dynamic user interface downloadable on the fly.

You see how artificial this classification of desktop vs web really is? A developer can pick and slice his or hers program into online and local components any way he or she chooses.

Thus I see no reason for my imaginary HTTP-based Emacs not to be called a web app. Therefore, why don't we agree that Web Application simply means dynamically downloadable code. It just happens that browsers are the most common and widespread runtime system that supports this in a relatively secure fashion.

And a runtime can always be replaced. Flash is already gradually reducing the importance of it.

This brings me to my second question: if a web application does not really need to run inside the browser, why does everybody expect Microsoft to ship an online version of their popular Office suite in a manner similar to Google Docs? Why don't they simply make Word&Excel slimmer and dynamically downloadable via some URL and add an HTTP storage support with basic collaboration features to them. This way they'll be delivering exact same "documents everywhere" capability without being so badly handicapped by a weak runtime provided by a typical browser.

Can we see past the browser? Can we accept that browser is just a runtime library and stop making a fetish out of "running inside a browser!" nonsense?

I want a standardized, powerful and open web platform. Something which is designed for delivering dynamic online apps, as opposed to an ancient legacy system built for serving static pages of text with pictures.

Google docs and Zoho Apps are a joke - their "word processors" are weaker than WordPad, which appeared in Windows 95 and had always been nothing more than a "toy editor" ever since. Now you stick THAT into a browser and declare it an Office killer just because I can access my primitively formatted documents from anywhere? Come on, the "anywhere" part should not come at expense of losing 90% of other features.

Make no mistake: I am not a Microsoft proponent, I'm just kind of sick of this "software inside of a browser is the future" nonsense. Yes, future belongs to web applications, but I am not so sure that browser, with it's weak runtime and close to non-existent programmable graphics, should remain a necessary vehicle for it. Who is going to step up and give us a true web platform?

When will I simply type this in my terminal to instantly start playing hardware-accelerated Quake 7:

Adobe AIR appears to be close to what I am asking for, but I have expressed my concerns with its proprietary nature. When surfing through AIR documentation I noticed how they always supply the word "free" with mandatory "as in beer" disclaimer.