Richard Cyganiak’s Weblog

29. 10. 2004

Ich lerne AppleScript

Abgelegt unter: Apple, Programmieren — Richard @ 01:11

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.

24. 10. 2004

Apple Dual-Prozessor-Systeme? Nein Danke.

Abgelegt unter: Apple — Richard @ 14:31

Matthew Porter schreibt über ein Problem mit Apples Dual-Prozessor-Systemen. Anwendungsprogramme unter großer Last können Kernel Panic auslösen, also das System vollständig zum Absturz bringen.

Apples Antwort: Einfach den zweiten Prozessor abschalten.

Matthew:

Attention Apple! This suggestion, while helpful, is nothing more than a bandaid. More importantly, Apple’s near instant refusal to investigate where the problem lies is just plain stupid and demonstrates that you fail to understand the needs of the enterprise (Unix) market.

Under no circumstances should a userspace application cause the kernel to panic. On Unix, this is just plain unacceptable and represents an issue with something in the kernel or core libraries.

Heftiges Kopfnicken meinerseits. Kernel Panic ist bei Hardwaredefekten und beim Einsatz schlampig programmierter Treiber verzeihlich, aber nicht bei Allerwelts-Anwendungen. Die Schuld einfach auf die Anwendung zu schieben, ist nicht akzeptabel. Schon gar nicht von einem Hersteller, der sich um den Enterprise-Markt bemüht.

Streicht den Rack voll mit XServes G5 von meinem Wunschzettel.

(via Andrew Newman)

22. 10. 2004

Der Font des iPod-Displays

Abgelegt unter: Apple — Richard @ 21:10

iPod der vierten Generation

Ich lese gerade bei Wikipedia, dass der Font im iPod-Display Chicago ist. Chicago war der Systemfont des originalen 1984er Macintosh.

Ich mag diesen Fakt. Der iPod, Design-Ikone des frühen dritten Jahrtausends, verwendet ein Gestaltungselement, das unter dem Zwang von technischen Beschränkungen entstand, über die wir heute nur schmunzeln können. Der 1984er Macintosh ist ein Fall fürs Museum, aber Teile seines Designs funktionieren eine Generation später in völlig anderem Kontext immer noch.

Der „iPod“-Schriftzug auf der Rückseite ist übrigens Myriad Pro Semibold, falls das irgendwen interessieren sollte.

8. 10. 2004

TextMate: Noch nicht ganz gereift

Abgelegt unter: Apple — Richard @ 20:24

TextMate ist ein neuer Texteditor für Mac OS X, der gerade die Runde macht.

Bisher habe ich noch keinen vernünftigen Texteditor für Mac OS X gefunden, der an UltraEdit (für Windows) oder vim (für Unix) heranreicht. Meine Probefahrt mit TextMate begann sehr gut und produzierte viel zustimmendes Kopfnicken, fand aber ein jähes Ende, als ich das erste „@“ tippen wollte. Auf deutschen Macs ist das Alt+L. Alt+L markiert in TextMate die aktuelle Zeile. Kein @. Kein neuer Lieblingstexteditor.

Er kriegt in ein paar Wochen eine zweite Chance. Bis dahin, vim.

7. 10. 2004

Feiertags-Kalender für iCal

Abgelegt unter: Apple — Richard @ 22:19

Perfekt: Konfigurierbarer Feiertags-Kalender, zum Abonnieren in iCal.

(via fscklog).

Next-generation iPod

Abgelegt unter: Spaß, Apple — Richard @ 21:20

Next Generation iPods

BBspot berichtet über die nächste Generation von Apples populärem MP3-Player.

(via OK/Cancel)

Powered by WordPress