Thursday, September 29, 2005

My mind is confused, an American in Europe

When my Jen (my wife) and I moved to Norway in July she started a blog called: "My mind is confused, an American in Europe" about our experiences. Wasn't entirely sure if it would last or not, but as it seems to be going just fine here is the link for you to enjoy and or subscribe to. It contains a lot of the more of the non-technical side of my life. Fun things like going to Spain for akadamy, moving here ot Norway, and general weirdness we find in Europe like two hole binders.

Sunday, September 25, 2005

Selected Papers on Computer Science by Donald E. Knut book review

Read "Selected Papers on Computer Science" by Donald E. Knuth this afternoon. This book contains a collection of papers from the sixties to early nineties. A lot of them dealt with the connection between mathematics, computer science and how important algorithms are to computer science. There were some topics that were covered more then once, but that typically happens when combining papers from weren't originally meant to be together. In particular I liked the paper on the IBM 650. Everyone that writes about computers from that day always have humorous stories such as doing floating point addition in forty-nine steps when no one thought it was possible. Many of the papers talk about algorithms and showed examples of problems that problems that were only able to be solved once a better algorithm was found. There were interesting bits of computer science history such as discussing Von Neumann's first computer program, George Forsythe's construction of the Stanford Computer Science department, and even computer science in ancient babylon. It was an interesting book to read, but there are others that I would pick before this one.

Wednesday, September 21, 2005

The Inmates Are Running The Asylum book review

Finished reading The Inmates Are running the Asylum, by Alan Cooper last night. I was quite surprised at how new this book was. I have always heard it praised beside other books I own that were written twenty years before it. Simply put this book tells developers that they should step aside and let designers create the user interface. This is repeated over and over all in the book. The book does not tell you how to design, although up until the very last page I kept thinking it was but a chapter away. Alas it was not to be. That is for another book on interface design. The book is an easy read and you could read it in a day if you had the time. I do recommend this book for any developer who wants to improve there applications.

One thing that is very true is how much we do appreciate good design. Yes we will suffer with whatever we have, but the moment a really good design comes around you will never go back. A good example is the ipod. Great design. For playing my music it works. You don't need me to convince you, you already know. I really need to stress this:Yes we will suffer with whatever we have, but the moment a really good design comes around you will never go back.

You maintain a kinda ok application design wise? All it will take is for someone to come out with an application with a much better design and half the features for you to loose users.

Another thing that you need to think about is that users have goals and to reach those goals they do some tasks. A user wants to put a CD they just bought onto their iPod. That is their goal. They don't care to organize their music, tag the files, or any of that other things, those just end up being tasks of the goal. When making your application think of what goals your users will have. If you make the goals hard to accomplish then your application isn't that good no matter how much it can do.

Another side note that is brought up in the book. I HATE how Gaim pop ups dialogs all day long. You have been disconnected, now connected, now signed on again, no away, now automatically logged out,.... AHHHHHH When I come in the morning I don't care to see a single one of these pointless messages. When I use iChat it *never* interrupts me with these pointless messages. I am willing to suffer with Gaim only because it works well enough and hasn't segfaulted on me much. The next time I try KOpete (or anything else for that matter) and it is better I will remove Gaim from my system. (See the above section on users will suffer until good design comes along)

One thing to think about when developing your application is to try to think in numbers other then 0, 1, and infinity. For example in KControl right now we have a Tree widget, that is because there are more then one module. After the cleanup there are less then 50 modules. With more then 10 and less then 50 modules there are better ways to display all the modules then in a tree view. With less then ten modules the icon view like in (most kde app) settings dialogs are another good example. A CD album will typically have less then twenty, when editing you will have a few hundred undo's, most folders will have more then five items and either less then 50 or way more.

The book presents the ideas of user personas. I have heard of this idea before, but only from a 10,000 feet view. It is a very interesting idea that can provide value to developers. They are a set of well defined personas that define a realistic set of skills that the user would have. So here are the three personas that I have created for KDE.

