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 http://google.com.

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: http://www.fanboy.co.nz/adblock/opera/urlfilter.ini

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. :-)