Archive for the ‘software’ Category

Make my OS Faster

Monday, November 30th, 2009

Have you noticed how all prominent operating systems seem to bloat with each release? Windows is probably the best example, but even Ubuntu had slowly gained weight and become more of a resource hog over the years. It’s sad really. Instead of becoming leaner, more optimized and streamlined our OS’s become bigger, more sluggish and encumbered with tons of unnecessary features. The primary driving force behind OS development these days is usability (a noble cause) and multiplying the feature count. Because nothing shows that the new version is better than a bullet list of new features that can be printed on a sales brochure. The OS makers are often forgoing optimization relying on Moore’s law to pick up the slack. Naturally they forget that most users do not replace their computer every 18 months. Therefore there is a discrepancy between what users have in terms of hardware, what should they have based on Moore’s law and what the developers are shooting for.

The result is that unless you have a bleeding edge hardware, your new OS is likely to run anywhere between slow and sluggish. Add an array of resident tools such as Anti Virus suite, print monitors, media programs that launch on start up, preloaders of various applications, IM suites and you have a machine that is moving in slow motion from the day one. Any new resident programs and (God forbid) inevitable malware infections will bring the machine to a grinding halt. If not today, then tomorrow when new releases of software will assume hardware moved to the next performance bracket as predicted by Moore’s law.

If you have ever worked in IT you know that the #1 user complaint you will hear on a daily basis is “my computer is slow”. Actually, you don’t even have to work in IT to know that. All you need is to work in any field where you need some technical knowledge. Or hell, if you ever reveal any kind of computer know-how to your friends and relatives you will likely be overrun with questions on how to make windows faster.

Slow performance is such a pervasive issue that even malware makers are using a promise of fixing it as a bait. If I had a penny for every time I’ve seen someone download a “registry cleaner”, “system speedup toolkit” or other “turbo booster” software which was really a trojan, I would be a rich man. People fall for this trick all the time, because they get desperate. They buy a computer which runs fine for 6 months to a year, and then starts becoming more and more sluggish. No matter what they do, they can’t return it to the original performance. Why?

Well, it’s a difficult question. The performance degradation has many possible causes:

  1. Malware
  2. Resident programs running at start up
  3. Unnecessary services running in the background
  4. 3rd party software modifying the OS functions ways that degrade performance (a/v suites are big offenders here)
  5. Disk fragmentation
  6. OS updates that increase memory footprint and CPU load
  7. Other software updates that increase memory footprint of running services
  8. Gremlins maliciously flipping bits in the memory for LULZ
  9. Bit bucket becoming full and overflowing
  10. Machine spirits nesting in the hardware

That last one is something I keep warning people about. If you keep personifying your computer, it will eventually cause a machine spirit to coalesce inside of your computer case. These spirits are not really autonomous beings – they are more like an empathic echo. They acquire all the personality traits which the user commonly ascribes to the machine. So if you keep saying something like “this computer hates me” or “I hate this computer” the machine spirit will really hate you, or assume you hate it and will work against you. A machine that is loved, and pampered may behave much better – but it can become moody, and downright malicious when it starts suspecting that the user is planing to replace it. Even if your machine spirit is benign most of the time, it still needs to steal some CPU cycles and some memory to store it’s personality and cognitive processes. The older the machine spirit, the more resources it requires. The only way to get rid of a machine spirit is to stop feeding it. When you think of your machine as an inanimate electronic box, or better yet – a tool, or extension of yourself the spirit will eventually cease to exist.

All joking aside, part of the performance degradation issue lies in the simple fact that most our operating systems are bloated to begin with. So even if you take a slow machine, wipe it clean and reinstall the OS it will still be slow. By the time you install all the current patches, all upgrades and equip it with the latest a/v suite you will be almost back to where you started minus the malware. But the user will install that back as soon as he gets the machine back. This happens because new applications and the OS updates are tailored at current hardware, whereas most users will be running them on a machine that is one or two Moore’s law iterations behind (if not more). Not only that, but our perception of what is fast changes quite significantly over the years. Your machine might have seemed fast 4 years ago, but that’s because it was on the cutting edge back then. Now the cutting edge has moved.

The more complex and feature full the operating systems get, the more prone they become to general crufting. For years now I have been dreaming about a lean, stripped down mainstream OS that would be available to general public, and could be installed on slightly older hardware. I mean, yes – you can do this with a stripped down Linux distro. For example I heard good things about Arch, and Crux. But these are more of a fringe systems that are targeted at enthusiasts. Not necessarily something you install on your neighbors machine when he cries about performance issues. Besides, if you try hard enough you can make those systems bloated as well.

