… geek and proud of it

geek!

Exposé und mehrere Monitore

without comments

expose-alle-fenster Ich bin ein großer Fan von Exposé unter OSX. Die Hauptfunktion von Exposé ist das schnelle Finden eines bestimmten Fensters. Klingt simpel und wenig spektakulär, aber wenn man oft sehr viele Fenster und Anwendungen gleichzeitig geöffnet hat lernt man Exposé sehr zu schätzen. Ich benutze hauptsächlich die Funktionen “Alle Fenster anzeigen”, “Alle Fenster des aktuellen Programms anzeigen” und “Desktop anzeigen”. Read the rest of this entry »

Written by dennis

January 8th, 2010 at 12:13 am

Posted in apple,mac osx

Tagged with , ,

Freitags Song

without comments

The Cure – Friday Im In Love

Written by dennis

November 6th, 2009 at 9:43 pm

Posted in common,ohrwurm

WP: Email-Absender

with one comment

Ich habe heute angefangen die Kundendatenbank des IRD an WordPress anzukoppeln damit sich unsere Kunden direkt auf unserer Webseite anmelden können und sich nicht extra über WordPress registrieren müssen. Beim Testen der Funktionen hat mich der Absender der Passwort-Erinnerungs-Mails extrem gestört. WordPress benutzt hier standardmäßig den Namen “WordPress” und die Email-Adresse “wordpress@domain.tld” (wobei domain.tld natürlich durch die Domain ersetzt wird auf der WordPress läuft).

Zum Glück muss man bei WordPress mit solchen Schönheitsfehlern nicht leben – ein kleines MiniPlugin genügt um seine eigene Email-Adresse und den Absendernamen festzulegen. Hier erstmal der Code:

<?php
/*
Plugin Name: myemail
Plugin URI: http://blog.kips-world.de
Description: Some wordpress hacks for my website
Version: 1.0
Author: Dennis Saenger
Author URI: http://blog.kips-world.de
*/

function kip_from_mail($f) {

        $admin = get_userdata(1);
        return $admin->user_email;
}
function kip_from_name($f) {

        $admin = get_userdata(1);
        return $admin->display_name;
}
add_filter('wp_mail_from', 'kip_from_mail', 0, 1);
add_filter('wp_mail_from_name', 'kip_from_name', 0, 1);
?>

Um den Absendernamen und die Emailadresse zu ändern benutze ich hier je einen WordPress-Filter. Immer wenn WordPress eine Email verschicken will, werden diese beiden Filter automatisch aufgerufen. Als Parameter übergibt WordPress die Default-Werte an die Funktionen. Bei kip_from_mail() übergibt WordPress “wordpress -ät- blog.kips-world.de”, bei kip_from_name() wird “WordPress” übergeben. Man könnte diese Werte jetzt modifizieren und zurückgeben, aber ich habe mich dafür entschieden einfach den Nickname und die Emailadresse des Admin als Absender zu nutzen. Ich ignoriere die Variablen ($f) in beiden Funktionen also einfach und hole mir mit der Funktion get_userdata() einfach die Werte des admin Users (der admin hat die User-ID 1).

Um das ganze selbst auszuprobieren erstellst du in deinem WordPress-Pluginordner einfach eine Datei “myemail.php” und kopierst den obigen PHP-Code dort hinein. Im Admin-Bereich von WordPress wird es dann ein neues Plugin “myemail” geben. Dieses noch schnell aktivieren und schon sendet WordPress Emails mit einem schönen Absender!

Wer jetzt Lust bekommen hat selbst kleine Modifikationen an WordPress vorzunehmen findet im WordPress-Codex alles was er wissen muss. In der Plugin-API gibt es eine Einführung zu Filtern und Actions (die beiden Plugin-Schnittstellen von WordPress). In der Function Reference werden alle WordPress-Funktionen inklusive Beschreibung aufgelistet. Und auf der Homepage von Adam findet man eine komplette Liste mit allen Filtern und Actions (sehr wichtig!).

Written by dennis

October 8th, 2009 at 10:47 pm

Lotto?!

without comments

/* mein lotto zahlen glückgenerator */

// ich spiele 6 kästchen $n = 6;

for ($i = 1; $i <= ($n*6); ++$i) { print rand(1,49); $i % 6 == 0 ? print "<br />" : print ", "; } ?>

Und wer eine eigene Ausgabe haben will: http://dev.kips-world.de/lotto.php. P.S.: Wer gewinnt darf mir etwas abgeben!

Written by dennis

September 23rd, 2009 at 4:19 pm

Posted in Uncategorized

Tagged with

iPhone Tastatur ausfahren :o

without comments

fake aber lustig :)

Written by dennis

September 21st, 2009 at 4:05 pm

Posted in apple,iphone

Tagged with ,

virtualbox – einen gast ins LAN einbinden

without comments

vbox-logo 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 »

Written by dennis

September 19th, 2009 at 11:37 pm

batch rename unter mac osx

without comments

konsole 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:

Read the rest of this entry »

Written by dennis

September 12th, 2009 at 9:50 pm

Posted in apple,coding

Tagged with , , , , ,

Festplatte retten

without comments

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.

Written by dennis

September 7th, 2009 at 5:56 pm

Posted in linux

Tagged with , , , , ,

mysql-query benchmark

without comments

logo_mysql_sun_a 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:

Es gibt noch ein paar weitere die teilweise noch tiefer in die Materie eintauchen. Einfach mal auf hackmysql.com vorbeischauen.

Written by dennis

September 3rd, 2009 at 11:28 pm

Posted in Uncategorized

ohrwurm #2

without comments

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!

Written by dennis

September 2nd, 2009 at 11:15 pm

Posted in ohrwurm