Am Rande notiert ...

zeromq/netmq: A 100% native C# implementation of ZeroMQ for .NET war mir vollkommen unbekannt (die C# Version, nicht ZeroMQ), ist aber für .NETies ein wirklich spannendes Projekt. Direkt in .NET ohne externe Libraries oder gar Server kann man damit diverse 1:1, 1:N, N:1, N:M Kommunikationsstrukturen mit diversen Verhaltensweisen (Pub/Sub, Broadcast, Req/Resp, Fifo – halt alles was ZeroMQ kann) aufbauen. Macht einen sehr guten Eindruck (ok, kein Wunder, ist ja schließlich eine Umsetzung des originalen ZeroMQ nach C#, und ZeroMQ war für seine Zwecke ja schon absolut genial). Und ist natürlich interoperabel mit dem originalen ZeroMQ.

Holy Smokes, Per6 is officially out!

Quelle: The Night Larry Wall Unveiled Perl 6 | 10 Zen Monkeys

Schon lange keine Programmiersprachenlinks mehr gepostet: Haskell for Mac ist eine interaktive Programmierumgebung für Haskell auf dem Mac (sagt ja der Name schon). Interessant, da es eine Art Notebook-Interface bietet mit dem man interaktiv Code entwickelt und direkt ausprobiert und die Ergebnisse visualisieren kann. Zum Rumspielen mit Haskell ganz interessant, aber ich weiss nicht, ob das 25 Dollar wert ist – speziell das von Apple erzwungene Sandboxing kann da nämlich schnell nervig werden. Und da es Yosemite voraussetzt, werd ich es eh nicht ausprobieren können.

Why Go’s design is a disservice to intelligent programmers | Nomad Software. Da werden einige der Punkte angesprochen, die mich auch ein bischen an go irritieren. Mittlerweile habe ich das Gefühl, verdammt stark an Nikolaus Wirth (Stichwort: Oberon) erinnert zu werden. Ja, man kann durchaus einfache Sprachen entwerfen, aber dumb-down ist nicht der richtige Ansatz dafür. So sehr mich einige der Konzepte zur Asynchronizität in Go begeistern, so sehr irritiert mich die Basissprache.

xslt workbench. Bitte nicht fragen warum ich sowas brauche. Die Schmerzen sind so schon groß genug.

sharplispers/cormanlisp. Schon lange nix mehr gelispelt. Corman Lisp – seiner Zeit eine der coolsten Implementierungen von Common Lisp auf Windows – ist jetzt Open Source und auf github. Allerdings brauchts wohl erst noch einiges an Überarbeitung, bevor es auf modernen Windows-Versionen wieder einwandfrei funktioniert. Aber ein erster Schritt ist ja jetzt gemacht, mit der Source-Freigabe.

Micro Python – Python for microcontrollers. Ach menno, so viele Boards zum Ausprobieren, so wenig Zeit. Klingt wirklich nett, eine speziell auf Embedded-Systeme ausgelegte Python-Implementierung mit AOT Kompilation und das dann auch noch mit so niedrigen Hardware-Anforderungen ist schon eine spannende Sache.

click – Gerade drüber gestolpert, das sieht endlich mal wirklich wie eine Arbeitserleichterung aus – viele andere Libraries für Kommandozeilenintegration waren so sperrig, dass ich nicht viele Vorteile über den von der Standardlib gelieferten Sachen sehen konnte. Aber das hier wirkt doch schon recht kompakt.

.NET Compiler Platform „Roslyn“ – Documentation. C# und VB.Net Compiler. Direkt von Microsoft. In C#. Und Basic. Unter Apache 2.0 Lizenz. Also ganz ehrlich? Ich finds klasse.

2.0 Series — IPython 2.0.0 documentation. Sehr cool. So langsam kommt das immer näher an die Oberfläche von Mathematica heran. Leider der starke Fokus auf Browser – ich kann verstehen warum, aber so richtig begeistert bin ich davon nicht, mir wäre es lieber, das wäre eine mehr integrierte Lösung in der normalen GUI. HTML als Rendering-Engine ist ja in Ordnung, aber Browser als Benutzeroberfläche leider doch immer noch sehr hakelig im Vergleich zu einer optimierten nativen Umgebung. Aber trotzdem, wirklich cool was da passiert.

Microsoft öffnet .NET-Quellcode. Ok, wäre noch besser wenn es gleich eine Open Source Lizenz gewesen wäre (und mit GPL hätten sie sich sogar selber absichern können), aber hey, auch diese Variante ist nicht uncool – Mitlizensierung von Patenten für die Reference-Sources ist schon mal eine gute Nummer. Und Mono hat ein Stück Sicherheit mehr bekommen.

