Hochschule-Cluster

university

Im Rahmen eines Forschungsprojekts an der Hochschule Zittau/Görlitz beschäftigen wir uns mit der Einrichtung, Installation und Konfiguration eines Cluster-Computers zu Lehr- und Forschungszwecken. Als Hardware-Grundlage dienen uns dabei 10 Minicomputer mit Intel-Atom-Prozessor, je 2GB Arbeitsspeicher und jeweils 300 GB Festplatte. Die Technik hat uns die Hochschule finanziert.

Die 10 Computer sind aktuell über reguläre Netzwerk-Kabel in einem geswitchten Netzwerk miteinander verbunden. Als Software versuchen wir vorwiegend Freie Software einzusetzen. Als Betriebssystem kommt Debian-Linux zum Einsatz.

Zur Entwicklung von verteilter Software ist aktuell auf allen Maschinen eine Java-VM installiert. In einem regulären Studienprojekt befassen wir uns aktuell mit der Anpassung einer Data-Mining-Software um diese parallelisiert auf dem Cluster auszuführen.

more...

DemoRecorder

javascriptxul

Dieses Programm richtet sich an Hobbyfilmer, die mit CounterStrike:Source GameVideos herstellen möchten. Dabei nimmt das Programm den sonst mühseligen Prozess des Aufnehmens aus dem Spiel ab. Allerdings handelt es sich aktuell noch um eine frühe Alpha-Version. Es sind noch nicht alle Funktionen implementiert und getestet ist die Software auch noch nicht ausführlich. Die Benutzung geschieht deshalb auf eigene Gefahr.

Lestards DemoRecorder wird als freies OpenSource-Projekt unter der MPL/GPL veröffentlicht.

Beschreibung

Das Aufnehmen von VideoSzenen aus dem Spiel ist relativ Zeitaufwendig und Umständlich. Die in der Source-Engine eingebaute Aufnahmefunktion kann mit einer beliebig einstellbaren Framerate aufnehmen und schreibt dabei jede Frame einzeln auf die Festplatte. Dieses Vorgehen hat einige starke Vorteile: Zum einen werden Ruckler oder FPS-Schwankungen innerhalb des Videos vermieden, zum anderen ist es damit Möglich, mehr oder weniger unabhängig von der Leistungsfähig des Systems mit sehr guten Grafikeinstellungen aufzunehmen. Da die Framerate beliebig einstellbar ist, sind auch extreme Zeitlupen kein Problem.

Der Nachteil dieser Methode ist jedoch, dass der Aufnahmeprozess sehr lange braucht. So sind bei entsprechenden Frameraten Aufnahmezeiten von einer halben Stunde pro Szene keine Seltenheit. Wärend diesem Aufnehmen kann man den Rechner nicht benutzen sondern ist zum Zuschauen verdammt. Nach dem Aufnehmen hat man tausende Bilddateien auf der Festplatte, welche man nun noch mit VirtualDub zu einer AVI-Datei umwandeln muss. Das alles ist etwas mühselig.

Mit meinem DemoRecorder ist es möglich, diesen Aufnahmeprozess zu Automatisieren. Man wählt seine Demo-Dateien aus, gibt an, in welchem Bereich jeweils aufgenommen werden soll, macht seine Einstellungen und drückt auf "Record". Den Rest erledigt mein Programm. Es nimmt eine Szene nach der Anderen auf und nach einiger Zeit hat man alle Videodateien auf der Platte. Zwar dauert die Aufnahme mit meinem DemoRecorder genauso lange und auch hier ist der Rechner wärend dem Aufnehmen nicht benutzbar, der Vorteil ist aber, dass man nicht dabei sitzen braucht und nach jeder Szene von Hand die Aufnahme der nächsten Szenen zu starten. Die Aufnahme, auch mit mehreren Dateien geht automatisch. Man könnte hier z.B. die Aufnahme starten und derweil Einkaufen gehen oder sonst was machen und nach einiger Zeit kommt man zum PC zurück und hat alle Szenen im Kasten, und zwar direkt im AVI-Format. Das Umwandeln der Screenshots übernimmt das Programm nämlich auch selbstständig.

Ein Problem, was allerdings auch hier bestehen bleibt, ist die Dateigröße der Videodateien. Diese werden unkomprimiert auf der Festplatte abgelegt. Eine recht hohe Auflösung und hohe Framerate tuen ihr übriges. So sind Dateigrößen von mehreren Gigabyte für Videoclips von wenigen Sekunden, keine Seltenheit. Die Oben genannten Vorteile werden durch diesen Nachteil etwas teuer erkauft. Wer jedoch Wert auf Qualitativ hochwertige Aufnahmen macht, wird dieses Problem jedoch gerne in Kauf nehmen. Komprimierung ist in der Regel auch mit starken Qualitätsverlusten behaftet, welche eben hier nicht zu befürchten sind. Unschlagbar wird die Bildqualität aber vor allem dadurch, dass Frame per Frame auf die Festplatte geschrieben wird und das Spiel beim Aufnehmen die Geschwindigkeit eben an diesen Aufnahmeprozess anpasst. Das beim normalen Spielen übliche Abwägen zwischen hohen Grafikoptionen und flüssigem FPS fällt hier weg. Die Optionen können bis zum Anschlag gestellt werden da die Framerate sowieso konstant gehalten wird. Technisches

Das Programm basiert auf dem Mozilla Application Framework. Die Benutzeroberfläche ist mit XUL (XML Userinterface Language) entwickelt. Das Programm läuft in der XULRunner-Laufzeitumgebung. Als Programmiersprache kommt vor allem JavaScript zum Einsatz.

