Recent changes to this wiki:

peter-simons.jpg: update picture
diff --git a/peter-simons.jpg b/peter-simons.jpg
index 7795ed7..ba518a6 100644
Binary files a/peter-simons.jpg and b/peter-simons.jpg differ

nixos-meetup-3-slides.pdf: Nix/Haskell presentation
diff --git a/nixos-meetup-3-slides.pdf b/nixos-meetup-3-slides.pdf
new file mode 100644
index 0000000..fc49d55
Binary files /dev/null and b/nixos-meetup-3-slides.pdf differ

creating tag page tag/person
diff --git a/tag/person/index.mdwn b/tag/person/index.mdwn
new file mode 100644
index 0000000..d3b7dfa
--- /dev/null
+++ b/tag/person/index.mdwn
@@ -0,0 +1,4 @@
+[[!meta title="pages tagged person"]]
+
+[[!inline pages="tagged(person)" actions="no" archive="yes"
+feedshow=10]]

deBruijn-graph.mdwn: fix typo
diff --git a/deBruijn-graph.mdwn b/deBruijn-graph.mdwn
index 3c5f07a..1feda56 100644
--- a/deBruijn-graph.mdwn
+++ b/deBruijn-graph.mdwn
@@ -11,7 +11,6 @@
   0 -> 0 [label = "0"]
   1 -> 1 [label = "1"]
   1 -> 0 [label = "0"]
