Assuming that you’ve just installed a fresh Snow Leopard on your Mac. If you want to use again your iPhone for developing you have to import your personal iPhone public and private development key into the keychain. (Given that you’ve hopefully created a backup of your keys before reinstalling
). Unfortunately it’s currently impossible to import these certificates via a double-click or a drag & drop action etc. The keychain always prints the following annoying error message:
An error has occurred. Unable to import an item. The contents of an item cannot be retrieved.
But don’t worry! There is a simple workaround available. Just start the Terminal.app and use the following commands to manually import both keys. Please replace priv_key.p12 and pub_key.pem with your personal key files. That’s it!
1
2
| security import priv_key.p12 -k ~/Library/Keychains/login.keychain
security import pub_key.pem -k ~/Library/Keychains/login.keychain |
Das Synchronisieren von Browser-Lesezeichen und Kennwörtern ist schon eine tolle Sache, damit beispielsweise auf dem Desktop-PC und auf dem Notebook immer die selben Daten zur Verfügung stehen. Leider ist bisher weder die Firefox-Erweiterung Mozilla Weave noch Google’s Browser Chrome 4 freigegeben, die genau diese Funktionalität als Bordmittel bringen soll.

Nichtsdestotrotz gibt es für den Firefox-Browser eine hervorragende Erweiterung namens SyncPlaces, die eben genau Lesezeichen und Kennwörter zwischen verschiedenen Firefox-Installationen (z.B. zu Hause, am Arbeitsplatz) synchronisieren kann. Dabei können die Daten auf einem Web- oder FTP-Server gespeichert werden. Über die Automatikfunktion kann dann beispielsweise eingestellt werden, dass die Daten automatisch (beim Starten bzw. beim Beenden von Firefox) abgeglichen werden. Beim Synchronisieren von Kennwörtern muss aus Sicherheitsgründen ein Master-Kennwort gesetzt werden, damit die Daten nicht von Dritten ausgelesen werden können.
Eine tolle Sache! Probiert’s aus. Der Autor freut sich bestimmt über eine kleine Spende.
The Postfix mail transfer agent (MTA) provides optional lookup tables that alias specific mail addresses or domains to other local or remote addresses. In the main.cf configuration file of Postfix you can define a lookup table (a mapping file) by using the virtual_alias_maps keyword:
1
| virtual_alias_maps = hash:/etc/postfix/virtual |
In the assigned mapping file (e.g. virtual) there is now space to set up the forwarding of a mail address (pattern) to another mail address (result):
1
2
| info@example.com webmaster@example.com
mail@example.com webmaster@example.com |
To enable this configuration you have to execute postmap virtual and postfix reload. As you can see here, every time the mapping has changed, somebody must create the hash table and reload the entire MTA using these commands. To avoid this, Postfix supports MySQL mapping. Here the forwarding configuration is not coming from a mapping file anymore but from a MySQL table. Then you’ll be able to dynamically add, edit or remove forwardings without calling the commands above. In Debian / Ubuntu the postfix-mysql package is required. In the main.cf configuration file the definition of the lookup table (mapping file) changes as follows:
1
| virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf |
In the assigned mapping file (e.g. mysql-virtual-alias-maps.cf) there is now space to set up the bridge for connecting Postfix and MySQL (using the well-known parameters plus a query):
1
2
3
4
5
| user = myuser
password = mypassword
hosts = 127.0.0.1
dbname = mydb
query = SELECT result FROM forwardings WHERE pattern = '%s' |
Last but not least just create the forwardings table in your MySQL database. Adding rows to that table is like adding forwardings in the mapping file above. And again, no reload etc. is required because Postfix queries the forwardings on demand.
1
2
3
4
5
6
7
| CREATE TABLE forwardings (
pattern VARCHAR(255),
result VARCHAR(255)
);
INSERT INTO forwardings VALUES ('info@example.com', 'webmaster@example.com');
INSERT INTO forwardings VALUES ('mail@example.com', 'webmaster@example.com'); |
Justus hat mir heute einen prima Tipp gegeben: Das Eclipse-Plugin namens TeXlipse, das die beliebte Entwicklungsumgebung um einen LaTeX-Editor erweitert. Bisher habe ich für meine Dokumente TeXnicCenter unter Windows bzw. TeXShop auf dem Mac verwendet. Eigentlich war ich mit TeXnicCenter bisher zufrieden, gefehlt hat mir allerdings schon immer eine SVN-Integration, mit der Dateien direkt aus dem LaTeX-Editor ein- und ausgecheckt werden können. Dies ist jetzt mit Eclipse und dem Subclipse-Plugin ohne Probleme möglich!
Des Weiteren bin ich vom DVI-Viewer des MiKTeX-Pakets auf den SumatraPDF-Reader umgestiegen. Dieser hat gegenüber anderen Readern den Vorteil, dass er PDF-Dateien nicht sperrt, sondern die Anzeige permanent aktualisiert, sobald die Datei überschrieben wurde.
Eine tolle Sache! Probiert’s aus.

