On Software Design

I recently read a post on GarlicSim regarding designing software, and it got me thinking. At the moment I’m a hybrid between developer and user. I’m a Computer Science student who will probably end up designing and implementing software systems at some stage, but as of yet I haven’t had any real life experience with making products for end users. I’ve done a few assignments and practicals which relied on my ability to design and implement a decent UI. But nothing that was intend to be viewed more than one or twice for grading and then never looked at again. I’ve also designed and built some websites, but they’ve all been personal projects focused on learning the technologies (HTML, CSS, PHP, Javascript, Ruby, Rails, Twitter/Facebook Apis MySQL etc). The goal wasn’t really to create something that people would use. So my perspective is that of a designer in the making, with plenty of experience of using UIs.

When I got my first computer it ran Windows, soon thereafter I switched to several different flavours of Linux before settling on Ubuntu. Now recently (about a year ago) I’ve switched to Mac. From this experience, I can easily say that the people that develop for Mac are by far the most UI/UX driver developers on any of the platforms. Look at programs like OMM Writer, WriteRoom, TextMate, Adium & CoverScout to name but a few. They are programs which are designed from the user perspective to deliver a very specific experience. Whatever you may say about that use Macs, the people that write programs for them tend to care about user experience.

OMM Writer & WriteRoom are text writing apps that try to take away all the distractions when you’re writing. They take over the screen and stop your attention being drawn by apart from the text. OMM even provides some low key music to help set the mood. Similar points could be made about TextMate, Adium & CoverScout.

Thats not to say that Linux/BSD focused developers aren’t UI focused, but I honestly believe that for the most part they are technology driven. They let the technology stand out, and don’t care so much about the end user. They provide powerful tools which get the job done, but there isn’t that focus on usability. Windows is similar, but with a bit weaker technology and a bit more UI focus.

My meandering point is this. It doesn’t matter who the tool is for for, be it a Unix PowerUser who writes his own Perl scripts using emacs, or a doddering grandmother who’s about to hit her 100th birthday. The little things matter. In the original blogpost on GarlicSim, the Author compares the program to a butler. He should do his job as best as he can, as quietly as possible and with minimal fuss. If he’s doing the job properly you shouldn’t even notice him, he should just melt into the background.

Thats how a program should be. It should be a tool to let you do what you need to do and melt into the background. The options should be intuitive and obvious. You shouldn’t notice its there or have to fight with it to get it to work.

You may think that this will eliminate complex apps, or apps that require training to use. But my point it, an app shouldn’t require training to use. PhotoShop is largely considered (one of) the best of photo manipulation tools, however it is an unwieldy behemoth to try and use. Sit a novice user in front of it and they will be lost. However take Picasa as a counter example. Sit a novice in front of it and its obvious how to use it. The options are simple and easy to figure out without much effort. However there is quite a lot of power packed in there, and given a bit of time and effort you can uncover it. But there is never that lost at sea moment, where you have no idea what you’re doing.

Picasa has a steady learning curve that starts off quite small and rises over time. However with PhotoShop you’re thrown in at the deep end, nothing is genuinely obvious, and everything seems like its too much effort to do. I can remember the first time I used PhotoShop and I ran away screaming. I’ve since invested the time and effort to become proficient at using it, but my point is that it shouldn’t be that hard. Programs should be easy to use. They should bend over backwards to do what the user wants, and make it obvious how to do it.

We’re no longer in the time where even using a computer required you to be half technical genius, half wizard. Now computers are used by everybody, everywhere, all the time. It’s easy to set them up, and get them running. We already have very powerful tools, and my point is that we should polish them to a mirror sheen.

Like with cars. Originally the car was the domain of the tweaker. They could disassemble it, and put it back together. They could tweak the petrol to air ratio to get better performance. In essence they knew how every part of the car worked and could do anything they wanted with it. But over time normal people started buying cars. They didn’t want to have to change the petrol to air ratio, or get covered in oil when the engine needed to be fixed. Today we have very complex and advanced machines that practically drive themselves. The driver doesn’t have to worry about how it works, all they know is that it needs a service every 15,000km, and should keep the tires pumped and the tank full.

Slowly but surely that kind of world is coming to computers and we need to be ready for it. Users shouldn’t have to edit plist files or put up with bad design.

Programs are there to help the user get a job done. They should do it quickly, quietly and invisibly. I shouldn’t know that Java is running the background nor should there be a dock icon that yells at me each time Java is run. I don’t care that a website uses Java to run it’s shitty little applet. As an end user that should be invisible to me. As the Mac bigot is oft quoted.

It should just work.

Android vs iPhone

Android vs iPhone
I wish that everybody in the world was like Android, and I was more like the iPhone

Too bad its the other way around…

(source I Can’t draw feet)

Strangely Captivating E-Waste Ad

