Kubuntu Jaunty: Just ‘cos I use it don’t mean it’s good

I’ve been using Kubuntu Jaunty since its release, and quite a bit before that as well (during the beta phase). Generally speaking, I can’t do without it. I use it as my primary operating system for both work and leisure, and I’ve upgraded virtually all of my staff’s laptops to use it as well. For our intents and purposes, it does its job. But that doesn’t mean it’s not a failure, especially when benchmarked against its own lofty goals it set for itself.

Kubuntu is the KDE version of the famed Ubuntu distro. Having been absorbed under the same umbrella body watching over all Ubuntu derivatives, one would assume that the same values pitched for Ubuntu would apply for Kubuntu as well. “Just works” has always been a key target of Ubuntu and its lot. Sadly, in my opinion, it falls far short of achieving that. And no, this has got very little to do with KDE (version 4 or whatever) or the fact that we need to install proprietary codecs ourselves.

Some background on the hardware we run on: The majority of installations here in my company are on Compaq Presario V-series and Dell Inspiron laptops. They’re all running some variant of either Intel Core 2 Duo or Dual Core CPUs. All of them have at least 2GB of 667MHz RAM. Graphics are provided by either Intel 945 or 965 chipsets. Pretty standard stuff with no esoteric hardware. We only use the 64-bit releases in all our installations.

Detailed steps on the steps we take to setup Kubuntu Jaunty is documented here.

Installation from the Kubuntu Jaunty CD is pretty much stock. We have moved to ext4 for all our file system needs. We do not use Kubuntu’s default filesystem layout and instead do a static multi-partition setup (read the detailed steps for more information).

The first impression I got post-installation was that it was slow when desktop effects are turned on. After some trivial googling, we find that Jaunty’s issues with Intel graphics chipsets are well-documented. The Jaunty Intel Graphics Performance Guide Howto documents how to get over this, albeit in a pretty non-standard way. The recommended 2.6.30 kernel to be installed isn’t available from any ready Jaunty backport PPA repo, so that was downloaded separately and installed using dpkg -i. An additional experimental PPA has to be added to take advantage of recent X improvements. The default acceleration method enabled EXA is practically useless for us if we want to turn on desktop efects. This necessitates a switch to the newer (and less stable) UXA. Fortunately, this switch has worked well for us, for the most part.

Even then, some niggling issues persists. KDE’s Plasma would crash every now and then. And when it doesn’t crash, some other weird issues would crop up, such as all text on my panels disappearing after about 12 hours of uptime. Fortunately, restarting plasma-desktop is trivial so this is just a minor irritant. Still, one wonders how would a user who does not know how to restart Plasma would take this.

After our initial install, I encountered several power management issues. Shutting down was a 50-50 affair. Half the time, it would just hang at a text prompt without actually shutting down. Logging out of KDE also often resulted in the KDM prompt failing to show up. This happened almost all the time. Suspending the laptop was another 50-50 gamble. Sometimes, I’d get my running session back, others I’d be booted out back into the KDM prompt (ironically, KDM didn’t fail in those moments). All these were fixed after we upgraded to kernel 2.6.30 and switched to the experimental X PPA repo.

Switching to the Kubuntu backports repo and upgrading to the 4.3 release candidates brought further improvements. The mystery of disappearing text on the panels resolved itself. The 4.3 betas were a tad too unstable so I was the only one subjecting myself to the guinea pig experience. After 4.3 hit RC status, however, I immediately upgraded my staff’s laptops as it brought real improvements to the overall experience. KDE’s performance in general improved as well. My desktop cube switching was noticeably faster, for example. However, Strigi failed to work since upgrading to 4.3 and I haven’t been able to get it working since. For us, it’s not that important as KDE still lacks a Strigi client friendly enough for general use. KRunner does a much better job of showing search results as of 4.3, but I still find it cumbersome to scan through when search results are large.

Right now, I’m happy enough with the state of my laptop, with the exception of one irritating (perceived) memory leak where my X process would eventually take up to 3GB of virtual memory after a day or so of uptime. I have just 3GB of RAM on my machine and 2GB of swap space, so when this happens and I have other applications such as NetBeans (500-600MB of virtual memory) running, my laptop is reduced to a thrashing brick pretty quickly. This doesn’t happen to all our laptops though so I’m not sure what’s wrong just yet.

