Bug bei LaTeXs longtable

Ich weiß nicht, ob das wirklich ein Bug ist, ich würde es aber mal zumindest unter unexpected behavior packen:

Folgender Code crasht:

1
2
3
4
5
\begin{longtable}{r||r|r|r}
\caption{Messwerte 2 - 10 Messwerte}\\[3mm]
\label{tab:mv2}

Nr. & Impulse & Brutto & Netto\\

Schuld daran ist Zeile 3 in der sich hinter } noch Leerzeichen einschummeln. Ein abschließendes % fixt das:

\label{tab:mv2}%

Aus gnuplot mit pdflatex exportieren

Ein recht nützliches Skript für alle gnuplot Freunde. Es exportiert euren Plot in ein Tex-File und kompiliert es gleich zu einem PDF. Damit habt ihr auch in gnuplot Zugriff auf den vollen Latex-Formelsatz, zur Not sind auch nachträgliche Änderung im Tex-File möglich (dort würde sich dann z.B auch die Schriftart /-größe anpassen lassen). Standardmäßig ist der Export schwarz-weiß.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
save "$0.gp"
set terminal push
set terminal epslatex standalone

set output "$0.tex"
replot
set output
set terminal pop

system "pdflatex $0.tex > /dev/null"
system "rm $0.aux $0.log"

Der Aufruf des Skripts sieht wie folgt aus:

call "export.gp" "meinTollerPlot"

Wahrscheinlichkeitsnetz mit gnuplot

Ich musste heute Messreihen auf statistische Reinheit untersuchen, indem ich sie auf Wahrscheinlichkeitspapier auftrage und mit der theoretisch nach Gauß berechneten Gerade vergleiche.

Da wir von der Uni aus nur ein schlecht kopiertes Wahrscheinlichkeitsnetz zur Verfügung gestellt bekommen haben, wurde diese Arbeit natürlich auf gnuplot abgewälzt.

Dummerweise musste ich festellen, dass gnuplot nativ keine derartige Skalierung seiner Ordinate anbietet (wie es sie für logarithmische Skalierung gibt) und es auch nicht möglich ist, die Achsen nach beliebigen Funktionen zu skalieren. Daher muss folgender Trick herhalten:

Man belässt die Achsen in ihrer äquidistanten Unterteilung und skaliert einfach die Messwerte. Anschließend überschreibt man die Achsenbeschriftung mit eigenen Werten. Für die Berechnung der Werte bietet gnuplot die Funktion invnorm.

Der Vollständige workaround sieht dann wie folgt aus:

1
2
3
4
5
set ytics ("0.1" invnorm(0.001), "1" invnorm(0.01), "5" invnorm(0.05), "10" invnorm(0.1), "20" invnorm(0.2), "30" invnorm(0.3), "40" invnorm(0.4), "50" invnorm(0.5), "60" invnorm(0.6), "70" invnorm(0.7), "80" invnorm(0.8), "90" invnorm(0.9), "95" invnorm(0.95), "99" invnorm(0.99), "99.9" invnorm(0.999))
set yrange [invnorm(0.0001):invnorm(0.9999)]
set grid
set key left
plot "..." using 1:(invnorm($2/100))

Es empfiehlt sich die Legende links zu setzen, da sich im Idealfall die Messwerte von unten links nach oben rechts verteilen werden.

Bob Lee über References in der JVM

Ich habe gerade einen spannenden und anschaulichen Talk über References in der JVM angesehen. Die verschiedenen Reference-Types (Soft, Weak, Phantom, Hard) werden erklärt, danach folgt noch ein kleiner Ausflug in GUAVA und zum Schluss wird noch einmal kurz der MarkSweep garbage collector (grob) erklärt. Ein sehr schöner Talk, den ich euch nicht vorenthalten möchte:

Kommentare in IPTables

Ich habe bei einer Maschine IPTables für IPv6 konfiguriert und dabei festgestellt, dass die Rules sehr schnell unübersichtlich werden, gerade wenn man verschiedene Netze in IPTables freischaltet. Bei der Suche nach der besten Dokumentationsmöglichkeit bin ich im Racker Hacker Blog auf den Hinweis gestoßen, dass IPTables Modul “comment” gibt, das einen Kommentar direkt beim erstellen einer Rule setzt. Dieser Kommentar ist dann auch bei iptables -L sichtbar:

Rule erstellen:

ip6tables -I INPUT --src 2001:1620:f77::/48 -i eth0 -j ACCEPT -m comment --comment "Supertux home sixxs net"

Ausgabe ip6tables -n -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all      ::/0                 ::/0                state RELATED,ESTABLISHED
ACCEPT     all      ::/0                 ::/0
ACCEPT     icmpv6    ::/0                 ::/0                /* required for ipv6 to work! */
ACCEPT     all      2001:1620:f77::/48   ::/0                state NEW /* Supertux home sixxs net */
ACCEPT     all      20a1:4f8:162:4ff5::/64  ::/0                state NEW /* hetzner vm net */
ACCEPT     all      2001:6f8:900:7ea::2/128  ::/0                state NEW /* notebook sixxs tunnel */
ACCEPT     all      2001:4dd0:ff00:108d::2/128  ::/0                state NEW /* Olymp sixxs tunnel */
ACCEPT     all      2a01:4f8:161:3fff:200::2/128  ::/0                state NEW /* remote coding4coffee */
REJECT     all      ::/0                 ::/0                reject-with icmp6-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all      ::/0                 ::/0                reject-with icmp6-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Die Kommentare bleiben nach einem “service ip6tables save” auf einem Centos/RHEL natürlich bestehen. Ein besserer Weg um seine Firewall-Rules zu dokumentieren ist mir bisher noch nicht begegnet.