The Julia Language. Hatte ich das schon? Egal, kann man auch mal wiederholen, vor allem weil es jetzt auch eine kleine kompakte IDE für Julia gibt.

kachayev/fn.py · GitHub. Diverse kleine Tools um in Python mehr funktional zu programmieren. Interessant für mich hauptsächlich die persistenten Datenstrukturen, ich hab diese mit Clojure sehr schätzen gelernt.

TeleHash / JSON + UDP + DHT = Freedom. Über git-annex drauf gestoßen: eine verteilte Messaging-Technik mit interessanten Eigenschaften. Stark P2P ausgerichtet, stark auf Verschlüsselung ausgerichtet und von vornherein als Middleware konzipiert und nicht primär als Mensch-zu-Mensch Protokoll wie XMPP. Definitiv beobachten, was da raus kommt.

Self Mallard 4.5.0 released | Self. Es lebt noch. Ist ja immer noch eines der coolsten Systeme die sich aus Smalltalk ergeben haben – sehr exotisch, sehr anders. Aus einigen Aspekten können Systeme auch heute noch lernen – die Umsetzung der prototypischen Vererbung in die grafische Entwicklungsoberfläche ist schon echt cool und wirkt selbst heute noch modern. Das GUI Framework selber hat ja schon vor geraumer Zeit seinen Weg in Squeak gefunden, aber außerhalb der Squeak+Self-Welt kennt es kaum jemand. Was wirklich schade ist. Und der Compiler ist auch immer noch einer der besseren im Feld der Bytecode-Sprachen. Gerade wenn man mal vergleicht wie JavaScript heute sich darstellt und was Self schon seit ewigen Zeiten kann, da kann man glatt traurig werden.

Hands on Sailfish OS: Intelligenter Baukasten zum Basteln und Portieren – Golem.de. Hmm – nicht wirklich so weit offen wie man gehofft hätte, aber weiter offen als man hätte befürchten können. Klingt auf jeden Fall nach einer guten Hack-Grundlage für Bastelprojekte. Vor allem die Kombination eines „richtigen“ Linux und einer Android-Umgebung für die Apps ist ziemlich  cool, weil dadurch die technische Isolation vermieden wird.

Google Apps Script — Google Developers. Interessant – JavaScript-Scripting für Google Apps wie GMail oder GDocs und so. Sieht gar nicht mal so uncool aus und hat jetzt auch ein Eclipse Plugin um die Scripts offline editieren zu können.

Scala Implicits – Not to be feared. Netter Foliensatz, der erklärt wofür die Scala Implicits alles benutzt werden und warum sie Sinn machen. Da Implicits ein eher oft außerhalb der Scala-Community schlecht verstandenes Feature sind, vielleicht ganz lohnend anzugucken.

lihaoyi/macropy. Aus alten Lisp-Zeiten bin ich immer noch ein Fan von Macros – einfach weil konfigurierbare Programmiersprachen einen deutlich höheren Beschreibungslevel erlauben. Ok, das ganze geht dann oft auf Kosten der Verständlichkeit, weil ein Leser nicht nur die Sprache und die Bibliotheken, sondern jetzt auch noch die Macros kennen muss. Trotzdem, für manche zwecke finde ich Macros immer noch sehr praktisch. Ob ich sie allerdings in Python einbinden wollen würde, wie dieses Projekt es macht, weiss ich noch nicht so genau – der Ansatz über den AST ist aber mindestens interessant.

Zim – a desktop wiki. Da ich ja mal wieder mit Windows arbeite, wäre vielleicht doch mal die Zeit da, entweder mein eigenes Desktop Wiki mal wieder zu portieren (klingt nach Arbeit) oder halt ein anderes zu benutzen, dass ähnliches bietet. Zim sieht dabei ganz ordentlich aus und ist auf dem Desktop durchaus portabel – aber ich müsste dann wohl meine Android-App anpassen. Hmm. Klingt auch nach Arbeit …

