Evolution of the PC – Where are we headed?

I’m reading In Search of Stupidity: Over 20 Years of High-Tech Marketing Disasters these days which talks about some high profile and some not to high profile blunders in the early days of the tech industry. It feels so unreal to read about the early incarnations of the ‘computer’, which supported at most 640KB and were heavy enough to induce back pains.

I remember seeing and touching some of these old dinosaurs, and it’s amazing how fast we’ve progressed. I was wondering what people 20-30 years down the line will think of our Macbook Pros, our Netbooks and our HP Dragons. I wonder how quaint our operating systems and software will look to them.

Even today we can see change happening as the concept of the PC being the sole repository for everything is becoming antiquated as more and more things are getting pushed to the cloud. I’m really impressed by some of Microsoft’s new Live services, particularly Live Mesh. It will be interesting to see what role Windows 7 plays in this transition of everything to the Web and how Windows as an operating system will evolve over the decades.

Exciting times indeed.

Rant ends here. Now I’m going to enjoy spring break!


Twitter, here I come!

Finally started twittering! Follow me @ http://twitter.com/jafferhaider


How many Computer Scientists does it take to setup a Home Network between XP and Vista?!

So far we’ve tried with two. It only worked once, and then stopped working (the very next day). Both machines can ping each other based on IP, but the network doesn’t get established.

I guess this is yet another testimony to the mistake that was Vista. If anyone out there knows how to setup a home network between an XP and Vista machine, please drop a note.


Integrating usability engineering techniques into the software development process

I wrote a paper on this topic for a course. Was a pretty interesting experience. Below is the executive summary. You can download the paper as a PDF as well.

Usability is an important quality attribute that has a great impact on the user experience of a software product. To the user, the interface is the product. Thus it is very important for software teams to ensure high levels of usability in their products for them to be accepted and liked by their end users.

There are a number of hindrances that prevent integration of usability tasks in the development lifecycle. The cultural gap between the fields of human computer interaction and software engineering is perhaps the underlying cause of many issues that arise when engineers are made to use usability techniques. Most teams are not aware the importance of usability, or are of the opinion that regular development staff can build perfectly usable interfaces. Management is sometimes of the view that usability tasks will be costly and time consuming. Education and training of engineers and management is required to overcome these issues, as well as customizing usability techniques so that they are cheap and lightweight, hence easy to adopt.

It is also important to define what the team understands by usability, since it encompasses a large amount of characteristics. Usability goals should be decided and usability characteristics of the system should be documented so that they are testable.

There are a wide variety of usability techniques and methods, each having its own strengths and weaknesses. It is important for teams to be able to make the decision as to which technique is required in a certain condition. This report looks at the different stages in the development lifecycle and which usability techniques are suitable therein. An overall approach to integrating usability techniques and practices into the different development stages of a typical iterative development lifecycle is presented. Planning activities and roles related to these techniques are also discussed. Usability integration with slightly different lifecycles, such as XP and ACDM are also examined.

For easier adoption of usability techniques at an organization level, it is important to introduce easy and cost effective techniques at the grass root level. This results in teams reaping the benefits of usability techniques without expending a lot of budgeted resources. In this regard, studies are looked at that highlight usability techniques that are widely used, cheap and easy.

Usability is an integral part of everything that is engineered, whether it be software or otherwise. With the increasing complexity of software systems, it is even more important to design interfaces that are easy to understand and use. Usability is also not something that can be slapped on at a certain point in time. Hence it is important to ensure that usability tasks are planned and carried out during all phases of the development lifecycle.

Trip to Baltimore and DC

I got to fly to Baltimore during the Thanksgiving break to visit family there. It was a lot of fun. I’m going to save most of the details for picture captions that I’ve uploaded on Facebook (visible to friends only), but some highlights:

  • Had turkey for Thanksgiving!
  • We stayed up till 4am and shopped on Black Friday. I didn’t buy anything though, because I didn’t want to lug back a ton of stuff on the plane with me. There were some really nice deals at BestBuy though.
  • Went to see the sights in Washington DC. The Capitol building and all the monuments/memorials were very impressive. Nothing like I’ve ever seen before. The entire organization of buildings in that area of DC was very impressive. We also went to China Town, which was pretty cool.
  • Went to the Baltimore Harbor, which was pretty nice. Apparently the hill overlooking the harbor was where Francis Scott Key came up with the inspiration for the American national anthem. There’s a big American flag on that hill to mark this fact.

Amazing talk by Ricardo Semler @ MIT Sloan

A couple of weeks back we had a lecture on creativity and thinking out of the box. The instructor decided to show us a video and claimed that it would blow our socks off.

It blew my shoes off as well.

Ricardo Semler is the pioneering CEO of Semco and he talks about a revolutionary new way of managing a company. The numbers show that it has certainly worked for Semco.

