Ubuntu 14.04: .htaccess in Apache 2.4 wieder aktivieren

Das Update auf Ubuntu 14.04 macht dem Webentwickler wenig Spaß: Erst ist der PEAR-Installer kaputt, und dann wurde auch noch Apache auf 2.4 aktualisiert, womit sich ja doch einiges ändert. Das wichtigste dürfte wohl die Änderung an der Syntax für die Authentifizierung sein, doch auch die kleineren Änderungen machen sich bemerkbar:

Mit 2.4 wurde der Default-Wert für AllowOverride von All auf None geändert. Leider kommt Ubuntu mit einer ziemlich minimalen Konfiguration für Apache, die gar keine Einstellung für diesen Wert enthält. Dadurch werden jetzt alle .htaccess Dateien deaktiviert! Man kann sich jetzt natürlich streiten, was der sinnvollere Default-Wert ist, aber zumindest für das Desktop-Ubuntu, dass ja doch eher zum entwickeln benutzt wird, fände ich „AllowOverride All“ ganz nett. (AllowOverride steuert, welche Werte der Konfiguration in einer .htaccess Datei überschrieben werden können, besonders auch die beliebten mod_redirect Regeln. Ohne diese Regeln funktionieren die meisten Websites ja gar nicht mehr).

Weiterlesen

Ubuntu 14.04: Fehler in PEAR

Update: Inzwischen gibt es einen Fix (siehe Kommentare), nur kann der auch nicht installiert werden, weil ja der Installier kaputt ist 🙁 Also bitte ein Mal manuell zumindest das Paket „Archive_Tar“ aktualisieren, dann sollte alles funktionieren. Inzwischen landen die herunter geladenen Dateien auch nicht mehr unter /build/buildd/… sondern unter /tmp/pear/download/

So wie es aussieht hat Ubuntu momentan ein kleines Problem mit Pear, dem Packetmanager von PHP: Wenn man versucht ein Packet zu installieren oder zu aktualisieren kommt diese schöne Meldung:

Starting to download Console_Table-1.2.0.tgz (10,206 bytes)
.....done: 10,206 bytes
could not extract the package.xml file from "/build/buildd/php5-5.5.9+dfsg/pear-build-download/Console_Table-1.2.0.tgz"
Download of "pear/Console_Table" succeeded, but it is not a valid package archive
Error: cannot download "pear/Console_Table"
Download failed

Weiterlesen

Kurztipp: Wenn der Rasperry Pi nach dem Update nur noch drei Mal blinkt…

Ich hatte gerade mal wieder aus Gewohnheit ein Update der Firmware meines Raspberry Pis gemacht, doch das war wohl keine gute Idee: Nach dem Neustart blinkte die „ACT“ LED nur noch drei Mal, aber das System wollte nicht mehr starten.

Das dreimalige Blinken ist ein Fehlercode, der sagt, dass die start.elf Datei nicht gefunden werden kann. Verursacht hat den Fehler das „rpi-update“ Tool, denn das tauscht ja die start.elf Datei aus.

Scheinbar gelangt dabei ein nicht druckbares Zeichen (warum auch immer) in den Dateinamen, und damit kann die Datei nicht mehr gefunden werden. Dadurch, dass das Zeichen nicht druckbar ist, sieht man das leider auch nicht…

Abhlife ist einfach: Einfach die SD-Karte in einen anderen PC stecken (Windows reicht), und die start.elf-Datei in irgendwas anderes umbenennen (z.B. „start.elf2“), und danach wieder zurück auf „start.elf“. Auf diese Weise verschwindet das nicht druckbare Zeichen, und alles funktioniert wieder 😀

Weiterlesen

Segementation Fault unter Linux/Mac debuggen

Für die Uni muss ich ja nun viel C schreiben, und da gibt es ja nun mal diese wunderbaren Pointer. Sollte man davon mal eine falsch setzen bricht das Programm ab, und es gibt eine wunderbare Fehlermeldung: Segementation Fault: 11. Jetzt heißt es also, den Fehler mit jede Menge printf() eingrenzen und nach sehr viel Suchen dann evtl. auch finden.

Nach den ich heute mal wieder einen Pointer falsch hatte, habe ich mal nachgesehen, ob es nicht auch einfacher geht… Geht es natürlich… Also eine kleine Anleitung! Ich habe extra für euch ein Programm mit Fehler gebaut: Sowas würde mir sonst natürlich nie passieren 😉

Was nun? Als ersten müssen wir dem Betriebsystem sagen, dass es einen Speicherdump (coredump) erstellen soll, wenn ein Programm abstürzt. Die Dinger werden ziemlich groß, deswegen ist das normalerweise ausgeschaltet. Um es für die akutelle Shell zu aktivieren geben wir ulimit -c unlimited ein. Damit wird bei nächsten Absturz ein core-dump erstellt. Damit kommen wir schon recht weit, doch wir können das Programm noch im Debug-Modus kompilieren, damit wir noch besser sehen, was da schief gelaufen ist. Dazu einfach gcc den Parameter -g mitgeben (ja, clang kann das auch). Danach lassen wir das Programm wieder abstürzen:Na, aufgepasst? Da steht jetzt (core dumped). Nun schauen wir mal in den Ordner /cores, dort liegt unser core dump! Und er ist (für dieses einfache Programm) >300 MB groß! Das war das, was ich oben meinte…