Zur Umwandlung der TGA-Bilddateien in eine AVI-Datei wird VirtualDub benutzt, welches im Paket auch mitgeliefert wird. Ausserdem benutze ich zur Dateiarbeit eine Bibliothek aus dem XUL-Explorer-Projekt. Dieses ist, genau wie VirtualDub und auch meine eigenes Projekt, Freie OpenSource-Software weshalb das Mitliefern bzw. Benutzen kein Problem darstellt.

Als Lizenz kommt wahlweise die GPL und/oder die MPL zum Einsatz. Als Programmier-Neuling erhoffe ich mir daraus, Feedback von Erfahrenen Programmierern zu bekommen. Aktueller Stand

Aktuell befindet sich die Software in einem frühen Alpha-Stadium. Die Aufnahme und das Umwandeln der Bilder zu einer AVI-Datei funktioniert bereits. Aktuell jedoch nur mit einer einzelnen Datei und noch nicht im Stapelbetrieb. Durch entsprechende Kapselung der Funktionen sollte dies aber unkompliziert nachrüstbar sei.

Das Programm ist noch nicht ausführlich getestet. Es kann deshalb noch zu einigen Fehlern kommen. Da ich auf Prozesse (counterstrike:Source und VirtualDub) zugreife, kann ich Probleme die damit zusammenhängen nicht ausschließen. In der Entwicklung ist es z.B: hin und wieder vorgekommen, dass das Spiel beim Aufnehmen eingefroren ist und ich den Rechner neustarten musste.

Der anfangs geplante 3D-Kamerapfad-Export werde ich nun nicht mehr realisieren, da mstHavoc und das Team von AdvancedFX diese Funktion mittlerweile in wesentlich besserer Form im Rahmen ihres HLAE-Projekts implementiert haben.

Für FirefoxNutzer: Da die Oberfläche in XUL geschrieben ist, lässt sich diese auch im Firefox-Browser darstellen. Hier der Link Andere Browser werden mit dem Link jedoch nicht klar kommen.

Für alle andere habe ich einen Screenshot gemacht: Die aktuelle Benutzeroberfläche

Die aktuelle Benutzeroberfläche Was für die Zukunft geplant ist

Für die Zukunft sind noch einige Zusatzfunktionen geplant. Vor allem möchte ich Einstellungsprofile ermöglichen. Der Nutzer soll seine Einstellungen und auch Customdateien in einem Aufnahme-Profil speichern können. Das Kopieren und anschließende Aufräumen der Customdateien übernimmt der DemoRecorder.

In einer späteren Version könnte die Möglichkeit implementiert werden, mit der ganze Videos automatisch erstellt werden könnten. Mit Hilfe von AviSynth wäre es möglich, den kompletten Schnitt programmgesteuert auszuführen. Der Nutzer könnte dazu ein Musikstück auswählen und mit einer Tagging-Funktion, gewisse Spannungsgeladene Momente der Musik taggen. An diesen Highlights könnte sich ein Algorithmus beim Schneiden orientieren. Aus einem Pool von Kamerafahrten könnten Aufnahmen für Intro und Outro erstellt werden.

Dieses Automatische Schnittsystem würde aber vor allem eine Machbarkeitsstudie darstellen. Es wäre schließlich ziemlich langweilig, wenn Alle Videos nur noch Algorithmisch erzeugt werden. Aus Programmierersicht stellt dies jedoch eine interessante Aufgabe dar. Dies liegt aber noch in weiter Zukunft und ist bisher nicht weiter als eine Idee.

more...

FreeSoftwareAlternatives - Studentisches Projekt

university

Im Fach "Knowledge Media Design" entwickeln wir prototypisch ein Webangebot, welches über Freie Software als Alternative für übliche (properitäre) Windows-Software informiert. Das Angebot richtet sich vor allem an Windows-Nutzer, die sich auf der einen Seite für Freie Software interessieren und diese auch gerne nutzen möchten, den Schritt zu einem komplett freien Betriebssystem wie Linux (noch) nicht waagen möchten.

Der Nutzer soll auf unserer Webseite informationen und vor allem Alternativ-Vorschläge für Software erhalten. Der Umstieg soll dem Nutzer durch erweiterte Informationen sowie Tutorials erleichert werden. Am Rande soll auch über die Beweggründe und Vorteile von Freier Software eingegangen werden. Das Webangebot soll jedoch nicht Belehrend oder gar Aufdringlich wirken sondern schlicht und einfach Alternativen aufzeigen.

Bei diesem Projekt fungiere ich als Teamleiter. Weitere Aufgaben sind die Erstellung und Betreuung eines an das Projekt angelegten Youtube-Channels, welcher die Videotutorials beinhalten soll. Die Integration der Youtube-Videos in unser Webangebot ist ebenfalls meine Aufgabe. Des weiteren werde ich bei der Entwicklung der Programmcodes in PHP behilflich sein.

Aktuelle Ergebnisse kann ich noch nicht präsentieren, da das Projekt noch in seiner Anfangsphase steckt.

more...

SimpleVBlog - Studentisches Projekt

javascriptxul

Im Rahmen eines Projekts an der Hochschule erstellen wir eine Videoblog-Engine mit Hilfe von JavaEE-Technologien. Konzeptionell möchten wir eine möglichst schlanke und einfach benutzbare Software schaffen, welche ohne komplizierte Administrations-Backend auskommt. Als Technologien kommen JSF 1.2, Facelets, IceFaces und Hibernate zum Einsatz.

An dem Projekt sind Beteiligt: Tobias Gaertner, Markus Fleck, Torsten Schröter, Marcus Waschke und meine Wenigkeit.

Zu meinen Aufgaben im Team gehören die Grafische Gestaltung der Oberfläche, die Entwicklung der Oberfläche mit Facelets sowie IceFaces und die Programmierung einiger Seitenelemente für die Anzeige und Editierung der Blogeinträge.

screenshot

more...