An excellent introduction to RDF

I just came across A.M. Kuchling’s Introduction to the Semantic Web and RDF. It is a very good introduction. It motivates the basics. It doesn’t promise the pie in the sky. It doesn’t pussyfoot around RDF’s shortcomings. I highly recommend it as a starting point to learning RDF.

(via Lambda the Ultimate)

Posted in General, Semantic Web | Comments Off on An excellent introduction to RDF

Projektmanagement in Aktion

Projektmanagement in vier Bildern.

Posted in German/Deutsch | Comments Off on Projektmanagement in Aktion

Photoshopping quer durch die Fabeltierwelt

Diese Gallerie gephotoshopter Fabeltiere hat doch ganz erheblichen Unterhaltungswert. Meine Favoriten sind der adleräugige Affenwolf, der Frosch-Emu-Saurier, und natürlich diese bekloppte Kreuzung aus Elefantenhintern und glücklich daherglotzendem Orang-Utan.

Hoffentlich gibt’s bald Plugins fürs Gehirn, die so was in Echtzeit machen.

Posted in German/Deutsch | Comments Off on Photoshopping quer durch die Fabeltierwelt

AppleScript: Kopiere Geburtstage vom Adressbuch nach iCal

Aus unerfindlichem Grund kommt Mac OS X ohne eine Möglichkeit daher, die Geburtstage aus dem Adressbuch auch im Kalender anzuzeigen. Hier die Lösung als AppleScript. Update: Seit Tiger ist diese längst überfällige Funktion endlich von Haus aus in iCal vorhanden. Der Geburtstagskalender lässt sich in den iCal-Einstellungen aktivieren.

Installation

Benutzung

  • Das Script kann aus dem Adressbuch über das Scriptmenü aufgerufen werden.
  • Es fragt nach einem Kalender. Wenn schon ein Kalender „Geburtstage“ existiert, wird dieser automatisch benutzt.
  • Es löscht alle bestehenden Termine aus diesem Kalender, die das Wort „Geburtstag“ im Titel haben.
  • Es legt neue Termine mit Titeln à la „Richard Cyganiak Geburtstag“ an.
  • Wenn später neue Geburtstage im Adressbuch nachgetragen werden, muss das Script erneut aufgerufen werden.

Achtung: Ich übernehme keine Garantie für irgendwelche durch das Script verursachten Schäden.

Update: Neue Version mit Geburtsjahr in der Beschreibung.

Update: Neue Version mit optionaler Benachrichtigung vor Geburtstagen.

Posted in German/Deutsch | 8 Comments

Ich lerne AppleScript

Es passiert nicht mehr alle Tage, dass ich eine neue Programmiersprache lerne.

AppleScript ist so was wie VBA für Mac OS. Es ist eine recht einfach gehaltene Sprache, die selbst nicht viel kann, aber auf die Funktionen und Daten vieler Mac-Programme zurückgreifen kann.

Ein typisches Beispiel: Im Adressbuch von Mac OS X kann man Geburtstage eintragen, aber diese werden im Kalender von Mac OS X nicht angezeigt. Das ist eine Parade-Anwendung für AppleScript. Wahrscheinlich wurde die Funktion extra weg gelassen, damit die Leute einen Grund haben, AppleScript zu lernen. Mein erstes Programm löst genau dieses Problem und ist hier zu finden: Applescript: Kopiere Geburtstage vom Adressbuch nach iCal

Lernen war einfach. Ich habe mir Matt Neuburg’s AppleScript: The Definitive Guide gekauft, was wahrscheinlich Overkill ist. Ich habe die ersten 40 Seiten gelesen (sehr nützlich, sie geben einen groben Überblick zu Anwendungsmöglichkeiten, Tools, usw.), und 4-5 Mal zu bestimmten Themen nachgeschlagen. Mehr war nicht nötig, um den Einstieg zu schaffen. Bis das Script fertig war, vergingen etwa drei Stunden. Nicht schlecht.

(Zugegeben, zwei Dutzend Geburtstage von Hand zu kopieren, hätte zehn Minuten gedauert.)

AppleScript ist offensichtlich auf leichte Erlernbarkeit angelegt. Programmzeilen lesen sich halbwegs wie englische Sätze (was ja keine gute Idee sein muss, siehe COBOL). Beispiel: make new event at end of events of theCalendar with properties eventProps. Dabei sind theCalendar und eventProps Variablen, deren Wert ich vorher gesetzt habe. Mir gefällt das ganz gut. Ist zwar viel Tipperei und nervt wahrscheinlich auf Dauer, aber merkt sich extrem gut.