At the end of the day though, I wouldn’t call Kubuntu Jaunty a particularly successfully release. It took a pretty significant effort to fine-tune the setup to its current state and I don’t find that to be particularly associated to “just works”. I’m going to try out Karmic as soon as it hits beta. Hopefully, we can avoid jumping through hoops to get it setup properly this time.

[Wild Conjecture] Chrome OS as I imagine it

Google’s announcement only drops a few hints here and there, and the world just went crazy with speculation.

Glancing through my feeds, some comments seem to be centered around the theme “you’re just a web application peddler, what makes you think you can handle the complexity of maintaining a full-fledged OS?” (Sorry, I tried looking for references to where I read these comments but I can’t find ‘em right now).

Well, a husband and wife outfit can do it. Any other questions?

But still, the question of how would Google design its OS is a pretty interesting question. I kind of agree to this statement in their announcement:

However, the operating systems that browsers run on were designed in an era wheren there was no web.

Some may see it as a targeted broadside at Windows, but I see it more as a reflection of every single desktop system I’ve used thus far. Integration to the web from the desktop gets as far as a browser window running on your desktop and a few plasmoids/widgets/gadgets drawing on public APIs on social networking sites. At the end of the day, the mentality is still “I’m a standalone desktop, connected to the net”.

So here’s my interpretation and some pure conjecture about how Chrome OS would be designed, based on the clues they’ve left behind:

The software architecture is simple — Google Chrome running within a new windowing system on top of a Linux kernel.

Nice to see that the kernel itself is still a sacred cow. Means that Google wants to remain abstracted from the hardware, for the most part. The new windowing system was a cause for concern for people seeking congruence with the status quo in Linux. Yes, if Google were to come up with it’s own “ChromeX”, it’d probably break compatibility with every single windowing toolkit in town.

It probably doesn’t make a whole lot of sense; unless they really have no use for “windows” in its current state. Remember, Google is “just” a web application peddler. Practically every single one of their current application assets is a web application. So my guess here is that the new windowing system would be a drawing engine running on a bare metal kernel doing nothing but to render web pages as fast as any desktop system renders applications right now.

Think about it: your current desktop view as a web page? That’s already been done to death by now. Click on the shortcut to mail? A new <div> tag pops up with Gmail embedded within. The same happens for Facebook, Twitter and any other web-based app you care to remember. The thing to remember is, all these will happen beyond the confines of a browser window. The web app is your window to the world in Chrome OS.

Yeah, that’ll alienate all the traditional window-based GUI developers for sure. But think a while: is the population of web developers any smaller than that of desktop application developers? You’re swapping one developer community for another, and I can tell you a HTML “Hello World” app is a helluva lot easier than a QT one. Complex concepts such as IPC would no longer exist as we know it, replaced by a rather familiar (to a web developer) Javascript cross-domain eventing model.

And however screwed the web is right now in terms of web standards currently, is it any worse than what we have in the traditional desktop world? We’ve got Windows and Linux. And within Linux, we’ve got KDE, Gnome, XFCE ad infinitum. And none of them even look nice when you cross ‘em, if you can at all.

Some people accuse of Google of randomly throwing out toys everytime you get a haircut and not really having a strategy or focus on the bottom line besides AdSense. But if you care to look at Google’s activities recently, it does show a marked effort to push towards a common direction:

  1. Google is making a huge push for the browser community to move towards HTML 5. To the extent where some are accusing them of manipulating the standards process to get what they want in. With HTML 5, multimedia capabilities would be built right into the browser engine, removing one huge blocker for having the browser as your desktop.
  2. Total reliance on the Internet is all fun and games until that connection is lost. Then what?

    Says Mike Elgan. True. Then again, the last few times I was without internet access, I didn’t really see the point turning on the computer at all. In any case, Google has the beginnings of having that covered as well. Presenting Google Gears. Gears, in essence, is a caching application engine that allows you to run your apps offline (amongst other things). It even has its own embedded database.

  3. Sounds like all these web applications are gonna take up a quite a bit of bandwidth. But Google is even tackling the social engineering bit now, actively encouraging web developers to make the web go faster. After all, it needs more web applications being able to run as fast as native desktop apps if it’s going to make this work.
  4. Many were surprised when Google released Chrome the web browser. However, many of us quickly came to appreciate the minimalist UI, the raw speed of rendering and Javascript, and most of all the quiet elegance of it all. Even more surprises came when Google started actively pushing it to IE6 users, reminding them that they’re using an obsolete browser and they really should consider upgrading. Perhaps the powers-that-be in Google are growing impatient waiting for the old weezer to die a natural death, knowing that its continued preponderance would just delay the groundwork for it to roll out its pièce de résistance?

