Patente

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 …

Ich verstehe es nicht …

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 …

Backup über USB-Platte

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:

  1. Funktionierendes Snapshot-Programm finden
  2. USB-Platte immer unter dem selben Namen einbinden
  3. 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:

  1. 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.

  2. 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.

  3. Geschafft …

Dank geht an:

http://reactivated.net/writing_udev_rules.html#example-usbhdd

Es kann so einfach sein

Freitag, 20. Februar 2009

FLAC in MP3 konvertieren:

for file in *.flac; do $(flac -cd “$file” | lame -h – “${file%.flac}.mp3″); done

Neues Init-Skript für “Nagios/Netways Grapher”

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

Parkplatz gekauft

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.

Wortschöpfungen

Dienstag, 17. Februar 2009

Feng-Shui McDonalds das war der Begriff der mir momentan zur Entstehung der ganzen McCafes gefehlt hat.

Danke Benni :-)

Auszeit

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:

Powder

panorma2

panorama1

Ich habe einen Traum …

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.

oetztaler1

Noch 206 Tage …

Russischer Spam

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.