-}
 """]]
 
 ## 11101000:

sonnensystem.mdwn: add a 'physik' tag to this article
diff --git a/sonnensystem.mdwn b/sonnensystem.mdwn
index 94aa01b..98a42ba 100644
--- a/sonnensystem.mdwn
+++ b/sonnensystem.mdwn
@@ -1,5 +1,5 @@
 [[!meta title="Geometrie des Sonnensystems"]]
-[[!tag geometrie]]
+[[!tag geometrie physik]]
 
 Die Frage nach der [[Entfernung zum Horizont|distance-to-the-horizon]]
 hatte mich auf den Geschmack gebracht. Da lag es nahe, als nächsten

index.mdwn: updated date in copyright statement
diff --git a/index.mdwn b/index.mdwn
index 1b2f273..e6d43c6 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright &copy; 2011 Peter Simons <simons@cryp.to>"]]
+[[!meta copyright="Copyright &copy; 2013 Peter Simons <simons@cryp.to>"]]
 [[!img "peter-simons.jpg" class="floatright" alt="[nice picture of Peter Simons]"]]
 
 Yo Internet,

peter-simons.jpg: use a more up-to-date image of myself
diff --git a/peter-simons.jpg b/peter-simons.jpg
index 51f7ec5..7795ed7 100644
Binary files a/peter-simons.jpg and b/peter-simons.jpg differ

flugbahnen: render the diagram horizontally centered
diff --git a/flugbahnen/index.mdwn b/flugbahnen/index.mdwn
index bc6bc36..fa298da 100644
--- a/flugbahnen/index.mdwn
+++ b/flugbahnen/index.mdwn
@@ -7,7 +7,7 @@ Würden außer der Beschleunigung durch den Wurf keinerlei andere Kräfte
 auf den Ball wirken, so flöge er endlos geradeaus. Der Winkel zwischen
 dieser Geraden und dem Erdboden sei $0\le\alpha\le\frac{\pi}{2}$.
 
-> [[!img "flugbahn.png" class="floatright"]]
+> [[!img "flugbahn.png"]]
 
 Über Zeit $t\ge0$ betrachtet, ist die Position des Balles in der
 komplexen Ebene $$\mathrm{e}^{i{\alpha}}\,v\,t+ih.$$

Imported the original cryp.to site for re-publishing with ikiwiki.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..af5a604
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+# ignored files and directories
+
+/.ikiwiki
+/recentchanges
diff --git a/3d-projection.mdwn b/3d-projection.mdwn
new file mode 100644
index 0000000..9e452ee
--- /dev/null
+++ b/3d-projection.mdwn
@@ -0,0 +1,9 @@
+[[!meta title="3D Projection"]]
+[[!tag geometrie]]
+
+At one point in my life I wondered how it's possible that computers can
+generate images that look 3-dimensional, i.e. that have "depth".
+Obviously, there is lot of know-how involved in that subject that's way
+beyond a lay-person's grasp. An explanation of the basic idea, however,
+has been written down in the [[3D Projection article
+(PDF)|3d-projection.pdf]].
diff --git a/3d-projection.pdf b/3d-projection.pdf
new file mode 100644
index 0000000..c461101
Binary files /dev/null and b/3d-projection.pdf differ
diff --git a/PGPAmiga-2.6.3is.lha b/PGPAmiga-2.6.3is.lha
new file mode 100644
index 0000000..dade732
Binary files /dev/null and b/PGPAmiga-2.6.3is.lha differ
diff --git a/address-of-riddle.mdwn b/address-of-riddle.mdwn
new file mode 100644
index 0000000..5d4f65b
--- /dev/null
+++ b/address-of-riddle.mdwn
@@ -0,0 +1,36 @@
+[[!meta title="C++ address_of() riddle"]]
+[[!tag cxx-riddle]]
+
+Can you fill in code for the `address_of()` function so that the program
+(1) compiles without warning, and (2) prints the addresses of all four
+objects correctly?
+
+    #include <iostream>
+
+    template <class T>
+    inline T * address_of(T & obj)
+    {
+      // Huh?
+    }
+
+    struct foo
+    {
+      foo()                            { }
+      foo *        operator& ()        { return 0; }
+      foo const *  operator& () const  { return 0; }
+    };
+
+    int main(int, char * [])
+    {
+      double        d1;
+      double const  d2( 0 );
+      std::cout << address_of(d1) << std::endl;
+      std::cout << address_of(d2) << std::endl;
+
+      foo           f1;
+      foo const     f2;
+      std::cout << address_of(f1) << std::endl;
+      std::cout << address_of(f2) << std::endl;
+
+      return 0;
+    }
diff --git a/adl-riddle.mdwn b/adl-riddle.mdwn
new file mode 100644
index 0000000..71025f9
--- /dev/null
+++ b/adl-riddle.mdwn
@@ -0,0 +1,60 @@
+[[!meta title="C++ ADL riddle"]]
+[[!tag cxx-riddle]]
+
+What will the following program write to standard output when run?
+
+    #include <iostream>
+
+    namespace one
+    {
+      struct thing { };
+
+      inline bool operator== (thing const &, thing const &)
+      {
+        std::cout << "one::operator==" << std::endl;
+        return true;
+      }
+    }
+
+    namespace two
+    {
+      typedef one::thing thing;
+
+      inline bool operator== (thing const &, thing const &)
+      {
+        std::cout << "two::operator==" << std::endl;
+        return true;
+      }
+    }
+
+    template <class T>
+    inline bool operator== (T const &, T const &)
+    {
+      std::cout << "::operator==" << std::endl;
+      return true;
+    }
+
+    int main(int, char * [])
+    {
+      {
+        one::thing foo, bar;
+        foo == bar;
+      }
+      {
+        two::thing foo, bar;
+        foo == bar;
+      }
+      {
+        using namespace one;
+        two::thing foo, bar;
+        foo == bar;
+      }
+      return 0;
+    }
+
+As an extra question, consider what would be the outcome if the
+following lines of code where added to `main()`?
+
+    using namespace two;
+    one::thing foo, bar;
+    foo == bar;
diff --git a/bremsen-oder-drumherumfahren.mdwn b/bremsen-oder-drumherumfahren.mdwn
new file mode 100644
index 0000000..61afa36
--- /dev/null
+++ b/bremsen-oder-drumherumfahren.mdwn
@@ -0,0 +1,90 @@
+[[!meta title="Bremsen oder Drumherumfahren?"]]
+[[!tag physik]]
+
+## Die Frage
+
+Ein Auto fährt mit $v$ Metern pro Sekunde geradeaus, und der Fahrer
+träumt, anstatt auf die Fahrbahn zu achten. Plötzlich fällt ihm auf,
+dass er frontal auf eine Mauer zu fährt. Die Straße gabelt sich vor der
+Mauer rechtwinklig nach links und rechts. Um der Mauer zu entgehen, kann
+der Fahrer entweder bremsen, oder er kann versuchen, eine
+90&deg;-Grad-Kurve zu fahren. Welche Wahl ist besser?
+
+## Die Vollbremsung
+
+Die Masseträgheit bewegt das Auto $v$ Meter pro Sekunde nach vorne --- auf
+die Mauer zu. Eine Vollbremsung beschleunigt das Fahrzeug entgegen der
+Fahrtrichtung mit $a$ Metern pro Quadratsekunde. Zu einem Zeitpunkt $t$
+ist die ursprüngliche Geschwindigkeit deswegen um $at$ Meter pro Sekunde
+reduziert: $$v(t)=v-at.$$
+
+Die Vollbremsung ist in dem Moment $t_0$ abgeschlossen, in dem
+$v(t_0)=0$ gilt, nämlich $t_0=\frac{v}{a}.$ So lange dauert es,
+Stillstand zu erreichen.
+
+Geschwindigkeit bedeutet Veränderung des Orts über Zeit, daher bestimmt
+$$r(t)\;=\;\int{}v(t)\,\text{d}t\;=\;vt-\frac{1}{2}at^2$$ welche Distanz
+der Wagen zu einem Zeitpunkt $t$ zurückgelegt hat. Von besonderem
+Interesse ist die Entfernung, nach der das Auto zum Stillstand kommt ---
+der Bremsweg:
+
+$$r(t_0)=\frac{v^2}{2a}.$$
+
+Bei einer Geschwindigkeit von 100 Stundenkilometern liegen tatsächlich
+gemessenen Bremswege verschiedener Auto-Typen zwischen 33 und 53 Metern.
+Die besten Werte erzielen erwartungsgemäß Sportwagen. Dies entspricht
+einer mittleren Brems-Beschleunigung zwischen 7,28 und 11,69 Metern pro
+Quadratsekunde. Nähme man diese Extremwerte zum Maßstab, dann ergäben
+sich beispielsweise folgende Bremswege für die jeweilige
+Geschwindigkeit:
+
+> <table border="1" cellspacing="5" cellpadding="5">
+>   <tr align="center"> <td>km/h</td> <td>20</td>   <td>80</td>    <td>120</td>   <td>200</td> </tr>
+>   <tr align="center"> <td>m</td>    <td>1,32</td> <td>21,12</td> <td>47,52</td> <td>123,0</td> </tr>
+>   <tr align="center"> <td>m</td>    <td>2,12</td> <td>33,92</td> <td>76,32</td> <td>212,0</td> </tr>
+> </table>
+
+Wie man sieht, ist ein Sportwagen bei hohen Geschwindigkeiten also
+durchaus eine feine Sache.
+
+## Die Kurve
+
+In einer Kurvenfahrt wird die Bewegung der Masseträgheit umgelenkt durch
+eine Beschleunigung, die im rechten Winkel zur Bewegung wirkt. Die

(Diff truncated)