Wer hin und wieder mit Java Software arbeitet, die Java 1.5 benötigt, ist eventuell unter Mac OS X und Snow Leopard schon einmal über verschiedene, sonderbare Fehler gestossen. Wie man Java 1.5 unter Snow Leopard installieren kann, habe ich ja bereits geschrieben. Einige Probleme gibt es dabei aber hin und wieder doch noch.
Mein letzter Fehler war z.b. der folgende : “Shared archive: uninstalled generation
Bus error”
Generell liegt es an fehlerhaften bzw. falsch verweisenden SymLinks unter Mac OS X zu den jeweiligen Java Versionen.
Was da los ist und wie man es repariert bekommt kann man unter diesen Links nachlesen:
Die von Apps und Java Software zu nutzende Java Version stellt man über die “Java-Einstellungen” unter Mac OS X ein:
Vielleicht hilft das ja googlenden Leuten weiter
Wer wie ich bei der Darstellung der Firefox GUI Probleme mit Systemschriftarten auf einem Mac OS X Snow Leopard System hat, muss folgendermaßen vorgehen:
- Firefox beenden
- Die Apple Schritftsammlung starten
- Den Font “Lucida Grande” (regular / normaler Schnitt) ausfindig machen
- Den Font im Finder anzeigen lassen
- …und die Datei dort löschen.
Eventuell muss sich beim Löschen ein Admin-Benutzer authentifizieren, da es sich um eine Systemschrift handelt. Backups braucht ihr nicht, denn die Schriftart wird vom System automatisch wieder hergestellt.
Das gleiche Prozedere muss eventuell ebenso mit der Helvetica durchgeführt werden, danach sollte aber alles wieder schön aussehen.
Gefunden habe ich die Vorgehensweise bei http://www.stucel.com/blog/firefox-bold-font-ui-problem-snow-leopard, von denen ich mir auch den Screenshot vom Firefox geliehen habe (bei mir sah ja schon wieder alles toll aus).
Danke!
Habe zwar lange nichts mehr hier hinterlassen, aber wie man Java 1.5 bei einem Snow Leopard System installiert, lohnt doch einen kleinen schnellen Post.
Zum Glück kann es hier leicht nachgelesen werden:
Die wahrscheinlich bei allen CakePHP Entwickler bekannten IBM Tutorials (zuerst 2006 erschienen) wurden vor 2 Wochen auf den neuesten Stand gebracht. Unter Cook up Web sites fast with CakePHP, Part 1: Getting started findet sich jetzt für CakePHP Neulinge ein umfassendes Tutorial das viele Features von CakePHP (u.a. Caching, Security, Ajax) relativ gut beleuchtet und sich als Einstieg hervorragend eignet.
via pseudocoder.com
Beim Pseudocoder gibt es für alle CakePHP Entwickler ein höchst interessantes kostenfreies CakePHP Buch im PDF Format.
For anyone who missed it, I released a free CakePHP book a month ago. Since then it’s been downloaded over 2500 times. I’ve also received some great feedback and have made a bunch of corrections to the code and grammar. The biggest change is that the table of contents is now links and will jump you right to the section. That’s reason enough alone to grab the updated version. The new permanent home page for the book is here.
Arne hat auf Twitter einen interessanten Link geposted, der (in manchen Teilen mit viel Gelaber und einigen “schwachen” Links) 43 iPhone Development Resources aufzeigt und kurz beschreibt.
Für den ein oder anderen Einsteiger und Fortgeschrittenen iPhone Entwickler sind hier mit Sicherheit einige Perlen dabei.
Programming for the iPhone is still pretty new. It might be a bit tougher to find iPhone developer resources, but we found a bunch that will get you through building any iPhone app you might be starting on. Check out our list of our favorite developer books, blogs, podcasts, screencasts, open-source libraries, communities, forums, conferences, training, and more!
Für alle Interessierten und Suchenden gibt es hier eine kleine Präsentation, in dem Dathan Vance Pattishall, dem “database guy” von meinem Lieblingsfotodienst Flickr beschreibt, auf welche Art und Weise täglich “billions of queries” abgehandelt werden.
DVPmysqlucFederation at Flickr: Doing Billions of Queries Per Day
Debugging von Anwendungen, die auf PHP basieren, ist zwar mit Tools wie Zend / Eclipse leichter geworden als noch vor einigen Jahren, aber manchmal bedarf es auch nur einer einfachen Anzeige von Header-, Session- oder anderen Requestdaten während der Laufzeit im Frontend.
Bei der Entwicklung von CakePHP Anwendungen können von Haus aus Informationen z.B. zur Datenbankabfrage mithilfe der Konfigurationsvariable debug und des Befehls
Configure::write("debug", 1);
ausgegeben werden.
Es gibt insgesamt 4 Debug Level, die hier im Kontext einer älteren CakePHP Version (dort wird die Konstante DEBUG genutzt) folgendermaßen bezeichnet werden:
There are 4 levels of debug: 0-production, 1- development, 2- full debug with sql and 3- full debug with sql and dump of the current object. Specifying this setting to a non-zero value will force Cake to print out the results of pr( ) and debug( ) function calls, and stop flash messages from forwarding automatically. In production, the “flash messages” redirect after a time interval. With the other debug levels you get to click the “flash message” to continue. For example, if you want to set the debug level to “full debug with sql”, the line should look like this: define(‘DEBUG’, 2);
Da die Debug Informationen von Cake immer am unteren Seitenende gerendert und – sobald man vom CakePHP Standardlayout abweicht – auch äußerst hässlich werden, gibt es bei Snook.ca die folgenden CSS Klassendefinitionen, um diese Infos generell schicker zu gestalten:
.cake-sql-log {
position:fixed;
top:99%;
z-index:10;
width:100%;
background-color:#000;
color:#FFF;
border-collapse:collapse;
}
.cake-sql-log caption {
background-color:#900;
color:#FFF;
}
.cake-sql-log:hover {
top:auto;
bottom:0;
}
.cake-sql-log td {
padding:3px;
border:1px solid #999;
background-color:#EEE;
color:#000;
}
Wer jetzt noch weitere Informationen braucht (wie oben bereits erwähnt u.a. zu Sessiondaten, Log-Aktivitäten, Timings etc.) der ist mit der CakePHP DebugKit Toolbar von Mark Story gut bedient.
Die Toolbar “versteckt” sich geradezu absolut positioniert in der rechten oberen Ecke der Webseite und öffnet sich blei Klick auf ein kleines Icon.
Was sie alles bietet, zeigt sich in den folgenden Screenshots:
Ich binde die Toolbar dynamisch je nach Umgebung auf folgende Art und Weise im app_controller ein:
public function __construct(){
parent::__construct();
if(DEVELOPMENT_ENVIRONMENT){
$this->components[] = 'DebugKit.Toolbar';
Configure::write('debug', 2);
} else {
Configure::write('debug', 0);
}
}
Hier prüfe ich auf die Konstante DEVELOPMENT_ENVIRONMENT, die ich, wie alle anderen Variablen, die global für die App zur Verfügung stehen müssen, in der bootstrap.php definiere. Solche Variablen könnten eben serverseitig zur Auswahl der entsprechenden Pfade (z.B. für Logs oder temporäre Uploads) oder auch für die Auswahl der entsprechenden Datenbankverbindungen herangezogen werden.

