Archiv des Autors: admin

Änderungen in Select-Formularen auslesen, darauf reagieren und diese manipulieren mit jQuery

Mit jQuery auf Änderungen in einem Select-Formular zu reagieren ist im Grunde ganz einfach. Hier ein kleines Walkthrough:

Das HTML-Beispiel:

<form [..]>
    <select id=’selectid‘ name=’selectthis‘>
        <option value=’a‘>h</option>
        <option value=’b‘>i</option>
        <option value=’c‘>j</option>
        <option value=’d‘>k</option>
        <option value=’e‘>l</option>
        <option value=’f‘ selected=’selected‘>m</option>
        <option value=’g‘>n</option>
    </select>
</form>

Weiterlesen

Auslagerung des Arbeitsspeichers bestimmen

Unter Linux gibt es eine eigene Partition zum auslagern des Arbeitsspeichers, diese nennt sich swap, was so viel wie auslagern oder Austausch bedeutet. Diese Partition ist dazu gedacht dem System eine Möglichkeit zu geben wenig genutzte pages (zu dt. Seiten) im Arbeitsspeicher auf die Swap auszulagern, so dass der RAM für häufig verwendete pages frei bleibt.

Nun ist es so, dass dies nicht nur im Notfall, also wenn der RAM voll ist, sondern auch „zwischendurch“ geschieht. Das bringt auf Systemen die viele Prozesse am laufen haben, welche eher selten auf den RAM zugreifen den Vorteil, dass der RAM für neue evtl. häufig genutzte pages frei bleibt und so eventuelles Tauschen von SWAP auf RAM entfällt.

Das schöne ist, dass man dem Kernel sagen kann wie er sich verhalten soll, also ob er nur im Notfall auslagern soll oder ständig.
Dies kann man über folgendem Parameter festlegen:
Weiterlesen

FAAC-1.28 kompilieren

Wenn man versucht FAAC zu kompilieren bekommt man folgenden Fehler:

In file included from mp4common.h:29,
from atom_avc1.cpp:22:
mpeg4ip.h:126: error: new declaration ‚char* strcasestr(const char*, const char*)‘
/usr/include/string.h:367: error: ambiguates old declaration ‚const char* strcasestr(const char*, const char*)‘
In file included from mp4common.h:29,
from 3gp.cpp:28:
mpeg4ip.h:126: error: new declaration ‚char* strcasestr(const char*, const char*)‘
/usr/include/string.h:367: error: ambiguates old declaration ‚const char* strcasestr(const char*, const char*)‘
In file included from mp4common.h:29,
from atom_amr.cpp:28:
mpeg4ip.h:126: error: new declaration ‚char* strcasestr(const char*, const char*)‘
/usr/include/string.h:367: error: ambiguates old declaration ‚const char* strcasestr(const char*, const char*)‘
atom_avc1.cpp: In constructor ‚MP4Avc1Atom::MP4Avc1Atom()‘:
atom_avc1.cpp:27: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:30: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:32: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:35: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:37: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:39: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:42: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:47: warning: deprecated conversion from string constant to ‚char*‘
make[3]: *** [atom_avc1.o] Error 1
make[3]: *** Waiting for unfinished jobs….
make[3]: *** [3gp.o] Error 1
atom_amr.cpp: In constructor ‚MP4AmrAtom::MP4AmrAtom(const char*)‘:
atom_amr.cpp:33: warning: deprecated conversion from string constant to ‚char*‘
atom_amr.cpp:36: warning: deprecated conversion from string constant to ‚char*‘
atom_amr.cpp:38: warning: deprecated conversion from string constant to ‚char*‘
atom_amr.cpp:41: warning: deprecated conversion from string constant to ‚char*‘
atom_amr.cpp:43: warning: deprecated conversion from string constant to ‚char*‘
make[3]: *** [atom_amr.o] Error 1
make[3]: Leaving directory `/root/software/encoding/faac-1.28/common/mp4v2′
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/software/encoding/faac-1.28/common‘
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/software/encoding/faac-1.28′
make: *** [all] Error 2

Es geht also schlicht nicht, weil es eine Inkompatibilität zwischen Code und Compiler gibt.

Jetzt die gute Nachricht! Es gibt einen Patch.
Diesen findet man hier:
http://www.linuxfromscratch.org/blfs/view/svn/multimedia/faac.html
oder als direkt Link:
http://www.linuxfromscratch.org/patches/blfs/svn/faac-1.28-glibc_fixes-1.patch

Ausführen kann man den Patch folgendermaßen (Im Verzeichnis von faac ausführen):
patch -Np1 -i faac-1.28-glibc_fixes-1.patch

Beim kompilieren werden zwar trotzdem eine Menge Warnings rausgehauen, trotzdem läuft der Codec danach einwandfrei und kann produktiv eingesetzt werden.

Google Chrome aus der sources.list entfernen

Nach der Installation von Google Chrome schreibt sich google in die sources.list ein. Um Google wieder aus der sources.list zu entfernen müssen im Verzeichnis „/etc/apt/sources.list.d“ die Dateien google-chrome.list und google-chrome.list.save gelöscht werden.

Hier die zwei Zeilen die dazu nötig sind:
cd /etc/apt/sources.list.d/
rm google*

Dann einmal apt-get update ausführen und die sources.list ist wieder Google frei 🙂

Mp4 Streaming für jwplayer, flashplayer ermöglichen

Viele Encoder schreiben die MP4-Dateien unsauber und setzen den Index an das Ende der Datei und nicht an den Anfang, daher muss der Flashplayer zunächst die gesamte Datei laden um das Video streamen zu können.

Um diesen Fehler zu reparieren benötigt man das Tool qt-faststart.

Das Tool bekommt man hier:
Klick mich

Einfach via: easy_install qtfaststart installieren.

Wenn das Tool installiert ist, dann müsst ihr qtfaststart nutzen und nicht qt-faststart. Letzteres Tool ist für MOV-Dateien gedacht.

Die Syntax ist selbsterklärend:

Usage: qtfaststart [options] infile [outfile]

Vielen dank an:
http://videoencoding.websmith.de/encoding-praxis/linux-qtfaststart-metadaten.html
und natürlich an
https://github.com/danielgtaylor/qtfaststart

Gnome-Panel 100% load nach einstellen von Auto Hide

Hier nur ein kurzer Tipp:
Ich habe Gestern im Gnome Panel die „Auto-Hide“-Option aktiviert und das Resultat war, dass das Gnome Panel 100% CPU-Load und sukzessive mehr RAM verbaucht hat. Darüber hinaus war es auch nicht mehr bedienbar.

Wenn das passiert, dann kann man das Panel einfach mit:
gconftool-2 --recursive-unset /apps/panel
zurücksetzen, anschließend killt man es noch mit pkill gnome-panel und es sollte wieder einwandfrei laufen.

Falls ihr eure Shell immer über das Panel geöffnet habt, dann versucht über „ALT+F2“ den Anwendungsstartet zu bekommen und tippt dann „gnome-terminal“ ein, falls das nicht geht legt einfach einen Starter mit dem entsprechenden Befehl.
Wenn gar nichts mehr geht, dann drückt „ALT+STRG+F1“, dort müsst ihr euch erneut einloggen (mit dem gleichen Nutzer in dem das Problem mit dem Panel auftritt) und führt dann in dieser Shell die Befehle aus.

CakePHP Training – Eine Review

Um meine Kenntnisse über das CakePHP-Framework etwas auszubauen habe ich mich entschlossen an einem der angebotenen Kurse teilzunehmen: Hier findest du eine Übersicht der Kurse.

Es werden 4 Arten von Kursen Angeboten: „Beginner“, „Intermediate“, „Advanced“ und „Special Topics“. Unter den Special Topics verbergen sich Themen wie ein Upgrade auf eine neue Version oder ähnliches.
Alle Kurse kosten 49$ (Als ich mich angemeldet habe hat ein Kurs noch 89$ gekostet, aber nach der Preissenkung habe ich 30$ erstattet bekommen) und gehen 1 Stunde. Die Kurse werden bisher nur auf Englisch angeboten, soweit ich weiß sind andere Sprachen in Planung.

Weiterlesen