Dienstag, 24. Mai 2011

Historische Kursdaten in Gnuplot darstellen

Wie man Kursdaten in Gnuplot plottet :) GnuPlot und Kursdaten werden benötigt. Es gibt diverse Möglichkeiten, an historische Kursdaten zu kommen. Nicht immer sind diese einfach als csv einfach zu downloaden, manchmal muss man Tabellen in Dateien hinüberkopieren und nachbearbeiten.

Historische Kursdaten kostenlos im Internet:
http://www.jblaustein.de/finanzen/historische_kurse/historische_kurse.html

Ich hab mich kurzerhand für onvista.de entschieden und die Kursdaten in der Tabelle in eine csv kopiert, die Kommas ins englische Dot ersetzen lassen, wobei ich noch den Tausendtrenner zuvor entfernen musste, was jedoch in Kate bzw mit regulären Ausdrücken kein Problem war.


Dollar und Gold historische Kursdaten von Mai 2003 bis Mai 2011

(Die Dollarkurs-Kurve erinnert mich irgendwie stark an meine Collatz-Kurvendiagramme ;) )

Download
CSV Datei: Gold in US Dollar die Feinunze
CSV Datei: US/EUR Devisenkurs

Gnuplot: Skript für GnuPlot

Freitag, 20. Mai 2011

Wärmegewitter vom 19./22. 05. 2011

Eine kleine Bilderserie über Wolken und die gewittrige Entwicklung vom 19. 05. 2011.



Video Zeitraffer youtube:


Wetterbericht 22.05.11
Ebenfalls Gewitterpotenzial, jedoch unerfüllt an dem Tag, in der Entwicklung hier festgehalten:



Video Zeitraffer youtube:

Mittwoch, 18. Mai 2011

Bachelorarbeit Transportoptimierung

Nach nun über einem Jahr werde ich nun meine Bachelorarbeit unter der creative commons Lizenz veröffentlichen. Seit der Einreichung und Bewertung habe ich noch einige kleine Korrekturen vorgenommen.

Sie steht ab sofort zum Download bereit:
Bachelorarbeit "Transportparadoxon in der Transportoptimierung"

Creative Commons Lizenzvertrag
Die Bachelorarbeit "Transportparadoxon" von Matthias Werner steht unter einer Creative Commons Namensnennung-NichtKommerziell-KeineBearbeitung 3.0 Lizenz.


Abstract:
Das Transport- oder auch das more-for-less-Paradoxon besagt, dass durch einen geforderten Mehrtransport die Gesamtkosten des neuen optimalen Transportplans sinken. In dieser Arbeit werden verschiedene Ressourcen- und Kostenstrukturen untersucht, um Voraussetzungen für das Transport-Paradoxon oder für die Immunität zu erhalten.
Neben dem klassischen Transportproblem werden unendlich-dimensionale und offene Transportmodelle untersucht.

Samstag, 14. Mai 2011

Collatz Folge - Fortsetzung #2

(15.05. Inzwischen nochmal nachgelegt zu Version 0.5)

Collatz Tool

Soeben Collatz Tool v0.4 "geupdatet". Bilder der Collatz Folgen sind nun online als Webalbum unter picasa zu finden.

Darunter sind Screenshots aus dem aktuellen OpenGL Projekt zu sehen, an dem ich arbeite. Für den ersten Härtetest dienten quasi die Daten der Collatz Folgen. Bei einer Million Daten merkte man dann doch schon die Belastung bei der GPU Übertragung (DisplayListenKompilierung), jedoch liefen die Kernfunktionen flüssig (auf einen dual-core mit NVidia 9800GT 512MB).

Die Daten werden dabei blockweise aufgereiht, sodass die ersten bspw. 512 Werte der Collatz Folge (bei steigender Startnummer nach Terminierung) neben den nächsten 512 Werten anliegen. So ergeben sich 512 Stränge mit je 512 Werten. Man sieht wie die Kurven steigen und dann irgendwann wieder bei 1 terminieren. Dann fängt die nächste Folge mit dem nächsten Startwert an.


Screenshot aus dem View3d Projekt (128x128 Daten)

Mittwoch, 11. Mai 2011

Collatz Folge - Fortsetzung

Habe das Programm zur Collatz Folge weiterentwickelt.
Siehe Collatz Tool.
Einige Resultate in Kurzfassung:
(Die folgenden Bilder und weitere finden sich auch auf picasa)


Collatz: 23 bis 5022 - Verlauf der Zahlen


Collatz: 23 bis 5022
oberes TeilDiagramm: Anzahl der Rechenschritte bis Terminierung bei 1
Das Wachstum der Rechenschrittanzahl scheint immer schwächer anzuwachsen (ähnlich der log-Funktion, siehe nächstes Bild). Und wieder sind periodische Muster zu erkennen.
unteres TeilDiagramm: größte Zahl, die in der Folge erreicht wurde.


