Task Oriented Architecture

As neotechnophiliac (a.k.a. person crazy enough to run alpha releases of software), I love to experiment with different technology. And these tests are often for the pursuit of pointless knowledge and killing time. Technology and engineering are a lifestyle for me.

Most people don’t see technology that way. Technology comes in two flavours: toys and tools. Developing a tool is a challenge of engineering. However users don’t care about tools. (How many people care about carpentry tools?) Users want tasks done. The challenge of usability design is to create task-oriented user interfaces.

Simplicity is important in UIs. The Palm OS (IMHO) designers created one of the best UIs out there. Practically everyone (except Microsoft) in the smartphone, handheld and ultraportable market copied their design. The Zen of Palm, as a primary “pamphlet” for Palm programmers, emphasizes the importance of using a simple UI for getting a particular task done. Compare that with the desktop world, with applications looking like something out of configuration and accessibility hell. The cockpit of a jetliner often looks less daunting than a desktop office suite.

Efficient and reusable workflow helps users greatly getting their work done. A UI that lets you perform a task with 3 interactions works better than one with 5. Burning a CD under Nero, requires you either to click-through 8 screens on a wizard or navigate a massively clustered UI. Under K3B it takes a drap and drop, clicking the “Burn” button, throwing in a CD and you’re done. Neither you have to crawl through a wizard ever time. Nor do you have to deal with a clustered, non-trivial UI.

Remarkably, the most usable UI I’ve worked with, originated in the software libre world. Thats because the end-users of the programs, built those programs. Also open source, allows people to “fork” software. Forking let you take a software libre application that doesn’t meet your requirements, and built something that does from the same code base. In such an environment, software components such as UIs evolve much faster than in the proprietary world.

With my own life, I prefer using open source applications because they give me more freedom, and hence work better for me. Its amazing how much simpler, streamlined and usable most free software is. And it only gets better. I like my KDE 3 applications, but the KDE 4 applications once stablized will work even better for me. Thats because usability designers such as Celeste Lyn Paul work with the KDE developers on making better task-oriented UIs. A big thank you to all the KDE 4 developers, designers and contributers.

A New Hope

Ok, I just had to take that title. While I’m not a huge Star Wars fan, light sabers and X-wing fighters are cool. So why the title? And why the enthusiasm?

First, I have a job! Thats right, I now work as a software consultant for VisionMAX Solutions. I get to build neat web applications in Java for clients. Its not exactly open source, but the mode of work is very similar. I am pretty excited about the job. I just need to get used to the new schedule.

Second, I started writing again! Yup, I am working on a science fiction novel. First chapter done in rough, and the second chapter progressing well. Lets see if I can keep it up to finish the novel.

Lastly, Ubuntu 8.04 came out recently. I have been running the KDE 4 desktop on it, and its fairly stable. Recently I’ve had some issues with the performance KDE 4. So its back to KDE 3, which is still rock solid. I might get into KDE 4 development and help progress KDE 4 towards the same stability as KDE 3.

Kubuntu Dev Tips?

Decided that I want to get more involved with the Kubuntu project. Filling bug reports and answering forum questions is one thing. Being involved with the desktop you will be using is another. Besides I want to get my hands dirty in some KDE coding. Maybe gleen off a few tricks on how to create an environment where developers, and the community in general contribute.

I am a firm believer that developers should eat their own dog food. So for starters, I am making room to install the new KDE 4 version on Hardy Heron. After that I guess I will try to become a Kubuntu developer. Any tips on how I should get started?

Calendars and TODOs Are Only Useful If You Use Them

You know those commercials for productivity suites/PDAs/etc. where the protagonist wants to go to an event… and then finds out it happened last week. Well that happened to me today. Just going through my “TODO” list, and wanting to check out when that expected event was gonna happen. And it already did.

The moral of the story, if you don’t want to look silly, check your todo list on a regular basis. And use a calendar. Sigh.

On a better note, KDE 4.0.1 came out yesterday. Upgraded today, works like a charm. Applications don’t crash and burn so far. But HAL is still kinda wierd. And not everything integrates as smoothly as one would expect of a Kubuntu release. I guess I will just have to wait until the Kubuntu 8.04 release. Just a few more days.

KDE & Linux: An Explanation for the Uninitiated

