Donnerstag, 26. Februar 2009
Bei heise.de gelesen:
Microsoft verklagt TomTom wegen Patentverletzung
Eines davon (5,758,352) lautet:
An operating system provides a common name space for both long filenames and short filenames. In this common namespace, a long filename and a short filename are provided for each file. Each file has a short filename directory entry and may have at least one long filename directory entry associated with it. The number of long filename directory entries that are associated with a file depends on the number of characters in the long filename of the file. The long filename directory entries are configured to minimize compatibility problems with existing installed program bases.
Hmmm … Irgendwie trifft das wohl auf jedes Filesystem zu. Wobei long doch nach deutlich mehr klingt als FAT, FAT32 und NTFS bieten können.
Lustig auch (6,175,789):
A vehicle computer system has a housing sized to be mounted in a vehicle dashboard or other appropriate location. A computer is mounted within the housing and executes an open platform, multi-tasking operating system. The computer runs multiple applications on the operating system, including both vehicle-related applications (e.g., vehicle security application, vehicle diagnostics application, communications application, etc.) and non-vehicle-related applications (e.g., entertainment application, word processing, etc.). The applications may be supplied by the vehicle manufacturer and/or by the vehicle user.
Diese trivialen und allgemein gültigen Patente werden dann als geistiges Eigentum verkauft und an weitere Firmen lizenziert. Geniale Idee …
Dienstag, 24. Februar 2009
Nachdem letzte Woche mal wieder Milliarden in die Hypo Real Estate gepumpt wurden, ist heute wieder so ein Katastrophen-Institut dran:
HSH-Nordbank erhält Milliarden-Spritze
So oder so ähnlich geht es jetzt schon einige Zeit mit der Wirtschaft. Seltsamerweise rauschen DAX und Tecdax ohne Aufenthalt in die Tiefe. Irgendwie scheint die Art und Weise wie die Rettung läuft doch nicht zu fruchten. Ich bin mal gespannt, was sich unsere Herren und Damen Schlauköpfe noch alles einfallen lassen.
Besonders genial finde ich die Idee, einen Krisensoli einzuführen. Was um alles in der Welt muss man für so eine Idee zu sich nehmen?
Vielleicht sollten die Herrschaften und Institute zur Verantwortung gezogen werden, die das Chaos verursacht haben.
Interessant ist auch das Thema Abwrackprämie für den Laien zu bewerten. Wer sich nicht ähnlich wie bei einem Klingeltonanbieter oder Telefonanschluß durch das viele Kleingedruckte und die ganzen Fußnoten liest, hat von vorne herein schon verloren.
Aber sonst wäre ja allles ein bisschen zu einfach …
Sonntag, 22. Februar 2009
An Backups denkt man ausschließlich dann, wenn es mal wieder zu spät ist
Um dem vorzubeugen, habe ich mich jetzt endlich aufgerafft und eine Backup-Lösung auf meinem Ubuntu-Notebook eingerichtet. Bis alles komfortabel funktioniert hat, waren jedoch einige Hürden zu meistern:
- Funktionierendes Snapshot-Programm finden
- USB-Platte immer unter dem selben Namen einbinden
- Möglichst ohne manuellen Aufwand Backups/ Snapshots ziehen
Punkt 1 abzuhaken war gar nicht so einfach. Entweder hab ich nur Programme gefunden welche die üblichen Backup-Mechanismen unterstützen (Full, Incremental) oder sie haben nicht wirklich funktioniert. In einer der letzten Linux User war dann ein kleiner Test von Back In Time zu finden. Das Programm kommt mit 2 Deb-Paketen daher. Einmal die Basics (Common) und dann die entsprechende Gui für QT oder GTK. Zusätzlich steht noch eine Installationsquelle als APT-Source zur Verfügung.
Nachdem eine Vorauswahl getroffen war und das Programm zuverlässig seinen Dienst verrichtet hat, wollte ich jetzt meine externe USB-Platte so einbinden, dass diese nicht unter einem dynamischen Mount eingebunden wird (z.B. /media/disk-2) sondern mit einem festen. Dies gestaltet sich im Anfangsstadium etwas schwierig. Es gibt im Internet dutzende Anleitungen die alle mehr oder weniger funktionieren. Hier die für mich funktionierende:
- Device-Infos organisieren
udevinfo -a -p /sys/block/sda/
looking at device ‘/devices/pci0000:00/0000:00:1d.7/usb8/8-3/8-3:1.0/host7/target7:0:0/7:0:0:0/block/sdc’:
KERNEL==”sdc”
SUBSYSTEM==”block”
DRIVER==”"
ATTR{range}==”16″
ATTR{removable}==”0″
ATTR{ro}==”0″
ATTR{size}==”488397168″
ATTR{capability}==”12″
ATTR{stat}==” 81157 480 652166 1059444 712102 83965 155842712 284283688 0 3771912 285419732″
looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/usb8/8-3/8-3:1.0/host7/target7:0:0/7:0:0:0/block’:
KERNELS==”block”
SUBSYSTEMS==”"
DRIVERS==”"
looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/usb8/8-3/8-3:1.0/host7/target7:0:0/7:0:0:0′:
KERNELS==”7:0:0:0″
SUBSYSTEMS==”scsi”
DRIVERS==”sd”
ATTRS{device_blocked}==”0″
ATTRS{type}==”0″
ATTRS{scsi_level}==”0″
ATTRS{vendor}==”WDC WD25″
ATTRS{model}==”00BB-22GUC0 “
ATTRS{rev}==”0000″
ATTRS{state}==”running”
ATTRS{timeout}==”30″
ATTRS{iocounterbits}==”32″
ATTRS{iorequest_cnt}==”0xc1ab9″
ATTRS{iodone_cnt}==”0xc1ab9″
ATTRS{ioerr_cnt}==”0×0″
ATTRS{modalias}==”scsi:t-0×00″
ATTRS{evt_media_change}==”0″
ATTRS{queue_depth}==”1″
ATTRS{queue_type}==”none”
ATTRS{max_sectors}==”240″
looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/usb8/8-3/8-3:1.0/host7/target7:0:0′:
KERNELS==”target7:0:0″
SUBSYSTEMS==”scsi”
DRIVERS==”"
looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/usb8/8-3/8-3:1.0/host7′:
KERNELS==”host7″
SUBSYSTEMS==”scsi”
DRIVERS==”"
looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/usb8/8-3/8-3:1.0′:
KERNELS==”8-3:1.0″
SUBSYSTEMS==”usb”
DRIVERS==”usb-storage”
ATTRS{bInterfaceNumber}==”00″
ATTRS{bAlternateSetting}==” 0″
ATTRS{bNumEndpoints}==”02″
ATTRS{bInterfaceClass}==”08″
ATTRS{bInterfaceSubClass}==”06″
ATTRS{bInterfaceProtocol}==”50″
ATTRS{modalias}==”usb:v04B4p6830d0001dc00dsc00dp00ic08isc06ip50″
looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/usb8/8-3′:
KERNELS==”8-3″
SUBSYSTEMS==”usb”
DRIVERS==”usb”
ATTRS{configuration}==”"
ATTRS{bNumInterfaces}==” 1″
ATTRS{bConfigurationValue}==”1″
ATTRS{bmAttributes}==”c0″
ATTRS{bMaxPower}==” 0mA”
ATTRS{urbnum}==”13600061″
ATTRS{idVendor}==”04b4″
ATTRS{idProduct}==”6830″
ATTRS{bcdDevice}==”0001″
ATTRS{bDeviceClass}==”00″
ATTRS{bDeviceSubClass}==”00″
ATTRS{bDeviceProtocol}==”00″
ATTRS{bNumConfigurations}==”1″
ATTRS{bMaxPacketSize0}==”64″
ATTRS{speed}==”480″
ATTRS{busnum}==”8″
ATTRS{devnum}==”3″
ATTRS{version}==” 2.00″
ATTRS{maxchild}==”0″
ATTRS{quirks}==”0×0″
ATTRS{authorized}==”1″
ATTRS{manufacturer}==”Cypress Semiconductor”
ATTRS{product}==”USB2.0 Storage Device”
ATTRS{serial}==”DEF10000C753A4C”
looking at parent device ‘/devices/pci0000:00/0000:00:1d.7/usb8′:
KERNELS==”usb8″
SUBSYSTEMS==”usb”
DRIVERS==”usb”
ATTRS{configuration}==”"
ATTRS{bNumInterfaces}==” 1″
ATTRS{bConfigurationValue}==”1″
ATTRS{bmAttributes}==”e0″
ATTRS{bMaxPower}==” 0mA”
ATTRS{urbnum}==”49″
ATTRS{idVendor}==”1d6b”
ATTRS{idProduct}==”0002″
ATTRS{bcdDevice}==”0206″
ATTRS{bDeviceClass}==”09″
ATTRS{bDeviceSubClass}==”00″
ATTRS{bDeviceProtocol}==”00″
ATTRS{bNumConfigurations}==”1″
ATTRS{bMaxPacketSize0}==”64″
ATTRS{speed}==”480″
ATTRS{busnum}==”8″
ATTRS{devnum}==”1″
ATTRS{version}==” 2.00″
ATTRS{maxchild}==”6″
ATTRS{quirks}==”0×0″
ATTRS{authorized}==”1″
ATTRS{manufacturer}==”Linux 2.6.27-12-generic ehci_hcd”
ATTRS{product}==”EHCI Host Controller”
ATTRS{serial}==”0000:00:1d.7″
ATTRS{authorized_default}==”1″
looking at parent device ‘/devices/pci0000:00/0000:00:1d.7′:
KERNELS==”0000:00:1d.7″
SUBSYSTEMS==”pci”
DRIVERS==”ehci_hcd”
ATTRS{vendor}==”0×8086″
ATTRS{device}==”0x293a”
ATTRS{subsystem_vendor}==”0×1025″
ATTRS{subsystem_device}==”0x015e”
ATTRS{class}==”0x0c0320″
ATTRS{irq}==”23″
ATTRS{local_cpus}==”ffffffff,ffffffff”
ATTRS{local_cpulist}==”0-63″
ATTRS{modalias}==”pci:v00008086d0000293Asv00001025sd0000015Ebc0Csc03i20″
ATTRS{broken_parity_status}==”0″
ATTRS{msi_bus}==”"
looking at parent device ‘/devices/pci0000:00′:
KERNELS==”pci0000:00″
SUBSYSTEMS==”"
DRIVERS==”"
Aus der ganzen Ausgabe muss jetzt ein möglichst eindeutiger String für die udev-Rule zusammen gebaut werden. Wichtig ist, dass ausschließlich ein parent device Block genommen wird.
Meine Regel sieht folgendermaßen aus:
jens@aspire:/$ cat /etc/udev/rules.d/60-wd250.rules
SUBSYSTEM==”block”, SUBSYSTEMS==”scsi”, ATTRS{vendor}==”WDC WD25″, ATTRS{model}==”00BB-22GUC0 “, SYMLINK+=”wd250“, NAME=”wd250”
Mit dieser Regel wird, sobald eine Platte mit dem Vendor “WDC WD25″ und dem Model “00BB-22GUC0 “ erkannt wird, automatisch ein neues Device /dev/wd250 angelegt. Wer mehrere Platten vom gleiche Typ hat, kann auch z.B. das Attribut “ATTRS{serial}==”DEF10000C753A4C”“ anstelle des Disk-Namens hernehmen.
Damit sollte nach dem anstecken der Platte automatisch ein neues Device generiert werden.
- Was jetzt noch fehlt ist eine kleine Erweiterung im HAL-Daemon, damit die Platte auch automatisch gemountet wird. Dazu wird einfach die Datei /etc/hal/fdi/policy/preferences.fdi um folgenden Eintrag erweitert:
<device>
<match key=”block.device” string=”/dev/wd250“>
<merge key=”volume.policy.should_mount” type=”bool”>true</merge>
<merge key=”volume.policy.desired_mount_point” type=”string”>wd250</merge>
</match>
</device>
Das wars im Schnelldurchlauf. Wird die Platte angesteckt, wird also automatisch ein neues Device /dev/wd250 generiert, was dazu führt, dass HAL das neue Device automatisch nach /media/wd250 mountet.
- Geschafft …
Dank geht an:
http://reactivated.net/writing_udev_rules.html#example-usbhdd
Freitag, 20. Februar 2009
FLAC in MP3 konvertieren:
for file in *.flac; do $(flac -cd “$file” | lame -h – “${file%.flac}.mp3″); done
Freitag, 20. Februar 2009
Nachdem die mitgelieferten Init-Skripte für den Nagios/Netways-Grapher bei uns nie wirklich zufriedenstellend funktioniert haben, habe ich einfach kurz ein eigenes geschrieben. Das Skript ist unter OpenSuSE und SLES vollständig getestet und funktioniert. Unter Redhat sollte es aber ebenfalls tun. Verbesserungen für Debian und/oder Ubuntu nehme ich gerne an.
Download
Freitag, 20. Februar 2009
Parkzeit 1:38 Stunden = Kosten 10,00 Euro
So geschehen gestern am Münchner Flughafen. Da sag ich mal DANKE und wünsch euch weiterhin viele Gäste. Mich seht ihr dort nicht mehr parken oder abfliegen.
Dienstag, 17. Februar 2009
Feng-Shui McDonalds das war der Begriff der mir momentan zur Entstehung der ganzen McCafes gefehlt hat.
Danke Benni
Sonntag, 8. Februar 2009
Ab und an sollte man sich mal eine Auszeit gönnen.
Dieses Wochenende haben wir uns mit ein paar Freunden in Sölden zum boarden getroffen. Leider hat uns das Wetter ein bisschen einen Strich durch die Rechnung gemacht. In der Nacht auf Samstag hat starker Schneefall eingesetzt, der dann glücklicherweise Samstag Nachmittag in Sonne übergegangen ist.
Das Resultat:



Donnerstag, 5. Februar 2009
… 238km und 5500 unter 10:00:00 Stunden zu schaffen
Die Anmeldung zum ÖtztalerRadmarathon ist raus. Ich hoffe mal, dass mir auch dieses Jahr wieder das Losglück hold ist. 2008 war eine absolut geile Erfahrung.

Noch 206 Tage …
Donnerstag, 5. Februar 2009
Bei einer kurzen Diskussion darüber habe ich auch schon die Abhilfe dafür bekommen. Damit diese Art von Mails schon von Haus aus hoch eingestuft wird, kann man in der local.cf folgendes setzen:
# Mail using languages used in these country codes will not be marked
# # as being possibly spam in a foreign language.
# # – german english
ok_languages de en
#
# # Mail using locales used in these country codes will not be marked
# # as being possibly spam in a foreign language.
ok_locales de en
#
score UNWANTED_LANGUAGE_BODY 4.0
In den letzten Tagen hat mein Spamassassin ein bisschen geschwächelt und jede Menge kyrillischen Spam durchgelassen.
Damit werden alle Mails, die sprachtechnisch nicht die Sprachen Deutsch oder Englisch enthalten mit 4.0 Punkten versehen.