ubuntuusers.de

22. Januar 2013

Auf Google+ veranstaltet man öfter Hangouts unter dem Namen Ubuntu On Air, bei dem ab und an recht interessante Einblicke in die Ubuntu-Entwicklung und zu allgemeinen Themen gegeben wird. In der heute erschienenen Folge äußerte sich Canonical Kernel Team Manager Leann Ogasawara zu einer Überlegung, die schon öfter gefordert wurde: Ubuntu zu einer Rolling-Release-Distribution umzubauen.

UbuntuSie äußerte sich dahingehend, dass man intern über einen Wechsel der Veröffentlichungen neuer Versionen nachdenke. Nicht mehr die klassischen 6 Monate, sondern lediglich die LTS-Versionen als nächstes Release bringt. Die bisherigen Zwischenversionen würden dann einfach fortlaufend aktualisiert werden, ohne das man eine komplett neue Version herausbringt.

“We were talking about this idea of a rolling release, and by 14.04 to talk about going from LTS to LTS, getting rid of these interim releases.”

Ab dem 14.04 Release könnte dieses Modell bereits greifen. Dies ist das erste Mal, dass ich von einem offiziellen Mitglied bei Canonical diese Überlegungen höre. Mich persönlich würde es in jedem Fall freuen, da ich prinzipiell gerne die LTS-Versionen einsetze, allerdings die Zeitsprünge zwischen diesen mit neuen Versionen und Funktionen ungern verpasse.

Natürlich ist hier aber noch keine offizielle Entscheidung gefallen, es müsse erst einmal geprüft werden, wie dies mit dem Qualitätsanspruch bei Canonical und auch der User vereinbar wäre, denn eine fehlerhafte Software wäre ebenfalls das letzte, was man sich wünscht. Prinzipiell scheint man aber bereits daran zu testen, schließlich gibt es bereits seit dem 13.04 Release keine Alpha-Versionen mehr und setzt hier bereits auf automatische Testszenarien.

Abschließend hier noch das Video (ab 41:54). Was haltet ihr von der Idee einer Rolling Release Distribution für Ubuntu? [via]

Nachdem am letzten Samstag nun das zweite Blender Hangout statt gefunden hat, gibt es diesen Samstag nun die dritte Ausgabe. Dieses Mal soll diese morgentliche Szene mit einer Kaffeetasse entstehen.

Also wer Zeit und Lust hat und den Umgang mit Blender erlernen möchte ist herzlich eingeladen, diesen Samstag den 26. Januar um 19.00 Uhr bei Google+

“Damals” musste man immer eine CD brennen um die neueste Distribution auszuprobieren. Das hat – das herunterladen übrigens auch – immer lange gedauert und war im vergleich zu heute auch weniger bequem. Dann kamen die wiederbeschreibbaren CDs. Damit wurde schon mal der Müll reduziert – in der Theorie. Denn diese waren nicht von jedem Laufwerk lesbar und teurer :-)

Alles wird gut …

Mittlerweile sind USB Sticks der Standard als Installationsmedium. Wenn auch nicht bei jedem Laptop ein USB Stick beiliegt oder auch andere Software oft noch als CD zu kaufen ist, so hat sich innerhalb der IT der USB Stick als Medium für Installationsmedien gegen die CD überwiegend durchgesetzt. Schon lange her, dass ich mir für eine Installation eine CD gebrannt habe …

… aber wie?

Die Frage die nun den ein oder anderen interessieren wird ist, wie man denn einen solchen Stick erstellt!?! Es gibt – und wir sprechen nur von Linux – einen Haufen Tools für diese Aufgabe. Eines der bekanntesten GUI-Tools ist wahrscheinlich Unetbootin. Unetbootin bietet beispielsweise auch an, das gewünschte .iso der Distribution selbst herunterzuladen. Des Weiteren gibt es Optionen wie ein persistentes Home. Spielt man mit einer Live CD, so können Daten erstellt und Änderungen gemacht werden, die auf dem USB Stick verbleiben und beim nächsten Start wieder zu Verfügung stehen.

Der liveusb-creator von Fedora hat einen vergleichbaren Funktionsumfang wie Unetbootin, fühlt sich allerdings im Fedoraumfeld um einiges wohler. Beide Programme sind übrigens auch für das gekachelte Badezimmer OS verfügbar. Das sind die meiner Meinung nach am meisten bekannten GUI Tools. Doch wie das unter Linux so ist, kann man auch diese Aufgabe recht einfach über die CLI lösen. Und wie ich finde sogar einfacher.

Das Tool “dd” sollte ein Begriff sein. Auch damit kann man einen bootbaren USB Stick erstellen. Der Befehl ist simpel:

dd if=/path/to/iso/image.iso of=/dev/usbdevice (bspw. sdc)

fertig.

Mein Favorit

Mein Favorit ist dd. Nicht weil ich ein CLI Junkie bin, sondern weil es damit ein Problem einfach nicht gibt – und das ist folgendes: Unetbootin erstellt einen eigenen Bootloader auf dem Stick und sucht innerhalb des .iso Files nach dessen Bootloader. Dieser wird analysiert und die Einträge werden dann soweit möglich übernommen. Das funktioniert leider nicht immer so gut. Dadurch fehlen öfters mal Einträge wie z.B. der Booteintrag um ein Rettungssystem zu starten oder ähnliches.

Bei dem Fedora Tool sieht das ganze nicht anders aus. Es funktioniert am besten mit Fedora, RHEL oder CentOS Images. Bei anderen gibt es ebenfalls das ein oder andere Mal Probleme.

Bisher keine Probleme hatte ich, wenn ich dd benutzt habe. Es bootet der Bootloader des .iso Images ohne Veränderungen und es stehen entsprechend alle Menüeinträge zur Verfügung.

Einen Nachteil hat die Sache mit dd natürlich. Es befindet sich im Gegensatz zu den anderen Tools kein “normales” Filesystem auf dem Stick und die Partitionstabelle ist auch nicht so, wie man es von einem Stick erwarten würde. Ein persistentes Home, wie es von den Tools angeboten wird, wird damit nicht so einfach funktionieren. Da muss man sich eben die Frage stellen, ob man das möchte bzw. braucht. Ich benötige meistens einfach nur ein Installationsmedium zur Installation oder zum Test und das sollte funktionieren.

Was nutzt ihr?

Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.

Es ist ja noch etwas Zeit bis zum nächsten LibreGraphicsMeeting in Madrid, dem Treffen nahezu aller freien Grafikprojekte. Noch bis zum 15. Februar kann man Vorträge und Präsentationen einreichen. Da nicht alle Applikationen wie zum Beispiel GIMP oder Scribus über eigene Organisationen verfügen oder wie bei Krita KDE die Entwickler unterstützen kann, sind viele der Entwickler auf eine Reiseunterstützung vom LibreGraphicsMeeting angewiesen. Aus diesem Grunde sammelt das LGM wieder per pledgie um für diese Kosten aufkommen zu können.

Daneben sammele ich persönlich auch dieses Jahr wieder für jemanden persönlich, der sich auch nicht leisten kann die Reisekosten vorstrecken zu können und dann 12-18 Monate auf die Rückvergütung vom LGM zu warten. Dieses Mal gibt es sogar 3 Begünstigte obwohl ich zweifel habe, dass alle 3 noch zum LGM reisen können. Denn 2 brauchen für die Einreise Visa und die sind von Flugtickets und dem Nachweis einer Unterkunft abhängig. Mir persönlich ist Gustav Gonzalez als Entwickler von Tupi am wichtigsten, dass er die Möglichkeit erhält am LGM teilzunehmen. Für diesen fehlen auch nur noch rund 200$ für den Flug und etwa 150$ für Unterkunft.

Fall also der ein oder andere auf einige Euro verzichten kann, hier hat er eine einfache Möglichkeit zu freier Software beizutragen.

 

Ich betreibe meinen Raspberry Pi an einem Toshiba 26EL934G mit einer Auflösung von 1366×768 Pixel (HD Ready). Laut dem Embedded Linux Wiki muss man in die /boot/config.txt normalerweise nur …

hdmi_group=2
hdmi_mode=81

… hinzufügen – aber mit diesen Settings habe ich komischerweise eine Auflösung von 4:3, genauer gesagt 640×480 (Einstellungen > System > Video-Hardware) und somit ein sehr unscharfes Bild. :-P

Toshiba 26EL934G mit einem Raspberry Pi und RaspBMC

Eine zusätzliche Zeile in der /boot/config.txt brachte dann den Erfolg:

hdmi_ignore_edid=0xa5000080

