Am Rande notiert ...

Update on UIKit lighthouse platform. Hmm, hab ich gar nicht mitbekommen – QT hat auch in 4.8 Unterstützung für UIKit, das Framework von iOS, drin. Damit kann man sich also iOS Apps bauen, aber auf QT aufbauend. Da stellt sich mir doch die Frage, wie das dann mit PyQt oder PySide aussieht – Apple mag Interpretercode ja nur dann nicht, wenn er nachgeladen wird. Die App selber darf aber ruhig damit geschrieben sein.

Time Machine – Frequently Asked Questions 30. What are Local Snapshots?. Gar nicht so doof, was Apple sich da hat einfallen lassen. Die ersten Gerüchte über die lokalen Snapshots klangen ja noch eher seltsam, aber das was daraus geworden ist – automatische Snapshots für unterwegs, wenn man sein Sicherungslaufwerk nicht eingestöpselt hat, sind durchaus praktisch. Nicht für echte Recovery im Sinne eines Plattencrashs, aber für die üblichen „mist, bin ich blöd, das wollte ich doch noch garnicht löschen“ Situationen. Allerdings fände ich es gut, wenn es dafür dann doch ein GUI in Timemachine gäbe, wo man lokale Snapshots an und aus schalten kann – ja, ich weiss, kann man von der Kommandozeile machen, aber ich bin nicht umsonst Apple-User, ich will da hübsche grafische Knöpfe zum Drücken!

Map Tunneling Tool. Cool – man kann in einer Karte eingeben wo man ist und auf der anderen wird dann der Gegenpol auf der Erde angezeigt. Wir liegen damit ziemlich im Südpazifik, südöstlich von Neuseeland. Spanien hats gut, die kommen direkt in Neuseeland raus.

Sankra Software: Disable OS X Lion Resume per application. Weil das Feature von Apple etwas „aggressiv“ implementiert ist (es wird auch für Apps aktiviert, die nicht explizit sagen „mach das an, ich kann das“), ist es manchmal echt nervig – manche Apps machen dann sowohl die eigene „neuer Programmstart“-Aktion als auch danach die Aktion vom System – z.B.  manche Editoren öffnen zwei Fenster auf die gleiche Datei, wenn sowohl der Editor als auch das OSX sagen „Wiederherstellung Fenster“. Von daher nicht unpraktisch wenn man das pro Anwendung ausschalten kann, das Feature. Wobei das dann natürlich spätestens bei Updates der Anwendung dann irgendwann vergessen wird und man sich wundert warum jetzt plötzlich die Fenster nicht mehr automatisch aufgehen, weil die Anwendung von der eigenen Steuerung auf die Systemsteuerung gewechselt hat. Aber hey, Software ist das letzte verbleibende Abenteuer …

Modula-3 Resource Page. Weiter bei den Nischensprachen – Modula-3 hat mich ja immer fasziniert, weil es eine pragmatische und praktikable Erweiterung der Wirthschen Sprachenwelt war und dabei eine Menge interessanter Sprachkonstrukte in ein bekanntes imperatives Sprachsystem integrierte. Und da geht die Entwicklung bis heute weiter, der Download hat sogar Binärpakete für Darwin (den Unix-Unterbau von OSX), allerdings derzeit nur 32bit (und ich denke mal keine Bridge zu Objective-C und damit zu den Cocoa APIs).

Magpie Guide: Welcome. Wo wir doch gerade bei Nischensprachen sind: Magpie ist mal wieder eine Sprache für die JVM. Diese hier sieht so ein bischen ähnlich aus wie eine Mischung aus Scala und Ruby, aber die Konzepte sind schon deutlich anders. Besonders nett ist Multidispatch – generische Funktionen, die abhängig von all ihren Parametern und deren Typen die passende Version wählen. Erinnert so ein bischen an CLOS in dem Aspekt. Ausserdem gibt es volle Closures und Funktionen und Blöcke sind first-class Objekte im System. Ausserdem gibt es mit Quotations einen Ansatz für Metaprogramming, wobei ich da allerdings immer noch den Lisp-Weg für ungeschlagen halte (einfach weil bei Lisp die Strukturen des Parsetrees 1:1 auf die eigentliche Syntax und die Listen als interne Repräsentation passt, während bei Sprachen mit Algol-ähnlicher Syntax das ganze wesentlich indirekter ist). Was ich persönlich auch angenehm finde: Magpie ist sehr textuell orientiert, nicht so stark Sonderzeichenlastig. Liest sich für mich einfach angenehmer.