Now, it’s not that Google has gotten all the pieces of the puzzle in place yet, if they’re really trying for something as audacious as this. Apart from GMail and Maps, none of the other Google apps really cut it as a complete replacement for its desktop counterparts. And there’s a pretty significant percentage of the general populace who’d rather let their social security number get indexed on Bing than to allow Google to have access to all the data currently sitting on their desktops. Myself, I don’t think I’d use it either, I’m too much in love with my KDE setup right now. But it was just technically stimulating to try to visualize how the PhDs in Google would strategize something like this.

Oh. And what about games on Chrome OS? Hmmm. I don’t know, actually. Maybe Google’d just buy up Nintendo: “Here. Your Wii stick. Now go wank on it somewhere far away while we concentrate on our world domination.”

What? Can’t take a bit of competition?

So now the IT media world just went wild over Google’s Chrome OS announcement. Comments are coming in from all over, some overly optimistic, some dismissive. All of these are speculative at best, and none of them carry a lot of weight as Google hasn’t even done a code drop yet, much less a release.

Some of the comments surprise me, however. There seems to be this presumption that having something that’s OpenSource means you must “work with the community”. The GPL or any other OpenSource license defines the usage of the code. As long as you abide by the terms set in the licenses, you’re safe. Nowhere in the licenses do I see that you have to be part of a particular community to be OpenSource. The nature of OpenSource licenses are such that they encourage community-building (share and share alike) and a community is about the most efficient distribution model as well (especially with the lack of an official sales distribution channel). But it sure ain’t a prerequisite to join the club.

And there’s that word “community”. The word sounds warm and fuzzy, like everybody lives in a nudist colony and exchange kisses and hugs every time we meet. Nothing could be further from the truth. It’s a brutal world out there. I’ve been tracking flame wars between KDE and Gnome since someone decided that GPL wasn’t a liberal enough license for them and started writing a new widget library (corrected by Rahul on this). RMS poking his nose the Linux mailing lists every once in a while correcting everyone on the actual name “GNU/Linux” was pretty nice flame fodder for a while, and then it got old. Recently, there’s this whole tempest about including Mono into Linux distros by default. Debate is good, and coming to blows after a pint too many build stronger bonds, but it sure doesn’t mean that one has to take part in it.

Google has plenty of money / resources and may think that it can go solo with this one. And they are free to do so if they wish. They will still need to release the source code when they release regardless. Fine, they may decide to create a permanent fork of certain components or even use their own versioning system, making it hard for the rest of the “community” to take advantage of improvements. That goes both ways; it’ll be difficult for them to gain improvements from the other contributors as well. Apple did that with their WebKit fork of KHTML, where they did a periodic code dump into the original KDE source tree making it difficult for anybody to comprehend what enhancements were made. Yeah, it was grating on the rest of the KDE developers, but completely legal. But let’s take a step back now. Has Google been pulling a lot of this shit often? I really don’t think so. They maintain Google Code, which is being used for exactly what the “community” wants: community-based development. They announced Google Wave, and the next thing you know the Wave Protocol site is up for all to see. As far as being part of the community for development purposes is concerned, I think they’ve been doing that all this while and doing it better than most large companies.

So, what else do these communities want from Google?

It’s disappointing that they’ve chosen to go it alone this far rather than working with the existing communities – Joe Brockmeier

I think Intel made the right call with Moblin to put the effort in the hands of the Linux Foundation and try to work with the larger community – Joe BrockMeier

So, they want Google to work with “existing communities”. Well, it’s an OS they’re working on, and unless they start a complete new branch of the Linux kernel, I’m pretty sure they’d be working with the kernel team and submitting patches and all that. What other “existing communities” does Joe want them to work with? Ubuntu? His own Novell / OpenSuSE? As in, ride on your own product and endorse your product as “the preferred distro for Google’s OS”?

So let me get this straight: It’s not enough that you get the direct results of Google’s development effort, you want them to park themselves behind you and help you market your product as well?

Wake up, guys, this is competition. The distro stakeholders might be all pally when it comes to talking down the competition (Microsoft, in this case) and sharing code, but apart from that, it’s a dog-eat-dog world. Chrome OS, as another Linux distro, would be operating at the same level with Red Hat/Ubuntu/Debian/Slackware/ad infinitum. And apart from the common code that they share with each other, the only other thing that they should share is the common desire to rip each other to pieces.

