Ich mag cheat sheets aka Spickzettel. Ich selbst hab immer einen für Prototype und YUI an der Wand hinter dem Monitor. Manchmal weiss man nicht mehr genau wie die Funktion oder Eigenschaft XY heisst. Man kann natürlich dann kurz in Google nachschlagen, aber viel einfacher ist eine Liste mit allen wichtigen Dingen zur Hand zu haben.

Scott Klarr hat einen Blogeintrag zusammengestellt wo so ziemlich alle wichtigen cheat sheets rund um PHP zum Download bereit stehen.

Mit dabei auch spezielle für Wordpress, Smarty, CakePHP und Drupal.

http://www.scottklarr.com/topic/100/php-cheat-sheets/

Thanks Scott!

Interessant sind auch seine weiteren Sammlungen für CSS, MySQL und XML/XSLT.

Justin Palmer hat ein Snippet für Prototype gepostet welches das Date Object um strftime() erweitert.

JAVASCRIPT:
  1. Object.extend(Date.prototype, {
  2.   strftime: function(format) {
  3.     var day = this.getDay(), month = this.getMonth();
  4.     var hours = this.getHours(), minutes = this.getMinutes();
  5.     function pad(num) { return num.toPaddedString(2); };
  6.  
  7.     return format.gsub(/\%([aAbBcdHImMpSwyY])/, function(part) {
  8.       switch(part[1]) {
  9.         case 'a': return $w("Sun Mon Tue Wed Thu Fri Sat")[day]; break;
  10.         case 'A': return $w("Sunday Monday Tuesday Wednesday Thursday Friday Saturday")[day]; break;
  11.         case 'b': return $w("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec")[month]; break;
  12.         case 'B': return $w("January February March April May June July August September October November December")[month]; break;
  13.         case 'c': return this.toString(); break;
  14.         case 'd': return pad(this.getDate()); break;
  15.         case 'H': return pad(hours); break;
  16.         case 'I': return pad((hours + 12) % 12); break;
  17.         case 'm': return pad(month + 1); break;
  18.         case 'M': return pad(minutes); break;
  19.         case 'p': return hours> 12 ? 'PM' : 'AM'; break;
  20.         case 'S': return pad(this.getSeconds()); break;
  21.         case 'w': return day; break;
  22.         case 'y': return pad(this.getFullYear() % 100); break;
  23.         case 'Y': return this.getFullYear().toString(); break;
  24.       }
  25.     }.bind(this));
  26.   }
  27. });

[via Justin Palmer]

Schön gelöst. Weitere ähnliche Schnippsel von ihm gibt es im GitHub.

Nur zur Erinnerung: Auf die neuste Wordpress Version 2.3.3 aktualisieren!

Wenn ihr grad keine Lust habt die gesamte Installation zu aktualisieren, dann tauscht wenigstens die xmlrpc.php aus.

Diese ist mit das beliebteste Ziel.

So wie es aussieht braucht Firefox 3 noch eine Beta bevor es in die Endphase geht.

One more beta will be necessary before Mozilla starts building Firefox release candidates.

As Mozilla began the final push on Firefox 3.0 Beta 3 this week, it also announced that at least one more beta will be necessary before it starts building release candidates.

[via Macworld.co.uk]

Ich habe auf meinem MacBook die Version 3.0 Beta 2 laufen und bin sehr zufrieden mit den Neuerungen. Es ist nicht zu viel, aber auch nicht zu wenig.

Leider schalten sich bei der Verwendung von FF3 jedoch bisher noch alle meine FF2 Erweiterungen einfach ab, und können auch nicht aktualisiert werden.

Ich nehme mal an dass wir uns noch locker bis hin zum März / April gedulden müssen.

Bleibt also nur weiterhin nur abwarten und Tee trinken.

Es wird einfach ein wenig die normale Luft transformiert um somit beliebige Bilder und Videos im freien Raum darzustellen. Wenn man mit der Hand durch das Bild geht, spürt man fast überhaupt nichts. Es ist allerdings nicht wirklich 3D, wirkt aber aus der Nähe sehr plastisch. Etwas unausgereift für den Heimbereich, aber es ist schön zu wissen dass wir vielleicht bald überall Hologramme als Werbebotschafter antreffen könnten, oder vielleicht solche in unseren Wohnzimmer zur Unterhaltung beitragen.

