Snow Leopard : Probleme mit Schriftarten im Firefox

Mittwoch, November 18th, 2009

Firefox hat Probleme mit der DarstellungWer wie ich bei der Darstellung der Firefox GUI Probleme mit Systemschriftarten auf einem Mac OS X Snow Leopard System hat, muss folgendermaßen vorgehen:

  1. Firefox beenden
  2. Die Apple Schritftsammlung starten
  3. Den Font “Lucida Grande” (regular / normaler Schnitt) ausfindig machen
  4. Den Font im Finder anzeigen lassen
  5. …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!

CakePHP Tutorials von IBM updated

Freitag, Juni 19th, 2009

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

Kostenfreies CakePHP Buch

Donnerstag, Juni 18th, 2009

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.

Debug Informationen in CakePHP

Mittwoch, Juni 10th, 2009

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:

DebugKit Toolbar in CakePHP
DebugKit Toolbar  in CakePHP - Timings der Prozesse
DebugKit Toolbar - Sessioninhalte, schön ausklappbar

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.

CakePHP: Auf Mac OS im Terminal bake ausführen

Dienstag, Juni 9th, 2009

CakePHP
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)

Webentwicklung mit Java: Spring

Freitag, Juni 5th, 2009

springMein 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.

Microsofts neue Suchmaschine: BING

Freitag, Juni 5th, 2009

binglogoMicrosoft hat letzte Woche relativ überraschend seine neue Suchmaschine Bing vorgestellt, wobei es sich laut Microsoft eher um eine “Decision Engine” als um eine Suchmaschine handeln soll.

Neben lautem Gelächter wegen direkt auf Bing ablaufender Pornoinhalte und einer amüsanten Erklärung des Namens (“But It’s Not Google”) macht die Webseite allerdings einen überaschend guten Eindruck:

Neben den relativ treffenden Suchergebnissen (unter anderem auch ganz andere Ergebnisse, als Google zu finden sind) erscheinen kurze Zusammenfassungen (übrigens bei mir nur im Firefox, nicht im Safari), die eine kleine Preview bieten:
Suchergebnisse für Lasse Rheingans

Bei Bing kann wie üblich neben Texten auch nach Bildern, Videos, News oder Shopping-Ergebnissen gesucht werden, ausserdem bietet die Suchzeile eine Auto-Vervollständigung (bei Google heisst das Google Suggest) an.

In den Ergebnissen bietet Bing, wie auch die Konkurrenz, direkte Verweise auf Teilbereiche der Webseite an, so am Beispiel “Google” auch direkt ein Formular für eine Google Suche:
bing searches for google
Neben der Decision Search Engine bietet Bing, ähnlich wie Google, einen Maps Dienst an. Nach kurzem Test macht dieser einen ordentlichen Eindruck, wobei das Kartenmaterial bei großen Zoomstufen von Google Maps etwas besser anmutet und eine bessere Auflösung bietet.

Techcrunch hat einen schnellen a-b Vergleich von Google und Bing durchgeführt, und kommt zu dem allgemeingültigen Ergebnis

Google and Bing at the very least feel very different, and while you can argue about the quality of one engine versus the other back and forth as much as you want, it’s painfully clear both need improvement.

Mein persönliches Fazit:
Ja, Bing ist besser als erwartet und scheint gut zu funktionieren. Für Microsoft ein mittlerer Erfolg, nach den miesen Ergebnissen von MSN / LiveSearch.

Allerdings ist für Microsoft hiermit allein noch nichts gewonnen: User, die jetzt mit Google suchen, wissen, wie und welche Suchtermini eingegeben werden müssen um Lösungen oder Webseiten auf ihre Fragen zu finden. Ich fühle mich noch nicht in der Laune, diesen “Kennenlern”-Aufwand bei Bing betreiben zu wollen, und weiss auch nicht, wieso das andere tun sollten…. oder? (Michael Arrington sieht es übrigens ähnlich)

Bing kann übrigens (genau wie Google) auch angerufen werden oder einfach leicht mit diesem Bing Firefox Add-on als Search Engine in den Firefox Browser integriert werden.