Soweit so gut, die Auflösung passt erstmal. 2 Minuten später dann wieder die Ernüchterung, es wird kein Ton über HDMI ausgegeben. :-( In den Einstellungen von XBMC (Einstellungen > System > Audio-Hardware) war aber alles richtig eingestellt – Audioausgabe: HDMI und Lautsprecherkonfiguration 2.0.

Ach hier braucht man eine zusätzliche Zeile in der /boot/config.txt:

hdmi_drive=2

Nun funktioniert dann auch die Tonausgabe über HDMI. :mrgreen:

Viel Spaß mit eurem Raspberry Pi an einem HD Ready Fernseher!

PS: Ich hoffe, dass DTS Inc. nun endlich mal auf die Mails von der Raspberry Pi Foundation reagiert, damit DTS Lizenzen (Hardwarebeschleunigung) im Raspberry Pi Store erhältlich sind!
Wenn man den RPI an einen Verstärker hängt, der mit 5.1 DTS umgehen kann, gibt es keine Probleme. Wenn allerdings der RPI die DTS Tonspur auf Stereo (2.0) herunterrechnen muss, stockt das Bild und der Ton, weil der RPI dadurch komplett ausgelastet ist – mit einer DTS Lizenz (Hardwarebeschleunigung) wäre das Problem behoben!


© loggn.de, 2013. | Permalink | kein Kommentar
_nico bei Twitter und Google+ | loggn.de bei Facebook und Google+

Copyright © 2009-2014
Dieser Feed ist ausschließlich für den privaten Gebrauch bestimmt. Der gewerbliche Gebrauch, in gedruckter oder digitaler Form, ist ohne ausdrückliche Zustimmung des Betreibers nicht erlaubt.

Beim installieren einer neueren Java Version habe ich folgende Fehlermeldung bekommen:

Datei /etc/init.d/jexec aus der Installation von jdk-2000:1.7.0-fcs.x86_64 kollidiert mit der Datei aus dem Paket jdk-2000:1.6.0_33-fcs.x86_64

Die neuere Version ließ sich jedoch installieren mit der Angabe --force , Probleme gab es im nachhinein nicht.

rpm -ivh --force jdk-7-linux-x64.rpm

Yaaic - Yet another androidirc client

Yaaic – Yet another android irc client

Yaaic ist meiner Meinung nach der beste IRC-Client für Android. Zwar gibt es Anwendungen die mehr Funktionen bieten, jedoch sind diese nicht FLOSS oder beanspruchen den Akku stark. Außerdem kommt Yaaic im Holo-Theme und passt dadurch optisch gut zum Erscheinungsbild neuerer Android-Versionen.

Die wichtigen Funktionen werden von Yaaic unterstützt:

  • Highlights und Benachrichtigungen
  • Ausblenden von Message of the day (MOTD)
  • Farbige Nicknames zur leichteren Unterscheidung
  • Automatisches Verbinden nach Trennung
  • Ausblenden von join-, part- und quit-Meldungen
  • Größe der Historie ist einstellbar
  • Definierbare Quit-Meldung
  • Verwaltung von Benutzer (Verteilung von Rechten, kicken, …)
  • Schriftgröße ist einstellbar

Außerdem gibt es noch Komfortfunktionen wie

  • Spracherkennung
  • Automatisches Großschreiben von Satzänfängen
  • Autokorrektur
  • Graphische Smilies
  • Unterstützung für Nachrichtenfarben

Auch wenn die Autokorrektur sowie das Großschreiben von den meisten Android-Tastaturen bereits unterstütz wird bringt Yaaic diese Funktion für ältere Telefone mit.

Möchte man einen Bouncer verwenden muss man die Anmeldedaten im Passwortfeld des Servers folgendermaßen angeben: benutzer:passwort.

Das Programm wurde unter der GPLv3 veröffentlicht und ist sowohl bei F-Droid sowie Google Play erhältlich.

21. Januar 2013

Anfang Dezember 2012 habe ich mich dazu entschieden, mein erstes Softwareprojekt zu starten, welches ich der Öffentlichkeit zugänglich mache. Zwar habe ich vorher schon ein paar "mittelgroße" Sachen programmiert, das sind aber alles Webapplikation, welche im Intranet der Firma laufen und das Arbeitsleben für meine Kollegen und mich vereinfachen.

Das neue Projekt Namens "pygcstats" ist zwar öffentlich, ist aber nur nützlich für Leute, welche Geocaching betreiben, bei geocaching.com registriert sind und dort einen Premium-Account haben (sonst kommt man nicht an die Daten, die pygcstats auswertet). Gut, das sind weltweit geschätzt ca. immer noch 3 - 3,5 Millionen potentielle Nutzer... Programmiersprache der Wahl ist wie immer bei mir Python.

Aber um das Programm an sich geht es gar nicht, sondern eher, was ich bis jetzt bei dem Projekt generell gelernt habe:
  • Nutze ein Versionskontrollsystem: Zu Beginn habe ich noch ohne programmiert, aber spätestens dann, wenn man veröffentlichen will und ggf. zusätzlich zum Release einen Entwicklungszweig hat, kommt man nicht ohne aus. Und auch wenn moderne VCS nicht wirklich schwer zu verstehen braucht es ein bisschen Einarbeitungszeit. Besonders dann, wenn man zum ersten Mal einen Branch erstellen, nutzen und veröffentlichen will. In meinem Fall bestand das "learning by doing" zum Glück "nur" aus einem falsch ausgeführten Push ins Repositry auf Launchpad. Der ließ sich aber problemlos rückgängig machen.
  • Beschäftige dich mit der Plattform, die den Code hostet: Wie weiter oben bereits erwähnt nutze ich Launchpad als Plattform und Bazaar als VCS. Aus zwei ziemlich platten Gründen: Zum einem, weil ich eh' einen Account bei launchpad.net habe, zum anderen, weil ich die Doku im Wiki bei ubuntuusers.de zu Bazaar ziemlich kompakt und gut verständlich finde. Was auch schön ist: bei Launchpad kann man ziemlich viel über die Weboberfläche konfigurieren. Aber: auch das kostet Zeit, besonders am Anfang, wenn man noch nicht weiß, wo was ist. Inzwischen geht alles ganz flüssig.
  • Doku schreiben kostet Zeit: gute Software mit schlechter Doku (oder keiner Doku) ist keine gute Software. Von daher habe ich von Anfang an Wert auf Doku gelegt. Sowohl in Form von Anleitungen für die Nutzer als auch in Form von Docstrings im Quelltext. Einen großen Teil der Nutzerdoku habe ich erst in Englisch und dann noch in Deutsch geschrieben. Ich habe zwar nicht die Zeit genau gemessen, aber ich würde schätzen, dass mindestens 1/3 der Gesamtarbeitszeit des Projekts bis jetzt für Dokumentation aufgewendet wurde.
  • Halte dich von Anfang an an die PEP8: Die PEP8 ist der allgemein akzeptierte Code Style Guide für Python. Dieser war mir zwar geläufig, aber nicht in allen Details. Na ja, jedenfalls waren die ersten Ausgaben des PEP8 Checkers für meinen Code ziemlich lang, was die Fehler anging. Der größte Teil waren Leerzeichen in Leerzeilen oder am Zeilenende. Nicht tragisch, aber trotzdem kostet es Zeit, diese alle zu eliminieren. Also lieber direkt beim coden darauf achten direkt löschen bzw. erst gar keine "entstehen" lassen.
Rückblickend würde ich zwar nicht sagen, dass ich etwas wirklich falsch gemacht habe, aber man hätte Sachen besser machen können. In erster Linie wäre das, sich vorab mit der Plattform und dem VCS seiner Wahl zu beschäftigen. Dann hat man im laufenden Projekt mehr Zeit, auf die Programmierung und das Testen zu fokusieren.
Und, der Tipp / Hinweis an alle: unterschätzt nicht den Zeitaufwand, den eine gute / ausführliche Doku braucht.

Ach ja: den ersten "öffentlichen" Release der Software gab's übrigens vor ein paar Tagen.

Mein lieber Twitter-Follower @tobonaut hat sich von mir gewünscht, dass ich mal einen Blog-Artikel über meine meistverwendeten Linux-Programme schreibe. There you go! ;-)
Die Programme sind nicht nach Nutzungshäufigkeit oder irgendeinem anderen Kriterium geordnet.

  • Polly [Blog-Artikel]: Ein schöner mehrspaltiger Twitter-Client, mehr gibt es nicht zu sagen.
  • Thunderbird: Der E-Mail-Client der Mozilla Foundation. Tut einfach, was er soll nämlich reibungslos mehrere meiner E-Mail-Konten per POP3 und IMAP verwalten. Ich habe keine Addons installiert.
  • Firefox: Ich benutze ihn immer noch obwohl Chrome schneller ist (allerdings inzwischen nicht mehr viel, Firefox hat deutlich aufgeholt). Wichtigste Addons: Adblock Plus, das Pinboard.in-Addon, Firebug und Ghostery. Außerdem nutze ich Firefox-Sync.
  • Skype: Um mit Freunden zu telefonieren (oft in Konferenzen) und zu chatten.
  • Pidgin: Mein Jabber- und Facebook-Chat-Client. Mit Jabber benutze ich zusätzlich OTR-Verschlüsselung.
  • LibreOffice: Ich finde LibreOffice steht dem allseits bekannten Microsoft Office inzwischen in nichts mehr nach. Meine Office-Suite für den täglichen Einsatz.
  • Spotify Preview für Linux: Ich bin ein echter Fan von Spotify geworden, weil der riesige Musikkatalog und die Möglichkeit Playlisten von Freunden zu abonnieren oder sie mit ihnen zusammen zu füllen einfach super sind. Im Moment habe ich sogar einen Premium-Account und nutze Spotify auch auf dem Android-Phone.
  • KeePassX [Blog-Artikel]: Ein auf praktisch allen Plattformen (ich nutze ihn unter Linux, Windows und Android) verfügbarer Passwort-Safe in dem ich inzwischen fast alle meine Passwörter verwahre.
  • Dropbox: Zuverlässiger Cloud-Speicher auf dem ich alle meine gerade wichtigen Dokumente sichere. Schön an Dropbox finde ich, dass der Dropbox-Ordner immer auch lokal vorhanden ist und nicht nur eingehängt wird.
  • GIMP: Die eierlegende Wollmilchsau für alles was mit Bildern zu tun hat. Öffnet alles und bearbeitet alles :-).
  • Sublime Text 2: Der awesomste (Code-)Editor überhaupt weil er toll aussieht und jede Menge Das-habe-ich-schon-immer-vermisst-Funktionen hat :-).

Das ist natürlich nicht alle Software, die ich verwende aber es ist die wichtigste, die mir gerade in den Kopf gekommen ist :-).
Was sind eure meistverwendeten Programme unter Linux? Schreibt doch einen Kommentar! :-D

Mein lieber Twitter-Follower @tobonaut hat sich von mir gewünscht, dass ich mal einen Blog-Artikel über meine meistverwendeten Linux-Programme schreibe. There you go! ;-)
Die Programme sind nicht nach Nutzungshäufigkeit oder irgendeinem anderen Kriterium geordnet.

  • Polly [Blog-Artikel]: Ein schöner mehrspaltiger Twitter-Client, mehr gibt es nicht zu sagen.
  • Thunderbird: Der E-Mail-Client der Mozilla Foundation. Tut einfach, was er soll nämlich reibungslos mehrere meiner E-Mail-Konten per POP3 und IMAP verwalten. Ich habe keine Addons installiert.
  • Firefox: Ich benutze ihn immer noch obwohl Chrome schneller ist (allerdings inzwischen nicht mehr viel, Firefox hat deutlich aufgeholt). Wichtigste Addons: Adblock Plus, das Pinboard.in-Addon, Firebug und Ghostery. Außerdem nutze ich Firefox-Sync.
  • Skype: Um mit Freunden zu telefonieren (oft in Konferenzen) und zu chatten.
  • Pidgin: Mein Jabber- und Facebook-Chat-Client. Mit Jabber benutze ich zusätzlich OTR-Verschlüsselung.
  • LibreOffice: Ich finde LibreOffice steht dem allseits bekannten Microsoft Office inzwischen in nichts mehr nach. Meine Office-Suite für den täglichen Einsatz.
  • Spotify Preview für Linux: Ich bin ein echter Fan von Spotify geworden, weil der riesige Musikkatalog und die Möglichkeit Playlisten von Freunden zu abonnieren oder sie mit ihnen zusammen zu füllen einfach super sind. Im Moment habe ich sogar einen Premium-Account und nutze Spotify auch auf dem Android-Phone.
  • KeePassX [Blog-Artikel]: Ein auf praktisch allen Plattformen (ich nutze ihn unter Linux, Windows und Android) verfügbarer Passwort-Safe in dem ich inzwischen fast alle meine Passwörter verwahre.
  • Dropbox: Zuverlässiger Cloud-Speicher auf dem ich alle meine gerade wichtigen Dokumente sichere. Schön an Dropbox finde ich, dass der Dropbox-Ordner immer auch lokal vorhanden ist und nicht nur eingehängt wird.
  • GIMP: Die eierlegende Wollmilchsau für alles was mit Bildern zu tun hat. Öffnet alles und bearbeitet alles :-).
  • Sublime Text 2: Der awesomste (Code-)Editor überhaupt weil er toll aussieht und jede Menge Das-habe-ich-schon-immer-vermisst-Funktionen hat :-).

