3D Visualisierung mit Gnuplot

Für Morgen Nachmittag im Modul Complex Processes müssen wir eine kleine Simulation (lineare Pólya-Prozess) visualisieren. Geschrieben hab ich das ganze recht schnell in Ruby, aber wie visualisiere ich das?

Gnuplot to the rescue!

Gnuplot kann natürlich auch 2 dimensionale Plots darstellen, und mit dem splot Befehl kann man das ganze auch noch drehen und wenden wie man will.

3dgnuplot

Gnuplot erwartet die Daten in einem sehr einfach Format, pro Zeile einfach die 3 Koordinatenpunkte:
2 0.0 0.0
2 0.01 0.227654469106179
2 0.02 0.642171565686863
2 0.03 0.936712657468506
2 0.04 0.900219956008798
...

Danach in der Gnuplot-Shell splot "data" und fertig, so einfach ist es.

Für die, die es bunt mögen, gibt es natürlich auch eine Möglichkeit.

3 comments »

GCC 4.4

GCC 4.4 kommt bald, und hat schon einige Unterstützung für den nächsten C++ Standard, erfreulicherweise auch Proposal 1984: deducing the type of variable from its initializer expression. Damit ist folgendes möglich:

for (auto it = x.begin(); it != x.end(); ++it) ...

(Apropos for loop, leider noch keine Unterstützung für den range based for loop.)

No comment »

Programmer Competency Matrix

Die Osterferien sind vorbei und es gibt einige Feeds zum durchlesen. Cocaman will wissen, wo ich (und die anderen Planet-HSRler) in der Programmer Competency Matrix stehen.

Computer Science

Data structures, algorithms und systems programming sollten nicht so ein Problem darstellen. Am ehesten vielleicht noch die Algorithmen, da gehts mit dem Master wohl langsam zum Log-Level.

Software Engineering

Hier sollte log(n) wohl drinliegen. Naja, ich hab Bzr/Mercurial/Darcs nicht ausprobiert, Git hat mich begeistert und fertig. Automated UI Tests sind eine andere Sache, ich weiss zumindest, wo die Probleme liegen und warum es sehr aufwändig ist (SWT alleine ist schon mühsam, dann aber noch Eclipse Plugins..).

Programming

“complex systems with multiple product lines”.. Systeme mit mehreren Produktlinien? Sorry, damit kann ich nicht dienen. Aber ich hab alle Productline Engineering Episoden von SE-Radio gehört. Thema Kommentare: Summary für ein File? Wenn ein File ein Summary braucht, dann ist es zu gross. Ansonsten bin ich wohl überall schon auf dem n-Level. Muss ich jetzt wirklich ein Framework schreiben? Andererseits, Template-Methods hab ich schon geschrieben, also hab ich den Punkt doch schon erfüllt :-)

Experience

Wenn mir jemand sagt, wo ich professional experience in Functional- und Logic Programming erhalte, bitte melden. Lazy evaluation, Currying, Continuations, damit sollte ich dienen können. Auch wenn mir Continuations schon ab und zu noch Kopfzerbrechen bereiten (zumindest in nicht-Lisp).

Knowledge

“Has actually written tools and scripts, added bonus if they’ve been published.” Check! “Maintains a blog in which personal insights and thoughts on programming are shared” Check!

Im Schnitt (Experience ausgenommen) bin ich wohl auf Level n und gut unterwegs in Richtung log(n).

Also, ich denke keine schlecht Liste, eine gute Orientierung wenn man nicht mehr weiss was man noch lernen könnte und eine gute Ermahnung wenn man glaubt, man könne schon alles.

No comment »

Die Gelesen Kategorie

Meine Gelesen-Berichte scheinen oft gelesen und relativ beliebt zu sein. Auch für mich ist eine Buchrezension immer eine gute Gelegenheit, nochmals ein wenig nachzudenken und meine Erinnerung aufzufrischen, denn meistens vergehen ein paar Wochen bis ich über ein Buch blogge.

Nun, vor kurzen ist mir etwas aufgefallen: die Bilder zu den Büchern sind ja über das Amazon-Partnerprogramm auf Amazon verlinkt, das hatte ich vor allem deshalb gemacht, weil ich so sicherlich keinen Aerger wegen der Bilder bekomme. Ausserdem sind die Bücher in einem Shop eingetragen, das geht fast Hand in Hand mit dem erstellen der Links.

Nun, anscheinend gibt es sogar Leute, die die Bücher über meine Links auch kaufen (11 bisher), wie ich in einer E-Mail von Amazon erfahren habe, ich kriege nämlich ein paar Prozent Gewinnbeteiligung. Also, weiter so :-)

Und hier gleich noch ein wenig Werbung:


No comment »

Gelesen: Introduction to the Theory of Computation

Introduction to the Theory of Computation haben wir im Rahmen der letztsemestrigen Theoretischen Informatik Vorlesung als Grundlage verwendet, und zugegeben, ich habe es nicht komplett gelesen.

Von den Grundlagen wie Automatentheorie geht es die Chomsky-Hierarchie hoch bis zu den Turingmaschinen. Weiter zu verwandten Themen wie der Entscheidbarkeit (Church-Turing These, Hilberts Probleme, Halteproblem) und Reduzierbarkeit über zur Komplexitätstheorie. Das sind auch die Bereiche die ich gelesen habe, die fortgeschrittenen Themen habe ich dann weggelassen.

Das Buch ist wirklich sehr angehehm zu lesen, meistens war die Vorlesung (bei einem der drei Dozenten) sehr anspruchsvoll und man musste sich grosse Mühe geben, den Faden zwischen all den Definitionen, Beweisen und Sätzen nicht zu verlieren. Im Gegensatz dazu liest sich das Buch relativ ring. Auch ein Plus ist, dass es für einige Aufgaben auch Lösungen im Buch hat, das ist ja leider alles andere als selbstverständlich.

Fazit: Wem Computers Ltd. nicht gereicht hat und das Halteproblem verstanden hat, der sollte zu diesem nicht ganz billigen aber guten Buch greifen.

No comment »

Pointing Fingers

pointing_fingers

Und doch bin nur ich alleine schuld.

No comment »

Haufenweise Interessantes auf InfoQ

In letzter Zeit hat es gerade einen Haufen guter Videos von grossen Namen auf InfoQ gegeben:

The Evolution of Lisp by Guy Steele and Richard Gabriel.

Don Syme Answering Questions on F#, C#, Haskell and Scala.

Erik Meijer on LINQ.

Taming Effects with Functional Programming by Simon Peyton-Jones.

Wer noch nicht genug hat findet vielleicht in meinem Post über die MountainWest RubyConf 2009 Videos noch was.

No comment »

IT Aprilscherze

Eine kleine Auswahl an Aprilscherzen, die mich zum schmunzeln gebracht haben:

3 comments »