Now that’s capitalism.

My most commonly used VIM commands

I wrote this as a response to a VI question in LowYat forums. Hope it’s useful to someone else out there.

  1. :$ - Move to the last line (why this instead of shift-G? read below)
  2. :10 - Move to line no 10, just substitute with any other number. So, just remember “$” means “last line” and you will find it more intuitive.
  3. :0,$ s/replace this/with this/g - Literally, it means “from lines 0 to last line ($), search for “replace this” and replace with “with this”. If you want you can just change the range, for e.g. “2,10″ to mean lines 2 to 10. If you omit the “g” at the end of the command, it means only replace the first instance that vim encounters on a particular line. With “g”, it will replace all instances. Try “:0,$ s/hello/goodbye/g” and “:0,$ s/hello/goodbye/” on a file that has “hello Sam hello Delilah” to see how this works.
  4. v - Type the character “v” and start moving your cursor around. You’ll see that it highlights an entire block, readying a selection for you to do cut n paste (see below for cut n paste)
  5. shift-v - Does the same as “v” but for whole lines
  6. ctrl-v - Does the same as “v” but in arbitrary block mode (hard to explain, try and you’ll know)
  7. To copy, first highlight a selection of text using any instruction from 4-6. Then press “ay (with the double quote). The selection will disappear. Move your cursor some where else. Then press “ap .
  8. To cut, do the same as “7″ but substitute “ay with “ax .
  9. All the copy n paste shit above is nice, but has been rendered obsolete by modern terminal emulators that allow you to use a mouse to highlight and copy/paste. But this is why I still use this trick. After you have done either 7 or 8, do NOT quit the editor, but highlight another block of text using any instruction from 4-6. Now type “by . Now move your cursor somewhere else and type “bp . Now type “ap again. You will see that the text that you copied using “ay and “byhave actually been stored into different buffers (or “registers” in VIM convention). You can declare many more registers just by swapping “a” and “b” with “c” or “d” or… you get the idea.
  10. And finally, remember that you can tell vim to perform a command X times very easily. For e.g., highlight a line and type “ay to copy into register “a”. Then type 10″ap. You will see that it has pasted register “a” 10 times. Cool, huh? Just prepend your command with a number to tell vim to run it that number of times.

Note that these tricks work mostly with VIM (VI Improved), not plain vi.

In (K)Ubuntu, only a minimal build of vim is installed by default. To upgrade it, just type “sudo aptitude install vim”. You should know which version you’re using pretty easily. Just edit a shell script, if there’s no syntax highlighting, it means you don’t have the full VIM installed. Otherwise, things are cool.

Can you see Glassfish as the new Apache?

That the Apache web server is a mainstay in the web hosting industry is a gross understatement. Netcraft’s June 2009 statistics show that Apache is holding strong at 46.89% share of web servers surveyed. Microsoft’s IIS web server family has been perennial runner-ups, not really threatened by any other player, not able to touch the top dog either. Web servers by Sun? Well, they’re in the top 5, albeit with a rather pathetic 0.29% market share.

The story behind Apache’s gargantuan share is simply its support for a myriad of nearly every single web application development platform there is. It’s the “A” in the classic LAMP stack. It continues to ensure its continued popularity by supporting all the new fads and paradigms coming out of the woodwork over the past few years. Mod_rails, mod_python, you build a framework, Apache’s ready to host it for ya. Apache would never have enjoyed its current popularity if it were just built for one development language in particular.

Now let’s look at Sun (let’s leave Oracle out of it for now, shall we?). Sun is the custodian of Java, and that’s perfectly good reason for it to back the Java development platform completely. And Java can be cosidered a success to a certain extent. It’s still holding strong at the enterprise level. Huge companies like IBM are making tons of money from it peddling to major financial institutions around the world. Problem is, Java is seen as sort of a pariah where small to medium development projects are concerned. “It takes 4 gigabytes of RAM just to bootstrap the VM”, “didja just see the length of that package name I just had to type?!?!?!”,”dude, I just read the specs for EJB 2.1… I’m still looking for my cojones on the dorm floor”. Common complaints we hear from developers standing around the peripheries of Java development.

