Debian Installation auf einer Seagate FreeAgent DockStar

Durch Zufall wurde ich auf die DockStar aufmerksam geworden und habe mir direkt eine bestellt. Findigen Leuten ist es nämlich gelungen Linux auf das kleine Gerät zum laufen zu bekommen. Das Geniale an dem Gerät ist das es nur 26EUR kostet und nur 8Watt verbraucht.

CPU & RAM Übersicht (aus der busybox):

-bash-3.2# cat /proc/cpuinfo
Processor       : ARM926EJ-S rev 1 (v5l)
BogoMIPS        : 1192.75
Features        : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant     : 0x2
CPU part        : 0x131
CPU revision    : 1
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 16384
I assoc         : 4
I line length   : 32
I sets          : 128
D size          : 16384
D assoc         : 4
D line length   : 32
D sets          : 128

Hardware        : Feroceon-KW
Revision        : 0000
Serial          : 0000000000000000
-bash-3.2# free
total         used         free       shared      buffers
Mem:       126064       123488         2576            0          104
Swap:            0            0            0
Total:       126064       123488         2576

Wir können das Linux nicht direkt auf dem Gerät Installieren sondern auf einem USB Stick oder externe Festplatte. Zum testen benutze ich hier einen 4GB USB Stick. Das Wichtigste ist dass das Gerät NIEMALS vorher mit dem Internet in Kontakt war. Es gibt auch verschiedene Anleitungen. Ich habe beide benutzt ;)

NOTE: So wie es aussieht hat Jeff es geschafft Debian auf das NAND zu installieren! Das probiere ich demnächst aus.

Als erstes müssen wir die Dockstar mit einem Computer verbinden und die IP des Gerätes heraus finden:

root@host ~ # ifconfig eth0 169.254.1.0
root@host ~ # nmap -e eth0 -sP 169.254.0.0/16

Danach melden wir uns mit folgenden Daten per ssh an:

user: root
password: stxadmin

Ab jetzt streiten sich die Geister was gemacht werden soll. Ich habe mich dazu entschieden die Pogo Software zu Beenden damit wir den Knilch an unser normales Netzwerk verbinden können.

-bash-3.2# killall hbwd
-bash-3.2# mount -o remount,rw /
-bash-3.2# chmod go+w /dev/null
-bash-3.2# vi /etc/init.d/rcS

folgendes kommentieren damit es wie folgt aussieht:

#/etc/init.d/hbmgr.sh start

Jetzt können wir das Gerät ausschalten und an unser normales Netzwerk anschliessen:

-bash-3.2# mount -o remount,ro /
-bash-3.2# /sbin/halt

Bevor wir weiter machen können muessen wir einen USB Stick vorbereiten auf dem wir Debian Installieren können. Dabei muss beachtet werden das die erste Partition die root Partition wird und die zweite die Swap.

Partition 1, primaer, Typ Linux, min. 280MB, Typisch 512MB
Partition 2, primaer, Typ Swap,  ~100-500MB (je groesser, desto besser fuer das Wear Leveling des Sticks)

Nachdem die DockStar von unserem DHCP (in unserem “nomalen” Netz”) eine IP bekommen hat können wir uns wieder mit der Box verbinden und anfangen Debian Installieren mit Hilfe einem Script von Jeff Dozan:

-bash-3.2#  cd /tmp
-bash-3.2# wget http://jeff.doozan.com/debian/dockstar.debian-squeeze.sh
-bash-3.2# chmod +x dockstar.debian-squeeze.sh
-bash-3.2# export PATH=$PATH:/usr/sbin:/sbin
-bash-3.2# ./dockstar.debian-squeeze.sh

Das wird ein bisschen dauern und danach ist Debian Squeeze und ein neuer Bootloader Installiert :D Bei der Einrichtung kann man getrost der Anleitung von mikrocontroller.net folgen. So schnell kann man einen kleinen 24/7 Server mit 4 USB Ports und einem 1GB RJ45 Anschluss haben mit nur 8Watt (inklusive Platten) verbrauch.

