Blog

Camouflage - Ein nützliches Tool für Mac OS X

Im täglichen Umgang mit dem Web landen bei mir schon mal hier und da zich Icons auf dem Desktop, um dem Wirrwarr zumindest optisch erst einmal Herr zu werden, durchstöberte ich also das Internet und stolperte über Camouflage.

Camouflage klinkt sich in die Menüleiste ein, von wo man dann ebenso komfortabel wie man die Desktop Icons ein- und ausblendet auch an Desktop und Monitoreinstellungen herankommt.

Für das wechseln der Sichtbarkeit kann man im übrigen auch einen Shortcut belegen.

Ein weiteres sehr von mir geschätztes Feature ist das Öffnen des Finders per Doppelklick (auf Wunsch auch auf einfachen Klick) auf den Desktop. Sehr feine Sache das ... (sollte jemand einen besseren Weg kennen den Finder zu öffnen möge er mir dies bitte mitteilen ;)

Tags:

... den ganzen Beitrag lesen


Mittagessen bei Kullmann's Kaiserslautern

Es gibt einen Ort, da sehen die Burger auf dem Teller genau so aus wie die Burger auf den Plakaten von Burger King und Konsorten. Erinnert sich jemand an Michael Douglas in "Falling Down"?
Heute, nach einer wirklich anstrengenden Woche als 'Betatester' einer neuen Software-Version für einen unserer Webshop-Kunden, haben wir uns im Kullmann's Diner (wieder einmal) selbst belohnt. Selbst belohnt für unsere periodisch partiell perfekten PHP-Programmierleistungen.

Dabei konnten wir auch schnell verdrängen, dass uns unser Internet-Provider ausgerechnet kurz vor einer Kundenpräsentation den Zugang zu unseren Staging-Servern verwehrt hat. Zum Glück konnten wir alles noch am Nachmittag nachholen.

Tags:

... den ganzen Beitrag lesen


Weltneuheit: Schwebende Server

Wir sind gerade dabei unsere PHP- und MySQL-Infrastruktur umzubauen und werden neue Staging-Server für unsere Kundenprojekte aufsetzen, die über S-DSL mit statischer IP auch von aussen für unsere Kunden erreichbar sein werden. Ausserdem soll noch ein VPN eingerichtet werden, so dass keiner mehr traurig sein muss, nur weil er von zu Hause (manche gehen nach Feierabend oder im Urlaub dahin) nicht entwickeln kann.

Lokale Webserver in einer virtuellen Maschine (wir haben Parallels Desktop, VMware Fusion und VirtualBox auf unseren Macs im Einsatz) sind zwar ganz praktisch zum lokalen Entwickeln und debuggen, aber dedizierte Server sind in vielerlei Hinsicht praktischer im Team.

Deshalb haben wir ein schwarzes 19"-Rack mit 18HE geordert und ein paar Server (sparsame Intel Atom und kleinere AMD Dualcore, einen Fileserver für Backups und als Share) als passende "grüne Füllung" für die "schwarze Mamba".

Am Telefon bei der Bestellhotline habe ich extra noch gefragt, was an Montagezubehör noch benötigt wird. "Es ist alles dabei" entgegnete der freundliche Verkäufer.

Als die Jungs von der Spedition sichtlich erschöpft das 50KG-Palettchen im Büro abgestellt hatten, wollten wir natürlich gleich einen Server einbauen und loslegen. Da keine Montageleisten mitgeliefert wurden, kann ich mir das nur so erklären, dass die Server im 19" Rack frei schwebend montiert werden. Dazu wird wohl der Luftstrom der Kühler verwendet, der ähnlich wie beim Hawker Harrier nach unten gerichtet wird und das Flugzeug senkrecht abheben, bzw. den Web- oder Datenbankserver schweben lässt. Das kommt bestimmt auch der Kühlung zugute. Eine clevere Idee!

Morgen muss ich noch mal bei der Firma anrufen und mich nach der Bedienungsanleitung für die Schwebetechnik erkundigen, weil der Server auch unter Vollast der Lüfter nicht angefangen hat zu schweben und mir auch nicht ganz klar ist, wie ich die Schwebehöhe und den Abstand zu den Seitenwänden justieren kann.

