Friday, December 19, 2008

Migrating My Blog to Wordpress

Recently, several friends of mine suggested I try Wordpress. So I created an account and started a new blog: tektake.wordpress.com - My Take On Teknology.

I've spent a few minutes with Wordpress and I'm impressed. Blogger's interface seems archaic to me now. So I've decided to try and migrate this blog over to my Wordpress account. Only, I'm not sure if that can be done automatically. I figure I can at least copy my posts manually since there are only about 5 in all. But what about the comment threads?

Monday, December 15, 2008

Wateen's Sucky Service

I’ve been staying over at my cousin’s place in DHA, Lahore, for about 6 weeks now. He’s using Wateen’s monthly prepaid Internet plan (512kbps/4GB). That’s right – monthly “prepaid”. What on earth is a monthly prepaid plan anyway!? According to Wateen, you’re supposed to pay a fixed amount (Rs. 850 in our case) on the 14th of every month or your connection gets blocked (i.e. you run out of credit). And when you do pay up, it’s like charging a prepaid account, scratch cards and all, except your account isn’t charged on usage (unless you cross your plan’s download limit, upon which they start charging you Rs. 25 per 100MB). Makes half sense to me, but that’s just half the problem.

When our account was blocked on the 14th of last month, we didn’t pay up till the 18th. It’s cool that you don’t have to go to their outlet to pay your monthly bill because they have scratch cards available all over the place, just like any other network operator. So all I had to do was get a Rs. 850 scratch card from the neighborhood store and recharge my account, right? Yeah, except they don’t have a Rs. 850 scratch card. Now, I do understand that they offer several bandwidth/download limit plan combinations, each at a particular rate, so it’s obviously impossible to have a scratch card denomination for each combo. But then they don’t recharge your account upon cash payment at their outlets either (maybe I went to the wrong outlet though). The cashier just gave me a couple of scratch cards for my cash (Rs. 500 + Rs. 250 + Rs. 100) and told me I’d have to recharge my account manually!