Home Page for ATS. Nischensprachentag bei RFC1437. Interessant ist die Sprache, weil sie den Anspruch erhebt die Performance von C erreichen zu können, da die internen Typen auf Maschinentypen und maschinennahe Formen reduziert werden können – wie z.B. Pointerarithmetik – ohne die Typsicherheit und Runtime-Sicherheit von gemanagten Systemen zu verlieren. Also so ein bischen den Kuchen essen und behalten. Dazu kommen einige interessante Inspirationen (zum Beispiel Modula-3 für das Modulsystem). Kombiniert mit einer nicht zu wilden Syntax, die angenehm kompakt wirkt. Ebenfalls interessant: die Sprache hat unter anderem den interaktiven Beweis der Korrektheit von Programmen zum Ziel, und bietet dafür einige sehr spannende Tools an – was gerade bei Low-Level-Programmen interessant ist, wie z.B. Kernelfunktionen oder Steuerungssysteme.

„Was die Rechtskenntnisse angeht, besteht bei Innenminister Friedrich – immerhin Jurist – allerdings noch erheblicher Nachholbedarf.“ via Internet-Law » Friedrich uns graut vor Dir.

the „useless“ language. Ziemlich verrückte Sprache – sowas die Forth, aber alle Befehle und Syntax besteht aus einzelnen Zeichen. Dazu kommen noch ziemlich seltsame Beschränkungen für Funktionsdefinitionen (maximal 64 Zeichen auf einer Zeile und nur ein if oder while oder vergleichbares in einer Funktion). Besonders faszinierend ist der in U geschriebene U->C Compiler. Der Entwickler der Sprache hat ein ganzes Buch über Programmierung in U geschrieben. Aber Vorsicht: die Farbwahl des Autors ist gewöhnungsbedürftig …

Groklaw – A Brief Explanation of Microsofts Anti-Google Patent FUD ~ by pj. Da das ganze Patentgesumse rund um Android schon etwas undurchsichtig ist, find ich es gut wenn sich Sites wie Groklaw dazu äußern: „Again, Google is pointing to the main issue, not that Microsoft and its satellite helpers are meanies, but that what they are doing is *illegal*. They are attacking the open source community, with patents as the weapon and not just as individual companies but as an artificial group designed to „strangle“ Android. And if you look at the mobile litigation going on as we speak, ask yourself: who is suing and who is being sued? Does it look coordinated to you?“

Ricoh GXR Mount A12 Preview: 1. Introduction: Digital Photography Review. Sieht sehr interessant aus – speziell die Bedienung der GRX ist ja ähnlich zu meiner GRD, und die ist echt klasse. Die GRX sieht einfach aus wie eine Kamera und nicht wie ein deformiertes Kinderspielzeug. Auf jeden Fall hat Ricoh das richtig hingekriegt, zumindestens auf dem Papier: kein Anti-Aliasing Filter sowie Fokus Peaking. Der fehlende Anti-Aliasing Filter begeistert mich immer wieder in den Bildern aus der M8 und das Fokus Peaking ist das Feature aus der neuen Sony Firmware, das mich am meisten begeistert hat. Bin mal gespannt, was das kosten wird, das Modul (Ankündigung ist 650 Dollar, aber Straßenpreise weichen ja immer mal ab) – der Body ist ja mitlerweile mit unter 300 Euro echt günstig zu kriegen. Und rund 200 Euro für den zusätzlichen Sucher. Wenn das Modul günstiger ist als die beiden derzeit verfügbaren A12 Module, dann könnte die GXR eine ziemlich geniale Alternative für Leica-M Objektive werden.

Xcode4 / Objective Pascal – Available Files. Wenn man mal mit Pascal in der Xcode4 Umgebung spielen will, ist das sicherlich ganz gut als Start. Dort wird beschrieben wie man FPC in die Umgebung einhängt, es gibt fertige Templates für Projekte und noch lustiger: es wird beschrieben wie man iOS Geräte in Pascal programmiert. Back to the Future! Oder Back from the Future?

extpascal – Ext JS wrapper for Object Pascal. Weil, ich wollte doch schon immer mal meine Webanwendungen mit Pascal programmieren und ihnen ein Ajax-GUI verpassen. Weil es geht. Und jeder RIA-Hipster einen Herzinfarkt bekommt, wenn er die Sourcen ansieht.

sausage.js – examples – The Core API. Interessante kleine JavaScript Lib, die die Navigation in großen Dokumenten deutlich erleichtert, dabei aber nicht mit Navigationsbuttons erschlägt – einfach rechts mit der Maus hovern, da gibt es visuelle Markierungen für die Größe der Sektionen des Dokumentes und da wo man hovert, kommt ein Button den man zum Direktsprung benutzen kann. Meiner Meinung nach deutlich weniger aggressiv in der Darstellung als Flexible Nav. Allerdings hat Flexible Nav natürlich den Vorteil, dass man nicht erst hovern muss, um die Navigation zu sehen.

