Okke's blog

Monday, October 31, 2005

Joel on software is right about Web 2.0

First, read Joel's on software complaint about the Web 2.0. Then tell me you agree on it. I do, for one.

Sunday, October 30, 2005

4 usability considerations about the web 2.0

I'm sure anyone has heard about the Web 2.0 already. With (for example) Ruby on Rails, anyone and everyone can easily use the features of the Web 2.0. I'm not sure everyone should be so exited about it, though. I mean, sure, the user might have a nicer, more usefull, easier-to-learn and 'standards-compliant' (more on that later) application, but what's the point really? Sometimes people are talking about 'learning how to develop Web 2.0 applications'. In my opinion, the only thing that has really changed is that your application is responding faster to the user. It's all great. But everyone should consider the pitfalls of Web 2.0 applications. As Jakob Nielsen would say: 4 usability considerations about the Web 2.0.
  1. Use standard widgets! Try to keep as much resemblance to the standard widgets of the main os-es (preferable windows or OS X) as possible.
  2. Don't use draggable items. Dragging items for realignment might seem as a good idea it first, but it tends to confuse people. Why can't I move this item to another list? Why can't I remove it by dragging? If you have to explain your widgets to everyone, they're not useful. (I think I'll write some more about dragging in a later blog entry)
  3. Allow people to use their bookmarks. Don't use AJAX for every request. Ajax should be used for changing the state of the current page, not to navigate.
  4. Give feedback to the user when they've clicked on something. 37signals' yellow fading technique helps people to see changes. I like it a lot.

Any things I've missed? Any things I've said that don't make sense at all? Please comment :)

Wednesday, October 26, 2005

Unobtrusive Ajax and degradability of the web

The last few days I've been thinking about unobtrusive JavaScript and Ajax and the degradability of the web. One of the arguments the anti-Ajax folks use is that users are unable to bookmark Ajax pages. I think they didn't quite get the point. For that, we first have to examine why one should use Ajax. I think Ajax is a nice add-on to websites. It's not a necessity to use Ajax, but if used properly it can help the user with faster response times and a more steady field of view. Ajax can be nicely used for things like auto-completion (for example, when you have to type in someone's email address) and when someone has a list-view with 'add item' field underneath. (E.g. a blog with comment fields. When you add a comment you immediately see what you added. You don't have to watch while the whole page is reloading and when that's done scrolling to your new-made post). However, I do not think Ajax should be used when there is anoter view to be rendered. For example, if you list users and someone clicks a user to view more information about him/her, a whole new page should be rendered with a proper url. The reason for this is that someone can still bookmark anything they would possibly want to bookmark. Another argument the anti-Ajax crew uses is that people without javascript enabled can't do a thing. This isn't always the case, though. The keyword for this problem is unobtrusive javascript. In other words: don't rely on it. Allow everything to be done through normal post-backs. Sometimes this can be quite hard, though. The example with the blogpost can be solved easily with unobtrusive javascript:
  • Create the form with normal postback parameters. Get it to work properly without javascript.
  • Then add a javascript layer. Don't use inline javascript, but you'd rather want to dynamically select the form. Disable the postback and put a javascript that handles the Ajax-calls instead.

Now everything still works for people without javascript, and it works excellent for people who enabled javascript.

Mind you, are some things that are hard to do without javascript. What about sorting a list at different ways? Or how to allow the user to move things up or down a list? There are some nifty drag-and-drop scripts circulating at the moment. Without javascript, these features are a lot harder to script into your application.

You could program al these features twice: one serverside solution and one clientside solution. When you have to deploy a site, you probably won't have time for this sort of thing. Then there is just one solution: just tell them you can't do these things if you have disabled javascript. Too bad for them, I guess. A sidenote: be sure you do enable all critical features of your application for use without javascript. Use javascript if you can, but don't depend on it.

[edit] This might be a point for RoR users. Most rails-generated Ajax code is inserted inline. Isn't that as evil as inline CSS?

[edit 27th october] This guy says another good thing about the how and why of Ajax

Any thoughts on these matters?

The beginning on rails - part 2

I've finally seen the problem with my mySQL install. I kept getting an error, and finally I located the problem: the install path of mysql can't contain spaces. Well, thanks for telling me that, mySQL installer. *sigh*. I mean, it's the year 2005 and you still don't allow spaces in your paths? Come on! Anyway, got it running now. Eclipse has still the usual bugs, but I think I'll install eclipse again and throw all useless (java) stuff out first, and then install only ruby components. If that's possibly, at least. Anyway, gotta go to college now.

Tuesday, October 25, 2005

The beginning on Rails

Wow, I've just started setting up my PC to develop with rails. Installing ruby went smoothly. Installing Rails went smoothly. Fiddling around with a book in my hand (Agile web development with Rails), and still everything ran smoothly. Then I realized I hadn't installed a database on my PC yet. So I installed MySQL. Figured I would need a frontend for it. So I go and download MySQL-front. Then I asked in the rails IRC channel for the IDE most people use for rails. Some went with eclipse, so I thought, let's try that. Guess that's the hardest part. I'm still trying to figure everything out, even with a very good tutorial at hand. Why didn't anyone make a proper installer for RoR with eclipse? Well, guess that's [hopefully?] a matter of time. For all it matters: I guess RoR is a great environment. Just fix a proper IDE, dudes. [update] Well, I'm still jerking around with the mySQL install. I guess I'll get back to it tomorrow. Orso. Damn you, those 248.391 programs that have to be installed to be able to develop a mere website! *sigh* Okke out.