programmierung - 30.9.2011 - 14.2.2012

Versteckt in diesem Concatenative IRC Log vom 6.1.2012 findet man etwas von Slava, dem Factor-Entwickler, über dessen (also Factor, nicht Slava) Zukunft - ein paar Bugfixes für die 0.95 plant er noch, aber dann ist für ihn das Projekt im Prinzip abgeschlossen. Schade, denn Factor war immer wieder interessant zum Rumspielen und von den vielen Sprach-Projekten eines der spannenderen, aber in der letzten Zeit ist es doch etwas still darum geworden. Jetzt weiss ich auch warum. Ob die Community genug Power hat um da weiter zu machen wo er aufhört, ist bei der Größe der Community eher fraglich - ja, ein paar Leute sind aktiv und auch durchaus aktiver als er, aber Slava war oft der treibende Faktor (haha) in der Entwicklung und Integration neuer Konzepte und Ideen.

generateDS 2.7b : Python Package Index. Ein Kollege hat das gerade gefunden, schaut ganz interessant aus - es generiert aus XSD Files Python Klassenstrukturen. Nicht das sowas unbedingt nötig wäre in Python, aber gerade diskutierten wir darüber, wie man aus einer XSD ein Django-Modell generieren könnte, das Tool hier könnte da ein Ausgangspunkt sein.

IdleX - IDLE Extensions for Python. Da gibt's tatsächlich ein Projekt, das IDLE auf die Sprünge helfen will und der doch eher stiefmütterlich behandelten Standard-IDE von Python eine ganze Menge neue Tricks beibringt.

Practical Common Lisp - Crawling InterfaceLift with Common Lisp - second try. Interessanter Durchlauf eines einfachen Projektes in Common Lisp bei Einsatz von Quicklisp. Mach wirklich einiges einfacher als wenn man roh in CL programmiert und die ganzen Pakete und Systeme von Hand verwaltet. Das Beispielscript sollte man allerdings nicht unbedingt laufen lassen, denn es verstößt gegen die Nutzungsbedingungen von Interfacelift (und ist nicht wirklich nett zu deren Servern).

arskom/rpclib - GitHub. Da ich letztens soaplib hatte, das hier ist der Nachfolger dazu. Die Kollegen haben damit wohl auch schon Erfahrungen gesammelt (positive Erfahrungen).

Laurence Tratt: Fast Enough VMs in Fast Enough Time. Interessanter Artikel des Entwicklers von Converge (eine Sprache die Ideen von Lisp - Makros - und Python - Einrückung für Scope und teile der Syntax - aufgreift und zusammenführt) über RPython, die Grundsprache hinter PyPy. Damit versteht man auch ein bischen mehr welche Rolle RPython genau spielt (nämlich die Implementationssprache für Interpreter, die automatisch einen JIT erhalten).

ladon 0.7.0 : Python Package Index. Und der hier klingt so ein bischen wie mein alter Toolserver - also ein einfacher Weg um Python-Code als Service bereitzustellen. Dabei wird ebenfalls SOAP unterstützt.

suds. Nur ein SOAP Client für Python, aber dafür explizit die wichtigen Binding Styles (RPC/Literal, RPC/Encoded und Document/Literal) genannt.

About — soaplib v2.0.0beta documentation. Und noch eine neuere SOAP Library für Python, ebenfalls deutlich mehr Aktivität als bei SOAPpy.

pysimplesoap - Python Simple SOAP Library. Klingt als ob ich mir das mal angucken will, denn da sind einige Sachen drin die in SOAPpy fehlen (und da SOAPpy nicht mehr weiter entwickelt wird, ist das eh interessant).

Smile and SmileLab Home Page. Hmm, zum Rumspielen vielleicht nicht uninteressant - Datenanalyse und grafische Aufbereitung mit AppleScript in einer Scripting-Umgebung. Features sehen ganz interessant aus (Diagramme, XML, TCP, HTTP Server und Client ...) aus.

python4delphi - Embedding Python within a Delphi application. Tuts angeblich auch mit Lazarus und Free Pascal, und wohl rudimentär auch unter OSX. Könnte für eines dieser verrückten Projekte die mir immer noch im Kopf rumspuken interessant sein.

Iñigo Quilez - fractals, computer graphics, mathematics, demoscene and more. Interessante kleine Programme die schöne Bilder erzeugen und einiges über die Hintergründe und mathematischen Grundlagen für einige der Algorithmen. Und auch sonst jede Menge interessantes Grafik-Zeug. Was zum durchblättern für ruhige Stunden und vielleicht die eine oder andere Anregung mal das eine oder andere nachzuprogrammieren (da wo er die Grundlagen liefert).