Page Speed Firefox Extension

Freitag, Juni 5th, 2009

Google hat gestern ein bisher bei Google intern genutztes Tool als Firefox Extension veröffentlicht:

Page Speed

Page Speed integriert sich in Firebug und verhält sich ähnlich wie das von Yahoo! herausgebrachte YSLOW Plugin, mit einigen weiteren Extrafeatures die eine Seitenoptimierung erfolgreicher machen können:

So bietet Page Speed eine ausgefeilte CSS Analyse an, die Hinweise auf ungenutztes (und ineffizientes) CSS Styling ausgibt:

css_summary

In der Performance Summary bietet sich ein von YSlow bekanntes Bild, wenn auch mit einigen weiteren Hinweisen:

performance_summary

Eine besonders interessante Funktion ist der sogenannte Acticvity Recorder, bei dem sämtliche Aktivität von der Page Speed Extension anhand einer mitlaufenden Zeitleiste dargestellt wird:

activity_recording

Ich werde mir unsere Webseiten in den nächsten Tagen einmal genauer mit Page Speed ansehen, und schauen, wie es sich gegenüber YSlow verhält.

Probleme mit FCKEditor und PHPList

Dienstag, Mai 12th, 2009

Die OpenSource Software PHPList eignet sich relativ gut zum schnellen Aussenden von kleinen Newslettern auf Servern mit PHP und MySQL.

Grundsätzlich geht die Installation und Einrichtung relativ zügig vonstatten, allerdings gibt es bei einzelnen Stellen diverse Konfigurationsschwierigkeiten – so sollte u.a. auf die Installations-Dokumentation gehört werden und die Installation von PHPList tatsächlich in das Verzeichnis www.deinedomain.de/lists/ gelegt werden, um Verlinkungsprobleme im Administrationsbereich zu umgehen.

Bei all denjenigen, bei denen unter dem Punk “Nachricht erstellen” (in der englischen Variante unter “send a message”) kein Rich Text Editor (FCKEditor kommt hier zum Einsatz) erscheint, können die folgenden Schritte eine Lösung sein:

1. Im Unterverzeichnis “/admin” in der Datei fckphplist.php die Zeile 589 mit dieser austauschen

// FCKConfig.ProtectedSource.Add( /<s>/g ) ; // ASP style server side code

Evtl. erlaubt die installierte PHP Version “short ASP Tags”, und somit werden hier Fehler geworfen.

2. Im Unterverzeichnis “/admin/FCKEditor/editor” die Datei fckeditor.html bearbeiten, und den Befehl zum Laden des Editor auswechseln, indem Zeile 120 auskommentiert und 119 wieder “einkommentiert” wird:

 // Base configuration file.
LoadScript( '../fckconfig.js' ) ;
// LoadScript( '../../?page=fckphplist&action=js4' ) ;

Fehlermeldungen, die (schön zu Sehen unter Einsatz von Firebug) hervorgerufen werden, lauten zum Beispiel:

FCKConfig.CustomConfigurationsPath is undefined
A.PluginsPath is undefined
FCKConfig.ContextMenu is undefined
C is undefined

PHPList FCKEditor Fehler

via http://forums.phplist.com

Live Streaming Anbieter

Donnerstag, Mai 7th, 2009

Eine günstige Variante, qualitativ (vermeintlich?) hochwertige Live Stream Videos anbieten zu können, scheint durch den neuen Anbieter StreamAPI am Markt angekommen zu sein:

StreamAPI

Beispielrechnung:
1 Stunde Live Stream von z.B. einer Pressekonferenz, eines Workshops oder einer Kundenpräsentation, wie wir es hin und wieder für verschiedene Kunden und Produkte brauchen) mit 1.500 gleichzeitigen Viewers in Full HD Auflösung kostet weniger als unschlagbare 300 Dollar.

Berechnet werden kann der Preis hier.

Wir testen den Dienst direkt beim nächsten Projekt.

via Techcrunch.