[Einen noch auf den Weg]
Für die Walpurgisnacht: Eartha Kitt singt die Hymne aller Hexen: I Want To Be Evil (MP3, 3,2 MB).
30 April
2004
2004
[Rock'n'Roll ist wild und toll]
Noch mehr auf die Ohren zum Tanz in den Mai: Little Clock Rock von den Round up Boys, die laut ihrer Website heute in Amsdorf zum Hexenfeuer spielen.

Mehr davon gibt es in der Jukebox.

Mehr davon gibt es in der Jukebox.
[Der Mac als Hausdruckerei]
CocoaBooklet (kostenlos) erzeugt aus PDF-Dateien druckfertige Booklets, also Vorlagen, aus denen Bücher mit korrekter Seitenfolge sowie Vorder- und Rückseitendruck erzeugt werden können. [Industrial Technology & Witchcraft]
[Auf zum Tanz in den Mai]
Die Musik dazu liefern heute die hochgeschätzten Bloggerkollegen: Wer schon immer glaubte, daß sein Papa ein Rolling Stone war, der kann sich dies hier von Sly & The Family Stone (MP3, 3,3 MB) oder den Temptations (MP3, 1,4 MB) bestätigen lassen. Oder doch lieber gleich Rock the Town (MP3, 32, MB) von den Stray Cats? [Industrial Technology & Witchcraft]
Man kann natürlich auch zum Tag der Arbeit Anarchy in the UK (MP3, 1,8 MB) auf der Ukulele spielen. [The Cartoonist]
Man kann natürlich auch zum Tag der Arbeit Anarchy in the UK (MP3, 1,8 MB) auf der Ukulele spielen. [The Cartoonist]
[Wochenende]
Ja, trotz Serverausfall habe ich es nicht vergessen. Es ist Wochenende und ihr bekommt natürlich euer obligatorisches Hundebild.

Zebu beim Agility-Training. [Photo: Petra Döll]
Denn auch wenn Hundeschule und Agility-Training an diesem Wochenende ausfallen, weiß ich trotzdem nicht, wann es das nächste Update geben wird. Daher wünschen wir euch, wie immer, ein schönes Wochenende und viel Sonne. Und...
keep on bloggin'!

