Das Invertika Update im Oktober

Die Uhren wurden auf die Winterzeit umgestellt und somit befinden wir uns im letzten Sonntag des Oktobers. Das bedeutet natürlich auch, das es wieder Zeit ist für ein Invertika Update. Bei Invertika handelt es sich um ein freies 2D-MMORPG welches im Moment für Linux und Windows zur Verfügung steht.

Die Landschaft, unendliche Weiten…

Das Invertika Update in diesem Monat war hauptsächlich ein Bugfixupdate, hier wurde an vielen Stellen vor allem bei den Skripten eine Menge Fehler behoben. Beim Mapping wurde angefangen eine neue Farm auf die Beine zu stellen. Auch einige Unklarheiten beim Blumenquest wurden behoben. Daneben gab es auch grafische Anpassungen bei einigen der Kacheln in den Tilesets.

Hans und Siegfried von der Landschaftsgärtnerei

Auch auf der Toolseite gab es einige Verbesserungen, so das z.B. das ivktool an einigen Stellen nun wesentlich robuster arbeitet. Wer neugierig geworden ist, der kann sich Invertika unter http://invertika.org anschauen oder sich in der Wiki unter http://wiki.invertika.org informieren.

MKV Datei um Audiostreams erweitern

Man nehme eine MKV Datei und möchte noch einen oder mehrere Audiostreams mit in diese Datei packen. Hier bietet sich das Tool „mkvmerge“ bzw. die passende Suite „MKVToolNix“, welche unter http://www.bunkus.org/videotools/mkvtoolnix/downloads.html zu finden ist, an.

MKVToolNix unter Windows

Das Tool selbst steht dabei unter der GPLv2. Auf Github gibt es unter https://github.com/mbunkus/mkvtoolnix/ auch den passenden Quelltext dazu. Die Kompilate liegen unter anderem für Linux und Windows vor. Nach dem Start gibt man bei den Quellen einfach alle Quelldateien an, also die MKV Datei sowie die passenden Audiospuren und klickt anschließend auf „Muxen starten“. Nach ein paar Minuten hat man dann die fertige Datei und kann die Audiospuren löschen.

Podcast Feed selbstgemacht

Manchmal möchte man zu ein paar Audiodateien einen RSS Feed haben, z.B. für einen privaten Podcast. Natürlich kann man sich einen solchen Feed von Hand zusammenbauen, einfacher ist es mit diesem kleinen PHP Skript:

<?php
  //Podcast Feed Script
  //Copyright (c) 2012 by seeseekey <>
  //
  //This program is free software: you can redistribute it and/or modify
  //it under the terms of the GNU General Public License as published by
  //the Free Software Foundation, either version 3 of the License, or
  //(at your option) any later version.
  //
  //This program is distributed in the hope that it will be useful,
  //but WITHOUT ANY WARRANTY; without even the implied warranty of
  //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  //GNU General Public License for more details.
  //
  //You should have received a copy of the GNU General Public License
  //along with this program.  If not, see <http://www.gnu.org/licenses/>.

  //Basis URL ermitteln
  $baseURL="http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
  $baseURL=dirname($baseURL) . "/";

  //XML Header setzen
  header('Content-type: text/xml');

  //RSS Datei zusammenbauen
  $output = '<rss version="2.0">'."\n";
  $output .= '  <channel>'."\n";
  $output .= '    <title>seeseekey.net (privater Podcast)</title>'."\n";
  $output .= '    <description>Ein privater Podcast von seeseekey.net</description>'."\n";
  $output .= '    <link>https://seeseekey.net</link>'."\n";
  $output .= '    <copyright>(c) 2012 by seeseekey</copyright>'."\n";

  //Audio Dateien in RSS Feed einpflegen
  $files = scandir('.');
  foreach ($files as $file)
  {
    $pathparts = pathinfo($file);
    if($pathparts['extension']!="mp3") continue;

    $output .= '    <item>'."\n";
    $output .= '      <title>'.$file.'</title>'."\n";
    $output .= '      <enclosure url="'.$baseURL.$file.'" length="'.filesize($file).'" type="audio/mpeg"/>'."\n";
    $output .= '    </item> '."\n";
  };

  //RSS Feed wieder schließen
  $output .= '  </channel>'."\n";
  $output .= '</rss>'."\n";

  //RSS Feed ausgeben
  echo($output);
?>

Dieses Skript ließt alle MP3 Dateien aus einem Ordner aus und baut daraus einen RSS Feed. Dieser kann dann in der Podcasting App der Wahl eingefügt werden, indem man die URL angibt so z.B. „http://example.org/podcast.php“. Das Skript selbst steht dabei unter der GPLv3 und lässt sich auch unter https://github.com/seeseekey/archive/blob/master/Web/podcast.php herunterladen.

Dokumentierte Dateiformate

Bei meiner Arbeit kommt es öfter mal vor das ich Dateiformat XY implementiere. Dabei gibt es dann unterschiedliche Fälle. Der erste Fall ist das Dateiformat gut dokumentiert ist, und es eventuell sogar schon eine freie Bibliothek für das Format in der passenden Programmiersprache gibt. Dieser Fall ist subjektiv leider der seltenste Fall.

Viel häufiger kommt es vor das das Dateiformat gar nicht, bzw. nur lückenhaft dokumentiert ist. Das liegt manchmal daran das der Hersteller es nicht gerne sieht wenn das Format dokumentiert ist, manchmal auch daran das das Format mit der Zeit organisch gewachsen ist. So sitzt man nun als Entwicker da und fängt an die Formate auseinander zunehmen. So schreibt z.B. Photoshop invalide BMP Header und es kostet viel Mühe so etwas herauszufinden. Nach Stunden, manchmal auch erst Tagen hat man dann endlich das entsprechende Format unterstützt.

Und manchmal frage ich mich dabei, ob es anderen Entwicklern genauso geht und überlege wie viel Arbeit man sich ersparen könnte wenn man eine zentrale Anlaufstelle schafft, in welcher Dateiformate (vorzugsweise in deutscher Sprache) dokumentiert werden. Ich stelle mir da ein Wiki unter einer entsprechenden Lizenz vor (z.B. eine CC-BY) und in diesem werden dann die Dateiformate dokumentiert so das zukünftige Entwickler nicht mehr ganz so viel Arbeit haben. Was haltet ihr von einer solchen Idee?