Was fiel mir bei der Lernerfahrung negativ auf?

  • Kein automatisches Anzeigen von Fehlern während des Tippens, wie z.B. bei Eclipse.
  • Schlechte Fehlermeldungen. NSScriptFooBarError, und die verursachende Zeile wird markiert. Ursache war dann vielleicht, dass ich auf ein nicht existierendes Array-Element zugreifen wollte.
  • Es ist schwer nachzuvollziehen, was für Ergebnisse die einzelnen Befehle geben. Mein Wunsch: Nach der Ausführung des Scripts mit der Maus über den Code fahren und in Tooltips die letzten Werte aller Rückgaben sehen, inkl. Elemente eines Arrays, Eigenschaften eines Objekts usw.
  • Als Ersatz diente mir die display dialog-Funktion. Sie akzeptiert aber nur Zeichenketten und keine komplexeren Strukturen wie Arrays.
  • Der Rückgabewert des letzten Befehls wird in einem extra Bereich angezeigt, auch inklusive Array-Elementen und Objekteigenschaften. Manchmal steht da aber nur “event 12 of calendar 3 of iCal”, was überhaupt nicht hilfreich ist.
  • Zum Lernen wären ein paar Beispielscripte hilfreich gewesen, an denen man sich die Grobstruktur eines Scripts und nützliche Idiome abschauen könnte.

Mit einer besseren IDE als dem doch recht bescheidenen Script Editor von Apple wäre es ein superleichter Start geworden. Das gibt mir Hoffnung, dass Programmieren mit der richtigen Sprache und den richtigen Werkzeugen doch eines Tages zu einer Grundfertigkeit wie Lesen, Schreiben und Rechnen werden kann.

Posted in German/Deutsch | 2 Comments

The Web’s Unique Selling Point

Danny Ayers thinks about what hisorians and aliens will find unique about the Web and suggests:

The Web is the first artifact to be constructed collectively by all humans.

This is true (insert disclaimer about all here) and indeed a first, but it’s not why the Web is great. After all, we could have built a collective pile of pebbles or something. Why is the Web different from that? Why is it better than an artificial Mount Everest?

The Web lets us exchange information better and faster than ever before. Many things that would have been prevented by large distances are now trivial. But this was largely true in 1990, thanks to the telephone system, fax, and TV.

Unlike those, the Web lets us find people from the other side of the world, and engage with them in a meaningful way. Every person with Internet access can offer his or her knowledge, information, goods, and personality, and others can accept these offers, regardless of distance. That’s what makes the Web unique and great, in my eyes.

This was, in theory, possible before. Imagine some elaborate scheme using telephones, broadcast radio and fax machines here. But the Web was the first technical system that was flexible enough to actually evolve to this point. The Web’s most interesting applications—weblogs, wikis, Google, those online community thingies, and cat photos–did not show up instantly, but only after people played with the system for a couple of years.

So here’s my try at the Web’s USP:

The Web enables humans with common interests to form groups, communicate, collaborate, and trade, with complete disregard to geographic distances.

Another interesting question is: How will this change the world? Some thoughts: Levelling of regional cultural differences. Faster advances in highly specialized fields. Forming of communities based on interests, not locality. Increased range of special interests, exotic tastes, and extreme views. Rifts in society caused by that.

I love such questions.

Posted in General | Comments Off on The Web’s Unique Selling Point

C als Scriptsprache?

TinyCC ist ein superkompakter, extrem schneller C-Compiler. TinyCC kann beispielsweise einen Linux-Kernel in 15 Sekunden kompilieren. Schnell genug, um das bei jedem Bootvorgang zu machen, wie Slashdot schreibt.

In einem Kommentar habe ich das gesehen:

#!/usr/local/bin/tcc -run

main()
{
    DoSomethingHere();
}

Mir ist schwindelig. C als Scriptsprache? Man kann sich auf gar nichts mehr verlassen dieser Tage.

Posted in German/Deutsch | Comments Off on C als Scriptsprache?

Wiki-Spam

