Kurz notiert: Renderingmode ausgeben bzw. Quirksmode erkennen

Mai 30th, 2007 09:14 Uhr von Ronald

Um zu erkennen, ob ein Dokument im Quirksmode gerendert wird, muss man nur eine Variable ausgeben lassen.

alert(document.compatMode);

Bekommt man als Ausgabe “BackCompat” oder “Quirksmode” weiß man, dass der Quirksmode an ist -> nicht gut.

Geschrieben in JavaScript | Keine Kommentare »

Internet Explorer: name-Attribut = Funktionsname = Fehler auf der Seite

Mai 29th, 2007 13:29 Uhr von Ronald

Ahhhhhh! Ich fahre bald nach Redmond und schmeiße da Steine in die Fenster! Oder so! Aaaaaaah!

<script type=“text/javascript”>
<!–
function previewTemplate() {
return true;
}
//–>

</script>

<input type=“button” value=“Vorschau” onclick=“JavaScript: previewTemplate();” />

<iframe name=“previewTemplate”>
</iframe>

Man könnte ja meinen, das wäre alles so in Ordnung. Ist es im Firefox auch. Und im Internet Explorer? “Fehler auf der Seite – Das Objekt unterstützt diese Eigenschaft oder Methode nicht“. Was das im Klartext bedeutet? Der IE möchte gerne beim Onclick-Ereignis anstatt auf die Funktion “previewTemplate()”, lieber auf den iframe mit dem Namen “previewTemplate” zugreifen und scheitert – natürlich. Sowas dämliches?!

Lösung: Anderen Namen für Funktion oder Objekt (in diesem Fall Iframe) vergeben. AHHH!

Geschrieben in JavaScript | Keine Kommentare »

Selectbox-Optionen ohne Value – IE sagt: “Nein, danke!”

Mai 29th, 2007 11:57 Uhr von Ronald

Hmpf! Schon wieder so ein dusseliges Problem, das mich aufgehalten hat. Ich weiß auch gar nicht, ob es daran liegt, dass der Firefox so nachsichtig ist oder der Internet Explorer (mal wieder) zu dämlich.

Folgendes sei gegeben:

<select name=“meine_box”>
<option>1</option>
<option>2</option>
</select>

Nun möchte ich die Werte der Optionen bei jeder Änderung ausgeben lassen. Ich erweitere also die Selectbox um das folgende:

<select name=“meine_box” onchange=“JavaScript: alert(this[this.selectedIndex].value);”>

Das funktioniert im Firefox auch ganz prima! Im Internet Explorer geht es leider nicht. Skriptfehler – Abbruch. Angeblich ein ungültiges Element. Na gut… und woran liegt es?! Daran, dass die Option-Felder keinen eigenen Value-Wert haben! %$&§”"!&;”$$&%!!%&%$§!!!!!

Des Rätsels Lösung:

<select name=“meine_box”>
<option value=“1″>1</option>
<option value=“2″>2</option>
</select>

Geschrieben in JavaScript | Keine Kommentare »

ffmpeg-php

Mai 29th, 2007 10:30 Uhr von Ronald

Um die ffmpeg-Geschichte jetzt zu vervollständigen, präsentiere ich hier noch das entsprechende PHP-Modul ffmpeg-php.

Das Modul erweitert PHP um einige sehr schöne Funktionen, z.B. um aus Videos Screenshots oder gleich animierte GIFs zu erzeugen. Was benötigt man? ffmpeg sowie PHP4 oder PHP5 sind “natürlich” Voraussetzung. Für die Bildextraktion wird noch GD-Lib benötigt. Wenn man diese Voraussetzungen erfüllt, kann es eigentlich schon losgehen:

How to install ffmpeg-php4 on Debian 4.0 (Etch)

1. Downloading the archive via Subversion

svn co https://ffmpeg-php.svn.sourceforge.net/svnroot/ffmpeg-php ffmpeg-php

2. Now change to the directory and execute “phpize”. Maybe you do not have installed it and then you can reinstall it with apt.

