Steve Yegge on programming languages

This is a pointer to some insightful and entertaining rants about programming languages, by Steve Yegge. If you are wondering if you should learn another language, and which one, or are interested in the bigger picture of the programming language ecosystem, go read these.

A little anti-anti-hype: Ruby is gaining traction quickly, Perl is running out of steam, and Python falls by the wayside. Why? It’s about marketing, and the Ctrl+D shortcut.

Bambi meets Godzilla: A look at how programming languages succeed or fail. What many programmers don’t see: It’s not about language features, but about love and money and marketing and culture.

Tour de Babel: A nice little language roundup. Summary: You have to know C. C++ is the dumbest language ever. Lisp is for demigods. Java sucks less than C++. Perl stinks but lets you get stuff done. Ruby rocks. Python would rock if the community didn’t have attitude problems. (I wonder what Steve would have to say about the other big fishes in the pond, C# and PHP.)

Really, go read these. And do you agree?

(via Tim Bray)

Posted in General | Comments Off on Steve Yegge on programming languages

A peek into the future: the Order Status Widget

Sometimes I see something that makes me think: “This is what the future will be like.” Usually it’s not something world-shattering, but something very small.

The Apple Order Status Dashboard widget

This dashboard widget tracks the status of an order with the Apple store. How many days until it will be shipped? How many days until it will arrive?

In the future, you will have something like this for everything that

  • is going to happen in the next few days,
  • you don’t want to forget about completely, and
  • doesn’t require any action from you.

Because one of the great challenges in human-computer interaction these days is the management of attention.

On an unrelated note, this widget makes me want to buy something from the Apple store just to see it in action.

Posted in General | Comments Off on A peek into the future: the Order Status Widget

AJAX on Rails

AJAX on Rails, visualized.

Thanks for the link Paolo!

Posted in General | Comments Off on AJAX on Rails

Semantic wiki musings

This is a followup to my short review of Semantic MediaWiki.

I’ve followed the semantic wiki space for quite a while. In late 2003 and early 2004, I was working on my own semantic wiki implementation in PHP, based on the Tavi engine and RAP. That was even before Platypus, the grandfather of all semantic wikis, was released. Sadly, my project never went anywhere.

I’ve tried most of the new projects that have appeared since. Some are quite cool demonstrations of technology (e.g. David Aumüller’s WikSAR), but I usually left wondering: Who will use this? What is it good for? Will it be useful for an audience beyond bored RDF hackers?

Semantic MediaWiki comes closest to this goal. The semantic parts are nicely integrated with the main wiki functionality. They augment rather than dominating the user experience. This avoids this in-your-face nerd toy appeal of most projects. Also, the vision is somewhat different from most older projects (including my own), which usually fall into one of these categories:

  • collaborative, web-based unstructured database,
  • collaborative, web-based RDF editor,
  • wiki with semantic page metadata.

Semantic MediaWiki is focused on being an improvement to Wikipedia where bits of markup can be used to capture some of the semantics of the already written vast body of human-readable knowledge for machine processing. Now it seems to me as if this is a much more realistic application of the semantic wiki idea than any of the above.

Posted in General, Semantic Web | 1 Comment

Semantic MediaWiki

I’ve been aware of the Semantic MediaWiki project for some time. Today I finally had a closer look at their demonstrator, and I have to say I like it.

Here is an example page about San Diego. The interesting part are two boxes at the bottom of the page: “Relations to other articles” and “Attributes of San Diego”. They show formally captured, machine-processable facts from the article.

The wiki markup of the page reveals that both kinds of statements, relations and attributes, are captured by bits of inline syntax.

Relations:

'''San Diego''' is a [[is a::city]] located in the southwestern
corner of [[is located in::California]], the extreme southwestern
corner of the [[located in::United States]].

Attributes:

As of [[2005]], the California Department of Finance estimated
the city to have [[population:=1,305,736]] residents.

Each page has a “View as RDF” link. The linked RDF/XML (example) contains all statements made on the page, as well as RDFS descriptions of all types and attributes used in these statements, which is a good idea. All terms are placed into the same namespace. There’s no way to import or relate terms to foreign namespaces.

There’s a semantic search/query feature, accessible through the magnifier icons. I don’t care too much about it. I can just crawl the wiki and load the RDF/XML representations of all pages into my own triple store for querying or building alternative user interfaces. This is a greater benefit than the improved search, I think.

All of this integrates very well with MediaWiki’s slick and familiar user interface.

I would love to see this in production at Wikipedia.

Update: A bit of semantic wiki history and a look at the bigger picture [in my followup]

Posted in General, Semantic Web | 1 Comment

If Microsoft had designed the iPod packaging …

If Microsoft had designed the iPod packaging ...

A funny video.

(via fscklog)

Update: Scoble [says the video was created by Microsoft marketing for an internal meeting.]

Posted in General | Comments Off on If Microsoft had designed the iPod packaging …

XML namespaces are a Good Thing

[Update: oops, I forgot to give this post a real title.]

Note to self: Whenever I will come up with new XML formats, I’ll put them into XML namespaces. To quote SGML greybeard and XML co-inventor Eliot Kimber:

If you’re not using namespaces you should be–I can’t see any excuse for anyone defining any set of XML elements that is not in a namespace. It should be required and it’s too bad that XML, for compatibility reasons, has to allow no-namespace documents.

That post from Eliot is quite interesting if you’re interested in XML arcana and systems design. It gives some background on why XML namespace URIs don’t have to point to anything (a fact it took me a while to get my head around) – it’s because they don’t have to. That’s just the Way of the Web, as Eliot puts it.

Posted in General | 3 Comments

RSS user experience: Temporary subscriptions

Merlin Mann has some very good ideas on improving the RSS user experience. Both revolve around the fact that a user’s interaction with an RSS feed has three phases (subscribing to the feed, reading new items coming through the feed for a while, and finally unsubscribing), and while much has been said and done about the first two, the last one has been pretty much neglected so far.

There are many reasons why people unsubscribe from RSS feeds:

  • Their interest and the feed’s topic don’t match any more
  • They were just test driving the feed and decided they didn’t like it after all
  • The feed has gone dead and is no longer updated
  • The feed is only of temporary interest by its nature, like comment feeds for individual blog entries, or FedEx delivery feeds (a nice example noted by Merlin).

Wading through your subscriptions and hunting for ones you’d like to kill is no fun and likely to get neglected. That’s why I think Merlin’s idea of temporary subscriptions is powerful.

I want to go a bit further and try to reframe the problem. An RSS reader doesn’t manage subscriptions. It manages items I’m interested in. Interest can be temporary. It has levels. It depends on context. I want an RSS reader that makes this explicit.

Posted in General | Comments Off on RSS user experience: Temporary subscriptions

Malcolm Gladwell is blogging

Malcolm Gladwell, one of my favourite writers, has started a blog:

I have come (belatedly) to the conclusion that a blog can be a very valuable supplement to my books and the writing I do for the New Yorker. What I think I’d like to do is to use this forum to elaborate and comment on and correct and amend things that I have already written. […] I think I’d like to start posting reader comments for everything I write, and this is a perfect place for that. There are also times when I think I’ve made mistakes, or oversights, and I’d like to use this space to explain myself and set things right.

Posted in General | Comments Off on Malcolm Gladwell is blogging

SPARQL for PHP

Announced today:

RAP’s new SPARQL package allows you to execute SPARQL queries against RDF graphs and RDF datasets which may be stored in memory or in a relational database. We have also included SPARQL as additional query language into RAP’s NetAPI RDF server, which allows you to query remote RDF repositories using W3C SPARQL protocol.

This is great news. The RAP store runs on almost any cheap webhost. SPARQL for the rest of us!

And major kudos to Tobias Gauss who has implemented most of this.

Posted in General, Semantic Web | Comments Off on SPARQL for PHP