So I went home and entered the voucher numbers into the account, one-by-one. In jumps of 500, 250, and 100, their horrible web interface (http://prepaid.wateen.net) showed the Rs. -758.00 balance (??) move up above the magical Rs. 0.00 mark (what the hell!?). Anyway. Finally, I would be able to take a breath of fresh Internet. Except the Net still wouldn’t work! Apparently, I had to wait around 45 minutes before their system was able to unblock our connection.

So I charged our account on the 18th of last month and was expecting it to work till the 18th of this month, except it got blocked on the 14th. I swear we cursed Wateen exactly 850 times – I went at it 500 times, my cousin 250 times, and his dad tried his best to do 100. I called their helpline and they confirmed that I’d have to pay up if I wanted the connection unblocked. What the hell are they smoking up there at Wateen!? Give me back my 5 days, CHEATS! Highway robbery!

One more thing: according to my cousin, he signed up for the 512kbps plan. I ran a speed test and all we’re getting is 256kbps. Even worse, latency is 3000ms! Pathetic!

Sunday, November 30, 2008

The Future of Human-Computer Interfaces

Recently, I have been giving some thought to what the future of human-computer interfaces will be like. This article is supposed to be a compilation of ideas that I have either read about or thought up within the past few weeks. I think Moore’s Law will continue to play a pivotal role in dictating the direction of interface design. This is because smaller and faster circuitry; allowing increasing amounts of processing power, storage capacity, and design complexity; will provide interface designers and manufacturers an increasing degree of flexibility.

Let us first consider the ways in which a (non-handicapped) human can physically interact with a computer (I have not yet thought about how interface accessibility technologies will develop for handicapped users; no offense intended). I have also not yet researched brain-interfacing technologies.

To provide input to a computer, a human can use touch, gestures, and speech. To receive output from a computer, a human can use sight, hearing, and touch. Note that the order in which I list these functions is important; this should become apparent as the article progresses.

The goal is to make human-computer interaction as efficient as possible – potentially, even more efficient than human-human interaction. I think ‘text’ is going to stay around for a long time. The average human (let us call her Jane) cannot always communicate complex ideas with consistency using only speech and gestures against hearing and sight. Of course, the reverse is also true – text is not always the most efficient means of communication either. Therefore, the input and output of textual information needs to be as efficient as possible and balanced effectively with sensory interaction. The requirement is to achieve a balance in trying to communicate the maximum amount of information, as accurately as possible, in the least amount of time, using a minimum amount of energy.

The conventional keyboard is indeed a fantastic input interface for text. The keyboard allows Jane to input textual information in a quicker, cleaner, and more consistent way compared to handwriting and speech. This is mainly due to the amazing dexterity of her fingers. This means that no matter how advanced handwriting and speech recognition technologies become, the keyboard will still be a more efficient input interface. Any advancement in keyboard design will probably just be improved ergonomics. For example, touch sensitive surfaces will probably replace the traditional key-press design. Someone might even invent a layout more ergonomic that the standard QWERTY layout on English keyboards.

The keyboard is also good at selected forms of non-textual input. For example, keyboard shortcuts let you perform common tasks without having to move your fingers away from the keyboard while typing. Therefore, as long as the keyboard remains in favor, keyboard shortcuts will tag along.

Even though textual input may be used to command and control a computer (command-line interface), it is obviously impractical for Jane. A graphical user interface (GUI) has the potential to make life easy for Jane, but it might also do just the opposite. GUI design is still a nascent field and we will continue to see out-of-the-box designs that will improve human-computer interaction. The mouse (including the touchpad, nipple, and trackball) will become obsolete and give way to more efficient interfaces, like the touchscreen (already available on phones and tablets). In this context, touch is still a much more powerful input method compared to gestures and speech; it allows Jane to interact more accurately with her computer.

Imagine trying to issue speech commands to a computer in an office environment. Even if speech recognition technology attains perfection, its impracticality far outweighs its benefits. Gestures are much more convenient and discreet, and will probably be a common input technique in the future. However, gestures are not as accurate as touch. Still, we might commonly use interfaces that are halfway between the two. For example, a projection keyboard (an existing technology) optically projects a keyboard layout onto a surface; finger movement within the projected area is captured and translated into key presses.

Of course, input only makes up one side of the equation. Of the five human senses (sight, hearing, touch, smell, taste), sight is the most powerful in terms of processing capacity. Therefore, visual output is the most efficient way a computer can communicate information to a human. Hearing is required for at least a basic multimedia experience and casual UI feedback. Touch, or tactile feedback, will probably be used for nothing more than minor sensory feedback enhancement, if at all, in mainstream products.

Today, a computer is not just a business machine; it is also an entertainment hub. Therefore, display technologies will continue to improve. With the recent introduction of an affordable pocket-sized multimedia projector, it is easy to conceive that solid displays will soon give way to projected displays. Following that, holographic (3D) projectors are going to take over from their 2D ancestors. As moving towards non-surface displays will require increasingly gesture-based input interfaces, there will have to be a point where the higher input accuracy of touch-based interfaces will demand a split interface for operating the computer. That is, multiple display interfaces – a touchscreen for operating the computer and a holographic projector for playing multimedia like videos, games, etc.

I have tried to imagine what a future device with such interfaces could look like. A few years back, I saw a couple of images that showed what looked like something straight out of a Bond movie: a set of pens that, together, formed the most portable computer imaginable. A quick Google search refreshed my memory: http://www.todaysgizmos.com/computer/pen-size-computers/. What my imagination came up with today, takes this a step further. Of course I feel silly trying to predict how long it will take technology to get to this point, but 10-15 years sounds plausible to me.

Imagine a device the size of today's smart phones that fits easily in your palm. It is a computer, cell phone, camera, TV, all in one; running a full-fledged desktop operating system. It has a projector-camera pair on the front face – it projects the display onto your desk and the camera picks up your finger movements on the display, so that it works as if you are using a touchscreen. The display can extend into a virtual keyboard when you need to type. The computer recognizes hand gestures for use with applications, games, etc. On the back face, there is a holographic projector, along with stereo speakers on the side faces; this creates a completely immersive 3D environment and multimedia experience for movies and games. The top face is a touchscreen for minimal operation of the computer (for example, to use the phone), without having to use the projector. It seamlessly connects wirelessly to local access points and cellular networks for unlimited Internet access. It is able to receive digital broadcast radio and TV from local stations and satellites. It is always location-aware, using GPS or other technology. Processing power and storage capacity are virtually unlimited for common usage scenarios. Battery lifetime is in days, if not weeks or months.

However far-fetched such technology might sound to us today, it is worth imagining. It is as if in 1990, someone described to me, in detail, a gadget of the future called the ‘iPhone’.


Saturday, October 18, 2008

Firefox 3.1 beta - Awesome Bar

What's New
The Awesome Bar is truly AWESOME! I LOVE IT! But the best part? It keeps getting more awesome with each update! So what's new with the Bar in Firefox 3.1?
  • Source filtering of search results on-the-fly (using typed characters/symbols)
  • Always-on source filtering of search results (using about:config preferences)
  • Multiple Smart Keyword search previews

The Awesome Bar
For those who have no idea what the Awesome Bar is, it's FF3's Smart Location Bar. It's smart because:
  • it lets you search your history, bookmarks
  • it searches within URLs, titles, tags
  • search results update on-the-fly: with each keystroke
  • results are sorted based on frecency: a value calculated from frequency and recency of visits
  • it's FAST!

The Problem
But before FF3.1, the Bar certainly did have its share of pesky personality issues. For example:

Let's say I want to search for a page I visited a while back and I know it's still in my history. It's about "firefox", so I type that into the Bar. Turns out, I have loads of "firefox"-related bookmarks and tags flooding the results. Before, there was no way of telling the Bar to not search in my bookmarks, or at least not show bookmarks in the results (there was an add-on for it though). In other words, you couldn't tell it to search only in my history.

The Solution
Now, we have 2 new ways of doing exactly that. Now I can type "firefox ^" and it will only search pages in my history. You can even change ^ to any character/word you want, using about:config. Similarly, you can tell it to only search in bookmarks, or tags, or even combine symbols to do AND searches.

Here are the corresponding about:config entries
  • browser.urlbar.restrict.history: ^
  • browser.urlbar.restrict.bookmark: *
  • browser.urlbar.restrict.tag: +
To do an AND search, you can do something like "google * ^", to look for Google-related bookmarks that you have also recently visited (history).

What you can also do is narrow down results by enforcing URL- and/or title-matching. Let's say I'm looking in my history for an article I read about the WWW. Typing "www" in the Bar obviously doesn't really help, because most sites already have "www" in their URL. But if I try searching page titles instead, like this, "www #", it easily finds my article, titled "WWW - History and Evolution".

Here are the corresponding about:config entries:
  • browser.urlbar.match.url: @
  • browser.urlbar.match.title: #
If you prefer that your searches are always restricted to a particular source filter(s) by default, you can change the corresponding keyword to an empty string in about:config. For example, you can have the Bar always search only tags and titles by changing the urlbar.restrict.tag and urlbar.match.url entries to "" (empty string). This way, the Bar won't search through your bookmarks, history, or URLs, at all.

Smart Keyword Searching
Finally, the updated Bar now also lets you preview the automatically generated Smart Keyword search URL(s). For those who haven't used Smart Keyword searches before, here's how it works:

Let's say you search eBay a lot. With Smart Keyword searching, you can right-click the eBay search box, select "Add a Keyword Search", and give it a letter/keyword that you'll use when you want to search eBay directly from the Smart Bar (I use 'e'). So, for example, now I can type "e light saber" to search eBay for Star Wars Light Sabers directly from the Bar.

What's new in FF3.1 is that now you can give the same keyword to multiple Smart Keyword bookmarks (that's actually how it works: smart bookmarks), and then you can select which one you want to use on-the-fly. For example, I have 2 Smart Keyword bookmarks set to 'i': Google Images and Flickr. So when I type "i bmw m5", I'm given 2 options so I can choose which search I want to go ahead with. Just pressing Enter defaults to the search you added first (I think).