Das Display ist käuflich in 2 Varianten. Die günstigere liefert das Bild wie im Video zu sehen. Die zweite erlaubt die Steuerung der Bilder mit dem Finger - mitten in der Luft. Achja ... der Spass kostet rund 20.000 Dollar und mehr :)

Ich hab mich mal ein wenig mit Adobe AIR befasst. Die Beta soll ja auch den Webentwicklern mit HTML/JS Hintergrund entgegenkommen. Ich habe mich also ans Werk gemacht und musste feststellen das dies wirklich noch zu sehr eine Beta ist.

Es ist möglich Prototype und sonstiges Javascript zu verwenden und auch CSS Frameworks with YUI Fonts-Reset-Grids einzusetzen. Also wirklich ganz normales HTML, mit und ohne Windows Fenster drumherum. Damit hat man schon mal eine ganze Menge Freiraum! Was die Client/Server Kommunikation betrifft, kann man beliebig Ajax verwenden und natürlich auch die von AIR gebotenen Schnittstellen (windows.runtime im DOM). Auch tief verschachtelte Ordner werden von CSS und HTML ohne Probleme übernommen.

Als ich so weit war dem ganzen Leben einzuhauchen traten aber schon die ersten Probleme auf: Es wurde mein "bitte warten" GIF nicht abgespielt. Ich war ja bereit ein wenig einzustecken und komplett auf HTML und Javascript zu setzen, aber keine animierten GIFs - um es halbwegs interessant aussehen zu lassen - ist absolut inakzeptabel. Davon habe ich mich aber wenig beeindrucken lassen. Geht ja auch anders ... dachte ich.

Ich habe dann die Animation einfach in Flash umgesetzt und das SWF in das HTML mit dem üblichen Object-Tag eingefügt. Man sollte meinen dass dies klappt, wo AIR doch eigentlich zusammen mit Flex sowieso den Schwerpunkt in Flash hat. Ergebnis: Fehlanzeige! SWF Dateien werden nicht innerhalb des HTML Bereichs angezeigt. Egal mit welchen Tricks. Im Forum habe ich dann erfahren dass dies bekannt ist und mit der nächsten Version kommen soll. :-(

Okay.. Also HTML Support ist drin und läuft auf WebKit (was mehr oder minder eine gute Wahl ist), aber Animationen lassen sich nicht mit den üblichen Mitteln realisieren. Damit ist das ganze zur Zeit ziemlich sinnlos, aber für mich nicht gänzlich gestorben. Ich werde nun mal versuchen mit Flash und Flex die Sache auszuprobieren, denn Lust meine ursprüngliche Idee umzusetzen habe ich immernoch.

Es gibt ein Beta Update für Flash womit Adobe AIR integriert wird, aber auch hier nur halb! Es gibt kein Code-Hinting, was häufige Blicke in die Referenz Doku zur Folge hat. Mit ein paar Tricks kann man aber sich bis zum Adobe Integrated Runtime 1.0 Release behelfen.

Schade das der Einstieg in die AIR Entwicklung nicht so leicht war, wie erhofft.

Wer es auch mal probieren möchte sollte sich Aptana IDE besorgen. Dort ist es super integriert.

AIR HTML QuickStart
AIR Javascript Language Reference

Auf Ajaxian entdeckte ich heute die sprinkle.js. Ein Skript welches das dynamische laden von Inhalten via eines Pseudoattributes "src" ermöglichen soll. Abgesehen davon dass dies nicht valide ist, da es kein "src"-Attribut für ein DIV gibt, waren die Kommentare im Gegenzug dazu doch recht erfrischend. :-)

Hier ein Beispiel wie sprinkle.js funktionieren soll:

HTML:
  1. <script src="sprinkle.js"></script>
  2. <div src="info.html"></div>
  3. <!-- info.html wird via ajax in das div geladen, on body load -->

Die sprinkle.js ist rund 300 Zeilen lang und enthält eine Menge Schönheitsfehler und ist eigentlich ein gutes Beispiel wie man es nicht machen sollte. Wem aber diese Lösung gefällt, und bereits eine Bibliothek wie Prototype oder jQuery verwendet, sollte sich mal die folgenden Beispiele ansehen.

