CouchDB E-Book

Eine dieser neumodischen dokumentenbasierenten Datenbanken. Ich bin über eine ausführliche Dokumentation gestolpert, nämlich gibt es das ziemlich brandneue Buch “CouchDB – The Definitive Guide” (J. Anderson, Noah Slater, Jan Lehnard, CouchDB – The Definitive Guide, ISBN 978-0-596-15589-6) von O’Reilly als E-Book zum im-Internet-angucken und umsonst. Unter dieser Adresse. Schon die ersten Kapitel machen Lust, in die Thematik zu schnuppern. Schon immer mal wollte ich via Dojo JsonRESTStore einen Webservice so richtig ansaugen und zwar ohne das lästige PHP dazwischen. Mit CouchDB scheint das auf einfachste Weise möglich zu sein. Continue reading “CouchDB E-Book”

Behave, baby!

Doctrine macht es dem Entwickler leicht, seine Object-Models mit Businesslogic anzureichern. Entsprechende Methoden an der Doctrine_Record-  – oder allgemeiner – an einer entsprechenden Doctrine_Table-Kindklasse zu verdrahten ist ein Kinderspiel. Irgendwann trifft man dann auf einen Anwendungsfall, der eine entsprechende Zusatzfunktionalität erfordert, ohne dass das “Tätigkeitsfeld” dieser Funktionalität auf nur eine Gruppe von Entitäten zu begrenzen wäre. Anstatt nun die immer gleichen Methoden für alle seine Object-Models, die die neue Funktionalität benötigen, zu implementieren und damit ziemlich viel Code zu produzieren, möchte man lieber das ORM-Framework selbst erweitern. Auch hierfür bietet Doctrine die entsprechenden Schnittstellen: Einen Eventdispatcher zusammen mit ziemlich viele Stellen im Code, denen man “zuhören” kann und das Konzept der Behaviours (dt. etwa Verhaltensmuster): Oh behave!

Continue reading “Behave, baby!”

Tiny URLs mit PHP und der tinyurl API

für den Fall dass ich nicht der einzige bin, der das bis vorhin nicht wusste:

tinyurl.com hat auch eine API.
Die ist zwar unglaublich simpel, aber das ist doch auch mal schön.

$tinyURL =  file_get_contents( 'http://tinyurl.com/api-create.php?url='.$tooLongURL );

und vice versa (hackish):

function reverse_tinyurl($url){
            // Resolves a TinyURL.com encoded url to it's source.
            $url = explode('.com/', $url);
            $url = 'http://preview.tinyurl.com/'.$url[1];
            $preview = file_get_contents($url);
            preg_match('/redirecturl" href="(.*)">/', $preview, $matches);
            return $matches[1];
        }

Continue reading “Tiny URLs mit PHP und der tinyurl API”

Den Scope betrügen – wenn der Berg mal zum Propheten kommt

Javascript und der Scope (dt. “Sichtbarkeitsbereich“) einer Variablen ist so eine Sache.  Durch eine klitzekleine Fehlkonzeption – wenn man es denn so nennen kann – in ECMAScript (die Sache mit dem Schlüsselwort “this” und dessen änderbarer Referenz in “self”) fällt es hin und wieder schwer zu erkennen, in welchem Scope man sich gerade “herumtreibt”, also in welchem Kontext bspw. eine Funktion oder Instanzmethode initialisiert oder aufgerufen wird. Wobei eine Methode, die in Kontext a deklariert wird, noch lange nicht in Kontext a ausgeführt werden muss.

Continue reading “Den Scope betrügen – wenn der Berg mal zum Propheten kommt”

mit Jquery eine Form auslesen und mit Ajax Post versenden

Will man die Values einer Form dynamisch holen und mit Ajax verschicken mit Jquery
muss man wohl einiges beachten.
Eine gescheite -outthebox- Lösung scheints da nicht zu geben bzw. ich hab sie nicht gefunden.

1. Daten holen
Die Daten holt man am besten über die Jquery Methode serializeArray().

var s = $('#campaigns form').serializeArray()

Damit holt Jquery alle Values in dieser Form als Array, bei radio oder checkbox types jeweils die aktivierten.

2. Wie versenden?
Nun stellt sich die Frage, wie man die Daten schön aufbereitet und dann versendet.

Continue reading “mit Jquery eine Form auslesen und mit Ajax Post versenden”

JS Unit Testing mit FireUnit – JavaScript Unit Testing Extension

FireUnit ist eine Extension für eine Extension. Für Firebug nämlich.
Damit lassen sich dann ziemlich komfortabel Javascript Unit Tests machen.

Der Funktionsumfang ist überschaubar, was mir das Ding auf Anhieb sympathisch macht.

true / false Tests und String compare:


if ( typeof fireunit === "object" ) {
// Simple true-like/false-like testing
fireunit.ok( true, "I'm going to pass!" );
fireunit.ok( false, "I'm going to fail!" );

// Compare two strings - shows a diff of the
// results if they're different
fireunit.compare(
"The lazy fox jumped over the log.",
"The lazy brown fox jumped the log.",
"Are these two strings the same?"
);

}

Continue reading “JS Unit Testing mit FireUnit – JavaScript Unit Testing Extension”

Symfony flying with Lighttpd on Mac OS X 10.6

This guide aims to Mac OS X 10.6 users who intend to run their Symfony 1.2 projects on Lighttpd with PHP 5.3 and MySQL5. Steps described in this article refer to a development machine setup and do not consider any security related configurations necessary for a production setup.

Why?

Why would I want to use Symfony with Lighttpd (Lighty) instead of Apache?

  1. It is light – as the name tells already.

    Continue reading “Symfony flying with Lighttpd on Mac OS X 10.6”