gentoo
Um die aktuellen KDEPim-Pakete dauerhaft zu maskieren konnte man bislang einen Symlink auf eine Datei im KDE-Overlay benutzen, wie ich auch im ersten Teil dieses HowTos beschrieben habe. Leider gibt es dieses File nicht mehr, so dass man sich selbst behelfen muss.
Ich hatte schon einige Blogartikel darüber geschrieben und ich bleibe dabei: KMail2 ist in der aktuellen Version nicht nutzbar, egal ob man MySQL als akonadi-Backend einsetzt (eigener Serverprozess oder der bereits laufende Server) oder einigen Tipps im Internet folgt und SQLite3 nutzt. Spätestens wenn man KMail2 nutzen möchte, um ein IMAP-Postfach zu verwalten, das mehr als einige hundert Mails vorhält wird es einfach unheimlich langsam.
Nachdem ich auch nach mehrfachem "googlen" nicht fündig geworden bin, was HowTos zum Thema "Gnome3 unter gentoo installieren" angeht, verfasse ich doch einfach mal mein eigenes kleines HowTo.
Da ist er nun, mein neuer Blu-Ray-Player aus dem Hause Sony.
Nachdem ich mir auf meinem Netbook unter gentoo Linux mal die Gnome-Shell installieren wollte, bin ich auf das Problem gestoßen, dass introspection als USE-Flag global maskiert ist, schön zu erkennen an den vielen "(-introspection)"-Einträgen bei einem "emerge -pv gnome-shell".
WebOS
Mittlerweile ist es sehr einfach geworden, das "alte" Palm Pre (nicht Plus) von o2 auf die neueste WebOS 2.1 upzudaten. Mit Hilfe des "MetaDoctors" kann jeder Linux-User die Prozedur in wenigen Schritten selbst durchführen, hier natürlich wieder die "gentoo-Version":
php
Wenn man die drei Design Patterns aus den vorangegegangen Artikeln kombiniert, bekommt man sowas wie ein "Vererbtes Singleton-Factory-Registry". Dieses "Pattern" setze ich momentan erfolgreich als Basis des Refactoring/Redesigns meines kleinen Frameworks openWebX2 ein.
Als Basis dient hier eine erweiterte Version unserer abstrakten Singleton-Klasse:
Das Factory Design Pattern wird immer dann eingesetzt, wenn man Objekte instanzieren will, deren Typ aber erst zur Laufzeit bekannt ist.
Klassisches Beispiel hierfür wäre z.B. ein Datenbankwrapper. Es existieren mehrerer identische Objekte, welche die selben Methoden zur Verfügung stellen, aber auf unterschiedliche Datenbanksystem zugreifen und deren Besonderheiten nach aussen hin "verstecken".
Das Registry Pattern wird sehr oft eingesetzt, um globale Variablen im Context mehrerer Objekte zu vermeiden. Stellen wir uns dieses Entwurfsmuster einfach als eine Art Datenspeicher vor.
Wie wir schon im ersten Teil gesehen haben, kann das Singleton-Pattern recht simpel und schnell in php realisiert werden.
Nun sind wir Developer ja von Natur aus bequem und selbst wenn man copy&paste liebt, geht es einem irgendwann auf die Nerven, dass jede Klasse die das Singleton-Pattern nutzen soll immer wieder die identischen Codezeilen enthält.
Es gibt im Netz wohl endlose Diskussionen darüber, ob das Singleton jetzt böse ist oder nicht. Meines Erachtens ist es in einigen Situationen sehr nützlich.
Das Singleton verhindert, dass es mehrere Instanzen eines Objektes gibt. Es wird immer genau eine Instanz erzeugt, sollte diese bereits existieren, dann wir die Instanz anstelle eines neuen Objektes beim Aufruf zurückgegeben.
Nachdem ich die Ergebnisse einiger Performancetests veröffentlicht habe, zeige ich in diesem Artikel mal, wie schnell und einfach man mongoDB einrichten und nutzen kann.
Oft belächelt, aber immer noch wahr: echo ist schneller als print!
Um das ganze unter realistischen Bedingungen zu testen, wurden alle Caches (APC, ...) deaktiviert und das Outputbuffering in der CLI-Version von php deaktiviert.
Folgender Code dient als Test:
In der heutigen Folge beschäftigen wir uns mit dem Thema "Bedingungen". Wann ist es sinnvoll welches Konstrukt zu benutzen, welches Konstrukt erhöht die Lesbarkeit des Quellcodes.
drupal
Was brauchen wir?
Zunächst mal das Naheliegendste: Eine drupal7 Installation ;-) Wer sich noch nicht das Views-Modul installiert hat, sollte dies schnellstens nachholen, nicht nur für dieses HowTo. Weiterhin setzen wir in diesem Beispiel Colorbox ein, für andere Lightbox-Derivate sollte sich dieses HowTo aber auch übernehmen lassen.
Aus den Core-Modulen benötigen wir das Image-Modul. Wie gesagt: Core, ist also schon installiert.
Nachdem wir die Module installiert und aktiviert haben, können wir ans Eingemachte gehen. Ich habe hier nur eine lokalisierte deutschsprachige Version vorliegen, deswegen werde ich die Links und Menüpunkte o.ä. mit den deutschen Bezeichner benennen
Datenbanken
Ben Brown hat in seinem Blog "Idiotsabound" zwei interessante Benchmark-Ergebnisse seiner Tests mit den vier verschiedenen Systemen couchDB, memcached, mongoDB und MySQL gepostet. Er testet jeweils die Insert-Performance[1] und die Query-Performance[2] und nur in ganz wenigen seiner Tests muss sich mongoDB zwangsläufig dem memchached-Server geschlagen geben.
(X)HTML / HTML5
igentlich sagt man, Eigenwerbung bzw. -lob stinkt, ich kanns mir aber trotzdem nicht verkneifen ;-)
Ich habe eine kleine Klasse gebaut, welche mir als php Entwickler schnell hilft, eine HTML5-Seite zu erstellen. Dank dem Basis Objekt "html" muss in Zukunft keinerlei HTML-Code meht in den php-Files stehen. Kleines Beispiel gefällig?