Okito.net — On SproutCore 2.0. Über die aktuelle Version des Frameworks, das hinter icloud.com werkelt (da haben wohl ein paar Developer ihre NDA verletzt, als sie sich icloud.com genauer angeguckt haben). SproutCore gibt es schon länger, aber die Version 2.0 hat einiges an Veränderungen gebracht und ist ein Rewrite in wesentlichen Teilen. Das Ziel ist immer noch nativ aussehende Anwendungen nur mit JavaScript und Browser zu bauen.

Pascal Script | RemObjects Software. Wohl eher aus der Reihe „Kuriositäten die man im Netz so findet“ – eine Scripting-Engine, die eine weitestgehende ObjectPascal-ähnliche Syntax hat und in Delphi und Lazarus (FreePascal RAD IDE) integriert werden kann.

Killer rat daubs fur with poison-arrow plant toxins. Titel sagt schon alles. Gibt dem Wort „Rattengift“ eine ganz  neue Bedeutung …

Get Started Guide « PhoneGap. Nur mal geblogmarkt, weil ich das garantiert später nochmal brauche, wenn ich mit Phonegap und Android rumspiele. Ziemlich  holperig, wäre doch schon nett, wenn Phonegap einfach ein fertiges Projekttemplate mitliefern würde. Aber nunja, es geht jedenfalls – mein Hello World taucht auf. Auf dem Simulator. Und ich muss kein fieses Java dafür anpacken, sondern nur fieses JavaScript.

Python, SymPy and Quantum Physics. Bisher waren NumPy/Matplotlib sowie SymPy für mich mehr oder weniger zwei Welten – in diesem Blogpost wird gezeigt, wie man diese beiden verbinden kann, also seine Funktionsdefinitionen über SymPy symbolisch erarbeiten und dann nach NumPy überführen um dort numerische Untersuchungen zu machen. Was gerade im Zusammenhang mit der qtconsole von ipython interessant ist, weil die nur matplotlib Plots inline anzeigt, SymPy Plots aber in einem eigenen Fenster (da diese über pyglet laufen), was zur Speicherung eines Arbeitsergebnisses eher blöd ist.

wsgi_lite. Da ich ab und zu mal „roh“ gegen WSGI programmiere nicht ganz uninteressant für mich – ein verschlanktes WSGI, welches simplere Aufrufkonventionen für Middleware und Applikationen definiert und damit einfach den Code noch etwas weiter reduziert. Für ganze Apps bringt es in der Regel nicht so viel wie für Middleware, da man Apps üblicherweise ja mit einem Webframework schreibt und das einem schon diesen ganzen Teil erleichtert.

Allergologie :: Allergene Allergien allergologisch allergisch. Ein Arzt und ein Buch, das er geschrieben hat und eine Datenbank, die im Prinzip der Inhalt des Buches ist, mit Suchfunktion. Viel mehr braucht man auch oft nicht, wenn man nachgucken will, ob z.B. das betreffende Obst als Allergieauslöser bekannt ist oder eher unwarscheinlich.

Issue 438 – pyglet – pyglet 1.1.3 fails on Snow Leopard. Ach menno, das ist jetzt echt ärgerlich. Pyglet wird von Sympy benutzt um mathematische Ausdrücke auszugeben. Dummerweise benutzt Pyglet auf OSX aber Carbon – und das ist nur 32bittig. Und alle Versuche von mir da irgendwas auf 32bit zu zwingen waren vergebens – eigentlich geht das per Environment Variable oder alternativ mit dem arch Tool, aber aus irgendeinem Grund (wahrscheinlich wegen interner indirekten Aufrufe von Programmen) wird das bei Python ausgerechnet nicht so gemacht wie dokumentiert. Ärgerlich, weil Sympy schon länger (nicht erst seit der QT Konsole) auf der Liste der auszuprobierenden Sachen steht.

Innovations in iPython. Sehr interessante Sachen, die bei ipython passieren – damit wird das schon sehr ähnlich zu typischen Mathe-Umgebungen ala Maxima oder Mathematica. Jedenfalls wenn man Sympy und solche Sachen installiert. Die QT Konsole hat bei mir jedenfalls nach etwas rumprobieren und nachinstallieren von Paketen mit Homebrew funktioniert. matplotlib kriege ich aber generell nicht auf Lion installiert, da hakt noch irgendwas, schade – das wäre auch interessant mit dem pylab Modus. Hier gibt es noch mehr zur QT Konsole.

