Faceted Navigation

DiamondWiki's Faceted Navigation:

"Faceted navigation lets people browse a website by using FacetedClassification to automatically generate relevant hyperlinks. If you want to see an example of faceted navigation in action, go to the BrowseFacets page and start clicking, paying attention to the categories on the left-hand side. Notice how pages can have both an "Author" and a "Subject", and you can navigate by either one. This may seem obvious to you, but the point is that pages are not restricted to a single position in one hierarchy -- this is what faceted classification is all about. It's nothing earth-shattering.

An essential part of FacetedNavigation is that the interface lets you view items that are in more than one category. In other words you can intersect two sets of items. So for example, you can view "items about diamond wiki that are authored by kim burchett", instead of being restricted to viewing "items about diamond wiki" or "items authored by kim burchett". Most hierarchical categorization systems only let you view one hierarchy at a time."

Mon, 30 Aug 2004 22:50:01 +0000

Mastery, Mystery, and Misery: The Ideologies of Web Design

Jakob Nielsen - Mastery, Mystery, and Misery: The Ideologies of Web Design:

"The original ideology of hypertext and the World Wide Web, as expressed by Vannevar Bush (1945), Ted Nelson (1960), and Tim Berners-Lee (1991) makes individual users the masters of the content and lets them access and manipulate it in any way they please. User empowerment requires perfect usability and simplicity: only if users know what every design element means will they feel in control of the medium.

[...] A simple user interface is not boring. It excites users because it lets them connect with the content and engage the company behind the site."

Mon, 30 Aug 2004 12:03:56 +0000

Developer Spotlight: Jakob Nielsen

Jakob Nielsen in a Builder AU interview:

"We could look beyond [cloning] and there could be a new set of productivity software. It could really be done another way. The real problem with Microsoft Office, besides being Microsoft, is that it is an office product based on paper. It comes out of research about how to do office automation.

In the new world what we need is not memos but we need to build Web sites and intranets so when you communicate in companies it is via a collaborative environment. Some areas where they have had success is in Wikis and some of the blog software, but of course it is still quite primitive. But you could make something quite more interesting based on this on things like intranets."

Mon, 23 Aug 2004 20:49:27 +0000

The skew.org XML Tutorial

Mike J Brown - "The skew.org XML Tutorial, a reintroduction to XML with an emphasis on character encoding":

"I wrote this document after having the realization, in early 2000, that every published XML reference I have seen does not adequately explain some fundamental concepts that, in my opinion, are essential to understand before trying to do any serious development with XML."

Wed, 18 Aug 2004 09:45:44 +0000

Baking Data with ADOdb and Oracle

John Lim - Baking Data with ADOdb and Oracle:

"I suspect that some open source advocates will be puzzled by my praising Oracle. Well my work involves pushing around massive amounts of data around. The cost of using a commercial database is only a fraction of the total software cost. People say that open source software has great technical support - yes it is good, but what our business needs more is marketing help, which Oracle provides. Using Oracle makes our products more attractive, as customers like to feel that they are running large and powerful applications on their systems (and it's true, we aren't kidding them). MySQL and PostgreSQL don't feel sexy to our clients."

Mon, 16 Aug 2004 09:00:37 +0000

Award for beautiful coding: David Heinemeier Hansson

Derek Sivers - Award for beautiful coding: David Heinemeier Hansson:

"Go download, install, and run Instiki. (If you don't have Ruby 1.8.1 installed, it's worth updating to it just to run Instiki.)

After you're amazed (will take only 1 minute) go to Rails. Watch the 10-minute video. Close your mouth: it's open.

Then go set up a free account at Basecamp. Add some schedules & deadlines. Play around a bit.

Absolutely brilliant. All of it. Did the beautiful language of Ruby inspire his style, or was it just a match meant-to-be?"

Mon, 16 Aug 2004 08:54:32 +0000

Dynamic Languages-ready for the next challenges, by design.

ActiveState's David Ascher - Dynamic Languages-ready for the next challenges, by design:

"The driving forces for the creation of each major dynamic language centered on making tasks easier for people, with raw computer performance a secondary concern. As the language implementations have matured, they have enabled programmers to build very efficient software, but that was never their primary focus. Getting the job done fast is typically prioritized above getting the job done so that it runs faster. This approach makes sense when one considers that many programs are run only periodically, and take effectively no time to execute, but can take days, weeks, or months to write. When considering networked applications, where network latency or database accesses tend to be the bottlenecks, the folly of hyper-optimizing the execution time of the wrong parts of the program is even clearer. A notable consequence of this difference in priority is seen in the different types of competition among languages. While system languages compete like CPU manufacturers on performance measured by numeric benchmarks such as LINPACK, dynamic languages compete, less formally, on productivity arguments and, through an indirect measure of productivity, on how "fun" a language is. It is apparently widely believed that fun languages correspond to more productive programmers-a hypothesis that would be interesting to test."

Fri, 13 Aug 2004 07:49:42 +0000

Rasmus Lerdorf on PHP 5's Object Orientation features

In a Technetra (India) interview, Rasmus explains where PHP 5's additional OO features are coming from:

"There were a lot of user requests for better Object Orientation in PHP. And a lot of the younger kids coming out of school these days want OO. Everything is Object Oriented. I'm old. In the computer science, Internet stuff I'm pretty old. And back when I came out of school, we didn't have any Object Oriented languages. That really wasn't how I thought about stuff. I taught myself how to program in C by basically writing a couple lines of C, compiling it, then disassembling it and looking at the assembly instructions. And then, after a little while you figure out, OK, if I write it this way, this is the assembly I get and it takes this many instructions and this many (machine) cycles. Back then I could look at a piece of code and I could say that's about 87 cycles for this piece of code.

Kids today have no idea. You ask them how many cycles a particular Java method takes and they have absolutely no idea (they can't easily know, of course). In another sense you can be a lot more productive when you don't have to sit and worry about registers and cycles. Still, getting as close to the hardware as you can does make for the most efficient code. It's, of course, a trade off. So all these user requests for better OO have spurred on the changes in PHP 5, but it's not a revolutionary change."

Wed, 04 Aug 2004 07:55:35 +0000