Twitter::Lite und OAuth

Wie manche früher oder später *hust* mitbekommen haben erlaubt Twitter jetzt nur noch OAuth als Authentifizierungsverfahren. Ich war in letzter Zeit irgendwie sehr beschäftigt und habe es erst gestern gemerkt. Also musste ich mein rss2twitter script auf OAuth umstellen und dabei hat bayashi sehr geholfen. Im großen und ganzen geht das sehr einfach und hier gibt es das Script zum Nachlesen:

#!/usr/bin/perl
# script: Using the latest RSS entry to update Twitter

use strict;
use warnings;
use Net::Twitter::Lite;
use LWP::Simple;
use XML::RSS::Parser::Lite;
use WWW::Shorten::Metamark;

my $feed = get(‘http://dailywadoku.itbert.de/feed.rss’);
my $rp = new XML::RSS::Parser::Lite;

$rp->parse($feed);

my $it = $rp->get(0);

my $long_url = $it->get(‘url’);
my $short_url = makeashorterlink($long_url);
my $message = $it->get(‘description’);

$message =~ s/^.+ – //; # remove dash seperator.
$message =~ s/^\s+//; # Nuke any leading space; every char counts.
$message =~ s/\s+$//; # Nuke any trailing space; every char counts.
$message =~ s/[_]+$//; # Nuke any trailing underscores; happens when message is short.

$message = substr $message , 0 , 116; # Twitter can only handle 140 chars.
$message .= ‘ -> ‘; # Append ellipse to denote further content available.
$message .= $short_url; # Append the shortened URL.

# get in http://dev.twitter.com/apps/XXXXXX
my %CONSUMER_TOKENS = (
consumer_key    => ‘** CONSUMER_KEY **’,
consumer_secret => ‘** CONSUMER_SECRET **’,);

# get in http://dev.twitter.com/apps/XXXXXX/my_token
my $ACCESS_TOKEN        = ‘** ACCESS_TOKEN **’;
my $ACCESS_TOKEN_SECRET = ‘** ACCESS_TOKEN_SECRET **’;

my $t = Net::Twitter::Lite->new(%CONSUMER_TOKENS);
$t->access_token($ACCESS_TOKEN);
$t->access_token_secret($ACCESS_TOKEN_SECRET);
my $status = $t->update($message);

So Sachen wie ** CONSUMER_KEY ** müssen natürlich ersetzt werden und sind hier nur Platzhalter.

Erster Eindruck vom Kindle 3nd

Der Kindle hat es am Montag geschafft bei mir zu landen und so konnte ich schon ein bisschen mit ihm Spielen. Was mich als erstes Überrascht hat war die Größe des Gerätes und ich dachte das er doch recht klein ist. Nachdem ich jetzt ein bisschen Gelesen habe muss ich sagen das es genau die richtige Größe ist und er sich gut in der Hand anfühlt. Man kann auf dem Display super lesen und das Gerät kann man sehr gut in einer Hand halten und auch umblättern. Die Geschwindigkeit ist sehr gut. Sobald man unten angekommen ist und umblättert und oben weiter lesen will ist die Seite auch schon umgeblättert. 3G und Wlan funktionieren sehr gut und sind schnell. Beim Wlan habe ich gemerkt das nur Amerikanische Wlan Kanäle Unterstützt werden. Es kann also sein das man ggf. am Router den Channel ändern muss. Über 3G kann man nur auf en.wikipedia.org zugreifen. Den Browser habe ich noch nicht wirklich getestet, genau wie Text-to-Speech oder MP3s oder Japanisch oder … oder …

Bis jetzt bin ich sehr zufrieden mit dem Gerät nur hätte ich mir lieber gleich eine Tasche dazu bestellt. Jetzt muss ich warten bis sie bei Amazon UK verfügbar sind um sie mir dort zu Bestellen. Um die Größe besser einzuschätzen habe ich ein paar Vergleiche geschossen:

[flickr album=72157624726160783 num=20 size=Square]

Japanische Eingabe auf dem Blackberry 9700

Nach fast einem Jahr habe ich es endlich geschafft das ich Japanisch auf dem Blackberry schreiben kann. Wie auch bei dem 9000er musste man einen kleinen Trick anwenden, aber es hat nicht auf einem Blackberry mit einer QWERTZ Tastatur funktioniert. Glaubt mir ich habe hunderte Firmwares ausprobiert die Japanische Eingabe unterstützen und erst jetzt funktioniert sie mit der letzten Firmware von Hong Kong CSL.

Firmware: 9700jEastAsia_PBr5.0.0_rel1446_PL5.1.0.175_A5.0.0.862_CSL_Limited_customers.exe

Anleitung findet man immer noch am gleichen Platz.

Froscon 2010 in St. Augustin

Vergangenes Wochenende war die fünfte (für mich die erste) Froscon in St. Augustin in der nähe von Bonn. Es gab spannende Vorträge und leckere Getränke. Da ich leider nicht alle Vorträge sehen konnte warte ich schon gespannt auf die Streams, aber bis das soweit ist wollte ich schon einmal eine Empfehlung abgeben von Vorträgen die ich sehr gut gefunden habe:

  • Gute Open-Source-Projekte bestehen aus mehr als nur Code (lnk) (folien)
  • Antifeatures (lnk)
  • Quadrocopter für Anfänger (lnk)
  • Die wunderbare Welt der Regulären Ausdrücke (lnk) (folien)

Das sind meine vier must seen Vorträge die man sich auch Anschauen sollte, wenn man nicht vor Ort war. Sobald die Videos verfügbar sind werde ich die noch ergänzen.

Aufnahmen: http://ftp-b.stw-bonn.de/froscon/2010/

Domains abschalten

Wie schaltet man am besten unbenutzte Domains ab? Über die Jahre sammeln sich immer ein paar Domains an und ich bin momentan am überlegen ein paar nicht mehr zu verlängern. Doch wie schaltet man am besten ab? Dabei stellen sich bei mir Fragen wie:

  • Welche Email Adressen werden noch benutzt?
  • Greift noch irgendwer auf die Domains zu?

Dabei habe ich mir folgende Strategie ausgedacht:

  1. Domains auf die neue oder andere Domain weiterleiten (siehe Apache Konfiguration)
  2. Emails automatisch im Thunderbird farblich markieren lassen
  3. gegebenenfalls Apache Logs überprüfen

Nach einer Weile kann man dann sehen welche Emails noch benutzt werden und diese dann beim Anbieter auf eine Aktuelle ändern. Nachdem dies passiert ist werde ich den A record der Domain entfernen. Somit ist die Domain so gut wie abgeschaltet, nur man bekommt noch Emails um zu schauen ob wirklich noch wer Adressen der Domains benutzt. Sobald man sicher ist das keiner mehr die Adressen benutzt (kann man eigentlich nie) kann man auch den MX record abschalten und weg ist die Domain. Dann sollte man noch sicher gehen das sich die Domains nicht automatisch verlängern bzw. Kündigen.

Apache Konfiguration zum Weiterleiten:

<VirtualHost example.org:80>
ServerName www.example.org
ServerAdmin webmaster@example.org

ErrorLog /var/log/apache2/error.log
LogLevel warn
ErrorDocument 404 http://www.itbert.de

RewriteEngine on

Options +FollowSymLinks
RewriteRule   ^/(.+)  http://www.itbert.de/$1  [R,L]
RewriteRule   ^/  http://www.itbert.de/  [R,L]

CustomLog /var/log/apache2/access.log combined
ServerSignature Off

</VirtualHost>

Warten auf den Kindle 3. Generation

Letzten Monat habe ich mir den Kindle2 bei Amazon bestellt und war ein bisschen Enttäuscht zu sehen das der Kindle momentan nicht Lieferbar war. Eine Woche später wurde der Kindle3 der Öffentlichkeit vorgestellt und ich war sehr Erleichtert :) So kann es kommen. Jetzt heißt es jedenfalls noch bis Ende des Monats zu warten bis das Gerät schließlich Verschickt wird.