Microsoft has it’s Windows Fundamentals thing, which is a stripped down XP. Still, it can only be obtained via Volume Licensing which means it is clearly not targeted at the home market. Also, Fundamentals seems a bit like an afterthought – it’s not a flagship product and gets limited amount of attention.

What we really need is a modern OS designed from ground up to be lean, mean and optimized for performance. I mean something built for speed and usability – not retrofitted for it by stripping off useful features and degrading user experience. The most user friendly Linux distributions are usually tailored towards feature bloat. Can Google Chrome break that trend?

Google certainly has the clout to market this OS to the masses, and brand recognition that won’t make people run for the hills. It’s still Linux, but people won’t know about it, and therefore won’t be scared of trying it. Could chrome be the first user friendly, mainstream Linux distro tailored towards non-geeks using legacy hardware?

It’s certainly interesting. I’m anxiously awaiting the release of the OS to see if it will follow the same high quality design as most other Google products. I’m also very curious as to how it will be received by mainstream, non-technical population.

Open Source and Cost of Use

Tuesday, November 10th, 2009

Funny story: a coworker saw me using Clonezilla the other day. I was sitting in the frigid server room (did I say room, it’s more like a closet really) and cloning the shit out of some laptops. He seemed impressed by the concept and asked me how much did it cost.

I did some mental math and decided that it couldn’t be that much. Knowing our server d00dz they probably bought the Dell PowerEdge server second hand somewhere so the whole thing was probably the discounted price of the hardware + the TB drive. No clue really, because these guys descend here every once in a while, attach themselves to the server rack for few hours and then vanish as suddenly as they appeared.

It turned out that my visitor was asking about the software.

Software of course is free. This did not register well. How could a powerful tool like that be free?

Well, it’s open source – I explained. And you can see that very well, by how the cloning process requires me to go through about 15 steps and configure it using a slightly cryptic ncurses interface. If this was a proprietary solution it would probably look much different. It would probably have two buttons (one to clone, one to restore) detailed graphical dialogs and animated progress bars – sort of like Norton Ghost has.

That sunk in. Free because it is not easy to use – it made all the sense in the world to him. Now, I didn’t say this because I’m a hater. I love open source software. In fact, I am a long time Ubuntu user. I love Firefox, I wrote my Masters thesis using LaTex (fun fact: no one in my thesis comity actually knew how to use Tex) and most of the software I wrote in my spare time was released under GPL. So I’m the last person who would want to badmouth open source projects.

Still… The above is often true. A lot of open source projects do require certain skill or know-how to use. There are plenty of exceptions of course. But for each Ubuntu, Firefox, and Open Office there is a Clonezilla, sendmail and Apache. Some open source apps are just not user friendly. At least not very much.

Is that wrong though? Nope, its not. A proprietary application can’t really afford to have an arcane user interface. The more difficult it is to configure and/or use, the less likely it is to find customers. When people pay for software they do require some level of convenience. Open Source software is often written by hackers for hackers and offered as is – no warranty, no support, no guarantees it will work on your machine. And you know what? I wouldn’t have it any other way.

It usually works like this: Cheap, Powerful or Easy to Use – for each project you can pick any two. Open source software can afford to concentrate on power and flexibility forgoing ease of use. A lot of apps are a major pain in the ass to use, but once you figure them out, they offer vastly superior performance, and configurability than their user friendly counterparts. Prime example could be using LaTex vs. a WYSIWYG editor.

Back when I was writing my thesis I made a conscious choice to go with LaTex rather than word like all of my peers. This meant that I had to do extra work in order to embed figures and charts (such as converting jpg images into EPS files) but it was worth it. My thesis looked much better than most of those generated with word. The custom context aware kearning and word spacing meant I never had to worry about my paragraphs not being justified properly. I could change just about every aspect of my document (font, character and line spacing, margins, paragraph spacing, headings etc..) just by tweaking the settings in the preamble. And don’t even get me started on maintaining proper numbering of figures or bibliography.