Für das diesjährige Projekt Semantic Web an der Freien Universität Berlin hatte ich ein Wiki eingerichtet. Dieses wurde heute Opfer einer WikiSpam-Attacke. Auf vier Seiten wurden jeweils dutzende Links zu diversen asiatischen Seiten eingefügt. Sollte wohl die Google-Positionierung der Seiten verbessern.

Zum Glück habe ich die RecentChanges als RSS-Feed abonniert. Den Mist wegzumachen, dauerte ungefähr eine Minute. (Das drüber bloggen zwei. Ähem.)

Ich stelle mich schon mal auf dier ersten Comment-Spams hier im Blog ein.

Im Moment habe ich kein Problem damit, Wiki- und Comment-Spam gelegentlich von Hand zu entfernen. Wenn es schlimmer wird, muss aber eine andere Lösung her. Von technischen Lösungen halte ich nicht viel, da sie sich meist mit ein wenig Grips umgehen lassen und ich keine Lust auf ein ewiges Wettrüsten habe. Wie ich gerade sagte, muss dieses Problem letztendlich rechtlich oder gesellschaftlich (durch Ächtung solcher Methoden) gelöst werden.

Posted in German/Deutsch | 4 Comments

Jakob Nielsen: User Education Is Not the Answer to Security Problems

Der Zustand des Internets ist deprimierend. Wohin man klickt, Viren, Würmer, Trojaner, 419-Scams, Phishing, Dialer, Spy- und Adware.

Gibt es einen Ausweg? Jakob Nielsen stellt treffend fest, dass der vielfache Ruf nach mehr Verantwortungsbewusstsein bei den Benutzern nicht die Antwort sein kann:

However, user education should not be the main approach to countering security problems for three reasons. First, and most importantly, it doesn’t work. Computer security is too complicated and the bad guys are too devious and inventive. … Second, user education puts the burden on the wrong shoulders. It’s like the old Wild West, where the answer to crime was that every man carried a gun. In civilized society, we’ve abandoned this approach in favor of a professional police force to deal with criminals. … Third, as long as we keep the burden on users rather than fix the technology, we’ll never realize the Internet’s full benefits. Instead, we’ll alarm users and make them ever more reluctant to use the technology to its full potential.

Was dann? Jakob schlägt sechs Maßnahmen vor:

1. alle Informationsübertragungen verschlüsseln,
2. alle Informationsübertragungen digital signieren,
3. alle Sicherheitseinstellungen standardmäßig aktivieren,
4. alle Updates automatisieren,
5. die Usability von sicherheitsrelevanten Funktionen verbessern,
6. die verantwortlichen Betrüger und Verbrecher aggressiver verfolgen.

Das trifft den Nagel auf den Kopf. Aber: Die ersten fünf dieser Punkte sind schon weitgehend erreicht oder können in absehbarer Zeit umgesetzt werden. Es hakt an Punkt sechs.

Heute kann jeder Glücksritter mit einem Minimum an Verstand ohne Angst vor Strafe seinen neuesten finsteren Plan an der nichtsahnenden Internet-Bevölkerung ausprobieren. So lange sich das nicht ändert, wird das Internet ein ungemütlicher Platz bleiben. Und da habe ich wenig Hoffnung. Das Problem kann nur international gelöst werden. Und nicht mit dieser Generation von Politikern und Richtern.

Bis dahin können wir an den Punkten eins bis fünf arbeiten. Und die wichtige Frage diskutieren, wieviel Anonymität wir im Internet wollen.

Posted in German/Deutsch | Comments Off on Jakob Nielsen: User Education Is Not the Answer to Security Problems

Endbenutzerschulungen als Auswahlkriterium für Software

James Robertson hat einen kurzen Eintrag zu einer Idee von Sonia Carter: Using training during CMS selection.

Es geht um den Einkauf von Content Management Systemen. Diese sind komplex, der Markt ist unübersichtlich, die Evaluierung verschiedener Produkte ist sehr aufwändig. Die Idee ist nun, jeden Anbieter eine Schulung für Endbenutzer machen zu lassen. Dadurch wird ein Unterscheidungsmerkmal hervorgehoben, das für den erfolgreichen Einsatz komplexer Softwareprodukte absolut entscheidend ist: die Usability.

Die Idee schreit geradezu nach einer Anwendung auf andere Produkte. Ich sage nur Telefonanlagen.

Posted in German/Deutsch | Comments Off on Endbenutzerschulungen als Auswahlkriterium für Software