Embedding Python in Objective-C: Part 2. Ein interessantes Projekt, dass Python in Objective-C Projekte einbettet und direkte Verbindungen zwischen Python und Objective-C Code erlaubt über automatisch generierte Bridge-Module. Könnte ich mir auch mal bei Gelegenheit angucken, ich hab da immer noch so ein Spielprojekt, das davon profitieren könnte.
Linkblog - 26.3.2012 - 19.5.2012
jodal/pykka. Eine Actor-Library für Python, baut auf Threads und alternativ auf GEvent auf. Sieht ganz gut aus und könnte für kommunizierende Prozesse recht praktisch sein, wenn das Actor-Modell passt. Eventuell könnte man sowas auch als Basis benutzen um darauf meinen Linda Tuplespace verteilt zu betreiben.
Jython 2.7 alpha1 released!. Wow, das hat zwar ewig gedauert, aber damit sind jetzt die drei größeren alternativen Python Runtimes wenigstens alle auf 2.7 (IronPython, PyPy und jetzt Jython). Wobei ich hoffe, dass Jython 2.7 deutlich an Performance gewonnen hat, denn ansonsten ist es im Vergleich weit abgeschlagen - meine letzten Tests waren eher deprimierend (Faktor 2-3 langsamer als CPython).
cocoa-python - Port of Objective-C runtime to Python using ctypes. Steht eigentlich schon alles im Linktext drin. Interessant, weil der Autor es benutzt um einen Port von Pyglet zu schreiben, der ohne PyOBJC auskommt und damit komplett python-only Sourcecode wäre.
r17 - flexible, scalable, relational data mining language. Sieht ganz interessant aus, im Prinzip sowas wie eine Kreuzung aus AWK und SQL. Das Ergebnis ist nicht wirklich schön, aber wirkt praktisch - speziell weil man auf einfache Weise mehrere Prozessoren nutzen kann, oder sogar mehrere Maschinen (implizite Parallelisierung), und damit auch recht einfach große Datenmengen mit ad-hoc Queries auswerten kann. Dadurch, dass es ein einfaches Format für die Übermittlung von daten an weitere Schritte gibt, kann man es auch leicht auf neue Datenquellen anpassen, ohne dort erst einen langwierigen Exportschritt laufen zu lassen.
The Schemaverse. Und weil wir gerade bei seltsamen Projekten sind: da hat jemand ein MMO programmiert, das komplett innerhalb PostgreSQL läuft. Also pgSQL als Sprache benutzt. Sowas wie ein Multi-User-Schiffeversenken. Nur läuft es halt in einer Datenbank. Und wird über SQL bedient.
sipML5 - The worlds first open source HTML5 client. Äh - jemand hat einen SIP Client in JavaScript geschrieben, der komplett im Browser läuft. Es baut auf WebRTC auf, einem Standard für Realtime-Kommunikation im Web.
Plumbum: Shell Combinators and More — Plumbum: Shell Combinators. Schaut interessant aus und deutlich durchdachter als manche Alternative die ich mir angeguckt habe (und deutlich ausgebauter als shutil+glob).
Exclusive premiere: The full Leica X2 review – Ming Thein | Photographer. Sicherlich wird auch die X2 (besonders zusammen mit dem elektronischen Sucher) nicht auch nur annähernd in der Kategorie "preiswert" laufen, aber irgendwie klingt das schon nach einem wirklich guten Update auf die X1. Und im Vergleich zur meiner Meinung nach komplett absurd überbepreisten M9-M liegt die X2 wenigstens grob im Korridor von "könnte man drüber nachdenken wenn man mal Geld über hat".
Pocket-sized fuel cell charges phones for two weeks - Mobile Phones - CNET - CNET Asia. Wenn das Teil Realität wird, will ich eines haben. Endlich mobiler Strom, der lagerfähig ist und den man dann irgendwo draußen einfach aktivieren kann, wenn man ihn braucht. Dazu dann noch einen über USB angeschlossenen Akkulader für den Kamera-Akku (oder gucken ob man auch direkt in der Kamera über USB laden kann) und fertig ist die Kiste.
Clojure/core — Reducers - A Library and Model for Collection Processing. Warum eine neue Library? Weil die Standardfunktionen zwar interessant und sinnvoll sind, aber man eben manchmal doch eine striktere Implementierung braucht, die z.B. zwischendurch generierte temporäre Collections vermieden werden und eine direkte out-of-the-box Unterstützung für Parallelisierung geliefert wird. Ohne große Handstände und Umstände, nur ein anderer Namespace.
backbone-fundamentals/index.md at master · addyosmani/backbone-fundamentals. Ein freies Buch (das es von O'Reilly auch als totes Holz oder elektronisches Holz geben wird) über backbone.js. Backbone.js liefert eine MVC-angelehnte Struktur für JavaScript Programmierung (wobei man sich fleißig streiten kann, was denn da nun genau der View und der Controller ist und ob es "reines" MVC ist - oder man programmiert einfach und ignoriert den theoretischen Ballast).
PyPy Status Blog: STM update: back to threads?. Die Diskussion und Entwicklung schreitet immer weiter voran - und gerade die Diskussion kommt wieder zurück zum alten Thread-Modell, nur erweitert um eine Funktion zur Definition atomarer Blöcke an Code. Und das ganze so, dass es als Code sogar unter normalen CPython laufen würde (allerdings dann natürlich ohne die Vorteile von STM, denn das gibts da ja nicht, in CPython gibt es weiterhin das GIL) aber trotzdem schon Multicore Architekturen sinnvoll nutzt. Gefällt mir immer besser und ich hoffe, es wird bald im PyPy Main Branch landen.
tuupola/jquery_lazyload. Für die Anzeige großer Mengen von Bildern eventuell interessant, weil man damit das Laden der Bilder so lange verzögern kann, bis der Benutzer tatsächlich auch zu den Bildern hinscrolled. Die Seite wird mit Platzhalterbildern schon vorgebaut und nur die Bilder wandern später über die Leitung. Ich glaube aber Infinite Scroll ist doch die bessere Lösung, da damit nicht nur Bilder, sondern generell Inhalte nachgeschoben werden können - und das arbeitet dann auch problemlos mit Masonry zusammen, so dass diese Inhaltsblöcke dann auch optisch gut verteilt werden können.
dirq 1.1.2 documentation. Hey, sowas hab ich vor kurzem gesucht - eine Queue, die auf dem Dateisystem aufbaut. Der Vorteil: einfachste Persistenz und gutes "Debugging" in dem man einfach im Dateisystem rumprokelt. Der Nachteil ist dann aber oft, dass Queues einige Operationen atomar ausführen müssen - und das kann dann schon etwas hakeliger werden, wenn man es richtig hinbekommen will. Dieses hier ist die Portierung eines schon länger existierenden Perl-Moduls, die Chancen, dass die meisten Kinderkrankheiten raus sind, sind also recht hoch. Das API jedenfalls sieht nett simpel aus. Definitiv mal genauer angucken.
Hotcanvas: Realtime coding. Bin ja ein fan von Processing-ähnlichen Umgebungen, dies hier kommt dem recht nahe, läuft aber als interaktive Umgebung und sieht ganz nett aus. Ok, gibt sicherlich mitlerweile eine ganze Reihe von diesen Dingern, aber trotzdem, ich mag sowas.
Bilderarchiv | rfc1437. Mein Bilderarchiv wurde übrigens am Wochenende überarbeitet und kommt jetzt mit lustigem Javascript-Schnickschnack zum automatischen Kacheln daher. Nicht wirklich weltbewegend, aber interessanter als das vorherige, eher langweilige Format. jQuery Masonry ist der Hauptanteil der Arbeit. Nette kleine Javascript Library. Das interessanteste daran ist warscheinlich die Heuristik in meinem kleinen Plugin, mit dem ich die Bilder in Hoch/Quer/Quadratformate bringe, damit das ganze nicht durch eine Übermacht an Querformaten allzu langweilig wird. Leider bleiben noch immer Lücken im Bilderstrom, da könnte Masonry eigentlich noch gerne etwas intelligenter werden (und z.B. kleine Quadrate hochziehen). Oder ich muss mich nochmal an die Heuristik setzen und dafür sorgen, dass die Chancen für Lücken verringert werden.
ownCloud.org | Your Cloud, Your Data, Your Way!. Das werde ich definitiv weiter beobachten, denn wenn da der OSX Desktop Client da ist und der iOS Client, dann wird das eine ganz deutliche Alternative zu Google Drive, Dropbox oder SkyDrive für mich. Den eigenen Server habe ich schließlich sowieso (klassische Ehschonda-Lösung), die Dropbox würde ich dann wohl nur noch für die Integration diverse iOS Anwendungen benutzen und deren Inhalt in meinen eigenen Server integrieren und so auf meine Desktops bringen. Denn egal wie gut ein Cloud-Anbieter ist (und bisher ist Dropbox da einer der deutlich besseren), ein eigener Server gibt mir im Endeffekt dann doch mehr Vertrauen.
RubyMotion - Ruby for iOS. Da mich MacRuby schon interessiert, klingt das hier auch gut - direkt für iOS programmieren in Ruby. Allerdings gibt es keine freie Version, das schränkt das Ausprobieren dann doch ein bischen ein. Ausserdem ist da nix in einer IDE, das ist Kommandozeile pur. Was zwar ein Vorteil sein kann, aber z.B. für Debugging auch ein echter Nachteil.
Mojolicious - Perl real-time web framework. Du hattest ein Problem, du hast Perl genommen. Jetzt hast du zwei Probleme und einen Haufen scharfkantige Klammern, an denen du dich verletzen kannst. Spaß beiseite: nett zu sehen, dass Perl immer noch nicht nur aktiv, sondern auch modern aktiv ist im Web-Umfeld. Immerhin hat Perl ja mal den Standard in dem Bereich gesetzt.
RavenDB - 2nd generation document database. Geblogmarkt weil ich mir das mal in der nicht zu fernen Zukunft angucken will. Klingt von den Features her recht interessant und ist vielleicht für das eine oder andere Projekt, über das ich zur Zeit nachdenke, brauchbar.
JSIL - .NET to JavaScript compiler. Keine Ahnung, ob ich das schon hatte, aber es ist eines dieser verrückten Projekte die man ruhig zweimal linken kann. Da wird wirklich der .NET IL Code übersetzt - man kann also Programme im Browser laufen lassen, die eigentlich nicht wirklich dafür gedacht waren. Zum Beispiel soll ein Teil von XNA laufen, so dass man Spiele im Browser laufen lassen kann, die eigentlich für die XBox sind.
Amazon.com: Send to Kindle for Mac. Könnte ganz nett sein, um die diversen Online-Dokumentationen einfach auf den Kindle zu "drucken" und dort gemütlich zu lesen. Ausserdem landen sie dann potentiell auch gleich auf dem iPhone für unterwegs ...
the { buckblogs :here }: Maze Generation: Ellers Algorithm. Labyrinthalgorithmen faszinieren mich schon seit meiner Jugend, aber der hier war mir neu. Er generiert perfekte Labyrinthe Zeilenweise, ohne Trackback oder Rekursionen, mit einer Laufzeit linear abhängig von der Größe des Labyrinthes. Ziemlich genial das ganze.
jQuery Masonry. Alternative zu BlocksIt. Auch mal angucken. Schiebt Blöcke sogar etwas aggressiver, ordnet auch die Reihenfolge notfalls um.
BlocksIt.js - Dynamic Grid Layout jQuery Plugin. Drin was dran steht. Klingt ganz interessant, muss ich mir mal angucken.
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.
645 PRO app for iPhone offers access to lossless camera output but not Raw. Klingt ganz interessant, aber nicht so sehr wegen des Pseudo-RAW - da werden nicht wirklich so riesige Unterschiede sein - sondern wegen des User-Interfaces, denn das ist deutlich näher an einer normalen Kamera angelehnt und spuckt auch ein paar mehr Informationen raus. Laut Kommentaren saugt es aber dann doch die Batterie ziemlich fix leer.
ThinkUp: Social Media Insights Platform. Das will ich mir definitiv angucken - ein Tool, das die eigenen sozialen Aktivitäten (naja, so sozial sind die ja manchmal nicht) sammelt über die diversen APIs und zusammenführt. Und zwar in einer selbst gehosteten Datenbank. Unterstützt Twitter, Facebook und Google+ und wertet die Datensammlung nach verschiedenen Kriterien aus. Und mit Social Timeline gibt es dann ein Tool zur Darstellung als Timeline, die man ins eigene Blog einbauen könnte. Das könnte sogar eine deutlich angenehmere Variante sein, als alle Posts aus den sozialen Netzen in das eigene Blog zu importieren.
Google+ Importer for WordPress » Sutherland Boswell. Überlege gerade, ob ich das nicht vielleicht mal einbauen will - dadurch werden automatisch die öffentlichen Google+ Postings importiert. Müsste ich dann zwar warscheinlich etwas anpassen, um Asides aus den Postings zu machen, aber das sollte nicht so kompliziert sein. Vielleicht kann es das Tool ja auch schon direkt. Die Frage ist nur, ob es viel Sinn macht, die Posts von Google+ rüberzuholen - speziell bei den Bilderposts hole ich die ja sowieso später und spiegel die in meinen Mediadaten. Aber die Text-only Posts würden dann auch hier landen, was vielleicht ganz sinnvoll sein könnte. Muss ich wohl noch ein paar mal drüber schlafen.
Mozilla Archive Format, with MHT and Faithful Save :: Add-ons für Firefox. Heute gefragt worden nach sowas, mein Stand war dann etwas älter, daher nochmal gegoogelt und das hier scheint die derzeit interessanteste Erweiterung zu sein, um komplette Seiten zu speichern (incl. Bildern und Styles und JS). Praktisch z.B. wenn man für Präsentationen sich einen Dummy zusammenbauen will.
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.
Parlament: Fraktionen wollen Rederecht im Bundestag beschneiden. Wann wird das Pack endlich vom Verfassungsschutz überwacht? Denn das ist ein erstklassiger Angriff auf das Grundgesetz. Da gibt es nämlich keine Fraktionen, keinen Fraktionszwang und keine Rederechtbeschränkung für Abgeordnete mit eigener Meinung - im Grundgesetz gibt es nur freie Abgeordnete. Und da wundern sich die Prolethiker in Berlin noch über Politikverdrossenheit. Ein Hoch auf Lammert, der wenigstens in diesem Zirkus der Dummbräsigkeit versucht sich dagegen zu stemmen.
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.
abique/tmfs. Mal geblogmarkt, könnte hilfreich werden irgendwann - ein user-space Filesystem für Time Machine Backups unter Linux.
Offener Brief an die Contentindustrie. Der Schockwellenreiter empfiehlt es und ich kann nur zustimmen: lesen lohnt sich. Das ist mal ein wirklich runder Rant gegen diese erbärmlichen "Contentproduzenten", die sich in offenen Briefen zu herabwürdigenden Tiraden gegen und Lügen über die Netzgemeinde aufstellen lassen.
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.
Kenko extensions tube with full electronic control!. Woopdidoo. Ok, Extension-Tubes sind nicht das Optimum an Performance, aber trotzdem durchaus interessant, da sie einen recht einfachen und in der Regel kostengünstigen Weg zu besseren Makrofähigkeiten darstellen.
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.