2007-12-10

6to4 jetzt auch mit Reverse-DNS

Bisher war es ohne natives Ipv6 vom Provider nur möglich entweder einen ipv6-tunnel zu nutzen
oder 6to4. Leider war aber bei 6to4 keine Kontrolle über das Reverse-DNS möglich.
(Tödlich für DNS-server oder IPsec full opportunistic encryption.)

6To4 auf Linux einrichten

ip tunnel add tun6to4 mode sit ttl 100 remote any local
ip link set dev tun6to4 up
ip -6 addr add ::1/16 dev tun6to4
ip -6 route add default via ::192.88.99.1 dev tun6to4 metric 1

# Subnetz nach draußen routen
ip -6 route add :1::1/64 dev
/etc/init.d/radvd start


6to4 auf BSD einrichten

ipv6_enable="YES"
stf_interface_ipv4addr="88.198.a.b" #my IPv4 address
ipv6_defaultrouter="2002:c058:6301::"


radvd

Hier noch die /etc/radvd.conf

interface eth0
{
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
prefix :1::1/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};




Reverse-DNS

Jetzt geht es über 6to4.nro.net auch mit 6to4.
Einfach diese Seite von der eigenen 6to4-Addresse aus aufrufen (ein perl-script für
das Scripten, z.B. bei dynamischen IPs geht auch) und 2 DNS-server für die Reverse-Zone
eintragen. Fertig.

Seagate baut defekte Festplatte, die nur noch mit Windows funktioniert

Also DAS ist mal eine Leistung.
Die neuesten externen Seagate-Platten haben ein dermaßen kaputtes Power-Management
das sie nach dem Aufwachen nur noch unter Windows USB2 machen (was die Nutzbarkeit
einer modernen Platte auf den einer Floppy reduziert.).
Orgiginalbericht
Zitiert in Fefes Blog

2007-12-09

Traveling Salesman 0.7.1 mit neuem Renderer

Soeben konnte ich Traveling Salesman Version 0.7.1 und LibOsm sowie OsmNavigation in Version 0.3.8 veröffentlichen.
Dank dem parallelen Renderer von Paul Soucy und eine experimentellen lokalen Renderer von Sven Koehler war es mit möglich beide mit Hilfe eines neu geschriebenem NavigatableComponent zu einem Renderer zu vereinen, der im Offline-Fall parallel und mit verbessertem Caching (LRU-Liste zusätzlich zum Speicher-Sensitiven Cache) lokal Tiles rendert.

2007-12-08

Version 4 meines Tor-IPv6-Patches

Die vierte Version meines IPv6-Hidden-Services -Patches ist heute fertig geworden.
Änderungen:
  1. Verwendet das neue tor_addr_t statt ip6_addr
  2. einige doppelte Funktionen entfernt
  3. Änderungen welche nicht zur IPv6-Unterstützung gehören aus dem Patch enternt.

2007-12-04

Neue Gesichter bei Traveling Salesman

So langsam scheint es mit Traveling Salesman (dem von mir entwickelten Navi für OpenStreetMap) wirklich voran zu gehen.
Mit zuerst Tarek Soliman und jetzt noch Sven Koehler und Paul Soucy kommen wir jetzt bereits auf 4 aktive Entwickler.

Momentaner Fokus liegt auf dem Rendern der Karte und hier haben vor allem die letzten Beiden wirklich guten Code beigesteuert. Ich hoffe hier spätestens am nächsten Wochenende endlich wieder selber die Zeit zu finden um an dieser Baustelle zu arbeiten.

2007-11-30

Tor und IPv6

Heute konnte ich einen größeren Patch für Tor (The Onion Router) schrieben, der es ermöglicht sowohl Hidden Services auf Ipv6-Addressen zu betreiben als auch lokal den Socks4a/Socks5 -Server auf einer solchen zu betreiben.
Nick Mathewson hatte noch einige Anmerkungen zu Kleinigkeiten aber meint der er würde den Patch definitiv nach dem Branch für Tor 0.2.1.x einbauen (Momentan ist feature-freeze für 0.2.0.x).

Ursprünglich wollte ich so einen Patch schon auf dem CCCongress letztes Jahr schreiben aber da fehlt natürlich praktisch dann immer die Zeit.

Update: neue Version des Patches veröffentlicht

2007-11-15