Wer auf Mac OS versucht, im Terminal das “Bake Script” von CakePHP auszuführen, wird wahrscheinlich auf die Problematik stoßen, dass die mitgelieferte PHP Version von Mac OS nicht korrekt das Script ausführt.
Hier gibt es – wie ich gelesen habe – hundert Ansätze, das Problem zu umschiffen, der leichteste und praktikabelste ist in meinem Setting (mit MAMP auf Mac OS) folgender, direkter Aufruf einer anderen PHP Version zum Ausführen des PHP Scripts.
Der Aufruf erfolgt in dem Projekt- Konsolenordner (z.B. in meinem Fall /Users/lrheingans/Documents/Workspace/Project_X/cake/console/)
/Applications/MAMP/bin/php5/bin/php cake.php bake
Von hier läuft dann alles wie gewohnt.
Um das Bake Script unter Eclipse ausführen zu können, gibt es auch in der Bakery einige Tutorials (mir war der mini Aufwand allerdings nicht wert, ich mag meine Konsole)
Mein Freund und Kollege Wolfram bietet in seinem Weblog über Spring, Java, Hibernate einiges an Expertenwissen auf dem Gebiet komplexer Webentwicklung an.
Wer sich für Softwareentwicklung im Webbereich mit Java und Spring interessiert, sollte sich auf jeden Fall seinen RSS Feed abonnieren.



