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.

gmail logoJuhu! Endlich IMAP in GMail! Das Feature wurde vor einiger Zeit angekündigt und so langsam in allen bestehenden Accounts freigeschaltet. Ich bin nun auch einer der Glücklichen.

GMail IMAP Support

Nun muss ich nicht immer nach einer Woche alle offline-gelesenen Mails, online ebenfalls als gelesen markieren. Alle Änderungen passieren direkt auf dem Server, bzw. werden synchronisiert und natürlich auch in die umgekehrte Richtung reflektiert.

Zumindest temporär(?) und es fehlen nur noch 3 Abschnitte, die man aber ruhig übersehen darf. Das Blog Tutorial und User Auth. Ich habe eine frühe Version dieser Doku bereits als PDF im Forge von CakePHP gefunden und war begeistert eine beinahe Buch-ähnliche Fassung zu haben. Nun scheint es fast komplett und beim überfliegen des Inhaltsverzeichnisses kommt es einem vor als wäre man an der richtigen Stelle für alle seine Fragen. Sehr zu empfehlen - auch wenn es noch nicht komplett ist.

Link: http://tempdocs.cakephp.org

via CakeBaker

Vor einiger Zeit habe ich mal mein eigenes Ajax.JSONRequest() geschrieben, weil ich kein Fan davon bin 100 mal das gleiche zu schreiben. Damit das alles klappt habe ich mich nach dem richtigen Content-Type umgesehen und den Prozess darauf aufgebaut. Der korrekte Typ ist application/json und falls gesetzt, evaluieren den responseText automatisch.

Die neue Prototype 1.6 Version nutzt ein ähnliches Prinzip und liefert uns nun ein transport.responseJSON. Vorbei sind die Zeiten von transport.responseText.evalJSON(). Ich frage mich warum nicht gleich so, wo doch text/xml schon seit längerem dafür gesorgt hat das wir responseXML haben. Naja.. super Schritt vorwärts.

JAVASCRIPT:
  1. getResponseJSON: function() {
  2.     var options = this.request.options;
  3.     try {
  4.       if (options.evalJSON == 'force' || (options.evalJSON &&
  5.           (this.getHeader('Content-type') || '').include('application/json')))
  6.         return this.transport.responseText.evalJSON(options.sanitizeJSON);
  7.       return null;
  8.     } catch (e) {
  9.       this.request.dispatchException(e);
  10.     }
  11.   }

Es gibt auch nocht ein paar neue Optionen für Ajax.Request.

  • sanitizeJSON (bool) - Prüft automatisch auf böse Inhalte und blockiert die Ausführung falls etwas gefunden wird. Ist standardmässig "true", aber ob das so gut ist, weiss ich nicht. In der ersten Revision gab es Probleme je nach Anwendungsgebiet.
  • evalJSON (bool) - Damit kann man das neue Verhalten der automatischen evaluierung beeinflussen. Standard ist "true" und gut.
  • evalJS (bool) - Gleiches Prinzip, anderer Inhalt. Wenn der Server text/javascript liefert wird der responseText direkt ausgeführt.

Angeblich soll diese Version 1.6.0 RC_0 recht stabil sein, aber ich warte lieber und werde nach und nach die Api Doku aktualisieren.

Erstmal sorry dass hier so wenig los ist in letzter Zeit. Hab einfach viel um die Ohren :)

Nun habe ich aber gerade mal wieder meinen Google Reader angeschmissen und dabei zum einen gemerkt das Prototype 1.5.1 nun endlich final ist (sowie dass es auch wieder eine Protopressed Version dessen gibt), und zum anderen wurde ich auf eine Empfehlung im prototypejs.org Weblog aufmerksam:

PeepCode: Prototype Video Training Series
Das erste von insgesamt zwei geplanten Screencasts zum erlernen von Prototype steht zum kaufen bereit. Ich habe nicht gezögert und die veranschlagten 9 US Dollar investiert und muss sagen dass es sich lohnt. Jeder der gerade mit Prototype anfängt, oder nur zum Teil weiss wozu etwas in Prototype überhaupt gut ist, sollte sich dieses Tutorial zu Gemüte führen. Selbst für Fortgeschrittene ist das eine oder andere doch recht interessant.

Das Video ist in englischer Sprache und beginnt mit der simplen Typenbeschreibung und weist auf die Unterschiede hin. Basierend auf diesen Grundlagen kommt nach und nach Prototype ins Spiel, bis man sich anschliessend gänzlich im Prototype-Land bewegt. Es wird anhand einfacher Beispiele innerhalb der Firebug Konsole ausführlich erklärt warum und wieso Prototype an diesen Stellen nützlich ist und was man davon hat. Hauptaugenmerk liegt in diesem Teil auf DOM Events und DOM Manipulation, sowie Aggregation von Elementen.