Aber warum habe ich mir einen Kindle bestellt?

Ich habe ungefähr zwei Monate darüber nachgedacht (was für mich schon lange ist) ob ich mir ein eBook Reader kaufen soll oder nicht. Natürlich auch welchen, Nook oder Kindle? Am Anfang meiner Überlegungen wollte ich unbedingt das Nook haben, weil es Wifi hatte (aber leider kein 3G, jedenfalls zu dem Zeitpunkt. Funktioniert aber nur in den U.S.). Ein paar Wochen später war dann die Entscheidung für den Kindle gefallen. Die Punkte waren:

  • Kostenloses 3G Weltweit für Bücher, Zeitschriften und Wikipedia
  • für mich interessantere Magazine im Kindle Store
  • Linux auf dem Kindle
  • Die Möglichkeit meine Bücher und Zeitschriften auf dem Blackberry und iPod Touch zu lesen

Das waren grob die Gründe warum ich mich für den Kindle entschieden habe. In einigen Foren konnte man Lesen das mit einer 2.5.x Firmware der Browser auch für außerhalb der U.S kostenlos war, aber das wurde von Amazon nie Offiziell bestätigt.

Was will ich mit dem Kindle machen?

Fleißig Bücher lesen bin ich nicht wirklich. Den Kindle habe ich mir in erster Linie zum Lesen von Magazinen und Zeitschriften aus Übersee gekauft. Das Spart mir einiges an Zeit und Geld. Dann muss ich nicht immer zum internationalen Zeitungsfratzen am Bahnhof fahren und mir die überteuerten Zeitschriften kaufen. Zum Beispiel kostet hier eine “Time” Ausgabe fast 6EUR und im Kindle Store bekomme ich einen ganzen Monat für 2,99USD (4 Ausgaben). Das ist schon ein enormer Unterschied. Und falls ich dann doch irgendwann mal ein Buch lesen sollte, dann kann ich das auch machen oder es mir vorlesen lassen ;) Außerdem kann man ziemlich viele Formate auf dem Kindle lesen. LEIDER noch nicht EPUB, aber das kommt mit Sicherheit (Ich hoffe es!).