apt-get install php4-dev
cd ffmpeg-php
phpize

3. After a short period the system will throw you back to prompt. No it’s time to configure and build the extension.

./configure && make && make install

4. Checking for existing ini file! In some cases installation will not create a PHP-extension ini-file by itself, so you have to do the work. The directory where to find it depends on your configuration (PHP and Apache versions). In my case it’s “/etc/php4/apache2/conf.d/”

There you have to create a file named “ffmpeg.ini” an fill it with:

# configuration for php FFMPEG module
extension=ffmpeg.so

5. After all just restart apache with

/etc/init.d/apache2 restart

Try it by checking your “phpinfo()”-output or by testing a function directly, i.e.:

$movie = new ffmpeg_movie(“/path/to/video.ext”);

(C) 2007 by Ronald Vilbrandt

Aktualisiert zuletzt am: 30.10.2007

Geschrieben in PHP | 2 Kommentare »

ffmpeg – Videokonvertierung vom Feinsten

Mai 25th, 2007 09:21 Uhr von Ronald

Nachdem ich ja jetzt schon so von den Flashvideos geschwärmt habe, möchte ich gerne präsentieren, was man alles machen muss, um mit ffmpeg solche FLV-Dateien zu erzeuge. Der Weg war hart und steinig aber ich habe es geschafft! ;-)

Ein kurzer Ablauf:

ffmpeg über Debians apt installiert. Das war ja einfach! Flash-Video erzeugt – klappt ja prima. Aber halt!! Kein Ton!! :-(

Nachforschungen…

lame-mp3 fehlt! Na gut, schnell über apt installieren. … Gibt es nicht! Warum? Weil es lizenzrechtlich wohl nicht so einfach ist und deswegen stellt es Debian nicht zur Verfügung. Na gut, irgendwo wird es schon entsprechende Debian-Pakete geben…
Heureka! debian-unofficial.org bietet fertige Pakete an!
lame installieren, testen – kein Ton. Warum? ffmpeg muss entsprechend neu kompiliert werden. Von Hand! Es gibt ja sicherlich Anleitungen im Internet. Gibt es auch, aber leider alle nur für ältere ffmepg-Versionen oder nicht für Debian 4.0 (Etch). Nach einigem Rumgefrickel: Ich habe Feuer gemacht! Ich habe es kompiliert und installiert! Die Konvertierung läuft nun auch mit Ton! Fein, fein!

Dann mal eben die verschiedensten Dateiformate getestet:

  • AVI (XVid, DivX) – läuft
  • DIVX – läuft
  • MPEG – läuft
  • WMV, WMV8, WMV9 – laufen
  • MOV – läuft
  • 3GP – läuft nicht!

Mist! Dabei ist 3GP durch die Handy ja gerade ein ziemlich wichtiges Format! ffmpeg unterstützt prinzipiell 3GP-Dateien, allerdings nicht mit dem neueren Audio-Codec SAMR.

Den Rest des Eintrags lesen »

Geschrieben in Linux | 6 Kommentare »

Flash Videos – Eine romantische Huldigung

Mai 25th, 2007 08:41 Uhr von Ronald

“Ich brauche Flashvideos!”, ging mir so durch den Kopf, als ich über die Zukunft meiner Webgalerie nachgedacht habe. Meiner Meinung nach ist das “Flash Video“-Format eine der grandiostesten Erfindungen der letzten Jahre. Hat man sich früher noch mit “hakeligen” Formaten wie QuickTime, Real oder gar Microsofts “Windows Media Video” rumgeschlagen, für das der Besucher immer aufwändige und vor allem “nervige” Software installieren muss, so braucht man für die schönen Flashvideos nur das Adobe* Flash-Plugin – und das ist ja bei fast jedem installiert. Wenn ich dann noch zurückdenke, wie der Rechner immer ins Schwitzen kam, wenn der Media-/Real- bzw. QuickTime-Player angeschmissen werden musste…

* ehemals Macromedia

Geschrieben in Allgemeines | 1 Kommentar »

Opacity (Transparenz) für verschiedene Browser

Mai 22nd, 2007 15:28 Uhr von Ronald

Ab CSS3 wird es (endlich!) eine einheitliche Definition für Transparenz bei Objekten geben. Bis dahin gilt leider, wie viel zu oft: “Verschiedene Browser, verschiedene Implementierungen.”

Los geht’s:

CSS

div {
opacity: 0.5 // CSS3
-moz-opacity: 0.5 // Mozilla
khtml-opacity: 0.5
filter: alpha(opacity=50); // Internet Explorer
}

JavaScript

div = document.getElementById(“my_div”);
div.style.mozOpacity       = 0.5;
div.style.mozOpacity       = 0.5;
div.style.khtmlOpacity  = 0.5;
div.style.filter = “alpha(opacity=50)”;

Nach der Internet Explorer-Variante musste ich richtig lange forschen. Aber es hat sich ja gelohnt. ;-)