Linux auf dem Fujitsu Stylistic 3400

Wir haben hier also einen etwas älteren Fujitsu Stylistic 3400 Tablett-PC.
Das mitgelieferte Windows98 ist zwar ganz nett aber doch heutzutage schon etwas arg eingeschränkt nutzbar.
Nicht so mit Linux.

Diese Anleitung soll zeigen wie wir also ein modernes Linux auf diesen Rechner bekommen.

Benötigte Ausrüstung:
  • Ein knoppix-ISO
  • Ein 2.5"-Festplatten-Gehäuse für den USB-Port
  • Passende Micro- und Normal-Schraubendreher für das USB-Gehäuse und die Festplattenabdeckung des Rechners

Linux-Installation ohne externe Laufwerke?
Als erste Problem stellt sich die Frage, wie man überhaupt Linux auf diese Kiste bekommt?
Immerhin gibt es keinerlei Laufwerke.
Die Lösung: Qemu!

Wir bauen die 2.5"-Festplatte aus und stecken sie in ein billiges USB-Festplatten Gehäuse.
Anschließend laden wir als Quelle ein Knoppix herunter. In diesem Fall das KNOPPIX_V5.1.1CD-2007-01-04-DE.iso .
Nehmen wir an die 2.5"-Platte ist /dev/sdc .
So können wir sie mit einem Knoppix booten mittels:

qemu -hda /dev/sdc -cdrom downloads/KNOPPIX_V5.1.1CD-2007-01-04-DE.iso -boot d

Dies reicht für eine erste Installation durch "sudo knoppix-installer" und der Auswahl "Debian-System".
Nach einer Weile haben wir nun ein System, welches aber nur mit der emulierten Graphikkarte etwas zeigen wird.
Wir fahren also den emulierten Rechner herunter und starten von der realen Festplatte. Diesmal aber mit Netzwerk.
Wir nehmen an, im lokalen Netzwerk gibt es einen DHCP-Server.
also:
Anlegen einer neuen Bridge

brctl addbr br0

Hinzufügen des lokalen Ethernet-Interfaces zur Bridge, damit unsere VM nach draußen kommt.

brctl addif br0 eth0
ifconfig br0 up

Wollen wir selber jetzt noch Netz habem, heißt es die vorhandene IP A.B.C.D von eth0 auf br0
zu übernehmen.

ip addr del A.B.C.D/24 dev eth0
ip addr add A.B.C.D/24 dev br0

jetzt endlich können wir die VM starten:

qemu -hda /dev/sdc -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/network/qemu_up

xorg auf Trident Cyber 9525?

zunächt öffnen wir die Datei /etc/X11/xorg.conf als root in einem editor.

su -c "vi /etc/X11/xorg.conf"

Die relevante Sektion lautet:

Section "Device"
Identifier "Card0"
Driver "trident"
VendorName "Trident Microsystems"
BoardName "Cyber 9525"
BusID "PCI:0:20:0"
EndSection

fpit-touchpad und xorg?

Nun werden wir zwar eine graphische Oberfläche haben, aber noch kein Touchpad um diese zu bedienen.
Also brauchen wir noch:

Section "InputDevice"
Identifier "mouse0"
Driver "fpit"
Option "Device" "/dev/ttyS3"
Option "BaudRate" "9600"
Option "MaximumXPosition" "4070"
Option "MaximumYPosition" "4020"
Option "MinimumXPosition" "0"
Option "MinimumYPosition" "0"
Option "Passive"
Option "SendCoreEvents"
EndSection
Der Treiber fpit gehört aber nicht mehr zur Grundausstattung eines xorg in Knoppix. Deshalb haben wir das Netzwerk so dringend benötigt. Also installieren wir ihn mit:

su -c "apt-get update && apt-get install xserver-xorg-input-fpit xvkbd"

Damit der Treiber funktioniert müssen nun noch vorher die folgenden beiden Zeilen in ... eingetragen werden:

su -c "vi /etc/rc.local && ln -s /etc/init.d/rc.local /etc/rc5.d/S98local"

und fügen hier vor dem "exit 0" ein:

setserial /dev/ttyS3 autoconfig
setserial /dev/ttyS3 uart 16450 irq 5 port 0xfd68

Einloggen in KDM ohne Tastatur?