William
-Codes, PHP, Bash, C#
-Works for SciTech Technologies on a Windows project, but maintians a Linux box at work and uses Linux as his primary box at home.
-Has three computer, four if you count the one in pieces
-Involved in two or three sourceforge projects, and submits bug reports to others
-Listens to Korn and Linkin Park, has two mp3 players, and in his spare time hunt for odd cd's in the local CD shop
-Has a personal website (been meaning to update) and a blog
-Drives a Saturn, "moded" it with a new deck and connection for his ipod

Jane
-Married to Bob who codes Linux at work
-Uses a laptop
-Lets Bob fix the computer when it "breaks" and to add (install) applications, but only after trying for twenty minutes to do it herself.
-Loves how in Kicker you can change the icon of Konq to a star with a smily face
-ebay++
-E-mails really only five people outside of work and chats with them on aim too.
-Drives a blue car, Honda maybe

Nick
-Security Guard at the local Zoo
-Uses windows at work when he needs to
-Doesn't user the computer that much, mainly for writing documents, aim, e-mail and for websites people send him.
-Prints more then Jane and William combined times ten.
-Uses a PII 500Mhz computer his son made him.
-Doesn't use any application that isn't already installed or that doesn't have a shortcut on the desktop.
-Baseball++, Football++, Go Jets!
-Walks to work

When designing something in KDE if it is good enough for William then it probably isn't going to be good enough for Jane or Nick, but if you design for Nick you can make everyone else happy too. Jane is willing to explore the Setting and read the Help to find common features and William, well William is going to enable hidden configs just because he can. If you make Nick happy everyone will use your application. When debating implementing a new feature or design try asking yourself: "Could Nick use this?"

Thursday, September 15, 2005

Tweak KDE

One of the things To Do when cleaning up KControl was to remove some stuff that is beyond Advanced dialogs and more like "This will probably break some shit". Things that most users (and developers for that matter) could care less about. There were also some features in KDE that I like, but have to look up every time (such as the developer mode to drkonqi). With that in mind I spent that last hour and coded up Tweak KDE. It lets me easily enable hidden features and it gives a spot to hide away some options that are (but not for much longer) in KControl. This way you tweakers can still have your fun, but most users will never know that they exist. The code is in trunk/playground/utils/tweakkde/. Very simple code and I plan on keeping it that way. I will turn this into an extragear application after I let the code settle a little. Here are some screenshots:



Saturday, September 03, 2005

Back to Norway

Wrapping up my final day here at aKadamy. Tomarrow morning I fly back to norway where I will probably have to wear sweatshirts to keep warm. The week has been fun and interesting. This is some things that just can't be transmitted via e-mail. Seeing someone in person and what projects they are involved with both in KDE and there personal life helps to explain their decisions, belief and direction a lot more. Also when you are in person you can just tell the person to walk over to your desk rather then spending ten minutes on IRC.

The bad:
-The cafeteria closed earlier this week so many of us wasted way to much time (two plus hours?) finding food off campus.
-Spanish keyboards are really hard to use when you are used to American keyboards. Should have brought my own keyboard and mouse.
-Having two rooms separated out the hackers a lot more. One room would have been better.
-We have a lot of work to do
-I Didn't actually get much time to hack before today
-Vending machine ate my money without giving me anything

The good:
-A lot of people talking more about usability.
-KDE base is getting restructured
-KDE4 libs work is underway
-Lots of good System Settings (i.e. kcontrol++) discussions
-Interesting talks
-Lots of talking about how to make KDE better (vs sitting and just coding)
-Met lots of people in person that I have worked with over the years

Malaga was a little disappointing. I was surprised how dirty the city was. The first day we walked from the hotel to the University and there is pretty much trash everywhere. Even on the well maintained university lawns that are mowed there is trash. I was hoping to get together some sort of outdoor game earlier in the week, but decided not to sense I didn't think there would be anywhere to go. I had fun playing tourist, taking lots of photos and seeing some sites. I'll upload them when I get back.

Popular Posts