Dieses Album ist geschützt. Bei Interesse schreib’ mir einfach eine E-Mail.
Mit dem beliebten Open-Source-Tool HandBrake können DVD-Filme in das MP4-Format umgewandelt werden. Dadurch ist es beispielsweise möglich, Filme sowohl auf dem iPhone / iPod Touch sowie auf dem Fernseher mittels Apple TV anzuschauen. Jetzt stellt sich allerdings die Frage, ob denn auch der umgekehrte Weg möglich ist, d.h. wie MP4-Filme ins DVD-Format (zurück) umgewandelt werden können? Nach ein paar Recherchen im Internet bin ich über das Open-Source-Tool DVD Flick gestoßen.

Hier kann eine MP4-Datei mit der Funktion Add title ganz einfach als DVD-Titel in einem Projekt hinzugefügt werden. DVD Flick codiert dann diese Dateien ins DVD-Format um und kann das Projekt sogar direkt auf eine DVD brennen oder eine ISO-Datei erzeugen.
Hinweis: Vor dem Umwandeln ist es sinnvoll über die Funktion Edit title das Seitenverhältnis des Videos (4:3, 16:9 etc.) zu überprüfen und ggf. anzupassen. Dies geschieht über General -> Target aspect ratio sowie über Video sources -> Pixel aspect ratio.
Eine tolle Sache! Probiert’s aus. Der Autor freut sich bestimmt über eine kleine Spende.

Dieses Album ist geschützt. Bei Interesse schreib’ mir einfach eine E-Mail.
Yeah! Yesterday I finally updated my blog to WordPress version 2.8. And it was harder as expected: The update of the system finished successfully, but unfortunately the theme (K2) and most of the plugins stopped working
Fixing the theme issue was easy. If you also use the famous K2 theme, just download the latest nightly release. Yep, I don’t really trust nightly builds (even if it’s a release candidate), but it worked surprisingly well. Give it a try! Then, while I tried to update the corresponding plugins, I found out that it’s possible to omit the following plugins just by modifying the configuration:
Revision Control: I don’t wanna use revisions of posts and pages, because I’m already happy with the nice auto-save feature. Recently, I applied the Revision Control plugin, but there’s an easier way to disable revisions. Just add the following line to your wp-config.php file (before the wp-settings.php include).
define('WP_POST_REVISIONS', false);
Admin SSL: I wanna secure the entire admin area of my blog, e.g. passwords must not be sent in plain text! A short time ago, I applied the Admin SSL plugin, but again there’s an easier way to enable SSL. Just add the following two lines to your wp-config.php file (before the wp-settings.php include).
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
I must admit that I was afraid to do the WordPress update (“Never stop a running system.”). But now it’s good to see how one can simply reduce WordPress’ plugin dependencies.
Gefunden im Feuerwehrhaus der Freiwilligen Feuerwehr Kempenich:

First of all, the following HowTo article doesn’t make sense. Justus and I just found out how you can rename the Start Button of Windows (XP, 2000 etc.).
(1) In the main function determine the handle of the Desktop Windows (see GetDesktopWindow). (2) Then enumerate all Child Windows of the Desktop (see EnumChildWindows) ’til you find the Start Button (by comparing the buttons Class and Name). (3) If you found the Start Button, just pass its handle to the well-known SetWindowText function. That’s it!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| int _tmain(int argc, _TCHAR* argv[])
{
HWND lhStartButton = NULL;
// get desktop window and enum child windows
HWND lhDesktopWindow = GetDesktopWindow();
EnumChildWindows(lhDesktopWindow, EnumChildProc, (LPARAM)&lhStartButton);
// set the start button's text
SetWindowText(lhStartButton, TEXT("Stop"));
return 0;
}
BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)
{
int liLength = 255;
BOOL lbResult = TRUE;
TCHAR *lpszClass = new TCHAR[liLength + 1];
TCHAR *lpszText = new TCHAR[liLength + 1];
// get window class name and text
GetClassName(hwnd, lpszClass, liLength);
GetWindowText(hwnd, lpszText, liLength);
// compare class name and text
if ( 0 == wcscmp(TEXT("Button"), lpszClass) &&
0 == wcscmp(TEXT("Start"), lpszText) )
{
lbResult = FALSE;
(*(HWND*)lParam) = hwnd;
}
delete[] lpszClass;
delete[] lpszText;
return lbResult;
} |
Anyways. Why not blogging senseless things?