Vielleicht werde ich auch einfach die passenden Montageschienen nachbestellen...

Es ärgert nicht das Geld, das die Dinger kosten. Es ärgert, dass trotz Nachfrage doch wieder die Hälfte gefehlt hat.

Tags:

... den ganzen Beitrag lesen


Mittagessen von "Der Wok"

Nachdem nun fast alle unsere üblichen Nahrungsquellen in Kaiserslautern wegen Urlaub versiegt sind, nomadisiert unsere PHP-Webentwicklungstruppe seitdem das Stadtgebiet auf der Suche nach Kalorien.

Nachdem die letzten Änderungen im SVN eingecheckt waren, haben sich doch tatsächlich 2 Mitarbeiter von Netbeans und dem xdebug losreissen können um in die Stadt zu fahren um asiatische Kochkultur einzukaufen. An "Ente Gungbo" und "Huhn nach Szechuan-Art" kann ich mich noch erinnern.

Geschmeckt hat es aber, auch dort waren wir bestimmt nicht zum letzten mal. Allerdings werden wir künftig vorbestellen - jetzt haben wir ja eine Speisekarte ;)

Tags:

... den ganzen Beitrag lesen


Zend Framework: Konfigurationsdaten aus der application.ini lesen

Das Zend Framework ist hervorragend dokumentiert, es werden PHP-Coding Standards verwendet und alles ist vorbildlich mit Unit-Tests abgedeckt.

Dennoch gibt es aber manchmal Fälle, in denen man sich in der Dokumentation verliert und einfach nicht mehr weiter kommt.

Einer dieser alltäglichen Fälle ist das Auslesen von Konfigurationsdaten aus der application.ini
In der Zend Framework Dokumentation werden zwei Möglichkeiten beschrieben, wie man die eigene PHP-Applikation über PHP oder über XML konfigurieren kann.

Aber die offensichtliche Lösung über application.ini wird nicht behandelt.

Folgende Lösung funktioniert (zumindest mit der Version 1.9.0):

In der application.ini wird zunächst die gewünschte Konfiguration angelegt, in diesem Fall die Zugangsparameter zu einer MySQL-Datenbank:

  1. db1.host = "someHost"
  2. db1.dbname = "someDb"
  3. db1.username = "someUser"
  4. db1.password = "somePassword"


Im Controller, der die Konfigurationsdaten benötigt, wird die foldende Methode erstellt:

  1. public function preDispatch() {
  2.         $bootstrap = $this->getInvokeArg('bootstrap');
  3.         $config = $bootstrap->getOptions();
  4.        
  5.         $this->_db1_config = array(
  6.          'host' => $config['db1']['host']
  7.         ,'dbname' => $config['db1']['dbname']
  8.         ,'username' => $config['db1']['username']
  9.         ,'password' => $config['db1']['password']);
  10.  
  11.         parent::preDispatch();
  12. }


Aus dieser Methode geht hervor, dass wir ein (per Konvention) privates Attribut _db1config im Controller anlegen müssen mit Daten aus der application.ini über $bootstrap->getOptions() füttern.

Da diese Zugangsdaten zur Datenbank jetzt - natürlich rein zufällig - als Array vorliegen, können diese direkt weiterverwendet werden, z.B. so:

  1. Zend_Db::factory('Mysqli', $this->_db1_config);

Tags:

... den ganzen Beitrag lesen


Mittagessen von Joey's

"Ideal Standard"

Heute war der Tagesablauf wieder einmal völlig chaotisch durchorganisert, so dass aus zeitgründen ausserbüromässiges Essen ausfallen musste. Zum Glück gibt es ja den freundlichen Pizzaservice, der uns während unserer Arbeit an spannenden Internetprojekten in Kaiserslautern mit Nachschub versorgt. Wie war das noch mal mit den Programmierern, dem Keller und den Klischees?

Der neue Inernetauftritt von Joey's ist übrigens bis auf eine paar kleine Patzer sehr gut gelungen und hätte nach einstimmigem Beschluss auch von uns sein können. Und alleine durch das neue, gesunde Image und die neuen Pizzaboxen müssten die belegten Teigscheiben gefühlte 60% weniger Kalorien haben...

Tags:

... den ganzen Beitrag lesen