Wer dem englischen nicht ganz so mächtig ist, muss nicht zwingend zögern. Der Sprecher hat keinen übertriebenen Akzent und spricht langsam und verständlich. Die Audioqualität ist top und die Bildqualität ist gut. Das Video selbst ist ein Quicktime Mov mit integrierter Kapitelnavigation (auch für iPod verfügbar). Der Screencast hat eine Laufzeit von knapp einer Stunde und schliesst mit einem kleinen Projekt ab.

Um das Video zu kaufen braucht ihr nur PayPal und schlappe 7 Euro Guthaben.

Also ich freue mich schon auf den zweiten Teil.

» Hier gehts zur PeepCode Seite und Download

Version 1.1.14.4797 wurde gestern veröffentlicht.

Download: http://cakeforge.org/frs/?group_id=23&release_id=215
Changelog: https://trac.cakephp.org/wiki/changelog/1.1.x.x

Bugfixes und Patches! :)

*1.5.1_rc2* (March 12, 2007)
* Add a tab character via innerHTML to the selector whitespace test. [Christophe Porteneuve]
* Add an attribution to YUI-Ext's DomQuery in selector.js.
* Make Element.extend work on IE for Nodes with the same ID that where discarded. Closes #7497. [Mislav Marohnić, Thomas Fuchs]
* Make Selector correctly extend the first element it returns on IE. [Thomas Fuchs]
* Prevent a crash in Safari when using $A() on NodeList objects that contain text nodes. [Thomas Fuchs]
* Fix Element.Methods.descendants() to properly extend elements on IE. [Thomas Fuchs]

http://prototypejs.org/assets/2007/3/12/prototype.js

Erste Betaversion der 1.7.1. Mal abgesehn von dem Geschwindigkeitszuwachs der Effekte (zum Teil durch Prototype 1.5.1 RC1) kommt diesmal eine neuen Bibliothek hinzu: Sound! Damit ist es möglich kleine Soundeffekte abzuspielen. Im Internet Explorer geht das von Haus aus und in anderen Browsern wird sich irgendeinem installierten MP3 Plugin bedient. Ob das nun gut oder schlecht ist .. man weiss es nicht. Ich habe es getestet und es geht.. aber mehr schlecht als recht. Mal sehen wie sich das entwickelt.

Hier gehts zum Download

openid

Ich habe nun OpenID für Kommentare aktiviert. Man kann sich nun bei m3nt0r.de via OpenID registrieren. Einmal geschehen, seid ihr bei zukünftigen Kommentaren von der Eingabe eurer Daten befreit. Einfach die OpenID in das dafür vorgesehene Feld, Kommentar eintippen und losschicken. Der OpenID Vorgang an sich erstellt auf m3nt0r.de einen lokalen Wordpress Account und somit auch ein Profil das euch frei steht zu pflegen. Zudem könnt ihr eingeloggt bleiben und braucht nicht mehr Name, Email und Homepage einzutippen. Zeitersparnis :)

Das ganze nennt sich Single-Sign-On und wird im Detail auf Wikipedia erklärt. Wer keine OpenID hat kann sich einen der vielen, meist kostenlosen, Provider raussuchen. Ich empfehle myOpenID.com. Ist einfach und stabil. Falls ihr bei AOL seid solltet ihr bereits eine OpenID haben. Ich hab gelesen das die Funktion erst kürzlich eingebaut wurde.

Das schöne an OpenID ist eben das man die Wahl hat und natürlich auch mehrere Anbieter wählen kann. Ich selbst bin zusätzlich noch bei ClaimID und Videntity.

Wie versprochen halte ich meine CHM Version der Prototype Dokumentation auf dem neusten Stand. Ich habe soeben die neusten Funktionen aus der 1.5.1 RC1 hinzugefügt. Die neuen Funktionen findet ihr am besten in dem ihr einfach nach "1.5.1" sucht. Ich habe die Seiten markiert um Verwirrung zu vermeiden. Generell bezieht sich die Hilfedatei auf 1.5.0 und solange 1.5.1 noch nicht final ist belasse ich die Seitentitel so.

Update: Ein, zwei toJSON Funktionen sind mir im ersten Update entgangen. Desweiteren habe ich die Überschriften mit dessen Kategorie erweitert. Die Namen der Funktion alleine bringen nicht viel. Nun steht das Objekt vorne an. Beispiel: "truncate :: String".

Download Prototype 1.5.1 Windows Helpfile

PS: Übrigens hab ich mein aktuelles Projekt mit dem neuem RC gefütter und kann nur gutes berichten. $$ ist wirklich schneller geworden. :)