Blogumzug

Soeben habe ich mein Blog von Blogger auf einen kleinen Raspberry Pi 2 in meiner Wohnung verschoben. Als Engine benutze ich Pelican, ein statischer Blog Generator in Python, der mir auf den ersten Blick sehr gefällt.

Nicht nur, dass ich alle Einträge jetzt in Markdown schreiben kann, was es ermöglicht das ganze Blog per git zu verwalten (dementsprechend gibt es den Quellcode auf GitHub), sondern es steht mit Pygments ein sehr hübsches Syntax Highlighting zur Verfügung.

float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // evil floating point bit level hacking
    i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
    // y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed

    return y;
}

Außerdem Formeln in \(\LaTeX\) Notation dank MathJax

$$\mathcal H = \sum_{\left< i, j \right>} s_i s_j$$

Ich werde diese Gelegenheit außerdem nutzen die meisten Einträge meines Blogs zu verwerfen und nur einige ausgewählte zu überarbeiten und hier zu veröffentlichen.

Oberflächenkachelung mit TikZ

Man arbeitet an einem Seminarvortrag und will ein Modell auf einem periodischen Gitter erklären. Natürlich kann man sich nicht entscheiden, wie viele Elementarzellen man darstellen möchte. Außerdem ist es einem zuwider mehrere Elementarzellen per Hand zu schreiben.

Wer kennt das nicht?

Glücklicherweise gibt es eine Lösung. Weil man alle seine Aufzeichnungen sowieso in LaTeX setzt, benutzt man TikZ, bastelt eine Elementarzelle und kachelt sie über die Ebene, bis man das Gefühl hat, dass es genau passend für die Präsentation ist. Als Bonus kann man noch mit den Parametern spielen, um einen möglichst überzeugenden pseudo 3D-Effekt zu erzielen.

\documentclass{standalone}

\usepackage{tikz}

\begin{document}
    \begin{tikzpicture}
        \newcommand*{\shear}{0.2}
        \newcommand*{\height}{1.0}
        \newcommand*{\radius}{0.1}
        \newcommand*{\xspacing}{1}
        \newcommand*{\yspacing}{0.5}

        % two-dimensional lattice, with three dimensional basis
        % decreasing counter, otherwise there will be lines through the circles
        \foreach \x in {4,...,0}{
            \foreach \y/\dx in {3,...,0}{
                % primitive vectors
                \draw (\x+\y*\shear-\xspacing/2 , \y*\yspacing            )
                    -- (\x+\y*\shear+\xspacing/2, \y*\yspacing            );
                \draw (\x+\y*\shear-\shear/2    , \y*\yspacing-\yspacing/2)
                    -- (\x+\y*\shear+\shear/2   , \y*\yspacing+\yspacing/2);
                \draw (\x+\y*\shear             , \y*\yspacing            )
                    -- (\x+\y*\shear            , \y*\yspacing+\height    );

                % base
                \fill[white] (\x+\y*\shear, \y*\yspacing        ) circle(\radius);
                \draw        (\x+\y*\shear, \y*\yspacing        ) circle(\radius);

                \fill[gray]  (\x+\y*\shear, \y*\yspacing+\height) circle(\radius);
                \draw        (\x+\y*\shear, \y*\yspacing+\height) circle(\radius);
            }
        }
    \end{tikzpicture}
\end{document}

Isingmodell mit Kopplung

Und damit wäre wiedereinmal die Vorliebe dieses Blogs für schwarz-weiße Bilder, die entweder Linien und Kreise oder zu große Pixel enthalten, bestätigt.

Lissajous Figuren in Gnuplot

Da nicht jeder das nötige Kleingeld für ein Oszilloskop und Funktionsgenerator hat, aber jeder gerne eine Lissajous-Figur laufen haben möchte, liefere ich hier den entsprechenden Gnuplot Code.

reset
set term gif animate optimize
set output "lissajous.gif"
n=6250

set xr [-1:1]
set yr [-1:1]

set parametric
unset border
unset xtics
unset ytics

fx(t) = sin(t)
fy(t) = sin(2.999*t)

i=0
load "animateLissajou.gp"
set output

Die Datei „animateLissajou.gp“ sieht dann so aus:

set trange [i:i+2*pi]
plot fx(t),fy(t) lc rgb 'black' notitle

i=i+2*pi*10
if (i < n) reread

Stark angelehnt an diesen Blogeintrag. Das Ergenis sieht dann so aus.

Lissajous Figur