Der Neue – Kindle3

Ich bin verdammt froh das ich so lange gebraucht habe bis ich diese Entscheidung getroffen hatte das ich mir den Kindle kaufen will, denn der Kindl3 sieht um einiges Besser aus und kann auch mehr als sein Vorgänger. Am meisten freuen ich mich auf:

  • native Japanese support
  • kleineres und leichteres Gerät
  • Wifi
  • 4GB interner Speicher
  • Design des Gerätes (sieht besser aus und ist in Graphite erhältlich)

Japanisch konnte man auch schon auf dem Kindle2 darstellen, aber nur über einen Hack und ich bin sooo froh das es nun Offiziell unterstützt wird. Über so Sachen wie verbesserten PDF reader oder besseres Display kann ich nichts sagen, aber da werden wir mal schauen ob der was bringt oder nicht.

Es gibt schon ein kurzes Hands On Video bei Youtube von dem Kindle und einige Previews. In der Zeit bis das Gerät endlich Geliefert ist sollte mir nicht langweilig werden und ich kann mich ja schon am gelieferten Strom Adapter erfreuen… Aber am besten schaut ihr euch mal das Gerät selber an. Die Wifi only Version gibt es schon fuer 139USD (knapp 100EUR) und die Wifi+3G für 189USD (150EUR). Das tolle bei Amazon ist das die gleich den vermeintlichen Zoll mit abbuchen und man somit nicht gezwungen ist bis zur nächsten Zoll Station zu fahren und das Paket abzuholen. Somit kommt man bei einem Kindle Wifi+3G + Europe Adapter (5USD) + Zoll und Versand auf knapp 212EUR (je nach Wechselkurs vielleicht mehr oder weniger). Ich freue mich jedenfalls schon auf das Gerät und bin gespannt wie es sein wird….