Das ist natürlich nicht alle Software, die ich verwende aber es ist die wichtigste, die mir gerade in den Kopf gekommen ist :-).
Was sind eure meistverwendeten Programme unter Linux? Schreibt doch einen Kommentar! :-D

Im Fall ihr habt das Hangout vom Sonntag zum Thema Blender verpasst, hier gibt es die Sache noch einmal als Screencast. Den Mitschnitt des Hangout gibt es zwar auch, aber der ist in Englisch und dann finde ich das nach wie vor weniger erbauend, wenn Leute da pfeifen müssen oder wie wild auf der Tastatur tippen müssen, damit das auch ja zu hören ist.

Der nächste Blender-Hangout ist schon in Planung, wer in den Mitschnitt des letzten schaut, wird am Ende das Thema des nächsten Hangouts finden. Wann dieser sein wird, weiss ich noch nicht genau, weil ich noch etwas Zeit zum vorbereiten benötige. Wer wissen will, wie ich zur Textur für die Dose komme, die ist ganz schnell mit Inkscape erzeugt, wie das geht, kann man im Hangoutmitschnitt sehen.

Schon länger habe ich nach einer Möglichkeit gesucht ein paar Musikdateien auszuwählen und in zufälliger Reihenfolge abspielen zu lassen. Das kann sowohl ein einzelnes Album sein, als auch eine Zusammenstellung mehrere Tracks aus verschiedenen Verzeichnissen. Außerdem sollte dieses Programm Konsolen-basiert sein, da ich es für schnelle Wiedergabe brauche und nicht zuerst in einer GUI alles zusammenklicken will. Da ich ein solches Programm leider noch nicht gefunden habe, habe ich mir selbst ein Bash-Skript zusammengestellt, welches als Scheduler dient und play (Paket sox aus den Quellen) zum Abspielen verwendet. play kann sowohl OGG, FLAC und WAV abspielen. Nach Installation von libsox-fmt-mp3 auch MP3.

Playr

Playr steht für die Zusammensetzung aus play (dem Programm fürs Abspielen der einzelnen Tracks) und random (engl.: zufällig). Dass es aussieht wie ein Web2.0-Name ist wiederum Zufall (dt.: coincidence).

Die grobe Funktionsweise: Die übergebenen Musiktracks werden in eine versteckte Textdatei geschrieben. Dann wird mit Hilfe von $RANDOM eine Zufallszahl zur Berechnung des nächsten Tracks verwendet. Dieser Track wird sodann abgespielt und aus der Textdatei entfernt. Das verhindert, dass dieser erneut abgespielt wird (was etwas ist, dass ich bei portablen Audio-Playern sehr nervig finde). Solange noch Tracks in der Liste sind wird fortgefahren.

Soll die Wiedergabe abgebrochen werden, muss der Nutzer nur [strg]+[c] drücken. Leider habe ich bis jetzt keine Möglichkeit gefunden zusätzlich dazu auch einfach zum nächsten Track zu wechseln. Man kann natürlich einfach die trap entfernen, dann bricht [strg]+[c] nur das aktuelle play ab. Dann kann jedoch das Skript selbst nicht mehr komfortabel beendet werden.

Das Skript

Wir beginnen mit der trap. Dieses Konstrukt sorgt dafür, dass unser Skript [strg]+[c] verarbeiten kann. Dafür schreiben wir folgende Zeile:
trap quit SIGINT SIGTERM

Diese Zeile führt dazu, dass beim Erhalt der Signale SIGINT (Signal 2) oder SIGTERM (Signal 15) quit ausgeführt wird. Nun ist quit kein Bash-Befehl sondern eine Funktion, die wir uns selbst schreiben, welche das Skript geordnet beendet:
function quit {
    rm -f $TRACK_FILE $TEMP_FILE
    exit 1
}

Diese Funktion schreiben wir vor die Trap. In dieser löschen wir einfach unsere Textdateien, damit sie beim nächsten Programmaufruf nicht stören.

Als nächstes definieren wir zwei Variablen für unsere versteckten Textdateien. Zum einen eine Datei um die Tracklist zu speichern, zum Anderen eine Datei in der die veränderte Liste gespeichert wird:
TRACK_FILE=/tmp/.tracklist.playr
TEMP_FILE=/tmp/.temp.playr

Wir speichern die Dateien in  /tmp , damit sie keine Verzeichnisse zumüllen. Außerdem sollten wir in  /tmp  immer Schreibzugriff haben. Sollte  /tmp  nicht verfügbar sein, kann man das Verzeichnis ja auf  $HOME  ändern.

Nun wirds Zeit sicherheitshalber Überbleibsel einer vorherigen Ausführung zu entfernen:
rm -f $TRACK_FILE $TEMP_FILE

Nur für den Fall, dass etwas total schief gelaufen ist.

Um die Tracklist zu erzeugen schreiben wir nun einfach alle Parameter, die beim Skriptaufruf übergeben wurde in das TRACK_FILE:
for file in " $@ "; do
    echo " $file "
done > $TRACK_FILE

Das funktioniert gewisserweise wie eine foreach-Schleife. Eine beliebige Anzahl Parameter wird durchlaufen ( $@ ). Der jeweils aktuelle Parameter wird in  $file  gespeichert und in der Schleife verarbeitet. Hier wird er einfach an die Standardausgabe geschickt. Die komplette Ausgabe der Schleife wird wieder auf  $TRACK_FILE  umgebogen, wodurch die Ausgabe nicht auf der Kommandozeile erscheint, sondern in der angegebenen Datei.

Die Größe der Tracklist holen wir uns mit wc:
size=$( cat "$TRACK_FILE" | wc -l)

Natürlich könnte man die Datei auch gleich als Parameter für wc angeben:
wc -l " $TRACK_FILE "

Dann jedoch erhält man eine Ausgabe nach folgendem Muster:
6 .tracklist.playr

Man muss also erst noch den eigentlichen Wert extrahieren. Da mache ich lieber den „Umweg“ über cat. Ist kürzer.

Nun kommt die eigentliche Hauptschleife des Programmes:
while [[ $size -gt 0 ]]; do
    ## Code
    ((size–))
done

Diese Schleife läuft solange durch, bis  $size  den Wert 0 hat. Da  $size  auf jeden Fall größer als 0 sein muss und in jedem Durchgang um eins verringert wird, ist das irgendwann der Fall. Mit der Abbruchbedingung verhindern wir auch, dass die Schleife ausgeführt wird, wenn die Tracklist leer ist.

Es ist Zeit. Zeit um die Urväter, die Auditoren, die Götter anzurufen. Zeit eine Zufallszahl zu erzeugen. Einer Zufallszahl innerhalb eines Intervalls errechnet man am Besten mithilfe von Modulo. Modulo ist der Name der in der Unterstufe als Restwertdivision bekannten Berechnung.

Kleine Beispiele:  10 / 3 = 3 . Rest:  1 13 / 5 = 2 . Rest:  3 . Uns interessiert immer der Restwert. Dieser ist auf jeden Fall immer  um  1  kleiner als der Divisor (für diejenigen, die schon lange aus der Schule draußen sind 🙂 ).

Bash scheint keine built-in Funktion für Modulo zu haben, dafür gibt es ein paar andere Möglichkeiten eine solche Berechnung durchzuführen. Am ansprechendsten habe ich  let  gefunden:
let "rand = $RANDOM % $size + 1"

In der Variable  $rand  wird das Ergebnis der Berechnung festgehalten.  $size  ist natürlich der Begrenzer.  $RANDOM  ist eine Umgebungsvariable, welche bei jedem Aufruf einen neuen zufälligen Integer (Ganzzahl) ausgibt. Da diese Berechnung bei einer Tracklist-Größe von z.B.  6  den Wertebereich von  0-5  abdeckt, wir aber kein  0 tes Lied, dafür aber ein  6 tes, zählen wir zum Ergebnis einfach  1  dazu.

Den damit errechneten Track erhalten so:
track= " $( head  $TRACK_FILE  -n$rand | tail -n1)

Hier passiert ein bisschen was:
head  -n$rand

filtert die ersten  $rand  Zeilen aus der Liste. Ist  $rand also  2 , dann erhalten wir durch  head   die ersten  2  Zeilen. Dadurch ist der gesuchte Track immer an letzter Stelle in der Liste. Diese letzte Stelle können wir uns nun per  tail  holen:
tail  -n1

Hier holt uns  tail  die  1 ste Zeile von hinten. Damit haben wird unseren Track. Dieser wird nun in die Variable  $track  gespeichert.

Jetzt wird es Zeit den Track abzuspielen:
play " $track "

Natürlich kann man auch das Ausrechnen des Tracks und den Aufruf von  play  in einer Zeile unterbringen. Ich bin jedoch eher für lesbaren Code als für „Zeileneffizienz“.

Zum Abschluss muss noch eine neue Tracklist angelegt werden, ohne den gerade abgespielten Track. Dazu holen wir uns zuerst alle Tracks vor dem Aktuellen:
head " $TRACK_FILE " -n$[ $rand-1 ] > " $TEMP_FILE "

und die Tracks danach:
tail " $TRACK_FILE " -n$[ $size-$rand ] >> " $TEMP_FILE "

Mit
$rand-1

