audacious Plugin für XChat

Plugin für XChat um den aktuellen Titel in audacious anzuzeigen:

Download

Das Ausgabeformat entspricht dem Format der audacious Playlist.

Aufruf erfolg aus XChat raus mit

/audacious

PostgreSQL Timestamp zu Unix Timestamp

So kann man aus einem PostgreSQL Timestamp einen Unix Timestamp machen:

select  extract(epoch from "timestamp"(postgres_timestamp)) as unix_timestamp from table

Mit mplayer Bilder aus Videos extrahieren

Mit folgendem Befehl kann man mittels mplayer einzelne Bilder aus Videos extrahieren:

mplayer -frames 10 -ss 60 -vo png outdir=/home/foo/:quality=75 /path/to/video.avi 

-vo png definiert das Bildformat (möglich wäre hier z.B. auch “jpeg”)
-outdir=/home/foo/test/ definiert das Verzeichnis in dem das Bild gespeichert werden soll
-frames 10 definiert wieviele Bilder extrahiert werden sollen
-ss 200 definiert das Offset, also die Stelle im Video, an der die Bilder extrahiert werden sollen

Upload Progressbar unter Debian mit PHP5

Es gibt einige fertige JavaScripts mit denen man genaue Informationen über Dateiuploads bekommen kann (z.B. Progress Bars):
http://t.wits.sg/misc/jQueryProgressBar/demo.php
http://framework.zend.com/manual/en/zend.progressbar.html

Allerdings funktionieren diese Scripte nicht mit einer Standardinstallation von PHP5, da eine Extension fehlt.
Folgende Fehlermeldung taucht auf:

PHP Fatal error:  Call to undefined function uploadprogress_get_info()

Um diese Funktion benutzen zu können muss pear installiert werden.

apt-get install php-pear

Danach muss die Extension installiert werden:

pecl install uploadprogress

Un in die php.ini geschrieben werden:

extension=uploadprogress.so

Wenn man jetzt folgende Fehlermeldung erhält:

sh: phpize: command not found
ERROR: `phpize' failed

Muss man noch das Paket php5-dev installieren:

apt-get install php5-dev

Exaile Plugin für XChat

Plugin für XChat um den aktuellen Titel (mit Interpret und Album) aus Exaile anzuzeigen:

Download

Die Ausgabe sieht so aus:

* vesperlynd is listening to 'Bob Dylan - 4Th Time Around' from 'Blonde On Blonde'

Aufruf erfolg aus XChat raus mit

/exaile

International programmieren mit Zend_Translate

Mit dem im Zend Framework enthaltenen Zend Translate kann man komfortabel international programmieren.

Beispiel mit Zend_Translate_Adapter_Array:

In der de.php werden die deutschen Sprachvariablen gespeichert.

/**
 * de.php
 */
return array(
    'message1' => 'das ist die erste Nachricht'
);

In der en.php die englischen usw.

/**
 * en.php
 */
return array(
    'message1' => 'this is the first message'
);

Initialisierung und Ausgabe:

/**
 * index.php
 */
$translate= new Zend_Translate('array', './lang/en.php', 'en');
echo $translate->_("message1");

Benutzung mit smarty:

$var = $translate->_("message1");
$s->assign("var", $var);

mp4-Video 90° drehen

Mit MEncoder und folgendem Befehl kann man ein mp4-Video um 90 Grad drehen:

mencoder -vf rotate=1 -ovc lavc -oac pcm input.mp4 -o output.mp4

deb-Pakete selber bauen…

… oder: wie man Fluxbox dazu bringt, Fenster per Doppelklick zu maximieren.

Hier die Schritte für Debian-Nutzer, die mit Hilfe des Artikels Make dblclick titlebar maximize das Verhalten von Fluxbox ändern möchten.

Mit dem Befehl

apt-get build-dep fluxbox

kann man die Pakete installieren, die benötigt werden um Fluxbox zu kompilieren.

Sourcen herunterladen:

apt-get source fluxbox

In das erstellte Verzeichnis wechseln:

cd fluxbox-1.0.0+deb1

Das Souren-Archiv entpacken:

tar xvjf fluxbox-1.0.0.tar.bz2

In das erstellte Verzeichnis wechseln:

cd fluxbox-1.0.0

Die Window.cc editieren:

vim ./src/Window.cc

Dann das alte Archiv löschen …

rm fluxbox-1.0.0.tar.bz2

… und ein neues erstellen:

tar cjf fluxbox-1.0.0.tar.bz2 fluxbox-1.0.0/

Den alten Sourcen-Ordner löschen…

rm -rf fluxbox-1.0.0

… und dann das Paket bauen (in dem Ordner in dem der “debian”-Ordner ist):

dpkg-buildpackage -rfakeroot -uc -b

Danach kann das Paket (das im übergeordneten Ordner liegt) mit

dpkg -i fluxbox_1.0.0+deb1-8_i386.deb

installiert werden.

Das fertige Paket für Debian Lenny kann hier runtergeladen werden.

Multiplikationstabelle in C

Tolle Übungsaufgabe in C: eine Multiplikationstabelle.
Ausgabe (mit 3 Spalten und 4 Zeilen):

1       2       3
2       4       6
3       6       9
4       8       12

Lösungsvorschlag mit einer for-Schleife:

/*
 * Multiplikationstabelle mit for-Schleife
 *
 * by Rainer Hihn
 */

#include 

int main(void) {
	/*
	 * vertical and horizontal limit
	 */
	int hlimit;
	int vlimit;

	scanf("%d", &hlimit);
	scanf("%d", &vlimit);

	/*
	 * for loop vars
	 */
	int i;
	int j;

	for(i = 1; i <= vlimit; i++) {
		for(j = 1; j <= hlimit; j++) {
			printf("%d\t", i*j);
		}
		printf("\n");
	}	

	printf("\n");

	return 0;
}

while-Schleife:

/*
 * Multiplikationstabelle mit while-Schleife
 *
 * by Rainer Hihn
 */

#include 

int main(void) {
	/*
	 * vertical and horizontal limit
	 */
	int hlimit;
	int vlimit;

	scanf("%d", &hlimit);
	scanf("%d", &vlimit);

	 /*
	  * while loop vars
	  */
	 int i = 1;
	 int j = 1;

	while(i <= vlimit) {
		while(j <= hlimit) {
			printf("%d\t", i*j);
			j++;
		}
		j = 1;
		i++;
		printf("\n");
	}	

	printf("\n");

	return 0;
}

Eigenen Kernel unter Debian Lenny kompilieren

Mit folgenden Schritten kann man sich unter Debian Lenny einen eigenen Kernel zusammen stellen. Vorweg: man muss diese Schritte nicht in /usr/src ausführen und man kann alle Schritte ausser die Installation des neuen Kernels als User ausführen.

Erstmal die Paketlisten aktualisieren:

apt-get update

Die benötigten Pakete installieren:

apt-get install fakeroot kernel-package \
libncurses5-dev libqt3-mt-dev bzip2 build-essential

Einen Arbeitsordner erstellen:

mkdir mykernel
cd mykernel

Sich von kernel.org einen Kernel (bzw. dessen Sourcen) herunterladen. Die 2.6er-Kernel sind unter http://www.kernel.org/pub/linux/kernel/v2.6/ zu finden.

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.9.tar.bz2

Die Kernel-Sourcen entpacken:

tar xvjf linux-2.6.27.9.tar.bz2

In das Sourcen-Verzeichnis wechseln:

cd linux-2.6.27.9

Reinen Tisch machen:

make clean mrproper

Man kann die aktuelle Kernel-konfiguration mit folgendem Befehl übernehmen:

cp /boot/config-`uname -r` ./.config

Die Konfiguration ändern:

make menuconfig

Mit folgenden 2 Befehlen baut man den Kernel (statt “custom” kann man auch einen eigenen Namen wählen):

make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

Danach wechselt man wieder in das mykernel-Verzeichnis:

cd ..

Dort liegen die 2 erstellten Dateien die man – als root – mit dpkg installiert:

dpkg -i linux-image-2.6.27.9-custom_2.6.27.9-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.27.9-custom_2.6.27.9-custom-10.00.Custom_i386.deb

Letzter Schritt:

update-initramfs -c -k 

Fertig, jetzt den PC neu starten und den neuen Kernel booten.
Danke an F.Zappa von den Debian User Forums

« Older Entries | Newer Entries »