One of my friends after reading my last blog piece commented: “English please.”

So here is the English summary translation of my last blog post:

The short explanation would be:
I occasionally review new Linux software. KDE is a window manager for Linux. And the new KDE4 rocks my world!

Long explanation without too much techno-babble:
Linux is an alternative to Windows for computers. Now KDE is a window manager for Linux. A window manager handles the drawing of windows, various widgets, keyboard input, mouse input, etc. (Yes, KDE/Gnome users I know that window managers often do more than that.) Basically all the things you see (and hear) on a computer, are all handled (for the most part) by a window manager.

The KDE developers also make a number of additional programs (file browser, web browser, IM client, office suite, image viewers) that work closely with the basic KDE system programs. In the new KDE 4, the KDE developers basically rewrote most of KDE, letting them experiment with new and interesting ideas.

Now, you are probably thinking so what? Well unlike Windows or Mac OSX, Linux is free. KDE is also free. Free as in speech.

You see Linux, KDE and hundreds of other such programs are open source software or software libre. Software libre is a movement to give back freedom to both computer users and developers. (For the most part I use the terms free software, open source and software libre interchangeably. My apologies to RMS & the FSF for continuing the confusion.)

Open source software is licensed in such a way that you can download it legally, run it, look at the source code, whatever you want to do with it. The only restriction is that if you change the source code and plan on releasing it, you have to release your modified source code under the same license. (Extreme simplification here since I am talking only about the GNU General Public License version 2 or GPL 2. But nothing written as a binding legal document is simple. Fortunately GPL 2 is the most popular open source license.)

Now most people think that nothing of value is free. You might think no one would want to work on something that is free. Except there are probably a few hundred thousand open source developers including myself out there. Except that Fortune 500 companies such like IBM, Sun Microsystems, Adobe, Asus, Google, Dell, Sony, etc. often run their business on open source software, and pay developers to contribute back to open source software projects like Linux.

Case in point: Yesterday, Sun Microsystems bought out MySQL AB, a company that produces free open source and extremely popular database for $1 billion USD. Google, Yahoo, Facebook all use MySQL as their database platform.

Back to my last story, the new KDE 4 is cool. Cool because its open source. Cool because its beautiful to look at. Cool because it works. Mostly. Cool because it will only get better.

So I hope that explains why I get excited about things like KDE 4.

KDE 4: My Desktop Just Got Cooler

Tuesday, I decided to make the plunge and try out KDE 4.0.0 One word: amazing. So ever is my quick and unscientific review of KDE 4.0.0

Artwork
KDE 4 is a very sexy looking desktop. The panel is darker, the default wallpapers classier and artwork much more modern. The icon and widget theme Oxygen and the effects make the desktop stunningly pretty. The Oxygen window decorations don’t add much. I ended up switching to the Plastik. Also the artwork for the new KDE 4 games is simply beautiful.

Naturally artwork is a very subjective thing, but it does help with the user experience. If a user wants to look at a program, then he/she might want to work and experiment with it too. So far I am impressed by the Oxygen art team’s progress.

Stability

Older KDE 3 applications also work well. So the new KDE libraries are as stable as the KDE developers claim them to be. Unfortunately not all the KDE 4 programs are stable. I encountered a number of crashes with the new Plasma-able version of superkaramba. Other KDE 4 applications can seem a bit unstable at times too. Also interoperability between KDE 3 and KDE 4 applications is a bit weak too. The most stable apps so far the one related to systemsettings and the KDE games.

Again, since KDE 4.0.0. is a release directed towards developers and early adopters, I am not going to complain about this. I am sure other windows managers were less stable after such a massive API change. Things should get better with the next release of KDE 4. Probably by the time Kubuntu 8.04 Hardy Heron will be out, most of these bugs will be out of the way. Remember KDE 4.0.0 is just the first version in KDE 4’s lifecycle.

Integration
One thing I love and hate about KDE is the tight integration between KDE apps. As of KDE 4.0.0 many of the integration pieces are missing. I will not harp upon my two favourite KDE applications, amarok & kontact (part of KDE-PIM). In both cases, the developers are not ready to get the code in place to deal with the new APIs, and the new features they want to add. A straight port to the new kdelibs is one thing. A new release worthy of the KDE 4 title is another.

