05
Subversive Tätigkeiten

St1 hat mich dazu inspiriert, mich nochmal mit Subversion zu beschäftigen. Diesmal war das sogar erfolgreich, also kommen zukünftige Releases aus meinem brandneuen Repository. Mensch kann jetzt sogar auch auf den aktuellsten Entwicklungsstand zugreifen. Einfach subversion installieren und

svn checkout http://wasteland.homelinux.net/birne-svn/trunk

machen, oder sich die einzelnen Files mit dem Browser oder wget ziehen. Dafür mußte ich nebenbei auf Apache2 updaten, aber das war erstaunlich schmerzfrei. Mit intltool habe ich auch ein wenig gespielt. Wenn ich es richtig verstanden habe, ist das das Mittel der Wahl, wenn man Programme in verschiedenen Sprachen anbieten will.

Naja, nach dieser ganzen Spielerei muß ich auch mal wieder programmieren. Momentan laufe ich merkwürdigen Fehlern hinterher und komm nicht so richtig voran. Aber die Infrastruktur ist ja auch wichtig!

Posted
Es geht voran

Und noch eine neue Version von Birne. Neues Feature: man kann CD-RWs löschen. Außerdem wird das mitgelieferte gtkmvc automatisch benutzt, wenn Python es nicht im Modulpfad findet.

Und, *tada*:

My SourceForge.net Projects

New Projects Pending Review
    * Birne (UNIX name: birne, registered 2005-05-07 21:29)
      Number of business days registration has been pending: 0
      It may take up to 2 business days for new project registrations to be processed.

Das heißt, daß Announcements wie dieses dann auch nicht mehr hier erscheinen, sondern an geeigneterer Stelle. Eine eigene Webseite wirds auch geben, voraussichtlich unter http://birne.sf.net. Meldet sich jemand freiwillig, die zu bauen? ;-)

Posted
Anderer Leute Code

Nächstes Mal, wenn ich plane, anderer Leute Code zu übernehmen, gucke ich ihn mir vorher genauer an. Ich wollte ja ursprünglich viel von burn klauen. Jetzt denke ich: Ideen ja, Code nein.

Ich sehe mich eigentlich nicht in der Position, großartig anderer Leute Code abzuurteilen, aber was ich hier vor mir sehe ist schon grausig. Was mit recht schnell auffiel: burn ist ca. 1200 Zeilen lang. die main()-Methode nimmt davon fast die Hälfte ein. Darunter so Perlen wie das for-case Paradigma:

for key, val in vc.items():
  if key == 'TITLE':
    self.title = val
  elif key == 'ARTIST':
    self.artist = val
  elif key == 'ALBUM':
    self.album = val
  elif key == 'DATE':
    self.year = val
  elif key == 'GENRE':
    self.genre = val
  elif key == 'VENDOR':
    self.vendor = val
  elif key == 'TRACKNUMBER':
    self.track = val
  elif key == 'COMMENT':
    self.comment = val
  elif key == 'TRANSCODED':
    self.transcoded = val

Man hätte natürlich einfach das Dictionary kopieren können, aber was solls.

main() ist übrigens ein riesiges if-Konstrukt:

  if mode == 1: #DATA-CD
  if mode == 2: #ISO CD
  ...

Mit einer Schachtelungstiefe von mindestens acht. Das Dekodieren von Ogg- und MP3-Dateien findet natürlich auch in main() statt. Genau da hab ich zuerst gesucht!

Objektorientierung ist ja auch ein recht schwieriges Thema. Es gibt eine Klasse FileInfo und eine Klasse OggInfo, die erstaunlicherweise nicht von FileInfo ableitet. Überhaupt ist mir nicht klar, nach welchen Gesichtspunkten Klassen gebaut wurden. So Konzepte wie Kapselung oder Polymorphie scheinen dem Autor unbekannt zu sein.

Oh, und der Klassiker Variablenbenennung: x, y und list(!) finde ich echt kacke. Und zwanzig Zeilen, die mit print beginnen, sind einfach nur überflüssig. Dafür gibts Multilinestrings.

Ach ja: wer sowas in meinem Code findet, darf mir das natürlich ähnlich deutlich sagen. :-)

Posted
Yay!

Birne hat jetzt seine eigene Projektseite bei Sourceforge! Eine Mailingliste wird gerade eingerichtet und das erste Release (0.1.4) ist hochgeladen und bald auf einem Mirror in Eurer Nähe. :-) Einen Screenshot habe ich auch gerade noch auf den Weg geschickt.

Die Webseite unter http://birne.sf.net ist theoretisch auch schon erreichbar, aber noch leer. Das CVS werde ich wohl nicht benutzen, ich denke ich bleibe bei meinem SVN (da gibt's übrigens schon die erste Version mit Support für Audio CDs).

Jetzt fehlen eigentlich nur noch User. ;-)

Posted
Man ist halt drin

und da macht man's halt. Was willste denn sonst machen.

Artikel in der Jungle World über direkte und strukturelle Gewalt beim Militär. Ich muß hier bei meiner Leserschaft ja aufpassen, aber für einen soziologischen Analphabeten wie mich sehr interessant. Ich stelle häufiger fest, daß die Kriegsdienstverweigerung eine meiner wichtigsten Entscheidungen zugunsten meiner geistigen Gesundheit war.

Posted
Noch 10 Kilo...

...und Du machst Diät!

Mußte ich mir heute anhören. Von einem Menschen, der vorgibt mich zu lieben! Mein Bauch und ich sind zutiefst erschüttert.

Don't drink and politicize

Merke: Nach dem dritten Bier keine politischen Grundsatzdiskussionen anfangen. Schon gar nicht mit Quasi-Verwandten. Schnaps zählt in diesem Zusammenhang als Bier.

foo
Posted
Page created
Comments? Use or send an e-mail.