FPC New Features 2.6.0 - Lazarus wiki. Und weitere nette Änderungen bei FreePascal, besonders die neuen Delphi-Sachen werden sicherlich den einen oder anderen interessieren, oder auch der weiter ausgebaute ObjectPascal Dialekt für die Cocoa-Programmierung unter OSX. Wenn jetzt noch Lazarus von Carbon auf Standard Cocoa umstellt und damit dann auch voll 64bittig wird, wirds richtig interessant auch für normale Arbeiten damit. Jedenfalls wenn man kein Objective-C mag. Oder wenn man die Delphi-ähnliche Umgebung der XCode-Umgebung vorzieht.

charles leifer | Updates to peewee, including atomic updates, select related and basic transactions. Der kleine ORM für Python wird langsam erwachsen und lernt Transaktionen und atomare Updates und select related. Gerade für kleinere Tools sehr interessant, weil man sich einfach die ganze Infrastruktur eines vollen Django-Projektes spart und den ORM als einzelnes Python-File einfach mitkopieren kann.

Distribunomicon | Learn You Some Erlang for Great Good!. Interessanter Artikel über distributed processing mit Erlang und die Fallen in die man tappen kann (z.B. der Hinweis darauf, dass remote links einem einen Event-Sturm produzieren wenn das Netzwerk ausfällt über das die remote links gehen).

Sublime Text. Hmm, gerade mal angeguckt und ganz verdutzt festgestellt, das ist ja ein ziemlich netter Editor. Bei diversen anderen in letzter Zeit hab ich zwar gedacht, ok, nett gemacht, aber nicht wirklich sinnvoll nutzbare Features. Aber der 10000-feed-Overview für den gerade aktiven Source zum Beispiel ist erstaunlich gut benutzbar - man erkennt eben doch die Struktur seines eigenen Sources wieder und findet damit schnell Positionen im Source wieder. Und die Idee der Commands über die Command-Palette ist auch wirklich brauchbar. Und Python-Plugins klingt auch gut, auch wenn ich mir das API und die Leistungsfähigkeit da noch nicht genauer angeguckt habe. (jaja, ich weiss, gerade habe ich noch davon geredet wie gut mir PyCharm gefällt und nun schon wieder ein Editor ... ist halt die ewige Suche nach der Perfektion!)

web2py. Als freies Buch zum Online lesen oder zum Kaufen auf totem Holz oder als PDF. Kleines, kompaktes Webframework in Python - wem Django zu mächtig ist, kann sich vielleicht das hier mal angucken.

Mac App Store - Clozure CL. Eine der netteren freien Common Lisp Implementierungen ist jetzt im App Store bei Apple. CCL ist im Prinzip die freie und portable Variante des alten Macintosh Common Lisp, mit einer Integration in Objective C Frameworks. Also durchaus interessant damit rumzuspielen wenn man sowohl Lisp als auch Cocoa mag.

Clay Programming Language. Mal wieder eine neue Programmiersprache. Diese hier zielt auf Systemprogrammierung (also auf das C-Lager) ab und hat einige interessante Features. Besonders interessant ist für mich die Umsetzung von Type Inference und Generic Functions - das ist eine der eleganteren Lösungen die ich in der letzten Zeit gesehen habe.

Thoughts on Python 3. Etwas ausführlicher als manches "Python 3 hat sich geändert und das finde ich doof" das man so im Web liest, der Artikel geht konkreter auf die derzeitigen Probleme mit Python 3 ein.

Learn Smalltalk with ProfStef. Amber hatte ich ja schon mal, das Smalltalk 80 auf JavaScript-Basis. Kommt jetzt mit einem node.js basierten Webserver der minimales WebDAV implementiert und ist von der Sprache zumindestens soweit kompatibel, dass der Autor das ProfStef Tutorial portieren konnte - und das hab ich hier verlinkt. Einfach mal 5 Minuten mit einem Smalltalk in der Webseite spielen.

Open Object Rexx. Nur so als Softwarearchäologe hier festgehalten, dass es jetzt eine Open Source Implementierung von Object Rexx gibt. Wofür auch immer man das wollen würde.