Mittagessen in der Pfaffschenke Kaiserslautern

In einer neuen Kategorie wollen wir dokumentieren, wie schwer PHP-Entwickler, Frontent-Akrobaten, MySQL-Gurus und einem - grundsätzlich hungrigen - Auszubildenden zum Fachinformatiker (Fachrichtung Anwendungsentwicklung) ist, eine angemessene Mittagsverpflegung zu ergattern.

Was heisst angemessen?

Es gibt ja dieses Klischee, dass Programmierer grundsätzlich im dunklen Keller entwickeln (bei den Temperaturen vielleicht nicht mal das schlechteste) und sich dort von Pizza, Hamburgern und sonstigen Junk-Food ernähren, während der Kaffee direkt Intravenös appliziert wird.

Bei pixeltricks ist das völlig anders. In der Merkurstrasse in Kaiserslautern haben wir erstklassige Büroräume und auch auf gesundes und schmackhaftes Essen legen wir größten Wert. Auf leckeren Kaffe aus unserer Jura von unserem Juradoctor allerdings auch.

Nachdem unsere alte Nahrungsittelquelle wegen Insolvenz versiegt ist (nicht geschlossen, aber der Insolvenzverwalter hat den Speiseplan gekürzt, so dass es nur noch eine handvoll Gerichte gibt, während der Speiseplan vorher täglich gewechselt hat) mussten wir und nach neuen Gefilden (apropos "Gefillde"...) umsehen...

Durch Zufall sind wir in der Pfaffschenke am Rundbau gelandet, die mit dem Auto innerhalb weniger Minuten aus dem Industriegebiet Kaiserslautern gut für uns erreichbar ist.

Auf dem Speiseplan stand "Rotbarschfilet mit Kartoffeln und Salat" und nach Fisch hat es unseren Azubi schon seit einigen Tagen gelüstet.

Das Essen war prima, die Portionen ausreichend groß für Schreibtischtäter Webentwickler.

Hier waren wir garantiert nicht zum letzten mal.

Tags:

... den ganzen Beitrag lesen


Arbeit an XHTML 2 vom W3C beendet.

Mit Hauptaugenmerk auf HTML 5, welches bereits in Teilen im neuen Firefox 3.5 implementiert ist und sich somit bereits im Alltag bewährt, hat das W3C die Arbeiten an XHTML 2 eingestellt.
XHTML2 zumal zu den bisherigen XHTML-Standards inkompatibel gewesen, was sowohl für die Browserhersteller, als auch für viele Entwickler größere Entwicklungsaufwände verursacht hätte.

Tags:

... den ganzen Beitrag lesen


Mozilla Firefox 3.5 veröffentlicht

Mehr als zweimal schneller als die Version 3, verbesserter Schutz der Privatsphäre, Unterstützung neuer Web-Standards, individueller bei Add-ons und Konfiguration.

Mozilla, eine Non-Profit-Organisation mit dem Ziel, Innovation und Vielfalt im Internet voranzubringen, hat heute Firefox 3.5 zum kostenlosen Download freigegeben. Ein Jahr nach dem Start von Firefox 3 bietet die neuste Version des bekannten Open-Source-Browsers wieder eine Reihe innovativer Features. Firefox 3.5 unterstützt auch eine Vielzahl neuer Web-Standards.
Firefox 3.5 ist der schnellste Browser, den Mozilla je herausgebracht hat. Er bietet neben einer stark gesteigerten JavaScript-Performance auch einen neuen Privaten Modus. Für das Abspielen bestimmter offener Video- und Audioformate sind keine Zusatzprogramme (Plug-ins) mehr erforderlich. Neu ist auch Standortbezogenes Surfen. Die neueste Version ist mehr als zweimal schneller als Ihre Vorgängerin. Auf komplexen Web-Seiten übertrifft Firefox 3.5 in puncto Geschwindigkeit die Version 2 sogar um das Zehnfache. Umfangreiche Arbeiten „unter der Haube“ für die Unterstützung neuer Standards machen Firefox 3.5 zu einem mächtigen und hochmodernen Browser für ein ganz neues Surf-Gefühl.

