Ich benutze zur Zeit neben Ubuntu 9.04 auch Windows 7 auf meinem Desktop Rechner. Ich muss zugeben, obwohl mir das neue Windows ganz gut gefällt, möchte ich lieber eine LAMP Umgebung zur Webentwicklung benutzen, auch unter Windows. Also warum nicht ein Ubuntu in einer virtuellen Maschine laufen lassen und den Apache und MySQL Server von Ubuntu nutzen.
Read the rest of this entry »
virtualbox – einen gast ins LAN einbinden
batch rename unter mac osx
Ich hatte gerade das Problem, dass ich 94 Bilddateien umbenennen musste. Die Bilder hatten alle den Teilstring “bearb_#” oder “bearb_” im Namen und der sollte entfernt werden.
Unter MacOSX gibt es dafür natürlich einige grafische Tools, nicht zuletzt den Automator. Dieser bennent auf Wunsch beliebig viele Dateien um, allerdings mit festem Namen und einer laufenden Nummer. Ich wollte die Namen meiner Bilder allerdings behalten und nur den störenden Teilstring entfernen.
Hier zeigt sich mal wieder warum ich meinen Mac so mag: Geniales GUI – aber unter der Haube ein Unix mit all seinen nützlichen Tools! Einen Teilstring aus allen Dateinamen eines Ordners zu entfernen ist für ein Unix und die Bash keine Herausforderung – dazu braucht man nur eine einzige Befehlszeile:
Festplatte retten
Ich habe heute verzweifelt einen Laptop in die Hand gedrückt bekommen: “Beim Booten erscheint Partitionstabelle ungültig – was soll ich machen?”.
Erstmal ist wichtig nicht zu versuchen die Festplatte mit irgendwelchen Windows Tools wieder zu retten, denn wenn das schiefgeht sind die Daten vielleicht wirklich weg. Mein erster Schritt war also eine Ubuntu Live CD zu booten und die gesamte Festplatte mit dem Linux Tool dd auf eine externe USB Platte zu sichern:
dd if=/dev/sda of=/media/disk/sda.dd.img
Das dauert ein Weilchen, denn dd kopiert byte für byte genau wie die Daten auf der Festplatte stehen, alles in eine Datei. Dabei werden auch leere Bereich der Festplatte mitkopiert. Das heißt, dass eine 120GB Festplatte wie in meinem Fall – selbst wenn nur 10GB belegt sind – ein Image der Größe 120GB erzeugt.
Nachdem die Festplatte gesichert ist können wir das Problem etwas genauer analysieren. Mit sfdisk ersteinmal schauen, was von der Partitionstabelle noch übrig ist:
sfdisk -d /media/disk/sda.dd.img Warnung: erweiterte Partition beginnt nicht an einer Zylindergrenze DOS und Linux werden den Inhalt unterschiedlich interpretieren. \# Partitionstabelle von /media/disk/sda.dd.img unit: sectors /media/disk/sda.dd.img1 : start=229197824, size= 5240832, Id= c, bootable /media/disk/sda.dd.img2 : start= 241664, size= 20971520, Id= 7 /media/disk/sda.dd.img3 : start= 21213184, size=207982592, Id= 7, bootable /media/disk/sda.dd.img4 : start=229195776, size= 5242880, Id= f /media/disk/sda.dd.img5 : start=229197824, size= 5240832, Id= 0
Sieht ja garnicht so schlecht aus. Ich weiß, dass die Platte drei Partitionen hatte (es handelt sich um ein DELL Notebook, zwei der drei Partitionen sind von DELL angelegt, eine der angezeigten 5 Partitionen ist wohl eine erweiterte). Die Daten-Partition ist die Wichtige um die es mir geht. Woran man die erkennt? Es sollte eine der größeren Partitionen sein. Jetzt sind ein paar Grundkenntnisse über Festplatten-Partionierung und Dateisysteme vorteilhaft. Nach der Ausgabe von sfdisk vermute ich, dass es sich bei img2 um eine erweiterte Partition handelt (also nur um den Container für eine logische Partition). img3 scheint mir die Daten-Partition zu sein nach der ich suche. Um diese Partition jetzt zu mounten, muss ich noch den richtigen Offset berechnen. sfdisk sagt mir, dass img3 bei “21213184″ startet. Dieser Wert muss jetzt aber noch mit 512 multipliziert werden (Bei (S)ATA Platten ist ein Sektor 512 Byte groß). Der mount-Befehl sieht dann so aus:
mount /media/disk/sda.dd.img /mnt/sda-3 -t ntfs-3g -o ro,loop,offset=10861150208
Bingo! Ich kann die Partition aus dem Image heraus lesen. Alle Daten scheinen da zu sein! Jetzt kann ich mich an die Reparatur der Festplatte wagen. Dazu werde ich TestDisk benutzen, aber alle anderen (auch Windows Tools) sind jetzt auch in Ordnung – zur Not hat man ja ein komplettes Image der Festplatte das man zurückspielen kann.
mysql-query benchmark
Ich habe heute einen MySQL-Query mit insgesamt 14 Joins geschrieben und wollte schauen wie schnell dieser ausgeführt wird. Deshalb hab ich mir schnell ein kleines Benchmark Skript geschrieben. In dem Skript gibt man seine MySQL Daten, den Query und die Anzahl der Testläufe ein. Als Ausgabe erhält man die durchschnittliche Zeit, die die Datenbank benötigt um den Query auszuführen. Finde ich ganz nützlich wenn man versucht seine Datenbankanfragen flott zu machen.
In der MySQL-Doku gibt es auch ein ganzes Kapitel zur Query-Optimierung. Außerdem bin ich auf hackmysql.com gestossen. Dort gibt es ein paar interessante Paper zum Thema:
- Table Design and MySQL Index Details
- How To Index For Joins With MySQL
- How To Look At MySQL Joins and More ORDER BY With LIMIT
Es gibt noch ein paar weitere die teilweise noch tiefer in die Materie eintauchen. Einfach mal auf hackmysql.com vorbeischauen.
ohrwurm #2
Am Besten im Auto – so laut das der Rückspiegel wackelt …
Ist zzt. auch Nummer #1 in den deutschen Single Charts und in den iTunes Charts!
der apfelplanet #1
Ich habe mir vor einiger Zeit die Domain “apfelplanet.de” gesichert. Ich würde auf der Domain gerne ein neues Projekt starten: Einen Planet für Apple bezogene Blogs. Was ist überhaupt ein Planet? Das sagt Wikipedia dazu:
Planet ist ein serverseitiger Feedreader für Aggregator-Dienste, der zur Zusammenfassung verschiedener Nachrichtenquellen auf Websites genutzt wird. [...] Im übertragenen Sinn wird der Begriff allgemein für Websites verwendet, die mittels eines Feed-Aggregators verschiedene Nachrichtenquellen, vor allem Blogs, zusammenfassen.
Der erste Schritt muss nun sein das ich mir ein Design überlege. Es soll etwas sehr einfaches sein, was aber andererseits auch an Apple erinnern darf. Ich denke ich werde mich an Me.com orientieren. In die graue Leiste oben muss ein schönes Logo (ein Planet der nach einem Apfel aussieht wäre genial oder?
).
Dannach muss ich mich auf die Suche nach ein paar Seiten machen die sich am Planet beteiligen möchten. Ich möchte keine Apple-News Seiten aufnehmen, es sollen rein private Blogs sein. In meinem Newsreader haben sich in letzter Zeit einige “Apple”-Blogs angesammelt. Wenn die Seite steht und der Feedreader auf dem Webserver läuft werde ich die Webmaster mal anschreiben.
Ich denke ich werde als Reader “das Original” einsetzen. Dafür brauche ich zwar Python auf dem Webserver, aber wenn man seinen eigenen Root-Server hat, ist das weniger ein Problem. Dann kann ich das nächste mal gleich über die Installation und Konfiguration des Planet bloggen …
Wer sich mal ein paar Beispiele anschauen möchte kann ich den planet.ubuntuusers.de, planet.gnome.org oder den planet-index empfehlen.
aptana – die web ide
Viele Entwickler von Webanwendungen sind der Meinung ein einfacher Text-Editor reicht für die tägliche Arbeit. Für kleine Projekte oder um mal schnell eine Änderung zu machen stimmt das sicherlich, aber wenn es an größere Projekte geht erleichtert eine gute IDE die Arbeit erheblich.
kips-lastfm
Mein erstes Wordpress Plugin: kips-lastfm!
Das Plugin kann in dieser Version noch nicht besonders viel. Es zeigt eine Liste der zuletzt gespielten Titel in der Sidebar. Konfiguriert wird es über die Sidebar-Widgets im WP-Admin Menü. Einstellen kann man bis jetzt den Titel, den Last.FM Usernamen und die maximale Wort-Länge für Interpret und Album (damit das Design nicht kaputt geht).
Jetzt kann man sich natürlich fragen warum ich ein Plugin für last.fm schreibe, wenn es davon schon mehr als genug auf wordpress.org zum Download gibt. Ganz einfache Antwort: Mir gefällt keines dieser Plugins (und außerdem muss ich demnächst 2-3 Plugins für die neue IRD Webseite schreiben, da ist es gut schonmal einen Blick auf die Plugin-API zu werfen!).
kips-lastfm soll sich besonders in folgenden Punkten von anderen Plugins dieser Art unterscheiden:
- Verwendung der last.fm 2.0 API
- Anfragen an last.fm cachen
- Cache im Hintergrund mit jQuery refreshen
Das Problem der anderen last.fm Plugins: Sie laden die last.fm Daten während des Seitenaufrufs. Selbst bei der Verwendung eines Caches gibt es immer Besucher die einen spürbaren Anstieg der Ladezeit registrieren. Dies tritt immer dann auf, wenn die Plugins den Cache erneuern. Mein Plugin soll das alles im Hintergrund machen. D.h es wird immer erstmal eine Liste mit Titeln aus dem Cache angezeigt. Wenn diese Liste zu alt ist, wird der Cache per AJAX nach dem Laden der Seite im Hintergrund erneuert und die alten Daten mit den neuen ersetzt. So muss ein Besucher niemals auf den manchmal langsamen last.fm-Server warten!
Version 0.1 hat noch keine Cache/AJAX Funktion!
Download kips-lastfm-0.1
(nicht zum produktiven Einsatz gedacht, nur zu Testzwecken!)
wordpress seo
Ich bin gerade über einen sehr interessanten Vortrag von Matt Cutts gestolpert. Matt ist Leiter des Webspam Teams bei Google und hielt diesen Vortrag beim WordCamp 2009 in San Francisco. Er erzählt wie man seinen Blog für Suchmaschinen optimiert und gibt dazu jede Menge kleiner Tipps.
How do you decide whether to do a video or a podcast? Post a picture of yourself on hotornot.com. If you get a 6 or higher, do a video. If you get lower … hmm … I think it’s better to do a podcast!