aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--articles/2010-02-06_debian_auf_dem_sheevaplug.md65
-rw-r--r--articles/2010-02-24_traffic_ueberwachung_mit_vnstat.md10
-rw-r--r--articles/2010-03-16_erfahrungen_mit_dem_sheevaplug_im_laengeren_einsatz.md22
-rw-r--r--articles/2010-07-12_ocr_und_automatische_uebersetzung_mit_dem_n900.md17
-rw-r--r--articles/2010-12-09_plugbox_linux_ein_archlinux_port_fuer_den_sheevaplug.md12
-rw-r--r--articles/2011-03-31_sheevaplug_ueberwachung.md93
-rw-r--r--articles/2011-06-14_darstellen_von_gps_daten_mit_gnuplot.md105
-rw-r--r--articles/2011-09-03_die_sache_mit_dem_netzteil.md7
-rw-r--r--articles/2011-10-01_lighttpd_konfiguration_fuer_symphony.md17
-rw-r--r--articles/2011-10-02_tarsnap_backups_fuer_paranoide.md28
-rw-r--r--articles/2011-10-16_kurztipp_n900_retten_ohne_neu_zu_flashen.md15
-rw-r--r--articles/2011-11-08_informationen_umformen_mit_xsl.md143
-rw-r--r--articles/2011-12-28_gedanken_zu_de_zentralen_netzen.md36
-rw-r--r--articles/2012-01-25_erfahrungen_mit_openslides.md49
-rw-r--r--articles/2012-04-07_mobile_endgeraete_und_freie_software.md58
-rw-r--r--articles/2012-08-29_erfahrungen_mit_einer_ssd_unter_linux.md48
-rw-r--r--articles/2012-11-20_virtualisierung_mit_kvm_und_virtuelle_netzwerke_mit_vde.md135
-rw-r--r--articles/2013-03-01_introduction_to_expressing_and_controlling_object_ownership_in_cpp11.md92
-rw-r--r--articles/2013-04-27_declaring_functions_local_to_a_translation_unit_in_cpp.md49
-rw-r--r--articles/2013-10-06_notizen_zu_cpp_und_unicode.md80
-rw-r--r--articles/2013-11-03_mapping_binary_structures_as_tuples_using_template_metaprogramming.md261
-rw-r--r--articles/2013-12-21_musikalischer_jahresruekblick_2013.md49
-rw-r--r--articles/2014-01-05_disabling_methods_in_implicitly_instantiated_class_template_specializations_in_cpp.md74
-rw-r--r--articles/2014-07-11_mapping_arrays_using_tuples_in_cpp11.md63
-rw-r--r--meta.xml6
-rw-r--r--microblog.xml1
-rw-r--r--pages/about.md17
-rw-r--r--pages/contact.md20
-rw-r--r--pages/impressum.md11
-rw-r--r--pages/projects/binary_mapping.md24
-rw-r--r--pages/projects/codepoint_iterator.md15
-rw-r--r--pages/projects/dotfiles.md28
-rw-r--r--pages/projects/graph_storage.md12
-rw-r--r--pages/projects/input_xslt.md30
-rw-r--r--pages/projects/scribble.md8
-rw-r--r--pages/projects/simple_parser.md18
-rw-r--r--pages/projects/spam_question_filter.md12
-rw-r--r--pages/projects/trie.md15
l---------tags/cpp/2013-03-01_introduction_to_expressing_and_controlling_object_ownership_in_cpp11.md1
l---------tags/cpp/2013-04-27_declaring_functions_local_to_a_translation_unit_in_cpp.md1
l---------tags/cpp/2013-10-06_notizen_zu_cpp_und_unicode.md1
l---------tags/cpp/2013-11-03_mapping_binary_structures_as_tuples_using_template_metaprogramming.md1
l---------tags/cpp/2014-01-05_disabling_methods_in_implicitly_instantiated_class_template_specializations_in_cpp.md1
l---------tags/cpp/2014-07-11_mapping_arrays_using_tuples_in_cpp11.md1
l---------tags/development/2011-03-31_sheevaplug_ueberwachung.md1
l---------tags/development/2011-06-14_darstellen_von_gps_daten_mit_gnuplot.md1
l---------tags/development/2011-11-08_informationen_umformen_mit_xsl.md1
l---------tags/development/2013-03-01_introduction_to_expressing_and_controlling_object_ownership_in_cpp11.md1
l---------tags/development/2013-04-27_declaring_functions_local_to_a_translation_unit_in_cpp.md1
l---------tags/development/2013-10-06_notizen_zu_cpp_und_unicode.md1
l---------tags/development/2013-11-03_mapping_binary_structures_as_tuples_using_template_metaprogramming.md1
l---------tags/development/2014-01-05_disabling_methods_in_implicitly_instantiated_class_template_specializations_in_cpp.md1
l---------tags/development/2014-07-11_mapping_arrays_using_tuples_in_cpp11.md1
l---------tags/english/2013-03-01_introduction_to_expressing_and_controlling_object_ownership_in_cpp11.md1
l---------tags/english/2013-04-27_declaring_functions_local_to_a_translation_unit_in_cpp.md1
l---------tags/english/2013-11-03_mapping_binary_structures_as_tuples_using_template_metaprogramming.md1
l---------tags/english/2014-01-05_disabling_methods_in_implicitly_instantiated_class_template_specializations_in_cpp.md1
l---------tags/english/2014-07-11_mapping_arrays_using_tuples_in_cpp11.md1
l---------tags/german/2010-02-06_debian_auf_dem_sheevaplug.md1
l---------tags/german/2010-02-24_traffic_ueberwachung_mit_vnstat.md1
l---------tags/german/2010-03-16_erfahrungen_mit_dem_sheevaplug_im_laengeren_einsatz.md1
l---------tags/german/2010-07-12_ocr_und_automatische_uebersetzung_mit_dem_n900.md1
l---------tags/german/2010-12-09_plugbox_linux_ein_archlinux_port_fuer_den_sheevaplug.md1
l---------tags/german/2011-03-31_sheevaplug_ueberwachung.md1
l---------tags/german/2011-06-14_darstellen_von_gps_daten_mit_gnuplot.md1
l---------tags/german/2011-09-03_die_sache_mit_dem_netzteil.md1
l---------tags/german/2011-10-01_lighttpd_konfiguration_fuer_symphony.md1
l---------tags/german/2011-10-02_tarsnap_backups_fuer_paranoide.md1
l---------tags/german/2011-10-16_kurztipp_n900_retten_ohne_neu_zu_flashen.md1
l---------tags/german/2011-11-08_informationen_umformen_mit_xsl.md1
l---------tags/german/2011-12-28_gedanken_zu_de_zentralen_netzen.md1
l---------tags/german/2012-01-25_erfahrungen_mit_openslides.md1
l---------tags/german/2012-04-07_mobile_endgeraete_und_freie_software.md1
l---------tags/german/2012-08-29_erfahrungen_mit_einer_ssd_unter_linux.md1
l---------tags/german/2012-11-20_virtualisierung_mit_kvm_und_virtuelle_netzwerke_mit_vde.md1
l---------tags/german/2013-10-06_notizen_zu_cpp_und_unicode.md1
l---------tags/german/2013-12-21_musikalischer_jahresruekblick_2013.md1
l---------tags/linux/2010-02-06_debian_auf_dem_sheevaplug.md1
l---------tags/linux/2010-02-24_traffic_ueberwachung_mit_vnstat.md1
l---------tags/linux/2010-03-16_erfahrungen_mit_dem_sheevaplug_im_laengeren_einsatz.md1
l---------tags/linux/2010-07-12_ocr_und_automatische_uebersetzung_mit_dem_n900.md1
l---------tags/linux/2010-12-09_plugbox_linux_ein_archlinux_port_fuer_den_sheevaplug.md1
l---------tags/linux/2011-10-01_lighttpd_konfiguration_fuer_symphony.md1
l---------tags/linux/2011-10-16_kurztipp_n900_retten_ohne_neu_zu_flashen.md1
l---------tags/linux/2012-04-07_mobile_endgeraete_und_freie_software.md1
l---------tags/linux/2012-08-29_erfahrungen_mit_einer_ssd_unter_linux.md1
l---------tags/linux/2012-11-20_virtualisierung_mit_kvm_und_virtuelle_netzwerke_mit_vde.md1
l---------tags/opinion/2011-12-28_gedanken_zu_de_zentralen_netzen.md1
l---------tags/opinion/2012-04-07_mobile_endgeraete_und_freie_software.md1
l---------tags/opinion/2013-12-21_musikalischer_jahresruekblick_2013.md1
l---------tags/sheevaplug/2010-02-06_debian_auf_dem_sheevaplug.md1
l---------tags/sheevaplug/2010-03-16_erfahrungen_mit_dem_sheevaplug_im_laengeren_einsatz.md1
l---------tags/sheevaplug/2010-12-09_plugbox_linux_ein_archlinux_port_fuer_den_sheevaplug.md1
l---------tags/sheevaplug/2011-03-31_sheevaplug_ueberwachung.md1
l---------tags/sheevaplug/2011-09-03_die_sache_mit_dem_netzteil.md1
95 files changed, 1802 insertions, 0 deletions
diff --git a/articles/2010-02-06_debian_auf_dem_sheevaplug.md b/articles/2010-02-06_debian_auf_dem_sheevaplug.md
new file mode 100644
index 0000000..c7bc555
--- /dev/null
+++ b/articles/2010-02-06_debian_auf_dem_sheevaplug.md
@@ -0,0 +1,65 @@
+# Debian auf dem SheevaPlug
+
+Auf dem herkömmlichen [Weg](http://www.cyrius.com/debian/kirkwood/sheevaplug/) ist es zwar möglich ein Debian auf dem SheevaPlug zu installieren, jedoch nur auf einem externen USB-Stick oder auf einer SD-Karte. Die Installation auf dem 512MB großen internen Flashspeicher des Plugs ist damit nicht möglich. Es gibt jedoch einen Weg um Debian auch im internen Speicher zu installieren, der auch noch um einiges komfortabler als der oben verlinkte Weg ist.
+
+Als erstes laden wir uns den normalen SheevaInstaller herunter mit dem man Ubuntu 9.04 auf dem Sheeva installieren kann ([klick](http://www.plugcomputer.org/index.php/us/resources/downloads?func=select&id=5)). Nach dem wir den Tarball heruntergeladen haben sollte man ihn entpacken. Als nächstes laden wir ein Debian Lenny / Squeeze Prebuild von [hier](http://www.mediafire.com/sheeva-with-debian) herunter. Nun ersetzen wir die „rootfs.tar.gz“ mit der neuen Debian „rootfs.tar.gz“. Bevor wir jedoch mit der Installation beginnen müssen wir die neue „rootfs.tar.gz“ mit „tar“ entpacken. Dazu führen wir auf der Konsole
+
+~~~
+mkdir rootfs
+cd rootfs
+tar xfvz rootfs.tar.gz
+~~~
+{: .language-sh}
+
+aus. In dem Ordner führen wir nun ein
+
+~~~
+mknod -m 660 dev/ttyS0 c 4 64
+~~~
+{: .language-sh}
+
+aus. Mit diesem Befehl wird die fehlende serielle Konsole erstellt. Jetzt verpacken wir das Archiv wieder mit
+
+~~~
+tar cfvz ../rootfs.tar.gz *
+~~~
+{: .language-sh}
+
+Den gesamten Inhalt des Ordners /install im SheevaInstaller-Verzeichniss müssen wir jetzt auf einen mit FAT formatierten USB-Stick kopieren. Diesen stecken wir schon einmal in den USB-Port des Sheevas. Als nächstes verbinden wir den SheevaPlug mit einem Mini-USB Kabel mit unserem Computer und führen das Script „runme.php“ aus. Wenn alles klappt wird nun ein neuer Boot-Loader und das rootfs auf den Plug kopiert. Dannach ist unser Debian einsatzbereit.
+Sollte der Plug den USB-Stick nicht erkennen und somit auch das rootfs nicht kopieren können hilft es einen anderen USB-Stick zu verwenden. Beispielsweise wurde mein SanDisk U3 Stick trotz gelöschtem U3 nicht erkannt. Mit einem anderen Stick funktionierte es jedoch tadelos. Auch sollte der Stick partitioniert sein. Der Bootloader des SheevaPlugs kann nicht gut mit direkt auf dem Stick enthalten Dateisystemen umgehen. Wenn die MiniUSB Verbindung beim Ausführen des runme-Scripts nicht funktionieren sollte hilft oft ein
+
+~~~
+rmmod ftdi_sio
+~~~
+{: .language-sh}
+
+und
+
+~~~
+modprobe ftdi_sio vendor=0x9e88 product=0x9e8f
+~~~
+{: .language-sh}
+
+(beides als root). Ebenfalls sollte kein zweites Serielles-Gerät am Computer angeschlossen sein.
+Bei neueren Plugs kann man bei Problemen bei der Installation die Datei „uboot/openocd/config/interface/sheevaplug.cfg“ im SheevaInstaller-Ordner nach
+
+~~~
+interface ft2232
+ft2232_layout sheevaplug
+ft2232_vid_pid 0×0403 0×6010
+#ft2232_vid_pid 0x9e88 0x9e8f
+#ft2232_device_desc “SheevaPlug JTAGKey FT2232D B”
+jtag_khz 2000
+~~~
+{: .language-sh}
+
+umändern.
+Wenn Debian jetzt auf dem SheevaPlug läuft und man sich über SSH einloggen konnte (pwd: nosoup4u), sollte man als erstes ein Update machen.
+
+ apt-get update && apt-get dist-upgrade
+
+Über die Paketverwaltung kann man jetzt ganz einfach die benötigte Software installieren. Ich setzte auf meinem Plug z.B. lighttpd als Webserver mit PHP5 und MySQL für diese Website ein. Es empfielt sich /var und /tmp auszulagern um Löschzyklen zu sparen. Für /tmp eignet sich eine ramdisk.
+
+## Erfahrungen
+
+Ein Debian ist eine gute Alternative zu dem vorinstallierten Ubuntu 9.04. Denn dieses wirft Fehler bei booten aus und hat anfangs Konfigurationsprobleme. Auch braucht es im Vergleich zum Debian eine Ewigkeit zum booten. Das mag bei einem Server nicht wichtig sein, aber ich finde es dennoch schön schnell rebooten zu können. Das gute ist, dass man wenn man schon Erfahrung mit Ubuntu hat auch sehr gut mit Debian zurechtkommt. Aber Ubuntu Karmic lässt sich leider nicht mehr auf dem SheevaPlug installieren. Der SheevaPlug ist erstaunlich schnell. Er erstellt die Seiten etwa doppelt so schnell wie die Server des vorher von mir verwendeten Gratishoster “bplaced.net”. Auch hat er einen sehr geringen Stromverbrauch von nur 5 Watt. Und selbst wenn Webhostingangebote zumindest in der Internetanbindung schneller sein mögen, hat man mit einem SheevaPlug einen sehr günstigen Root-Server, auf dem man tun und lassen kann was man will.
diff --git a/articles/2010-02-24_traffic_ueberwachung_mit_vnstat.md b/articles/2010-02-24_traffic_ueberwachung_mit_vnstat.md
new file mode 100644
index 0000000..9f81703
--- /dev/null
+++ b/articles/2010-02-24_traffic_ueberwachung_mit_vnstat.md
@@ -0,0 +1,10 @@
+# Traffic-Überwachung mit vnstat
+
+Heute möchte ich euch ein kleines und praktisches Programm zum Überwachen des Netzwerkverkehrs vorstellen: [vnstat](http://humdi.net/vnstat/).
+vnStat ist ein konsolenbasierter Netzwerkverkehrmonitor der Logs mit der Menge des Datenverkehrs auf beliebigen Netzwerkschnittstellen speichert. Aus diesen Logs generiert vnStat dann diverse Statistiken.
+
+<a href="http://imgur.com/kUgwU"><img src="http://i.imgur.com/kUgwUl.jpg" alt="vnStat" class="full" /></a>
+
+Installieren kann man vnstat unter Debian bequem aus den Paketquellen mit `apt-get install vnstat` oder unter ArchLinux mit `pacman -S vnstat`. Gestartet wird vnStat mit `vnstat`. Sobald der Daemon läuft schreibt vnstat den aktuellen Netzwerkverkehr in eine Datenbank. Durch Anhängen von Argumenten kann man jetzt schöne Statistiken auf der Konsole ausgeben, z.B. eine Statistik über die letzten Tage mit `vnstat -d` (siehe Bild) oder über die letzten Wochen mit `vnstat -w`. Eine Übersicht über alle möglichen Argumente bekommt man wie Üblich über `vnstat –help`. Eine sehr Interessante Funktion wie ich finde ist die Möglichkeit zur live-Anzeige des Verkehrs mit `vnstat -h`.
+
+Ich finde vnStat zum Überwachen des Netzwerkverkehrs wirklich sehr praktisch, und auch das Anzeigen des Verkehrs über die letzen Tage, Wochen oder Monate ist nützlich. vnStat ist dabei sehr ressourcenschonend und verlangsamt das Netzwerk selbst nicht (es schaltet sich nicht etwa zwischen System und Netzwerkkarte). Für die Anzeige des Traffics auf einer schicken Internetseite gibt es auch das [vnStat PHP frontend](http://www.sqweek.com/sqweek/index.php?p=1). Weiterführende Informationen bekommt ihr auch auf der [Webpräsenz von vnStat](http://humdi.net/vnstat/).
diff --git a/articles/2010-03-16_erfahrungen_mit_dem_sheevaplug_im_laengeren_einsatz.md b/articles/2010-03-16_erfahrungen_mit_dem_sheevaplug_im_laengeren_einsatz.md
new file mode 100644
index 0000000..2e2369e
--- /dev/null
+++ b/articles/2010-03-16_erfahrungen_mit_dem_sheevaplug_im_laengeren_einsatz.md
@@ -0,0 +1,22 @@
+# Erfahrungen mit dem SheevaPlug im längeren Einsatz
+
+Da ich den SheevaPlug ja jetzt schon seit längerer Zeit einsetze und auch dieses Blog auf ihm gehostet ist, will ich jetzt einmal über meine Erfahrungen mit dem Einsatz des SheevaPlugs über längere Zeit als Webserver berichten.
+
+Der SheevaPlug ist wirklich stabil und läuft ohne Probleme mit Debian Lenny. Als Webserver setze ich, wie schoneinmal geschrieben Lighttpd ein. Apache2 läuft zwar auch einwandfrei, jedoch ist die Erstellungszeit der Seiten mit PHP bei Lighttpd doch noch etwas schneller. Auch ist der Speicherverbrauch im RAM merklich geringer, was bei den 512 MB Ram des Plugs doch ganz nett ist.
+
+Als Datenbankserver verwende ich MySQL, welches zwar doch eine ganz schöne größe auf dem NAND-Speicher hat aber wirklich gut funktioniert. Zur Verwaltung der Datenbanken verwende ich phpMyAdmin. Auch das läuft wirklich zufriedenstellend und schnell übers Netzwerk.
+
+Da ich mit den Schreibzyklen und der Kapazität des NANDs möglichst sparsam umgehen möchte, habe ich /var komplett auf eine SD-Karte ausgelagert. Der SD-Reader ist schnell genug, nur wäre es schön, wenn die Karte irgendwie einrasten würde, da sie beim versehentlichen Verschieben des Plugs gerne herausrutscht. Jedoch bereue ich es mittlerweile, dass ich nicht das komplette System auf eine SD-Karte ausgelagert und im NAND nur ein Backup-OS belassen habe, da man mit nur 462 MB nicht wirklich viel machen kann. Auch steigt die Datenmenge im Speicher während der Plug läuft “zufällig” an. Er wird über die Wochen immer voller und kraxelt gemütlich den 65% entgegen (zumindest kann ich keine bestimmte Aktion meinerseits damit verbinden). Hat einer von euch eventuell eine Idee woran das liegen könnte?
+
+Auch verursacht der MySQL-Server in ebanfalls ungleichen Abständen eine 100%ige CPU-Auslastung, ich kann daraufhin nurnoch mit SSH und nicht mer über den Webserver auf den Plug zugreifen. Das abschießen von MySQL und auch ein reboot funktionieren nicht. Gebe ich “reboot” als root ein, werden zwar entsprechende Meldungen ausgegeben, rebooten tut der PlugComputer jedoch nicht (dann hilft nurnoch der harte Weg – Strom weg). Es ist so wirklich kein guter Zustand, sollte ich einmal für mehrere Tage keinen HW-Zugriff auf den SheevaPlug haben und es würde wieder anfangen, könnte ich nichts machen um den Fehler zu beheben. Hat auch zu diesem Problem (das vllt. nicht unbedingt am Plug, sondern auch an einer Fehlkonfiguration von mir liegt) vielleicht einer von euch eine mögliche Lösung parat?
+
+Das Netzwerkinterface des Plugs ist für mich ausreichend schnell (macht bei dem mageren DSL 2000 eh nichts aus), so wie es aussieht ist das einzige was wirklich ausbremst die Schreib- und Lesegeschwindigkeit des Speichers. Für einen Webserver reicht es jedoch ohne Probleme, nur zum Sichern der Backups könnte es schneller sein.
+
+Im Betrieb wird der Plug nur Handwarm, das einzige was man vllt. verbessern könnte wäre das störende Blinken des Netzwerkanschlusses. Damit könnte man den Energieverbrauch sicher noch ein wenig weiter senken, denn der Plug ist wirklich festlich beleuchtet. Sitzt man im dunkeln direkt daneben, kann das Blinken und Leuchten wirklich stören.
+Die 1.2 Ghz der CPU reichen gut aus, schneller muss es für einen Webserver bei nicht explodierenden Besucherzahlen nicht sein (wobei das Problem vorher eher die Netzwerkanbindung nach außen wäre, aber für solche Belastungen ist der Plug ja auch nicht gebaut).
+
+Noch etwas zu den Anwendungen die ich auf dem SheevaPlug einsetze: WordPress für diesen Blog, Piwik um euch zu überwachen und phpMyAdmin für die Datenbanken. Ebenfalls läuft Dovecot als IMAP-Server in dem die Mails meiner verschiedenen Postfächer per fetchmail gesammelt und mit procmail sortiert werden. Torrents lade ich über das Webinterface von Transmission herunter, anderes über Nacht mit at und wget.
+
+Man sieht, der SheevaPlug lässt sich wirklich zu einigem gebrauchen und er funktioniert auch über längere Zeit gut. Als Alternative zu Debian bin ich neulich über [ArchMobile](http://www.archmobile.org/) gestolpert, einer Variante meiner Lieblingsdistribution für ARM, welche auch auf dem SheevaPlug läuft. Die Paketquellen sind allerdings noch etwas leer und beinhalten nicht alle Software die ich für den Webserver bräuc