Tim’s Weblog Tim's Weblog
Tim Strehle’s links and thoughts on Web apps, managing software development and Digital Asset Management, since 2002.

Web Page Development: Best Practices

Apple has an article on best practices in web page development: "Before you start coding your website you must make a few decisions - which DOCTYPE do you use? Do you use pure CSS, or CSS with Minimal Tables? We'll discuss these topics, and then go into some design guidelines and issues to consider with XHTML and CSS."

Thu, 18 Dec 2003 08:00:00 +0000

URIs are important

On URIs:

Thu, 18 Dec 2003 07:15:25 +0000

Unix IPC

Daniel Lorch's comments on the pcntl_signal() PHP manual page point to nice articles on Unix Interprocess Communication:

I'm especially excited about the ease of using signals and message queues in command line PHP scripts...

Thu, 18 Dec 2003 06:44:00 +0000

Sticking the Fork In

Davey Shafik has written an inspiring article for the International PHP Magazine:

"Whilst PHP is not the best tool for creating daemons, it does come fully loaded with the ability to fork, share memory, manage child processes etc. through the PCNTL, POSIX, Socket, SHMOP and System V Semaphore (sysvsem) extensions. I realise that I've just thrown five exotic extensions at most of you, but we're going to walk through them one by one just to familiarise you with each of them, what they are capable of, and what we're going to use them for."

Wed, 17 Dec 2003 08:27:04 +0000

Basics of the Unix Philosophy

Eric Steven Raymond's The Art of Unix Programming book has a nice chapter summarizing the Basics of the Unix Philosophy...

Tue, 16 Dec 2003 08:00:31 +0000


Joel on Software: "When Unix was created and when it formed its cultural values, there were no end users. Computers were expensive, CPU time was expensive, and learning about computers meant learning how to program. It's no wonder that the culture which emerged valued things which are useful to other programmers. By contrast, Windows was created with one goal only: to sell as many copies as conceivable at a profit. Scrillions of copies. "A computer on every desktop and in every home" was the explicit goal of the team which created Windows, set its agenda and determined its core values. Ease of use for non-programmers was the only way to get on every desk and in every home and thus usability über alles became the cultural norm. Programmers, as an audience, were an extreme afterthought."

Tue, 16 Dec 2003 07:53:51 +0000

Myths Open Source Developers Tell Ourselves

There's a nice comparison in the "Myths Open Source Developers Tell Ourselves" article:

"Think of your [software] project as your home. If you put things back when you're done with them, take out the trash every few days, and generally keep things in order, it's easy to tidy up before having friends over. If you rush around in the hours before your party, you'll end up stuffing things in drawers and closets. That may work in the short term, but eventually you'll need something you stashed away. Good luck."

Mon, 15 Dec 2003 11:20:02 +0000

The Master Key to Oracle's Data Dictionary

O'Reilly had a nice introductory article on The Master Key to Oracle's Data Dictionary: "Oracle's data dictionary views are all based on tables, but the views provide a much more user-friendly presentation of the metadata. For example, to find out the names of all of the relational tables that you own, you can issue the following query: SELECT table_name FROM user_tables;"

Thu, 11 Dec 2003 08:33:57 +0000


Navigating trees and graphs in 3D looks like fun with the free H3Viewer - the data file format is plain text, which is great...

Thu, 11 Dec 2003 08:16:06 +0000

Metadata in context (Wikipedia)

I'm currently thinking about "metadata in context", and how to realise this using Topic Maps concepts. It would be very elegant to be able to attach metadata inline, especially for long texts.

Here's a nice Wikipedia sample article linking to people, dates, places, and other subjects.

Exactly what I'd love to do, but these links should be more than "dumb" one-way hyperlinks. How about inline definition of association types and roles between topics?

(They actually have a page for discussing "the case for a Topic Map structure for Wikipedia".)

Wed, 10 Dec 2003 07:20:47 +0000

Techquila's Topic Map World Topic Map

Navigating through Techquila's Topic Map World Topic Map may help one understand what Topic Maps are about...

Wed, 10 Dec 2003 07:09:14 +0000

Web Services Are Not Distributed Objects

Werner Vogels: "The lack of understanding that Web services primarily support the document-exchange contract is one of the root causes for many of the misconceptions about them. [...] Web services share none of the distributed object systems’ characteristics. They include no notion of objects, object references, factories, or life cycles. Web services do not feature interfaces with methods, data-structure serialization, or reference garbage collection. They deal solely with XML documents and document encapsulation."

Mon, 08 Dec 2003 11:17:12 +0000

The programmer as (starving) artist

Robin 'Roblimo' Miller on NewsForge: "Writing software is fascinating, even somewhat addictive. People in the writing business are familiar with the phenomenon of "compulsive writers" who write not for money but because that's what they do. [...] The free software movement is full of compulsive programmers."

Wed, 03 Dec 2003 08:09:17 +0000


"TMAPI hopes to do for topic maps what SAX and DOM did for XML - provide a single common API which all developers can code to and which means that there applications can be moved from one underlying platform to another with minimum fuss."

And this is what it looks like.

Wed, 03 Dec 2003 07:53:02 +0000

RESTful Error Handling

Ethan Cerami: "A major element of web services is planning for when things go wrong, and propagating error messages back to client applications. However, unlike SOAP, REST-based web services do not have a well-defined convention for returning error messages. In fact, after surveying a number of REST-based web services in the wild, there appear to be four different alternatives for handling errors. Below, I outline the four alternatives, and then provide my opinion on which option or combination of options is best."

Tue, 02 Dec 2003 07:58:51 +0000

Inference in Topic Maps using tolog

Fascinating - Topic Map Inference rules in tolog:

"The parent-of rule parent-of($A, $B) :- { parenthood($B : child, $A : mother, $F : father) | parenthood($B : child, $M : mother, $A : father) }.

What this rule says is that A is the parent-of B if A is either the mother or father of B. After evaluation this rule becomes a predicate like any other, available to all queries, and to the definition of other rules.

This means that we could now rewrite the query that found my parents using this rule, and get exactly the same results.

Querying with rules parent-of($P, lmg)?

As you can see, the query becomes much simpler and more direct using this simple rule, and this applies to the other rules discussed above. Below they are defined, built on this simple rule.

The rest of the rules grandfather-of($A, $B) :- parent-of($A, $C), parent-of($C, $B).

uncle-of($A, $B) :- parent-of($ASIBLING, $B), parent-of($GP, $ASIBLING), parent-of($GP, $A).

descendant-of($A, $B) :- { parent-of($A, $C), descendant-of($C, B) | parent-of($A, $B) }.

As you can see, these rules are pretty straightforward to define, and easy to understand and use. Yet they make a great difference in how you query this topic map."

Mon, 01 Dec 2003 11:56:11 +0000