Xdebug mit XAMPP unter Windows – Standard-Einstellung vom Profiler funktioniert nicht

Kurze Lösung für ein Problem, das mich gerade doch einige Zeit aufgehalten hat.

Die Standard-Einstellung für den Dateinamen, der für die Profiler-Dumps verwendet wird, ist unter XAMPP 1.7.4:

xdebug.profiler_output_name = "xdebug_profile.%R::%u"

Windows erlaubt aber keine Doppelpunkte im Dateinamen. Es gibt keine Fehlermeldung, gar nichts. Es tut sich einfach nichts.

Geändert auf z.B.

xdebug.profiler_output_name = "callgrind.%t-%s"

…und es funktioniert. Das Prefix „callgrind.“ benutze ich, damit ich die Datei dann in KCacheGrind öffnen kann.

Weitere Informationen gibt es in der Xdebug-Doku.

Da muss man erstmal draufkommen.

Prototype 1.7 vs. jQuery 1.4.3+ Workaround

Bin gerade auf ein Problem gestoßen und möchte hier schnell meine Lösung festhalten.

Situation
Man will prototype und jQuery parallel benutzen. Dafür gibt es ja bekanntlich jQuery.noConflict().

Problem
Ab Version 1.4.3 von jQuery klappt das nicht mehr richtig. Version 1.4.2 funktioniert bei mir perfekt.
Siehe: jQuery Bugtracker und jQuery Forum

Lösung
Im Bugreport bzw. im Forum wird ein Fix für jQuery vorgeschlagen.
Ich bin den anderen Weg gegangen und habe prototype gepatcht.
Ist vielleicht nicht die schönste und beste Lösung, aber es funktioniert bei mir bisher ohne Probleme.

--- prototype.js.orig	2010-11-16 21:33:26.000000000 +0100
+++ prototype.js	2011-01-07 21:06:39.039888000 +0100
@@ -5971,7 +5971,7 @@
     var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
     if (!classNames && !className) return elements;
 
-    var nodes = $(element).getElementsByTagName('*');
+    var nodes = Prototype.$alias(element).getElementsByTagName('*');
     className = ' ' + className + ' ';
 
     for (var i = 0, child, cn; child = nodes[i]; i++) {
@@ -5985,7 +5985,7 @@
   };
 
   return function(className, parentElement) {
-    return $(parentElement || document.body).getElementsByClassName(className);
+    return Prototype.$alias(parentElement || document.body).getElementsByClassName(className);
   };
 }(Element.Methods);
 
@@ -6080,3 +6080,5 @@
     }
   });
 })();
+
+Prototype.$alias = $;

Download: prototype.js.patch

Update (17.03.2011):
Inzwischen scheint der Bug seitens jQuery in Version 1.5.1 gefixt zu sein.

#8033 jQuery 1.4.4+ fails to load on pages with old Prototype (< = 1.5) or Current Prototype + Scriptaculous in IE

RSS von Twitter mit OAuth abholen

Hi,

Twitter hat ja am 31. August die Basic Auth abgeschaltet. Es wird nur noch OAuth unterstützt.

Blöd, wenn man Twitter über den RSS-Feed gelesen hat, denn RSS-Reader wie Google Reader unterstützen kein OAuth.

Ich hab mir also ein kleines PHP-Script geschrieben, das mich per OAuth authentifiziert, meinen RSS-Feed von Twitter abholt und ausspuckt. Dieses Script kann man dann einfach in den RSS-Reader einbinden.
Hierfür habe ich die schlanke TwitterOAuth-Lib von Abraham Williams benutzt.

Bevor man das Script benutzen kann, muss man erstmal eine App bei Twitter registrieren.
Das geht unter folgender Adresse: http://dev.twitter.com/apps/

1) Zunächst muss man eine neue App anlegen, indem man rechts auf „Register a new app“ klickt.

2) Bei den Einstellungen sind 2 Punkte wichtig.

  • Application Type auf Client setzen
  • Default Access type auf Read-only setzen

3) Danach landet man wieder auf der Übersicht seiner Apps. Einfach die gerade neu erstellte App auswählen

Für das Script brauchen wir nun 4 Token/Keys:

  • Consumer Key
  • Consumer Secret
  • Access Token
  • Access Token Secret

4) Auf der Detailansicht der App findet man den Consumer Key und das Consumer Secret.

5) Dann rechts auf „My Access token“ klicken.

6) Hier findet man dann den Access Token und das Access Token Secret.

Diese 4 Werte trägt man nun einfach oben in der index.php ein und fertig.

Download: Twitter OAuth RSS Feed Fetcher

Google gibt seine Font API frei

Google hat heute seine WebFont API und sein Font Verzeichnis freigegeben.

Damit lassen sich einfach beliebige Schritarten in die eigene Seite einbinden.

Ein kleines Beispiel:

<html>
	<head>
		<link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'>
		<style>
			body {
			    font-family: 'Lobster', serif;
			    font-size: 32px;
			    text-shadow: 4px 4px 4px #aaa;
			}

			.rot {
			    -moz-transform:rotate(-25deg);
			}
		</style>
	</link></head>
	<body>
		<h1>sabel's blog!</h1>
		<h1 class="rot">sabel's blog!</h1>
	</body>
</html>

ergibt:

Google erklärt auch, was es da genau macht.
Außerdem gibts noch ne JavaScript-Lib dazu.

Nette Geschichte, mal sehen ob sich das durchsetzt.

IETester

Hi,

heute hab ich was verdammt cooles gefunden, das sich jeder Web-Entwickler wohl schon mindestens einmal gewünscht hat. Alle wichtigen Internet Explorer Versionen parallel und einfach zu bedienen auf einem System. Bisher war der einzig brauchbare Ansatz die Virtual-PC Images, die Microsoft zur Verfügung stellt.

Dank dem IETester sind diese Zeiten nun vorbei. Mit diesem super Tool kann man seine Seiten ganz bequem mit dem IE in den Versionen 5.5,6,7 und sogar 8 beta 1 testen!

Ein kurzer Test war durchaus positiv, obwohl sich die Software noch im Alpha-Stadium befindet.

Tolles Teil :)