The Low-Down
I now find the Search box redundant and I've simply removed it. The Awesome Bar caters perfectly to all my Search needs: offline and online. Examples: g for Google (actually it defaults to Google even without the g), d for Define, w for Wikipedia, i for Image Search, m for Maps Search, y for YouTube Search, t for Google Translate (Auto->EN). Defaulting to Google means you can directly use it as a calculator, conversions and all. It feels like you're interacting with an intelligent being, compared to the dumb bar in FF2. My productivity has shot up; Browsing the Web now feels easier even than navigating your local OS. One last point: I think it's only fair to mention here that Google's Chrome and IE8 (to some degree) also offer similar functionality. But overall, they come nowhere near FF3!

How Dumb Do They Come!?
A blog entry on the Awesome Bar is incomplete without mention of the controversy surrounding it. Many users don't like the new Bar and want an option to get the old FF2 one back. I simply do not understand WHY. Many are probably just confused or clinging. Anyway, I don't see any major harm in letting them get their way. If there was a checkbox they could use to switch back to the old bar, most of them would be more than happy to stick with Firefox. On second thoughts though, most of them won't have the heart to leave Firefox even if they don't get that checkbox! Trust me! ;)

KDE 4.1 - Preliminary testing, Plasma mainly

At long last, I decided to give KDE4 a try. After playing around with KDE 4.1 on Kubuntu 8.10 beta for around an hour, I had mixed views.