The Glassfish application server is the reference JEE implementation and started out being just another application server. It was OpenSource and all, but take up was still limited to those who wanted to work with Java as a development language. Personally, I don’t find Java that difficult. It’s a pain to bootstrap development but that’s been alleviated a lot by using Maven to manage projects. I like a lot of the features of the platform such as pooling and a proper framework for asynchronous processing. But one part that’s definitely been falling behind is where web development is concerned. Too much boilerplate code still. Verbose XML configurations have been largely the norm though that’s been improving. And the appearance of more neat, lightweight and fast web development frameworks over the past few years makes Java as a web platform looking increasingly redundant. And when I say “fast”, I meant in terms of development time, not runtime. That’s the yardstick by which most managers judge us developers by nowadays anyway.

Lately though, it seems that Sun’s been taking a page out of Apache’s book. Interim builds of Glassfish V3 have been released and they seem to showcase more of its abilities to run alternative web development frameworks on top of itself and how they can be integrated to JEE instead of JEE itself. Right now, you can already run JRuby / Rails and Groovy / Grails on Glassfish. Scala / Lift support can be added pretty easily. The PHP language has already been implemented in Java by the Caucho Quercus project and we can already run it on Glassfish.

All this point to one thing for me: that it’s possible for Glassfish to adopt a Apache deployment model where “Java” isn’t the primary focus anymore. Rather, it runs the plumbings within so that any developer can focus on getting his application out using his preferred development language. And if any of the nicer things about JEE is needed, it’s there via a simple JNDI call.

Now this, can be really open up new horizons for both Sun and Java. And for me as an employer too. I work as a banking and insurance software vendor and I can safely say many stick in the muds in my clients’ companies tend to view PHP and other “new-fangled languages” suspiciously. “Not proven enough”, they say. Well, how’s about if I these “new-fangled languages” were running on top of the Java platform? Proven enough for ya? If I can sell that, my hiring scope has just expanded ten-fold. Good Java developers in Malaysia are a rare commodity, as many in the local industry would attest to. What if I could hire RoR / Lift developers to do the front end work, and reserve the Java specialists to work purely on EJBs? For Sun, it could mean penetration into a whole new market. I don’t see many Java deployments in the virtual hosting scene. Most of ‘em either run Apache or IIS. On top of that, Glassfish already has a nice web GUI to manage deployments, which most Apache deployments have to rely on 3rd party management tools to accomplish. Glassfish is already OpenSource, which means that getting the distribution to the masses isn’t exactly difficult. I can already get a Glassfish deployment up and running in a matter of minutes if there aren’t too many resources to set up.

So, how’s about it, Sun / Oracle? Do you think that this market is worth getting into to give Apache a real fight for its money? Or do you want to stick to WebLogic running on a Rolls Royce luxury business model?

Kubuntu Jaunty – A Java Developer’s Setup

Kubuntu is my preferred Linux distro. I’ve pretty much stuck with KDE since my varsity days in 1997 and I’m still a happy KDE camper right now. There’s been ups and downs, not least during the “transition period” when KDE 4.0 first came out, but I’m still firmly in the KDE camp. In contrast, I’ve used several different distros over the years. RedHat, Fedora, OpenSuSE, Mepis, Gentoo… and for the past 3 years I’ve settled on Kubuntu. Not that the rest suck, but at this point of time, I find that Kubuntu saves me the most time in terms of setup, configuration and maintenance. Not that it doesn’t come with its own set of trials and tribulations, but on the whole it still sucks less than any of the other distros I’ve used.

I get plenty of practice doing Linux installation work when I set up machines for my staff. I’ve pretty much got my routine down to a science by now. What follows here is some documentation of how I setup a standard developer’s machine running Kubuntu Jaunty. It’s not a stock install; I pull in several PPAs to get to a reasonably stable and performant desktop configuration. And it’s still far from ideal; even if I’m a daily user of Linux, I’d be the first to bitch about its current state and how I wish things could be better.

To begin, we’ll obviously need the installation CD (duh). By default, I’ll use the 64-bit version ‘cos most of the developer machines in my office are 64-bit capable already. Note that I do have a couple of 32-bit machines still being used and for most part, the instructions here still apply. I pretty much stick to the default install, with the exception of the partition layout, which looks like this:

  • /boot – 150MB
  • / – 15GB
  • swap – 4GB
  • /home – whatever’s left

Yeah, I know what most people are thinking: “you don’t need that much swap on a modern Linux install”. Disk space isn’t really a luxury for me anymore, fortunately. And the automatic partitioning provides a measly 1GB for swap space and I run into errors installing Oracle XE which needs more than 1GB. So, 4GB just to be safe.

After the initial install, reboot the machine and view your shiny new Kubuntu install. ‘cept that it ain’t shiny enough. Let’s spruce it up by giving it an update:

sudo aptitude update
sudo aptitude safe-upgrade

Now, your Kubuntu installation is pretty much usable, but not terribly interesting or entertaining. You can’t play a whole lot of media stuff on it, for one thing. Let’s give the installation a whole lot more bling by adding the Medibuntu repo to it. Just run this simple one liner:

sudo wget http://www.medibuntu.org/sources.list.d/`lsb_release -cs`.list --output-document=/etc/apt/sources.list.d/medibuntu.list; sudo apt-get -q update; sudo apt-get --yes -q --allow-unauthenticated install medibuntu-keyring; sudo apt-get -q update

Credit to Medibuntu for this.

With this, it’s time to add more applications to our default install:

sudo aptitude install firefox subversion cvs vim ssh umbrello kdesvn msttcorefonts libmp3lame0 libtunepimp5-mp3 libdvdread4 libavcodec-unstripped-52 flashplugin-installer libxine1-ffmpeg soprano-backend-sesame digikam semantik skrooge basket gimp dia libdvdcss2 w64codecs skype kgpg sun-java6-jdk zsh

That one-liner basically helped us install a host of useful applications such as Skype, most proprietary media support, Firefox, Subversion, Java and then some. Do scrutinize the list to see what applies to you and what doesn’t.

Currently, the stock Kubuntu 9.04 desktop suffers from a serious performance issue. Unusable, basically. To get it up to acceptable levels, you’ll need to following the instructions in the Jaunty Intel Graphics Performance Guide.

The default installation of KDE 4.2 works just fine, I guess, but I like trying out the latest from Seigo and company, so I add on a PPA repo to update to the latest beta release of KDE 4.3 (currently at beta 2 release candidate 2). I’ve also been using the daily builds of Chromium, the opensource project on which Google Chrome is based on. And on top of that, one more browser won’t hurt (I am a web developer, after all).

Edit /etc/apt/source.list and add the following lines:


# KDE backports PPA - for KDE 4.3 beta 2release candidate 2
deb http://ppa.launchpad.net/kubuntu-ppa/backports/ubuntu jaunty main

# Chromum daily builds
deb http://ppa.launchpad.net/chromium-daily/ppa/ubuntu jaunty main

# Opera
deb http://deb.opera.com/opera/ stable non-free

After that, do another update and additional install:


sudo aptitude update
sudo aptitude safe-upgrade
sudo aptitude install opera chromium-browser

Note that you’d probably get a warning about unsigned repo keys. It’s safe to answer yes and proceed. You might also want to google around for how to get rid of the warnings (I forgot to record that down so can’t recall it for this particular article).

Note that above, I’d already install a package called msttcorefonts, which basically gives me most of the stock Microsoft fonts that comes with pre-Vista versions of Windows. There’s one more Microsoft font that I like to use: Tahoma. The following instructions were copied from Howto Forge. First, I copy the TTF files (tahomabd.ttf and tahoma.ttf) out from any existing Windows installation and place it in the /tmp folder. Then, to install the fonts, I do the following:


sudo mkdir /usr/share/fonts/truetype/custom
sudo cp /tmp/tahoma*ttf /usr/share/fonts/truetype/custom
sudo touch /etc/defoma/hints/custom.hints

Now, edit /etc/defoma/hints/custom.hints and add in the following lines:


category truetype
begin /usr/share/fonts/truetype/custom/tahoma.ttf
Family = Tahoma
FontName = Tahoma-Regular
Encoding = Unicode
Location = Magyar Dutch Spanish Czech Russian English Catalan Slovak Italian Turkish Danish Slovenian Basque Portuguese German Polish Swedish Norwegian French Finnish Greek
Charset = ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 ISO8859-7 ISO8859-9 ISO8859-10 ISO8859-13 ISO8859-14 ISO8859-15 KOI8-R KOI8-U CP1251 VISCII1.1-1 TCVN-5712 ISO10646-1
UniCharset = ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 ISO8859-7 ISO8859-9 ISO8859-10 ISO8859-13 ISO8859-14 ISO8859-15 KOI8-R KOI8-U CP1251 VISCII1.1-1 TCVN-5712
GeneralFamily = SansSerif
Weight = Medium
Width = Variable
Shape = NoSerif Upright
Foundry = Microsoft
Priority = 20
end
begin /usr/share/fonts/truetype/custom/tahomabd.ttf
Family = Tahoma
FontName = Tahoma-Bold
Encoding = Unicode
Location = Magyar Dutch Spanish Czech Russian English Catalan Slovak Italian Turkish Danish Slovenian Basque Portuguese German Polish Swedish Norwegian French Finnish Greek
Charset = ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 ISO8859-7 ISO8859-9 ISO8859-10 ISO8859-13 ISO8859-14 ISO8859-15 KOI8-R KOI8-U CP1251 VISCII1.1-1 TCVN-5712 ISO10646-1
UniCharset = ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 ISO8859-7 ISO8859-9 ISO8859-10 ISO8859-13 ISO8859-14 ISO8859-15 KOI8-R KOI8-U CP1251 VISCII1.1-1 TCVN-5712
GeneralFamily = SansSerif
Weight = Bold
Width = Variable
Shape = NoSerif Upright
Foundry = Microsoft
Priority = 20
end