Collatz: 23 bis 5022 (wie eben, nur logarithmische Skalierung)


Collatz: 23 bis 5022 (wie oben, nur logarithmische Skalierung)


Collatz: 280 bis 289 je Zahl ein Farbwert der Regenbogenpalette

Würde gerne ein bissl mehr dazu raussuchen, wäre bestimmt auch ein nettes Seminarthema, aber mehr Zeit werde ich dem hier nicht widmen. Ich mag jedoch das Problem: eine einfache Fragestellung, eine einfache Formel, keine einfache Lösung. Typisch Zahlentheorie. Das erste "zahlentheoretische" Problem, mit dem ich mich damals vor etwa 8 Jahren befasst habe - in PHP - hatte mit gd (graf. Lib, kam ca. 2003 mit PHP 4.3 raus) rumgespielt. Das war ineffizient, aber geil. ;)

(Bilder wurden mit R erstellt)

Mittwoch, 4. Mai 2011

Source Code Header Replacer mit sed

Da ich in die Verlegenheit kam, den Lizenztext aller meiner Quellcode Dateien zu ändern, hab ich mir kurzerhand ein mini sed Skript zusammengebastelt. Es löscht zunächst den alten Lizenztext aus den Dateien und fügt dann den neuen Lizenztext ein, der aus einer Datei geholt wird. Man kann sich eine Vorschau anzeigen lassen, indem man die Option "-i" weglässt.
Die ersten 20 Zeilen der alten Quellcodedateien mögen der alte Lizenztext sein.

## replace headers script
# delete first 20 rows (old license text)
sed -i '1,20d' *.h
# maybe you have to insert newline at top
sed -i '1i\\n' *.h
# insert header content from file
sed -i '1r ../LICENSE' *.h

Ein Einzeiler für cpp und h Dateien:
find . -regex '.*\(cpp\|h\)' -exec sed -e '1,19d; 20 c\\n' -e '21r ./LICENSE' '{}' \;

- lösche die ersten 19 Zeilen
- ersetze letzte Zeile (20. Zeile) mit Leerzeile
- füge nach erste (Leer)Zeile Lizenztext aus Datei ein

(-e "1,20d; 21r ./LICENSE" hatte bei mir nicht funktioniert, da er den Lizenztext leider zwischen der ersten und zweiten Zeile eingefügt hatte, und nicht vor der ersten Zeile)

Sonntag, 1. Mai 2011

Handliches transcode Skript für Videokonvertierung

20. 05. 11: kleines Update. Das Skript hatte ich neu geschrieben und nun merk ich langsam, dass es nich so toll ist, wie ich mir das so dachte. Empfehle es nun nicht unbedingt, es sei denn, man will nur Zeitraffer machen und evtl Audio drunterlegen oder sich transcode mal näher anschauen. Mit ffmpeg bin ich in manchen Sachen doch schneller.

--

Ich verwende für die avi Konvertierung der Digitalkamerafilme (Canon Legria FS20, mod/mpeg Format, Interlaced top field first) transcode und ffmpeg.

Momentan hab ich folgende Funktionen in Gebrauch:
Video ...
- einfach konvertieren
- mit Audio unterlegen
- in Zeitrafferaufnahme konvertieren (timelapse)
- mit Rahmen oder Wegschneiden
- Zwei Pass Enkodierung

Download Skript:
mpgtranscode.sh



Mehrere Dateien konvertieren:
for i in `ls *.mod`; do
trap 'echo "Abort transcoding..."; exit;' 2
./mpgtranscode.sh $i ${i/%mod/avi}
done

Transcode:
FilterEinstellungen
ExportEinstellungen
Interlace/progressive (Interlace vs. Progressive Scan)
Deinterlacing Filters

Interlace Problematik:
If you get the (interlace) option wrong, there will be no difference on a PC monitor, but when viewed on a TV the video will be very jittery; in this case, try the opposite setting
Deinterlacing ist irreversibel. Falls der Zielplayer interlaced Filme darstellen kann, sollte man auf Deinterlacing verzichten. Für youtube sollte man Videos deinterlacen, auch wenn youtube inzwischen teilweise interlaced Videos (nur HD?) darstellen kann, soweit wie ich das mitbekommen hab.

Um herauszufinden, in welchem Interlace Mode ein Video aufgenommen wurde, kann man mit mplayer das Video folgendermaßen abspielen:
$ mplayer -vf tfields=1:0 video.mpg
If the motion looks smooth then the field dominance is top field first; if the motion is not smooth it is bottom field first. To verify the field order play the video again with
$ mplayer -vf tfields=1:1 video.mpg
(siehe Checking Interlace Order)