I have a decent laptop, so I installed Kubuntu in a VirtualBox VM. I gave it 800MB of RAM and 48MB of graphics, loaded the ISO, and fired up the LiveCD. When it got to the KDE splash screen, there was a severe amount of lag as it rendered the fancy graphics. Anyway, I let it load the desktop but found it impossible to do anything because of the lag. So I boosted the VM's graphics to 128MB and tried again. This time there were no graphics issues, and promptly I was presented with a very pretty desktop.

The LiveCD experience was a bit sluggish, but that's normal. Did I mention the desktop looked pretty? The Application Launcher (K Start menu) was decent too: snappy, well-organized. So I decided to install Kubuntu on the VM for some casual KDE4 testing.

I wasn't expecting it to be too responsive (in a VM) but it did fine. It only used about 180MB of RAM for a fresh desktop session and went up to about 240MB with 6 apps running. The processor wasn't being worked too hard either (Disclaimer: I'm a regular Vista user ;)

I got 2 app crashes soon after the desktop loaded (one was something to do with Python, and the other was the Hardware Drivers app), though I'm guessing this was really just a VM issue.

I wasn't running on full-fledged video drivers so I didn't bother to test Desktop Effects. I really just wanted to check out the overall usability of the new WM/DE.

So here's my preliminary take on it (pending more usage scenario testing):

The default widget set is mediocre, at best. Widget customizability is nearly nil. For example:
  • What's with the centered resize? (can we get an edge-drag-style resize please?)
  • The rotate function just feels silly.
  • You can't move the Desktop widget by dragging it by its Title bar.
  • Widget layering just isn't available: I put the Trash widget on top of the Desktop widget and it went below, and then I had to move/resize the Desktop to access the Trash.
  • The System Tray widget (for one) is so buggy it's almost non-functional when used outside of a panel.
  • I can't seem to find a way to lock individual widgets. !?
  • There's no edge-snapping with the screen/panels/widgets while dragging or resizing widgets. So although moving/resizing widgets can be done pixel-perfect, it's a pain to get them all neatly placed and uniformly sized.
  • While dragging to resize a widget, a static graphic of the widget is shown being stretched to size, instead of dynamically resizing the widget object itself in real-time. It's plain ugly. Aren't these supposed to be vector graphics?
Also, once, when I logged out and back in, all my widgets had been shoved off into the upper left corner; I wasn't able to reproduce the bug later though.

Panels are even more ridiculous:
  • You can't stack a panel on top of another. Instead, panels just overlap each other. !?
  • You can't drag-drop widgets from panel to panel. Or even panel to desktop, or vice versa. !!??
  • In fact, you can't directly drag-drop to relocate a panel, or even drag-drop widgets within a panel, without having to open the panel's adjustment bar. This is just a click away, and so may be forgiven, but still.
  • Resizing the panel length-wise is fine. But when you resize it breadth-wise, the contents don't always scale correctly. For example, I can resize the bottom Panel to a narrower height, but then the bottoms of the widgets get cut off below a certain height.
KDE3 has better panels, in my opinion. Heck, even Windows 98 had better panels ;)

Dolphin, the file manager, is pretty good. I didn't test it inside-out, but it feels stable and quick. I've never really liked Konqueror so I didn't bother checking it out; for now at least. Okular and DragonPlayer are good. I have no idea where KSysInfo has disappeared though. Not sure whether they've removed it in KDE4 or in Kubuntu. Does anyone know the new way to check my System Info. I tried the Hardware Drivers app but it crashed.

Overall, I was expecting Plasma to be a lot more usable by now. And even the eye-candy department needs quality assurance. I mean, it's already at 4.1! Do we wait till 4.5 or something now? I didn't test previous releases exactly because I knew they weren't going to be usable. Looks like I needed a reality check on how far KDE4 still has to go. Poor me. I really want KDE4 to do well, I DO!

I'm thinking I should install Kubuntu on my actual system and further test it for a day or two to see if I can generate an organized list of crucial usability/QA issues with Plasma, and present them to the KDE team. KDE4 has tried to implement brave new concepts. It has loads of potential. But the execution is still below par on the usability front, and that's what really counts. I don't doubt that it will change for the better, but how much longer do we have to wait.