Am Rande notiert ...

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.

CodeMirror. Wenn man Editoren in Webseiten haben will, die Syntax von Programmen einfärben. Sieht ganz  nett aus und könnte vielleicht für ein paar Sachen interessant sein, z.B. da wo ich restructured Text eingeben lasse, oder wo Python-Code in der Datenbank gespeichert wird. Ist eine JavaScript Library die im Browser einfach eingehängt wird in die Textareas.

Harbour Project. Jemand sagte dBase. Dann landete ich bei dbase.com – und dann stellte sich mir die Frage nach Clipper. Und dann hab ich danach gesucht. Warum tu ich sowas? Warum kann ich mich nicht beherrschen? Und wo ist dBase für die Cloud?

Orange – Data Mining Fruitful & Fun. Wow, gerade drüber gestolpert, das kannte ich noch nicht, glaub ich. Eine GUI-Oberfläche mit einem Node-Interface zur Definition von Datenanalysen und Visualisierungen, wobei diese Knoten in Python programmiert sind. Das ganze Interface ist mit QT gebaut, daher gibts da auch eine OSX Version davon. Wenn man also größere Datenmengen durchwühlen muss, ist das sicherlich mal einen Blick wert, zumal es Open Source ist und man sich da ja nix vergibt.

Sage: Open Source Mathematics Software. Einfach weil ich ja letztens über Worksheet-Interfaces gegrübelt habe und drüber nachdenke, was es da alles so an Auswahl gibt – Sage ist ja nicht nur ein Mathematik-Paket, sondern primär erstmal eine gigantische Modulsammlung für Python und ein Worksheet-Interface ebenfalls für Python. Ok, man benutzt einen Webbrowser gegen einen lokal laufenden Webserver, aber trotzdem ist das eigentlich eine nette Sache. Und mitlerweile ist Version 4.7 mit vielen Änderungen draußen. Und man kann gute Sachen ruhig mal wiederholen. Billiger als Mathematik ist es allemal und Python gefällt mir auch deutlich besser als Programmiersprache. Da ich warscheinlich dann irgendwann mir meinen eigenen Server installieren will, um auf Notebooks von überall zugreifen zu können, hier mal ein Blogmark auf eine Anleitung, wie man mit Ubuntu einen eigenen Sage Server baut.

The Xavisys WordPress Plugin Framework – Xavisys. Interessant wenn man selber Plugins für WordPress bauen will, denn es nimmt einem ein paar der Standardarbeiten ab und macht den Code damit etwas simpler.

Creating Apps Using AppleScript Objective-C. Vielleicht sollte ich mir einfach das Buch hier holen, um meine (recht perverse) Neugierde für die AppleScript/Objective-C Bridge zu befriedigen.

SuperCard on Lion. Und weil ich gerade von HyperCard geschrieben habe, sein geistiger Nachfolger – SuperCard – existiert immer noch und ist für Lion wieder fit gemacht worden. Aber wohl immer noch eine Carbon Anwendung, seine Tage sind also wohl doch in nicht zu ferner Zukunft gezählt (bzw. wird es immer schwerer werden, SupeCard in aktuelle Entwicklungen zu integrieren, wenn nicht ein Wechsel nach Cocoa stattfindet). Und es reizt mich immer noch das Teil zu kaufen, und wenn es nur aus Nostalgie ist. Das Hack-Gefühl von HyperCard hab ich nur später wieder so in Smalltalk-Umgebungen erlebt (und die sind ja leider unter OSX auch eher tot).

Mac OS X 10.7 Lion Automation Release Notes. Die schrecklichste Spracherfindung seit Hypertalk hat in der Löwenversion einen Haufen Erweiterungen bekommen, besonders die Integration der Objective-C Bridge in den Apple Script Editor ist witzig – man kann damit direkt in Scripten auf Cocoa Frameworks zugreifen. Auch wenn ich der Überzeugung bin, dass AppleScript wahrscheinlich mehr Programmierer in den Wahnsinn getrieben hat als dass es Benutzern das Leben erleichtert hat, es ist allein schon aus Sprachhistorischen Aspekten immer wieder interessant zu gucken was sich dort tut. Seit Snow Leopard mit der Objective-C Bridge gekommen ist, ist es jedenfalls wieder im Aufwind und selbst im aktuellen XCode 4.1 kann man Anwendungen komplett nur mit dem Interface Designer und AppleScript zusammendengeln. Leider ist die Anwendungsstruktur unter Cocoa definitiv nicht  Non-Programmierer-geeignet, XCode mit AppleScript Anwendungen ist also nicht wirklich eine Neuauflage von HyperCard (der einzige Grund, warum ich HypeTalk vergebe – es war die Sprache in diesem ziemlich genialen kleinen Tool mit großer Reichweite).

