Autor: Nathalie Pelz

Portraits verbessern mit GIMP 2.6

Kaum ein Gesicht ist so makellos wie es in den Modezeitschriften und der Werbung erscheint. Dieses Tutorial zeigt wie Sie mit einfachen Mitteln die Augen betonen und die Hautunreinheiten zum Verschwinden bringen können. Dies ist ein Tutorial aus dem Buch Praxisworkshop GIMP 2 von Michael Walder. Dazu gibt es auch eine Slideshow zum Einblick ins Buch: Praxisworkshop GIMP 2 – Die wichtigsten Werkzeuge View more documents from O’Reilly Verlag.

PHP 5: Standard-Datenstrukturen nicht neu erfinden – Queues, Stacks und Co.

Problem Sie benötigen in Ihrem Programm Datenstrukturen, die PHP nicht out-of-the-box bietet (z.B. Stack, Linked-List oder Queue). Sie könnten diese  mithilfe von Arrays als eigene Klasse implementieren, sind sich aber nicht sicher, ob Sie dabei nicht unnötig das Rad neu erfinden. Lösung Seit PHP 5.3 bietet die Standard PHP Library (SPL) einige dieser Datenstrukturen an. Die Klasse SplStack implementiert eine LIFO-Datenstruktur (Last-In-First-Out) und somit eine Datenstruktur, die sich wie ein Stack (engl. für Stapel) verhält: $stack = new SplStack(); $stack->push(‚a‘); $stack->push(‚b‘); $stack->push(‚c‘); echo $stack->pop().“\n“; echo $stack->pop().“\n“; echo $stack->pop().“\n“; c b a Die Klassen SplHeap, SplMinHeap und SplMaxHeap implementieren eine Heap-Datenstruktur.SplHeap ist dabei eine abstrakte Klasse und kann nicht direkt instantiiert werden. In einem Heap werden die einzelnen Elemente anhand ihrer Schlüsselwerte in einer Baumstruktur abgelegt. SplMinHeap und SplMaxHeap implementieren jeweils die von SplHeap als abstrakt deklarierte Funktion compare(). SplMinHeap legt die hinzugefügten Elemente in aufsteigend sortierter Reihenfolge ab, SplMaxHeap dagegen in absteigend sortierter Reihenfolge: $heap = new SplMaxHeap(); $heap->insert(‚b‘); $heap->insert(‚a‘); $heap->insert(‚c‘); echo $heap->extract().“\n“; echo $heap->extract().“\n“; echo $heap->extract().“\n“; c b a $heap = new SplMinHeap(); $heap->insert(‚b‘); …

Benutzerführung in GIMP 2.6

Michael Walder hat ein kleines Tutorial veröffentlicht, in dem er zeigt, wie man mit Gimp 2.6 seine eigene Benutzeroberfläche zusammenstellen kann. Auf diese Weise wird die Oberfläche schlanker und übersichtlicher und nimmt auf dem Desktop weniger Platz ein. Dies ist ein Tutorial aus dem Buch Praxisworkshop GIMP 2 von Michael Walder. Praxisworkshop GIMP 2 – Die wichtigsten Werkzeuge Mehr über die Anwendung von Gimp erfahren Sie im Buch Praxisworkshop GIMP 2.

Neues von Twitter: Die NASA ehrt Douglas Adams auf Twitter-Weise

Diese Woche jährte sich das Erscheinen von Douglas Adams „Hitchhikers Guide to the Galaxy“ zum dreißigsten Mal. In der gleichen Woche hat die NASA eine Rakete auf dem Mond zerschellen lassen. Und anscheinend sitzen bei der NASA, wie zu erwarten, Geeks. Sie twittern unter @LCROSS_NASA. Und anscheinend lieben diese Geeks auch Douglas Adams, anders ist dieser Zusammenhang wohl nicht zu erklären, den der Guardian hier so schön kommentiert: In one of its less-reported actions last week, Nasa’s LCROSS lunar mission last week gave Douglas Adams’s Hitchhiker’s Guide to the Galaxy the extra-planetary exposure it has always deserved. A Twitter feed from the satellite sent crashing onto the moon’s surface on Friday channelled the voice of an improbably created sperm whale that discovers itself hurtling towards a different outer-space collision in Adams’s much-loved story. Published 30 years ago, the classic novel features two missiles, aimed at Zaphod Beeblebrox’s spaceship the Heart of Gold, turned into a whale and a bowl of petunias by the vessel’s Improbability Drive (at an Improbability Factor of 8,767,128 against). The whale …

PHP 5: Callback-Funktionen mit einem Zustandsgedächtnis programmieren

Problem Sie benötigen eine Callback-Funktion. Eine einfache Funktion (z.B. ein Closure oder eine Lambda-Funktion) reicht aber für Ihre Zwecke nicht aus, da die Callback-Funktion einen eigenen Zustand halten – also ein Zustandsgedächtnis haben – soll. Lösung Seit PHP 5.3 haben Sie die Möglichkeit, von Funktionsobjekten Gebrauch zu machen. Dabei handelt es sich um Objekte, die wie Funktionen behandelt und demnach also auch wie Funktionen aufgerufen werden können: class Funktor { public function __invoke($wert) { print $wert . „\n“; } } $f = new Funktor; $f(‚Hallo Welt!‘); Hallo Welt! Diskussion In Rezept 6.12 haben Sie gesehen, wie Lambda-Funktionen verwendet werden können, um z.B. ein Array mit der Funktion usort() zu sortieren. Diese Funktionen werden oft als Callback-Funktionen oder kurz Callbacks bezeichnet. Ein solches Callback übergibt man an eine beliebige Funktion, und diese ruft es mit diversen Parameterwerten auf. Die usort()-Funktion ruft ein Callback beispielsweise mit zwei Werten auf, die miteinander verglichen werden sollen. Die Callback-Funktion ist dabei nicht in der Lage, einen Zustand über mehrere Aufrufe hinweg zu halten. Einfach formuliert, könnte man sagen, sie hat …