holen wir uns alle Tracks vor dem Aktuellen und sparen diesen aus. Hingegen
$size$rand

liefert uns alle Tracks nach dem Aktuellen. Damit erhalten wir wieder dieselbe Liste wie zuvor, nur ohne dem letzten Track. Man beachte die Pfeile, welche das Ergebnis jeweils nach $TEMP_FILE schicken. In der ersten Zeile befindet sich nur ein Pfeil. Das bedeutet, dass die Datei überschrieben und neu befüllt wird. Es wird also nur das gespeichert, was in dieser Zeile herauskommt. In der zweiten Zeile hingegen sind zwei Pfeile. Das bedeutet, das das Ergebnis an die Datei angehängt wird. Der Inhalt der Datei wird also nicht über-, sondern der neue Inhalt dahinter in die Datei geschrieben.

Schließlich müssen wir die neue Tracklist noch über die alte schreiben:
mv " $TEMP_FILE " " $TRACK_FILE "

Nach der Schleife selbst rufen wir noch einmal quit auf, damit das Skript sich auch ohne Abbruch durch den Nutzer sauber beendet.

Das vollständige Skript

#!/bin/bash

function quit {
     rm  -f $TRACK_FILE $TEMP_FILE
     exit  1
}

trap  quit SIGINT SIGTERM

TRACK_FILE=/tmp/.tracklist.playr
TEMP_FILE=/tmp/.temp.playr

rm  -f $TRACK_FILE $TEMP_FILE

for  file  in  $@ do
     echo   $file
done > $TRACK_FILE

size=$( cat  „$TRACK_FILE“ |  wc  -l)

while [[  $size -gt 0 ]]; do
     let  „rand =  $RANDOM  %  $size  + 1″
    
track= " $( head  $TRACK_FILE  -n$rand  tail  -n1)
     play  $track
     head   $TRACK_FILE  -n$[ $rand-1 ] >  $TEMP_FILE
     tail   $TRACK_FILE  -n$[ $size$rand ] >>  $TEMP_FILE
     mv   $TEMP_FILE “ „ $TRACK_FILE
    ((size–))
done

quit

Zum Schluss

Ich bin vergleichsweise ein Anfänger in Shell-Script. Ich habe einige Erfahrung in C++ und es kann daher sein, dass ich versuche Konzepte daraus in Bash umzusetzen, obwohl es wesentlich einfachere Lösungen gibt. Wenn du eine bessere Lösung weißt, schreibe sie doch bitte in die Kommentare.

Lizenz

Das Skript steht unter der GPLv3.

Es dürfte sich bereits herum gesprochen haben, es gibt einen weiteren GNOME Fork. Nach Mate und Cinnamon gibt es nun auch Consort und ob dieser Desktop ein Gewinn ist, ist fraglich. In letzter Zeit hört man immer wieder Stimmen, die da rufen das diese Forks der Tod des Linux-Desktop sein werden. Man solle doch besser die Ressourcen bündeln. Das ist für mich totaler Schwachsinn, die Forks und die Vielfalt nicht nur unter den Linux-Desktops sind der Motor, der die Entwicklung vorantreibt. Wenn man sich einmal rückbesinnt, gäbe es überhaupt kein GNOME, wenn Miguel de Icaza nicht vollkommen anderer Meinung gewesen wäre als Matthias Ettrich. Eine andere Meinung zu haben und diese auch in Code umzusetzen, ist nicht nur Tradition sondern auch notwendig.

Allerdings macht ein Fork auch nicht immer Sinn, wie am Beispiel von Consort. Dieser kam zustande, weil der GNOME-Fallbackmodus demnächst wegfällt, mit dem man auch ohne 3D-Beschleunigung einen GNOME-Desktop einsetzen konnte. Sicher ein nützliches Feature, schliesslich gibt es auf unserem Globus immer noch Rechner, die derartiges nicht besitzen. Wenn aber die Arbeit am Fallbackmodus eingestellt wurde, weil sich keiner um den Code gekümmert hat, muss man sich fragen ob ein Fork Sinn macht.

Wenn man einen Blick über die Forks und Newcomer der Linuxdesktops wirft, stellt man fest, dass diese neuerdings aus dem Hause von Distributionen kommen. Scheinbar denken einige Distributionen, sie benötigen eine Alleinstellungsmerkmal Desktop Environment und das fängt bei Ubuntus Unity an. Das bisher von keiner anderen Distribution eingesetzt wird (werden kann). Dieses Mal ist die Distribution Solu OS die treibende Kraft und wenn man die Seiten dieses Projektes aufsucht und nur einen Blick auf die Seite mit den Namen der Entwickler wirft, kann man sich fragen ob die paar Hanseln, denn die Kraft für ein “ganzes” Desktop Environment aufbringen werden. Ich bin ja wirklich ein Liebhaber der Vielfalt aber an der Stelle frage ich mich wirklich ob es Sinn macht. Falls es noch andere Gründe, für einen Fork gegeben hat (die ich mir durchaus vorstellen kann) sollte man diese auch offen benennen. So jedenfalls bekommt das Ganze den faden Beigeschmack eines “Marketingforks”.

20. Januar 2013

Besser spät als nie; Eine neue Entwicklerversion ist da, und das schon seit Freitag (also Donnerstag Abend nach Ostküstenzeit).

Die Zahl der Commits hält sich im Rahmen. Die bemerkenswerteste Änderung ist ein neu aufgenommener Treiber für einen WLAN-Chipsatz des Chipdesigners Wilocity der (als PCI-Gerät) auch Wireles PCIe (wPCIe) zur Verfügung stellen kann. wPCIe soll auf Basis einer 60GHz-Funktechnik (WLAN nutzt Frequenzen im 2,4GHz- und 5GHz-Segment) Geräte an den Rechner anbinden und dabei Datenübertragungsraten im Gigabit-Bereich ermöglichen.

Die kleine Statistik:

Commits geänderte Dateien eingefügte Zeilen gelöschte Zeilen Datum Tage *
3.8-rc1 11 737 10 482 554 790 340 624 21.12.2012 11
3.8-rc2 131 195 1935 1290 02.01.2013 12
3.8-rc3 379 1405 7995 7845 10.01.2013 7
3.8-rc4 357 355 9997 2258 17.01.2013 7

* Tage seit dem letzten rc/Release

Quelle: Linux Kernel Mailing List

Vergangene Woche hat Mozilla die erste Aurora-Version von Firefox 20 zum Download freigegeben. Was genau wir vom neuen Firefox erwarten können, wird an dieser Stelle beschrieben.

Privater Modus auf Fensterbasis

Mit dem Privaten Modus bietet Firefox ein Feature, welches es erlaubt, im Internet zu surfen, ohne dass dabei eine Chronik angelegt wird. Oftmals wird dieser scherzhaft auch als Porno-Modus bezeichnet. Über das Menü kann jederzeit zwischen Privatem und normalen Modus hin- und hergewechselt werden, dabei ist es bislang aber nicht möglich, den normalen sowie den Privaten Modus parallel offen zu haben. Das ändert sich mit Firefox 20. Ab dieser Version gibt es einen Privaten Modus auf Fensterbasis; das heißt, es können beliebig viele private wie auch nicht private Fenster gleichzeitig offen sein. Per Kontextmenü ist es möglich, bestimmte Links in einem neuen Privaten Fenster zu öffnen. Gleichzeitig sollte es nun optisch ein wenig klarer ersichtlich sein, wenn sich ein Fenster im Privaten Modus befindet.

Neues Download-Panel und Download-Ansicht in der Bibliothek

Mit Version 20 erhält Firefox nun standardmäßig eine neue Ansicht für Downloads, welche optional bereits seit einigen Firefox-Versionen aktiviert werden kann und in den letzten Monaten viele Verbesserungen erhalten hat. So zieht im Vergleich zu Firefox 19 der Download-Button in der Symbolleiste nach Abschluss der Downloads durch eine Animation kurz die Aufmerksamkeit auf sich und der bisherige Eintrag aus dem Kontextmenü, um einen Download aus dem Panel zu entfernen, wurde durch die Möglichkeit ersetzt, den Download aus der Download-Chronik zu entfernen.

Neu ist auch die überarbeitete Download-Ansicht in der Bibliothek, welche sich ab Firefox 20 anstelle des bisherigen Download-Fensters bei Klick auf den Download-Eintrag im Menü öffnet. Dieses kann alternativ auch durch Eingabe von about:downloads in der Adressleiste in einem neuen Tab geöffnet werden. Diese Ansicht in der Bibliothek ist als Ersatz für das bisherige Download-Fenster zu sehen. Das Panel hingegen stellt nie mehr als drei Downloads dar, weitere aktive Downloads werden in der Form “+12 weitere Downloads” angezeigt. Nach einem Neustart von Firefox ist das Panel außerdem leer. Das Panel ist daher viel mehr als eine aktuelle Status-Anzeige zu verstehen.

Verbesserter Umgang mit Plugins…

Firefox bietet seit einigen Versionen optional ein Click-to-Play-Feature, welches es erlaubt, Plugins standardmäßig zu deaktivieren und erst bei Bedarf zu laden. Hierfür muss über about:config der Schalter plugins.click_to_play auf true gesetzt werden. Außerdem setzt Mozilla immer wieder bestimmte Versionen von Plugins per Blocklist auf Click-to-Play, welche die Sicherheit oder Stabilität des Browsers gefährden. Ab Firefox 20 kann die Entscheidung bei verschiedenen Plugins auf einer Webseite für jedes Plugin separat getroffen werden.

Eine weitere Neuererung ist Nutzern von Windows vorbehalten. Derzeit ist es so, dass wenn ein Plugin wie Flash aufhört zu reagieren, auch Firefox aufhört zu reagieren und 45 Sekunden lang wartet, ehe ein Beenden des Plugins erzwungen wird. Ab Firefox 20 zeigt Mozilla nach einer kurzen Dauer einen Dialog an, welcher den Benutzer darüber aufklärt, dass das Plugin hängengeblieben ist, und nachfragt, ob der Plugin-Prozess fortgesetzt oder beendet werden soll. Die Dauer kann via about:config konfiguriert werden, wobei dom.ipc.plugins.hangUITimeoutSecs für die Anzahl der Sekunden steht, welche Firefox warten soll, bis der Dialog angezeigt wird. Der Standard steht hier zur Zeit bei fünf Sekunden, wird aller Voraussicht nach aber noch erhöht werden. Ein Wert von 0 deaktiviert das Feature komplett. Weiterhin gibt es dom.ipc.plugins.timeoutSecs zur Festlegung der Anzahl an Sekunden, bis das Plugin automatisch beendet werden soll. Der Standard liegt weiter bei 45 Sekunden, beginnt aber erst ab Anzeige des Dialogs zu zählen. Schließlich legt dom.ipc.plugins.hangUIMinDisplaySecs die Anzahl an Sekunden fest, welche der Dialog mindestens angezeigt werden soll.

