BlocksIt.js - Dynamic Grid Layout jQuery Plugin. Drin was dran steht. Klingt ganz interessant, muss ich mir mal angucken.
programmierung - 8.1.2012 - 25.4.2012
Kronuz/SublimeCodeIntel. CodeIndel ist eine Portierung der Komodo-Code-Intelligence nach SublimeText2. Damit kann man dann ST2 schon fast als IDE bezeichnen.
Cubism.js. So viele Projekte, so wenig Zeit. Aber mal geblogmarkt, wenn ich mal in der nächsten Zukunft mit Zeitreihenvisualisierung zu tun habe, denn dafür sieht das richtig gut aus.
jlongster/dcpu-lisp. Warum das cool ist? Nun ja, Notch hat ein neues Spiel in der Mache - sowas wie Elite mit integriertem Hacken. Und das Hacken passiert auf einer 16bit CPU die an einen 6502 angelehnt ist. Und jetzt bauen alle möglichen Leute Code für diese CPU. Unter anderem eben hier einen Lisp-Compiler.
Subrepository - Mercurial. Schon peinlich, was man so immer mal wieder entdeckt und feststellt, dass man es eigentlich schon lange nutzen sollte, aber nicht macht. Besonders der Tipp mit dem "shallow main repository" klingt gut, das könnte einige der Organisationen meiner Projekte vereinfachen. Bisher habe ich Subrepositories eben genau wegen der festen Verbindung des großen Hauptprojektes mit den Library-Projekten verworfen, da ich für verschiedene Umgebungen komplett verschiedene external Branches (sprich: Repositories) benutze und ich z.B. eben nicht meine Abhängigkeiten auf die Wartungsumgebung in die Produktion pushen möchte. Mit einem shallow Main Repository pro Umgebung hingegen könnte ich sauber trennen zwischen den Beziehungen und trotzdem an zentraler Stelle dokumentieren, wie sich die Abhängigkeiten der verschiedenen Repositories darstellen. Und ja, das ganze hier ist jetzt nur eine Notiz für mich selber, wer es nicht versteht, einfach ignorieren, kommen bestimmt bald wieder bunte Bilder.
pycounters. Muss ich mir mal angucken, damit kann man recht einfach Counter in ein Projekt integrieren, die Daten über z.B. Funktionsaufrufe oder ähnliches liefern - im Prinzip sowas wie die Windows Performancecounter, nur eben für Python-Projekte.
virtualenv-clone 0.2.2 : Python Package Index. Noch nicht ausprobiert, aber nach Beschreibung kopiert es virtualenv Environments und repariert Import-Pfade, Egg-Files und .pth Inhalte sowie Scripte. Und soll vollständiger arbeiten als die relocatable virtualenvs.
Introducing Pivot.js. Hmm, definitiv mal angucken, Pivot sieht ganz nett aus, simples API und interessante Möglichkeiten. Ich hab da so ein Projekt auf der Arbeit, das könnte einige Reporting-Features gut gebrauchen. Und Offloading auf den Client ist manchmal eine durchaus gute Idee.
the unbearable finality of pixel space. Das dort verlinkte Archivierungstool für Flickr hab ich mal ausprobiert und es läuft richtig gut. Da verzeihe ich auch mal das PHP. Ich hab zwar die Flickr-Bilder auch immer mal wieder hier ins Blog geschoben (die "Neulich auf Flickr" Posts), aber der Vorteil dieses Backup-Scriptes ist, dass die Struktur und sogar die Flickr Zugriffsrechte erhalten bleiben. Leider werden derzeit Alben und Sets noch nicht mit gesichert, sondern nur der Photostream. Und das Layout ist sehr spartanisch. Aber vielleicht wäre das ein Kandidat um mal mit Bootstrap 2.0 zu spielen und das ganze mal etwas aufzupeppen.
flatiron/plates. Eine interessante JavaScript Templating Engine, die einen etwas anderen Ansatz wählt als viele andere - es gibt keine eigene Template-Sprache, sondern nur HTML und JavaScript. Jegliche Logik ist im JavaScript und jegliche Struktur in HTML und beide sind recht stark getrennt. Anstelle einer Template-Sprache gibt es Funktionen zur genauen Spezifikation welche Elemente im HTML wie verändert werden sollen.
RQ: Documentation. Hmm, python-job-queue auf Redis-Basis mit einem recht simplen Interface. Könnte eine interessante Alternative zu Celery sein.
iphone - What happens to JavaScript code after app is compiled using Titanium Mobile - Stack Overflow. Interessierte mich auch, die Frage, daher mal hier geblogmarked. Ganz interessant, was da passiert, geht deutlich weiter als z.B. was PhoneGap macht.
Titanium Desktop – Node.js Prototype « Appcelerator Developer Center. Titanium steht ja sowieso auf der Liste zu testender Sachen drauf, weil es neben PhoneGap ja einer der Wege ist, wie man JS+HTML Code zu Apps und Desktop-Anwendungen machen kann. Und hier zeigt einer der Developer, wie man einen node-Server in den Desktop integrieren kann. Wäre auch noch mal recht interessant, wobei das wohl nicht unbedingt dann auch mit iOS und Android läuft (denn dort ist man ja zwingend auf die vom System zur Verfügung gestellte JS Engine im Browser-Widget eingeschränkt, wenn man dynamischen Code von außen laden will).
Embedding and running Node.js within a Firefox XUL extension. Schon beeindruckend, was man mit Firefox und dessen Infrastruktur so alles machen kann. Theoretisch müsste man das auch so umbauen können, dass diese Erweiterung nur in einem single-site-browser läuft, der dann direkt die Homepage des eingebetteten Servers öffnet und so sich Desktop-Anwendungen in JavaScript bauen können, die komplett autonom sind (und wer sich drüber wundert, warum ich diese ganzen JS-auf-Desktop Sachen sammel: damit könnte man mit Hilfe von Phonegap und etwas Glue dann nicht nur Apps für iOS und Android bauen, sondern mit gleichem Code auch Desktop-Anwendungen).
NodObjC. Keine Ahnung ob ich das wirklich will, aber mit dieser Library kann man ObjC Frameworks mit JavaScript bridgen. Interessant könnte das zum Beispiel im Context von PhoneGap werden, wenn man Zugriffe auf iOS native APIs machen muss, die noch nicht von PhoneGap zur Verfügung gestellt werden (allerdings braucht es Node.js als Basis, keine Ahnung ob das auch schon unter iOS läuft).
topcube. Sollte ich mir auch mal genauer angucken - eine Desktop-App, welche einen eingebetteten Webserver (node.js) und Browser (GTKWebKit) beinhaltet. Damit kann man dann Desktop-Anwendungen auf Basis von JavaScript und Node.js bauen - z.B. auch Amber Smalltalk in eine kompakte Desktopanwendung umbauen. Leider ist die OSX Unterstützung noch etwas mager.
haypo/pysandbox. Mal wieder was zum Angucken: eine Sandkiste für Pythonscripte. Laut Projektbeschreibung nicht unbedingt eine Sicherheitslösung sondern eher nur ein einfacher Schutz für den Python Prozess. Somit wäre es zumindestens als einfache Absicherung eines Hauptprozesses gegen Fehler in Erweiterungsscripten nutzbar.
BOO - Getting Started. Nach langer Zeit mal wieder Boo angeguckt und mir gefällt was dort passiert. Immer noch sehr stark an Python angelehnt was die Syntax angeht, bei der Semantik aber deutlich davon abweichend - zum Beispiel echte Makros in verschiedenen Variationen, so dass es wirklich eine erweiterte Syntax gibt. Oder auch das nur optional verfügbare Ducktyping - eine Variante, die mir besonders gut gefällt, denn Boo kombiniert statisches Typing, Type-Inference und Duck Typing in einer Weise, die wirklich für den Programmierer alle Optionen offen hält. Dazu dann die gute Integration mit .Net und C# Assemblies. Ich glaube, ich muss da mal etwas mehr mit herumspielen, denn gerade als Prototyping Sprache könnte das recht praktisch sein - und im Moment tendiere ich für ein paar Sachen eh mehr zu Mono als Runtime, primär wegen der dort verfügbaren JIT Implementationen (und mit Mono ja auch AOT Compilation, wo es benötigt wird).
Clojure-Py. Noch kann ich nicht so genau sagen was ich davon halte, aber jemand baut Clojure (die Sprache) mit Python und PyPy als Zielplattform. Grundsätzlich sicherlich eine interessante Idee, denn die LLVM-basierte JIT Implementierung von PyPy kann ja auch durchaus andere Sachen kompilieren. Und da ich sowohl ein Python als auch ein Lisa Fan bin, muss sowas ja meine Neugierde wecken. Der Sprachumfang von Clojure ist noch nicht komplett abgebildet, aber das kann ja noch kommen.
Create a package for IOS — Kivy 1.1.2-dev documentation. Kivy - ein GUI Framework für Python - bietet jetzt auch einen Weg die Anwendung für iOS zu packen und zum Beispiel auf einem iPad laufen zu lassen. Keine Ahnung ob das dann auch wirklich im AppStore aktzeptiert wird, die Programmierer haben aber schon ein Programm auf der Basis rein bekommen, die Chancen stehen also gut.
wbond/sublime_package_control. Das ist allerdings sehr interessant - so langsam scheint sich Ecosystem rund um Sublime Text 2 zu bauen, ähnlich wie bei vim oder TextMate. Macht die Integration von Erweiterungen auf Dauer einfacher.
JulianEberius/SublimeRope. Sehr interessant - eine Integration von Python Rope (eine Refactoring-Library für Python Code, die in Python geschrieben ist) in Sublime Text 2. Damit wird gibt es dann Refactorings direkt in ST2 - eines der Features, die ich in PyCharm lieben gelernt habe (speziell syntaktisch korrektes Rename und extract method) und die in ST2 bisher fehlten. Sollte ich mir vielleicht mal angucken, wobei ich bei Projekten in denen ich Refactoring brauche dann doch eher gleich zu PyCharm greife, einfach weil noch viele andere Sachen dazu kommen (z.B. der integrierte Debugger). Irgendwo tendiere ich in letzter Zeit doch eher dazu zwischen Editoren für einfache Dinge und IDEs für große Projekte zu wechseln, auch wenn man dann verschiedene Bedienungen lernen muss - die Einsatzzwecke sind einfach zu verschieden um das mit nur einem Tool zu erledigen.
HyperCard, Visual Basic and the Importance of the Novice Developer. Interessanter Artikel, der HyperCard in Relation zu Handheld Developer stellt. Und nachdem ich mit Handheld Developer rumgespielt habe, würde ich sagen die liegen garnicht mal so völlig falsch - es ist eine nette visuelle Umgebung zur Erstellung von iOS Webanwendungen mit integriertem Hosting mit dem man recht fix einen Prototypen zusammenbaut und sogar Serverside-Scripting in JavaScript bekommt. Ok, es ist nicht ganz billig, aber es gibt ja eine Testversion um zu schauen ob man daran Spaß haben könnte. Die Anwendungen sind tatsächlich auch garnicht so auf iOS fixiert, denn im Prinzip ist es einfach HTML5 und JavaScript - und sollte also auch mit Androiden funktionieren (probiert habe ich das noch nicht).
mtravers/heroku-buildpack-cl. Und noch so ein Lisp-Link - hier hat sich jemand auf Herokus buildpack-capable stack gestützt und für Clozure CL ein Buildpack aufgebaut, so dass man darüber auch Common Lisp in die cloud stellen kann. Wobei das dann weniger Ähnlichkeit mit Google App Engine hat, sondern wohl eher mit sowas ähnlichem wie Amazon EC2.
Heroku | Clojure on Heroku. Und noch mehr Lisp. Mit Clojure kann man jetzt auch auf Herok, der Cloud Plattform, arbeiten. Damit eventuell eine Alternative zu zum Beispiel Google App Engine (auf deren Java-Inkarnation läuft Clojure ja auch).
Ganz tief drinnen bin ich ja immer noch ein Lisp-Fan. Deshalb ist der ecl-iphone-builder von Terje Norderhaug für mich sehr interessant - damit kann man eine Version von Embeddable Common Lisp für das iPhone oder iPad compilieren und dann über XCode auf ein iOS Gerät bringen, dort einen Swank-Server starten und dann remote connecten - und dann mit Lisp auf dem iPhone rumspielen oder programmieren. Ok, die Anbindung an die OSX APIs ist noch ein bischen spröde.
Room 101: The Miracle of become:. Eine der Ecken, in denen Smalltalk deutlich von allen anderen Sprachen abweicht mit denen ich bisher so zu tun hatte (ausser Common Lisp, aber das ist was anderes, da geht ja eh alles), ist die become: Methode, mit denen zwei Objekte im laufenden System ihre Identität tauschen - so dass nach dem Aufruf alle Referenzen auf a nach einem a become: b dann auf b verweisen und umgekehrt. Hier wird erklärt, was das dann in der Praxis bedeutet.
[[[New App]] Impressive: AIDE Is An IDE That Lets You Write And Compile Android Apps On Your Android Device, Begs For The Yo Dawg Treatment](http://www.androidpolice.com/2012/03/06/android-gets-a-native-ide-lets-you-write-android-apps-on-your-android-tablet-is-begging-for-the-yo-dawg-treatment/). Android-Entwicklung auf Android-Geräten (vorzugsweise Tablets). Das ist ja sowas von meta.
Vagrant - Virtualized development for the masses.. Schaut gut aus, man kann sich per Kommandozeile mal eben eine Entwicklungsumgebung auf Basis von BSD oder Linux aufbauen - und dann damit arbeiten, ohne dass man haufenweise Sachen manuell installiert. Im Prinzip Appliance-Templates, die per Kommandozeilentool installierbar sind. Und als Host werden eine ganze Reihe von Systemen (auch OSX zum Beispiel) angeboten. Also zum Beispiel auch ein sehr einfacher Weg sich mal eben einen LAMP Stack oder ähnliches unter OSX einzurichten.
PySide for Android thp.io. Das klingt doch schon mal sehr interessant - damit hätte ich dann eine mir deutlich genehmere Programmiersprache zur Verfügung, um Android-Programme zu bauen. Wobei die Startzeit von in Python geschriebenen Activities warscheinlich alleine schon auf Grund der Ladezeiten des Python-Stacks und der Qt Libraries ein bischen heftiger sein könnten. Aber um mal einfach ein paar kleine Tools zum Eigengebrauch zu bauen sollte das egal sein.
pyprocessing - A Processing-like environment for doing graphics with Python - Google Project Hosting. Processing, für Python. Steht abet ja schon I'm Titel.
Temporal Keys, Part 2 | Experimental Thoughts. Man lernt doch immer wieder was neues über PostgreSQL - diesmal PERIOD, ein Datentyp, der Zeitspannen umfasst, und EXCLUDES, eine weitere Form von Constraint auf Tabellen, mit denen sich zusammen mit PERIOD dann Überlappungen von Zeiträumen schon im Datendesign vermeiden lassen. Unter Dynamics AX gibt es sowas in Form der Date Effectivity, wobei das dann noch etwas weiter geht, weil auch automatisches Anlegen neuer Bereiche, Gap-Freiheit von Zeitleisten etc. abgebildet werden, wärend das hier nur die Grundlagen für überlappungsfreie Datensätze sind. Andererseits lässt sich das ja auch wesentlich breiter nutzen, da man beliebige EXCLUDES-Constraints formulieren kann.
ResponsiveSlides.js · Responsive jQuery slideshow. Bin ja Lightbox-Fan, aber diese kleine Library gefällt mir so auf den ersten Blick auch gut - sie ist simpel und einfach einzusetzen und macht nicht tausend Sachen auf einmal, sondern zeigt einfach nur Bilder in einer Slideshow. Speziell zur Animation von Headergrafiken zum Beispiel könnte das ganz interessant sein.
The Julia Manual. Hmm, noch nicht so sicher, was ich von dieser Sprache halten soll, aber interessant klingst halt schon - eine Art Matlab, aber auf LLVM aufbauend und sprachlich deutlich renoviert, mit einigen interessanten Ideen (z.B. werden Julia-Ausdrücke intern in einer Julia-eigenen Datenstruktur gespeichert, so dass man echte Makros realisieren kann).
Mac Developer Tips » How to Uninstall Xcode. Gibt auch einen offiziellen Weg, wie man XCode los wird. Nur mal so verlinkt, denn leider kann XCode zwar dynamisch nachladen aus dem Netz was man braucht, aber nicht wieder loswerden - dafür darf man das XCode-Zeug löschen und dann neu (kleiner) installieren. Alleine die iOS Klamotten brauchen nämlich 6G, da kann man richtig was sparen wenn man nicht vor hat das iPhone zu programmieren.
Xcode, GCC, and Homebrew. Schaut gut aus - Apple liefert ein bare-bones GCC Paket mit allen Frameworks, damit braucht man nicht mehr das Monsterinstaller-Teil aus dem AppStore laden, sondern kann sich mit einem 170 MB Paket begnügen und trotzdem zum Beispiel Homebrew benutzen um Open Source OSX Programme zu kompilieren (jedenfalls solange sie keine explizite XCode-Features benutzen). Gerade wenn das eigene Programmieren eh in anderen IDEs statt findet und mit anderen Sprachen ist es ganz nett auf die 8 GB die ein installierter XCode belegt verzichten zu können. Ich überlege stark, ob ich meinem Air nicht auch diese Schlankheitskur angedeihen lassen sollte.
stochastic-technologies/goatfish - GitHub. Schaut interessant aus, ein kleines Python-Modul welches SQLite als Persistenzlayer für beliebige Objekte benutzt. Nicht auf dem Level eines ORM, sondern eher auf dem Level eines komplexeren Key-Value-Stores. Ganz interessant für die üblichen kleinen Hacks bei denen man mal schnell Objekt-Persistenz braucht, aber aufgrund der simplen Strukturen eigentlich keinen Sinn in einer ausgebauten Datenmodellierung sieht - oder wenn man während des Prototypings noch gar nicht weiss, wie die Strukturen aussehen werden.
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).