I won’t reiterate what he says in the video. The guys over at 37Signals have covered it in some detail here. It really is a must watch, especially for people thinking of starting their own business or doing an MBA.

It has Begun (the Pittsburgh Winter)

Today was really cold. And I mean really cold. (at least for someone from the equator :p). It snowed intermittently pretty much the entire day. Having never seen snow before, I was really looking forward to it. And it gets really pretty when it starts snowing … only when you’re sitting in a warm comfy room and looking out the window :).

Some pictures of the first day of snow (well technically it snowed a couple of days ago, but it melted away really quickly)

Carnegie Mellon University - University Center

white 009

See the rest on my Flickr set.

User Experience Design – Thinking out of the box

GreenWhite recently posted a Google talk, Don’t make me click (sound familiar?) by Aza Raskin. Although his Wikipedia page has all the details, but this amazing guy (apparently a year younger than me) gave his first talk on user interface at the age of 10. I guess it helps if your dad is the visionary behind the Macintosh.

Anyway, the talk was pretty interesting. He spoke about how engineers and designers succumb to the ‘seduction of interaction’ in trying to making their UI’s ‘look cool’. The point that he was making was that UI’s should strive for the least bit of interaction possible. No interaction is the best interaction.

This is not something that is really surprising, since this concept was present way back in classics such as Don Norman’s Design of Everyday Things (if you haven’t read this, and you’re a software engineer, read it now before you write another line of code). A good tool is almost invisible. The user doesn’t need to think about the tool when using it.

He showed off some pretty cool interaction concepts, some of which have already been implemented in existing features. I really liked the automatic loading of content in an RSS reader as the user scrolls down (its called ‘river of news’, go ahead and Google it for a demo). I thought it was a pretty good example of doing what the user wants without having them interact with the application, i.e. reducing interaction.

He also showed off Social Helix’s calendar (check it out, it’s pretty cool!), which has a pretty smart interaction design. Effective use of a simple zoom-in/zoom-out allows the user to access all events in the entire 21st century with a few simple mouse movements. He contrasts this with regular implementations of calendars (Google Calendar in specific) in which the number of clicks that you need to make to go to a certain date is directly proportional to how far away that date is from the current date on your calendar (which is sometimes a lot).

During the QA session he mentioned something that I’ve been studying/reading/working on a lot these days, which is to design an effective UI, you need to start really early in the project lifecycle. Usability needs to be addressed right from the requirements phase. I had meant on writing a few posts on this in time for World Usability Day (I’m exactly a week behind :p) for GreenWhite, but yet again I proved to myself how incredibly lazy I can be.

Anyway, check out Aza Raskin’s blog, its got some pretty interesting stuff. I’ve actually read some of his stuff up on ALA without knowing who he was. And I’m pretty sure he’s got a hand behind the cool stuff going on at Mozilla labs.

The CMU Merry-go-round

photos 003 

Found this stuck to a wall in the cave. This is pretty much what everyone around me is going through. Even the beautiful city of Pittsburgh is starting to go cold and bitter. -_-

The fact that I’m posting this a good one to two months after I took this picture probably gives you a good idea of much time the MSE is leaving me for trivial pursuits such as blogging. *sigh*

Google ups the Ante with Chrome

2820302020_eb39fa50e0 Google has officially entered the browser market as of yesterday with their Google Chrome browser. It’s a completely new take on browsers (especially some of the technical aspects unknown to normal users) with a focus on making the browser a faster and safer platform for web applications and to move the focus from the browser to the web site.

I’ve moved to Chrome as my primary browser from the awesome Firefox 3. There are some features lacking in Chrome that I was used to in Firefox 3, but comparing a mature browser like Firefox with a first Beta isn’t really fair. And I’m sure plugins for Chrome will make up for any feature deficiencies, like they did for Firefox 1 and 2.

So far my Chrome experience has been exceptional. The browser loads really quickly and is very responsive. The one feature I absolutely LOVE is the omnibar, great job on that Google! I won’t talk about the features of Chrome in detail, since that’s been done already by a lot of people here (John Resig), here and an article on Internet News.

But before you check out any of those be sure to read the comics introducing Chrome (by Google), they’re very insightful.


It’ll be interesting to see how the browser market share shifts. Will Chrome take the users away from Firefox or Internet Explorer? I’m guessing Firefox, since the user base of Firefox is most likely to consist of early adopters. Majority of the people who use the Internet Explorer family of browsers hardly know of any other browser.

I’m very excited, as a web developer, about the paradigm shift that Chrome will undoubtedly bring in the browser market. And with other exciting projects like Prism, IE8 and the awesome stuff going on at Mozilla labs, we’re all set to change the face of the web as we know it.

P.S. check out these Javascript performance comparisons between Chrome and the other browsers. They’re insane!! The V8 JavaScript Virtual Machine incinerates the competition!