Firefox 3.5 entstand in einem weltweiten Open-Source-Entwicklungsprozess. Die Mozilla Community umfasst tausende ambitionierter Mitglieder, darunter sind erfahrene Entwickler, Sicherheitsexperten, Lokalisierungs- und Support-Communities in mehr als 60 Ländern und nicht zuletzt tausende aktiver Tester. Mit mehr als 300 Millionen aktiven Nutzern ist Firefox der einzige populäre Web-Browser, der von einer Non-Profit-Organisation entwickelt wurde.

"Das Internet entwickelt sich gerade rasant. Eine spannende Zeit – auch in Bezug auf Browser", freut sich John Lilly, CEO von Mozilla. "Firefox bringt die innovativsten Web-Technologien zusammen – in einem Browser, der in Leistungsfähigkeit, Funktionsumfang und Modernität seines gleichen sucht."
Neuerungen in Firefox 3.5

Firefox 3.5 macht das Surfen im Web einfacher und komfortabler. Seine neuen Features geben den Web-Entwicklern die nötige Gestaltungsfreiheit für eine neue Generation von Web-Inhalten. Durch Unterstützung offener Audio- und Video-Formate ohne Plug-ins, durch Privates Surfen und die Berücksichtigung neuester Web-Technologien wird das Erlebnis Online reicher und interaktiver.

Geschwindigkeit: Firefox 3.5 beinhaltet die mächtige neue JavaScript Engine TraceMonkey, die gerade bei den komplex aufgebauten Internet-Seiten von heute eine unerwartete Performance bietet. Firefox 3.5 übertrifft dabei die Version 3 um das Zwei-, die Version 2 um das Zehnfache.

Open Video und Audio: Zur Unterhaltung, zur Kommunikation und für Schulungen ? Videos sind aus dem modernen Internet nicht mehr wegzudenken. Als erster Browser ermöglicht Firefox nun eine direkte Integration von Audio und Video. Damit kann jeder ganz einfach und ohne Erweiterung Videos im offenen Format Ogg Theora ansehen.

Privatsphäre: Mit speziellen Funktionen gewährleistet Firefox 3.5 den Schutz der persönlichen Daten. Ist der neue Private Modus aktiviert, werden keinerlei Daten über die Aktivitäten im Netz gespeichert. Einzigartig bei Firefox: Mit der Funktion Diese Seite vergessen kann man mit wenigen Klicks alle Spuren einer Site auf seinem Rechner beseitigen. Wer seine Daten oder nur die Aktivitäten der letzten Stunden tilgen möchte, tut dies mit der verbesserten Funktion Neueste Chronik löschen.

Standortbezogenes Surfen: Damit kann man bei der lokalen Suche viel Zeit sparen. Eine Web-Seite kann anfragen, ob sie den Standort des Surfers erfahren darf. Willigt dieser ein, wird der Standort übermittelt, und schon können nahegelegene Sehenswürdigkeiten angezeigt oder Umgebungskarten abgerufen werden. Diese Funktion ist natürlich optional ? Firefox übermittelt den Standort niemals ohne ausdrückliche Erlaubnis.

Gratis zum Download

Mozilla Firefox ist ab sofort kostenlos und in Deutsch für die Betriebssysteme Windows, Linux und Mac OS erhältlich. Download unter: Get Firefox
Der Open-Source-Browser ist aber auch in mehr als 70 weiteren Landessprachen verfügbar, und zwar unter http://www.mozilla.com/en-US/firefox/all.html

Tags:

... den ganzen Beitrag lesen


PHP 5.3 veröffentlicht

Gestern wurde die neue und lang erwartete Version 5.3 von PHP veröffentlicht. Neben den normalen Bugfixes wurden auch einige Features implementiert, welche erst für PHP 6 geplant waren. Eine kurze Liste der wichtigsten Änderungen:

Closures & Lambda
GOTO
Late Static Binding
Namespaces
NOWDOC
Rundungsverhalten
Type-Hinting - self, parent, interfaces

Releasenotes PHP 5.3
PHP 5.3 Download

Auch wenn der produktive Einsatz dieses Release noch ein wenig auf sich warten lassen sollte, so sind wir von Pixeltricks schon jetzt in der Lage Ihre Projekte mit PHP 5.3 schnell und effektiv umzusetzen.

Tags:

... den ganzen Beitrag lesen