Martin Lantzsch
Software Entwickler
2. Oktober 2011

PECL uploadprogress auf Debian installieren

2. Oktober 2011 - Geschrieben von Martin - 3 Kommentare

In den letzten Wochen hatte ich 2x das Vergnügen die PECL extension „uploadprogress“ zu installieren. Leider ist die Installation etwas tricky, wenn man nicht weiß was genau man zu tun hat.

Nötige Pakete aus den Quellen installieren

apt-get install php5-dev php-pear

PECL extension installieren

pecl install uploadprogress

PHP.ini um folgende Zeile erweitern

extension=uploadprogress.so

und in der PHP.ini die Temporäre File Upload Directory auf /tmp setzen (ohne diesen Schritt liefert uploadprogress_get_info() „null“ zurück)

upload_tmp_dir=/tmp

Webserver neu starten und die extension sollte Problemlos laufen.

2. Oktober 2011

API Bashing vom Feinsten

2. Oktober 2011 - Geschrieben von Martin - Keine Kommentare

Bei „Vier Fäuste für ein Halleluja“ ziehen Felix von Leitner und Erdgeist im Rahmen des CCC Kongresses 2009 (26C3) schön über vermurkste APIs wie HTTP, X11, smb und natürlich über Sockets her.

Nehmt euch die Stunde zeit und hört es euch an. Den Programmierern unter euch wird es sicher das ein oder andere Auge öffnen. Und natürlich ist es super lustig. Wie die beiden über die APIs herziehen ist echt vom Feinsten. Es wird kein Blatt vor den Mund genommen.

Da hab ich gesaugt: [mp3] [ogg] [mp4]
Und hier gibt es eine FTP Liste: http://events.ccc.de/congress/2009/wiki/Ftp

Das Video ist meiner Meinung nach nicht unbedingt von Nöten, auf den Folien sind nur der Vollständigkeit halber „kurze“ Code Ausschnitte und Schlagworte zu dem was gesagt wird.

7. September 2011

Android SDK unter Windows Installieren

7. September 2011 - Geschrieben von Martin - 2 Kommentare

Wer unter Windows für Android entwickeln will muss ein paar Dinge beachten, um das SDK zum laufen zu bekommen.

  • Eclipse Classic installieren
  • Android SDK Installieren (und benötigte Pakete herunterladen)
  • Eclipse Android Developer Plugin installieren
    Falls es zu Abhängigkeitsfehlern kommt das Eclipse Helios Repo via Window -> Preferences -> Install/Update -> Available Software Sites hinzufügen
    http://download.eclipse.org/releases/helios/

  • Unter Window -> Preferences -> Android folgende SDK Location verwenden
    C:\PROGRA~1\Android\android-sdk

    Unter x64 Windows diesen hier

    C:\PROGRA~2\Android\android-sdk

    Denn der Pfad zum SDK darf keine Leerzeichen enthalten, ansonsten funktioniert der Android Emulator nicht.

30. August 2011

Jamendo Songs Downloaden (Script)

30. August 2011 - Geschrieben von Martin - Keine Kommentare

Gestern habe ich ein kleines Script in PHP geschrieben, mit dem man Jamendo Songs inklusiv Cover Bild herunterladen kann. Das Script liest die Informationen auf dem Jamendo Server aus und speichert die Tracks in folgendem Format:

/[ALBUM NAME]/[INTERPRET] - [TITEL].ogg
/[ALBUM NAME]/[INTERPRET] - [TITEL]_cover.jpg

Hier das Script, evl schreibe ich noch einen Downloader in Java oder C#, falls ich demnächst ein wenig Zeit finde:

<?php
if(isset($_GET['id'])) {
	$trackID = (int)$_GET['id'];
	// get download url
	$trackUrl = file_get_contents('http://www.jamendo.com/get/track/id/track/audio/plain/'.$trackID.'/?aue=ogg2');
	if($trackUrl == false) {
		echo 'track id not availible!';
	} else {
		// get track information
		$trackTitle = (string)file_get_contents('http://www.jamendo.com/get/album/id/album/title/plain/'.$trackID.'/');
		$trackInterpret = (string)file_get_contents('http://www.jamendo.com/get/artist/id/track/title/plain/'.$trackID.'/');
		$trackAlbum = (string)file_get_contents('http://www.jamendo.com/get/album/id/track/title/plain/'.$trackID.'/');
 
		$location = './'.$trackAlbum.'/'.$trackInterpret.' - '.$trackTitle;
		if(!file_exists($trackAlbum)) {
			mkdir($trackAlbum);
		}
		// download track
		$track = file_get_contents($trackUrl);
		file_put_contents($location.'.ogg', $track);
		// download cover
		$trackCoverUrl = file_get_contents('http://www.jamendo.com/get/album/id/track/artworkurl/plain/'.$trackID.'/?artwork_size=400');
		if($trackCoverUrl != false) {
			file_put_contents($location.'_cover.jpg', file_get_contents($trackCoverUrl));
		}
 
		echo 'track download finished!';
	}
}
echo '<p><form action="jamendo.php" method="GET"><label for="id">track id:</label> <input type="text" name="id" id="id" /><input type="submit" value="download" /></form></p>';

25. Juli 2011

Passwort Generator

25. Juli 2011 - Geschrieben von Martin - Ein Kommentar

Für alle die normalerweiße Passwörter wie z.B. ihren Vornamen verwenden habe ich ein kleines Programm geschrieben, mit dem man kinderleicht Passwörter generieren kann.


Einfach den Regler verschieben und es werden neue Passwörter generiert, deren Länge und Komplexität sich nach der Skala des Reglers richtet. Einfacher gehts nicht. Es werden sowohl Kleinbuchstaben, Großbuchstaben, Zahlen als auch Sonderzeichen verwendet (je nach Stellung des Reglers).

Herunterladen kann man das ganze hier von der dazugehörigen Github Seite: Download auf GitHub.com
Insofern ein JRE (Java Runtime Environment) installiert ist, kann der Password Generator direkt per Doppelklick gestartet werden.
Falls unter Linux .jar Dateien nicht mit Java verknüpft sind, kann das Programm mittels folgendem Kommando auf der Shell gestartet werden (man muss sich natürlich im Ordner der Datei befinden):

java -jar passwordGenerator.jar


(der Dateiname muss je nach Release angepasst werden).

Der Code kann hier eingesehen werden. Die „komischen“ Kommentare stammen übrigens vom Java Editor mit dem ich die Swing GUI erstellt habe ;-)

17. Juli 2011

C# einer TextBox den Fokus geben

17. Juli 2011 - Geschrieben von Martin - Keine Kommentare

Eben bin ich fast verzweifelt, denn die Focus Methode der TextBox wollte einfach nicht.

name.Focus();

Nach einiger Zeit hab ich dann gerafft, das man den TabIndex dieses Elements auf 0 setzen muss, damit man es direkt nach dem Öffnen des Fensters fokussieren kann.

Und was ich da gerade mit C# bastle erfahrt ihr bald ;-)

21. Januar 2011

Netbeans – immer für eine Überraschung gut

21. Januar 2011 - Geschrieben von Martin - 7 Kommentare


Netbeans überrascht mich doch immer wieder, eben habe ich ein Template entworfen, welches ich in selben Zug auch gleich mit Classes gefüllt habe und zack zeigt mir Netbeans diese im CSS Editor. Sogar mit Hervorhebung, wenn sie bereits niedergeschrieben wurden.

16. Dezember 2010

IE keine Frame height in Prozent

16. Dezember 2010 - Geschrieben von Martin - Keine Kommentare

Eigentlich sind Frames im heutigen Web nicht mehr gern gesehen, sie werden allerdings dennoch des öfteren benötigt, um z.B. mehrere Webseiten in einem Fenster darzustellen.

Wer dann z.B. dem Frame die Höhe 50% gibt, wird schnell feststellen, dass der Internet Explorer diesen Frame nur ein paarhundert Pixel hoch darstellt. Hierfür gibt es meines Wissens nach keinen Workaround, deshalb habe ich mir mittels JavaScript und dem jQuery Framework folgenden Fix gebastelt (hier wollte ich 2 iframes im Dokument die Höhe 50% geben):

function ieSetFrameHeight() {
    height = $(window).height();
    $('iframe').css({
        "height": height/2
    });
}
 
$(document).ready(function() {
    if($.browser.msie) {
        ieSetFrameHeight();
    }
}
 
$(window).resize(function() {
    if($.browser.msie) {
        ieSetFrameHeight();
    }
}