hangout-disco - Renders a WebGL room with avatars for each participant of a Google+ Hangout, with the possibility to play music, etc. - Google Project Hosting. Luschtig - sowas wie eine virtuelle Hangout Welt.

Zinc HTTP Components. Interessantes Projekt das sich zur Aufgabe gemacht hat eine möglichst vollständige Unterstützung für alle Aspekte des HTTP Protokolls zu liefern. Interessant deshalb, weil sie von der Protokolldefinition ausgehen und nicht wie in vielen anderen Fällen die HTTP Implementierung nur soweit da ist, wie sie für das jeweilige Web-Framework notwendig waren.

Tornado on Pypy benchmarks - Tornado Web Server | Google Groups. Bin ja bekennender PyPy-Fan und mit der 1.7er hat PyPy ordentliche Arbeit geliefert - die Memory-Leaks der 1.6er scheinen raus zu sein und man kann jetzt auch langlaufende Prozesse (wie hier in dem Post einen Tornado Webserver) damit laufen lassen. Besonders für komplexere Template-Engines und Situationen wo man intern mit größeren Datenstrukturen arbeitet um Ergebnisse zu produzieren ist es eine echte Alternative - aber bitte dran denken, PyPy braucht mehr Speicher für gleiche Arbeit.

GemStone Seaside | About. Apropos Seaside: es gibt eine ziemlich coole virtuelle Appliance (also vorgekautes virtuelles Plattenimage) zum Einhängen in VMWare Installationen mit einer GemStone/S Installation inklusive Seaside und einem Squeak als IDE für die Entwicklung für dieses System. Wer also mal sehen will, wie die großen Kinder mit Smalltalk arbeiten, hier entlang und runterladen und ausprobieren.

Python Math | Python for iPhone/iPad/iPod Touch - Finger weg vom letzten Update, denn da kann man nicht mehr Scripts von aussen in das Tool bringen, was es komplett nutzlos macht. Der Autor verspricht zwar einen Editor in einem Update, aber ob der auch nur annähernd brauchbar sein wird muss such erst zeigen. Klar, das ist nur eine der unsinnigen Apple Policies, die er umgesetzt hat - aber die Art, wie er einen Update reinstellt und nur in der letzten Zeile der Updatei formation darauf hinweist, ist schon echt Mist. Denn wer das übersieht hat ein derzeit unbrauchbares Teil auf dem Pad oder Phone.

Welcome to NeuroLab’s documentation! — NeuroLab v0.2.1 documentation. Ok, ich brauche es nicht direkt jetzt (und ehrlich gesagt weiss ich nicht, ob ich es jemals brauchen werde), aber was solls, ich bin eben einfach ein Fan von Neuralen Netzen. Und Python. Und daher mal ein Verweis auf eine Library, die eine ganze Reihe von Algorithmen aus dem Bereich für Python liefert.

Technical Overview : Dart : Structured web programming. Von den ganzen derzeitigen "wir erfinden JavaScript neu" Ansätzen ist der hier fast schon am interessantesten - im Prinzip ist es eine klassische OO Sprache mit einem C#-ähnlichen Featureset und Abbildung auf JavaScript. Aber was bei diesem System interessant ist: es ist von vornherein darauf ausgelegt die Entwicklung auch gleich in einer Browserumgebung zu machen. Aber eben nicht stumpf innerhalb eines Browsers, sondern als eigene IDE, die einen Runtime-Browser integriert. Und der Entwickler des Projektes ist der Newspeak (voriger Post) Entwickler, der hat da schon sehr interessante Ideen für eine IDE gezeigt. Derzeit ist der Dart-Editor allerdings weitaus stärker an typischen IDEs orientiert als an den meiner Meinung nach innovativeren Ideen der Datenbank-basierten IDE.

Newspeak » The Newspeak Programming Language. Hatte ich glaube ich schon mal, linke ich jetzt auch nicht wirklich wegen der Sprache selber, sondern wegen der dort vorgestellten IDE - die läuft innerhalb von Squeak, ist aber weitestgehend autonom und sieht für mich sehr interessant aus. Vom ersten drübergucken würde ich sagen, da ist jemand sehr vom alten Apple Dylan inspiriert - die hierarchische Darstellung von Klassen und Methoden, die Verlinkung und die generelle Präsentation des Sources als eine Art hyperlinked Database sieht sehr gut aus.

Radius limited searching with the ORM | Neogeo ramblings with a Python twist. Wenn ich mir das so angucke, da sind schon wirklich nette Features in GeoDjango drin. Leider habe ich derzeit kein Projekt bei dem ich es gebrauchen könnte, also nur mal für später geblogmarkt. Auf dem Blog gibts auch weitere interessante Artikel rund um GeoDjango.

