Am Rande notiert ...

Weil ich sowas nicht zum ersten Mal suche und es recht praktisch aussieht: Sorting elements with jQuery – James Padolsey.

mobl ist da schon eher mein Ding, eine Programmiersprache, die nach HTML5+JavaScript compiliert und mit IDE-Unterstützung in Eclipse kommt. Da HTML5 auch mit Clientside-Databases kommt, und über Manifest-Dateien die ganze Anwendung auf dem Device gecached werden kann, kann man so auch gut offline-taugliche Anwendungen bauen. Und nebenbei ist das ganze auch für Androiden brauchbar.

Optimizing Crajsh – Part 1 « #ponce’s blog. Viele Informationen (auch den verlinkten zweiten Teil lesen!) über effiziente Nutzung von JavaScript im Browser für die Entwicklung von Spielen.

don’t code today what you can’t debug tomorrow: PhantomJS: minimalistic headless WebKit-based JavaScript-driven tool. Way cool – muss ich mir unbedingt mal angucken, könnte für viele Spielereien interessant sein.

linq.js – LINQ for JavaScript. Ganz interessanter Hack um LINQ in JavaScript zu bieten.

Harmony Of My Dreams | Brendan Eich. Interessanter Post von Mr. JavaScript. Ich hoffe, er kann seine Ideen durchsetzen und wir sehen sie in einem zukünftigen JavaScript, denn das würde die Sprache meiner Meinung nach in den betroffenen Fällen deutlich angenehmer zu schreiben machen.

Lively Kernel – Lively. Sowas ähnliches wie ein Smalltalk System, aber es läuft im Browser, lebt in Webseiten und benutzt JavaScript als Sprache. Gibt typische Smalltalk Werkzeuge wie die Klassenbrowser und Inspektoren. Und ein Test auf dem iPad war nicht rasend schnell, aber benutzer. Von Dan Ingall, dem Smalltalk-Implementor neben Alan Kay.

qb.js: An implementation of QBASIC in Javascript (part 1) – Steve Hanov’s Programming Blog. Blasts from the past.

kriyative/clojurejs – GitHub sollte ich mir mal angucken, ist eine weitere JS-Integration, hier für einen Subset von Clojure, der automatisch nach Clientside JavaScript übersetzt wird. Und der hier unterstützt rudimentär auch jQuery.

Underscore.js. Ca. 60 Funktionen, die das Programmieren mit JavaScript funktionaler und einfacher machen. Mal geblogmarkt, weil sowas immer wieder praktisch ist und es einfach blöd ist, die entsprechenden Funktionen jedesmal selber wieder zu schreiben.

Modernizr könnte praktisch werden, wenn man auf neuere HTML5 Sachen zugreifen will, aber nicht immer nur die neusten Browser antrifft (im Prinzip eine Browser-Weiche, die jemand anderes einem schon programmiert hat und auf die man mittels CSS Rules von Stylesheets oder jQuery Code zugreifen kann).

emscripten – Project Hosting on Google Code. Und das ist das Tool, mit dem Python in den Browser/Server gebracht wurde. Es wandelt LLVM Bitcode nach JavaScript um und ermöglicht eine Reihe von interessanten Spielereien.

Oni Labs: Apollo. Interessante JavaScript-Runtime für Browser die StratifiedJS nach JavaScript übersetzt und damit erlaubt asynchronen Code weitestgehend so zu schreiben wie man synchronen Code schreiben würde. Gerade mit Ajax kann das sehr praktisch sein, weil der eigentliche Algorithmus nicht mehr in den vielen Callbacks verbuddelt wird.

Jquery Snowfall Plugin 1.4 | Somethinghitme. Ich glaub mich knutscht ein Schneemann. Und wer nicht selber hacken will, kann auch das WordPress Snow Storm plugin benutzen.

mrdoob/three.js – GitHub. 3D Engine in JavaScript. Eigentlich hab ich keine echte Anwendung derzeit für sowas, aber für Visualisierungen könnte das mal ganz praktisch sein. Und nunja, es ist einfach cool, allein das rechtfertigt ja schon ein Blogmark.

Namespacing in JavaScript. Alles was man dazu immer schon wissen wollte, aber nicht zu fragen gewagt hat. Oder auch: warum syntaktischer Support für Namespaces überbewertet ist und plain old objects reichen.

Chromium Blog: A New Crankshaft for V8. Und damit wird JavaScript noch ne Runde schneller. V8 ist auch die Basis für Node.Js, womit es diese Performanceverbesserung in Bälde wohl auch für den Server gibt.

chrisdickinson’s wilson. Einen noch vor dem Mittagessen, denn das Framework orientiert sich stark an Django, und da ich ja Django-Fan bin, ist das sicherlich einen eigenen Link wert.