Bildquelle und about:config-Schalter via: ghacks.net

… aber auch ohne Plugins: Unterstützung für H.264, MP3 & AAC

Aber auch die Nutzung von Firefox ohne Plugins wird verbessert. So unterstützt Firefox ab Version 20 H.264, MP3 sowie AAC in <video>- und <audio>-Tags, ohne dass ein Plugin hierfür installiert sein muss. Auch diese Neuerung ist zunächst nur für Windows-Nutzer und das auch erst ab Vista oder höher, da Firefox die auf dem System vorhandenen Codecs via Windows Media Foundation nutzt. Hierfür muss der Schalter media.windows-media.foundation.enabled via about:config auf true gesetzt werden. Die Unterstützung für H.264, MP3 und AAC auf Mac OS X und Linux wird in den kommenden Monaten folgen.

Neues Layout für Entwickler-Werkzeuge & JavaScript-Profiler

In den letzten Monaten hat Firefox viele neue Werkzeuge für Webentwickler erhalten. Das Problem hiermit ist bislang, dass diese ziemlich viel Platz wegnehmen und kaum Platz für die Webseite selber bleibt. Aus diesem Grund haben die Entwickler-Werkzeuge ein neues Layout erhalten und befinden sich nun alle innerhalb einer Toolbox. Diese Toolbox kann auch vom unteren Fensterrand losgelöst und als eigenständiges Fenster geöffnet werden.

Neben kleineren Verbesserungen an den Entwickler-Werkzeugen wie ein besseres Filtern von Scripts im Debugger erhält Firefox 20 außerdem wieder ein neues Entwickler-Werkzeug: Einen JavaScript-Profiler, welcher dabei helfen soll, die JavaScript-Performance von Webanwendungen zu verbessern.

Verbesserte Unterstützung von Webstandards

Auch die Unterstützung von Webstandards wurde mit Firefox 20 weiter ausgebaut. So ist unter anderem das CSS3-Feature Flexbox nun standardmäßig aktiviert, Firefox unterstützt das HTML5 Undo-Feature, das HTML5 download-Attribut, das date-Attribut in <input>-Tags sowie playbackRate in <video>- und <audio>-Tags zur Bestimmung des Abspieltempos von Mediainhalten.

… einschließlich Verbesserungen WebRTC getUserMedia & SocialAPI

WebRTC soll Voice over IP, Chat und auch Videotelefonie über den Browser ermöglichen – ganz ohne Plugin. Unter anderem Mozilla, Google und Opera arbeiten an Implementierungen, WebRTC ist außerdem auf dem Weg, ein W3C-Standard zu werden. Mozilla unterstützt WebRTC seit Firefox 18, der getUserMedia-Teil daraus ist ab Firefox 20 standardmäßig aktiviert. Außerdem wurde die Zugriffs-Anfrage überarbeitet und die Adressleiste zeigt ein entsprechendes Symbol, wenn die Kamera und / oder das Mikrophon auf dieser Seite den Zugriff darauf erlaubt bekommen hat. Desweiteren setzt Firefox nun in die Hauptsymbolleiste einen Button, sobald die Kamera und / oder das Mikrophon via getUserMedia in irgendeinem der offenen Tabs in Verwendung ist, und erlaubt hierüber das Wechseln zum entsprechenden Tabs oder zu den entsprechenden Tabs bei mehr als einer Seite.

Das SocialAPI-Feature von Firefox erhält außerdem eine erste einfache Unterstützung für die Nutzung mehrerer Social Provider.

Telemetrie & Firefox Health Report (FHR)

Firefox besitzt mit dem Telemetrie-Feature eine Mess-Infrastruktur, um diverse Leistungsdaten während des Browserbetriebs anonynm an die Mozilla-Server zu übertragen. Die Nutzung dieses Features ist optional und standardmäßig deaktiviert. Diesbezüglich ergibt sich mit Firefox 20 eine Änderung für Nightly- und Aurora-Nutzer. Hier wird Telemetrie ab sofort standardmäßig aktiviert sein, da Nutzer dieser Versionen nach Meinung von Mozilla durch die Nutzung von Entwicklerversionen naturgemäß eine andere Ebene des Engagements in Bezug auf Mozilla akzeptieren und diese Versionen eine deutlich kleinere Nutzerbasis haben. Bei den finalen wie auch Beta-Versionen von Firefox bleibt Telemetrie wie gehabt standardmäßig deaktiviert und kann über Einstellungen > Erweitert > Allgemein > Performanz-Daten aktiviert werden. Die gesammelten Daten lassen sich jederzeit über about:telemetry ansehen und auf metrics.mozilla.org lassen sich die aggregierten Daten aller Nutzer betrachten.

Mit Firefox 20 wird außerdem ein weiteres Feature zur Erhebung von Leistungsdaten in Firefox integriert. Dieses ist noch nicht Bestandteil der ersten Aurora-Version, wird im Laufe der nächsten Wochen aber dazukommen. Beim sogenannten Firefox Health Report (FHR) werden Daten zur Computer-Konfiguration, individuellen Anpassung durch Erweiterungen, Performance sowie zum Firefox-Profil und zur Firefox-Nutzung erfasst, wie das Alter des Benutzerprofils, die Länge der Browsersitzung, die Anzahl der Abstürze oder auch die Anzahl der Seiten in der Chronik. Auch dieses Feature ist optional, standardmäßig dabei aktiviert. Die in diesem Zusammenhang ermittelten Daten können über about:healthreport oder über Hilfe > Firefox Health Report eingesehen werden.

Sonstige Neuerungen

Firefox erhält auch mit diesem Release wieder diverse Plattform-Fixes und Performance-Verbesserungen, unter anderem in der Zeit, welche Firefox zum Beenden benötigt, oder beim Laden von Webseiten. Beim Hinzufügen von Lesezeichen wird bei nicht vorhandener Internet-Verbindung oder im Offline-Modus nicht länger “Seiten-Ladefehler”, sondern der Seitentitel aus der Chronik, falls vorhanden, als Titel für das Lesezeichen verwendet. Außerdem wurden weitere Grafiken der Benutzeroberfläche für Apples HiDPI-Bildschirme (Retina) optimiert.

Download & Zeitplan

Die aktuelle Aurora-Version kann hier heruntergeladen werden. Mit der ersten Beta-Version von Firefox 20 kann gegen den 21. Februar 2013 gerechnet werden, die finale Version soll dann am 02. April 2013 erscheinen.

Artikel als Audio anhören

Für alle, die schon so richtig Lust auf Ubuntu Phone haben und nicht mehr warten können, hier zwei Videos wie ihr aus eurem Android-Handy ein (fast) waschechtes Ubuntu Phone machtwink. Leider braucht ihr dafür ein paar kostenpflichtige Apps, die euch zusammen um die 20 Euro kosten.

Hands On: Android mit Ubuntu Phone Thema

Tutorial: Wie man sein Android-Handy wie Ubuntu Phone aussehen lässt.

via Android-Authority und Giga

Forken will wohlüberlegt sein. Lieber die eigenen Ambitionen mal zurückschrauben und sich lieber bestehenden Projekten anschließen, damit der Linux-Desktop nicht vollends zerfleddert. Diesen Appell richtet Thorsten Leemhuis gerade an alle im Open-Source-Bereich tätigen Hobby- und Profiprogrammierer. Das klingt vernünftig und entspricht vordergründig dem, was viele Anwender oftmals denken, wenn sie davon hören, dass der 5. Fork gerade zum sechsten Mal aufgegabelt wird.

Schaut man jedoch mal, was passiert bzw. nicht passiert wäre, wenn Programmierer in der Vergangenheit stets nur bei Bestehendem mitgemischt hätten statt Projekte zu forken oder Parallelentwicklungen zu beginnen, dann kommt man doch ins Grübeln.

Hätte Gnome bei KDE mitgemacht, gäbe es heute nur KDE. Hätte Olivier Fourdan bei FVWM mitgemacht, gäbe es jetzt kein XFCE. Hätte PcMan bei XFCE/Thunar mitgemacht, gäbe es heute kein LXDE. Hätten alle bei Blackbox mitentwickelt, wären weder Fluxbox noch Openbox entstanden. Hätten sich alle mit Gnome 3 abgefunden, gäbe es weder Cinnamon noch Mate oder Consort DE. Hätte Mark Shuttleworth nur Debian gesponsert, gäbe es kein Ubuntu. Ohne Ubuntu keine Ubuntu-Ableger. Nicht mal Ubuntuusers.

Viele Entwicklungen entwickeln sich naturgemäß nicht weiter oder erfahren keine große Resonanz. Aber andere Projekte nehmen ihren Lauf, werden zu etwas Größerem als ursprünglich geplant oder übertreffen sogar den ursprünglich Geforkten um Längen in Reichweite oder Bekanntheit. Dabei muss man nicht einmal an Ubuntu denken. Bestes Beispiel: XFCE. Als simples Panel als Ergänzung zu FVWM begonnen, ist es heute ein kompletter Desktop. LXDE wiederum besteht sogar fast zu 100% aus geforkten Anwendungen, die ihrerseits wiederum aus Forks (Openbox statt Blackbox etwa) bestehen. Hätten alle Entwickler stets immer nur bei bestehenden Projekten angeklopft und sich eingebracht, wäre der Linux-Desktop als solcher womöglich tatsächlich weiter, aber da dies auch immer mit einer Einigung auf einen gemeinsamen Nenner einherginge, wäre die Linuxlandschaft heute auch deutlich ärmer an Möglichkeiten. Diese Vielfalt, wie sie bei Linux und Open Source im Allgemeinen möglich ist und auch tatsächlich existiert, wäre nie entstanden.