Pinax. Und wieder mal was das ich glaube ich schon hatte. Aber aus aktuellem Grund nochmal auf den Radar gekommen und daher werde ich mir das etwas näher angucken. Sowas wie ein Bauchladen für Django-Projekte mit Fokus auf Social Networks und Community Sites. Klingt auf jeden Fall sehr interessant - ein bischen wirkt es wie Drupal mit Python und auf Django (also eher nicht fertige Sites sondern Bausteine und Framework zur Erstellung derselben).

Codify – iPad. Hey, schaut nett für das iPad aus - eine Lua IDE, bei der man allerdings die Ergebnisse nicht als eigene App bereitstellt, sondern eben innerhalb der Umgebung laufen lässt. Nicht so schlecht als Ansatz, die alten Basics waren ja auch nix anderes - und man kann auf dem iPad ohne weitere Hilfsmittel rumspielen, Grafik und Multitouch und son Zeug tuts auch. Vielleicht genau das richtige zum Doodeln unterwegs.

Galileo Computing :: Apps entwickeln für iPhone und iPad - index. Da ich wieder mal Zugriff auf einen iOS Developer Account habe, mal geblogmarkt. Frei zu lesendes Buch über iOS Entwicklung, das auch mit den neuen Sachen in iOS und XCode arbeitet (jedenfalls mit einem Teil der neuen Sachen). Beim Schockwellenreiter gesehen. Buch kann man natürlich auch einfach kaufen, wenn man totes Holz will.

Mellow Morning » Django Facebook 3.2 – Simple image upload and wall posts. Da ja leider FB immer noch das einzige social network mit einem ernstzunehmenden API ist (sorry, aber G+ hat kein ernstzunehmendes API solange die nur einen Level ala RSS-over-JSON bieten und das Diaspora-API ist leider noch intern - aber Diaspora ist ja eh Alpha, da kommt sicher noch einiges bei der Beta), muss man sich ja notgedrungen weiter damit beschäftigen. Und die Neuerungen von django-facebook schauen so aus als ob sie einige Schmerzen da abnehmen könnten (und als ob da vielleicht die eine oder interessante Spielerei für mich interessant werden könnte).

Mojolicious - Perl real-time web framework. Schaut ganz interessant aus, einfach weil es einen recht schlanken Eindruck macht und nicht zu viele Perl-Perversitäten voraussetzt. Klar, kann man auch mit Ruby oder Python haben, Microframeworks sind jetzt nicht so wahnsinnig spannend, aber soll ja noch Leute geben die mit Perl arbeiten.

Python Math | Python for iPhone/iPad/iPod Touch. Ziemlich cool, das ist ein echt brauchbares Python auf dem iPad. Keine GUI module oder sowas - nur eine leicht erweiterte Shell und die Standard Library sowie sympy. numpy, scipy und matplotlib sind in der Überlegung. Implementierung ist erstaunlich brauchbar - für kleine Spielereien reichts und man kann das Transcript per Mail exportieren und Files per "Öffnen in ..." Funktionen z.B. aus Mail oder Dropbox holen.

Cleaning… – Marco.org. Da ist doch noch einiges etwas seltsam bei iOS 5. Hier das Problem der cache und tmp Verzeichnisse, die jetzt sehr viel aggressiver bereinigt werden, was dazu führt, das manche Anwendungen wesentlich öfter Daten aus dem Netz holen müssen (oder gegen die Apple Guidelines verstoßen und Dokumente doch im Cache speichern). Betrifft vor allem Offline-Reader, denn deren Inhalte sind ja per Definition rekonstruierbar, gehören also in den Cache - dort werden sie aber unter Umständen mal eben beseitigt, was das ganze Offline-Readen ad absurdum führt. Ungut.

How to speed up the Android Emulator by up to 400%, Nuxeo Developers Blog. Mal geblogmarkt, denn wir werden wohl demnächst etwas mit Apps rumspielen und der Android Simulator ist grottenlahm - damit zu testen macht fast keinen Sinn, da man gerade bei Phonegap Anwendungen das Browserrendering mit Papier und Bleistift und Radiergummi überholen könnte, so langsam ist der Bildaufbau. Mit der Lösung hier hat man zwar keinen exakten Test eines Android-Gerätes, aber zumindestens für die ersten Feeling-Tests sollte es ausreichend sein, da es gerade bei Phonegap eher darauf ankommt, dass die Rendering-Engine die gleiche ist als darauf, dass die CPU die gleiche ist.

