Montag, 29. Oktober 2007Flashplayer browserübergreifend einbinden
Das allseits hassgeliebte Flash ist nunmal Mode in Zeiten von Web 2.Null.
Und da es für das Einbinden des Flashplugins keinen richtigen Standard gibt, den alle Browser unterstützen, muss man auf eine Tricks zurückgreifen. Mein Beispiel bezieht sich auf den weit verbreiteten Flashplayer [1]. Es gibt mehrere Möglichkeiten:
Die Javascript-Methode: Über Javascript wird der verwendete Browser detektiert und daraufhin passendes HTML erzeugt. Geht aber nur bei aktiviertem Javascript. Siehe dazu z.B. SWFobject [2]
Die object-embed-Methode:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com /pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="400" height="300" id="movie" align=""> <param name="movie" value="flashplayer.swf?file=movie.flv"> <embed src="flashplayer.swf?file=movie.flv" quality="high" width="400" height="300" name="movie" align="" type="application/x-shockwave-flash" plug inspage="http://www.macromedia.com/go/getflashplayer"> </object>Das äußere object-Tag wird wegen dem classid-Attribut nur vom IE verarbeitet, weil so ActiveX-Komponenten eingebunden werden. Wenn ein Browser mit so einen Object nichts anfangen kann, schaut in die Kinderelemente nach verwertbaren Strukuren. Dort kann man z.B. ein Bild und einen Text wie "Bitte Flashplayer da runterladen..." einbinden. Das macht man sich hier bei Mozilla-Browsern zu nutze, die den ersten Tag ignorieren, und mit einem embed-Tag, ursprünglich eine Erfindung von Netscape, den wiederum der IE ignoriert. Leider entsteht damit nicht standardkonformer Quelltext. Die object-object-Methode: <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,00,0" width="550" height="400"> <param name="movie" value="flashplayer.swf?file=movie.flv"> <param name="quality" value="high"> <!--[if !IE]> <--> <object data="flashplayer.swf?file=movie.flv" width="550" height="400" type="application/x-shockwave-flash"> <param name="quality" value="high"> <param name="pluginurl" value="http://www.macromedia.com/go/getflashplayer"> Bitte Flashplugin herunterladen... </object> <!--> <![endif]--> </object>Das ist ein neuer Ansatz, den ich in einem norwegischen Forum gefunden habe. [3] Hier wird außen das Object für den IE genutzt und innen statt dem embed ein object-tag, was aber durch spezielle Kommentare vom IE ignoriert wird. Das ist dann auch valider HTML-Code. Weitere Infos siehe [4] bzw. [5] Quellen: [1] http://www.jeroenwijering.com/?item=JW_FLV_Player [2] http://blog.deconcept.com/swfobject/ [3] http://www.diskusjon.no/index.php?showtopic=824956 [4] http://de.selfhtml.org/css/layouts/browserweichen.htm#alternative [5] http://www.alistapart.com/articles/flashsatay/
Geschrieben von pegro
um
15:38
| Kommentare (0)
| Trackbacks (0)
Zuletzt bearbeitet am 29.10.2007 16:37
Samstag, 27. Oktober 2007Linux Openbook
Seit heute kann man unter http://www.galileocomputing.de/openbook/linux/ die neuste Auflage des distributionsunabhängigen Handbuchs für Linux online ansehen bzw. herunterladen.
Grade für Einsteiger oder als Referenz halte ich es für sehr gut geeignet.
Geschrieben von pegro
um
13:14
| Kommentar (1)
| Trackbacks (0)
Zuletzt bearbeitet am 27.10.2007 13:17
Donnerstag, 18. Oktober 2007Es lebe IPv6
Nur leider gibt es nur sehr wenige Netzwerke, die IPv6 voll unterstützen.
Daher muss man meistens auf 6to4, also einen IPv6-über-IPv4-Tunnel, zurückgreifen. Dabei werden IPv6 Pakete in IPv4 Pakete eingepackt und zum nächsten 6to4-Gateway geschickt, der die Brücke zwischen v4 und v6-Netz bildet und das Paket dort wieder auspackt.
Weitere Informationen dazu stehen in dem Wikipedia-Artikel und dessen verlinkte Seiten.
Um einen 6to4-Tunnel unter Gentoo zu nutzen, muss man nur wenige Handgriffe erledigen:
cd /etc/init.d/ ln -s net.lo net.6to4Legt ein Symlink für das Netzwerkstartskript an. Das ist zum Starten und Stoppen notwendig. In die /etc/conf.d/net muss dann der Tunnel noch konfiguriert werden: link_6to4="eth0" config_6to4=( "ip6to4" ) depend_6to4() { need net.eth0 }Dann muss der Tunnel nur noch gestartet werden: /etc/init.d/net.6to4 startDann sollte man mit ifconfig 6to4 überprüfen, ob man eine 2002: Adresse hat und als Test mal ping6 www.kame.net probieren. Ab nun hat man IPv6 in einem IPv4-Netz. Quellen: http://de.wikipedia.org/wiki/6to4 http://gentoo-wiki.com/HOWTO_IPv6#IPv6_tunneling_with_6to4
Geschrieben von pegro
um
15:42
| Kommentare (0)
| Trackbacks (0)
Zuletzt bearbeitet am 18.10.2007 15:58
In welchem Paket finde ich....
Diese Frage stelle ich mir immer dann, wenn im Internet ein Tool beworben wird, was irgendwas besser macht, als die Standardtools. Meist heißt das Paket so wie das Tool, das ist aber nicht immer der Fall.
Dann hilft die Portage File List, mit Suchmaske: http://www.devloop.de/pfl/
Wenn ein Paket schon installiert ist und man wissen möchte, welche Tools und Dateien dazu gehören, empfehle ich equery.
Das ist wiederum im Paket app-portage/gentoolkit enthalten, zusätzlich zu tollen tools wie euse zum Setzen globaler USE-Flags; revdep-rebuild zum Beseitigen vom Inkonsistenzen mit dynamisch verlinkten Libraries, sowie glsa-check, einem Tool zum Überprüfen, ob es sicherheitskritische Updates für installierte Pakete gibt. Für produkive Systeme sehr zu empfehlen.
Doch zum eigentlichen Thema: equery
equery belongs ipfindet z.B. das Paket, worin /usr/sbin/ip enthalten ist. equery kann aber noch mehr... RTFM ![]()
Geschrieben von pegro
um
15:27
| Kommentare (4)
| Trackbacks (0)
Zuletzt bearbeitet am 10.07.2008 22:42
Netzwerktool ip
Jeder kennt ifconfig und route usw.
Es gibt aber schon seit einiger Zeit ein Tool, was das alles in sich bündelt mit einheitlicher Befehlssyntax. Das nennt sich ip.
Für Gentoo findet man das Tool im Paket sys-apps/iproute2.
Ich schreibe sicher später noch was zur Syntax, aber ip --help gibt schon gut Auskunft.
[UPDATE]
Eine ausführlichere Dokumentation findet man unter http://www.policyrouting.org/iproute2.doc.html
Geschrieben von pegro
um
15:23
| Kommentare (0)
| Trackbacks (0)
Zuletzt bearbeitet am 26.01.2008 19:19
Samstag, 13. Oktober 2007dm-crypt auf schnellen Kisten kann auch zu Problemen führen
Hachja, das hat man davon, wenn man sich ein Geschoss kauft. Der arme Quad-Core kann gar nix dafür.
Ich hatte nämlich seit Einrichtung einiger verschlüsselter Partitionen das Problem, dass er mein Passwort nicht annehmen wollte, obwohl ich beim tippen genau aufgepasst hab, alles richtig einzugeben. Manchmal klappte es aber doch. Ich dachte das liegt nur am falschen Keyboard-Layout beim Booten, wobei ich dann einige Tasten im Kopf umbelegen musste, aber es stellte sich raus, dass auch mit richtigem Layout mein Passwort nicht sofort akzeptiert wurde.
Nach gut 2 Stunden googlen zu dem Thema und einem aufschlussreichem Bugreport, der mit meiner dmesg-Ausgabe korellierte, hatte ich die Lösung gefunden.
Denn dmesg sagte mir:
device-mapper: ioctl: unable to remove open device temporary-cryptsetup-7112
device-mapper: ioctl: unable to remove open device temporary-cryptsetup-7124
device-mapper: ioctl: unable to remove open device temporary-cryptsetup-7124
Denn die Ursache ist udev. Udev schaut nämlich bei jedem auftauchenden Gerät irgendwo in /dev, ob es dazu eine Regel hat. Und in der Tat gibt es für den Device-Mapper spezielle rules, definiert in 64-device-mapper.rules.
Das Cryptsetup hat die Eigenart, jedes verschlüsselte Device bis zur Freigabe als /dev/mapper/temporary-cryptsetup-* anzulegen, was udev auch promt bemerkt, das Device nach /dev, nach z.B. /dev/dm-1 verlegt und in /dev/mapper einen Symlink dazu anlegt. Wenn das Passwort dann eingegeben wurde, erzeugt Cryptsetup das im Aufruf angegebene Device in /dev/mapper/ und löscht das temporäre Device wieder. Zumindest theoretisch. Denn udev hat das temporäre Device bereits wo anders hin verschoben und verlinkt. Somit lässt es sich nicht löschen und der Device-mapper meldet einen Fehler.
Abhilfe schafft ein Eintrag in die /etc/udev/rules.d/64-device-mapper.rules:
# ignore luks crypt devices while not fully up
ENV{DM_NAME}=="temporary-cryptsetup-*", NAME="", OPTIONS="ignore_device"
Dann klappts auch mit dem Verschlüsseln.
Scheinbar passiert das alles ganz kurz hintereinander und provoziert eine Race-Condition, denn so häufig ist der Bug noch nicht aufgefallen.
Update: Wie ich grade im Bugtracker von Gentoo gelesen habe, wurde mit device-mapper-1.02.22-r5 die rules-Datei etwas geändert, wodurch udev das Device nicht mehr nach /dev/dm* verschiebt, sondern nur noch per Symlink verlinkt. Das führt zwar zu ungültigen Links, wenn der Device-Mapper die temporären Devices wieder löscht, aber das ist besser als gar nicht zu funktionieren.
Geschrieben von pegro
um
23:47
| Kommentare (0)
| Trackbacks (0)
Zuletzt bearbeitet am 14.10.2007 00:32
Freitag, 12. Oktober 2007SVN-Commitmessages nachträglich ändern
Wenn man sich beim einchecken mal vertippt hat, ist das kein Weltuntergang. Denn es gibt Möglichkeiten, die Logmessage nachträglich zu ändern.
Das kann man per
svn propset --revprop -r $REVISION svn:log "$NEWLOGMESSAGE"
erreichen, wobei man aber eine neue Revision erzeugt und damit auch alle Hooks anstößt, die z.B. Commitmails verschicken.
Wenn man aber direkten Zugriff auf das Repository hat, kann man das auch an den Hooks vorbei tun, kriegt dann aber keine Änderungsmails. Wen das nicht stört, der sollte folgendes probieren:
echo "$NEWLOGMESSAGE" > newlog.txt
svnadmin setlog /path/to/repos newlog.txt -r $REVISION --bypass-hooks
Ohne das --bypass-hooks werden die Hooks dennoch angestoßen. Näheres dazu steht im SVN-Handbuch.
Quelle: http://svnbook.red-bean.com/en/1.4/svn.reposadmin.maint.html#svn.reposadmin.maint.setlog
Samsung ML-3051ND unter Linux
Ich hab mir im Juli einen Laserdrucker zugelegt. Einen Samsung ML-3051ND Monochromlaser.
Ich hatte recherchiert, dass er auch problemlos unter Linux seinen Dienst tut. Dazu kam, dass ein Komillitone ebenfalls einen Samsung Laser erfolgreich mit seinem Debian nutze.
Zunächst sollte man den CUPS Daemon installieren. Danach erst den Druckertreiber.
Auf CD wird ein Unfied Linux Treiber mitgeliefert, mit dessen grafischen Installationsprogramm die Einrichtung schnell erledigt ist. Damit der Cups auch klarkommt, müssen noch ein paar Dateien kopiert werden:
cp -v /usr/lib/cups/filter/* /usr/libexec/cups/filter/
cp -v /usr/lib/cups/backend/mfp /usr/libexec/cups/backend/
Dann den CUPS (neu)starten. Fertig.
Es kann sein, dass der vom Installer erstellte Drucker seinen Dienst verweigert. Dann hilft nur, den Drucker nochmal per CUPS-Adminstratiosnoberfläche einzurichten. Dazu wechselt man im Browser auf http://localhost:631 und nutzt den Wizzard "Drucker hinzufügen". In meinem Fall wurde dann der per USB angeschlossene Drucker an "usb://Samsung/ML-3050" erkannt. Danach funktionierte er sofort.
Die mitgelieferte Treiberversion 2.00.87 hatte noch ein paar Probleme. So funktionierte der Duplexdruck nicht und bei Bilderm kamen nur seitenweise Steuerzeichen. Aber mit der neusten Version (2.00.97) funktioniert alles wunderbar.
Geschrieben von pegro
um
23:30
| Kommentare (0)
| Trackbacks (0)
Zuletzt bearbeitet am 12.10.2007 23:52
Mittwoch, 3. Oktober 2007KVM im HBR
Memo: Aufruf des Menüs zum Rechner umschalten: 2x ROLLEN hintereinander drücken
Tipps & Tricks für die Linuxbash #1
Wenn man mal schnell eine Datei in einem entfernten Ordner kopieren möchte, z.B. als temporäre Sicherheitskopie, dann sieht der Befehl meist so aus:
cp /pfad/zu/der/entfernten/datei /pfad/zu/der/entfernten/datei.bakSicherlich ist die Bashcompletion sehr hilfreich, aber es geht noch schneller! Dazu schreibt man den Teil des Pfades, der sich nicht ändert, nur einmal hin. Die Änderung fasst man als Vorher-Nacher in geschwungene Klammern ein: cp /pfad/zu/der/entfernten/datei{,.bak}Dabei gilt {Alt , Neu}. Wenn man nur hinten etwas anhängen will, reicht ein {,Neu} wie im Beispiel. Das erspart viel Schreibarbeit und funktioniert bei einer ganzen Menge von Shellbefehlen.
Geschrieben von pegro
um
14:25
| Kommentare (0)
| Trackbacks (0)
Zuletzt bearbeitet am 03.10.2007 14:31
Prozentzeichen in der crontab
Muss man auch erstmal rausfinden:
Das Prozentzeichen wird in der command-Spalte einer Crontab durch einen Zeilenumbruch ersetzt. Falls man hingegen mal ein % im Befehl nutzen möchte, z.B. um sich ein Datum mit date zu formatieren, dann muss man dran denken, das % zu escapen (%).
(Seite 1 von 1, insgesamt 11 Einträge)
|
SucheArchivKategorien |