Aktuell kommt nun die Kritik am 3. Gnome-Fork, an Consort. Doch was ist, wenn Cinnamon und Mate irgendwann in einer Sackgasse enden und Consort sich als der zukunftsträchtigste Weg erweist? Dann wäre eine potentielle Erfolgsstory schon jetzt im Keim erstickt worden. Natürlich liegt es nahe zu sagen, „macht doch lieber bei Mate mit“, doch die Gründe der Macher, es eben nicht zu tun, sind durchaus plausibel: Cinnamon baut auf aktueller Gnome-Technik auf, um Gnome 2 nur nachzubilden, Mate hingegen bleibt bei der älteren Technologie stehen und versucht sie zu erhalten. Consort wiederum will wieder einen Mittelweg gehen. Es nimmt nur die Kernkomponenten des alten Gnome 2 bzw. den Fallback-Mode von Gnome 3, also Fenstermanager, Dateimanager und Panel, und konzentriert sich auf die Weiterentwicklung dieser Module.

Damit wird auf Bewährtes aufgebaut, dies aber in realistischerem Umfang mit einer besseren Zukunftsprognose, als Mate dies derzeit verspricht. Selbst wenn es diese Gründe nicht gäbe – wenn es dieser erneuten Abspaltung irgendwann gelingt, zu einem richtig tollen Desktop zu werden, dann hat sich die abermalige Abspaltung absolut gelohnt. Wenn es nicht gelingt, weil die Manpower fehlt, dann ist das noch längst keine Garantie, dass die Ressourcen in einem Schwesterprojekt besser investiert gewesen wären. Was nicht heißt, dass auseinandergedriftete Projekte zu einem späteren Zeitpunkt auch wieder zusammenfinden können, wie beispielsweise Compiz Fusion/Beryl und Compiz gezeigt haben.

Was durchaus stimmt, ist, dass es für die Anwender schwieriger wird, sich in dem Geflecht von Projekten, Abspaltungen und ihren Anwendungen noch zurechtzufinden. Schon jetzt muss sich ein Linux-Anwender nicht nur für eine von Dutzenden Distributionen entscheiden, sondern auch, ob er diese lieber mit KDE, Gnome, XFCE, Cinnamon, LXDE oder sonstwas betreiben möchte. Und auch bei den einzelnen Programmen hört es nicht auf: Open Office oder Libre Office? Es wird zunehmend verwirrender, je weiter sich eigentlich verwandte Programme auseinanderentwickeln. Aber es ist eine Verwirrung, die nur dann zuschlägt, wenn man sie auch in Kauf nehmen will. Jemand, der sich für Hintergründe nicht interessiert, nimmt einfach das Linux, also etwa ein Ubuntu – und damit das, was ihm der jeweilige „Marktführer“ vorsetzt. Das ist die traditionelle Aufgabe einer Distribution. Wer dann damit nicht zufrieden ist, sucht sich Alternativen – und die hat er dann haufenweise, eben gerade dank der Fork-Willigkeit der Entwicklergemeinschaft.

Dass Entwickler primär ihre Potentiale bündeln, um an etwas großem Ganzen gemeinsam zu entwickeln, das wird ein frommer Wunsch bleiben. Weil es ein theoretischer Wunsch ist, ein Gedankenspiel. Freie Menschen streben mitunter danach, sich frei zu verwirklichen, ihren Ideen ohne Einschränkungen nachgehen zu können, Einschränkungen, die durch die Vorstellungen anderer (in einem gemeinsamen Projekt) durchaus mehr oder weniger hinderlich sein können. Auf diese Weise verderben nicht viele Köche den Brei, sondern jeder kann Küchenchef sein und sein eigenes Süppchen kochen. Für den Anwender bedeutet dies im Ergebnis, sich aus einem reichhaltigen Buffet das für ihn Wohlschmeckendste heraussuchen zu können, statt den zwar größeren, aber auch faderen Einheitsbrei schlucken zu müssen. Wer könnte ernsthaft etwas dagegen einwenden wollen?

Firefox kann in einer Vielzahl von Sprachen heruntergeladen werden. Auch ist es dank Sprachpaketen möglich, zwischen verschiedenen Sprachen zu wechseln. Ab sofort gibt es selbstaktualisierende Sprachpakete auf addons.mozilla.org (AMO).

Nutzer, welche Firefox in mehr als einer Sprache nutzen möchten, können sich Sprachpakete für Firefox herunterladen und damit die Sprache der Benutzeroberfläche von Firefox ändern, ohne Firefox parallel in weiteren Sprachen installieren zu müssen. Bislang war das Problem hiermit, dass diese für die Ersteller relativ schwierig auf AMO aktuell zu halten waren, da sie jedes mal aktualisiert werden mussten, wenn eine neue Firefox-Version verfügbar war. Auch kann die Zeit bis zur Veröffentlichung länger dauern, weil die meisten Add-on Reviewer nicht wissen, wie sie Sprachpakete zu testen haben.

Ab sofort gibt es auf AMO selbstaktualisierende Sprachpakete. Wenige Tage vor Veröffentlichung einer neuen Firefox-Version werden die Sprachpakete, welche während dem Erstellungsprozess von Firefox generiert werden, automatisch auf AMO übertragen und dort gelistet, womit es keine Kompatibilitätsprobleme bei Sprachpaketen für Nutzer von Firefox geben sollte. Außerdem bedeutet das, dass auf AMO einige Sprachpakete zum ersten mal gelistet werden, welche hier bislang nicht verfügbar waren, oder andere nach Jahren der Inaktivität wiederbelebt werden.

Wie kann die Sprache der Benutzeroberfläche von Firefox geändert werden?

1. Gewünschtes Sprachpaket auf AMO suchen und installieren
2. about:config aufrufen, Warn-Hinweis bestätigen und nach general.useragent.locale suchen
3. Den Wert dieses Schalters per Doppelklick auf die entsprechende Kurzbezeichnung ändern.*
4. Firefox neu starten

*) Eine Möglichkeit ist es, auf der entsprechenden AMO-Seite unten auf Versionshinweise und dann auf Quelltext anzeigen zu klicken. Öffnet man dort per Klick auf das [+]-Symbol das chrome-Verzeichnis, erscheint hier die entsprechende Kurzbezeichnung, z.B. en-GB für britisches Englisch. Eine andere Möglichkeit wäre es, sich hier durch die Bezeichnungen zu suchen.

Wem das zu umständlich ist, der kann das auch per Erweiterung lösen. Hierfür kommen beispielsweise Locale Switcher oder Quick Locale Switcher in Frage, welche Firefox um ein Menü zum Wechseln der Sprache ergänzen.

Artikel als Audio anhören

19. Januar 2013

Vielleicht habe ich schon mal erwähnt, das ich beruflich viel mit Solaris zu tun habe? Nein? Na, macht nichts. Solaris hat im professionellen Umfeld einen guten Ruf. Nicht zu unrecht, wie ich finde. Beispielsweise ist das Filesystem ZFS sehr fortschrittlich, es hat viele features, die Linux Dateisystemen noch fehlt. ZFS selbst kann man nur mit Klimmzügen ala fuse unter Linux verwenden, nimmt es nicht Wunder, das Open Solaris mit seinem ZFS seine treue Fan Gemeinde hat. Durch die Unruhen, die seinerzeit durch den Kauf von sun durch Oracle losbrachen, wurde es stiller um Open Solaris. Nun das heißt nich, es gebe es nicht mehr. Gerade gestern bin ich über OpenIndiana gefallen und habe mir die Live Desktop Version Build 151a7 von http://openindiana.org geladen und auf einen USB Stick mit usb Header kopiert. Die Anleitung dazu ist auf der Homepage verlinkt, der Übersicht halber hier der korrekte dd Aufruf.

cat 1G.header oi-dev-151a7-live-x86.usb |dd  bs=1024k of=/dev/sdc

OpenIndiana ist ein OpenSolaris mit einem Kernel von der Non-Profit Firma Illumos. Die Screenshots stammen vom ersten Ausprobieren auf meinem Lenovo T500. Was ich schon sehr erstaunlich finde, das so gut wie jede Hardwarekomponente ohne Probleme erkannt worden ist.Sogar die essentiellen Fn Tasten für Bildschirmhelligkeit und Leselampe gehen sofort. Ich habe jetzt nicht probiert, ob sogar suspend to Disk und to Ram gehen würde, ich denke, das ist auch unerheblich. Noch ist der vom Oktober 12 stammende Build nicht als Stable gekennzeichnet, macht aber einen sehr guten Eindruck. Zum Beispiel gefällt, dass das abgebildete Gerätetreiber Dienstprogramm eine komplette Hilfebeschreibung hat, also nicht nur leere Texthülsen mit allgemeinem Blabla.

Ich werde versuchen herauszubekommen, wie aktiv die Entwicklung ist, denn das erklärte Ziel von OpenIndiana ist die stable Version "Production ready" zu machen. Mit Security updates usw. Ich spiele mit dem Gedanken unseren Rootserver auf OpenIndiana umzustellen.

Da ein neuer Rootserver demnächst eh geplant ist, käme es auf den Versuch an.

Haben die Zockertownleser bereits Erfahrungen mit OpenSolaris Derivaten?




In einem meiner letzten Artikel habe ich bereits angedeutet, dass ich mittlerweile einen Raspberry Pi als Media-PC im Schlafzimmer produktiv im Einsatz habe.

Natürlich sollte sich der Raspberry Pi mit einer Logitech Harmony steuern lassen – typisch. ;-) Auf dem Raspberry Pi lief zum Zeitpunkt der HowTo RaspBMC RC3 mit dem Linux-Kernel …

uname -r
3.6.11

… und der LIRC Version

ircd -v
lircd 0.9.1-git

Welche RC6 Infrarot-Empfänger funktionieren mit dem Raspberry Pi?

Da ich recht gute Kontakte zum CoHauS Shop habe, habe ich mir von Tino mal 3 beliebte RC6 IR-Empfänger schicken lassen - IR605Q (links), IR606Q (mitte) und OVU411000 (rechts).

RC6 IR-Empfänger - IR605Q + IR606Q + OVU411000

Alle 3 Empfänger werden von RaspBMC anstandslos, mit dem Modul mceusb, erkannt.

RC6 Infrarot Empfänger, Modell IR605Q

cat /proc/bus/input/devices
I: Bus=0003 Vendor=147a Product=e03e Version=1101
N: Name="Media Center Ed. eHome Infrared Remote Transceiver (147a:e03e)"
...
N: Name="MCE IR Keyboard/Mouse (mceusb)"

RC6 Infrarot Empfänger, Modell IR606Q

cat /proc/bus/input/devices
I: Bus=0003 Vendor=147a Product=e042 Version=1101
N: Name="Media Center Ed. eHome Infrared Remote Transceiver (147a:e042)"
...
N: Name="MCE IR Keyboard/Mouse (mceusb)"