XMPPFLASK — XmppFlask v0.1 documentation. Definitiv ein interessantes Projekt – ein XMPP Bot in Python, der eine ähnliche Struktur hat wie Flask, also einfache Definition für XMPP Handler mit Routing von Events. Da ich immer mal wieder vor hatte mir XMPP als Backbone für verteilte (also weit verteilte) Anwendungen mit Online/Offline-Möglichkeit anzugucken, mal geblogmarkt.

flot – Attractive Javascript plotting for jQuery. Mal wieder was für die Zahlenfresser, bzw. deren visualisierenden Kollegen – Zahlenwüsten in gut aussehenden Graphen darstellen, und das ganze als jQuery Plugin. Muss ich mir definitiv mal näher angucken, könnte bei speziell einem Projekt interessant werden.

clojurescript demo convex hull. Eine Demo für die Programmierung von Clientside Code in Clojure mit Hilfe von Clojurescript. Clojurescript compiliert Clojure nach JavaScript mit Hilfe des Google Closure Compilers und der Closure Library. Sieht nach einer sehr interessanten Möglichkeit der Clientprogrammierung aus, zumal Clojurescript unter Mithilfe von Rich Hickey steht, dem Erfinder und Hauptentwickler von Clojure, man kann also davon ausgehen, das die Integration in die Clojure Welt gut sein wird.

Pattern Matching In Python. Interessanter Artikel für Leute wie mich, also für Leute die Snobol4 oder dessen „Nachfolger“ (in Tüddelchen, weil es ja dann doch eine gänzlich andere Sprache ist) Icon mögen und mal eine Alternative zu regulären Ausdrücken haben möchten. Implementiert ein dem Icon-Modell sehr ähnliches Pattern-Matching-System, komplett mit Backtracking und Generatoren. Ist allerdings aus 2004 und ist eher eine proof-of-concept Geschichte, nicht unbedingt ein direkt nutzbares und installierbares Python Modul. Im Gegensatz zu SnoPy ist es aber reines Python und nicht ein Swig-basierter Wrapper für eine Ada Library.

Bash on Balls. Für die Momente im Leben, wo selbst Visual Basic zu viel wäre – ein Webframework für Bash Scripte. Benutzt natürlich ein paar Unix-Werkzeuge zusätzlich, vor allem Netcat für den Netz-IO. Und ja, es kommt komplett mit Server und allem, so wie man es sich vorstellt. Sogar Dev-Code-Reload und solche Sachen gibts, auch eine Templatesprache. Und mit BoB ein nettes Acronym. (und im Gegensatz zu Cobol on Cogs ist das hier ein Projekt das man wirklich ausführen kann und nicht nur ein Ulk)

FAQ – Kotlin – Confluence. Die Drölfundfünfzigste Java-Killer-Sprache für die JVM, die hier auch gleich Scala attackiert (das übliche Argument „Scala ist zu kompliziert“, welches auf den ersten Blick auch durchaus stimmt – Scala hat wenige zentrale Basisfeatures, die durch die Standardlibrary und die gute DSL Möglichkeit die eigentliche Sprache an der Oberfläche für den Programmierer dann mit vielen Features versorgt). Bleibt die Frage, was daraus wird, aber da JetBrains dahinter steht, wird sie zumindestens eine gute IDE haben (JetBrains baut IntelliJ und andere JVM IDEs, unter anderem auch PyCharm und mit AppCode die einzige derzeitige OSX Objective-C Alternative zu XCode). Und hey, wer seine Sprache nach einer Insel vor St. Petersburg benennt, hat schon mal einen Wohlwollensvorsprung bei mir.

WSGID When your WSGI app becomes a nix daemon. Mongrel2 von Zed Shaw hat mich schon geraume Zeit interessiert, aber das grösste Manko war, dass es nicht viele Python Frameworks gibt, die direkt mit Mongrel2 arbeiten. wsgid löst das Problem, es ist ein WSGI Server für Mongrel2 und kann damit dann Frameworks ankoppeln, die unter WSGI laufen können – zum Beispiel ist damit Mongrel2 als HTTP Server für eine verteilte Django-Installation benutzbar. Durch den Einsatz von ZeroMQ bei Mongrel2 ist das ganze dann deutlich flexibler strukturierbar als mit den klassischen (FCGI basierten) Serverintegrationen.

Elnode – an Emacs version of node.js. Mal wieder ein Projekt aus der Klasse „weil es geht“ – ich glaube jedenfalls nicht, dass irgendjemand auf die Frage „wie will ich meine Webservices betreiben“ als Antwort spontan „Emacs“ sagen würde. Aber nunja, das Betriebssystem mit eingebauten Basisfunktionen zur Textverarbeitung kann eben auch einen asynchronen Webserver darstellen.