This is one of the best commercials in ages. I’ll admit that it’s not particularly creative, stylish or sleek, but it is extremely effective at getting it’s message across. The video is strangely captivating, in that it wasn’t bad enough to make me cringe and stop watching, but it was also weird enough to keep me hooked until the end.

Thumbs up to the City of Toronto for making such a good ad.

ODCSSS Wrapup

QuickLinks

Given my failed attempts to chronicle my internship on a week by week basis. I’ve decided instead to

post a brief wrap-up of my summer research project; What the aim of the project was, how close I got to completing it, and what I learned in the process. I will also put up here what the end result is, as well as describing my future plans.

The name of the internship was Assessing the Authoritativeness of Source on Wikipedia and, in short, the goal was to create an algorithm which would automatically classify pages as good, bad or of middling quality. Something which has yet to be done effectively by anybody. After completing some background research which involved reading a number of longwinded research papers by people who had done research in the same area, I set to work.

Continued reading >

Google Android == Windows 7 ?


Google Android == Windows 7?

It’s essentially a typo in a brochure given out by a small computer retailer close to where I live.

I doubt they’re intentionally trying to confuse customers, but I got a laugh out of it anyway.

I get comments

This blog is hardly the most popular on the planet. By my last check I had a less than 100 semi-regular readers, plus the occasional person who drops by from a google search or a a random link. However that doesn’t stop crazy people finding me and commenting on the blog. Luckily Disqus catches most of the crazy (a dozen of so comments each week).

However as has been done by PZ Myers many times, (and I’m sure by many others who get insane people commenting on their blog) I’d like to highlight one of the funnier comments that I’ve seen.

Continued reading >

ODCSSS 2010: Week 2

Week of Monday, 7th of June 2010

Flickr Stream

Monday was a Bank Holiday in Ireland, so we had the day off. Over the weekend I had decided that I really didn’t want to spend another week reading research papers, so I was set to do as much coding as possible. I started off on Tuesday by researching ways to extract data from Wikipedia. There’s a number of methods that can be used such as: Continued reading >

ODCSSS 2010: Week 1

Last week I started my OCDSSS summer research internship. During the opening festivities they strongly encouraged us to keep a personal diary and to note things down that we did week by week, so that when we came to do our final poster presentation we wouldn’t be stuck trying to remember what happened during the project. I figured that I may as well put it on my blog since I’d be writing it anyway, and I’d like to have it available for posterity. So now that the first two weeks are finished I actually have enough to say, let’s get it started

We started last week, on Tuesday morning, by meeting in the Guinness Storehouse, where we met all the other interns and our project supervisors. We also got a number of presentations from people like Microsoft, NDRC, and UCD’s Clique Research cluster. It was an enjoyable day and I’m glad I got a chance to meet all the other interns (there’s about 34 of us in total I believe) before we all got split up. It’s a very multinational group, by my guess it would be about 60% Irish, 40% non-Irish.

Continued reading >

L’Oréal: Inspired by the science of genes

Dear L’Oréal,

If you can say your product is “Inspired by the science of genes” in an advert. Then you are a horriblecynicalpredator who intentionally bullshits and lies to sell products. I sincerely hope your company fails and every single person in marketing gets impaled by a rusty jagged spike. The sheer contempt you show for your customers, and your willingness to patronise and belittle them truly marks you out as a heartless monolithic corporation, bent only on making money. You obviously don’t consider truth a virtue and care for nothing other than profit. You need to step into the real world and inject some humanity into your company. Otherwise you will continue along your current path and loose what little touch you have left with the reality, along with the goodwill of your customers.

Today you have lost one buyer of your products. I vow that I will never buy any product made or licensed by L’Oréal, for myself or as a gift for anyone else. I will furthermore encourage everyone that I know to do the same.

In conclusion, Please fuck off and die.

Yours Sincerely
Chris Salij

Google’s Chrome Play

I’ve been watching Google as they’ve been developing their 3 Operating System products, and there’s one thing that strikes me about it. They all seem to be coming from the same place, and they all seem to be heading to the same destination. Albeit by different paths.

The Chrome Browser is their successful competitor to Firefox, IE, Opera et al. They had a series of goals at play when they released this. They wanted the market to start moving in a specific direction, one which suited them. For instance, having each tab run in a different process, sand-boxing, isolated failures, html5 support, lightweight browsing and so on. They had a number of key technologies and ideas that they wanted to push browser manufacturers, to use, mainly because they needed features like that for them to build their web based services and make them comparable to native alternatives. Google’s future is the web! Just look at their range of products, Google Docs, Wave, Gmail, Code etc, and they need an advanced, capable browser which allows them to develop alternatives to native applications that can actually compete. By releasing Chrome browser, they showed everyone how they wanted it to be, and by making it open source, they made it easy for people to emulate them. Because, in the long run, Google doesn’t really care what browser you’re running. As long as their Web Apps run well. Continued reading >