Most of my friends thought that they were getting the better end of the deal. After all they just had to fight with the quirky WYSIWYG UI – while I had to actually comprehend the arcane LaTex syntax. I thought the exact opposite. I take a LaTex problem over an idiosyncratic UI bullshit any day. LaTex issues are usually logical – syntax errors, or faulty markup that can be isolated, debugged and corrected. Whenever my thesis got messed up, I knew it was my fault, and I could apply standard debugging strategies to resolve it.

Word on the other hand… Well, sometimes it just fucks up the document because of a stray keystroke, but there is no easy, logical way to debug it because you can’t see the markup. You have to guess, try different things, hit the undo button a lot and if everything else fails, revert to a previous save. Ugh…

The Clonezilla server we have at work is similarly pretty sweet. We attached a little switch to it, and all I need to do is to plug the machine to be cloned into that switch and perform a network boot. It loads up the OS, let’s me quickly configure it and then it just does its’ business. A proprietary solution would probably have much less flexibility for a much higher price.

So, easy to use does not always mean good and free does not always mean easy to use. Or something like that.

What does your browser say about you? (2009 edition)

Monday, November 2nd, 2009

Long, long time ago in a galaxy far, far away I posted the infamous article titled “What does your browser say about you?”. It got like 400 comments, got me on Digg, Reddit and crashed my server at least twice. Every once in a while I still get comments on it but these days they are mostly among the lines of:

“Dude, Firefox 2.0 is ancient! What about Chrome and IE8?”

Well, the point is that it was not ancient when I wrote that post. Back then it was cutting edge. But we came a long way since then and so I decided to post a short update to that post.

Of course there is really no point for me to update the entry for Lynx or Dillo because not much has changed for those apps. In fact, a lot of the browsers on that old list sort of faded into obscurity. For example IE overlays such as Maxthon became obsolete around the time IE7 introduced tabbed browsing. Others such as Netscape or AOL browser are hardly even around anymore. So in this post I will mainly concentrate on the leading browsers. You know, the ones that actually support modern standards and have large user bases. Oh, and Lynx.

firefox_icon Firefox

You are not sure why people complain about Internet Explorer so much. It is a perfectly serviceable tool for downloading Firefox on a new windows machine. You have tried different browsers but you feel they are all vastly inferior to FF. Flock does too much, Chrome does too little, Safari is to fancy and etc… Its not like these browsers have better features anyway. At least not for long. Any cool, worthwhile and innovative feature will be either added in the next Firefox release, or has already been replicated in the form of an extension.

Every time you switch browsers you are amazed at how different the web looks. Your favorite websites are covered with banners, useful AJAX based features are gone… Then you realize that other browsers don’t actually have Adblock, Greasemonkey and Stylish extensions that you rely on. You also get annoyed when you try to test your websites in other browsers since they don’t have access to the full version of Firebug.

Seeing how there is an extension for everything out there, you can’t imagine ever needing another browser.

ie5 IE5

Kill yourself.

google-chrome-icon Google Chrome

You love Google Chrome because as everything made by the big G it is fast, sleek and stable. Now you can check your Gmail and Google Reader feeds and Google calendar in style as you edit your Google Docs in a separate tab, chat in Google Talk, get your directions from Google Maps and build applications for Google App Engine. You are not really concerned that Google probably knows more about your personal interests, hopes, dreams and desires than your own mother. After all, their motto is “don’t be evil” right?

Also, the tear-off tabs were awesome killer feature until Firefox totally copied them. Still, your browser runs every tab as a separate instance so there is really no way for one website to crash the whole browser… Until one does, that is – but that happens rarely.

ie-6-icon IE6

There are two possibilities here:

  1. You are using a locked down company computer – in which case, WTF are you doing reading this? Go back to work you lazy bum! Also, your sysadmin is either lazy or stupid. Or both.
  2. You are to stupid to live and/or you enjoy ruining the internet for all of us. In addition your machine belongs to at least 17 botnets and you pick up new trojans daily. You often wonder why your internet is so slow but you are definitely not going to install some shady “Fox Fire” or “Intranet Explore 8″ whatever that is. It’s probably a virus or something.

    I hope you fall into a ditch, break your ass and die all alone as punishment.

ie8icon1 IE7

As a rule you don’t use Windows Update. You are probably running Vista in it’s original, pre-SP1 shape and form. Your computer it is infected by 5 billion viruses and trojans making it barely usable. You heard that there is a newer version of Internet Explorer out there but you don’t care. You don’t like change. Finally, you assume that your computer is so slow because someone told you that Vista sucks. I mean, yes – it does, but it doesn’t suck that much. Your computer is slow because you are running outdated browser on an un-patched OS. And I’m not going to help you with that because you are ruining internet for everybody.