However some necessary parts of the KDE integrated experience are not there. Example: the Regional/Language settings work… barely. Also the new kickoff menu does not always find new non-KDE programs, something the old menu did. (That might be more of a Kubuntu/Ubuntu integration issue though). Plasma whose ultimate goal is to integrate the desktop, kicker and applets with the rest of the system, has a long way to go.

…And Everything Else!
To finish off this off-the-cuff review, I want to point a few other things I noticed.

The new kickoff menu takes some getting used to. At first I frowned upon the limited space this new menu system takes up. After a few uses, it grew on me. The Favorites and Computer parts let you quickly get to a favourite application or location. The Recently Used keeps track of your recent documents and applications used. Everything is nicely compartmentalized. The regular applications menu is the part that takes use to the most. Displaying only one menu at a time gives a lot more information about each application. Only problem is when there a large number of applications in a submenu. If the KDE developers come up with a natural way of categorizing applications and keep the maximum depth of submenus to 2 then its all good. Also please, please make it possible to scroll between menus without all that clicking.

The new okular document viewer is awesome. With all the backends in place, it really does become the universal text document viewer. Excellent work. Also KDE 4.0.0 sports a new revision of the gwenview image viewing program. A few more plugins to do slight photo-editing would be nice. But I guess thats what digikam is for. Dolphin also got an update in KDE 4.0.0. Dolphin’s breadcrumb file displayer is now easily editable to let you navigate the file system path. I found this very useful to enter hidden directories without displaying all the . files.

The new konqueror is now an actually usable web browser. Kopete for KDE 4 is nice, but I miss having easy one-click access to my accounts. Now I have to click twice to do the same thing because of the whole profiles thing. KGet also shows promise to be more useful than it once was, with bittorrent integration.

Wrapping up, KDE 4.0.0 brings a lot to the table. Its a sexy-looking desktop with a lot of potential. Once all of the KDE applications get fully ported, and the few nuisances straightened out, KDE 4 will be the most fun free desktop out there. For now KDE 4.0.0 just made my desktop look and feel a lot cooler.

Review of 2007, the Promise(s) of 2008

The year 2007 has been quite a dynamic year for me. Instead of writing a long article about each thing… cause that might take me an year to write and edit, I will just present a list of lists of things that happened.

Academics

  • Completed my undergraduate studies at the University of Toronto at Mississauga.
  • Picked my diploma for Bachelor of Science.

Travel

  • Traveled to Italy and Poland.
  • Walked down Unter der Linden in Berlin, Germany.
  • Checked out the Tower of London, National Gallery and Museum of Natural History in London, England.
  • Saw the sights of Florence, Rome, Assisi, and bunch of the Umbria region of Italy.
  • Walked around GdaƄsk, Szczecin, Poznan, Gdynia and Malbork in Poland.

Software Development

  • Increased my knowledge of information security.
  • Restarted my involvement with the justCheckers project.
  • Deepened my understanding on software libre and open source.
  • Learned Javascript, CGI-Perl and JSP.
  • Joined the Ubuntu Toronto Users group.

Business

  • Led a mock-up startup for a course.
  • Learned how to read and understand businesses.
  • Discovered the many aspects of open source businesses.
  • Read My Job Went to India, or how to stay in IT.

Art

  • Wrote six articles on quantum computing.
  • Wrote seven personal essays that form my Hacker, Gamer, Lover book.
  • Wrote and voiced in an audio documentary, Casanova.
  • Started writing a science fiction novel.

Social Activity

  • Learned of the open access movement.
  • Learned the basic ethical theories: utilitarianism, Kantian ethics, and Rousseau’s social contract.
  • Debated for network neutrality.
  • Read Stallman’s Free Software, Free Society.
  • Read about the anti-software patent efforts in the EU.

Personal

  • Went to Taize in Montreal.
  • Made a lot more friends.
  • Learned the subtle art of dating.
  • Survived the downs of 2007.
  • Got my G1 driver’s license. Again.
  • Invented task logs, an organizational tool.

Things to Do for 2008

  • Finish justCheckers.
  • Write and publish two books.
  • Get a software development related job.
  • Start a company.
  • Find a real girlfriend.
  • Learn to drive and get my full G license.
  • Learn C and C++.
  • Get involved in a major FOSS project.