Nun haben wir zwar ein funktionierendes Touchpad als Mouse-Ersatz,
dies wird uns aber nach dem Booten nichts helfen, da wir eine Tastatur
für das Passwort in KDM benötigen.
Diese haben wir vorhin in Form von xvkbd installiert und starten sie mittels:

su -c vi /etc/kde3/kdm/Xsetup

/usr/bin/X11/xvkbd -geometry 480x130 &

(wieder vor "exit 0" oder irgendwo vor dem Ende der Datei einfügen.)

Jetzt endlich können wir das emulierte System mit "su -c poweroff" herunterfahren
und die Festplatte in den Fujitsu Stylistic 3400 einbauen.


Alles so klein hier...

Da der Rechner maximal 192MB Ram hat, sollten wir noch 2 Dinge tun:
eine Swap-Partition oder -Datei anlegen und die Festplatte hierfür in den DMA-Modus
schalten.

Zunächst das letztere:

su -c "vi /etc/hdparm"

und hier die # vor dem Eintrag

/dev/hda
mult_sect_io = 16
write_cache = off
dma = on

entfernen.

Eine Swap-Partition können wir mit "cfdisk" anlegen, eine Datei mit "dd if=/dev/zero of=/DATEI bs=1m count=MEGABYTES".
Anschließend diese mit "mkswap /dev/hda2" bzw "mkswap /DATEI" initialisieren und

su -c "vi /etc/fstab"

eintragen (statt
/dev/hda2 evtl den Pfad zur Datei)
/dev/hda2        none         swap   sw
Offene Fragestellungen:

Das Sperren des Bildschirms mittels kdesktop_lock zeigt kein OnScreen-Keayboard an.
Hier scheint die Lösung etwas mit dem Setzen der HAL-Eigenschaft

hal_set_property --udi /org/freedesktop/Hal/devices/computer --key system.formfactor --string laptop
hal_set_property --udi /org/freedesktop/Hal/devices/computer --key system.formfactor.subtype --string tabletpc

Helfen tut es aber momentan noch nicht. Evtl. ist hier ein neueres KDE nötig.
Hier ist zumindest ein Patch eines SuSE-Entwicklers zu finden.
Anscheinend ist der Patch nur in OpenSuse eingebaut.


...viel Spaß am Gerät!



Quellen:
  • http://www.x.org/archive/X11R6.8.0/doc/fpit.4.html (X11 und "fpit"-Touchpad)

  • http://www.neoseeker.com/forums/529/t267577-fujitsu-stylistic-3400-linux/ (X11-config)

  • http://compsoc.dur.ac.uk/~djw/qemu.html (qemu+Bridging)

  • http://forums.xbox-scene.com/lofiversion/index.php/t41230.html (KDM und OnSreen-Keyboard)

2007-11-13

Sourceforge -Tracker in Eclipse einbinden

Soeben bin ich über eine wirklich tolle Sache gestoßen,
die ich mir hier mal eben im Blog notiere....


Artikel über das Einbinden der
Sourceforge-Tracker in Eclipse mittels Mylyn.


Zusammen mit Subclipse sollte man also wunderbar gegen die Sourceforge-Dienste arbeiten können ohne Eclipse zu verlassen. (Außer für File-Releases.)

2007-11-12

Traveling Salesman V0.6 released

Endlich ist es soweit.
Die Performance-Probleme in Traveling Salesman sind gelöst und es kann endlich seine ersten großen Testfahrten beginnen.
Als primären Datenspeicher habe ich die Datenbanken aufgegeben und mich auf strukturierte Dateien zurückgezogen. Die eingebaute HSQLDB führt lediglich noch einen Index um über Ids oder Namen(oder andere Tag-Werte) an die Elemente zu kommen wärend Abragen nach Koordinaten über eine Tile-ID als Datei laufen.

Datenbank-Unabhängug Foreign-Keys in .NET holen.

Wer in .NET etwas mit Datenbanken macht, wird die Methode getSchema(...) kennen.
Leider liefert diese in Bezug auf Foreign-Keys lediglich das solche existieren und für welche Tabellen.
Nicht jedoch welche Spalte hier welche referenziert. Eine längere Suche im Netz färdert am Ende lediglich zu Tage, daß dies über getSchema und co nicht möglich ist und es werden einem an jeder Ecke Möglichkeiten, die nur auf dem MS-SQL-Server funktionieren vorgeschlagen.