ie8icon1 IE8

You are one of the few windows users who do know how to use Windows Update. Hell, you might have even went out of your way and downloaded IE8 yourself though I doubt it. No, seriously – most people clever enough to know what a browser is know better than to use IE. But you might just be a loyal Microsoft customer who simply likes the new browser for all of it’s “innovative” features. Someone told you that IE8 is actually pretty standards compliant, but of course you don’t know what that is. You would probably be pretty proud that your browser of choice passes the ACID2 test but you don’t know what that is.

Also, I might actually consider helping you to remove all these nasty trojans from your machine since for once you are not actually ruining the internet for us.

opera-icon-redux Opera

You really don’t give a fuck that both IE8 and Firefox 3 can pass ACID 2 test nowadays. ACID 2 test is like so 3 years ago. Now it’s all about ACID 3 and non of these upstart browsers can render that one properly.

Yeah, Google Chrome sort of took over the “fastest browser” niche these days but Opera still kicks ass. It’s fast, sleek and has lot’s of unique features. Besides, all of those other browsers have their keyboard shortcuts ass-backwards.

Safari_Icon Safari

You are a mac user… Or you are one of those sad Windows people who suffer from a Mac envy. You know who I’m talking about – folks who buy a discount Dell and then use Window Blinds or other styling tool to make their Vista look just like OSX.

Does anyone else use that browser? I don’t know. Not that it’s a bad browser. It was the first one to successfully pass ACID 3 test. Not only that, but it’s Webkit engine is used by myriad of other browsers – namely Konquerror and Google Chrome. And these other browsers tend to stick out like a sore thumb on a Mac.

flock_icon-400-4001 Flock

You keep telling people that Flock is not just a fork of Firefox with some web 2.0 and social networking extensions grafted in, but they won’t listen. Screw them then. You know damn well that your browser is better – perfectly engineered to integrate itself with the myriad of social media and content generation platforms.

lynx icon Lynx, Links, etc…

Graphics are overrated. Who needs them. You browse the web for content, not for flashy designs and lolcat pictures. You use Mutt for email, Midnight Commander to manage your files, vim as your text editor. If a website contains a captcha you download it using feh, and display it in the framebuffer. Hell, you don’t even have X installed on your primary machine – you are that awesome.

Of course X is installed on your backup laptop which you use to go on youtube and to download pr0n but no one has to know that.

chromium icon Chromium

You are essentially like the average Chromium user but lazy. In a good way. You are to lazy to actually deal with the Windows bullshit so you run Linux. To lazy to compile stuff or fuck with RPM’s so you run Debian. To lazy to download Chrome so you run Chromium that’s available via apt.

konquerror icon Konquerror

You firmly believe that carpet should match the drapes and that the browser should match the desktop environment. Also, for some reason you like browsers that double up as file managers – you know, like IE did back in the day. Then again Konquerror is webkit based so it has to be fairly decent. All that hard work done by Google and Apple trickles down to your browser slowly but surely.

ephiphany icon Epiphany

You firmly believe that carpet should match the drapes and that the browser should match the desktop environment. Besides, Ephiphany is gecko based so it has to be fairly decent. All that hard work done by Mozilla foundation trickles down to your browser slowly but surely.

seamonkey icon Seamonkey

You fondly remember the days when a web browser used to have a built in calendar, email client, HTML editor and some other useful tools. Those were the good days. You don’t care for the newfangled fast loading browsers the youngsters use these days. Also, you don’t like when kids are anywhere near your lawn.

Kazehakase icon Kazehakase

You don’t tell people about your browser of choice in person. You have learned a long time ago that they will ask you to spell the name, and that’s just not possible. You just send them a link. In casual conversations you refer to your browser as “that browser” or kazehe-something-or-other.

But hey! It’s Gecko based, lean, mean, infrequently updated and seemingly abandoned. Um… That last part is not so good, but it’s still a decent browser.

Yes, yes. I know I ignored your favorite browser. Chances are it is irrelevant, and/or it hasn’t really changed much since the last post. And if I totally miss-characterized a group of users and made you mad, please remember that posting “fag” in the comments does not count as constructive criticism. Other than that, feel free add suggestions and/or your own descriptions for users of other browsers.