Geschrieben in JavaScript | Keine Kommentare »

Löschen von alten Dateien

Mai 20th, 2007 23:30 Uhr von Ronald

Wenn man mal wieder alte Backups o.ä. löschen will:

find /pfad/ -mtime +30 -exec rm {} \;

Erläuterung:
mtime: Datum in Tagen wann die Datei zum letzten mal geändert (modifiziert) wurde
exec rm: Befehl, der mit den gefunden Dateien benutzt werden soll. Ein “ls -la” anstatt einem “rm” listet einem erst einmal die Dateien auf, die er findet. Gibt Kontrollfreaks wie mir immer ein wenig Sicherheit, bevor ich sie lösche.

Geschrieben in Linux | Keine Kommentare »

setAttribute & Class – Internet Explorer stinkt (mal wieder)…

Mai 16th, 2007 06:33 Uhr von Ronald

In JavaScript gibt es ja einige wunderbare Funktionen bzw. Funktionalitäten. Besonders verpönt ist es ja das “.innerHTML” um Inhalte einzufügen. Es ist schnell aber irgendwie unsauber. Von daher macht man das über das “Einhängen” von richtigen (X)HTML-Nodes.

Beispiel:

var div =  document.getElementById(“mein_div_wo_ich_was_reinhaengen_will”);
var table = document.createElement(“table”);
table.setAttribute(“class”, “meine_bunte_css_klasse”);
div.appendChild(table);

Nachvollziehbar? Gut! Funktioniert aber nicht im Internet Explorer! Warum? Die Antwort mein Freund, weiß ganz allein der Wind.

Machen muss man es wie gefolgt:

[]
table.setAttribute(“className”, “meine_bunte_css_klasse”);
[]

oder

[]
table.className = “meine_bunte_css_klasse”;
[]

Mehr oder weniger elegant ist auch folgende Möglichkeit

[]
table.setAttribute((document.all ? “className” : “class”, “meine_bunte_css_klasse”));
[]

Da “document.all” nur unter dem IE verfügbar ist, wird hier “spontan entschieden” welches Attribut gesetzt wird.

Update:
Wie man in den Kommentaren lesen kann, ist document.all NICHT nur im Internet Explorer verfügbar. Dort steht ebenfalls ein “besserer” Lösungsansatz. Vielen Dank noch mal für den Hinweis.

Geschrieben in CSS, JavaScript | 2 Kommentare »

SSH-Key verteilen – Ein Klassiker

Mai 14th, 2007 23:07 Uhr von Ronald

Weil ich es mir nie merken kann und werde, hier noch mal der Ablauf:

Schlüssel erzeugen:

ssh-keygen -t rsa1
ssh-keygen -t rsa
ssh-keygen -t dsa

Schlüssel auf Remote-System kopieren:

ssh-copy-id user@remote-system
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-system
ssh-copy-id -i ~/.ssh/id_dsa.pub user@remote-system

Geschrieben in Linux | Keine Kommentare »

« Vorherige Einträge