Finally, run the following commands to register the fonts:


sudo /usr/bin/defoma-font -v register-all /etc/defoma/hints/custom.hints
sudo dpkg-reconfigure fontconfig

Daimler or Ford? (a.k.a. I don’t get no respect)

I choked a bit reading Matt Asay’s Tim O’Reilly: Open-source purists trying to answer the wrong question this morning. And I quote:

Of the formative figures in open source, Richard Stallman, Linus Torvalds, and Eric Raymond loom large. Arguably, however, few have had as much of a disruptive force as Tim O’Reilly, who has helped to create the open-source market and has spent the last six years reshaping it with his seminal “Open Source Paradigm Shift” and other articles.

Now, I know Tim O’Reilly has some pretty strong contributions to OpenSource. And I also know that RMS isn’t exactly the most popular kid on the block in terms of commercial OpenSource. But to say Tim O’Reilly’s contributions are more disruptive than Stallman’s? Torvalds? Seriously, in what context?

After thinking a while, I spotted a pattern in Asay’s claim with others made in the past. Gottlieb Daimler was the dude who invented the automobile. Yet, Henry Ford is far more well-known than Daimler for bringing cars to the masses via the production assembly line. Electricity, while never being “invented”, was studied since the 17th century, yet Edison gets most of the glory for his efforts harnessing the electricity for the masses.

Not to take away anything from O’Reilly, Edison and Ford, but this really stinks of the “what have you done for me lately?” syndrome. Cars are still being used now, so yeah, we appreciate Mr Ford for all he’s done for us. But come 2 decades later and we’re all zipping around on Segways sans wheels, would we still remember him?

Back to OpenSource: O’Reilly cannot be compared to RMS. Or Torvalds. Fine, he’s about on par with ESR in my book. What O’Reilly wrote about reflected what was happening in the real world and where it was headed to. He did not write a roadmap for the evolution of OpenSource in general. To attribute the progress of OpenSource in general to the written journals of an observer like he was the Oracle is simply belittling the entire process. It’s like (dare I say it?) some religious nut claiming that the world and its magical complexity came about just from the “design” of an individual deity.

We all ride on the shoulders of others. Even RMS, Torvalds and other OpenSource luminaries. Before drafting the GPL, RMS was already happily coding the same way he always liked in the academic software community, until the hardware vendors decided that software was more valuable than the pieces of plastic and lead it was driving. I hesitate to compare the contributions of RMS and his predecessors as one could not have happened without the other. The same applies to O’Reilly.

So Google is the lumbering giant now?

So it seems that Google, the startup that nimbly side-stepped all challenges from entrenched search providers, is a lumbering giant now, unable to update its results as fast as tweets are coming. Rather appropriate that this was published in a newspaper where the term “New York minute” was coined.

One wonders though, what advantages would it bring for Google to be able to index every single online event in real time. Personally, I’d rather that Google spends its R&D dollars continuously improving contextual searches over being able to cover more stuff by the second. It’s good that Bing is getting increased market share (even if it seem to be at Yahoo’s expense); increased competition only brings about more innovation.

And as for expectations that Google (and all other search engines for that matter) should in fact be able to index by the second to be “good enough” for users, the ideal response would be this little rant by Louis CK:

My favorite comment: “How long does it take for the world to owe him something he didn’t know exist 30 seconds ago?”. Touche.

Who should use alpha-status Chromium on Linux?

Note: As with all opensource projects, Chromium is in a continuous state of change. This article was published on the 13th June 2009. If you are reading this more than 3 months after it was written, you should take everything with a generous pinch of salt and check for updates. Who knows, in 3 months, maybe even my grouses about Firefox do not apply anymore ;)