FriCAS – an advanced CAS. Habe ich ein bischen aus den Augen verloren – FriCAS ist ehemals Axiom, ein ziemlich weit ausgebautes Mathematik-Paket ala Mathematika, geschrieben in Common Lisp. Gibts für verschiedene Systeme, etwas spröde in der Oberfläche (halt eine Kommandozeile), aber sehr mächtig. Und etwas moderner als vielleicht Maxima (wobei für Maxima gibt es GUI Optionen, keine Ahnung was FriCAS da zu bieten hat). Wie jedes anständige Open Source Projekt ist es natürlich nur der Fork eines Forks – unter Open Axiom gibt es ein weiteres Projekt und unter Axiom wird der ursprüngliche Code weitergeführt. Wobei für mich das seit Sage (und eigentlich sogar noch viel mehr seit Anaconda und IPython Notebooks) alles nicht mehr so hohe Relevanz hat – in der Regel sind meine Anforderungen auf deutlich niedrigerem Niveau und mit den über IPython und Python verfügbaren Libraries schon abgedeckt. Klar ist Mathematica und ähnliches immer noch spannend – aber die Motivation die Pakete zu starten und sich in die doch recht andere Syntax-Welt zu begeben ist eher gering. Python hat halt den good-enough Status schon lange erreicht.

Python Data Analysis Library — pandas: Python Data Analysis Library. Hmm, hatte ich bestimmt schon mal, aber mir ist gerade aufgefallen, dass es in Anaconda drin ist. Und daher sollte ich mich mal ganz dringend damit beschäftigen, da sind so ein paar Datenwüsten die ich mir damit mal zu Gemüte führen könnte.

wiki.dbpedia.org : About. Auch interessant – hier wird die Wikipedia durchforstet und nach strukturierten Informationen ausgewertet. Also sozusagen aus der Wikipedia für Menschen eine Wikipedia für Maschinen gemacht. Dem ganzen vorgepackt ist dann eine Abfragesprache und ein passender Webservice.

Quepy: A Python framework to transform natural language questions to queries.. Cool – man kann englische Fragen reinstecken und das System bildet daraus eine strukturierte Abfrage und liefert dann Antworten aus Freebase oder DBPedia. Quepy ist dabei das Teil, welches aus der natürlichen Sprache die Abfrage formuliert. Sozusagen sowas wie Wolfram Alpha wenn man dabei nur auf die Wissensabfragen guckt.

Tweak Mode for Processing. Damit wird das Sketch interaktiv wärend es ausgeführt wird – in einem Fenster läuft der Code mit Output, im anderen Fenster ist der Code. Mit der Maus an Zahlenkonstanten ziehen und die Werte ändern sich nach oben oder unten und der Output aktualisiert sich automatisch entsprechend. Nette Idee.

You are Missing the Point of Promises. Schon etwas älter, aber eine interessante Aufstellung was Promises sind und sein sollen, wie sie aus der Hölle der Callbacks herausführen und was das eher theoretische Modell dahinter so her gibt. Und wo man es in JavaScript Libraries wiederfindet und in welchen Libraries es eher stiefmütterlich behandelt wird.

part-cw/lambdanative. Interessant – eine Cross-Plattform Programmierumgebung mit Zielen auf Android, iOS, OSX, Linux, Windows und BSD. Basierend auf Gambit-C, einem ziemlich guten (und schon recht lange verfügbaren, also auch „erwachsenen“) Scheme Compiler.

„3 windows builds have been performed on win95. There is an as yetunidentified runtime error running the 2.6.9 images on win7. Moreinformation here will be forthcoming shortly.“ –  [Gcl-devel] GCL 2.6.8 and 2.6.9 are released. Abgesehen davon, dass ich dachte es wäre schon lange tot (ein „paar“ Jahre hat der Release ja gedauert), schon lustig, dass jemand noch heute Builds für Windows unter Windows 95 macht …

Anaconda. Hmm, hatte ich das schon? Keine Ahnung. Es ist eine Python Installation, die gleich mit einem Stapel an wissenschaftlichen Modulen kommt (NumPy, Matplotlib, PyLab und sowas) und auch sonst eine Reihe brauchbarer Module mitliefert. Dazu IPython mit den üblichen Tools – also Notebooks und QTConsole – und noch ein Kommandozeilentool zur Paketverwaltung. Das nette: die Installation geht in einen eigenen Pfad, es wird also nicht unbedingt eine andere Python-Installation tangiert.

Meet RegExpBuilder: Verbal Expressions rich, older cousin – The Changelog. Ich bin ein alter Snobol und Icon Fan – und eine der Eigenschaft beider Sprachen war die ziemlich gut lesbare Subsprache für Textmuster. Das was heute üblicherweise mit dann doch eher kompakt bis kryptischen regulären Ausdrücken gemacht wird. Von daher freut es mich, hier auf ein Projekt zu stoßen, welches die deutlich lesbareren Ausdrucksformen wie sie in Icon üblich waren auf reguläre Ausdrücke kompiliert. Ok, die zielorientierte Ausführung in Snobol und Icon und das darin inherente backtracking fehlt natürlich, von daher ist es nur syntaktisch. Trotzdem nett.