Modules – node. Viele Module für Node.js, mehr als ich auf die Schnelle durchgucken kann (oder will), also erstmal nur als for-future-perusal weggeblogmarkt.

persistence.js: An Asynchronous Javascript ORM for HTML5/Gears. Weil man ja dann doch immer mal Daten speichern will, hier ein Link auf eine Client-Side ORM Lib für JavaScript. Schaut ganz ok aus und könnte vielleicht auch für die Serverseite benutzt werden. (hab noch einen anderen Link dafür gefunden, der explizit Node.js mit  MySQL  unterstützt).

Express – node web framework. Gut, wenn man mit Node.js einfach mal schnell kleine Webservices bauen will. Ich finde das passt gerade gut zu Node.js Installationen und jQuery auf der Client-Seite. Im Moment drängelt sich JavaScript bei mir in viele Nischen, in denen vorher Python beheimatet war. Nicht zuletzt weil JavaScript tatsächlich eine gar nicht mal so üble Sprache ist.

Socket.IO ist eine kleine JavaScript Library, die Socket-Kommunikation vom Browser unterstützt und dabei verschiedenste Techniken anwenden kann und die beste verfügbare automatisch auswählt. Dadurch also auch über verschiedene Browser und Browsergenerationen funktioniert.

FrontPage – Conkeror. Mal weggeblogmarkt als Kuriosum und weil mich solche Projekte einfach faszinieren – ein Browser in JavaScript mit einer an Emacs angelehnten Architektur (nur eben JavaScript statt ELisp).

Higher Order Javascript liefert viele Denkansätze über JavaScript Programmierung (und CoffeeScript) und wie man funktionale Programmierung sinnvoll in JavaScript nutzen kann. Schließlich ist JavaScript eine durchaus mächtige Sprache mit interessanten Abstraktionen, die man ruhig mal nutzen kann.

Backbone.js ist ein interessantes Projekt, welches eine echte Backbone-Struktur für komplexere JavaScript Projekte liefert. Es implementiert Model/View/Controller Struktur für JavaScript und liefert eine Reihe von Collection-Klassen mit entsprechenden APIs mit. Was es nicht liefert, ist ein dicker Stapel UI-Kram oder die 1001ste Implementierung von DOM Navigation oder ähnliches – es sollte also gut zusammen mit Sachen wie jQuery harmonieren, denn es liefert eigentlich nur die Grundstruktur auf der man aufbauen kann, wenn man nicht mehr alles im DOM speichern will. Es gibt allerdings schon ein paar Überlappungen, zum Beispiel bei Events – die werden ja auch von jQuery zur Verfügung gestellt, allerdings sind sie hier nicht an DOM-Knoten gebunden, sondern an beliebige Objekte.

Datejs – An open-source JavaScript Date Library – macht einen guten Eindruck, so für die diversen Formatparsereien und Kalenderbezogenen Geschichten.

How I build-in Tumblr in my Drupal install ist schon sehr nah an dem dran was ich mit Tumblr auf meiner Homepage machen will. Jetzt muss ich nur noch ein minimales Widget schreiben und den Code da reinfummeln und statt auf die regulären Postings nur auf die Fotos gehen. und ich hab wieder Tumblr-Fotos auf der Homepage.

Update: wer rechts guckt kann die Tumblr Fotos wieder sehen. Also auf der Homepage. Klappt ganz gut und frisst keine Zeit mehr. Irgendwann pack ich das Plugin das ich da gebaut habe mal zusammen, im Moment ist es noch etwas roh.

hyphenator könnte ich mir mal angucken, denn dann läuft die Silbentrennung einfach mit JavaScript auf dem Browser. Ist ja sowieso nur interessant für die Webseiten selber, Feed-Reader müssen eh selber rendern.

Update: jau, sieht gut aus. Jetzt kann ich mir meine Homepage wieder angucken, ohne Pickel zu bekommen, und die Integration war mit dem custom package builder von denen sehr simpel – ein paar Checkboxen durchgehen, eine optimierte Download-Version der Library bauen und diese im Head des Blogs einbinden. Als Klasse hab ich einfach entry-content genommen, dadurch werden alle Beiträge (und nur die) mit Silbentrennung versorgt. Und da Client-seitig, betrifft es weder den Feed noch irgendwelche anderen internen Wege.

Processing.js v1.0 Released und es ist immer noch ein echt nettes Spielzeug. Jetzt ist es von den Features auch fast gleichauf mit dem großen Processing.

JQTreeTable benutzt zwar nicht DataTables, aber ist trotzdem ganz interessant, denn es liefert eine Finder-ähnlichen Tabellendarstellung für hierarchische Daten.