Replication, atomicity and order in distributed systems. Sehr interessanter Artikel über Verteilung und Ordnung in verteilten Systemen mit paralleler Ausführung – denn das ganze ist nicht wirklich trivial. Lesenswert alleine für die Links auf verschiedene Projekte in dem Umfeld. Am Ende ein bischen ein Cliffhanger, weil auf einen kommenden Artikel verwiesen wird – hoffentlich kommt der auch, denn dessen Thema klingt ebenfalls interessant.

Kivy: a crossplatform framework for creating NUI applications. Interessante neue GUI-Library für Python, läuft auf verschiedensten Plattformen (und neben den drei Großen Desktopumgebungen ist mit Android ist auch schon eine mobile dabei) und kann OpenGL zur Beschleunigung der Ausgabe einsetzen (intern haben die einen JIT, der die Basisfunktionen compiliert und so schnelle Ausführung ermöglicht).

Simple, Secure, Scalable Web Development with Opa. Das Opa Buch ist auf den ersten Blick eine sehr vollständige Einführung in die Sprache Opa und ihre Motivation. Was auch begeistert: die Installation unter Linux basiert nur auf Basispaketen, da wird nicht erstmal das halbe Internet runtergeladen und installiert nur weil man eine Sprache benutzen will. (Was bei Spielereien mit Opa übrigens eher nicht so positiv auffällt: sehr lange Compile Zeiten – schon die im Buch gelieferten Beispiele, die ja nicht gerade überragend groß sind, liegen schnell mal bei recht heftigen 15-20 Sekunden …)

Bulbflow: a New Python Framework for Graph Databases. Auch wenn ich immer wieder denke, Graphdatenbanken sind eigentlich sowas von 70er Jahre, nicht alles was alt ist ist automatisch schlecht – IMS ist ja auch immer noch da und für manche Zwecke sehr interessant. Und das hier klingt interessant, sowas wie DBAPI für Graphdatenbanken, so dass man in seinen Projekten auch mal die Datenbank wechseln kann, ohne das alles komplett umgeschrieben werden muss.

The Pragmatic Bookshelf | Core Data. Das Buch klingt recht interessant, Core Data wird auch bei MacRuby voll unterstützt, wäre also vielleicht interessant sich das zu holen und zu lesen.

Responsive Applications – Mono. Ein Artikel über die verschiedenen Wege wie man Anwendungen mit GTK# aufbauen kann, damit sie zügig reagieren und das Userinterface nicht blockieren, obwohl GTK# single-threaded ist (also nur vom GTK#-Thread auf das UI zugegriffen werden darf).

MonoMac und XCode 4

Autsch, das hat mich jetzt voll erwischt – ich wollte mal mit den GUI Tools spielen, aber MonoMac unterstützt XCode 4 noch nicht vollständig und hat nur lapidar das zu sagen: Developers that use Interface Builder are recommended to install … Weiterlesen

Am Rande notiert ...

Jtalk Smalltalk. Keine Ahnung wieso das bisher an mir vorbeigeschlichen ist – aber eine recht vollständig wirkende Smalltalk-Implementation in JavaScript inklusive IDE mit Class-Hierarchy-Browser ist schon durchaus bemerkenswert, auch wenn es nicht das erste Projekt dieser Art ist (Clamato wäre ein anderes, aber das scheint größtenteils tot zu sein).

jQuery vs MooTools: Choosing Between Two Great JavaScript Frameworks. MooTools hab ich ein bischen aus den Augen verloren, früher (bevor ich mit jQuery und dessen vielen Plugins Bekanntschaft gemacht habe), war es meine bevorzugte Library für JavaScript. Von daher mal interessant zu lesen, wie es sich mit jQuery vergleicht (aus der Sicht eines MooToolers geschrieben).

asuhan / happy. Auch nicht uninteressant: ein PHP Interpreter bzw. Compiler in Python auf Basis der PyPy Toolchain. Ok, ist jetzt nicht der Brüller, ich glaube nicht, dass ich schon sehr oft die Frage hatte „wie kann ich jetzt in Python PHP Code ausführen“ – aber z.B. wenn eine Site auf Django-Basis den Nutzern PHP als Scriptsprache zur Verfügung stellen will, könnte sowas durchaus interessant werden – PHP ist nunmal  eine der bekanntesten Scriptsprachen für das Web, Python aber mit einigen Frameworks einfach sehr viel interessanter aus Produktionssicht.

cfbolz / Pyrolog. Hatte ich den schon mal? Ein Prolog-Interpreter in Python, der die PyPy Toolchain benutzt. Könnte sehr interessant werden wenn man mal wieder ein bischen Regellogik in seinen Programmen braucht aber nicht unbedingt externe Tools dafür anwerfen will.

The Node Beginner Book » A comprehensive Node.js tutorial. Falls ich mir wirklich Node.js nochmal näher angucken will, könnte das (freie!) Buch hier hilfreich sein. Oder auch für andere, die das gleiche vor haben.