Redmine: Premature end of script headers: dispatch.fcgi

Wenn ihr Redmine über mod_fcgid eingebunden habt und es einfach nicht starten will und auch keine Fehler ausspuckt, außer Premature end of script headers: dispatch.fcgi im Apache error log.

Dann solltet ihr mal überprüfen, ob die Datei configuration.yml die richtigen Berechtigungen aufweist… Hat mich jetzt einige Zeit gekostet, das raus zu finden.

Drauf gekommen bin ich, weil ich Redmine mal via Passenger anstatt via fcgi eingebunden habe. Tolle Sache!

Code completion für jQuery in NetBeans 7.1

Tach,

NetBeans rühmt sich ja schon lange damit, dass sie code completion für JavaScript Dateien und Libraries haben. Unter anderem auch für jQuery. In der Doku findet man dazu sogar einen recht ausführlichen Artikel.

Leider hat das bei mir nie funktioniert und ich konnte auch nach ausführlichem googlen nichts finden, was mir half.

Heute bin ich aber endlich auf die Lösung gestoßen:

Man darf die Datei nicht umbenennen!

Ich hatte meine Datei immer in jquery.js umbenannt. Damit klappts aber nicht.
Die Datei muss, z.B. für die aktuellste Version 1.7.1, jquery-1.7.1.js heißen!

Im Moment bin ich mir noch nicht sicher, warum das so ist und ob das Absicht ist oder ob es sich um einen Bug handelt. Allerdings könnte ich mir vorstellen, dass es mit der Doku zusammenhängt, die neben der code completion angezeigt wird. Diese Doku muss aus dem Netz gezogen werden, da sie nicht in der JavaScript Datei enthalten ist.

Klappt übrigens auch perfekt mit der komprimierten Version jquery-1.7.1.min.js.

Begeistert bin ich davon allerdings nicht. Ich würde meine Dateien eigentlich gerne so benennen, wie ich es will.

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.

Linux: Aktives Fenster auf anderen Monitor verschieben

Mit diesem kleinen Script lässt sich das aktuelle Fenster leicht per Shortcut von einem auf den anderen Monitor verschieben. Funktioniert auch mit maximierten Fenstern, die nach dem Verschieben weiterhin maximiert bleiben.

Das Script ist für zwei Monitore mit gleicher Auflösung ausgelegt.

#!/bin/bash

# screen width
screen_width=1280

# active window
window=`xdotool getactivewindow`

# get active window size and position
x=`xwininfo -id $window | grep "Absolute upper-left X" | awk '{print $4}'`
w=`xwininfo -id $window | grep "Width" | awk '{print $2}'`

maximized=false
if [[ "$w" -eq "$screen_width" ]]; then
	maximized=true
fi

# window on left monitor
if [ "$x" -lt "$screen_width" ]; then
	
	if $maximized; then
		wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
	fi

	wmctrl -r :ACTIVE: -e 0,$screen_width,-1,-1,-1

	if $maximized; then
		wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
	fi

# window on right monitor
else
	
	if $maximized; then
		wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
	fi

	wmctrl -r :ACTIVE: -e 0,0,-1,-1,-1

	if $maximized; then
		wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
	fi

fi

Weitere Junk-Ordner in Thunderbird definieren

Hi,

ich bekomme neben meinen privaten E-Mails auch alle Mails, die an die Spam-Report-Adresse (abuse@) gesendet werden. Diese werden in einen Ordner einsortiert.

Dumm ist nur, dass der Junk-Filter im Thunderbird diese Mails meist als Spam erkennt und in den Junk-Ordner des Kontos verschiebt.

Auf meiner Suche nach einer Lösung bin ich auf ein kleines Thunderbird-Addon gestoßen: FolderFlags

Dieses Addon ermöglicht es einem unter anderem das Junk-Flag für weitere Ordner zu setzen.
Dadurch ignoriert der Junk-Filter diesen Ordner und neue ankommende Mails, die in diesem Ordner landen, werden nicht mehr überprüft.

Super Sache!

Subversion: Autor und Commit Message nachträglich mit tortoisesvn ändern

Will man den Autor oder die Log message eines Commits im Nachhinein ändern, bietet tortoisesvn dafür zwei Kontextmenüpunkte an.

Im Log-Fenster einfach die gewünschte Revision auswählen und rechtsklicken.
Dann erscheint folgendes Menü:

Dort kann man dann „Edit author“ oder „Edit log message“ auswählen.
Beispiel für Autor:

Damit diese beiden Funktionen funktionieren, muss auf dem Server im jeweiligen Repository ein hook-script installiert/aktiviert werden.

Im Verzeichnis hooks einfach eine Datei pre-revprop-change mit folgenem Inhalt anlegen:

#!/bin/sh
exit 0

Dann noch die Berechtigungen entsprechend setzen:

chmod ug+x pre-revprop-change

Und schon klappts.

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