Gems für Ruby 1.9.*

27 02 2009

Da viele gems (aber natürlich auch andere Programme) noch nicht so gut mit Ruby 1.9.* zusammenarbeiten (ich habe mich darüber auch schon in http://www.rubyforen.de ausgelassen, weil es mich für meine eigenen gems auch betrifft, aber um dies zu testen und zu bereinigen, sind meine gems von anderen gems abhängig, die noch nicht mit 1.9 funktionieren, die wiederum von anderen gems abhängig sind, …. usw.).

Seit kurzem gibt es aber ein neue Seite, die es sich zur Aufgabe gemacht hat, zusammenzutragen, welche gems mit Ruby 1.9 funktionieren und welche nicht.

Man kann dort ein Gem auswählen, Version, Betriebssystem, Kommentar und seinen eigenen Namen angeben, sowie, ob das betreffende gem bei einem funktioniert hat oder nicht.

Eine sehr gute Sache, wie ich finde.

Andere Besucher können dann wiederum sehen, ob es bei einem bestimmten gem Probleme mit Ruby 1.9 gibt oder nicht, ohne es erst selbst ausprobieren zu müssen.

Man sollte natürlich auf die Versionsnummer der getesteten gems achten, da die neueste Version eventuell schon korrigiert wurde und nun keine Probleme mit Ruby 1.9 mehr macht.

Desweiteren ist das natürlich auch eine gute Sache für die Autoren der gems, da sie sehen, ob ihre Programme auch in Ruby 1.9 fehlerfrei laufen – insbesondere auch in Bezug auf unterschiedliche Plattformen

Ich weiß, daß meine eigenen gems auch noch nicht ganz perfekt unter Ruby 1.9 laufen, aber es sollte eigentlich keine allzugroßen Fehlerkorrekturen geben. Leider kann ich da aber zur Zeit nicht so recht weiter machen, da mir auch für die Entwicklung und Veröffentlichung noch einige Tools fehlen, die derzeit halt auch noch nicht nach Ruby 1.9 rübergezogen wurden. Das ist leider etwas frustrierend.





Randomplay – ein Player für mp3, Videos, Podcasts

4 02 2009

Zwar schon vor längerer Zeit von mir entwickelt, weil ich mit keinem der vorhanden MP3-Player so richtig zufrieden war, habe ich dieses Projekt jetzt bei Google-Code hochgeladen (http://code.google.com/p/randomplay/).

Randomplay wird von der Kommandozeile aus aufgerufen. Es wurde unter Linux entwickelt, läßt ich mit ein paar Modifikationen im Code aber wahrscheinlich auch leicht für Windows oder andere Systemem anpassen (nicht getestet, aber wenn sich jemand daran versuchen möchte, das Code-Repository kann von jedem heruntergeladen werden).

Die Handhabung von Randomplay ist denkbar einfach: In das Directory wechseln, welches die Mediendaten enthält und dort einfach randomplay eintippen. Es werden dann alle Stücke in diesem Directory und eventuell vorhandenen Unterdirectories in zufälliger Reihenfolge abgespielt.

Während ein Stück gespielt wird, entspricht die Steuerung mittels Tasten dem Programm ‚mplayer‘:
Ein Druck auf die Taste q beendet das gerade laufende Stück und springt zum nächsten Stück. Mit den Cursor-Tasten links und rechts kann man im Stück vor- und zurückspulen.

Anreiz für mich, dieses Programm zu erstellen, war auch, daß man damit sehr schön zeigen kann, wie man die Möglichkeiten von Ada-Tasks (d. h. unabhängig laufenden Programmabschnitten) in einem Programm wie diesem verwenden kann. Es gibt im wesentlichen zwei Tasks. Eine ist dafür verantwortlich eine zufällig zusammengestellte Playlist intern zu erstellen, während die zweite Task für das Abspielen zuständig ist.

Das Programm spielt die Einträge nicht ganz rein zufällig, sondern versucht auch zu vermeiden, daß ein Stück zu oft hintereinander abgespielt wird. Nach einem bestimmten Stück müssen deshalb mindestens N andere Stücke gespielt werden. Falls insgesamt aber zu wenige Stücke vorhanden sind, läßt sich diese Regel nicht einhalten. Das Programm ist auch darauf vorbereitet und es wird der Bereich dynamisch verringert (wenn es insgesamt zu wenige Stücke zum Spielen gibt, dann läßt es sich eben nicht vermeiden, daß man ein Stück kurz darauf schon wieder abspielen muß).