Update: Vier Tage vor dem Start gibt es unzählige neue Reviews.

Blackberry Widget – Update Funktion

Auf dem Blackberry kann man zum Glück noch Programme installieren die nicht aus der App World kommen. Entweder man installiert sie OTA (OverTheAir) oder mit dem Blackberry Manager. Ich denke das jeder lieber die OTA Variante wählt. Wenn man eine App über App World heruntergeladen und Installiert hat, dann wird man auch über neue Updates informiert. Das Funktioniert leider nicht bei Apps die man OTA von irgendwo anders installiert hat und so muss jede App eine eigene Update Funktion mit sich bringen. Dazu habe ich einen kleinen XML Parser geschrieben der auf Abruf (oder Automatisiert – je nachdem wie man es einbaut) nachschauen kann ob es eine neue Version vorhanden ist. Dafür muss man selber nur in der App das folgende Script einbauen und auf dem Server die passende xml Datei hinterlegen und updaten wenn man eine neue Veröffentlichen will.

Die XML Datei sieht bei mir folgendermaßen aus:

<version>
<weatherme version=”1.0.0.4″ url=”http://blackberry.itbert.de/weatherme/weatherme.jad”></weatherme>
<wmlive version=”1.0.0.3″ url=”http://blackberry.itbert.de/wmlive/wmlive.jad”></wmlive>
<wadokulive version=”1.0.0.4″ url=”http://blackberry.itbert.de/wadokuonline/wadokuonline.jad”></wadokulive>
</version>

An sich ganz einfach. Für jede Anwendung kann man die Version und die URL des Downloads angeben. Was braucht man mehr? Das Javascript sieht auch nicht viel komplizierter aus:

var AppVersion = “1.0.0.2”;
var AppName = “weatherme”;

function checkUpdates () {

var req = new XMLHttpRequest();
req.open(“GET”, “http://blackberry.itbert.de/finger/version.xml”, false);
req.send(null);

if (req) {
version = req.responseXML.getElementsByTagName(AppName).item(0).getAttribute(“version”);
url = req.responseXML.getElementsByTagName(AppName).item(0).getAttribute(“url”);

if ( AppVersion < version ) {
if (confirm(‘Do you want Upgrade to version ‘+version+’?’))
{
var args = new blackberry.invoke.BrowserArguments(url);
blackberry.invoke.invoke(blackberry.invoke.APP_BROWSER, args);
}
}

}
}

Damit das ganze auch Funktioniert braucht man folgende Berechtigungen in der config.xml

<feature id=”blackberry.invoke” required=”true” version=”1.0.0.0″/>
<feature id=”blackberry.invoke.BrowserArguments” required=”true” version=”1.0.0.0″/>
<feature id=”blackberry.identity” required=”true” version=”1.0.0.0″/>
<feature id=”blackberry.ui.dialog” required=”true” version=”1.0.0.0″/>
<feature id=”blackberry.app” required=”true” version=”1.0.0.0″/>

Jetzt muss man nur noch die Funktion in einen Button einbauen oder bei jedem Start der App aufrufen.

<script language=”javascript”  type=”text/javascript”>
checkUpdates ();
</script>

Das ganze als Paket gibt es hier und bei Gelegenheit werde ich das in meine bestehenden Apps einbauen, aber vorher verdrücke ich mich in das hoffentlich kühlere Wien.