WSGI and the Pluggable Pipe Dream | Armin Ronachers Thoughts and Writings. Einfach mal lesen, damit man einen guten Überblick bekommt, was WSGI eigentlich so alles ist und was damit machbar ist und wo es vielleicht auch mal klemmt.

Gambas – Gambas Almost Means Basic. Ok, und jetzt wirds richtig wild, aber ich dachte mir nach RealBasic kann ich nicht umhin auch noch auf Gambas zu linken, einer Art VisualBasic Clone für verschiedene Systeme. Kann  mit unterschiedlichen Datenbanken und unterschiedlichen GUI Libraries. Und eine Portierung nach OSX ist mitlerweile (Juni 2011, also noch recht frisch) auch da, klingt also auch für die Zukunft spannend, denn Linux und Windows werden schon unterstützt. Und ja, ich weiss, „richtige“ Programmierer rümpfen über sowas wie VisualBasic die Nase, aber um mal eben grafische Tools zusammenzudengeln ist es sehr brauchbar und gerade für Gelegenheitsprogrammierer interessant.

TL Omnis. Und noch so ein RAD Oldtimer – Omnis war eine der ersten RAD Umgebungen mit der ich gespielt habe und sie war recht ungewöhnlich für die damalige Zeit. Keine „richtige“ Programmierung damals, nur GUI Tools zur Verdrahtung und Verbindung in Kombination mit berechneten Feldern, aber diese sehr leistungsfähig. Sehr starker Fokus auf grafische Werkzeuge für verschiedenste Zwecke (DB Design, Relationsmanagement, Reports, Formulare etc.). Schon erstaunlich was man alles findet, wenn man etwas nachbuddelt. Gibt übrigens eine freie Standardversion der Umgebung, man kann also einfach mal reingucken was es heute so alles kann.

Lazarus. Ich mein, wie kann ich denn sowas wie einen freien Delphi-Clone auslassen, wenn ich über IDEs und RAD Tools schreibe? Also hier der Link, gibt auch OSX Versionen davon. Und ist definitiv ein aktives Entwicklungsprojekt. Und hey, Pascal war meine erste Hochsprache nach Basic, als ich damals mit der Programmierung angefangen bin. Oh, und es gibt mit Objective Pascal eine ziemlich runde Bridge zu den Cocoa Frameworks. Update: boah, da kommt Nostalgie auf! Kommandozeilentools in Pascal bauen! Und die IDE ist gar nicht mal so übel, die kann was!

HyperNext Studio kannte ich überhaupt noch nicht. Ein HyperCard Clone für Mac, mit dem man auch Windows-Anwendungen erzeugen kann. Allerdings ist die letzte Version etwas älter, keine Ahnung ob die mit Lion noch läuft. Mittlerweile ist das Freeware (allerdings closed Source, ich vermute mal weil deren letzte Version halt schon älter ist). Und auch interessant: es bietet zwei Sprachen an, eine die HyperTalk nachempfunden ist und RBScript, ein objektorientiertes Basic aus Realbasic (einer anderen IDE für OSX und Windows). Ich vermute mal, HyperNext selber ist vielleicht mit Realbasic programmiert. Oh, und mit dem HyperNext Android Creator kann man auch Android Anwendungen mit HyperNext bauen. Der Android Creator ist allerdings kostenpflichtig (aber mit 60 Dollar nicht wirklich teuer). Und leider ist der nur für Windows verfügbar, nicht für den Mac. Update: wer Lion hat, kann es vergessen mit HyperNext Studio zu spielen, denn das ist PowerPC Code, und unter Lion gibt’s kein Rosetta mehr. Also Maximum an OSX Version ist Snow Leopard.

Whalesong: a Racket to JavaScript compiler. Schon lange keinen Link zur besten Scheme Implementation des Netzes gehabt. Ok, Racket nennt sich nicht mehr Scheme, aber Scheme ist noch haufenweise drin. Und jetzt gibt es mit Whalesong ein Backend, das aus dem Racket Code JavaScript produziert – und sogar standalone HTML Files erzeugen kann, die dann einfach im Browser laufen.

WebKit in PyQt – rendering web pages. Da ich mal wieder über GUI Bibliotheken und Tools grüble und mit Python und Qt rumspiele sollte ich natürlich nicht die WebKit-Integration von Qt vergessen, die ist wirklich schön einfach realisiert, wie diese recht simplen Beispiele zeigen. Und die Qt-Oberflächen unter OSX sind  zwar nicht 100% wie native Anwendungen, aber schon deutlich besser als die von GTK. Und man kann seinen Code dann auch auf anderen Systemen laufen lassen, ohne große Handstände. Auf dem Blog gibt es noch mehr sehr interessante kleine Artikel über Python und Qt.