Nach stundenlanger Suche habe ich endlich eine Lösung für dieses eigentlich ja triviale Problem gefunden.
Ein asiatischer Blogger welcher eine ASP-FAQ referenziert hat uns eine Monster-Abfrage für die INFORMATION_SCHEMA-Tabellen zusammengebaut.


SELECT
FK_Table = FK.TABLE_NAME,
FK_Column = CU.COLUMN_NAME,
PK_Table = PK.TABLE_NAME,
PK_Column = PT.COLUMN_NAME,
Constraint_Name = C.CONSTRAINT_NAME
FROM
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
INNER JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK
ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
INNER JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK
ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
INNER JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU
ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
INNER JOIN
(
SELECT
i1.TABLE_NAME, i2.COLUMN_NAME
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
INNER JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2
ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
) PT
ON PT.TABLE_NAME = PK.TABLE_NAME
-- optional:
ORDER BY
1,2,3,4

2007-11-04

Code-Signing via CACert

Nachdem ich gerade ein selbst-signiertes Zertifikat für Java-WebStart erzeugen musste
um Traveling-Salesman bequemer starten zu können habe ich mich etwas umgesehen...

Wieder erwarten ist es wohl doch möglich mit meinem bestehenden CACert-Zertifikat
auch Code zu signueren.
Details http://wiki.cacert.org/wiki/CodesigningCert

Spaß mit Schrauben

Für alle anderen, die sich auch mit HSQLDB und dessen Macken rumplagen...

etwas Abschwechslung...
http://www.luftpiraten.de/sonderschrauben.html

2007-11-01

Traveling Salesman V0.4 released

(Ich poste das hier mal in englisch, einfach weil ich den Text aus einer email bereits in englisch fertig hatte.)

The file-release-system on sourceforge sucks big time but with an hour of uploading files via ftp, then searchig for them in long lists, then refreshing the whole page for each and every file, repeating these steps for every library released and finally looking at pretty hour-glasses while searching for the same files again for the download-release-page I managed to:

Release version 0.4 of Traveling Salesman. A GPL navigation- and route-planing tool using the OpenStreetMap.
Changes include:
  • added database-support
  • new settings-dialog
  • settings now have descriptions and categories
  • improved responsiveness
  • improved multi-cpu/core support
  • new UI looks much better
  • debugged dijkstra (has problems when using databases)
  • many bug-fixes

2007-10-30

Beta 2 von Traveling Salesman steht vor der Tür

Nach langer Zeit habe ich endlich die Zugqangsdaten zu diesem Blog widergefunden.
Also, woran habe ich gearbeitet? An Traveling Salesman, meinem eigenem Navi!

Dieses, hat es weit gebracht.

Warum?
Kommerzielle Navis sind gut aber keines ist so gut wie es sein könnte.
Bei jedem Fehlt irgendein wichtiges Feature.
  • Nutzung freier Karten, die nicht veralten.
  • Routing zur "nächsten Tankstelle", "nächsten Toilette", ...
  • Wärend der Fahrt einen im Radio angegebenen Stau eintragen.
  • Sie bieten keine API um erweitert oder integriert zu werden. (Car2Car über das Internet?)

Wir haben:
  • schnelles Finden von Routen (extrem schnell wenn der Kartenausschnitt in's Ram passt)
  • Multi-Prozessor/Multi-Core Unterstützung
  • Datenbank-Unterstützung
  • Download neuer Karten von OpenStreetMap
  • Nutzung vor-gerenderter Tiles für die Karten-Ansicht (spaart Ram)

Was noch fehlt:

Beta2:
  • schnellerer Datenbankzugriff (könnte sich mit HSQLDB erledigen)

Version 1.0
  • schönere Oberfläche
  • fest eingebaute HSQLDB um sofort loslegen zu können
  • einige Rendering-Artefakte beseitigen
  • bessere Suche nach Zielen (Orts-Namen, Postleitzahlen, Hausnummern)

2007-06-01

EAN13 für SDLCam

Heute konnte ich Unterstützung für das Erkennen von europäischen EAN13-Barcodes in SDLCam einbauen.
Wer schon immer mal unter Linux Barcodes per Webcam lesen wollte...hier ist eines der wenigen freien Programme um soetwas zu machen.