Philips RC6 Infrarot Empfänger, Modell OVU411000

cat /proc/bus/input/devices
I: Bus=0003 Vendor=0471 Product=060d Version=0101
N: Name="Media Center Ed. eHome Infrared Remote Transceiver (0471:060d)"
...
N: Name="MCE IR Keyboard/Mouse (mceusb)"

Die Logitech Harmony funktioniert nun teilweise schon in XBMC, nicht alles, aber einiges – darum geht es hier jetzt auch noch weiter. ;-)

Werden Tasten der Logitech Harmony (200) mit Windows Media Center SE Profil erkannt?

Ja, per SSH auf den Raspberry Pi einloggen, irw eingeben und fröhlich auf den Tasten herumdrücken.

166 0 KEY_INFO devinput
166 0 KEY_INFO_UP devinput
18e 0 KEY_RED devinput
18e 0 KEY_RED_UP devinput
67 0 KEY_UP devinput
67 0 KEY_UP_UP devinput

Der ein oder andere von euch wird sich jetzt denken: “What the fuck? Das ist doch sehr wahrscheinlich …

Worauf ich in diesen Abschnitt eigentlich hinaus will, ist, dass die Fernbedienung, mit den vielen von Sam Nazarko hinzugefügten LIRC-Frequenzdateien (*lircd.conf), damit möglichst viele FBs von RaspBMC out-of-the-box erkannt werden, als devinput (Fernbedienungsname) von LIRC erkannt wird.

Wie passt man nun Nico’s alte Lircmap.xml für RaspBMC an, so dass alle Tasten funktionieren?

Klar sollte sein, dass man auch einfach alle LIRC-Frequenzdateien (*lircd.conf) aus /etc/lirc löschen kann und die altbekannte lircd.conf und Lircmap.xml von mir verwenden kann. Da ich aber so wenig wie möglich an den RaspBMC Standardeinstellungen verändern wollte, um den Konfigurationsaufwand für euch so gering wie möglich zu halten, wollte ich diesen Schritt vermeiden.

So fängt meine alte Lircmap.xml an:

<!--                              Logitech Harmony                                -->
<!--                          loggn.de - Nico Hartung                             -->
<!--                            http://www.loggn.de/                              -->
<!--                                                                              -->
<lircmap>
    <remote device="mceusb">
        <!-- no Display -->
        <power>KEY_POWER</power>
        <teletext>Teletext</teletext>

In der gelb markierten Zeile seht ihr nun, warum mir der Fernbedienungsname vorhin so wichtig war. Diese Lircmap.xml würde von XBMC nur verwendet werden, wenn der LIRC-Fernbedienungsname mceusb wäre. Damit die Lircmap.xml bei dem Fernbedienungsnamen mceusb und devinput verwendet wird, muss eine zusätzliche Zeile in die Lircmap.xml hinzugefügt werden.

<!--                              Logitech Harmony                                -->
<!--                          loggn.de - Nico Hartung                             -->
<!--                            http://www.loggn.de/                              -->
<!--                                                                              -->
<lircmap>
    <remote device="mceusb">
    <altname>devinput</altname>
        <!-- no Display -->
        <power>KEY_POWER</power>
        <teletext>Teletext</teletext>

Die Zeile mit altname steht hier für einen Alternativnamen, neben mceusb.

Bei Pastebin habe ich meine aktuelle Lircmap.xml gepostet, diese könnt ihr gerne kopieren – unter RaspBMC gehört die Lircmap.xml in /home/pi/.xbmc/userdata/.

vi /home/pi/.xbmc/userdata/Lircmap.xml

Der Vollständigkeit halber poste ich euch auch noch meine angepasste Keyboard.xml für XBMC bei Pastebin, diese gehört unter RaspBMC in /home/pi/.xbmc/userdata/keymaps/.

mkdir /home/pi/.xbmc/userdata/keymaps
vi /home/pi/.xbmc/userdata/keymaps/Keyboard.xml

Viel Spaß mit euerem Raspberry Pi und RaspBMC. :mrgreen:


© loggn.de, 2013. | Permalink | 27 Kommentare
_nico bei Twitter und Google+ | loggn.de bei Facebook und Google+

Copyright © 2009-2014
Dieser Feed ist ausschließlich für den privaten Gebrauch bestimmt. Der gewerbliche Gebrauch, in gedruckter oder digitaler Form, ist ohne ausdrückliche Zustimmung des Betreibers nicht erlaubt.

Thunderbird steht ab sofort als Beta-Version 19.0 zum Download bereit. Mozilla wird erst Ende des kommenden Jahres mit Thunderbird 24 wieder einen neuen Feature-Release veröffentlichen, bis dahin wird es aber weiter basierend auf der jeweils aktuellen Gecko-Version parallel zu Firefox neue Beta-Versionen mit diversen Neuerungen geben.

Mit dieser neuen Beta-Version erhält Thunderbird diverse Verbesserungen des Filter-Dialogs, so konnte die Ordnerauswahl für das Verschieben von Nachrichten bei vielen Ordnern bislang unbenutzbar sein, da alle Ordner für alle Accounts untereinander angezeigt wurden, was durch weitere Untermenüs jetzt besser gelöst ist. Die Einstellung “Filter anwenden bei” wurde vereinfacht und die Filter-Suche stellt die Anzeige “X von Y” nun je nachdem, ob es Treffer für die Suche gibt oder nicht, grün oder rot dar.

Bislang hat Thunderbird für Dezimalzahlen, zum Beispiel bei der Angabe von Dateigrößen, immer einen Dezimalpunkt verwendet. In einigen Ländern wie Deutschland wird aber üblicherweise ein Dezimalkomma verwendet. Ab dieser Version verwendet Thunderbird abhängig von der jeweiligen Sprachversion der Anwendung das korrekte Zeichen. Bei Verwendung der Funktion “Allen Antworten” bei einer E-Mail wurden bislang alle “An”-Felder zu “Kopie (CC)”-Feldern. Dieses Verhalten gehört nun der Vergangenheit an, Thunderbird behält jetzt die ursprünglichen Felder bei.

In den Konten-Einstellungen ließen sich einzelne Konten zwar schon immer einklappen, allerdings hat sich Thunderbird dies nicht gemerkt, so dass beim nächsten Öffnen der Konten-Einstellungen wieder alle Konten ausgeklappt waren, was gerade bei Verwendung vieler Konten sehr unübersichtlich sein konnte. Mit Version 19.0 merkt sich Thunderbird den Zustand nun, so dass eingeklappte Konten auch beim nächsten Aufruf der Konten-Einstellungen eingeklappt sind. Beim Überprüfen, ob Thunderbird als Standard-Anwendung festgelegt ist, wurden die bisherigen Buttons für “OK” und “Abbrechen” durch “Als Standard festlegen” und “Integration überspringen” ersetzt, wobei letzterer den Unterschied zum vorherigen “Abbrechen” hat, dass der Zustand der Checkbox für “Bei jedem Start von Thunderbird überprüfen” dabei mitgespeichert wird.

Dazu kommen diverse Verbesserungen des Instant Messaging-Features sowie weitere Plattform-Fixes. Nutzer von Mac OS X müssen ab sofort ohne Unterstützung für das Benachrichtigungssystem Growl auskommen. Dieses soll mittelfristig durch die Mitteilungszentrale von Mac OS X ersetzt werden, zunächst gibt es allerdings keinen Ersatz, außerdem gibt es diese erst ab OS X 10.8.

Download

Die Thunderbird 19.0-Beta kann hier heruntergeladen werden. Nutzer, welche den neusten stabilen Release nutzen möchten, greifen zu Thunderbird 17.0.2, welcher weiter regelmäßige Sicherheits- und Stabilitäts-Aktualisierungen erhält. Umsteiger von Thunderbird 17 auf die aktuelle Beta-Version lesen empfohlenerweise noch folgenden Artikel:

Mozilla veröffentlicht 18.0 Beta

18. Januar 2013

Fast jeder PHP-Programmierer kennt es: Die unübersichtlichen oder 2000 Zeilen große Dateien, und das nur weil man wissen möchte, welche Datenbank Erweiterung das Ziel System nutzt, und diese auch zu nutzen. Eine Lösung ist schon lange da, aber kaum beachtet: PDO.

PDO steht für PHP Data Objects, also PHP Daten Objekte. Okay, dieser Name ist ziemlich irreführend, da man dabei eher an eine Erweiterung denkt, welche User Daten verarbeitet. Dies ist aber nicht der Fall: Denn diese Klasse, die in jedem PHP System seit PHP 5.1 Standardmäßig aktiviert und installiert ist, macht nichts anderes, als eine unabhängige Datenbankerweiterung darzustellen. PDO unterstützt folgende Datenbanksysteme durch Treiber (Die mit dem jeweiligen Datenbanksystem automatisch mitinstalliert werden)

PDO Treiber

Anmerkung: Das in Klammern angegebene sind die Systeme, nicht die Treiber

  • PDO_CUBRID (Cubrid)
  • PDO_DBLIB (FreeTDS/Microsoft SQL Server / Sybase)
  • PDO_FIREBIRD (Firebird/Interbase 6)
  • PDO_IBM (IBM DB2)
  • PDO_INFORMIX (IBM Informix Dynamic Server)
  • PDO_MYSQL (MySQL 3.x/4.x/5.x und neuer, Momentan)
  • PDO_OCI (Oracle Call Interface)
  • PDO_ODBC (ODBC v3,IBM DB2,unixODBC und win32 ODBC)
  • PDO_PGSQL (PostgreSQL)
  • PDO_SQLITE (SQLite 3 und SQLite 2)
  • PDO_SQLSRV (Microsoft SQL Server / SQL Azure)
  • PDO_4D (4D)

…und genau dadurch zeichnet sich PDO noch aus: Es existiert eine große Auswahl an unterstützten Datenbanksystemen für alle gibt es die gleichen Funktionen.

D.h wir müssen nicht mehr zwischen Befehlen jeweiliger Datenbanksysteme wechseln, nein wir können für jede die selbe Syntax verwenden ( Die SQL Syntax ist nicht unabhängig!).

PDO mit dem jeweiligen Datenbanksystem initialisieren

PDO bietet eine sehr komfortable Methode um das gewünschte Datenbanksystem auszuwählen, sie wird direkt in die initialisierende Funktion geschrieben, deren Syntax die folgende ist:

< ?php

$pdoObj = new PDO("Treibername; dbname=Datenbankname;host=Hostadresse", "Username", "Passwort");

 ?>

Treibername“ repräsentiert eine der oben aufgeführten Konstanten ohne den Abschnitt „PDO_“, d.h dass PDO_MYSQL in der Initialisierung einfach nur „mysql“ geschrieben wird.

dbname=Datenbankname“ bedeutet, dass die Datenbank „Datenbankname“ angewählt wird, mit „dbname=“ wird angegeben, dass die darauffolgenden Datenbank (hier „Datenbankname“) benutzt werden soll.

Mit „host=“ wird PDO angewiesen, mit dem Host „Hostname“ zu verbinden, welcher häufig „localhost“ und/oder „127.0.0.1“ lautet.

Datenbank abfragen absetzen und verarbeiten

Abfragen senden zu können, ist das A und O jeder Datenbankerweiterung. Mit PDO ist das genauso wie mit manch anderen Systemen: Man definiert eine Variable, die das Resultat beinhaltet, nimmt das Objekt, das die Verbindung zum Datenbankserver repräsentiert, und über die Resultatsvariable kann die Abfrage weiter verarbeitet werden.

Das ganze sieht ungefähr so aus:

< ?php

//Initialisiere PDO

$pdoObj = new PDO(//s.o);

//Abfrage absetzen und Ergebnis speichern

$result = $pdoObj->query(„SELECT * FROM tabelle WHERE feldname = Vergleich“);

//Ergebnis zu einem assoziativen Array verarbeiten

$tabelle = $result->fetch(PDO::FETCH_ASSOC);

?>

PDO hat eine eigene Result-Klasse, über die das Resultat verarbeitet wird. Dabei muss darauf geachtet werden, dass das Resultat in einer Variable gespeichert wird.

Also:

< ?php

$Objekt = //Siehe oben

$ResultObjekt = $Objekt->query(SQL);

$Verarbeitungsobjekt = $ResultObjekt->Verarbeitungsmethode; //Oder auch PDOStatemant als Klasse

?>

John Doe Fragt: „Okay, ein Query wurde abgesetzt, aber wie verarbeite ich ihn? Ich meine, wie kann ich damit arbeiten?“
Es gibt verschiedene Methoden/Funktionen mit denen man die Abfragen verarbeiten kann, aber die wohl Wichtigste ist „$Verarbeitungsobjekt= $ResultObjekt->fetch(VerarbeitungsStil);“.

„VerarbeitungsStil“ beschreibt eine klasseninterne Konstante für die Art und Weise, wie mit dem Objekt umgegangen werden soll. Die folgenden Konstanten sind die wohl wichtigsten (es sollte darauf geachtet werden, dass diese ausgeschrieben werden).

•PDO::FETCH_ASSOC Gibt ein assoziatives Array zurück, Indizies sind die Bezeichnungen der Tabellen-Spalten (z.b „$Verarbeitungsobjekt[‘Spalten_Name’]“)

•PDO::FETCH_NUM Gibt ein Array mit einem nummerischen Index zurück, sortiert nach der Reihenfolge der Spalten (z.b „$Verarbeitungsobjekt[‘0’]“).

•PDO::FETCH_OBJ Erstellt eine Pseudo-Klasse mit den Spaltennamen als Methoden (z.b „$Verarbeitungsobjekt->spaltenname;“ oder „$Verarbeitungsobjekt->id“ – da dieser Name sehr oft verwendet wird).

In den runden Klammern wurden hilfreiche Beispiele angegeben, welche wohl alles erklären sollten </div>
                <div class= Permalink

Mozilla hat das erste außerplanmäßige Update für Firefox 18 veröffentlicht. Die neue Version trägt die Versionsnummer 18.0.1 und behebt mehrere Probleme. Dabei handelt es sich um ein reines Fehlerbehebungsupdate ohne Sicherheits-Relevanz.

Firefox 18.0.1 behebt mehrere Probleme in Zusammenhang mit der Konfiguration von Proxy-Servern. Außerdem wird mit der neuen Version ein Problem behoben, welches dafür sorgen konnte, dass der Plugin-Container-Prozess unter Mac OS X bei Besuch einer Webseite abstürzt, welche Content mit Hilfe des Unity-Plugins abspielt. Desweiteren wurde die HiDPI-Unterstützung für Apples Retina-Displays bei Verwendung mehrerer Bildschirme deaktiviert, da es hier unter Umständen zur Darstellungsfehlern wie der Anzeige der Vorschläge der Adressleiste auf dem falschen Bildschirm kommen konnte. Sprachpakete, welche durch Hinzufügen in das Anwendungsverzeichnis installiert worden sind, waren in Firefox 18.0 nicht mehr automatisch aktiviert, auch wenn der Add-on Manager dies suggerierte, so dass diese zunächst über den Add-on Manager deaktiviert und dann wieder aktiviert werden mussten, damit sie funktionieren. Dieses Problem wurde mit Firefox 18.0.1 ebenso aus der Welt geschafft. Dazu wurden noch eine mögliche Absturzursache in Zusammenhang mit Websense Endpoint (Top-5-Crasher nach Firefox 18-Release) durch Blockieren der verursachenden DLL-Datei sowie ein Absturz in Zusammenhang mit der Firebug-Erweiterung (Top-1-Crasher unter Linux nach Firefox 18-Release) behoben.

Firefox 18.0.1 steht ab sofort zum Download bereit.

Vor ein paar Tagen hat mich Marius per Mail angeschrieben, dass er Probleme hat, LIRC auf Arch Linux mit systemd zum Laufen zu bekommen. Ach genau, da war ja was! ;-)

/etc/lirc/hardware.conf nun /etc/conf.d/lircd.conf

# Parameters for lirc daemon
#
LIRC_DEVICE="/dev/lirc0"
LIRC_DRIVER="default"
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE="/etc/lirc/lircd_mceusb.conf"

/etc/lirc/lircd.conf nun /etc/lirc/egal_was.conf (jeder beliebige Name)

Bei mir ist diese Datei mittlerweile nur noch ein Link.

ls -lsa /etc/lirc/
0 lrwxrwxrwx  1 root root   48 2012-11-05 23:52 lircd_mceusb.conf -> /usr/share/lirc/mceusb/lircd.conf.mceusb
# Link erstellen
ln -s /usr/share/lirc/mceusb/lircd.conf.mceusb /etc/lirc/lircd_mceusb.conf

lirc.service bearbeiten

Die originale Startdatei von systemd für LIRC muss angepasst werden, da sonst die lircd.conf nicht eingelesen wird. (Bugreport)

vi /usr/lib/systemd/system/lirc.service

[Unit]
Description=Linux Infrared Remote Control

[Service]
EnvironmentFile=/etc/conf.d/lircd.conf
ExecStartPre=/usr/bin/ln -sf /run/lirc/lircd /dev/lircd
ExecStart=/usr/sbin/lircd -d $LIRC_DEVICE -P /run/lirc/lircd.pid -H $LIRC_DRIVER $LIRC_CONFIGFILE
Type=forking
PIDFile=/run/lirc/lircd.pid

[Install]
WantedBy=multi-user.target

StartUp Skript erstellen, ehemals rc.local

Damit nicht der Kernel die Eingaben der Fernbedienung bzw. des IR-Empfängers verarbeitet, sondern LIRC, muss noch ein zusätzlicher Befehl beim Starten ausgeführt werden. Früher haben wir diesen einfach in die rc.local gepackt, diese gibt es nun seit systemd nicht mehr. (man kann auch eine udev Regel erstellen oder es über tmpfiles.d tun, ich finde es so aber “klarer”)

Da der ein oder andere von euch, auch noch mehr Befehle beim Starten ausführen möchte, legen wir eine systemd Startdatei an, die ein Shell-Skript ausführen soll.

vi /etc/systemd/system/my_startup.service

[Unit]
Description=Startup
After=network.target

[Service]
ExecStart=/root/my_startup.sh

[Install]
WantedBy=multi-user.target

Nun das Shell-Skript, welches beim Starten ausgeführt werden soll …

vi /root/my_startup.sh

#!/bin/bash

###################################################
### USB-IR nicht fuer den Knerel, sondern fuer LIRC
echo lirc > /sys/class/rc/rc*/protocols
# ODER
#ir-keytable -p LIRC

…, ausführbar machen und aktivieren.

chmod 700 /root/my_startup.sh
systemctl enable my_startup

So das wars eigentlich schon, so viel hat sich gar nicht geändert – aber man muss es halt wissen. :mrgreen:

Weiterführende Links:
Arch Linux – LIRC Konfiguration mit MCE RC6 IR und Lircmap.xml für XBMC (Logitech Harmony)
HTPC – Media Center – Logitech Harmony reagiert träge unter Windows und Linux


© loggn.de, 2013. | Permalink | 2 Kommentare
_nico bei Twitter und Google+ | loggn.de bei Facebook und Google+

Copyright © 2009-2014
Dieser Feed ist ausschließlich für den privaten Gebrauch bestimmt. Der gewerbliche Gebrauch, in gedruckter oder digitaler Form, ist ohne ausdrückliche Zustimmung des Betreibers nicht erlaubt.

Mozilla möchte im ersten Quartal dieses Jahres eine erste Beta-Version von Minion, einem Sicherheitstest-Framework, veröffentlichen. Dieses soll Webentwicklern helfen, Sicherheitslücken in ihren Web-Anwendungen automatisiert zu finden.

Mit Minion sollen sich unterschiedliche Testwerkzeuge wie Garmr, Zed Attack Proxy und Skipfish per Knopfdruck auf eine Web-Applikation anwenden lassen und die Ergebnisse aller dieser Tools gemeinsam aufbereitet werden. Das Framework soll durch Plugins um entsprechende Tools erweitert werden können. Die verschiedenen Tools müssen nicht alle auf dem selben System laufen, sondern können auch über verschiedene VMs verteilt werden. Weiter plant man unter anderem die Integration von Code-Scans sowie eine Anbindung an Bugtracking-Systeme.

Bildquelle: wiki.mozilla.org

Minion befindet sich noch in einem sehr frühen Entwicklungs-Stadium. Interessierte finden den Quellcode von Minion auf GitHub. Weitere Informationen gibt es im Blog von Yvan Boily, desweiteren kann online ein Vortrag angesehen werden, welcher einen ersten Einblick liefert. (via, via)