Edit 2009-07-12: Chromium now supports Flash plugins.


We all owe a debt of gratitude to Mozilla and Firefox. Firefox effectively paved the way for competition in the browser monopoly scenario we had a few years back. Without it, I doubt web applications development would have advanced the way it did.

But I seriously abhor using Firefox right now. On my Kubuntu Jaunty laptop, my CPU utilization bottom-lines at 5-10% on average before firing up Firefox and shoots up to 30-40% after. Its memory issues are well-documented. Typing a URL in the address bar the first time after starting up causes the entire browser to freeze while it pulls up the address history. There have been experiments that show the Windows version of Firefox running faster on Wine than the native Linux versions.

Sad to say, what I have to put up with while using Firefox detracts way too much from the positives that it represents. I want out. I want a browser I can use without having to keep a timer on so that I know when to restart it 2-3 times a day. I want a browser I can middle-click 20 RSS entries in Google Reader in rapid-fire fashion without having it lock up on me.

There are many alternatives. Not many of them work too well. Konqueror has issues rendering sites, especially Google Apps which I use 50% of my online time. Arora slows down when I have more than 5 tabs open, for some reason. Rekonq doesn’t really show the speed that WebKit advertises. I have difficulty setting proxy settings in Midori, which I assume must be set in the global Gnome settings panel, which I don’t have due to me using KDE.

I’ve been hearing many good things about Google Chrome from my partner in work. It’s supposed to be blazing fast running Google Apps (duh, being developed by Google). I’ve been waiting eagerly waiting for the Linux version but no dice so far. Until the announcement on the Chromium blog came out. Alpha warnings be damned, I want it. And right now, I’m typing this blog entry on it.

Responses on the ‘net have been mixed. Practical usability is limited, according to some. For example, a blog commenter said “Honestly…. what can you do with a browser that supports no Flash?“. Well, I guess I don’t spend 90% of my time on YouTube and Yahoo flash games, so I don’t really share his views. I’ve got 15 tabs of various contents open in Chromium running right now and I’m happy with each and one of them. I use it on a daily basis to check mail, edit Google documents, read blogs and basically perform about 90% of the things I’d use a browser for.

Here’s a list of what Chromium in its current state is suited for:

  1. Practically everything related to Google web applications. GMail, Reader, Calendar, Docs etc all work very well. Video chats on GTalk doesn’t work yet.
  2. General surfing as long as you don’t need to view Flash videos. I read a ton of Linux and politics related blogs every day. It’s definitely good enough.
  3. In general, it’s fine for Facebook and all the social networking sites I visit. Just not the Flash bits (which I don’t use anyway).

I wouldn’t use Chromium for:

  1. Obviously, anything that relies on external plugins, as there’s no support for a plugin architecture yet.
  2. Any site that requires HTTP authentication. Auth dialog boxes don’t work yet. The issue has been documented here, help vote for it to be solved, please!
  3. Complicated bookmark management, it’s rather kludgy right now. Importing bookmarks from Firefox works though.
  4. Going through proxies that are authentiated using HTTP auth dialog boxes. I get by this by using Firefox to authenticate against the proxy and then continuing to browser using Chromium. Ugly hack.
  5. Sites authenticated using SSL certificates are defnitely out.

Update: As of 22 June 2009, the daily builds has been supporting HTTP authentication. W00t!

Don’t expect it to be too stable. However, a particular tab crashing due to any issue would just manifest itself in a “Oh Snap!” error message in that particular tab and not bring down your entire browser due to its 1 process per tab architecture, which mitigates the impact of any bugs an awful lot.

So do I still use Firefox now? Well, I still need it for various tasks. Firebug is still essential for web development work. My Trac installations are authenticated using SSL certificates so I have to fallback to Firefox. Yes, I do unwind after work by watching some documentaries on YouTube so I’d need it for that as well. But in general, Firefox has been relegated to serving only 10% of my web browsing needs. I completely understand the fact that Firefox has a superset of features compared to Chrome/Chromium and that contributes significantly to the difference in experience. However, Firefox just doesn’t have a configuration that suits me right now and that’s why I need to shop around for alternatives.

Firefox will continue to be relevant to most of the web browsing world for a long time yet. I don’t expect Chrome to attain larger market share than Firefox in the near term. But it’s seriously looking more and more like its predecessor the Mozilla suite, which was evolved out of existence due to its bloat.