SuperCollider » About. Das hier ist was unter dem vorigen Projekt als Basis benutzt wird. SuperCollider hat seine eigene Programmiersprache, kann also auch für Live Coding und ähnliches verwendet werden.

Home // Overtone. Bin ja immer begeistert von Krachmachern - das hier ist ein Tool zur interaktiven Soundprogrammierung und Livecoding und Instrumentenbau (also digitalem natürlich), und das ganze in Clojure geschrieben. Vielleicht für den einen oder anderen ein Grund sich mal Clojure näher anzugucken.

virtualenvwrapper 2.10.1 — virtualenvwrapper v2.10.1 documentation. Hmm, hatte ich glaube ich schon mal, aber da ich mitlerweile fast ausschließlich mit virtualenv arbeite sollte ich es mir nochmal angucken - das scheint wirklich einiges zu vereinfachen (allerdings scheint es davon auszugehen, dass alle Umgebungen in einem Hauptverzeichnis liegen, da müsste ich warscheinlich ein bischen was bei mir anpassen).

Straight Talk on Event Loops. Nach seinem wunderschönen Rant "Node.js is Cancer" geht Ted Dziuba nochmal etwas mehr darauf ein, was mit reinen async-event-Lösungen wie node.js das Problem ist. Als Programmierer eines recht alten Projektes in Python - dem Toolserver for Python - kann ich das ganze durchaus nachvollziehen. Gibt gute Gründe, warum ich in die eventloop integrierte Threads für parallele Verarbeitung bei Bedarf realisiert habe. Dieses "async ist schneller und besser als threads" ist genau so ein Hype-Unfug wie "NoSQL ist schneller und besser als SQL" und anderen Säuen die derzeit so durchs Dorf getrieben werden.

dust ist eine Template-Library für JavaScript, die in Kanso benutzt wird. Von der Funktionalität her sehr ähnlich zu Django Templates, allerdings mit leicht abgewandelter Syntax.

Kanso Framework. Das klingt sehr interessant - ein Framework für die Programmierung von JavaScript CouchApps. Also Anwendungen, die in JavaScript geschrieben sind, und komplett aus einer CouchDB-Installation laufen. Der Server muss einfach nur eine CouchDB Instanz bieten und das wars schon an Voraussetzungen - und da CouchDB von Hause aus Replikation mitbringt, kann man problemlos hochskalieren oder Fehlertoleranz realisieren - einfach einen Cluster aus mehreren CouchDB Instanzen bilden. Genauso interessant sind Replikationen der Produktionsdatenbank auf einen anderen Topf wie z.B. die private Entwicklermaschine oder diverse andere Szenarien die mit CouchDB so machbar sind. Da das ganze auf CommonJS als Sprachbasis aufbaut ist JavaScript auch nicht ganz so schlimm als wenn es roh verwendet würde.

StatsModels: Statistics in Python — statsmodels v0.3.0 documentation. Nicht im Fokus für mich im Moment, aber mit dem Modul kann man Zahlen auf ihr statistisches Modell hin untersuchen.

pandas: powerful Python data analysis toolkit — pandas v0.4.1 documentation. Hatte ich glaube ich noch nicht, aber ist recht interessant für Zahlenfresser und Listenvergleicher: ein recht mächtiges Toolkit zur Analyse von Massendaten, speziell mit Behandlung von fehlenden Daten und Alignment von Daten auf eine gemeinsame Basis. Insgesamt nicht ganz uninteressant für ein Projekt auf der Arbeit, bei dem ich häufiger mal mit größeren Datenmengen aus Fremdquellen zu tun habe.

websites - How do I suppress the address bar in mobile Safari? - Apple - Stack Exchange. Geblogmarkt weil ich einfach nur das ganze mir mal merken will - ist nämlich recht praktisch für Webanwendungen wenn die alberne Adressleiste nicht mehr da ist (jedenfalls wenn man mit Single-Page-Anwendungen arbeitet die eh das meiste auf dem Client machen)

"Algorithm" is Not a Four-Letter Word. Algorithmen und deren Vielfalt und warum Programmierer sich mit ihnen beschäftigen sollten (Stichwort: mentales Bankdrücken) am Beispiel von Algorithmen zur Generierung von Labyrinthen.