Zebu beim Agility-Training. [Photo: Petra Döll]
Denn auch wenn Hundeschule und Agility-Training an diesem Wochenende ausfallen, weiß ich trotzdem nicht, wann es das nächste Update geben wird. Daher wünschen wir euch, wie immer, ein schönes Wochenende und viel Sonne. Und...
keep on bloggin'!
[Python und das metaWeblog API]
Der nächste Schritt bei der Entwicklung eines Weblog-Tools ist nun die Frage, wie die Daten denn in das Weblog kommen? Im einfachsten Fall beauftragt man sein Script, statische HTML-Seiten zu schreiben und per FTP auf den Server zu laden. Eleganter geht es natürlich mit dem metaWeblog API, mit dem man einzelne Posts in sein Weblog überspielen kann. COREblog unterstützt das metaWeblog API leider noch nicht, aber Twoday tut es, und so konnte ich endlich mal wieder mein Testblog dort nutzen.
Das metaWeblog API ist eine einfache Erweiterung des Blogger APIs, das es erlaubt, mehr Informationen als einfach nur den Blogeintrag wie XML-RPC zu posten. In unserem Fall interessant ist die Möglichkeit, eben auch einen Titel mitzugeben. Zwar umgeht das Blogger-API von Twoday diese Restriktion sehr elegant, indem es die ersten zwei Wörter eines Blogeintrags mit abschließenden Pünktchen (...) als Titel übernimmt, aber wenn es doch auch direkt geht:
Das ganze folgt dem hier schon einmal durchgespielten Schema und die xmlrpclib gehört mittlerweile zum Standardumfang von Python, so daß man sie nicht mehr zusätzlich herunterladen muß.
Das Ergebnis dieses kleinen Scripts kann man hier begutachten. Wie man dort leicht sieht, müssen High-ASCII-Werte — wie auch im Blogger API — als HTML-Entities kodiert werden.
Natürlich geht das ganze auch mit dem Atom API, aber ich habe nirgendwo einen Account, der das Atom API unterstützt, so daß ich dies nicht testen kann.
Das metaWeblog API ist eine einfache Erweiterung des Blogger APIs, das es erlaubt, mehr Informationen als einfach nur den Blogeintrag wie XML-RPC zu posten. In unserem Fall interessant ist die Möglichkeit, eben auch einen Titel mitzugeben. Zwar umgeht das Blogger-API von Twoday diese Restriktion sehr elegant, indem es die ersten zwei Wörter eines Blogeintrags mit abschließenden Pünktchen (...) als Titel übernimmt, aber wenn es doch auch direkt geht:
#!usr/bin/python
import xmlrpclib
srv = xmlrpclib.Server("http://twoday.net:8081")
blogID = "testbed"
userName = "kantel"
password = "********"
title = "Test des Metaweblog-APIs"
text = """ Ich teste gerade das Metaweblog API und hoffe, daß;
(oder daß) dieser Text im Weblog erscheint. """
srv.metaWeblog.newPost(blogID, userName, password, {'title': title,
'description': text}, xmlrpclib.True)
Das ganze folgt dem hier schon einmal durchgespielten Schema und die xmlrpclib gehört mittlerweile zum Standardumfang von Python, so daß man sie nicht mehr zusätzlich herunterladen muß.
Das Ergebnis dieses kleinen Scripts kann man hier begutachten. Wie man dort leicht sieht, müssen High-ASCII-Werte — wie auch im Blogger API — als HTML-Entities kodiert werden.
Natürlich geht das ganze auch mit dem Atom API, aber ich habe nirgendwo einen Account, der das Atom API unterstützt, so daß ich dies nicht testen kann.
[AppleScript und Python: Ein produktives Paar]
In diesem Aufsatz hatte ich erklärt, wie ich mir einen Editor (in meinem Falle BBEdit) als User Interface für eine Blogsoftware vorstelle. Nur, wie funktioniert das eigentlich praktisch?
Meine Lösung nutzte zwei Scriptsprachen. Einmal AppleScript, um via AppleEvents Zugriff auf den Inhalt des Editorfensters zu haben (das geht angeblich auch mit MacPython, nur leider habe ich bis heute nicht herausbekommen, wie...) und dann Python, um die ganze Logik der Generierung eines Weblogeintrages und dem Upload zum Weblog zu erledigen.
Zuerst zu AppleScript. Hier reicht ein simpler Dreizeiler und der magische Befehl
Ja, und das Python Script, das bekommt den Text und kann nun damit machen, was es will. ;o). Das Einfachste ist, es gibt eine Echo zurück:
Dieses Echo wird dann einfach wieder an AppleScript zurückgegeben (was in diesem Fall nicht unbedingt notwendig ist, aber zeigt, wie es geht).
Wichtig ist, daß mittels
Meine Lösung nutzte zwei Scriptsprachen. Einmal AppleScript, um via AppleEvents Zugriff auf den Inhalt des Editorfensters zu haben (das geht angeblich auch mit MacPython, nur leider habe ich bis heute nicht herausbekommen, wie...) und dann Python, um die ganze Logik der Generierung eines Weblogeintrages und dem Upload zum Weblog zu erledigen.
Zuerst zu AppleScript. Hier reicht ein simpler Dreizeiler und der magische Befehl
do shell script:tell application "BBEdit"
copy contents of window 1 to speicher
copy contents of (do shell script
" /Users/jorgkantel/scripte/echofrombbedit.py '"
& speicher & "'") to result
display dialog result
end tell
window 1 scheint nach meinen Tests tatsächlich immer das frontmost window zu sein, so daß der komplette Inhalt des Fensters, das im Vordergrund ist, an das Python Script übertragen wird.Ja, und das Python Script, das bekommt den Text und kann nun damit machen, was es will. ;o). Das Einfachste ist, es gibt eine Echo zurück:
#!usr/bin/python
def echoFromBBEdit (s):
print s
try:
import sys
s = sys.argv[1]
except:
s = "Parameter nicht definiert!"
echoFromBBEdit(s)
Dieses Echo wird dann einfach wieder an AppleScript zurückgegeben (was in diesem Fall nicht unbedingt notwendig ist, aber zeigt, wie es geht).
Wichtig ist, daß mittels
chmod +x scriptname der executable Flag gesetzt wird, damit das Betriebssystem daß Script auch ausführen kann. Und da Python bei Mac OS X zum Lieferumfang gehört, sind keine zusätzlichen Installationen erforderlich.
[Internet ohne Schnur]
In Berlin: WLAN-Hotspot im Münztelefon. »Berliner können seit kurzem unter anderem am Hackeschen Markt ein WLAN-Münztelefon zum Unterwegs-Surfen nutzen, berichtet das Blog wirres.net. T-Com-Sprecher Rüdiger Gräve bestätigte gegenüber heise online, dass seit einigen Wochen mehrere Prototypen an verschiedenen Berliner Standorten laufen, an denen man per T-Pay oder mittels Münzeinwurf drahtlos surfen kann.« [heise online news]
[Überraschend]
Die universelle Ökologietheorie. Ein Lehrstück für die Grünen: Je größer die Öko-Sau, desto länger lebt sie – und desto weniger vermehrt sie sich. [Telepolis]
[SOAP isn't Soup]
Lesefutter für Schlangenliebhaber: Python SOAP Librariers, Part 1, Part 2, Part 3, Part 4 und Part 5. Sehr interessant. [Daily Python URL]
[Outage]
Wir hatten einen heftigen Ausfall unseres Servers heute morgen. Ein defektes Filesystem ließ ihn nur noch im
Wir hoffen, daß dieses defekte Filesystem auch die Ursache für die anderen Ausfälle war und daß nun die Server-WG wieder stabil läuft.
Danke, Martin!
secure mode starten. Doch Dank des unermüdlichen Einsatzes von Martin, dem Helden der Server-WG, der beinahe einen ganzen Arbeitstag für die Reparatur geopfert hat, geht nun alles (hoffentlich) wieder. Das Filesystem ist repariert und Daten scheinen auch keine verschwunden zu sein...Wir hoffen, daß dieses defekte Filesystem auch die Ursache für die anderen Ausfälle war und daß nun die Server-WG wieder stabil läuft.
Danke, Martin!