Weiterlesen

Hardwarebeschläunigung [Update]

…ist ja eine nette Sache. Würde man sie richtig schreiben, würde sie sogar noch etwas seriöser wirken 😉 (gefunden in der c’t 2/13 auf Seite 132)

IMGP1859

Edit: Wie Tom in den Kommentaren bemerkt hat, stimmt da auch mit der Pefo(r)mance der Überschrift was nicht…

Naja, ich wünsche dann mal allen Lesern, und besonders natürlich allen DrayTek-Korrekturlesern ein schönes neues Jahr 2013. Nehmt euch nichts vor, was ihr nicht halten könnt 😀

HP-AirPrint Drucker unter Mac ohne Treiber

Mein MacBook habe ich ja nun schon einige Zeit und bin auch sehr zufrieden. Doch eine Sache hat mich gleich am ersten Tag geärgert: Ich habe eine HP Drucker und die sind ja bekanntlich sehr Mac-freundlich. Also ging ich davon aus, dass es kein Problem sein sollte, den mit meinem MacBook zu verbinden, zumal er über AirPrint auch wunderbar mit meinem iPad funktioniert.

Ich ging als in die Systemeinstellungen/Drucker, und da tauchte er schon in der Liste auf. Also ein kurzer Klick und MacOS fragte, ob er gleich den Treiber runterladen sollten. Sollte er. Er lud. Und lud. Nach ca. 20 min habe ich auf Abbrechen geklickt, und damit die kompletten Einstellungen zum Absturz gebracht 🙁 Nach einem neuen Versuch gab es dann nur doch dieses schöne Fenster:

Weiterlesen

Publisher: Nicht die Datenquelle ändern!

Kleiner Tipp für Leute, die was mit Publisher machen (dem InDesign von Microsoft): Publisher hat ja eine tolle Funktion namens „Katalogseiten“, damit kann man Seiten automatisch auf Basis einer Excel-Tabelle (oder Datenbank etc.) generieren. Extrem praktisch das Ding (auch für andere Sachen, ich hoffe ich komme noch dazu, darüber zu bloggen). Sollte man sich definitiv mal ansehen.

Ich hab diese Funktion jetzt genutzt, um die 12 Seiten mit Umfragen in unserem Jahrbuch automatisch zu generieren. Dummerweise musste ich danach noch ein paar Werte ändern und hab bei der Gelegenheit gleich die Quell-Tabelle in Excel etwas aufgeräumt und ein paar nicht benutzte Spalten am Ende gelöscht. Und das  war eine ganz blöde Idee: Danach ist Publisher schon beim Speichern der Datei abgestürzt und beim „Zusammenführen in vorhandene Datei“ wollte er 32.767 Seiten anhängen… (Ja, das ist 0x7FFF ;))

Die Lösung: Neue Excel-Datei erstellen, alle Daten rüberkopieren, in der Präsentation Katalogtools/Liste hinzufügen/Vorhandene Liste wählen/Ja. Danach muss man leider alle Platzhalter erneut einfügen, aber die Präsentation sollte gerettet sein.

Weiterlesen

Fehler in XNA Audio API?

Mit der Audio API von XNA schlage ich mich ja schon länger herrum… Immer wieder erzeugen meine Versuche die Lautstärke zu ändern(auf gültige Werte versteht sich…) seltsamme Fehler. Ich hatte länger mit einer CrossThreadCallMessagingExeption zu kämpfen, bis sie auf einmal nicht mehr auftrat.

Ich hatte das Problem als erledigt abgetan. Heute kommt beim starten plötzlich ein Fehler: Die Zeile

SoundEffect.MasterVolume = 0.15f;

Erzeugt eine AccessViolationExeption!

Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist.

??? Was soll das denn heissen? Im Internet finden sich Hinweise, dass dieses Problem auftritt wenn man in .NET mit unsafe Code(sprich Zeigern) arbeitet und diese dann in auf Systemspeicher zeigen. Da .NET nicht für unsafe Code gemacht ist, geht es davon aus, dass der RAM einen Fehler hat und deshalb ein (interner) Zeiger kaputt ist.

Weiterlesen

Notepad++ Datei zu groß

Ich wollte heute mal meine gedumpten Speicher meiner Wii untersuchen, aber Notepad++ weigert sich doch einfach die Datei zu öffnen…

Dabei ist die Datei doch „nur“ 512MB groß… Hat jemand eine Ahnung wie ich mir die Datei binär ansehen kann?