Marcus Rohrmoser 1 month ago
parent
commit
734fa3e821
62 changed files with 524 additions and 460 deletions
  1. 1 1
      content/posts/1998-11-01-curling-scientific.md
  2. 1 1
      content/posts/2008-09-25-lesen-am-bildschirm-die-sz-regt-sich-richtig-auf.md
  3. 58 46
      content/posts/2008-10-02-nokia-6610-linux-gentoo-stable-amd64.md
  4. 41 33
      content/posts/2008-10-03-hotplug-usb-irda-dongle-gentoo-linux.md
  5. 19 15
      content/posts/2008-10-04-j2me-entwicklungsumgebung-wireless-toolkit.md
  6. 25 17
      content/posts/2008-10-05-mobilfon-mounten.md
  7. 40 32
      content/posts/2008-10-07-wtk-post-install-filesystem-permissions.md
  8. 1 1
      content/posts/2008-10-08-nokia-6610-j2me-capabilities.md
  9. 12 10
      content/posts/2008-10-09-j2me-maven2.md
  10. 1 1
      content/posts/2008-10-10-j2me-pattern-rms-migrations.md
  11. 1 1
      content/posts/2008-10-11-j2me-pattern-activerecord.md
  12. 1 1
      content/posts/2008-10-12-3d-skizzen-frisch-gedacht.md
  13. 45 29
      content/posts/2008-10-30-git-repo-auf-webdav-11.md
  14. 9 11
      content/posts/2008-11-06-tim-brown-on-creativity-and-play-video-on-tedcom.md
  15. 1 1
      content/posts/2008-11-20-sifr-zero-null.md
  16. 1 1
      content/posts/2008-12-01-usb-monitor.md
  17. 1 1
      content/posts/2008-12-02-one-more-iphone-android-lookalike.md
  18. 1 1
      content/posts/2008-12-03-ted-blaise-aguera-y-arcas-demos-photosynth.md
  19. 1 1
      content/posts/2008-12-17-monitor-farbkorrektur.md
  20. 1 1
      content/posts/2008-12-24-svg-12-tiny-mit-video-und-audio.md
  21. 1 1
      content/posts/2008-12-25-heise-online-231208-verfassungsrichter-eine-private-ueberwachungsgesellschaft-internationalen-ausmasses.md
  22. 1 1
      content/posts/2008-12-26-sim-city-iphone-wieder-ein-nettes-gui.md
  23. 1 1
      content/posts/2008-12-28-styleguides-iphone-gnome.md
  24. 3 3
      content/posts/2009-01-07-einigkeit-und-recht-und-sicherheit.md
  25. 4 4
      content/posts/2009-01-08-privatsphare-20-was-wird-das-wohl-sein.md
  26. 13 11
      content/posts/2009-01-23-im-klimafreundlicher.md
  27. 16 12
      content/posts/2009-02-18-lftp-osx-dmg.md
  28. 2 2
      content/posts/2009-02-27-wired-why-japan-hates-the-iphone.md
  29. 1 1
      content/posts/2009-02-28-barry-schwartz-uber-dienst-nach-vorschrift.md
  30. 1 1
      content/posts/2009-03-02-umfrage-handy-wichtiger-als-liebe.md
  31. 1 1
      content/posts/2009-03-05-dem-google-handy-droht-der-verkaufsstopp.md
  32. 3 3
      content/posts/2009-03-11-email-sicherheit.md
  33. 2 2
      content/posts/2009-03-14-vserver-mit-gentoo-oder-doch-besser-ohne.md
  34. 1 1
      content/posts/2009-03-21-bka-als-honeypot.md
  35. 2 2
      content/posts/2009-03-22-re-version-control-is-your-friend.md
  36. 1 1
      content/posts/2009-03-25-fwd-internetzensur-die-grossen-lugen-der-ursula-von-der-leyen.md
  37. 1 1
      content/posts/2009-03-29-internet-in-dosen.md
  38. 4 4
      content/posts/2009-03-30-zensur-grundsatzlich-betrachtet.md
  39. 2 2
      content/posts/2009-04-17-chapeau-eue.md
  40. 3 3
      content/posts/2009-04-21-gsm-codes-zum-ausschalten-der-mobilbox.md
  41. 1 1
      content/posts/2009-04-28-maybe-enough-africa-in-cellphones.md
  42. 10 8
      content/posts/2009-04-28-s5-prasentationen-einfrieren.md
  43. 3 3
      content/posts/2009-06-18-hfs-filesystem-spas.md
  44. 1 1
      content/posts/2009-06-18-iphone-als-modem-aka-tethering.md
  45. 2 2
      content/posts/2009-10-05-apns4j-look-at-the-dark-side-of-foss.md
  46. 1 1
      content/posts/2009-11-17-cute-idea.md
  47. 1 1
      content/posts/2009-12-04-.md
  48. 1 1
      content/posts/2009-12-08-heute-nur-fur-stammgaste.md
  49. 1 1
      content/posts/2010-02-02-poignant-xml-meets-huffman.md
  50. 1 1
      content/posts/2010-03-17-iphone-sqlite-fulltext-index.md
  51. 1 1
      content/posts/2010-03-25-iphone-unit-test-coverage.md
  52. 3 3
      content/posts/2010-03-27-radio-geeky.md
  53. 1 1
      content/posts/2010-05-04-wordpress-email-benachrichtigungen.md
  54. 4 4
      content/posts/2010-05-28-iphone-libxml2-relax-ng-validation.md
  55. 1 1
      content/posts/2010-09-22-parser-mit-ragel.md
  56. 2 2
      content/posts/2011-03-22-randnotiz-die-bayerische-fruehgotik-und-der-islam.md
  57. 41 39
      content/posts/2013-12-10-redmine-rails-puma-lighttpd.md
  58. 1 1
      content/posts/2015-03-21-t-kom-wlan-hotspot-auf-einigen-bahnhoefen.md
  59. 1 1
      content/posts/2015-04-27-qualitaetsjournalismus-und-datenschutz.md
  60. 1 1
      content/posts/2015-08-14-app-shaarlios-im-store.md
  61. 121 123
      content/posts/2015-12-21-lighttpd-letsencrypt-sh.md
  62. 1 1
      content/posts/2016-06-13-render-ios-app-icons-from-one-svg-image.md

+ 1 - 1
content/posts/1998-11-01-curling-scientific.md

@@ -26,7 +26,7 @@ tags:
 
 The paper is a bit shaky and has some errors but still it's better than nothing and has some points in it:
 
-[Curling Scientific – a paper on curling rock collission dynamics][1].
+[Curling Scientific  a paper on curling rock collission dynamics][1].
 
 P.S.: The wordpress blog-posting is from 2011 but I back-dated it to reflect the article's date.
 

+ 1 - 1
content/posts/2008-09-25-lesen-am-bildschirm-die-sz-regt-sich-richtig-auf.md

@@ -13,6 +13,6 @@ tags:
   - HCI
 
 ---