jQuery - www.jquery.com

JAVASCRIPT:
  1. $('textarea[src], div[src], span[src]').each(function() {
  2. $(this).load(this.src);
  3. });

Prototype -www.prototypejs.org

JAVASCRIPT:
  1. $$('textarea[src], div[src], span[src]').each(function(el){
  2. new Ajax.Updater(el, el.src||'');
  3. });

Somit wäre das mit der sprinkle.js wohl dann auch geklärt ;)

Ich las grad wieder auf Ajaxian darüber und auch ich selbst steh dem oft gespalten gegenüber. Ich leuge nicht ein starker Vertreter von Prototpye.js zu sein, und wahrscheinlich werden folgende Gedanken davon geprägt sein, aber ich finde ich muss mal schreiben was ich an Prototype so wirklich mag und was ich bei jQuery vermisse.

Das Frameworks einen neuen Schreibstil mit sich bringen ist bekannt. Von den ganzen Codeschnipseln und endlosen Experimenten kann ich sagen dass Prototype einfach eleganter ist, bzw. es liest sich einfach schöner.

Ich würde zum Beispiel niemals auf die Idee kommen einen Ajax-Chat oder ein komplexes Interface mit jQuery umzusetzen, denn dort würde man (einfach um den Überblick nicht zu verlieren) Klassen und Objekte erstellen um die Anwendung in handliche Einheiten zu zerlegen. Dazu ist jQuery meiner Meinung nach einfach nicht Gedacht. Prototype wartet hierzu mit einem ganzen Arsenal von Utilities auf.

Bei jQuery gibt es viele Nebenprodukte wie $.each, die vielleicht wie eine Alternative zu Prototype erscheinen, aber auf mich eher wirken als wäre den Entwicklern später eingefallen das sie noch was vergessen haben. Aber deshalb sind es eben zwei paar Schuhe.

In jQuery dreht sich alles um Elemente (eher Sammlungen von Elementen). Es wird immer davon ausgegangen dass man mit HTML arbeitet, was meiner Meinung nach ein riesiger Nachteil von jQuery ist. Zur DOM-Manipulation bestens geeeignet (und man kann dort wirklich mächtige Ein-Zeiler schreiben), aber wenn man mit fremden Daten arbeitet kommt man schnell ins Schleudern. Dann ist plötzlich jQuery nicht mehr so toll.

Prototype hat seine stärken bei der Verarbeiten von Daten. Arrays, Hashes und Strings. Das liegt daran, weil Prototype eine ganz andere Route verfolgt. Es erweitert die vorhandnen Javascript Objekte und würzt es mit einem einfachen Modell zum Erstellen von Klassen. Es hilft einem also nicht nur schnell an irgendwelche Elemente zu kommen, sonder greift einem auch in anderen Bereichen unter die Arme.

Demnach kann man jQuery und Prototype auch gar nicht wirklich gegenüber stellen.

Bei der Frage nach Prototype oder jQuery antworte ich eigentlich deshalb meist: Wollen wir ein wenig HTML manipulieren, oder wollen wir eine Ajax-Anwendung schreiben? Letzteres wäre dann Prototype.

Man muss nur mal einen Blick in Dokumentation beider schauen. Bei Prototype gibt es für alles etwas. Bei jQuery stellt der DOM Abschrnitt alles andere in den Schatten.

Prototype kann einfach mehr und lässt einen nicht irgendwann im Dunkeln, weshalb Prototype mein Favorit für jede Anforderung ist.

startup250.jpgCenterNetworks hat kürzlich ein eBook mit vielen nützlichen Tips rund um das Thema "Startup" veröffentlicht. Das PDF umfasst 46 Seiten wo rund 40 Autoren Ihre Erfahrungen und Tips verraten. Kostenlos natürlich, samt Inhaltsverzeichnis und im druckbaren Format. - Download

screenshotIch habe soeben eine wunderschöne Wallpaper Sammlung gefunden. Desktopography beschäftigt sich mit dem Thema "Outdoor". Alles was "draussen" ist, ist erlaubt. Die Desktophintergründe dürfen natürlich runtergeladen werden. Viel Spass beim stöbern!

http://www.desktopography.net/