10/15/2009

Encode a directory of WAVs to MP3

In order to encode a directory of WAV files to MP3 pop open a shell and type the following:

for i in *.wav; do lame "$i" "`basename "$i" .wav`".mp3; done


To set the bitarte (128 is absolutely ok, though audiophiles may want to use 192 kbit/s) add the following:

for i in *.wav; do lame -b 128 "$i" "`basename "$i" .wav`".mp3; done


Another useful option is

-m s/j/f/d/m

Choose between (s)tereo, (j)oint stereo, (f)orce jpint stereo, (d)ual channel and (m)ono. Useful if you have e.g. voice recordings and want to convert them to stereo.

Have a look at the man page for more.

5/03/2009

Relevance of JavaSound and JMF and I'm on Google!

Working on the second assignment of the lecture ITM in which we process audio and video data with Java Sound and Java Media Framework (JMF), I was curious (as always) how relevant the technology is we're taught.

Taking a look at the official documentation's date wasn't very promising, stating that it said Last Updated October 24, 2001. Neither was the corresponding paragraph in Java ist auch eine Insel where the author linked to this 6 year old post.
So it seems Java Sound is tremendously outdated. And we're learning how to use it? Great ...

Regarding JMF, isn't any better either: although it's pretty much up-to-date for itself (being maintained, that is to say) it's codec support is more than an insult to developers trying to accomplish anything useful, not to mention being cross-platform (see supported formats list).
I admit, building a cross-platform multimedia framework is a challenging and one might even say indomitable task, but why not use existing frameworks like GStreamer or DirectShow etc.?

From the developer's perspective there are some alternatives one should consider, including:


I'm on Google


Having started an article about Java Sound in my high school years I was surprised to find this (not at all relevant information containing) article being 11th on the Google search results.
Yay!

1/25/2009

Kleines Helferlein

Hier ein kleines helferlein, dass beim Erstellen von Symlinks hilft.

Benützung:
Zuerst das Skript in das src-Verzeichnis kopieren.

Dann ausführbar machen mit: chmod o+x mks.sh

Und dann so benutzen: bash mks.sh {Endung für die Symlinks erstellt werden soll}

Für php also: bash mks.sh php

Für XML: bash mks.sh xml

Viel Spass und gute Nacht

BTW: Warum nur kennt PHP 5 kein Class-Scope, sodass man immer $this-> schreiben muss? *kopfschüttel*

1/22/2009

Nach der Prüfung ist vor der Prüfung


Der Denker - Ny Carlsberg Glyptotek (København)

Heute war bekannterweise Prüfung. Mal schauen was es wird. Ursprünglich wollte ich mich ja wieder abmelden, da ich keine Zeit für eine vernünftige Vorbereitung hatte. Dennoch entschied ich mich kurzfristig dagegen, weil besser werden kann (und werde) ich im März sicher ;-).

Zu erledigen:

  • Skript einmal komplett durcharbeiten (+ Zusatzquellen aus den Folien sichten)

  • Die häufigsten Fragen aus den Test identifizieren und diese üben (momentan sind das IMHO XPath, XSLT, Schema, WSDL, DTD, Arch.: Patterns, Prinzipien (Kohäsion/Kupplung), Strukturen)

  • Alte Tests als Probe für's geübte heranziehen.


Mal schaun', zu welchem grad' ich meine Vorsätze durchziehen werde. Interessant sind die behandelten gebiete auf jeden Fall.

P.S.: Please vote for WordPerfect reveal codes function in OO.o!


1/15/2009

WSDL: Fixed

Wie Herr Prof. Derntl im Kommentar angemerkt hat, zeigt der Endpoint ins Nirvana. Das ist nun behoben und alles sollte funktionieren.

1/14/2009

Ubiquity - Allgegenwärtig ... die Macht des Internets an den Fingernspitzen

Mozilla Ubiquity ist ein Experiment aus den Mozilla Labs.
In einem Satz zusammengefasst verbindet es Sprache (also Sprachkommandos) und Webservices.

Obwohl die SW noch im Alpha-Stadium ist, ist sie durchaus bereits benutzbar. So nutze ich das LEO-Kommando sehr oft. Auch map ist recht nützlich, versagt aber leider noch ziemlich oft bei einigen Adressen. tiny, für tinyurls ist auch sehr angenehm (v.a. in StudiVZ). Abgerundet wird das ganze vom wikipedia Kommando, welches sogar Vorschau beherrscht.

Viel Spass beim herumprobieren!

WSDL: Server und Client

Das mühsamste bei der letzten Aufgabe, war eigentlich das Durcharbeiten der Folien und des Beispiels. Wer immer alles verstehen will, so wie ich (dadurch es sich selbst immer schwerer mach, als eigentlich nötig :P), wird bei dem vielen XML-Markup ganz schwindlig.
Nach (scheinbar) endlosen Stunden am Ende angekommen stellt sich heraus, dass es eigentlich fast nur eine Copy&Paste-Übung ist, bei der man dann nur die relevanten Stellen ändern muss. *hrm* :-/
Geholfen haben vor allem die vom VO-Leiter zur Verfügung gestellten Beispiele und die VO-Folien (XiaN hat dazu leider kein Kapitel).

Nachdem ich den Server implementiert und debuggt hatte (siehe hier), machte ich mich an die Programmierung des Clients.
Dazu gab's auch eine nette Doku, die aber für die Katz' war, da mein Projekt anscheinend niemand wollte.

Summa summarum bin ich schon ein bisschen stolz diese Aufgabe so gelöst zu haben, wie ich sie gelöst habe. Ich habe einen guten Server geschrieben und in 30 Minuten meinen Client implementiert. Whoopy!

Ab in die DBS-Übung ...

1/07/2009

Erfahrungen mit XSLT

XSLT 1.0 ist meiner Meinung nach eine recht nette Programmiersprache. Einige Dinge sind zwar etwas ungewohnt gelöst (kein else), daran gewöhnt man sich aber schnell. Sehr nett sind auch die verschiedenen Funktionen und die Erweiterbarkeit (siehe z.B. EXSLT).

Ein Graus ist es aber XSLT mit einem normalem Text-Editor zu schreiben. Irgendwann, wollen die Finger kein <xsl:value-of> mehr schreiben. Erst jetzt habe ich ein XSLT-Plugin für eclipse entdeckt. Aber wer will schon eclipse anwerfen um das bisschen (ok, gut ich bin auch 3h dran gesessen) XML zu schreiben?

Genial finde ich die Idee XSLT als Template-Engine für Blogs, Websites etc. zu verwenden. Mmn bringt das aber erst in Verbindung mit einer ausgewachsenen Programmiersprache (wie Python oder PHP) etwas, da man dann meistens doch mehr Kontrolle braucht, als die XML Stylesheet Transformations einem bietet. In Kombination mit JavaScript als eine Clientlösung ist sie auch sehr interessant.

So, das war's auch wieder mit meinen gedanklichen Ergüssen.

Zum Abschluss noch ein kleiner Rückschlag des Westens.^^

Lesestoff für zwischendurch: What makes a good programmer?



How to be a Programmer: A Short, Comprehensive, and Personal Summary von Robert L. Read

Advice to Incoming Freshman in Computer Science von Brian Brooks
»The only thing I have left to say about this topic is that it makes me fucking sick.«

Good Programmers are Not Lazy von Cort Dougan