-Im Artikel [Lesen am Bildschirm &#8211; Der freie Fall der Seh-Linie][1] mokiert die SZ u.a., daß <a title="Jakob Nielsen bei Wikipedia" href="http://de.wikipedia.org/wiki/Jakob_Nielsen" target="_blank">Jakob Nielsen</a> in zwei verschiedenen Studien zum gleichen Ergebnis kommt. Wo ist das Problem?
+Im Artikel [Lesen am Bildschirm  Der freie Fall der Seh-Linie][1] mokiert die SZ u.a., daß <a title="Jakob Nielsen bei Wikipedia" href="http://de.wikipedia.org/wiki/Jakob_Nielsen" target="_blank">Jakob Nielsen</a> in zwei verschiedenen Studien zum gleichen Ergebnis kommt. Wo ist das Problem?
 
  [1]: http://www.sueddeutsche.de/kultur/141/311065/text/

+ 58 - 46
content/posts/2008-10-02-nokia-6610-linux-gentoo-stable-amd64.md

@@ -5,16 +5,16 @@ type: post
 date: 2008-10-02T12:42:12+00:00
 url: /2008/10/nokia-6610-linux-gentoo-stable-amd64/
 yourls_shorturl:
-  - http://s.mro.name/3a
+- http://s.mro.name/3a
 language: de
 categories:
 - sysadmin
 tags:
-  - 6610
-  - gammu
-  - gentoo
-  - IrDA
-  - Nokia
+- 6610
+- gammu
+- gentoo
+- IrDA
+- Nokia
 
 ---
 Auch von einem Linux Rechner aus kann man auf Mobiltelefone zugreifen, allerdings sind ein paar Vorbereitungen nötig. Siehe dazu auch die [Gentoo IrDA Anleitung][1].
@@ -23,63 +23,75 @@ Ausgangspunkt ist ein [Nokia 6610][2] Mobilfon, ein [Gentoo AMD64 stable][3] Rec
 
 Zunächst wollen ein paar Kernel Einstellungen gesetzt sein:
 
-<pre>Networking  ---&gt;
-        &lt;M&gt; IrDA (infrared) subsystem support  ---&gt;
-           &lt;M&gt; IrCOMM protocol
-        Infrared-port device drivers  ---&gt;
-             &lt;M&gt; IrDA USB dongles
-             &lt;M&gt; SigmaTel STIr4200 bridge (EXPERIMENTAL)</pre>
+```bash
+Networking  --->
+        <M> IrDA (infrared) subsystem support  --->
+           <M> IrCOMM protocol
+        Infrared-port device drivers  --->
+             <M> IrDA USB dongles
+             <M> SigmaTel STIr4200 bridge (EXPERIMENTAL)
+```
 
 Damit die Module automatisch geladen werden:
 
-<pre>$ cat /etc/modprobe.d/irda
-alias irda0 stir4200
-$ sudo update-modules</pre>
+```bash
+$ cat /etc/modprobe.d/irda
+alias irda0 stir4200
+$ sudo update-modules
+```
 
 Ein paar Pakete installieren:
 
-<pre>$ sudo emerge irda-utils gammu</pre>
+```bash
+$ sudo emerge irda-utils gammu
+```
 
 und [gammu][5] einstellen:
 
-<pre>$ cat ~/.gammurc
-[gammu]
-name = Nokia 6610
-# port=/dev/ircomm0
-connection = irdaphonet
-synchronizetime = yes
-# rsslevel = teststable
-startinfo = yes
-usephonedb = yes
-# UsePhoneDB=yes</pre>
+```bash
+$ cat ~/.gammurc
+[gammu]
+name = Nokia 6610
+# port=/dev/ircomm0
+connection = irdaphonet
+synchronizetime = yes
+# rsslevel = teststable
+startinfo = yes
+usephonedb = yes
+# UsePhoneDB=yes
+```
 
 Das Telephon noch auf Infrarot lauschen lassen, und schon sollte es klappen:
 
-<pre>$ sudo irattach irda0 -s;sleep 10;gammu --identify
-INFO: there is later testing Gammu (1.20.94 instead of 1.20.0) available!
-Manufacturer         : Nokia
-Model                : 6610 (NHL-4U)
-Firmware             : 5.52 C (19-09-03)
-Hardware             : 0660
-IMEI                 : 352927001317658
-Original IMEI        : 352927/00/131765/8
-Manufactured         : 11/2003
-Product code         : 0510460
-UEM                  : 8</pre>
+```bash
+$ sudo irattach irda0 -s;sleep 10;gammu --identify
+INFO: there is later testing Gammu (1.20.94 instead of 1.20.0) available!
+Manufacturer         : Nokia
+Model                : 6610 (NHL-4U)
+Firmware             : 5.52 C (19-09-03)
+Hardware             : 0660
+IMEI                 : 352927001317658
+Original IMEI        : 352927/00/131765/8
+Manufactured         : 11/2003
+Product code         : 0510460
+UEM                  : 8
+```
 
 Das war's.
 
 Jetzt läßt sich per gammu das Telephon inspizieren, z.B.
 
-<pre>$ gammu getfilesystem
-    c:/1.   SFolder "C (Permanent_memory)"
-    c:/5.  HS |-- Folder "Empf. Dateien"
-    c:/2.   S |-- Folder "Galerie"
-    c:/3.   S |    |-- Folder "Bilder"
-   c:/37.     |    |    |-- "Cell.jpg"
-   c:/40.     |    |    |-- "Clock.jpg"
-   c:/39.     |    |    |-- "Crisp.jpg"
-...</pre>
+```bash
+$ gammu getfilesystem
+    c:/1.   SFolder "C (Permanent_memory)"
+    c:/5.  HS |-- Folder "Empf. Dateien"
+    c:/2.   S |-- Folder "Galerie"
+    c:/3.   S |    |-- Folder "Bilder"
+   c:/37.     |    |    |-- "Cell.jpg"
+   c:/40.     |    |    |-- "Clock.jpg"
+   c:/39.     |    |    |-- "Crisp.jpg"
+...
+```
 
  [1]: http://gentoo-wiki.com/IrDA
  [2]: http://www.forum.nokia.com/devices/6610

+ 41 - 33
content/posts/2008-10-03-hotplug-usb-irda-dongle-gentoo-linux.md

@@ -19,50 +19,58 @@ tags:
 
 I added the following udev rule:
 
-<pre>$ cat /etc/udev/rules.d/95-usb-irda.rules
-# Connect the IRDA USB Dongle
-# see http://de.gentoo-wiki.com/Udev_Rules
-# use "$ lsusb -v" to get the details about the dongle
-ACTION=="add", BUS=="usb", SYSFS{manufacturer}==" Sigmatel Inc ", SYSFS{product}==" IrDA/USB Bridge", NAME="%k", RUN+="/usr/local/bin/usb-irda-add.sh"
-# ACTION=="remove", BUS=="usb", SYSFS{idVendor}=="066f", SYSFS{idProduct}=="4200", RUN+="/usr/local/bin/usb-irda-remove.sh"</pre>
+```bash
+$ cat /etc/udev/rules.d/95-usb-irda.rules
+# Connect the IRDA USB Dongle
+# see http://de.gentoo-wiki.com/Udev_Rules
+# use "$ lsusb -v" to get the details about the dongle
+ACTION=="add", BUS=="usb", SYSFS{manufacturer}==" Sigmatel Inc ", SYSFS{product}==" IrDA/USB Bridge", NAME="%k", RUN+="/usr/local/bin/usb-irda-add.sh"
+# ACTION=="remove", BUS=="usb", SYSFS{idVendor}=="066f", SYSFS{idProduct}=="4200", RUN+="/usr/local/bin/usb-irda-remove.sh"
+```
 
 combined with the script
 
-<pre># cat /usr/local/bin/usb-irda-add.sh
-#!/bin/sh
-# Init script for /etc/udev/rules.d/95-usb-irda.rules
-# modprobe ircomm_tty
-irattach irda0 -s
-# http://osdir.com/ml/drivers.gnokii/2003-09/msg00014.html
-echo 115200 &gt; /proc/sys/net/irda/max_baud_rate</pre>
+```bash
+# cat /usr/local/bin/usb-irda-add.sh
+#!/bin/sh
+# Init script for /etc/udev/rules.d/95-usb-irda.rules
+# modprobe ircomm_tty
+irattach irda0 -s
+# http://osdir.com/ml/drivers.gnokii/2003-09/msg00014.html
+echo 115200 > /proc/sys/net/irda/max_baud_rate
+```
 
 and voila, the dongle hotplugs.
 
 What's puzzling me, is that `/var/log/messages` shows multiple identical entries:
 
-<pre>Oct  3 22:06:17 sifr irattach: executing: '/sbin/modprobe irda0'
-Oct  3 22:06:17 sifr irattach: executing: 'echo sifr &gt; /proc/sys/net/irda/devname'
-Oct  3 22:06:17 sifr irattach: executing: '/sbin/modprobe irda0'
-Oct  3 22:06:17 sifr irattach: executing: 'echo 1 &gt; /proc/sys/net/irda/discovery'
-Oct  3 22:06:17 sifr irattach: executing: '/sbin/modprobe irda0'
-Oct  3 22:06:17 sifr irattach: executing: 'echo sifr &gt; /proc/sys/net/irda/devname'
-Oct  3 22:06:17 sifr irattach: Starting device irda0
-Oct  3 22:06:17 sifr irattach: executing: 'echo 1 &gt; /proc/sys/net/irda/discovery'
-Oct  3 22:06:17 sifr irattach: executing: 'echo sifr &gt; /proc/sys/net/irda/devname'
-Oct  3 22:06:17 sifr irattach: executing: '/sbin/modprobe irda0'
-Oct  3 22:06:17 sifr irattach: Starting device irda0
-Oct  3 22:06:17 sifr irattach: executing: 'echo 1 &gt; /proc/sys/net/irda/discovery'
-Oct  3 22:06:17 sifr irattach: executing: 'echo sifr &gt; /proc/sys/net/irda/devname'
-Oct  3 22:06:17 sifr irattach: Starting device irda0
-Oct  3 22:06:17 sifr irattach: executing: 'echo 1 &gt; /proc/sys/net/irda/discovery'
-Oct  3 22:06:17 sifr irattach: Starting device irda0</pre>
+```bash
+Oct  3 22:06:17 sifr irattach: executing: '/sbin/modprobe irda0'
+Oct  3 22:06:17 sifr irattach: executing: 'echo sifr > /proc/sys/net/irda/devname'
+Oct  3 22:06:17 sifr irattach: executing: '/sbin/modprobe irda0'
+Oct  3 22:06:17 sifr irattach: executing: 'echo 1 > /proc/sys/net/irda/discovery'
+Oct  3 22:06:17 sifr irattach: executing: '/sbin/modprobe irda0'
+Oct  3 22:06:17 sifr irattach: executing: 'echo sifr > /proc/sys/net/irda/devname'
+Oct  3 22:06:17 sifr irattach: Starting device irda0
+Oct  3 22:06:17 sifr irattach: executing: 'echo 1 > /proc/sys/net/irda/discovery'
+Oct  3 22:06:17 sifr irattach: executing: 'echo sifr > /proc/sys/net/irda/devname'
+Oct  3 22:06:17 sifr irattach: executing: '/sbin/modprobe irda0'
+Oct  3 22:06:17 sifr irattach: Starting device irda0
+Oct  3 22:06:17 sifr irattach: executing: 'echo 1 > /proc/sys/net/irda/discovery'
+Oct  3 22:06:17 sifr irattach: executing: 'echo sifr > /proc/sys/net/irda/devname'
+Oct  3 22:06:17 sifr irattach: Starting device irda0
+Oct  3 22:06:17 sifr irattach: executing: 'echo 1 > /proc/sys/net/irda/discovery'
+Oct  3 22:06:17 sifr irattach: Starting device irda0
+```
 
 and that unplugging doesn't unload the kernel modules, despite the script
 
-<pre>$ cat /usr/local/bin/usb-irda-remove.sh
-#!/bin/sh
-# Removal script for /etc/udev/rules.d/95-usb-irda.rules
-rmmod ircomm_tty ircomm stir4200 irda crc_ccitt</pre>
+```bash
+$ cat /usr/local/bin/usb-irda-remove.sh
+#!/bin/sh
+# Removal script for /etc/udev/rules.d/95-usb-irda.rules
+rmmod ircomm_tty ircomm stir4200 irda crc_ccitt
+```
 
  [1]: http://de.wikipedia.org/wiki/Udev
  [2]: /2008/10/nokia-6610-linux-gentoo-stable-amd64/

+ 19 - 15
content/posts/2008-10-04-j2me-entwicklungsumgebung-wireless-toolkit.md

@@ -5,30 +5,34 @@ type: post
 date: 2008-10-04T20:53:20+00:00
 url: /2008/10/j2me-entwicklungsumgebung-wireless-toolkit/
 yourls_shorturl:
-  - http://s.mro.name/13
+- http://s.mro.name/13
 language: de
 categories:
 - development
 tags:
-  - EclipseME
-  - gentoo
-  - J2ME
-  - WTK
+- EclipseME
+- gentoo
+- J2ME
+- WTK
 
 ---
 wie gewohnt auf einem [gentoo][1] stable amd64 Linux.
 
-  1. JDK: 
-    <pre>$ sudo emerge dev-java/sun-jdk</pre>
+1. JDK: 
+```bash
+$ sudo emerge dev-java/sun-jdk
+```
 
-  2. [Eclipse][2] 3.4 herunterladen und auspacken,
-  3. J2ME Wireless Toolkit 2.2: 
-    <pre>$ sudo su -
-$ echo "dev-java/sun-j2me-bin ~amd64" &gt;&gt; /etc/portage/package.keywords
-$ echo "dev-java/sun-j2me-bin examples" &gt;&gt; /etc/portage/package.use
-$ emerge dev-java/sun-j2me-bin
-$ # USE-Flag "j2me" setzen, z.B. via "$ sudo ufed"
-$ sudo emerge proguard</pre>
+2. [Eclipse][2] 3.4 herunterladen und auspacken,
+3. J2ME Wireless Toolkit 2.2: 
+```bash
+$ sudo su -
+$ echo "dev-java/sun-j2me-bin ~amd64" >> /etc/portage/package.keywords
+$ echo "dev-java/sun-j2me-bin examples" >> /etc/portage/package.use
+$ emerge dev-java/sun-j2me-bin
+$ # USE-Flag "j2me" setzen, z.B. via "$ sudo ufed"
+$ sudo emerge proguard
+```
 
   4. [J2ME Wireless Toolkit][3] 2.5.2 heruterladen und installieren,
   5. [EclipseMe][4] herunterladen und auspacken.

+ 25 - 17
content/posts/2008-10-05-mobilfon-mounten.md

@@ -5,42 +5,50 @@ type: post
 date: 2008-10-05T16:01:17+00:00
 url: /2008/10/mobilfon-mounten/
 yourls_shorturl:
-  - http://s.mro.name/3p
+- http://s.mro.name/3p
 language: de
 categories:
 - sysadmin
 tags:
-  - 6610
-  - fuse
-  - gentoo
-  - IrDA
-  - Nokia
-  - obex
+- 6610
+- fuse
+- gentoo
+- IrDA
+- Nokia
+- obex
 
 ---
 Mit [obexftp][1], [obexfs][2] und [fuse][3] läßt sich ein Mobil-Telephon sogar in's Filesystem einhängen.
 
 Nachdem das [Telephon erreichbar ist,][4] braucht's eine Kernel Einstellung:
 
-<pre>File systems  ---&gt;
-        &lt;M&gt; Filesystem in Userspace support</pre>
+```bash
+File systems  --->
+        <M> Filesystem in Userspace support
+```
 
 und die Installation der Pakete:
 
-<pre>$ sudo emerge sys-fs/fuse
-$ sudo emerge app-mobilephone/obexftp
-$ sudo emerge sys-fs/obexfs</pre>
+```bash
+$ sudo emerge sys-fs/fuse
+$ sudo emerge app-mobilephone/obexftp
+$ sudo emerge sys-fs/obexfs
+```
 
 Schnell noch die Verbindung getestet (ggf. mehrmals probieren):
 
-<pre>$ gammu --identify
-$ obexftp -i -l</pre>
+```bash
+$ gammu --identify
+$ obexftp -i -l
+```
 
 Schon läßt sich das Telephon via obexfs & fuse mounten:
 
-<pre>$ obexfs -i mountpoint
-$ ls -l mountpoint
-$ fusermount -u mountpoint</pre>
+```bash
+$ obexfs -i mountpoint
+$ ls -l mountpoint
+$ fusermount -u mountpoint
+```
 
 **Vorsicht!** Während das Telephon gemountet ist, funktioniert gammu nicht!
 

+ 40 - 32
content/posts/2008-10-07-wtk-post-install-filesystem-permissions.md

@@ -5,54 +5,62 @@ type: post
 date: 2008-10-07T18:13:55+00:00
 url: /2008/10/wtk-post-install-filesystem-permissions/
 yourls_shorturl:
-  - http://s.mro.name/z
+- http://s.mro.name/z
 language: en
 categories:
-  - sysadmin
+- sysadmin
 tags:
-  - EclipseME
-  - J2ME
-  - WTK
+- EclipseME
+- J2ME
+- WTK
 
 ---
 If running your app from the [eclipseme][1] emulator shows the following console output
 
-<pre>Running with storage root DefaultColorPhone
-Warning: Failed to initialize WMA message routing support
-Error: Can't remove a lock file: /opt/sun-j2me-bin-2.2/wtklib/comcon-server.port.lock
-Warning: Failed to initialize Bluetooth (JSR 82) support
-...
-Warning: The attempt to finalize unexisting client.
-java.lang.NullPointerException
-at com.sun.kvem.midp.MIDP.run(Unknown Source)
-at com.sun.kvem.environment.EmulatorInvoker.runEmulatorImpl(Unknown Source)
-at com.sun.kvem.environment.EmulatorInvoker.runEmulatorSameVM(Unknown Source)
-at com.sun.kvem.environment.EmulatorInvoker.runEmulator(Unknown Source)
-at com.sun.kvem.environment.ProfileEnvironment$KVMThread.runEmulator(Unknown Source)
-at com.sun.kvem.environment.ProfileEnvironment$KVMThread.run(Unknown Source)</pre>
+```bash
+Running with storage root DefaultColorPhone
+Warning: Failed to initialize WMA message routing support
+Error: Can't remove a lock file: /opt/sun-j2me-bin-2.2/wtklib/comcon-server.port.lock
+Warning: Failed to initialize Bluetooth (JSR 82) support
+...
+Warning: The attempt to finalize unexisting client.
+java.lang.NullPointerException
+at com.sun.kvem.midp.MIDP.run(Unknown Source)
+at com.sun.kvem.environment.EmulatorInvoker.runEmulatorImpl(Unknown Source)
+at com.sun.kvem.environment.EmulatorInvoker.runEmulatorSameVM(Unknown Source)
+at com.sun.kvem.environment.EmulatorInvoker.runEmulator(Unknown Source)
+at com.sun.kvem.environment.ProfileEnvironment$KVMThread.runEmulator(Unknown Source)
+at com.sun.kvem.environment.ProfileEnvironment$KVMThread.run(Unknown Source)
+```
 
 give write permission to the `wtklib` folder inside the WTK:
 
-<pre>$ sudo chmod o+w /opt/sun-j2me-bin-2.2/wtklib</pre>
+```bash
+$ sudo chmod o+w /opt/sun-j2me-bin-2.2/wtklib
+```
 
 The following disease
 
-<pre>...
-javax.microedition.rms.RecordStoreException: error opening record store file
-at javax.microedition.rms.RecordStore.&lt;init&gt;(+428)
-at javax.microedition.rms.RecordStore.openRecordStore(+109)
-at name.mro.billard.Stats.findPlayers(+6)
-at name.mro.billard.Stats.startApp(+4)
-at javax.microedition.midlet.MIDletProxy.startApp(+7)
-at com.sun.midp.midlet.Scheduler.schedule(+270)
-at com.sun.midp.main.Main.runLocalClass(+28)
-at com.sun.midp.main.Main.main(+116)
-startApp threw an Exception
-...</pre>
+```bash
+...
+javax.microedition.rms.RecordStoreException: error opening record store file
+at javax.microedition.rms.RecordStore.<init>(+428)
+at javax.microedition.rms.RecordStore.openRecordStore(+109)
+at name.mro.billard.Stats.findPlayers(+6)
+at name.mro.billard.Stats.startApp(+4)
+at javax.microedition.midlet.MIDletProxy.startApp(+7)
+at com.sun.midp.midlet.Scheduler.schedule(+270)
+at com.sun.midp.main.Main.runLocalClass(+28)
+at com.sun.midp.main.Main.main(+116)
+startApp threw an Exception
+...
+```
 
 is cured by
 
-<pre>$ sudo chmod o+w -R /opt/sun-j2me-bin-2.2/appdb</pre>
+```bash
+$ sudo chmod o+w -R /opt/sun-j2me-bin-2.2/appdb
+```
 
 A [Sun Forum Post][2] provided the correct hint.
 

+ 1 - 1
content/posts/2008-10-08-nokia-6610-j2me-capabilities.md

@@ -16,7 +16,7 @@ tags:
   - MIDP
 
 ---
-The [Nokia 6610][1] has those [J2ME/CLDC/MIDP capabilities][2]. Frankly I don't understand all of it's findings, especially the one claiming &#8222;RMS: not implemented&#8220; &#8211; if that means [javax.microedition.rms][3] it's just not true.
+The [Nokia 6610][1] has those [J2ME/CLDC/MIDP capabilities][2]. Frankly I don't understand all of it's findings, especially the one claiming &#8222;RMS: not implemented&#8220;  if that means [javax.microedition.rms][3] it's just not true.
 
 Check your phone at [mobile-utopia][4].
 

+ 12 - 10
content/posts/2008-10-09-j2me-maven2.md

@@ -5,26 +5,28 @@ type: post
 date: 2008-10-08T22:05:16+00:00
 url: /2008/10/j2me-maven2/
 yourls_shorturl:
-  - http://s.mro.name/1v
+- http://s.mro.name/1v
 language: en
 categories:
-  - development
+- development
 tags:
-  - gammu
-  - J2ME
-  - maven2
+- gammu
+- J2ME
+- maven2
 
 ---
 Huh! I just found out, there is a fine [Maven2 Plugin for J2ME][1]. It comes with an [archetype][2] to jump-start developing J2ME applications with [maven][3].
 
 Use the archetype like this:
 
-<pre>$ mvn archetype:create -DarchetypeGroupId=com.pyx4me 
--DarchetypeArtifactId=j2me-simple -DarchetypeVersion=2.0.3-SNAPSHOT 
--DremoteRepositories=http://www.pyx4me.com/maven2 -DgroupId=org.example 
--DartifactId=myapp</pre>
+```bash
+$ mvn archetype:create -DarchetypeGroupId=com.pyx4me 
+-DarchetypeArtifactId=j2me-simple -DarchetypeVersion=2.0.3-SNAPSHOT 
+-DremoteRepositories=http://www.pyx4me.com/maven2 -DgroupId=org.example 
+-DartifactId=myapp
+```
 
-And if you develop against a nokia phone, it comes even better &#8211; there's a [gammu maven plugin][4], too!
+And if you develop against a nokia phone, it comes even better  there's a [gammu maven plugin][4], too!
 
 Also check out this [blog featuring maven2 & j2me][5].
 

+ 1 - 1
content/posts/2008-10-10-j2me-pattern-rms-migrations.md

@@ -22,7 +22,7 @@ Inspired by [RoR Migrations][1] I'll summarize how to gain similar benefits in t
   * therefore use a custom method to open RecordStores and give it a handler for [RecordStoreNotFoundException][3],
   * use methods rather than classes to implement migrations,
   * only migrate forward,
-  * hardcode the migration methods into the RecordStoreNotFoundException handler &#8211; there's no Reflection in J2ME.
+  * hardcode the migration methods into the RecordStoreNotFoundException handler  there's no Reflection in J2ME.
 
 =>
 

+ 1 - 1
content/posts/2008-10-11-j2me-pattern-activerecord.md

@@ -19,7 +19,7 @@ Though [J2ME][1] forces you to be close with adding classes, type-safe & conveni
 
 And as [RecordStore][2]s are the primary application persistence stores, there's some boilerplate code you can refactor out into one single common base class.
 
-Also &#8211; especially from a pattern standpoint &#8211; it's a must and increases the unterstandability and maintainability of your code.
+Also – especially from a pattern standpoint – it's a must and increases the unterstandability and maintainability of your code.
 
 So what's the design assumptions and decisions?
 

+ 1 - 1
content/posts/2008-10-12-3d-skizzen-frisch-gedacht.md

@@ -23,7 +23,7 @@ Das sieht doch richtig scharf aus, oder? Bemerkenswert finde ich:
 
   * keine Menüs,
   * keine Toolsbars,
-  * nix &#8211; einfach ein Stift in der Hand!
+  * nix  einfach ein Stift in der Hand!
 
 Gesehen bei [Slashdot][3].
 

+ 45 - 29
content/posts/2008-10-30-git-repo-auf-webdav-11.md

@@ -5,13 +5,13 @@ type: post
 date: 2008-10-30T21:27:58+00:00
 url: /2008/10/git-repo-auf-webdav-11/
 yourls_shorturl:
-  - http://s.mro.name/l
+- http://s.mro.name/l
 language: de
 categories:
 - development
 tags:
-  - git
-  - WebDAV
+- git
+- WebDAV
 
 ---
 <a>E</a>igene [Git][1] Repositories gehen auch mit billigem Shared Hosting recht bequem, falls der Hoster [WebDAV][2] anbietet. Z.B. bei [1&1][3] ist WebDAV auf Port 81 aktiviert.
@@ -20,41 +20,57 @@ Und so geht's:
 
 ### WebDAV Zugriff
 
-Hier führen viele Wege nach Rom &#8211; ich wähle den via [davfs2][4]. Letztlich müssen wir nur in der Lage sein, ein Verzeichnis auf dem WebDAV Server anzulegen. Natürlich geht das auch per [FTP][5], aber wenn wir schon WebDAV haben, benutzen wir's auch gleich dafür.
+Hier führen viele Wege nach Rom  ich wähle den via [davfs2][4]. Letztlich müssen wir nur in der Lage sein, ein Verzeichnis auf dem WebDAV Server anzulegen. Natürlich geht das auch per [FTP][5], aber wenn wir schon WebDAV haben, benutzen wir's auch gleich dafür.
 
-  1. Eintrag in `/etc/fstab`: 
-    <pre>$ echo "http://www.myserver.example:81/	/home/localusername/mnt/myserver davfs noauto,user,nolocks 0 0" &gt;&gt; /etc/fstab</pre>
+1. Eintrag in `/etc/fstab`: 
+```bash
+$ echo "http://www.myserver.example:81/	/home/localusername/mnt/myserver davfs noauto,user,nolocks 0 0" >> /etc/fstab
+```
 
-  2. WebDAV Zugangsdaten für davfs2: 
-    <pre>$ mkdir -p ~/.davfs2
-$ echo "http://www.myserver.example:81/ MyDavUser MyDavPwd" &gt;&gt; ~/.davfs2/secrets
-$ chmod 600 ~/.davfs2/secrets</pre>
+2. WebDAV Zugangsdaten für davfs2: 
+```bash
+$ mkdir -p ~/.davfs2
+$ echo "http://www.myserver.example:81/ MyDavUser MyDavPwd" >> ~/.davfs2/secrets
+$ chmod 600 ~/.davfs2/secrets
+```
 
-  3. mounten: 
-    <pre>$ mount /home/localusername/mnt/myserver</pre>
+3. mounten: 
+```bash
+$ mount /home/localusername/mnt/myserver
+```
 
-  4. das leere Verzeichnis anlegen: 
-    <pre>$ mkdir /home/localusername/mnt/myserver/myproject.git</pre>
+4. das leere Verzeichnis anlegen: 
+```bash
+$ mkdir /home/localusername/mnt/myserver/myproject.git
+```
 
 ### Ein (remote) Git Repo anlegen
 
 Siehe dazu auch [Shared Git Repository per Webdav][6].
 
-  1. ein leeres Verzeichnis myproject.git auf dem WebDAV Server anlegen,
-  2. lokal ein leeres Git Repo anlegen: 
-    <pre>$ mkdir myproject.git
-$ cd myproject.git
-$ git init --bare</pre>
-
-  3. ggf. ein bestehendes Git Repo &#8222;importieren&#8220;: 
-    <pre>$ git pull UrlOfExistingRepo</pre>
-
-  4. WebDAV Zugangsdaten für git hinterlegen: 
-    <pre>$ echo "machine myserver.example login MyDavUser password MyDavPwd" &gt;&gt; ~/.netrc
-$ chmod 600 ~/.netrc</pre>
-
-  5. und das neue Repo hochladen: 
-    <pre>$ git push --all --force http://myserver.example:81/myproject.git</pre>
+1. ein leeres Verzeichnis myproject.git auf dem WebDAV Server anlegen,
+2. lokal ein leeres Git Repo anlegen: 
+```bash
+$ mkdir myproject.git
+$ cd myproject.git
+$ git init --bare
+```
+
+3. ggf. ein bestehendes Git Repo &#8222;importieren&#8220;: 
+```bash
+$ git pull UrlOfExistingRepo
+```
+
+4. WebDAV Zugangsdaten für git hinterlegen: 
+```bash
+$ echo "machine myserver.example login MyDavUser password MyDavPwd" >> ~/.netrc
+$ chmod 600 ~/.netrc
+```
+
+5. und das neue Repo hochladen: 
+```bash
+$ git push --all --force http://myserver.example:81/myproject.git
+```
 
 ### Nicht-WebDAV Zugriffe verhindern
 

+ 9 - 11
content/posts/2008-11-06-tim-brown-on-creativity-and-play-video-on-tedcom.md

@@ -5,26 +5,24 @@ type: post
 date: 2008-11-06T17:15:48+00:00
 url: /2008/11/tim-brown-on-creativity-and-play-video-on-tedcom/
 yourls_shorturl:
-  - http://s.mro.name/1a
+- http://s.mro.name/1a
 language: en
 categories:
-  - seenontheweb
+- seenontheweb
 tags:
-  - inspire
-  - play
-  - TED
+- inspire
+- play
+- TED
 
 ---
 Share your wild ideas!
 
-
-
 [The Video on TED.com][1]
 
-  * Exploration &#8211; go for quantity
-  * Building &#8211; think with your hands
-  * Role play &#8211; act it out; have more empathy for the situation we design for and create experiences that are seamless and authentic
+* Exploration – go for quantity
+* Building – think with your hands
+* Role play – act it out; have more empathy for the situation we design for and create experiences that are seamless and authentic
 
-I wonder how this raw prototyping &#8211; getting an idea into the real world within minutes and play with it &#8211; can be taken to software creation. Turning a software system into role play? Sketching on paper and shuffling this sketches?
+I wonder how this raw prototyping – getting an idea into the real world within minutes and play with it – can be taken to software creation. Turning a software system into role play? Sketching on paper and shuffling this sketches?
 
  [1]: http://www.ted.com/index.php/talks/tim_brown_on_creativity_and_play.html

+ 1 - 1
content/posts/2008-11-20-sifr-zero-null.md

@@ -22,7 +22,7 @@ Als ich eben nachgucken wollte, ob sifr (arabisch) wirklich 0 bedeutet und auch
 
 gestoßen.
 
-Soso. Fibonacci haben wir also das Dezimalsystem in Europa zu verdanken. Im Deutschen wurde aus der 0 (sifr) gleich der Name für die &#8222;Buchstaben&#8220; des Zeichensystems &#8211; Ziffer.
+Soso. Fibonacci haben wir also das Dezimalsystem in Europa zu verdanken. Im Deutschen wurde aus der 0 (sifr) gleich der Name für die &#8222;Buchstaben&#8220; des Zeichensystems  Ziffer.
 
 Und zu zählen beginnen wir am besten bei 0 und hören vor Intervallende auf. Das wird wohl noch ein wenig dauern, bis es sich im Alltag durchgesetzt hat. Aber die Argumentation ist bestechend.
 

+ 1 - 1
content/posts/2008-12-01-usb-monitor.md

@@ -14,7 +14,7 @@ tags:
   - USB
 
 ---
-[Die Computerzeitung schreibt: 22-Zöller kommt mit USB-Anschluss][1] &#8211; wozu also noch ein Display mit rumschleppen? Und eine Tastatur sollte sich vor Ort auftreiben lassen.
+[Die Computerzeitung schreibt: 22-Zöller kommt mit USB-Anschluss][1]  wozu also noch ein Display mit rumschleppen? Und eine Tastatur sollte sich vor Ort auftreiben lassen.
 
 Damit hat der Rechner in der Jackentasche Platz.
 

+ 1 - 1
content/posts/2008-12-02-one-more-iphone-android-lookalike.md

@@ -15,6 +15,6 @@ tags:
   - Nokia
 
 ---
-[Spiegel online writes: Das neue von Nokia: Mit Touchscreen und Tastatur][1] &#8211; and there are more to come.
+[Spiegel online writes: Das neue von Nokia: Mit Touchscreen und Tastatur][1]  and there are more to come.
 
  [1]: http://www.spiegel.de/fotostrecke/fotostrecke-37664.html

+ 1 - 1
content/posts/2008-12-03-ted-blaise-aguera-y-arcas-demos-photosynth.md

@@ -18,6 +18,6 @@ tags:
   - TED
 
 ---
-[Blaise Aguera y Arcas demos Photosynth][1]. The vision of automatic semantic correlation of images is stunning. And automatic 3d models &#8211; hu!
+[Blaise Aguera y Arcas demos Photosynth][1]. The vision of automatic semantic correlation of images is stunning. And automatic 3d models  hu!
 
  [1]: http://www.ted.com/index.php/talks/blaise_aguera_y_arcas_demos_photosynth.html

+ 1 - 1
content/posts/2008-12-17-monitor-farbkorrektur.md

@@ -19,7 +19,7 @@ tags:
 ---
 ein dauerhaftes Ärgernis ist (für mich) die verhagelte Farbwiedergabe [meines Monitors][1].
 
-Nach einem [ersten ernsthaften Einstellversuch im Juli][2] war ich relativ zufrieden &#8211; bis ich den Monitor per [DVI][3] an ein Macbook angeschlossen habe. Plötzlich waren da &#8211; auf demselben Monitor &#8211; zarte Farbabstufungen, wo vorher (per [VGA][4] am [gentoo][5] Rechner angeschlossen) scheinbar einfarbige Flächen waren.
+Nach einem [ersten ernsthaften Einstellversuch im Juli][2] war ich relativ zufrieden – bis ich den Monitor per [DVI][3] an ein Macbook angeschlossen habe. Plötzlich waren da – auf demselben Monitor – zarte Farbabstufungen, wo vorher (per [VGA][4] am [gentoo][5] Rechner angeschlossen) scheinbar einfarbige Flächen waren.
 
 Noch eklatanter fällt der Vergleich mit dem eingebauten Macbook Display aus.
 

+ 1 - 1
content/posts/2008-12-24-svg-12-tiny-mit-video-und-audio.md

@@ -15,7 +15,7 @@ tags:
   - Video
 
 ---
-hm &#8211; bis das wohl in den Browsern ankommt?
+hm  bis das wohl in den Browsern ankommt?
 
 <http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/multimedia.html#VideoElement>
 

+ 1 - 1
content/posts/2008-12-25-heise-online-231208-verfassungsrichter-eine-private-ueberwachungsgesellschaft-internationalen-ausmasses.md

@@ -17,7 +17,7 @@ tags:
   - Sicherheit
 
 ---
-[heise online &#8211; 23.12.08 &#8211; Verfassungsrichter: eine &#8222;private Überwachungsgesellschaft internationalen Ausmaßes&#8220;][1] &#8211; so ganz Unrecht hat Papier da nicht.
+[heise online – 23.12.08 – Verfassungsrichter: eine &#8222;private Überwachungsgesellschaft internationalen Ausmaßes&#8220;][1]  so ganz Unrecht hat Papier da nicht.
 
 Solange es der gemeine EMail Schreiber nicht mal schafft den Briefumschlag zuzukleben (zu kompliziert), ist's mit dem Briefgeheimnis natürlich nicht weit her. Mich übrigens inklusive &#8212; da praktisch keiner meiner EMail Kontakte den Brieföffner bedienen kann.
 

+ 1 - 1
content/posts/2008-12-26-sim-city-iphone-wieder-ein-nettes-gui.md

@@ -19,7 +19,7 @@ tags:
 
 
 <div style="width: 480px; text-align: center; font-family: verdana,sans-serif; font-size: 0.8em;">
-  <a href="http://video.golem.de/games/1779/simcity-impressionen.html">Video: Sim City &#8211; Impressionen</a> (3:20)
+  <a href="http://video.golem.de/games/1779/simcity-impressionen.html">Video: Sim City  Impressionen</a> (3:20)
 </div>
 
  [1]: http://www.golem.de/0812/64238.html

+ 1 - 1
content/posts/2008-12-28-styleguides-iphone-gnome.md

@@ -18,7 +18,7 @@ tags:
 ---
 Hunting for design guidelines, I found the [Gnome styleguide][1] to be rather detailed whereas the [iPhone HCI styleguide][2](1) remains quite general.
 
-I was looking for advice how to use colours (I'll blog about this soon) &#8211; and some (official) thoughts about when to use premade [widgets][3] and when to use custom ones.
+I was looking for advice how to use colours (I'll blog about this soon)  and some (official) thoughts about when to use premade [widgets][3] and when to use custom ones.
 
 (1) Due to Apple's rather esoteric communication policy, you need to register to see the webpage. Call me a coward, but I won't mirror the pdf.
 

+ 3 - 3
content/posts/2009-01-07-einigkeit-und-recht-und-sicherheit.md

@@ -25,13 +25,13 @@ Gruslig.
 
 Was mich an dem ganzen Terrorhokuspokus extrem stört, ist daß der Mensch entweder als rein passiver Konsument von Sicherheit oder eben als Terrorist auftaucht. Zivilcourage? Mündiger Bürger? Ist das out? Was hilft dem [Opa in der U-Bahn die Videoüberwachung, wenn die Umstehenden nur glotzen und keiner hilft][2]?
 
-Abgesehen davon waren die Bilder damals gut für die Tagesschau und Bild &#8211; die Fahndung kam durch die Anrufe über ein gestohlenes Mobiltelephon so schnell zu den Nachwuchs-Bushidos.
+Abgesehen davon waren die Bilder damals gut für die Tagesschau und Bild  die Fahndung kam durch die Anrufe über ein gestohlenes Mobiltelephon so schnell zu den Nachwuchs-Bushidos.
 
 Und wenn mir mein Handy geklaut wird gebe ich der Polizei die Erlaubnis mit mir zusammen die letzten Nummern unter die Lupe zu nehmen. Wenn der Dieb quasi nebenbei noch einen Mordversuch begangen hat helfe ich der Polizei gerne mit meinem Einzelverbindungsnachweis.
 
-Da braucht's keine Vorratsdatenspeicherung, keine Online-Durchsuchung, keine Bundeswehr im Inneren, keine Fingerabdrücke in Paß oder Ausweis und es muß niemand verwanzt werden. Die Rufnummern von der Telephonrechnung reichen &#8211; dem Cop eine Vollmacht ausgestellt, Fax an den Provider, evtl. ein paar Nervanrufe &#8211; fertig, oder?
+Da braucht's keine Vorratsdatenspeicherung, keine Online-Durchsuchung, keine Bundeswehr im Inneren, keine Fingerabdrücke in Paß oder Ausweis und es muß niemand verwanzt werden. Die Rufnummern von der Telephonrechnung reichen – dem Cop eine Vollmacht ausgestellt, Fax an den Provider, evtl. ein paar Nervanrufe – fertig, oder?
 
-Also &#8211; wozu soll das alles eigentlich gut sein?
+Also  wozu soll das alles eigentlich gut sein?
 
 Sind das Abwehrkämpfe der Oldschool Nomenklatura einer immer demokratischer werdenden Gesellschaft gegenüber? Wäre es nicht stattdessen sinnvoll sich Gedanken über die Bedeutung von Vertraulichkeit für das menschliche und geschäftliche Miteinander zu machen?
 

+ 4 - 4
content/posts/2009-01-08-privatsphare-20-was-wird-das-wohl-sein.md

@@ -16,17 +16,17 @@ tags:
   - PhotoSynth
 
 ---
-Vielleicht sind die staatliche Überwachung (z.B. Maut-Überwachung, Vorratsdatenspeicherung, BKA Gesetz) und die gewerbliche Datensammelei (incl. Pannen) völliger Kinderkram &#8211; im Vergleich zu den öffentlichen, privaten Datensammlungen.
+Vielleicht sind die staatliche Überwachung (z.B. Maut-Überwachung, Vorratsdatenspeicherung, BKA Gesetz) und die gewerbliche Datensammelei (incl. Pannen) völliger Kinderkram  im Vergleich zu den öffentlichen, privaten Datensammlungen.
 
-<!--more-->Nehmen wir mal Photos &#8211; von jedem schwirren Unmengen an Photos durch's Netz. Allein Party- und Urlaubsbilder&nbsp; mit einem selbst im Hintergrund.
+<!--more-->Nehmen wir mal Photos  von jedem schwirren Unmengen an Photos durch's Netz. Allein Party- und Urlaubsbilder&nbsp; mit einem selbst im Hintergrund.
 
 Und jetzt kommt z.B. [iPhoto mit Faces][1] (Facebook, Picasa und [OpenCVLibrary][2] können's schon länger) und schon kann ich jemanden, den ich (oder evtl. jemand anders) 1x identifiziert habe in einer Menge an Photos automatisch finden.
 
 Mit Geo-Tagging lassen sich so z.B. Bewegungsprofile erstellen. Ungetaggte Bilder lassen sich per [Photosynth][3] korrelieren.
 
-Oder Netze &#8211; wer kennt wen. Aber das ist ja über die Sozialen Netzwerke eh schon öffentlich.
+Oder Netze  wer kennt wen. Aber das ist ja über die Sozialen Netzwerke eh schon öffentlich.
 
-Naja &#8211; vielleicht war Privatsphäre ja nur eine verübergehende Erscheinung. Früher im Dorf (oder im Stamm, in der Sippe, in der Höhle) hat auch jeder alles von jedem gewußt (und manchmal auch noch etwas mehr). Erst in der (post?-)industriellen urbanen Gesellschaft gab's sowas wie Anonymität oder vertrauliche Privatsphäre. Und jetzt ist's halt wieder vorbei &#8211; bald kann jeder mit Computer über jeden recht viel nachforschen.
+Naja  vielleicht war Privatsphäre ja nur eine verübergehende Erscheinung. Früher im Dorf (oder im Stamm, in der Sippe, in der Höhle) hat auch jeder alles von jedem gewußt (und manchmal auch noch etwas mehr). Erst in der (post?-)industriellen urbanen Gesellschaft gab's sowas wie Anonymität oder vertrauliche Privatsphäre. Und jetzt ist's halt wieder vorbei  bald kann jeder mit Computer über jeden recht viel nachforschen.
 
 Also?
 

+ 13 - 11
content/posts/2009-01-23-im-klimafreundlicher.md

@@ -5,28 +5,30 @@ type: post
 date: 2009-01-23T16:31:25+00:00
 url: /2009/01/im-klimafreundlicher/
 yourls_shorturl:
-  - http://s.mro.name/u
+- http://s.mro.name/u
 language: de
 categories:
 - sysadmin
 tags:
-  - CCC
-  - Jabber
-  - Pidgin
+- CCC
+- Jabber
+- Pidgin
 
 ---
 Bisher hab' ich als [Jabber][1] Server hauptsächlich [jabber.org][2] verwendet.
 
-Da der in den USA steht, geht somit jede Statusänderung und jeder Textschnipsel über den großen Teich &#8211; das muß ja nicht unbedingt sein.
+Da der in den USA steht, geht somit jede Statusänderung und jeder Textschnipsel über den großen Teich  das muß ja nicht unbedingt sein.
 
 Also: Ab jetzt benutze ich verstärkt [jabber.ccc.de][3]. Allderdings galt's dem [Pidgin][4] zunächst das SSL Zertifikat zu unterzuschieben:
 
-<pre>$ cd ~/.purple/certificates/x509/tls_peers
-$ openssl s_client -connect jabberd.jabber.ccc.de:443 &gt;&gt; jabber.ccc.de
-# alles vor -----BEGIN CERTIFICATE-----
-# und nach -----END CERTIFICATE-----
-# löschen:
-$ vi jabber.ccc.de</pre>
+```bash
+$ cd ~/.purple/certificates/x509/tls_peers
+$ openssl s_client -connect jabberd.jabber.ccc.de:443 >> jabber.ccc.de
+# alles vor -----BEGIN CERTIFICATE-----
+# und nach -----END CERTIFICATE-----
+# löschen:
+$ vi jabber.ccc.de
+```
 
 ([Woher][5], [Wohin][6])
 

+ 16 - 12
content/posts/2009-02-18-lftp-osx-dmg.md

@@ -5,14 +5,14 @@ type: post
 date: 2009-02-18T12:19:22+00:00
 url: /2009/02/lftp-osx-dmg/
 yourls_shorturl:
-  - http://s.mro.name/3g
+- http://s.mro.name/3g
 language: de
 categories:
 - sysadmin
 tags:
-  - FTP
-  - lftp
-  - OS X
+- FTP
+- lftp
+- OS X
 
 ---
 Da's für [lftp][1] zwar einen [Darwinport][2] gibt, aber kein [Disk Image][3] (was unbedarfte Seelen durchaus von der Installation abhalten kann), habe ich ein solches gebaut und hier zum
@@ -23,28 +23,32 @@ Da's für [lftp][1] zwar einen [Darwinport][2] gibt, aber kein [Disk Image][3] (
 
 verlinkt. Leider ist das Binary nicht statisch gelinkt, drum hat das ganze wenig Sinn. Details siehe unten im &#8222;Nachtrag&#8220;.
 
-Wie und wo genau das sich dann installiert weiß ich nicht &#8211; ich selbst benutze ja den Darwinport
+Wie und wo genau das sich dann installiert weiß ich nicht  ich selbst benutze ja den Darwinport
 
 #### Zur Benutzung nur 2 kurze Anmerkungen:
 
 Ich finde es bequem (wenn auch von Sicherheitsseite nicht die reine Lehre) die FTP Zugangsdaten zu den meistbenutzten Servern in der <a href="http://manpages.unixforum.co.uk/man-pages/unix/solaris-10-11_06/4/netrc-man-page.html" target="_blank"><code>$HOME/.netrc</code></a> abzulegen. **Vorsicht:** die Datei muß folgende Rechte haben (bzw. nicht haben):
 
-<pre>$ chmod 600 $HOME/.netrc</pre>
+```bash
+$ chmod 600 $HOME/.netrc
+```
 
 Außerdem habe ich folgende Einstellungen in der `$HOME/.lftp/rc` Konfiguration:
 
-<pre>set ftp:list-options -a
-set net:limit-total-rate 0,15360&</pre>
+```bash
+set ftp:list-options -a
+set net:limit-total-rate 0,15360&
+```
 
 Viel Spaß damit!
 
 ## Nachtrag
 
-Leider funktioniert das so nicht, da das Binary nicht statisch gelinkt ist &#8211; was leider nicht geht:
+Leider funktioniert das so nicht, da das Binary nicht statisch gelinkt ist  was leider nicht geht:
 
-  * <http://dev.ultravelours.com/ports/enblend/index.html#static-builds>
-  * <http://el-tramo.be/guides/darcs-static-osx>
-  * <http://developer.apple.com/qa/qa2001/qa1118.html>
+* <http://dev.ultravelours.com/ports/enblend/index.html#static-builds>
+* <http://el-tramo.be/guides/darcs-static-osx>
+* <http://developer.apple.com/qa/qa2001/qa1118.html>
 
 Noch dazu sind die dynamisch gelinkten Macport Libs sämtlich auch als Teil von OSX selbst vorhanden. Sehr ärgerlich.
 

+ 2 - 2
content/posts/2009-02-27-wired-why-japan-hates-the-iphone.md

@@ -13,9 +13,9 @@ tags:
   - iPhone
 
 ---
-[wired | Why Japan Hates the iPhone][1] &#8211; though [maybe being made up][2],
+[wired | Why Japan Hates the iPhone][1]  though [maybe being made up][2],
 
-I find this quite interesting &#8211; in the end it's the closed, proprietary nature of the beast. No parallel apps, no apps that double Apple functionality (no video, audio etc.). I'm really curious about how the [G1 Android][3] does in Japan.
+I find this quite interesting  in the end it's the closed, proprietary nature of the beast. No parallel apps, no apps that double Apple functionality (no video, audio etc.). I'm really curious about how the [G1 Android][3] does in Japan.
 
 Seen at:
   

+ 1 - 1
content/posts/2009-02-28-barry-schwartz-uber-dienst-nach-vorschrift.md

@@ -23,7 +23,7 @@ Die Motivation warum man etwas tut ist eminent wichtig. Und verschiedene Gründe
   
 oder
   
-&#8222;Wenn wir ihnen 6 Wochenlöhne pro Jahr zahlen &#8211; wollen sie ein Atommüllager in ihrer Gemeinde? 25% Ja.&#8220;
+&#8222;Wenn wir ihnen 6 Wochenlöhne pro Jahr zahlen  wollen sie ein Atommüllager in ihrer Gemeinde? 25% Ja.&#8220;
 
 Schade. Eine zeitlang habe ich gehofft, das Weltanschauliche, Moralische als Motivation aus &#8222;das Richtige tun&#8220; weitgehend rauszukriegen und systematisch rein auf die [Spieltheorie][2] als Werkzeug zurückzugreifen.
 

+ 1 - 1
content/posts/2009-03-02-umfrage-handy-wichtiger-als-liebe.md

@@ -13,7 +13,7 @@ categories:
 ---
 &#8222;[Die Mehrheit der Jugendlichen in Deutschland würde einer Studie zufolge eher auf den aktuellen Partner verzichten als auf Handy und Internet.][1]&#8220;
 
-Naja &#8211; wenn man ein wenig Luft rausläßt bleibt doch noch, daß Web + Mobilfon (also: ein internetfähiger Taschenrechner mit Telephonfunktion) heute DAS Ding bei Jugendlichen ist.
+Naja  wenn man ein wenig Luft rausläßt bleibt doch noch, daß Web + Mobilfon (also: ein internetfähiger Taschenrechner mit Telephonfunktion) heute DAS Ding bei Jugendlichen ist.
 
 Tauchen Spielekonsolen in der Studie eigentlich irgendwo auf?
 

+ 1 - 1
content/posts/2009-03-05-dem-google-handy-droht-der-verkaufsstopp.md

@@ -13,7 +13,7 @@ tags:
   - Android
 
 ---
-Heute scheint ein guter Tag für irre Schnapsideen zu sein. Nach [dem hier][1] kommt jetzt noch eine [Rundumschlag-Patenklage wegen eines UMTS Patents][2]. u.a. gegen Google, weil deren Android OS hilft Geräte zu betreiben, mit denen o.g. Patent verletzt wird. Daß identische Hardware auch ohne Android betrieben wird &#8211; geschenkt.
+Heute scheint ein guter Tag für irre Schnapsideen zu sein. Nach [dem hier][1] kommt jetzt noch eine [Rundumschlag-Patenklage wegen eines UMTS Patents][2]. u.a. gegen Google, weil deren Android OS hilft Geräte zu betreiben, mit denen o.g. Patent verletzt wird. Daß identische Hardware auch ohne Android betrieben wird  geschenkt.
 
 Daß dieser Jux zu einem Verkaufsstopp führt glaube ich erst wenn ich's sehe.
 

+ 3 - 3
content/posts/2009-03-11-email-sicherheit.md

@@ -23,7 +23,7 @@ tags:
 
 Da die [großartige BSI Broschüre zum Thema][4] sehr umfassend angelegt ist, möchte ich die im &#8222;Hausgebrauch&#8220; praktisch nie beachtete Echtheit und Vertraulichkeit herausgreifen.
 
-Vielen Email Schreibern ist nicht bewußt, daß eine Mail [eher einer Postkarte denn einem Brief][4] ähnelt: Sie kann auf dem Weg zum Empfänger an jeder Stelle komplett gelesen und sogar verändert werden. Außerdem ist der in der Mail angegebene Absender keineswegs zwangsweise der wirkliche Absender &#8211; bei Postbriefen kann übrigens auch alles mögliche als Absender draufstehen.
+Vielen Email Schreibern ist nicht bewußt, daß eine Mail [eher einer Postkarte denn einem Brief][4] ähnelt: Sie kann auf dem Weg zum Empfänger an jeder Stelle komplett gelesen und sogar verändert werden. Außerdem ist der in der Mail angegebene Absender keineswegs zwangsweise der wirkliche Absender  bei Postbriefen kann übrigens auch alles mögliche als Absender draufstehen.
 
 <!--more-->
 
@@ -41,10 +41,10 @@ Für Apple Mail Benutzer gibt's eine komplette Anleitung als [5-Minuten Screenca
 
 Was bringt das nun?
 
-Zunächst mal das gleiche wie den Hosenladen zuzumachen &#8211; also eigentlich nichts. Zusätzlich springt aber raus, daß
+Zunächst mal das gleiche wie den Hosenladen zuzumachen  also eigentlich nichts. Zusätzlich springt aber raus, daß
 
   * ich zeige, daß ich meine Kommunikationspartner respektiere und ihnen vertrauliche Kommunikation ermögliche,
-  * verschickte (signierte) Mails fälschungssicher sind &#8211; nur was von mir signiert ist, kommt auch sicher von mir,
+  * verschickte (signierte) Mails fälschungssicher sind  nur was von mir signiert ist, kommt auch sicher von mir,
   * verschlüsselte Mails von und zu anderen Leuten mit S/MIME Zertifikaten unterwegs (außer der Betreffszeile) niemand sonst mitlesen kann,
   * ich [Medienkompetenz][10] zum Ausdruck bringe und kein [Internetausdrucker][11] bin.
 

+ 2 - 2
content/posts/2009-03-14-vserver-mit-gentoo-oder-doch-besser-ohne.md

@@ -22,9 +22,9 @@ Außerdem wollte ich einen [SSH-fähigen][4] Lagerplatz, da mir eine unverschlü
 
 <!--more-->Seither habe ich praktisch nichts anderes gemacht, als den Server immer wieder neu zu installieren, da ich leichtsinnigerweise als OS &#8222;gentoo minimal&#8220; genommen habe und sich der Feigling konstant weigert nach 
 
-`emerge --update --newuse --deep world` nochmal auf die Beine zu kommen &#8211; wenn sich der [gcc nicht wegen Speichermangel gleich weigert zu kompilieren][6]. Woran das liegt &#8211; einigen Verdacht ja, aber keine Ahnung (vServer Laie, der ich bin).
+`emerge --update --newuse --deep world` nochmal auf die Beine zu kommen – wenn sich der [gcc nicht wegen Speichermangel gleich weigert zu kompilieren][6]. Woran das liegt – einigen Verdacht ja, aber keine Ahnung (vServer Laie, der ich bin).
 
-Inzwischen hab ich die Faxen dicke und &#8211; [nachdem ich schon fast auf Ubuntu umgestiegen wäre][7] &#8211; begnüge ich mich vorerst mit einem veralteten OS &#8211; hauptsache Git geht und SSH ist einigermaßen dicht &#8211; also:
+Inzwischen hab ich die Faxen dicke und – [nachdem ich schon fast auf Ubuntu umgestiegen wäre][7] – begnüge ich mich vorerst mit einem veralteten OS – hauptsache Git geht und SSH ist einigermaßen dicht – also:
 
 [Git Basis][8]:
 

+ 1 - 1
content/posts/2009-03-21-bka-als-honeypot.md

@@ -14,7 +14,7 @@ tags:
   - Sicherheit
 
 ---
-[&#8222;Spiegel&#8220;: Innenministerium stoppt Überwachung der BKA-Seite][1] &#8211; nach dem Motto, &#8222;wer bei uns vorbeiguckt _muß_ kriminell sein.&#8220; oder wie ist das zu verstehen?
+[&#8222;Spiegel&#8220;: Innenministerium stoppt Überwachung der BKA-Seite][1]  nach dem Motto, &#8222;wer bei uns vorbeiguckt _muß_ kriminell sein.&#8220; oder wie ist das zu verstehen?
 
 Die sind ja richtig lustig.
 

+ 2 - 2
content/posts/2009-03-22-re-version-control-is-your-friend.md

@@ -14,13 +14,13 @@ tags:
   - subversion
 
 ---
-[Jeff Lamarche blogs &#8222;Version Control is Your Friend&#8220;][1]. I fully agree that version management is a phantastic pain killer &#8211; even when you're a one man show.
+[Jeff Lamarche blogs &#8222;Version Control is Your Friend&#8220;][1]. I fully agree that version management is a phantastic pain killer  even when you're a one man show.
 
 The important difference version management makes to me, is, that I can delete, clean up and refactor with ease and without the fear of ever loosing anything. And removing cruft from my projects helps to remain focused.
 
 <!--more-->
 
-Jeff features [subversion][2]. I think which tool you use doesn't matter too much &#8211; important is to do version management at all, from the beginning and in a fine grained manner (per project repo, commit often).
+Jeff features [subversion][2]. I think which tool you use doesn't matter too much  important is to do version management at all, from the beginning and in a fine grained manner (per project repo, commit often).
 
 I started using svn with version 0.17 (Jan 2003) but moved to [git][3] (and [gitx][4]) last year for a couple of reasons:
 

+ 1 - 1
content/posts/2009-03-25-fwd-internetzensur-die-grossen-lugen-der-ursula-von-der-leyen.md

@@ -15,7 +15,7 @@ tags:
   - Zensur
 
 ---
-Die [Kinderschutzorganisation Carechild bezichtigt Ministerin von der Leyen der Lüge][1] &#8211; u.A. in einem [Interview in der &#8222;Radiowelt am Mittag&#8220;][2] heute auf [Bayern2][3].
+Die [Kinderschutzorganisation Carechild bezichtigt Ministerin von der Leyen der Lüge][1]  u.A. in einem [Interview in der &#8222;Radiowelt am Mittag&#8220;][2] heute auf [Bayern2][3].
 
 <!--more-->Besonders geschmacklos finde ich nicht, daß Fr. von der Leyen Einwände gegen ihr Vorgehen als 
 

+ 1 - 1
content/posts/2009-03-29-internet-in-dosen.md

@@ -17,7 +17,7 @@ tags:
 Ca. 700 [MebiByte][1] gemischter Internet-(Film-)Aufschnitt:
 
   * [Willie Smits restores a rainforest | Video on TED.com][2]
-  * [Money as Debt &#8211; Geld als Schuld (deutsche Untertitel) | Google Video][3]
+  * [Money as Debt  Geld als Schuld (deutsche Untertitel) | Google Video][3]
   * [Barry Schwartz on our loss of wisdom | Video on TED.com][4]
   * [Matthieu Ricard on the habits of happiness | Video on TED.com][5]
   * [David Carson on design, discovery and humor | Video on TED.com][6]

File diff suppressed because it is too large
+ 4 - 4
content/posts/2009-03-30-zensur-grundsatzlich-betrachtet.md


+ 2 - 2
content/posts/2009-04-17-chapeau-eue.md

@@ -21,9 +21,9 @@ tags:
 
 Wenige große Provider waren mutig genug, sich dieser [skrupellosen Wahlkampfaktion][4] zu entziehen, u.a. Freenet und [1&1, deren Pressesprecher in der SZ seine Bestürzung][5] über das Vorgehen der fauchenden Ministerin darlegt.
 
-Der [Forderung der GI nach wirksamer Verfolgung][6] schließe ich mich voll an und verweise auf die [Erfahrungen von Carechild, wie schnell man KiPr0nServer vom Netz bekommt][7] &#8211; wenn man das denn will.
+Der [Forderung der GI nach wirksamer Verfolgung][6] schließe ich mich voll an und verweise auf die [Erfahrungen von Carechild, wie schnell man KiPr0nServer vom Netz bekommt][7]  wenn man das denn will.
 
-Das Internet darf kein grundrechtsfreier Raum sein &#8211; auch wenn das Ziercke & Schäuble anscheinend gerne so hätten.
+Das Internet darf kein grundrechtsfreier Raum sein  auch wenn das Ziercke & Schäuble anscheinend gerne so hätten.
 
 **Nachtrag**: Der CCC bringt einen [Audio-Mitschnitt der Pressekonferenz zum Internet-Zensurvertrag][8].
 

+ 3 - 3
content/posts/2009-04-21-gsm-codes-zum-ausschalten-der-mobilbox.md

@@ -20,11 +20,11 @@ tags:
 </p>
 
 <p style="text-align: left;">
-  im Moment mag ich keine Mobilbox haben &#8211; das scheint aber für iPhones nicht vorgesehen zu sein.
+  im Moment mag ich keine Mobilbox haben  das scheint aber für iPhones nicht vorgesehen zu sein.
 </p>
 
 <p style="text-align: left;">
-  Aber da gibt's ja noch die <a href="http://mobilfaq.in-ulm.de/t-mobile.faq.html">GSM Codes</a> (wie ich heute erfahren habe &#8211; danke, Ex-Chef!):
+  Aber da gibt's ja noch die <a href="http://mobilfaq.in-ulm.de/t-mobile.faq.html">GSM Codes</a> (wie ich heute erfahren habe  danke, Ex-Chef!):
 </p>
 
 <!--more-->
@@ -82,5 +82,5 @@ tags:
 <hr style="float: left;" />
 
 <p style="float: left;">
-  Ach ja &#8211; die 0179 kommt weil ich meine Nummer von O2 zu T-Mobile mitgenommen habe.
+  Ach ja  die 0179 kommt weil ich meine Nummer von O2 zu T-Mobile mitgenommen habe.
 </p>

+ 1 - 1
content/posts/2009-04-28-maybe-enough-africa-in-cellphones.md

@@ -18,7 +18,7 @@ tags:
   - TED
 
 ---
-Brian Eno once said [the problem with computers is, it's just not enough Africa in them][1]. Well &#8211; there's definitively more of it in cell phones.
+Brian Eno once said [the problem with computers is, it's just not enough Africa in them][1]. Well  there's definitively more of it in cell phones.
 
 Computers in Africa:
   

+ 10 - 8
content/posts/2009-04-28-s5-prasentationen-einfrieren.md

@@ -5,24 +5,26 @@ type: post
 date: 2009-04-28T09:42:35+00:00
 url: /2009/04/s5-prasentationen-einfrieren/
 yourls_shorturl:
-  - http://s.mro.name/2p
+- http://s.mro.name/2p
 language: de
 categories:
 - development
 tags:
-  - dokuwiki
-  - ImageMagick
-  - JUGM
-  - PDF
-  - piccolo2d
-  - Vortrag
+- dokuwiki
+- ImageMagick
+- JUGM
+- PDF
+- piccolo2d
+- Vortrag
 
 ---
 So toll das [Dokuwiki Plugin S5][1] für [einfache Präsentationen wie &#8222;Piccolo2D&#8220; gestern bei der JUGM][2] ist, ohne Netzverbindung guckt man in die Röhre. Auch eine Archivierung für nachfolgende Generationen ist schwierig.
 
 Da mir der Suchhelfer mit dem Doppel-O nichts sinnvolles ausgespuckt hat, habe ich einfach eine Serie von Screenshots der Präsentation (im Vollbildmodus) gemacht und ein wenig verkleinert (PDF Viewer scheinen Verkleinern qualitativ nicht so gut hinzukriegen) per [Imagemagick][3] in ein PDF moderater Größe konvertiert:
 
-<pre>convert *.png -resize 1024x768 -compress LZW slides.pdf</pre>
+```bash
+convert *.png -resize 1024x768 -compress LZW slides.pdf
+```
 
  [1]: http://www.dokuwiki.org/plugin:s5
  [2]: http://mro.name/go/jugm-p2d

+ 3 - 3
content/posts/2009-06-18-hfs-filesystem-spas.md

@@ -18,7 +18,7 @@ tags:
   - OS X
 
 ---
-Vorgestern Nacht hat &#8211; möglicherweise im Zusammenhang mit einem unaufmerksam durchgeführten [Java Update][1] &#8211; das [Filesystem meines Macbooks][2] einen Schuß bekommen. Folge: Die Maschine bootet, bootet, bootet &#8211; und schaltet sich kommentarlos aus (sic!). Alles sehr ergonomisch &#8211; ohne verwirrende Fehlermeldungen.
+Vorgestern Nacht hat – möglicherweise im Zusammenhang mit einem unaufmerksam durchgeführten [Java Update][1] – das [Filesystem meines Macbooks][2] einen Schuß bekommen. Folge: Die Maschine bootet, bootet, bootet – und schaltet sich kommentarlos aus (sic!). Alles sehr ergonomisch – ohne verwirrende Fehlermeldungen.
 
 <!--more-->
 
@@ -42,9 +42,9 @@ Vorgestern Nacht hat &#8211; möglicherweise im Zusammenhang mit einem unaufmerk
   </p>
 </div>
 
-Also das [&#8222;Disk Utility&#8220; von der Installations DVD][3] gefragt &#8211; das beim &#8222;Verify&#8220; aus der Kurve flog und das Filesystem auch nicht reparieren konnte (Stichwort [&#8222;Invalid Key Length&#8220;][4] und [&#8222;Invalid Node Structure&#8220;][5]). Also hab' ich meine Freunde von [Okapi][6] kontaktiert, die hatten den [DiskWarrior][7] rumliegen, abholen und wieder nach Hause.
+Also das [&#8222;Disk Utility&#8220; von der Installations DVD][3] gefragt  das beim &#8222;Verify&#8220; aus der Kurve flog und das Filesystem auch nicht reparieren konnte (Stichwort [&#8222;Invalid Key Length&#8220;][4] und [&#8222;Invalid Node Structure&#8220;][5]). Also hab' ich meine Freunde von [Okapi][6] kontaktiert, die hatten den [DiskWarrior][7] rumliegen, abholen und wieder nach Hause.
 
-Nur &#8211; wie kriege ich den Krieger gestartet? Regulär booten ging nicht, Single-Mode oder von der Installations-DVD bedeutet read-only Partitionen, das DVD Laufwerk ist belegt und USB Stick hatte ich keinen. Ach ja, vom CodeWarrior hatte ich eine Version vor Oktober 2008 &#8211; dessen DVD bootete mein Macbook nicht.
+Nur  wie kriege ich den Krieger gestartet? Regulär booten ging nicht, Single-Mode oder von der Installations-DVD bedeutet read-only Partitionen, das DVD Laufwerk ist belegt und USB Stick hatte ich keinen. Ach ja, vom CodeWarrior hatte ich eine Version vor Oktober 2008  dessen DVD bootete mein Macbook nicht.
 
 <div id="attachment_952" style="width: 410px" class="wp-caption aligncenter">
   <img class="size-full wp-image-952" title="dw-fehler" src="http://blog.mro.name/wp-content/2009/06/dw-fehler.png" alt="DiskWarrior Problem, eines der vielen." width="400" srcset="http://blog.mro.name/wp-content/uploads/2009/06/dw-fehler.png 554w, http://blog.mro.name/wp-content/uploads/2009/06/dw-fehler-300x167.png 300w" sizes="(max-width: 554px) 100vw, 554px" />

+ 1 - 1
content/posts/2009-06-18-iphone-als-modem-aka-tethering.md

@@ -38,6 +38,6 @@ OS 3.0 und unsere Freunde aus Österreich machen's möglich:
   </p>
 </div>
 
-So geht's zumindest technisch &#8211; ob das zu den Vertragsbedingungen paßt ist [eher unwahrscheinlich][1] und muß jeder in seinem Vertrag selbst nachgucken.
+So geht's zumindest technisch  ob das zu den Vertragsbedingungen paßt ist [eher unwahrscheinlich][1] und muß jeder in seinem Vertrag selbst nachgucken.
 
  [1]: http://www.apfelnews.eu/2009/03/19/iphone-os-30-tethering-iphone-als-modem-via-bluetooth-oder-usb/

+ 2 - 2
content/posts/2009-10-05-apns4j-look-at-the-dark-side-of-foss.md

@@ -17,11 +17,11 @@ tags:
   - Push
 
 ---
-It's either trivial or harder than it looks &#8211; (at least) four stalled projects named apns4j:
+It's either trivial or harder than it looks  (at least) four stalled projects named apns4j:
 
   * <http://sourceforge.net/projects/apns4j/> (zero files in svn)
   * <https://apns4j.dev.java.net/source/browse/apns4j/> (zero *.java in svn, same ownername as above)
   * <http://code.google.com/p/apns4j/> (zero files in svn, same ownername as above)
   * <http://github.com/netmask/apns4j> (three commits)
 
-I didn't look closer &#8211; maybe the last was gifted with a mature birth. The first three look like the project got stuck in choosing it's hoster.
+I didn't look closer  maybe the last was gifted with a mature birth. The first three look like the project got stuck in choosing it's hoster.

+ 1 - 1
content/posts/2009-11-17-cute-idea.md

@@ -14,7 +14,7 @@ tags:
   - sync
 
 ---
-to trigger a refresh &#8211; just pull down the list:
+to trigger a refresh  just pull down the list:
 
 [<img class="aligncenter size-full wp-image-1385" title="IMG_1223" src="http://blog.mro.name/wp-content/uploads/2009/11/IMG_1223.PNG" alt="IMG_1223" width="320" height="480" srcset="http://blog.mro.name/wp-content/uploads/2009/11/IMG_1223.PNG 320w, http://blog.mro.name/wp-content/uploads/2009/11/IMG_1223-200x300.PNG 200w" sizes="(max-width: 320px) 100vw, 320px" />][1]
 

+ 1 - 1
content/posts/2009-12-04-.md

@@ -10,6 +10,6 @@ categories:
 - seenontheweb
 
 ---
-[heise online &#8211; 13.11.08 &#8211; Zahn][1]
+[heise online – 13.11.08 – Zahn][1]
 
  [1]: http://www.heise.de/newsticker/Zahnaerzte-ziehen-Konsequenzen-aus-BKA-Gesetz-Keine-PCs-mit-Patientendaten-ans-Netz--/meldung/118869

File diff suppressed because it is too large
+ 1 - 1
content/posts/2009-12-08-heute-nur-fur-stammgaste.md


+ 1 - 1
content/posts/2010-02-02-poignant-xml-meets-huffman.md

@@ -18,7 +18,7 @@ tags:
 ---
 There's a [spec at the w3c about compressing (XML) named &#8222;Efficient XML Interchange&#8220; Format][1] taking into account the grammar and likelihood of atoms within the document. They indeed use something similar the the [Huffman Coding][2].
 
-The [results][3] are quite impressive &#8211; nice charts!
+The [results][3] are quite impressive  nice charts!
 
  [1]: http://www.w3.org/TR/2009/CR-exi-20091208/
  [2]: http://en.wikipedia.org/wiki/Huffman_coding

+ 1 - 1
content/posts/2010-03-17-iphone-sqlite-fulltext-index.md

@@ -20,7 +20,7 @@ tags:
 ---
 Most blogposts I found on this topic don't explain it from the beginning, so it took me quite a while to figure out how simple and powerful the [sqlite fulltext search API (FTS3)][1] actually is.
 
-  1. get the [sqlite3 amalgamation sources (v3.6.22)][2] and just unpack it into your iPhone project &#8211; sqlite3 as shipped on the iPhone doesn't support FTS3,
+  1. get the [sqlite3 amalgamation sources (v3.6.22)][2] and just unpack it into your iPhone project  sqlite3 as shipped on the iPhone doesn't support FTS3,
   2. [activate FTS3 support][3],
   3. [create the index table][4] programmatically inside your App as your Macs default sqlite3 doesn't support FTS3 either,
   4. use it like any other table except [using the MATCH operator for index queries][5].

+ 1 - 1
content/posts/2010-03-25-iphone-unit-test-coverage.md

@@ -23,7 +23,7 @@ tags:
   2. download CoverStory,
   3. open (with XCode) the XCode Project you want to measure,
   4. run the script EnableGCov.scpt linked to from the howto,
-  5. run your tests and see a [linker error][2], &#8211; dead end for the time being. <http://groups.google.com/group/coverstory-discuss/browse_thread/thread/fbcbf5ed61d8d02b#>
+  5. run your tests and see a [linker error][2],  dead end for the time being. <http://groups.google.com/group/coverstory-discuss/browse_thread/thread/fbcbf5ed61d8d02b#>
 
  [1]: http://code.google.com/p/coverstory/wiki/UsingCoverstory
  [2]: http://lists.apple.com/archives/xcode-users/2009/Aug/msg00436.html

+ 3 - 3
content/posts/2010-03-27-radio-geeky.md

@@ -28,14 +28,14 @@ tags:
   - Zündfunk
 
 ---
-wie schon in einem [älteren Artikel][1] angerissen möchte ich zeitgesteuert Radiosendungen aufnehmen &#8211; und zwar auf einem Rechner (mit Apache Webserver), der rund um die Uhr läuft.
+wie schon in einem [älteren Artikel][1] angerissen möchte ich zeitgesteuert Radiosendungen aufnehmen  und zwar auf einem Rechner (mit Apache Webserver), der rund um die Uhr läuft.
 
 Nun habe ich kürzlich einem großen [Zündfunk][2]-Fan, der selten Zeit hat ihn zu hören, diesen Mitschnitt als [Podcast][3] zum Geburtstag geschenkt. Das ganze wurde aufwändiger als ich dachte und setzt sich mittlerweile zusammen aus:
 
-  1. [Screen Scraping][4] der [B2 Programmwebsite][5] mit [scrAPI][6] &#8211; incl. Datumskorrektur weil das Programm nicht um Mitternacht umbricht sondern um 5 Uhr früh,
+  1. [Screen Scraping][4] der [B2 Programmwebsite][5] mit [scrAPI][6]  incl. Datumskorrektur weil das Programm nicht um Mitternacht umbricht sondern um 5 Uhr früh,
   2. diese Daten in einer [SQLite][7] DB [cachen][8] um nicht mehrmals am Tag zu scrapen (wenn man z.B. noch andere Sendungen aufnimmt),
   3. per [cron][9] einige Minuten vor Sendungsbeginn den [streamripper][10] starten ([v1.62.3][11] wegen alter [glib][12] auf [Debian Linux][13]), 
-      * da der einige Zeit zum Starten braucht triggere ich Sendungsbeginn und -ende zeitlich exakt über ein [Script, das Titelwechsel in den laufenden Streamripper injiziert][14] &#8211; der B2 Stream liefert selbst keine Sendungsinfos,
+      * da der einige Zeit zum Starten braucht triggere ich Sendungsbeginn und -ende zeitlich exakt über ein [Script, das Titelwechsel in den laufenden Streamripper injiziert][14]  der B2 Stream liefert selbst keine Sendungsinfos,
   4. falls der Stream zwischendurch unterbrochen wurde setzen wir die verschiedenen [mp3][15] Dateien zu einer zusammen (ohne Überblendung per Holzhammer: [cat][16])
   5. Sendungsinfos parallel zum mp3 als [xml][17] speichern, um nach Aufnahmeende von der DB unabhängig zu sein,
   6. aus allen vorhandenen mp3+xml Paaren ein [Podcast RSS][18] bauen und mit [gzip][19] packen,

+ 1 - 1
content/posts/2010-05-04-wordpress-email-benachrichtigungen.md

@@ -16,7 +16,7 @@ tags:
 ---
 ojeoje, ist das so abseitig oder hab' ich's nicht verstanden? War jedenfalls komplizierter als erwartet:
 
-  1. Die Konto Einstellungen für den Email Absender müssen von Hand in die DB geschrieben werden &#8211; die 4 `mailserver_*` Zeilen in der Tabelle `wordpress_options`,
+  1. Die Konto Einstellungen für den Email Absender müssen von Hand in die DB geschrieben werden  die 4 `mailserver_*` Zeilen in der Tabelle `wordpress_options`,
   2. Absenderadresse und Nick dann noch [per Plugin][1],
 
 fertig. Aber wieso so kompliziert?

+ 4 - 4
content/posts/2010-05-28-iphone-libxml2-relax-ng-validation.md

@@ -25,19 +25,19 @@ tags:
   - xmlTextReader
 
 ---
-Having a [validating parser][1] in place can reduce the required code to parse [XML][2] a lot &#8211; you know very well what you actually get. As mentioned in my last post about [RELAX NG & trang][3], I prefer [RELAX NG][4] over [W3C XML Schema][5] &#8211; which doesn't matter anyway because [Apple's suggested XML parser][6] doesn't validate at all.
+Having a [validating parser][1] in place can reduce the required code to parse [XML][2] a lot  you know very well what you actually get. As mentioned in my last post about [RELAX NG & trang][3], I prefer [RELAX NG][4] over [W3C XML Schema][5]  which doesn't matter anyway because [Apple's suggested XML parser][6] doesn't validate at all.
 
 So we have to go one level deeper and have a look at [libxml2][7].
 
 [Apple's example &#8222;XmlPerformance&#8220;][8] helped to get started, but didn't do the trick because libxml2 allows validation for [`xmlDocPtr`][9] or [`xmlTextReader`][10] but not for [SAX parsers][11] as used in the example.
 
-The [libxml2 examples][12] didn't help me too much either, but luckily there's [xmllint available in source][13] (OSS just rocks) which does almost what we want. It first parses the XML into a `xmlDocPtr` and validates afterwards &#8211; and it does so for a reason:
+The [libxml2 examples][12] didn't help me too much either, but luckily there's [xmllint available in source][13] (OSS just rocks) which does almost what we want. It first parses the XML into a `xmlDocPtr` and validates afterwards  and it does so for a reason:
 
-You can have a validating `xmlTextReader` (via `<a href="http://xmlsoft.org/html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a>`), but it won't detect [IDREF][14]s missing their referred to [ID][15] and the error messages lack the name of the failing item. BTW &#8211; when validating against a [W3C schema this ID/IDREF check isn't available yet][16].
+You can have a validating `xmlTextReader` (via `<a href="http://xmlsoft.org/html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a>`), but it won't detect [IDREF][14]s missing their referred to [ID][15] and the error messages lack the name of the failing item. BTW  when validating against a [W3C schema this ID/IDREF check isn't available yet][16].
 
 I finally discarded streaming XML parsing in favour of validation and [&#8222;push&#8220; parsing][17] (nice for data coming in over the wire) and did:
 
-  1. [load the RELAX NG regular form schema (watch out for the assignment of `relaxngschemas`)][18] &#8211; similar to xmllint schema loading,
+  1. [load the RELAX NG regular form schema (watch out for the assignment of `relaxngschemas`)][18]  similar to xmllint schema loading,
   2. [push the raw XML data into a `xmlDocPtr` (`xmlCreatePushParserCtxt`)][13] exactly like xmllint,
   3. [validate the in-memory document (`xmlRelaxNGValidateDoc`)][19],
   4. [turn it into a `xmlTextReader`][20],

+ 1 - 1
content/posts/2010-09-22-parser-mit-ragel.md

@@ -20,7 +20,7 @@ tags:
   - XML
 
 ---
-  * **[Parser mit Ragel][1]** &#8211; komplizierte Grammatiken und rattenschnelles XML.
+  * **[Parser mit Ragel][1]**  komplizierte Grammatiken und rattenschnelles XML.
   * [Warum Parser bauen?][2]
   * [Was spricht gegen Ad-Hoc Parsing (a.k.a. Gefrickel)?][3]
   * [Quelltext Impression][4]

+ 2 - 2
content/posts/2011-03-22-randnotiz-die-bayerische-fruehgotik-und-der-islam.md

@@ -58,7 +58,7 @@ Eine zackige Wikipedia Recherche ergab:
 
 * 1202 vollendete [Leonardo Fibonacci][4]<sup>3</sup> sein [Liber Abbaci][5]<sup>3</sup>, in dem er laut Wikipedia &#8222;[unter anderem die indischen Ziffern vorstellt und diese in der Tat als »indische Ziffern« und nicht als »arabische Ziffern« bezeichnet.][6]&#8222;<sup>2</sup>,
 * 1235 empfängt Otto II., Vater und Vorgänger von [Herzog Heinrich XIII.][7]<sup>4</sup>, &#8222;[den aus Italien heimkehrenden Friedrich II. in Burghausen.][8]&#8222;<sup>5</sup> — [Friedrich II.][9]<sup>6</sup> war immerhin Kaiser des [Heiligen Römischen Reiches][10] und hatte selbst evtl. arabische Grundkenntnisse<sup>7</sup> ,
-* 1255 entsteht die [Elisabethkapelle im Palas der Burg zu Burghausen: &#8222;Die innere Schlosskapelle aus diesem Jahr gilt als die älteste frühgotische Kirche im südbayerischen Raum.&#8220;][11]<sup>1</sup> &#8211; gebaut von Herzog Heinrich XIII.
+* 1255 entsteht die [Elisabethkapelle im Palas der Burg zu Burghausen: &#8222;Die innere Schlosskapelle aus diesem Jahr gilt als die älteste frühgotische Kirche im südbayerischen Raum.&#8220;][11]<sup>1</sup>  gebaut von Herzog Heinrich XIII.
 
 ## Fazit
 
@@ -107,7 +107,7 @@ Eine zackige Wikipedia Recherche ergab:
    (Abgerufen: 22. März 2011, 09:07 UTC)
 7. Siehe [hier][13]
 
-P.S.: Sämtliche Zitate und Quellen sind zwar nur aus Wikipedia, aber als solche ausgewiesen und verlinkt &#8211; das hier ist schließlich ein seriöser Blog und keine juristische Dissertation.
+P.S.: Sämtliche Zitate und Quellen sind zwar nur aus Wikipedia, aber als solche ausgewiesen und verlinkt  das hier ist schließlich ein seriöser Blog und keine juristische Dissertation.
 
  [1]: http://de.wikipedia.org/w/index.php?title=Burg_zu_Burghausen&oldid=83748961
  [2]: http://de.wikipedia.org/w/index.php?title=Burg_zu_Burghausen&oldid=83748961#F.C3.BCnfter_Burghof

+ 41 - 39
content/posts/2013-12-10-redmine-rails-puma-lighttpd.md

@@ -5,60 +5,62 @@ type: post
 date: 2013-12-10T12:16:46+00:00
 url: /2013/12/redmine-rails-puma-lighttpd/
 yourls_shorturl:
-  - http://mro.name/4i
+- http://mro.name/4i
 
 language: en
 categories:
-  - sysadmin
+- sysadmin
 tags:
-  - Debian
-  - lighttpd
-  - puma
-  - Rack
-  - Rails
-  - redmine
-  - Ruby
-  - Ruby on Rails
+- Debian
+- lighttpd
+- puma
+- Rack
+- Rails
+- redmine
+- Ruby
+- Ruby on Rails
 
 ---
-Running [redmine][1] with a lightweight [ruby on rails][2]/webserver stack on a [debian][3] server &#8211; [puma][4] and [lighttpd][5]:
+Running [redmine][1] with a lightweight [ruby on rails][2]/webserver stack on a [debian][3] server  [puma][4] and [lighttpd][5]:
 
 Assumed you've got both redmine and lighttpd already installed:
 
-  1. install puma gem:
-  
-    `$ sudo gem install puma` 
-  2. **caution**: [ArgumentError on ruby 1.8.7][6]
-  3. get [tools/jungle/init.d/puma][7] to `/etc/init.d/`
-  4. get [tools/jungle/init.d/run-puma][8] to `/usr/local/bin/`
-  5. add a puma app:
-  
-    `$ sudo /etc/init.d/puma add /your/app/path www-data`
-  6. `$ sudo -u www-data mkdir /your/app/path/tmp/puma`
-  7. puma config in rails app `/your/app/path/config/puma.rb` <pre lang="ruby" line="1">$ cat your/app/path/config/puma.rb
-environment 'production'
-pidfile File.expand_path( File.dirname(__FILE__) + "/../tmp/puma/pid" )
-state_path File.expand_path( File.dirname(__FILE__) + "/../tmp/puma/state" )
-threads 1,4
-port 8082
-activate_control_app</pre>
+1. install puma gem: `$ sudo gem install puma` 
+2. **caution**: [ArgumentError on ruby 1.8.7][6]
+3. get [tools/jungle/init.d/puma][7] to `/etc/init.d/`
+4. get [tools/jungle/init.d/run-puma][8] to `/usr/local/bin/`
+5. add a puma app: `$ sudo /etc/init.d/puma add /your/app/path www-data`
+6. `$ sudo -u www-data mkdir /your/app/path/tmp/puma`
+7. puma config in rails app `/your/app/path/config/puma.rb`
+```ruby
+$ cat your/app/path/config/puma.rb
+environment 'production'
+pidfile File.expand_path( File.dirname(__FILE__) + "/../tmp/puma/pid" )
+state_path File.expand_path( File.dirname(__FILE__) + "/../tmp/puma/state" )
+threads 1,4
+port 8082
+activate_control_app
+```
 
-  8. `$ grep puma /your/app/path/Gemfile.local<br />
+8. `$ grep puma /your/app/path/Gemfile.local  
 gem "puma"`
-  9. lighttpd proxy config: <pre lang="bash" line="1">$ grep 8082 /etc/lighttpd/conf-enabled/10-proxy.conf
-$HTTP["host"] == "redmine.example.com" { proxy.server = ( "" =&gt; (("host" =&gt; "127.0.0.1", "port" =&gt; 8082))) }</pre>
+9. lighttpd proxy config:
+```bash
+$ grep 8082 /etc/lighttpd/conf-enabled/10-proxy.conf
+$HTTP["host"] == "redmine.example.com" { proxy.server = ( "" => (("host" => "127.0.0.1", "port" => 8082))) }
+```
 
- 10. `$ sudo /etc/init.d/puma start`
- 11. `$ sleep 5 ; cat /your/app/path/tmp/puma/state`
- 12. `$ sudo update-rc.d -f puma defaults`
+10. `$ sudo /etc/init.d/puma start`
+11. `$ sleep 5 ; cat /your/app/path/tmp/puma/state`
+12. `$ sudo update-rc.d -f puma defaults`
 
 Versions:
 
-  * ruby: 1.8.7-p358 (2012-02-08) [x86_64-linux]
-  * rails: 3.2.15
-  * lighttpd: 1.4.28
-  * puma: 2.7.1
-  * redmine: 2.4.0
+* ruby: 1.8.7-p358 (2012-02-08) [x86_64-linux]
+* rails: 3.2.15
+* lighttpd: 1.4.28
+* puma: 2.7.1
+* redmine: 2.4.0
 
  [1]: http://redmine.org
  [2]: http://rubyonrails.org

+ 1 - 1
content/posts/2015-03-21-t-kom-wlan-hotspot-auf-einigen-bahnhoefen.md

@@ -48,7 +48,7 @@ Man darf raten was länger dauert:
   * die Nutzungsbedingungen lesen,
   * wirklich Surfen.
 
-P.S.: Und wie soll das eigentlich gehen &#8211; Nutzungsbedingungen lesen _**bevor**_ man WLAN bekommt?
+P.S.: Und wie soll das eigentlich gehen  Nutzungsbedingungen lesen _**bevor**_ man WLAN bekommt?
 
  [1]: http://www.bahn.de/p/view/service/bahnhof/railnet_bahnhof.shtml
  [2]: https://digitalegesellschaft.de/portfolio-items/storerhaftung-beseitigen/

File diff suppressed because it is too large
+ 1 - 1
content/posts/2015-04-27-qualitaetsjournalismus-und-datenschutz.md


+ 1 - 1
content/posts/2015-08-14-app-shaarlios-im-store.md

@@ -17,7 +17,7 @@ tags:
 ---
 brandneu für einen Euro im [App Store][1] ist meine 'Share Extension' für iOS 8+ und [Shaarli][2].
 
-Und &#8211; das ist ein Experiment &#8211; gleichzeitig als [GPLv3 Free Software][3] bei [github][4].
+Und – das ist ein Experiment – gleichzeitig als [GPLv3 Free Software][3] bei [github][4].
 
 Bin gespannt.
 

+ 121 - 123
content/posts/2015-12-21-lighttpd-letsencrypt-sh.md

@@ -25,9 +25,9 @@ via [letsencrypt.sh][1]
 
 Three cases,
 
-  * a 'normal' www domain: `www.filmfestapp.com`
-  * a 'normal' subdomain where the naked domain is part of shared webspace: `drop.mro.name`
-  * a proxy subdomain for a rails application (redmine): `developer.mro.name`
+* a 'normal' www domain: `www.filmfestapp.com`
+* a 'normal' subdomain where the naked domain is part of shared webspace: `drop.mro.name`
+* a proxy subdomain for a rails application (redmine): `developer.mro.name`
 
 <!--more-->
 
@@ -35,68 +35,65 @@ Three cases,
 
 ### [TLS / bettercrypto.org][2]
 
-&nbsp;
-
-<pre lang="bash">$ cat /etc/lighttpd/conf-enabled/11-tls-bettercrypto.conf 
-# based on https://github.com/BetterCrypto/Applied-Crypto-Hardening/blob/master/src/configuration/Webservers/lighttpd/10-ssl-dh.conf 
-$SERVER["socket"] == ":443" {
-    ssl.engine = "enable"
-    ssl.use-sslv2 = "disable"
-    ssl.use-sslv3 = "disable"
-    ssl.pemfile = "/etc/lighttpd/start-ssl-cert/2015/ssl.crt" # just a dummy (unused fallback)
-    ssl.honor-cipher-order = "enable"
-    
-    # http://www.heise.de/security/meldung/Logjam-Attacke-Verschluesselung-von-zehntausenden-Servern-gefaehrdet-2657502.html
-    # https://weakdh.org/sysadmin.html
-    # http://www.heise.de/forum/heise-Security/News-Kommentare/Logjam-Attacke-Verschluesselung-von-zehntausenden-Servern-gefaehrdet/Re-Ich-kriege-jedes-Mal-die-Kraetze/posting-7775924/show/
-    include_shell "/etc/lighttpd/ssl/cipher-list.sh"
-    ssl.dh-file = "/etc/lighttpd/ssl/dh2048.pem"
-
-    # ssl.ec-curve = "secp521r1"
-    ssl.ec-curve = "secp384r1"
-    setenv.add-response-header  = ( "Strict-Transport-Security" =&gt; "max-age=15768000") # six months
-}
-</pre>
+```bash
+$ cat /etc/lighttpd/conf-enabled/11-tls-bettercrypto.conf 
+# based on https://github.com/BetterCrypto/Applied-Crypto-Hardening/blob/master/src/configuration/Webservers/lighttpd/10-ssl-dh.conf 
+$SERVER["socket"] == ":443" {
+    ssl.engine = "enable"
+    ssl.use-sslv2 = "disable"
+    ssl.use-sslv3 = "disable"
+    ssl.pemfile = "/etc/lighttpd/start-ssl-cert/2015/ssl.crt" # just a dummy (unused fallback)
+    ssl.honor-cipher-order = "enable"
+    
+    # http://www.heise.de/security/meldung/Logjam-Attacke-Verschluesselung-von-zehntausenden-Servern-gefaehrdet-2657502.html
+    # https://weakdh.org/sysadmin.html
+    # http://www.heise.de/forum/heise-Security/News-Kommentare/Logjam-Attacke-Verschluesselung-von-zehntausenden-Servern-gefaehrdet/Re-Ich-kriege-jedes-Mal-die-Kraetze/posting-7775924/show/
+    include_shell "/etc/lighttpd/ssl/cipher-list.sh"
+    ssl.dh-file = "/etc/lighttpd/ssl/dh2048.pem"
+
+    # ssl.ec-curve = "secp521r1"
+    ssl.ec-curve = "secp384r1"
+    setenv.add-response-header  = ( "Strict-Transport-Security" => "max-age=15768000") # six months
+}
+```
 
 ### [letsencrypt.sh][1]
 
-&nbsp;
-
-<pre lang="bash">$ cd /var/www
-$ sudo git clone https://github.com/lukas2511/letsencrypt.sh
-$ sudo chown -R $USER:www-data letsencrypt.sh
-$ cd letsencrypt.sh
-$ echo "filmfestapp.com www.filmfestapp.com" | sudo tee -a domains.txt
-$ echo "mro.name drop.mro.name developer.mro.name" | sudo tee -a domains.txt
-</pre>
+```bash
+$ cd /var/www
+$ sudo git clone https://github.com/lukas2511/letsencrypt.sh
+$ sudo chown -R $USER:www-data letsencrypt.sh
+$ cd letsencrypt.sh
+$ echo "filmfestapp.com www.filmfestapp.com" | sudo tee -a domains.txt
+$ echo "mro.name drop.mro.name developer.mro.name" | sudo tee -a domains.txt
+```
 
 ### lighttpd / letsencrypt
 
-&nbsp;
-
-<pre lang="bash">$ cat /etc/lighttpd/conf-enabled/12-tls-letsencrypt.conf 
-$HTTP["scheme"] == "http" {
-  # https://github.com/letsencrypt/letsencrypt/issues/94#issuecomment-156695088
-  alias.url = (
-    "/.well-known/acme-challenge/" =&gt; "/var/www/letsencrypt.sh/.acme-challenges/"
-  )
-}
-
-$SERVER["socket"] == ":443" {
-  # letsencrypt / vhosts
-  # matches what is in /var/www/letsencrypt.sh/domains.txt
-  #
-  # https://www.digitalocean.com/community/tutorials/how-to-set-up-multiple-ssl-certificates-on-one-ip-with-lighttpd 
-  $HTTP["host"] =~ "^(www\.)?filmfestapp\.com" {
-    ssl.pemfile = "/var/www/letsencrypt.sh/certs/filmfestapp.com/privcert.pem"       # created by config.sh 'deploy_cert' hook!
-    ssl.ca-file = "/var/www/letsencrypt.sh/certs/filmfestapp.com/fullchain.pem"
-  }    
-  $HTTP["host"] =~ "^(developer|drop)\.mro\.name" {
-    ssl.pemfile = "/var/www/letsencrypt.sh/certs/mro.name/privcert.pem"              # created by config.sh 'deploy_cert' hook!
-    ssl.ca-file = "/var/www/letsencrypt.sh/certs/mro.name/fullchain.pem"
-  }
-}
-</pre>
+```bash
+$ cat /etc/lighttpd/conf-enabled/12-tls-letsencrypt.conf 
+$HTTP["scheme"] == "http" {
+  # https://github.com/letsencrypt/letsencrypt/issues/94#issuecomment-156695088
+  alias.url = (
+    "/.well-known/acme-challenge/" => "/var/www/letsencrypt.sh/.acme-challenges/"
+  )
+}
+
+$SERVER["socket"] == ":443" {
+  # letsencrypt / vhosts
+  # matches what is in /var/www/letsencrypt.sh/domains.txt
+  #
+  # https://www.digitalocean.com/community/tutorials/how-to-set-up-multiple-ssl-certificates-on-one-ip-with-lighttpd 
+  $HTTP["host"] =~ "^(www\.)?filmfestapp\.com" {
+    ssl.pemfile = "/var/www/letsencrypt.sh/certs/filmfestapp.com/privcert.pem"       # created by config.sh 'deploy_cert' hook!
+    ssl.ca-file = "/var/www/letsencrypt.sh/certs/filmfestapp.com/fullchain.pem"
+  }    
+  $HTTP["host"] =~ "^(developer|drop)\.mro\.name" {
+    ssl.pemfile = "/var/www/letsencrypt.sh/certs/mro.name/privcert.pem"              # created by config.sh 'deploy_cert' hook!
+    ssl.ca-file = "/var/www/letsencrypt.sh/certs/mro.name/fullchain.pem"
+  }
+}
+```
 
 ## A 'normal' www domain: `www.filmfestapp.com`
 
@@ -104,14 +101,15 @@ $SERVER["socket"] == ":443" {
 
 Other than above, we need a `server.conv` that redirects non-https requests &#8212; except `.well-known/acme-challenge`:
 
-<pre lang="bash">$ cat /var/www/lighttpd/www.filmfestapp.com/server.conf
-# handle http -&gt; https redirects
-$HTTP["scheme"] == "http" {
-  $HTTP["url"] !~ "/(\.well-known)/" {
-    url.redirect = (".*" =&gt; "https://www.filmfestapp.com$0")
-  }
-}
-</pre>
+```bash
+$ cat /var/www/lighttpd/www.filmfestapp.com/server.conf
+# handle http -> https redirects
+$HTTP["scheme"] == "http" {
+  $HTTP["url"] !~ "/(\.well-known)/" {
+    url.redirect = (".*" => "https://www.filmfestapp.com$0")
+  }
+}
+```
 
 ## A 'normal' subdomain where the domain is part of shared webspace: `drop.mro.name`
 
@@ -119,70 +117,70 @@ $HTTP["scheme"] == "http" {
 
 We need the above plus a hook in `config.sh` to (un)deploy the challenges during certificate verification:
 
-<pre lang="bash">$ cat /var/www/letsencrypt.sh/config.sh
-
-create_privcert_pem_and_deploy_challenge_hook() {
-  # ${HOOK} "deploy_challenge" "${altname}" "${challenge_token}" "${keyauth}"
-  # ${HOOK} "clean_challenge" "${altname}" "${challenge_token}" "${keyauth}"
-  # ${HOOK} "deploy_cert" "${domain}" "${BASEDIR}/certs/${domain}/privkey.pem" "${BASEDIR}/certs/${domain}/cert.pem" "${BASEDIR}/certs/${domain}/fullchain.pem"
-
-  echo "  $0 $@"
-
-  if [ "deploy_cert" = "$1" ] ; then
-    echo " + $0 Creating privcert.pem for lighttpd..."
-    # https://github.com/lukas2511/letsencrypt.sh/pull/73
-    # https://github.com/letsencrypt/letsencrypt/issues/94#issuecomment-155746219
-    cat "$3" "$4" &gt; "$(dirname "$3")/privcert.pem"
-  fi
-
-  # deploy+clean challenge to shared webhost via ftp
-  if [ "mro.name" = "$2" ]
-  then
-    # http://blog.mro.name/2015/03/key-based-ftp-authentication/
-    remote_dir="/&lt;webroot&gt;/.well-known/acme-challenge/"
-    rsa_keyfile="$HOME/.ssh/id_rsa"
-    if [ "deploy_challenge" = "$1" ] ; then
-      curl --upload-file "$3"            --user '&lt;remote_ftp_user&gt;:' --output /dev/null --silent --show-error --key "${rsa_keyfile}" --pubkey "${rsa_keyfile}.pub" "sftp://&lt;ftp_host&gt;${remote_dir}/" || echo " ! Failure: $@" 1&gt;&2
-    elif [ "clean_challenge" = "$1" ] ; then
-      curl --quote "rm ${remote_dir}/$3" --user '&lt;remote_ftp_user&gt;:' --output /dev/null --silent --show-error --key "${rsa_keyfile}" --pubkey "${rsa_keyfile}.pub" "sftp://&lt;ftp_host&gt;${remote_dir}/" || echo " ! Failure: $@" 1&gt;&2
-    fi
-  fi
-}
-
-HOOK=create_privcert_pem_and_deploy_challenge_hook
-
-</pre>
+```bash
+$ cat /var/www/letsencrypt.sh/config.sh
+
+create_privcert_pem_and_deploy_challenge_hook() {
+  # ${HOOK} "deploy_challenge" "${altname}" "${challenge_token}" "${keyauth}"
+  # ${HOOK} "clean_challenge" "${altname}" "${challenge_token}" "${keyauth}"
+  # ${HOOK} "deploy_cert" "${domain}" "${BASEDIR}/certs/${domain}/privkey.pem" "${BASEDIR}/certs/${domain}/cert.pem" "${BASEDIR}/certs/${domain}/fullchain.pem"
+
+  echo "  $0 $@"
+
+  if [ "deploy_cert" = "$1" ] ; then
+    echo " + $0 Creating privcert.pem for lighttpd..."
+    # https://github.com/lukas2511/letsencrypt.sh/pull/73
+    # https://github.com/letsencrypt/letsencrypt/issues/94#issuecomment-155746219
+    cat "$3" "$4" > "$(dirname "$3")/privcert.pem"
+  fi
+
+  # deploy+clean challenge to shared webhost via ftp
+  if [ "mro.name" = "$2" ]
+  then
+    # http://blog.mro.name/2015/03/key-based-ftp-authentication/
+    remote_dir="/<webroot>/.well-known/acme-challenge/"
+    rsa_keyfile="$HOME/.ssh/id_rsa"
+    if [ "deploy_challenge" = "$1" ] ; then
+      curl --upload-file "$3"            --user '<remote_ftp_user>:' --output /dev/null --silent --show-error --key "${rsa_keyfile}" --pubkey "${rsa_keyfile}.pub" "sftp://<ftp_host>${remote_dir}/" || echo " ! Failure: $@" 1>&2
+    elif [ "clean_challenge" = "$1" ] ; then
+      curl --quote "rm ${remote_dir}/$3" --user '<remote_ftp_user>:' --output /dev/null --silent --show-error --key "${rsa_keyfile}" --pubkey "${rsa_keyfile}.pub" "sftp://<ftp_host>${remote_dir}/" || echo " ! Failure: $@" 1>&2
+    fi
+  fi
+}
+
+HOOK=create_privcert_pem_and_deploy_challenge_hook
+```
 
 ## A proxy domain for a rails application (redmine): `developer.mro.name`
 
-&nbsp;
-
-<pre lang="bash">$ cat /etc/lighttpd/conf-enabled/10-proxy.conf
-# /usr/share/doc/lighttpd-doc/proxy.txt
-
-server.modules += ( "mod_proxy" )
-
-# http://blog.mro.name/2013/12/redmine-rails-puma-lighttpd/
-# http://redmine.lighttpd.net/projects/lighttpd/repository/entry/branches/lighttpd-1.4.x/src/mod_proxy.c?utf8=?&rev=2920#L276
-$HTTP["host"] == "developer.mro.name" {
-  $HTTP["url"] !~ "^/\.well-known/acme-challenge/" {
-    proxy.server = ( "" =&gt; (("host" =&gt; "127.0.0.1", "port" =&gt; 8082)))
-    $HTTP["scheme"] == "http" {
-      # capture vhost name with regex condition -&gt; %0 in redirect pattern
-      # must be the most inner block to the redirect rule
-      # zless /usr/share/doc/lighttpd/configuration.txt.gz
-      url.redirect = (".*" =&gt; "https://developer.mro.name$0")
-    }
-  }
-}
-</pre>
+```bash
+$ cat /etc/lighttpd/conf-enabled/10-proxy.conf
+# /usr/share/doc/lighttpd-doc/proxy.txt
+
+server.modules += ( "mod_proxy" )
+
+# http://blog.mro.name/2013/12/redmine-rails-puma-lighttpd/
+# http://redmine.lighttpd.net/projects/lighttpd/repository/entry/branches/lighttpd-1.4.x/src/mod_proxy.c?utf8=?&rev=2920#L276
+$HTTP["host"] == "developer.mro.name" {
+  $HTTP["url"] !~ "^/\.well-known/acme-challenge/" {
+    proxy.server = ( "" => (("host" => "127.0.0.1", "port" => 8082)))
+    $HTTP["scheme"] == "http" {
+      # capture vhost name with regex condition -> %0 in redirect pattern
+      # must be the most inner block to the redirect rule
+      # zless /usr/share/doc/lighttpd/configuration.txt.gz
+      url.redirect = (".*" => "https://developer.mro.name$0")
+    }
+  }
+}
+```
 
 Ready!
 
 With lighttpd global and vhost configuration set up, `config.sh` and `domains.txt` ready, we need just
 
-<pre lang="bash">$ /var/www/letsencrypt.sh/letsencrypt.sh --cron
-</pre>
+```bash
+$ /var/www/letsencrypt.sh/letsencrypt.sh --cron
+```
 
  [1]: https://github.com/lukas2511/letsencrypt.sh
  [2]: https://github.com/BetterCrypto/Applied-Crypto-Hardening/blob/master/src/configuration/Webservers/lighttpd/10-ssl-dh.conf

+ 1 - 1
content/posts/2016-06-13-render-ios-app-icons-from-one-svg-image.md

@@ -36,7 +36,7 @@ tags:
 #  GNU General Public License for more details.
 #
 #  You should have received a copy of the GNU General Public License
-#  along with this program.  If not, see &lt;http: //www.gnu.org/licenses>&lt;/http:>.
+#  along with this program.  If not, see <http: //www.gnu.org/licenses></http:>.
 #
 cd "$(dirname "$0")" ; mkdir build ; cd build