Rund um Robin - Software tag:robin.st,2008:mephisto/software Mephisto Noh-Varr 2008-04-13T20:14:24Z Robin Stocker tag:robin.st,2008-04-13:1094 2008-04-13T20:13:00Z 2008-04-13T20:14:24Z «Qt 4»-Tanz <p>Was machen die Programmierer des <span class="caps">GUI</span>-Toolkits Qt, wenn sie eine neue geile Version von Qt rausgebracht haben? Genau, ein lustiges Video inklusive Qt-Musik und Qt-Tanz ;o).</p> <p>Das Video gibts <a href="http://www.youtube.com/watch?v=NbTEVbQLC8s">auf Youtube</a> und <a href="http://trolltech.com/company/newsroom/press-kit/qt4dance">auf der offiziellen Seite</a>. Das ganze ist schon älter, aber immer noch lustig.</p> Robin Stocker tag:robin.st,2008-03-29:1026 2008-03-29T20:00:00Z 2008-03-29T20:08:03Z Grosse Schritte in Open Source <p>In der Welt der Software passiert im Moment viel, zumindest wenn man nach den grossen Versionsnummern geht ;). Nachfolgend eine Übersicht der Projekte, deren Entwicklung ich verfolge.</p> <h2>Python 3</h2> <p><img src="/blog/assets/2008/3/29/python-icon.png" height="48" alt="Python Icon" width="48" /></p> <p>Die finale Version Python 3.0 ist für August <a href="http://python.org/download/releases/3.0/">geplant</a> und so wie ich das vom Lesen der Python-Dev-Mailingliste beurteilen kann, ist das ein realistisches Ziel. Bis jetzt ist <a href="http://python.org/download/releases/3.0/">Alpha 3</a> verfügbar, mit der man schon mal rumspielen und <a href="/blog/2007/8/31/python-3-0-alpha-1-verfuegbar">neue Features</a> ausprobieren kann.</p> <h2>Ruby 2</h2> <p><img src="/blog/assets/2008/3/29/ruby-icon.png" height="48" alt="Ruby Icon" width="48" /></p> <p>Ruby 1.9 wurde an Weihnachten <a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/284720">veröffentlicht</a> und Ruby 2.0 sollte nicht mehr allzu weit entfernt sein, vielleicht Ende dieses Jahres. In einem <a href="http://www.youtube.com/watch?v=oEkJvvGEtB4">Video auf Youtube</a> von Yukihiro &laquo;Matz&raquo; Matsumoto, dem Designer von Ruby, werden die wichtigsten Änderungen in Ruby 1.9 und 2.0 erklärt.</p> <h2>OpenJDK 7</h2> <p><img src="/blog/assets/2008/3/29/java-icon.png" height="48" alt="Java Icon" width="48" /></p> <p>Java war bisher auf Linux <a href="http://www.gnu.org/philosophy/java-trap.html">nicht gern gesehen</a> weil die <span class="caps">JRE</span>/JDK von Sun proprietär war und die freien Implementierungen unvollständig. Mittlerweile hat aber Sun angefangen, die Bestandteile von Java unter der <span class="caps">GPL</span> zu veröffentlichen. Die Projekte <a href="http://openjdk.java.net/">OpenJDK</a> und IcedTea arbeiten daran, das <span class="caps">JDK</span> vollständig zu freier Software zu machen. Damit ist Java auf Linux kein Fremdobjekt mehr und es wird vielleicht einen Schub geben für mehr Java-Projekte in der <span class="caps">FOSS</span>-Welt. Ausserdem braucht man dann hoffentlich keine 32-Bit-Version mehr zu verwenden um Webstart und das Browser-Plugin zu kriegen…</p> <h2>Perl 6</h2> <p>Nur ein Witz, konnte nicht widerstehen ;).</p> <h2>Firefox 3</h2> <p><a href="http://www.mozilla.com/en-US/firefox/3.0b4/releasenotes/">Beta 4</a> kam am 10. März raus und die finale Version sollte in 2 bis 3 Monaten draussen sein und kommt mit vielen Verbesserungen:</p> <ul> <li>Bessere Integration unter Linux und Mac <span class="caps">OS X</span> (Plattformspezifisches Theme und Widgets)</li> <li>Speicherverbrauch und Lecks <a href="http://blog.pavlov.net/2008/03/11/firefox-3-memory-usage/">drastisch reduziert</a></li> <li>Geschwindigkeit von JavaScript gegenüber Firefox 2 <a href="http://blogs.zdnet.com/Burnette/?p=548">verdreifacht</a>, in Sunspider-Benchmark doppelt so schnell wie Safari und fünfmal so schnell wie Internet Explorer 7 :)</li> <li>Neues System für Lesezeichen (SQLite-Datenbank, mit Tags organisierbar)</li> <li>Intelligente Adresszeile (sucht irgendwo in Titel oder <span class="caps">URL</span> anstatt nur Anfang von <span class="caps">URL</span>, am häufigsten verwendete Einträge zuerst)</li> <li>Ganzseitenzoom möglich (nicht nur Text vergrössern)</li> <li>Dialog &laquo;Passwort merken?&raquo; abgeschafft, jetzt als Leiste oben wie bei geblockten Popups</li> <li><a href="http://ajaxian.com/archives/firefox-30-passes-acid-2-css-test">Besteht</a> Acid2-Browsertest</li> </ul> <h2><span class="caps">KDE 4</span></h2> <p>Im Januar ist <a href="http://www.kde.org/announcements/4.0/"><span class="caps">KDE 4</span>.0</a> erschienen und obwohl ich noch nicht umgestiegen bin, ziehe ich es mit 4.1 ernsthaft in Erwägung.</p> <h2>Mercurial 1</h2> <p>Vor ein paar Tagen ist die magische Version 1.0 des verteilten Versionsverwaltungssystems <a href="http://www.selenic.com/mercurial/">Mercurial</a> erschienen. Das fast vollständig in Python geschriebene Projekt ist eines der drei beliebtesten verteilten Versionsverwaltungssysteme, zum Beispiel wird es von Mozilla und Sun/OpenJDK verwendet. Die beiden anderen sind <a href="http://bazaar-vcs.org/">Bazaar</a> (auch in Python) und <a href="http://git.or.cz/">Git</a> (von Linus Torvalds, in C/Shell/Perl). Wer noch keines einsetzt, oder zumindest ausprobiert hat, verpasst was – Subversion ist out ;). Eine gute Einführung in die Konzepte dieser Systeme gibts <a href="http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/">auf betterexplained.com</a>.</p> <p><small>(Die hübschen Datei-Icons für die Programmiersprachen sind übrigens vom <a href="http://tango.freedesktop.org/">Tango-Projekt</a>, danke!)</small></p> Robin Stocker tag:robin.st,2007-08-31:506 2007-08-31T22:50:00Z 2007-08-31T22:54:46Z Python 3.0 Alpha 1 verfügbar <p>Die erste Alpha-Version von Python 3.0, auch bekannt als Python 3000 (scherzhaft nach dem voraussichtlichen Erscheinungsjahr benannt), ist auf der Python-Website <a href="http://python.org/download/releases/3.0/">verfügbar</a>. Sie ist vor allem für Programmierer gedacht, die einen ersten Eindruck von Python 3 haben möchten.</p> <p>Im Lauf des Jahres wird es noch mehrere Alpha-Versionen geben, im 2008 dann Betas und die finale Version ist für August 2008, also in einem Jahr geplant. Bin gespannt was zuerst draussen ist, Python 3 oder Ruby 2 – am Ende noch Perl 6 ;).</p> <p>Bei Python habe ich ein gutes Gefühl, der ganze Prozess wird in diversen PEPs (Python Enhancement Proposals) ziemlich transparent dokumentiert und auch die Mailing-Liste <em>Python 3000</em> ist informativ.</p> <p><a href="http://www.python.org/doc/essays/ppt/accu2006/Py3kACCU.ppt">Diese Präsentation von Guido</a> zeigt die wichtigsten Änderungen im Vergleich mit Python 2. Hier meine Zusammenfassung, mit Links zu den PEPs:</p> <ul> <li>Viele Altlasten (z. B. klassische Klassen) entfernt und generell Codebasis verbessert</li> <li><code>bytes</code> und <code>str</code> anstatt <code>str</code> und <code>unicode</code>, also Strings sind standardmässig Unicode-Strings, zu/von <code>bytes</code> muss explizit konvertiert werden</li> <li><a href="http://www.python.org/dev/peps/pep-3116/">Ein-/Ausgabe</a> überarbeitet, verschachtelbare Streams wie in Java, aber grundlegende Dinge bleiben einfach</li> <li><a href="http://www.python.org/dev/peps/pep-3101/">Neue String-Formatierung</a>, <code>"{0.name} ({0.alter})".format(person)</code> anstatt <code>"%s (%i)" % (person.name, person.alter)</code></li> <li><a href="http://www.python.org/dev/peps/pep-3119/">Abstrakte Basisklassen</a> (ABCs) für eingebaute und eigene Klassen; ähnlich wie Interfaces von Java, nur dass Methoden auch Implementierung haben können und dank Mehrfachvererbung von mehreren abgeleitet werden kann</li> <li><a href="http://www.python.org/dev/peps/pep-3107/">Optionale Annotationen für Funktionsparameter</a> wie zum Beispiel <code>def haul(item: Haulable, *vargs: PackAnimal)</code>, die für Python selber keine Bedeutung haben, aber zum Beispiel für generische Funktionen verwendet werden können</li> <li><code>range()</code>, <code>zip()</code>, <code>map()</code>, <code>filter()</code> geben Iteratoren zurück</li> <li><code>dict.keys()</code> und ähnliche geben <a href="http://www.python.org/dev/peps/pep-3106/">nicht mehr</a> eine Liste zurück, sondern eine View (Sicht), was schneller ist</li> </ul> <p>Ach ja, Python 3 wird keine geschweiften Klammern anstelle von Einrückung verwenden, hier Pythons Meinung dazu:</p> <pre><code>&gt;&gt;&gt; from __future__ import braces File "&lt;stdin&gt;", line 1 SyntaxError: not a chance </code></pre> <p>:). <code>python -c 'import this'</code> ist auch was lustiges zum ausprobieren.</p> Robin Stocker tag:robin.st,2007-07-21:445 2007-07-21T15:05:00Z 2007-07-21T15:07:25Z Mit MPlayer Fehler in Videos finden <h3>Ausgangslage</h3> <p>Ich hatte zwei <span class="caps">AVI</span>-Dateien, die aufs Byte genau gleich gross waren und den gleichen Film beinhielten (ui, das Wort ist ja ungewohnt so in der Vergangenheit). Die <span class="caps">SHA1</span>-Prüfsumme war aber nicht gleich, was heisst dass sich vermutlich bei der Übertragung einer der Dateien irgendwo ein kleiner Fehler eingeschlichen hatte. Wie weiss ich nun, welche Datei fehlerhaft ist, also welche ich löschen kann? Diese Frage ist natürlich nur wichtig, wenn man perfektionistisch veranlagt ist ;).</p> <h3>Lösung</h3> <p><a href="http://www.mplayerhq.hu/">MPlayer</a> muss wieder mal her. Zuerst dachte ich daran, den Film einfach in höchster Geschwindigkeit abzuspielen, aber da Faktor 4,35 anscheinend das schnellste ist, geht das noch zu lange.</p> <p>Zweiter Ansatz: Da beim Kodieren eines Videos dieses ja zuerst dekodiert werden muss, kann man den Film einfach mit einem möglichst schnellen Codec konvertieren und das Resultat verwerfen. Dazu noch <em>stdout</em> abschalten, damit nur die Dekodierfehler angezeigt werden. Mit <code>mencoder</code> geht das so:</p> <pre><code>mencoder video1.avi -ovc raw -oac pcm -o /dev/null &gt; /dev/null</code></pre> <p>Beim zweiten Video gab’s einen Fehler von wegen ungültiges <span class="caps">MP4</span>-Frame, beim ersten nicht, also ist klar welches gelöscht werden kann. Vielleicht gibt es noch eine bessere Lösung, aber die funktionierte eigentlich ganz gut, obwohl sie nicht so elegant ist.</p> Robin Stocker tag:robin.st,2007-07-10:439 2007-07-10T20:00:00Z 2007-07-10T20:00:56Z Meldung bei lokalem Overlay in Gentoo <p>Seit ein paar Tagen hatte ich auf meinem Gentoo-System jedes Mal die folgende Meldung, wenn ich <code>emerge</code> benutzte:</p> <blockquote> <p>Note: The repository at /usr/local/portage does not have a profiles/repo_name entry. This can reduce the functionality of the repository in some cases.</p> </blockquote> <p>So bringt man die Meldung wieder weg:</p> <pre><code>mkdir /usr/local/portage/profiles echo local-overlay &gt; /usr/local/portage/profiles/repo_name</code></pre> <p><a href="http://thread.gmane.org/gmane.linux.gentoo.user/185533">Auf der Gentoo-Newsgroup</a> gibt’s eine Erklärung dazu.</p> Robin Stocker tag:robin.st,2007-05-08:308 2007-05-08T21:33:00Z 2007-05-17T09:28:10Z O'Reilly über den Computerbuchmarkt <p>Der bekannte Computerbuchverlag O’Reilly (weiss eigentlich jemand, wie man das ausspricht?) hat wieder einmal seinen vierteljährlichen <a href="http://radar.oreilly.com/archives/2007/05/state_of_the_co_6.html">Bericht über den Computerbuchmarkt</a> herausgegeben.</p> <p>Im Bericht werden die Veränderungen der Buchverkäufe in verschiedenen Kategorien analysiert. Die Zahl der verkauften Bücher sagt natürlich etwas aus über die Trends in dieser &laquo;Szene&raquo;. Die Darstellung ist jeweils wie folgt:</p> <p><a href="http://radar.oreilly.com/Category_Q107_Q106-4.jpg"><img src="http://radar.oreilly.com/Category_Q107_Q106-4.jpg" height="290" alt="Trends im Computerbuchmarkt" width="400" /></a></p> <p>Die Grösse der Felder gibt an, wie viele Bücher in der Kategorie verkauft wurden. Die Farbe gibt die Veränderung in den letzten 12 Monaten an, wobei grün ein Wachstum, rot ein Rückgang und Schwarz neutral ist.</p> <h3>Web-Entwicklung</h3> <p>Was natürlich sofort auffällt und mich freut ist das grüngrüne Feld unten in der Mitte. Es ist Rails, mit 202% Wachstum :). Der &laquo;Kommentator&raquo; sagt darüber:</p> <blockquote> <p>Rails in the bottom middle was a small speck in last year’s first quarter post. Now the size of the box fits the size of its name at least.</p> </blockquote> <h3>Programmiersprachen</h3> <p>Auch erfreulich siehts bei den Programmiersprachen aus, wo Ruby und Python beide am wachsen sind. Visual Basic, C#, Java und C/C++ sind im roten Bereich, wobei interessanterweise C/C++ am wenigsten zurückgegangen ist. Auch hier der Kommentar:</p> <blockquote> <p>Python is also experiencing good growth, just not at the blazing velocity of Ruby. I would expect by next year, we will see Ruby have an even larger share/square.</p> </blockquote> <h3>Digitale Medien</h3> <p>Rechts unten neben 3D Studio Max und Maya hat’s noch ein grünes Feld mit dem Text &laquo;ble&raquo;. Ich vermute mal, dass das <a href="http://www.blender.org/">Blender</a> ist, das freie 3D-Modellierungs- und Animationsprogramm, jee!</p> <p><strong>Nachtrag</strong>: Die <a href="http://radar.oreilly.com/archives/2007/05/state_of_the_co_10.html">detaillierte Analyse</a> zur Sparte &laquo;Programmiersprachen&raquo; ist mittlerweile draussen.</p> Robin Stocker tag:robin.st,2007-01-01:34 2007-01-01T17:52:00Z 2007-01-01T17:54:10Z Ruby += [SVN, YARV] <p>In den letzten Tagen wurde Ruby von <span class="caps">CVS</span> zu Subversion <a href="http://redhanded.hobix.com/cult/rubyIsOffCvs.html">migriert</a>, jee :). Lustig, dass auch <span class="caps">GNOME</span> in dieser Zeit zu Subversion <a href="http://live.gnome.org/Subversion">gewechselt</a> hat. Der Trend <span class="caps">CVS</span> durch Subversion abzulösen, hält also an. Wenn dann mal alle bei Subversion sind, wird vermutlich ein verteiltes Versionsverwaltungssystem wie <a href="http://git.or.cz/">Git</a> interessant – immerhin wird es schon von so grossen Projekten wie Linux und X.org verwendet.</p> <p>Ausserdem wurde am 1.1. um 00:00 (nach japanischer Zeit) <a href="http://www.atdot.net/yarv/"><span class="caps">YARV</span></a> (Yet Another Ruby VM, Virtuelle Maschine für Ruby 2) mit der Entwicklungs-Version von Ruby <a href="http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?revision=11439&view=markup">zusammengeführt</a>. Was das bringt, wird zum Beispiel aus <a href="http://www.rubychan.de/share/yarv_speedups.html">diesem Vergleich</a> ersichtlich. <em>Merke: Wenn du mal eine Programmiersprache schreibst, fange gleich mit einer VM an ;).</em></p> Robin Stocker tag:robin.st,2007-01-01:33 2007-01-01T15:18:00Z 2007-01-01T15:19:31Z 23C3 <p>Vorgestern bin ich aus Berlin heimgekommen. Da ich während des Kongresses nie wirklich Zeit hatte, was im Blog zu schreiben, hole ich das jetzt nach.</p> <h2><a href="http://events.ccc.de/congress/2006/Fahrplan/events/1256.en.html">Eröffnungsrede</a></h2> <p>Am Anfang gab’s natürlich wie schon letztes Jahr die Eröffnungsrede. Diesmal war die Ansprache von John Perry Barlow, einem Mitgründer der <a href="http://www.eff.org/"><span class="caps">EFF</span></a>. Er fing an mit den Worten “I grew up in a small town in Arizona” oder so, typisch irgendwie :). Den Rest kann man in <a href="http://www.heise.de/newsticker/meldung/82991">einem Heise-Artikel</a> nachlesen. Fand seine Rede nicht besonders überzeugend und irgendwie auch nicht so relevant. Die letztes Jahr war sicher besser.</p> <h2><a href="http://events.ccc.de/congress/2006/Fahrplan/events/1685.en.html">Go – Das Spiel für die Menschen</a></h2> <p>Ein interessanter Vortrag über <a href="http://de.wikipedia.org/wiki/Go_(Brettspiel)">Go</a> von einem Spieler, der schon einmal Europa-Meister wurde – er weiss also wovon er spricht :). Es ging hauptsächlich darum, warum die besten Go-Programme nur so gut wie ein fortgeschrittener Anfänger spielen und warum Brute-Force nicht funktioniert. War spannend, und vielleicht wird irgendwann die Forschung der KI es ermöglichen, ein gutes Go-Programm zu schreiben.</p> <h2><a href="http://events.ccc.de/congress/2006/Fahrplan/events/1419.en.html">Java wird Groovy</a></h2> <p>Java wird Groovy war gut vorgetragen. Allerdings hat man vom Inhalt her als Ruby-Programmierer nicht wirklich viel neues gesehen – will heissen, dass ich alle Konzepte von Ruby her schon kannte. Da Groovy aber auf der <span class="caps">JVM</span> läuft und sie das Ziel haben, dass Java-Code auch gültiger Groovy-Code ist, kann ich mir vorstellen, dass Groovy für an Java gebundene Programmierer interessant ist. Allerdings gibt’s da auch noch andere Möglichkeiten wie zum Beispiel <a href="http://jruby.codehaus.org/">JRuby</a>.</p> <h2><a href="http://events.ccc.de/congress/2006/Fahrplan/events/1555.en.html">Konrad Zuse – Der rechnende Raum</a></h2> <p>In diesem audiovisuellen “Live-Feature” wurde die Geschichte <a href="http://de.wikipedia.org/wiki/Konrad_Zuse">Konrad Zuses</a> erzählt, dem Erfinder des Computers (und nebenbei einer der ersten höheren Programmiersprachen – Plankalkül). Das Feature wurde von einer Gruppe von Sprechern vorgetragen und konnte durch viele Zitate und Bilder eine gute Atmosphäre erzeugen und hat mir sehr gefallen.</p> <h2><a href="http://events.ccc.de/congress/2006/Fahrplan/events/1713.en.html">Black Ops 2006 Viz Edition</a></h2> <p>Dieser Vortrag von Dan Kaminsky war sehr spannend. Es ging darum, binäre Dateien grafisch darzustellen, um Muster und Zusammenhänge zu erkennen. Unbedingt Video anschauen wenn sie verfügbar sind.</p> <h2><a href="http://events.ccc.de/congress/2006/Fahrplan/events/1418.en.html">Trust Your Eyes</a></h2> <p>Darin ging es um Grundlagen der Visualisierung und wie man mit Visualisierungen “faken” kann. Es gab interessante Grafiken und Statistiken zu sehen und die Erkenntnis, dass Visualisierungen nicht mal falsch sein müssen, um damit zu lügen. Am Ende hat die Vortragende noch <a href="http://robin.st/blog/2006/11/7/ausprobiert-statistik-software-r"><span class="caps">GNU R</span></a> empfohlen :).</p> <h2><a href="http://events.ccc.de/congress/2006/Fahrplan/events/1567.en.html">Hacker Jeopardy</a></h2> <p>Das Hacker Jeopardy war besser als letztes Jahr, da es diesmal halb Deutsch, halb Englisch war, anstatt nur Englisch. Das mit dem Fragen stellen hat immer noch nicht ganz geklappt, es wurde fast ausschliesslich “Was ist …?” gebraucht. Waren lustige Kategorien dabei, wie zum Beispiel die Bedeutung einjapanisierter englischer Wörter wie “saabaa” (heisst Server) rauszufinden. Oder es war ein Zeichen aus dem <span class="caps">ASCII</span>-Zeichensatz gegeben und man musste den Namen des <span class="caps">TCP</span>-Port zur Nummer des Dezimalwerts herausfinden.</p> <h2>Abschliessend</h2> <p>Die obigen Vorträge sind nicht die einzigen, die ich gesehen habe, sondern einfach eine Auswahl. Hab auch ein paar vermutlich Gute verpasst und sobald die offiziellen Videomitschnitte draussen sind, werde ich die noch schauen.</p> <p>Der Kongress hat Spass gemacht, es waren auch dieses Jahr wieder viele interessante Themen dabei… So, wer bis hierher gelesen hat, dem wünsche ich noch ein schönes neues Jahr! ;)</p> Robin Stocker tag:robin.st,2006-11-13:8 2006-11-13T21:45:00Z 2006-11-13T21:46:20Z Java unter GPL freigegeben <p>Jeder, der <a href="http://planetkde.org/">Planet <span class="caps">KDE</span></a>, <a href="http://planet.gnome.org/">Planet <span class="caps">GNOME</span></a> oder irgendwelche Blogs liest, hat wahrscheinlich schon davon gehört. Trotzdem muss man ja fast darüber schreiben :).</p> <p>Sun hat heute die Veröffentlichung der Java-Plattform unter der <span class="caps">GPL</span>-Lizenz <a href="http://www.sun.com/2006-1113/feature/story.jsp">bekanntgegeben</a>. Tim Bray, ein relativ bekannter Sun-Mitarbeiter, hat auch ein paar interessante Dinge dazu zu <a href="http://www.tbray.org/ongoing/When/200x/2006/11/12/OSS-Java">sagen</a>. Dadurch wird das Installieren unter Linux einfacher und von der Implementierung der <span class="caps">JVM</span> kann hoffentlich viel gelernt werden.</p> <p>Man hat ja schon sowas in der Richtung gemunkelt, aber dass der Code gleich unter der <span class="caps">GPL</span> freigegeben wird, hat mich dann doch überrascht – ist ja geradezu vorbildlich :). Java und Sun wurden mir gerade viel sympathischer…</p> Robin Stocker tag:robin.st,2006-11-07:6 2006-11-07T22:43:00Z 2006-11-11T18:03:11Z Ausprobiert: Statistik-Software R <p>Da ich in diesem Semester das Modul Wahrscheinlichkeitsrechnung und Statistik (WrStat) besuche und wir in der Übung Histogramme und Häufigkeitsverteilungen erstellen mussten, dachte ich mir, probierste mal R aus, kann ja nicht so schlecht sein bei diesem Buchstaben ;).</p> <p><a href="http://www.r-project.org/">R</a> (<a href="http://en.wikipedia.org/wiki/R_%28programming_language%29">Wikipedia-Artikel</a>) ist ein Projekt, das eine Umgebung und Programmiersprache für statistische Zwecke bereitstellt. Andere Kandidaten für die Aufgabe wären Excel oder das in Analysis bereits verwendete MuPAD. Von R habe ich jedoch schon gutes gehört, es soll unter Statistikern ziemlich beliebt sein und zudem ist es freie Software.</p> <p>Ich lud mir also das Paket für <span class="caps">OS X</span> herunter, installierte und startete es. Kurz <a href="http://www.math.ilstu.edu/dhkim/Rstuff/Rtutor.html">eine Anleitung</a> suchen und los geht’s. Am Anfang gab’s natürlich eine kleine Einführung in die Datenstrukturen und so weiter, aber ziemlich bald kamen Histogramme. Ich versuchte mich gleich an der WrStat-Übung:</p> <pre> &gt; wetter &lt;- read.table("hsr/wrstat/wetter.csv", sep=";", + col.names=c("Jahr", "Juni", "Juli", "August")) </pre> <p>Es wird eine <span class="caps">CSV</span>-Datei mit Temperaturdaten eingelesen. Da die Spalten in der Datei unbenannt sind, müssen wir noch die Namen angeben. Die Funktion <em>c</em> steht für <em>combine</em> und generiert aus den Argumenten eine Liste. Das ganze wird in einem Editor eingegeben, der Vervollständigung beherrscht und zu Funktionen gleich anzeigt, was für Argumente übergeben werden können – praktisch. Jetzt das Histogramm:</p> <pre> &gt; hist(wetter$Juni) </pre> <p><img src="/blog/assets/2006/11/11/histogramm.png" alt="" /></p> <p>Mit <em>wetter$Juni</em> wird die Spalte Juni aus der Tabelle ausgewählt. Auch für Durchschnitt und Median muss man nicht lange überlegen:</p> <pre> &gt; mean(wetter$Juni) [1] 15.64225 &gt; median(wetter$Juni) [1] 15.6 </pre> <p>Und noch die Verteilungsfunktion generieren und plotten:</p> <pre> &gt; plot(ecdf(wetter$Juni)) </pre> <p><img src="/blog/assets/2006/11/7/verteilungsfunktion.png" alt="" /></p> <p><strong>Fazit:</strong> Bis jetzt gefällt mir R ganz gut und ich werde es weiter benutzen. Die Grafiken sind zwar einfach gehalten, aber ich denke die kann man schon noch ein wenig verschönern, habe nur noch nicht die richtige Option dafür gefunden ;).</p>