Anwendungen
Portal
Forum
Wiki
Ikhaya
Planet
Mehr
Anmelden

17. Mai 2015

Ergebnisse der Umfrage zur virtuellen Ubucon

Permalink Ubucon

Anfang Mai wollten wir seitens der Ubucon-Organisation wissen, ob Ihr auch an einer virtuellen Ubucon teilnehmen würdet. Das heißt, eine Ubucon, die nicht real vor Ort stattfindet, sondern im Internet, beispielsweise über Video-Chat oder Internet Relay Chat (IRC).

An der Umfrage haben 49 Personen teilgenommen. Interesse an einer virtuellen Ubucon haben 38 davon bekundet (ca. 76%), die restlichen 11 Teilnehmer waren dagegen (ca. 24%). Das heißt, grob hochgerechnet könnte man mit drei Viertel der Teilnehmer wie bei einer realen Ubucon rechnen, wobei noch nichts über die Referenten gesagt wurde.

Die Kommentare zeigten aber auch, dass es bei einer Teilnahme Einschränkungen gibt. So wollte ein Teilnehmer keine proprietäre Lösung wie Skype oder Google als Video-Chat. Und eine reine textbasierte Ubucon (d.h. IRC) wollte dieser gar nicht. Umgekehrt gab es einen Teilnehmer, der sogar die IRC-Lösung einer Video-Lösung vorziehen würde. Ein Vorschlag zum Ablauf war auch, dass man einen Videovortrag aufzeichnet, ins Netz stellt und später eine Live-Chat aufsetzt, bei dem die Zuhörer den Referenten Fragen stellen können.

Hintergrund der Umfrage war, dass es aktuell danach aussieht, dass wir für 2015 keine Räumlichkeiten zur Verfügung haben, um die Ubucon auszutragen. Die wenigen Angebote, die bisher an uns herangetragen wurden, waren entweder finanziell oder aus anderen Gründen nicht machbar. Nach wie vor ist aber nichts entschieden. Auch eine virtuelle Ubucon hat zahlreiche technische Hürden, vor allem auf Referentenseite (d.h. lokal an jedem einzelnen Rechner) muss alles korrekt eingerichtet und ausgerüstet sein, was kein kleines Problem ist. Wenn jemand Erfahrungen mit der Ausrichtung eines virtuellen Treffens hat, kann sich die- oder derjenige sehr gerne unter team@ubucon.de melden.

Daneben gibt es immer noch Verhandlungen mit einer Universität über die Ausrichtung einer Ubucon und ggf. ist eine Zusammenarbeit mit einer anderen Linux-Veranstaltung angedacht.

Wir halten Euch auf dem Laufenden!

Wlan-Stick TL-WN727N unter Linux nutzen

Permalink onli blogging

Es ist ein paar Jahre her, dass ich so viele Probleme mit einem Wlan-Stick hatte. Dieser von TP-Link ist ein Stick mit 150Mbps und 802.11n, und ich wollte ihn mit meinem Pogo unter Arch Linux ARM nutzen. Nach vielen Umwegen habe ich das nun geschafft.

Der Stick identifiziert sich als

ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter

Laut Wiki wäre der richtige Treiber der freie mt7601u_sta. Diesen aber nicht von dort herunterladen, denn er ist kaputt. Stattdessen nimmt man die gepatchte Version aus diesem Github-Repository (via):

git clone https://github.com/porjo/mt7601.git 
cd mt7601/src
make 
make install 
mkdir -p /etc/Wireless/RT2870STA/ 
cp RT2870STA.dat /etc/Wireless/RT2870STA/ 
modprobe mt7601Usta

Funktioniert das nicht, kann man es auch mit diesem Github-Repository probieren. Der zu ladende Treiber ist dann der rtnet7601Uap, die Firmware die RT2870AP.dat, die nach /etc/Wireless/RT2870AP/ muss. Wichtig ist in jedem Fall, nach dem Laden per dmesg zu prüfen, ob die Firmware erfolgreich geladen werden konnte, und sie ansonsten ins richtige Verzeichnis zu kopieren.

Die Ausgabe von iwconfig sieht nun komisch aus, das einfach ignorieren. Denn die Karte kann trotzdem konfiguriert und gestartet werden:

ifconfig ra0 inet 192.168.0.100 up
iwconfig ra0 mode managed
iwconfig ra0 key s:PASSWORD
iwpriv ra0 set SSID="DEINE_ESSID"

Damit das aber funktioniert und der Treiber starten kann, muss eventuell ein Boot-Parameter gesetzt werden (via): coherent_pool=2M.

Das ist nötig, wenn der Treiber wegen zu wenig Speicher stirbt:

ERROR!!! Failed to allocate memory - TxRxRing

Die von mir damals installierte uboot-Version macht das sehr schwierig. Deswegen habe ich die uboot-Version von Arch installiert:

wget http://archlinuxarm.org/os/armv5te/boot/pogo_e02/pogo_e02.sh
chmod +x pogo_e02.sh
./pogo_e02.sh

Danach kann eine /boot/uEnv.txt angelegt werden, die den Parameter beim nächsten Reboot setzt und bei mir so aussieht:

optargs=coherent_pool=2M

Wie gut der Adapter am Ende funktioniert, habe ich noch nicht wirklich getestet. Den ersten Versuchen zufolge sieht erstmal alles okay aus. Es ist aber wirklich schade, dass der Treiber trotz freier Lizenz in einem so schlechten Zustand und die Dokumentation so lückenhaft ist.

16. Mai 2015

Programmiersprache Rust 1.0 fertiggestellt

Permalink Sören Hentzschel

Rust ist eine neue Programmiersprache, in welcher die ebenfalls sich in Entwicklung befindliche neue Rendering-Engine von Mozilla geschrieben wird, die auf den Namen Servo hört. Nun wurde die Fertigstellung von Rust 1.0 bekannt gegeben.

Nach mehreren Jahren Entwicklung wurde die Fertigstellung der ersten stabilen Version von Rust bekannt gegeben. Von Mozilla-Mitarbeiter Graydon Hoare 2006 gestartet, ist Mozilla als Organisation seit 2009 an der Entwicklung von Rust beteiligt. Einer der Vorteile von Rust ist, dass es für die Unterstützung mehrerer Prozessorkerne prädestiniert ist. Außerdem ist Rust standardmäßig sicher, was einen Großteil von Speicherfehlern verhindert und die Engine weniger anfällig für Abstürze und Sicherheitsprobleme macht. Das derzeit wichtigste Rust-Projekt dürfte die von Mozilla Research entwickelte Rendering-Engine Servo sein, welche eines Tages möglicherweise Gecko in Firefox ersetzen könnte. Bis dahin ist es aber noch ein weiter Weg. Der Fokus liegt zunächst auf Mobile und Embedding. Servo wird derzeit für OS X (64-Bit), Linux (64-Bit), Android und Firefox OS entwickelt (es existiert noch keine Windows-Portierung!). An der Entwicklung von Rust und Servo ist auch Samsung beteiligt.

Passend zur Fertigstellung von Rust 1.0 arbeitet Mozilla derzeit auch am Rust Compiler-Support für das Firefox-Buildsystem, um einzelne Gecko-Komponenten experimentell in Rust neu zu implementieren. Erste Kandidaten sind der URL-Parser sowie der MP4-Parser.

Die Fertigstellung von Rust 1.0 bedeutet keineswegs die Fertigstellung von Rust. Wie bei Firefox wird es auch von Rust alle sechs Wochen neue Versionen geben, und ganz ähnlich gibt es auch bei Rust einen Beta- und einen Nightly-Kanal. So wurde nicht nur Rust 1.0 fertiggestellt, sondern auch schon die erste Beta-Version von Rust 1.1 veröffentlicht.

Tipp: Für Rust-Entwickler oder welche, die es werden wollen, existiert mit Visual Rust seit diesen Tagen eine Erweiterung für Visual Studio zur Programmierung in Rust. Mit RustDT gibt es ein Plugin für Eclipse.

Weiterführende Links

Rust Logo

15. Mai 2015

Firefox und Chrome Add-on Privacy Badger schützt die Privatsphäre einfach

Permalink Finns Blog

Add-ons für den Firefox Browser gibt es viele. Darunter sind auch einige, welche die Sicherheit und den Schutz der Privatsphäre verbessern. Die meisten dieser Add-ons sind für den Durchschnittsanwender aber zu kompliziert und dadurch schwer zu bedienen. Die Electronic Frontier Foundation hat dieses Problem erkannt und bietet eine interessante Lösung an.

Das Tracking-Problem

Ich kenne dieses Problem selbst nur zu gut: Man möchte Webseiten aufrufen, aber verhindern, dass unnötige Drittinhalte geladen werden und diese auch noch Cookies hinterlassen. Es sind nämlich hauptsächlich die Cookies, die eine Verfolgung (Tracking) über verschiedene Webseiten hinweg ermöglichen. Bisher habe ich Add-ons, welche nach dem Whitelist-Prinzip arbeiten, verwendet. Mit NoScript oder Cookie Whitelist werden standardmäßig alle Scripte und Cookies blockiert. Einzelne Seiten oder genauer gesagt Hostnamen können dann zur Whitelist hinzugefügt werden, so dass diese Scripte ausführen oder Cookies setzen dürfen. Für mich ist das praktisch, aber eine bequeme Lösung ist auch das nicht.

Auch das Add-on Ghostery könnte einen guten Schutz vor Trackern bieten, wäre Ghostery selbst nicht ein großer Tracker. Was genau Ghostery macht, weiß ich nicht, aber die vielen Verbindungen zu den Ghostery Servern müssen doch nicht wirklich sein. Auch kommt nach Aktualisierungen ein für Laien unverständlicher Konfigurationsdialog.

Die Lösung

Den besten Eindruck macht in meinen Augen das Add-on Privacy Badger von der EFF. Nach der Installation gibt es keine komplizierten Konfigurationen und das Prinzip klingt durchaus sinnvoll: Prinzipiell dürfen alle Inhalte und auch Drittinhalte geladen werden (grüner Status). Stellt Privacy Badger fest, dass das Nutzerverhalten von einem Drittinhalt verfolgt wird, werden entweder nur dessen Cookies blockiert (gelber Status) oder der gesamte Inhalt wird blockiert (roter Status) falls es die Funtkion der eigentlich aufgerufenen Seite nicht beeinträchtigt.

privacy_badger

Anfangs sieht man vielleicht mehr grüne als rote oder gelbe Schalter, aber das ändert sich mit der Zeit. Die Schalter können natürlich manuell umgelegt werden, falls man bewusst etwas blockieren oder wieder freigeben möchte.

Generell kan ich Privacy Badger sehr empfehlen, damit werden bei mir einige Add-ons überflüssig. Besonders Nutzer, die keinen größeren Mehraufwand für ein wenig Schutz der Privatsphähre betreiben möchten, sollten sich Privacy Badger ansehen.

 

Mozilla veröffentlicht Bugfix-Release Firefox 38.0.1

Permalink Sören Hentzschel

Mozilla hat nur wenige Tage nach Erscheinen von Firefox 38 ein Update auf Firefox 38.0.1 veröffentlicht und behebt damit mehrere Probleme.

Download Mozilla Firefox 38.0.1 für Windows, OS X und Linux

Mit dem Update auf Firefox 38.0.1 behebt Mozilla eine mögliche Absturzursache bei Programmstart für Nutzer einer NVIDIA Optimus Grafikkarte der ersten Generation. Nutzer, welche Cookies aus Google Chrome importiert hatten, konnten Probleme auf manchen Webseiten haben, welche die Benutzung der jeweiligen Webseite unmöglich machten. Dieses Problem wurde in Firefox 38.0.1 behoben, ebenso wie ein Problem, welches bereits in Firefox 37 existierte und verursachte, dass größere animierte Grafiken nur unvollständig abgespielt werden konnten. In Firefox ESR 38.0.1 wird außerdem ein Dekodierungsproblem in Zusammenhang mit WebRTC H.264 Video-Streams von CiscoSpark-Clients behoben. Dieses Problem war in der Mainstream-Version von Firefox 38.0 bereits behoben.

14. Mai 2015

RTL Streams und mehr mit Kodi schauen

Permalink Finns Blog

Eine der Stärken von Kodi, ehemals XBMC, ist es, die Funktionalität durch das Installieren diverser Addons zu erweitern. Ähnlich wie die öffentlich rechtlichen Fernsehsender eine Mediathek bereitstellen, gibt es auch von den meisten privaten Fernsehsendern eine Art Mediathek, mit der verpasste Sendungen gesehen werden können. Werbung und Bezahloptionen sind natürlich vorhanden. Es existieren auch für Kodi einige Addons, um diese Sendungen direkt im Media Center schauen zu können.

Ein bisher bei mir eingesetztes Addon war das RTL NOW Addon aus dem Repository von AddonScriptorDE. Seit einigen Tagen funktioniert es nicht mehr, vermutlich da RTL auf HDS (Adobe HTTP Dynamic Streaming) umgestiegen ist. Zusammen mit dem DRM Kopierschutz ergibt sich eine unschöne Situation für Nutzer mit alternativen Betrachtungsbedürfnissen.

Nach erfolglosen Versuchen das Addon zu fixen habe ich das RTL NOW Addon von Bromix gefunden, welches mit HDS und DRM umzugehen vermag. Auch das Streamen von VOX NOW, RTLII NOW, DMAX.de und einigen mehr ist möglich. Das Repository kann als Zip Datei heruntergeladen und in Kodi über die Funktion “Addon aus ZIP Datei installieren” installiert werden. Anschließend stehen die Addons zur Auswahl und können separat installiert werden.

bromix

bromix_streams

Auf mich macht das Addon und dessen Code-Struktur einen guten und aufgeräumten Eindruck. Wer einen Blick darauf werfen möchte, kann sich die Bromix Addons bei GitHub ansehen.

13. Mai 2015

Kurztipp: DRBD + EL7: /var/lib/drbd/drbd-minor-0.lkbd: No such file or directory

Permalink Stankowic development

Download PDF

Beim Anlegen eines DRBD-Volumes auf CentOS 7 bin ich kürzlich auf folgende Fehlermeldung gestoßen:

# drbdadm create-md r0
initializing activity log
NOT initializing bitmap
Writing meta data...
lk_bdev_save(/var/lib/drbd/drbd-minor-0.lkbd) failed: No such file or directory
New drbd meta data block successfully created.
lk_bdev_save(/var/lib/drbd/drbd-minor-0.lkbd) failed: No such file or directory

Hoppla! Nach Ausführung des Befehls stand das DRBD-Volume auch, wie erwartet, nicht zur Verfügung.

Es hat sich herausgestellt, dass schlichtweg der Ordner /var/lib/drbd nicht existierte. Daher konnte drbdadm keine Datei erstellen. Nach Erstellung des Ordners (inklusive Setzen der SELinux-Flags) konnte ich das Volume erstellen:

# mkdir /var/lib/drbd ; restorecon -v /var/lib/drbd
restorecon reset /var/lib/drbd context unconfined_u:object_r:var_lib_t:s0->unconfined_u:object_r:drbd_var_lib_t:s0
# drbdadm create-md r0

Der Fehler trat bei mir auf einem frisch installierten CentOS 7 ohne weitere Anpassungen auf – vermutlich ist er somit auch auf Red Hat Enterprise Linux, Oracle Linux und Scientific Linux reproduzierbar.

Download PDF

Mozilla veröffentlicht Firefox ESR 38 – Unterschiede zu Firefox 38

Permalink Sören Hentzschel

Mit Firefox ESR bietet Mozilla eine Version von Firefox mit Langzeitunterstützung an. Mit Firefox ESR 38 gibt es einen neuer Major-Release auf dem ESR-Kanal. Die Mainstream- und die ESR-Version von Firefox 38 sind zwar weitestgehend identisch, aber zwei Unterschiede gibt es doch.

Mozilla hat Firefox 38 und Firefox ESR 38 veröffentlicht. Nutzer von Firefox ESR 31 sollten im Laufe der kommenden zwölf Wochen auf Firefox ESR 38 aktualisieren. Mit dem Erscheinen von Firefox 40 und Firefox ESR 38.2 am 11. August erreicht Firefox ESR 31 sein endgültiges Ende und entsprechende Nutzer erhalten das Update auf Firefox ESR 38.2.

Firefox ESR 38 unterscheidet sich in zwei Punkten vom Mainstream-Release 38, zweimal in Form eines deaktivierten Features. Zum einen ist Firefox Hello in der ESR-Version standardmäßig deaktiviert. Grund hierfür ist, dass abwärtsinkompatible Änderungen in den kommenden Monaten erwartet werden. Ebenfalls standardmäßig deaktiviert sind die mit Firefox 38 neu eingeführten Encrypted Media Extensions zur Umsetzung von Digital Rights Management in HTML5.

Download Mozilla Firefox 38.0
Download Mozilla Firefox ESR 38.0

Mozilla veröffentlicht Firefox 38

Permalink Sören Hentzschel

Mozilla hat Firefox 38 veröffentlicht. Die neue Version bringt wieder einige Neuerungen, ist aber auch für Nutzer der Firefox-Version mit Langzeitunterstützung relevant, denn Firefox ESR 38 beerbt Firefox ESR 31. Dieser Artikel fasst die nennenswertesten Neuerungen von Firefox 38 zusammen.

Download Mozilla Firefox 38.0 für Windows, OS X und Linux

Mehr Sicherheit für Firefox-Nutzer

Insgesamt 13 Sicherheitslücken hat Mozilla in Firefox 38 geschlossen, von denen Mozilla fünf als besonders kritisch einstuft.

Das Netzwerk-Panel der Entwicklerwerkzeuge hat in Firefox 37 einen Sicherheitsreiter erhalten, über welchen sich Informationen über die Verbindung jeder einzelnen Ressource ablesen lassen. In Firefox 38 wurde dieses um Warnungen ergänzt für den Fall, dass SSLv3 statt TLS oder RC4 als Chiffrierungsverfahren verwendet wird. Für WebRTC setzt Firefox ab sofort Perfect Forward Secrecy (PFS) voraus.

Einstellungen in neuer Optik und im Tab

Was lange währt, wird endlich gut. So muss man das sagen, bereits Firefox 15 hat eine allererste Implementierung der Einstellungen im Tab angeboten, vorausgesetzt man wusste, welchen Schalter man über about:config zu aktivieren hat. Seit dem hat sich sehr viel getan, optisch hat das mit den Einstellungen von damals nicht mehr viel zu tun. Mit Firefox 38 wurde die neue Einstellungsoberfläche nun standardmäßig aktiviert. Wem die neuen Einstellungen nicht gefallen, kann über about:config den alten Einstellungsdialog reaktivieren, indem der Schalter browser.preferences.inContent per Doppelklick auf false gesetzt wird.

Passend dazu hat auch die erweiterte Konfiguration about:config ein neues Design erhalten:

Passwortmanager ignoriert autocomplete=off

Bereits seit Firefox 30 bietet der Passwortmanager von Firefox auch das Speichern der Logindaten an, wenn auf der Webseite das autocomplete-Attribut genutzt wird, um die Autovervollständigung zu deaktivieren. Vorausgefüllt wurden gemerkte Felder aber nicht. Mit Firefox 38 wird diese Einschränkung aufgehoben.

Netflix ohne Silverlight-Plugin

Netflix ist aus vielen Haushalten nicht mehr wegzudenken. In den USA noch mehr als in Europa – dort soll Netflix in beinahe jedem zweiten Haushalt genutzt werden -, in Deutschland ist Netflix vor einem halben Jahr gestartet. Natürlich haben Content-Anbieter ein starkes Interesse daran, ihre Inhalte zu schützen. War dies bislang nur durch Plugins wie Microsoft Silverlight möglich, steht einer NPAPI-pluginfreien Zukunft dank HTML5 und Encrypted Media Extensions (EME) nichts mehr im Wege. Um das Bildmaterial entschlüsseln zu können, benötigt es allerdings noch etwas: ein sogenanntes Content Decryption Module (CDM). Mozilla setzt hierfür auf Adobe Primetime. Das CDM wird nach dem Start von Firefox automatisch heruntergeladen. Natürlich kann Primetime auch deaktiviert werden. Außerdem stellt Mozilla separate Builds zur Verfügung, welche sich nur dadurch von der regulären Firefox-Version unterscheiden, dass EME hier standardmäßig deaktiviert ist und das CDM entsprechend nicht automatisch heruntergeladen wird. Weitere Informationen dazu gibt es in einem gesonderten Artikel. EME steht bislang nur für Nutzer von Windows Vista und höher zur Verfügung. Die Unterstützung für OS X und Linux folgt in einer späteren Version. Das ist CDM ist außerdem bislang nur mit 32-Bit-Versionen von Firefox kompatibel.

Achtung: Mit der Unterstützung von EME und dem Download des CDM erfüllt Firefox die technische Voraussetzung, um Netflix-Inhalte ohne Silverlight-Plugin wiederzugeben. Dies bedeutet nicht, dass Firefox-Nutzer auf Netflix bereits den HTML5-Player erhalten, dies kann ggfs. noch dauern. Tatsächlich befindet sich HTML5 + EME für Firefox-Nutzer auf Netflix derzeit im Test, die Wiedergabe ohne Silverlight ist also nur eine Frage der Zeit.

YouTube-Videos ohne Flash-Plugin in allen Auflösungen – jetzt auch für OS X-Nutzer

In Firefox 37 wurden die Media Source Extensions (MSE) standardmäßig für Nutzer von Windows Vista und höher aktiviert. Mit Firefox 38 folgt die Unterstützung für Apple OS X, nach wie vor beschränkt auf YouTube.  Für YouTube bedeutet dies, dass auch im HTML5-Player alle Auflösungen zur Verfügung stehen, die einem angeboten werden, wenn man den Flash Player anstelle des HTML5 Players auf YouTube verwendet. Ebenfalls sind die Media Source Extensions auf Googles Videoportal Voraussetzung für 60fps-Videos. Die Beschränkung auf YouTube kann aufgehoben werden, indem über about:config der Schalter media.mediasource.youtubeonly per Doppelklick auf false gesetzt wird. Da die Media Source Extensions für andere Video-Plattformen standardmäßig noch deaktiviert sind, muss man allerdings noch damit rechnen, dass es Probleme geben kann. Die Unterstützung für Linux folgt in einer späteren Version.

Weitere Verbesserung der Unterstützung von Webstandards

Auch darüber hinaus wurde die Unterstützung von Webstandards verbessert. So werden nun Multistream und Renegotiation in WebRTC unterstützt. Die BroadcastChannel API ermöglicht es Webseiten tabübergreifend zu kommunizieren, d.h. dass eine Webseite, die in verschiedenen Tabs geöffnet ist, abhängig von einer Änderung in einem Tab auch in den anderen Tabs aktualisiert werden kann. Auch CSS Ruby wird seit Firefox 38 unterstützt, was vor allem für Nutzer des asiatischen Sprachraums interessant sein dürfte. Mit der Unterstützung des picture-Elements und des srcset-Attribut erhalten Webentwickler eine neue flexible Möglichkeit zur Einbindung von Bildern auf Webseiten. So können nun beispielsweise abhängig von der Pixeldichte oder Auflösung unterschiedliche Bilder direkt im HTML definiert werden. Zahlreiche Praxisbeispiele findet man im Entwicklerblog von Opera. WebSockets sind nun auch in Web Workern verfügbar und DOM3 Events KeyboardEvent.code wurde implementiert.

Verbesserungen für Webentwickler

Nicht nur die Unterstützung von Webstandards wurde verbesssert, sondern auch die Werkzeuge für Webentwickler, welche die Webstandards schließlich umsetzen. So werden nun unter anderem XMLHttpRequests in der Webkonsole visuell gekennzeichnet und können separat von regulären Netzerkanfragen gefiltert werden. Neu ist auch die Unterstützung des Konsolenkommandos copy(). Die Variablenansicht des Debuggers zeigt nun auch Variablen an, welche von der JavaScript-Engine wegoptimiert worden sind. Das Netzwerkpanel hat eine neue Spalte für die übertragene Dateigröße erhalten. Handelt es sich um eine komprimierte Ressource, dann ist hier ein niedrigerer Wert zu erwarten als in der Spalte für die Größe. Das Animationspanel im Inspektor hat eine Schaltfläche erhalten, um alle CSS Animationen abzuspielen respektive zu pausieren. Beim Bearbeiten von Attributen in der Markup-Ansicht des Inspektors kann mittels Tabulator-Taste jetzt zwischen Attributen gewechselt werden. Können Ressourcen aufgrund der Same Origin Policy nicht geladen werden, zeigt die Webkonsole nun genauere Fehlermeldungen an.

Sonstige Neuerungen

Ursprünglich bereits in Firefox 29 wurde ein DNS Prefetching und TCP Preconnecting eingeführt, welches die Zeit verkürzen sollte, die ein Nutzer auf die angeforderte Webseite warten muss. Allerdings führte dies bei einigen Nutzern dazu, dass Firefox nur noch langsam oder gar nicht mehr beendete. Darum wurde dieses Feature mit Firefox 29.0.1 wieder deaktiviert. Für Firefox 38 wurde dieses Feature nun umgeschrieben und neu eingeführt. Über about:config kann die Neuerung deaktiviert werden (network.predictor.enabled).

In der Bibliothek können Webseiten per Kontextmenüeintrag jetzt in einem neuen privaten Fenster geöffnet werden, in welchem keine Chronik gespeichert wird. Firefox auf Linux/Gtk3 unterstützt ab sofort auch HiDPI-Grafiken. Die Seite about:support besitzt nun eine Schaltfläche, um Firefox im abgesicherten Modus zu starten.

Windows-Nutzer können im Problemfall nun direkt im Addon Manager von Firefox den Protected Mode vom Adobe Flash Player deaktivieren. Der Protected Mode soll die Sicherheit verbessern, ist aber leider auch für seinen teilweise negativen Einfluss auf die Stabilität von Firefox bekannt.

Dazu kommen wie immer diverse Verbesserungen am Plattform-Verbesserungen sowie Bugfixes.

Neue Basis für Firefox ESR (Firefox mit Langzeitunterstützung)

Ein Jahr oder anders gesagt sieben Major Releases sind seit dem Erscheinen von Firefox ESR 31 vergangen, damit löst Firefox 38 die Version 31.x auf dem ESR-Zweig (“Extended Support Release”) ab. Wer Firefox ESR 31 nutzt, sollte bis in spätestens zwölf Wochen auf Firefox ESR 38 gewechselt haben – wie immer gibt es zwei Releases Überlappung. Mit der Veröffentlichung von Firefox 40 und Firefox ESR 38.2 erhalten die Nutzer von Firefox ESR 31.x das automatische Update auf Firefox ESR 38.x. Erwähnt seien an dieser Stelle auch die Unterschiede zwischen Firefox 38 und Firefox ESR 38.

Firefox behindert Sehbehinderte – weiter geht’s auf dem Weg zur Unbenutzbarkeit

Permalink Pinguinzubehör

Wenn neue Funktionen schnell beim Benutzer ankommen, ist das prinzipiell gut. Dafür sorgt Mozilla Firefox seit einiger Zeit, indem es einen schnellen Veröffentlichungsrhythmus fährt. Prinzipiell aber nicht gut ist es, wenn man offenbar mit der Qualitätssicherung nicht mehr hinterherkommt. Immer öfter müssen kurz nach der Hauptveröffentlichung neue, korrigierte Versionen nachgeschoben werden, die gravierende Fehler beseitigen. Der Endanwender wird praktisch zum permanenten Betatester gemacht. Mit dem gerade erschienenen Firefox 38 trifft es unter anderem mal wieder eine Randgruppe.

Firefox hat es dem Konkurrenten Chrome nachgemacht — nicht nur optisch — und auf kurze Veröffentlichungsintervalle umgestellt, in der Regel gibt es alle sechs Wochen einen neuen Firefox. Der Vorteil ist, dass Neuerungen auf diese Weise schneller beim Benutzer ankommen, Firefox läuft nicht Gefahr, altbacken zu wirken oder uninteressant zu werden, wenn Chrome schon längst die neuesten Funktionen eingebaut hat. Die Aufholjagd von Chrome ließ sich damit jedoch nicht stoppen.

Der Nachteil ist, dass auch die Fehler und Verschlechterungen schneller beim Benutzer ankommen. Auf das neue Australis-Design hätte mancher Benutzer sicherlich gern noch eine Weile länger verzichtet, aber es gibt auch Änderungen, die Firefox für bestimmte Anwendergruppen praktisch unbenutzbar machen. Meist trifft es Minderheiten. Mit Version 38 hat sich Mozilla bei den Sehbehinderten mal wieder äußerst „beliebt“ gemacht. Manche sind z. B. darauf angewiesen, den Bildschirm in stark invertierten Farben zu nutzen, um überhaupt etwas erkennen zu können.

Bereits seit der Umstellung auf die neue Australis-Optik ist Firefox für schlecht Sehende deutlich schlechter bedienbar geworden, da Australis u.a. viele eigene Designelemente nutzt, die sich nicht mehr an die Vorgaben des Betriebssystems halten. Das sieht auf Bildschirmen der Normalsehenden dann zwar todschick aus, wirkt bei angepassten Oberflächen aber tödlich. So sah ein Firefox bis Version 37 für einen Sehbehinderten aus:

Firefox-Farbeinstellungen in invertierten Farben
Bisheriger Firefox, wie ihn Sehbehinderte sehen

Bei Mozilla wird das offenbar nicht weiter getestet. Bisher galt Firefox als einer der wenigen Browser — abgesehen von denen, die wiederum auf Firefox basieren — dessen Farbeinstellungen ohne großen Aufwand änderbar waren. Dies nun hat sich mit Firefox 38 schlagartig geändert. Wer sich als Sehbehinderter eine andere Textfarbe einstellen will, sieht nun das hier:

Firefox-Farbeinstellungen in invertierten Farben
Aktueller Firefox in der Ansicht für Sehbehinderte

So sieht Firefox unter Linux oder Windows mit invertierten Farben aus. Zwar sind die Farbeinstellungen immer noch an der gleichen Stelle zu finden und damit leicht zu erreichen. Nur: Was macht ein sehbehinderter Mensch, der dunklen Hintergrund und gelbe Schrift verwendet, wenn plötzlich keine Farben in der Farbauswahl mehr zu sehen sind, sondern sich die Farbauswahl als bloßes schwarz-gelbes Gitternetzwerk präsentiert? Genau. Er kann nur raten, welche Farbe die Links im Anschluss haben werden — in der Regel sind sie dann für ihn unsichtbar. Dass auch die Symbole auf den Fensterbuttons fehlen, kann man da schon fast unter den Tisch fallen lassen.

Wer noch etwas besser sieht, muss sich lediglich darüber ärgern, dass man wieder mal einen Umweg gehen muss, um die optimalen Einstellungen zu erreichen (also erst einmal die Farben auf normale Einstellungen zurücksetzen, gewünschte Farbe einstellen und dann wieder umstellen — vielen Dank, Mozilla, man hat ja sonst nichts zu tun). Vollständig blinde Benutzer sind hier ausnahmsweise mal im Vorteil: Sie bekommen die Links von ihren Screenreadern und Braillezeilen schlicht konvertiert — ganz ohne Farbeinstellungen zu benötigen.

Auch mit Version 38 kann Firefox daher nur noch eingeschränkt als barrierefrei gelten. Die Alternative, Firefox ESR, als stabile Alternative für Administratoren im Firmenumfeld gedacht (notgedrungen, denn sonst würde dort gar kein Firefox mehr eingesetzt werden), wird von Mozilla de facto versteckt. Wer ihn nicht aktiv sucht, bekommt ihn nicht angeboten. Sie bleibt neben Alternativprojekten wie Pale Moon oder Seamonkey die einzige Möglichkeit, Firefox-Technik zu verwenden, ohne alle paar Tage von neuen Verschlimmbesserungen überrascht zu werden.

12. Mai 2015

Nginx Maintenance Mode konfigurieren

Permalink Unerklärliches am Rande

Ab und an muß man eine Website aufgrund von Konfigurations- oder Wartungsarbeiten abschalten. Idealerweise zeigt man in diesem Zeitraum eine nette Meldung, daß gerade an der Seite gebastelt wird. Damit Administratoren, Entwickler, Tester usw. trotzdem auf der normalen Seite landen muß die Konfiguration von Nginx in /etc/nginx/sites-available/ angepasst werden.

    # ---- more -----
    location / {
        index index.php;
 
        #Maintenance Mode
	#Enter your public ip and uncomment the lines below
        #if ($remote_addr != 127.0.0.1) {
        #      return 503;
        #}
        #Maintenance Mode
 
        try_files $uri $uri/ /index.php?$args;
 
	#redirect the maintenance.html
        rewrite ^/maintenance\.html / permanent;
    }
 
   error_page 503 @maintenance;
   location @maintenance {
        rewrite ^(.*)$ /maintenance.html break;
   }
   #---- more -----

Zuerst die lokale IP eingeben – einfach zu ermitteln mit

curl ifconfig.me

und die # vor dem IF Statement auskommentieren. Alle User mit einer anderen IP werden nun auf die Datei maintenance.html (sollte im Document Root liegen). Wenn die Wartungspause beendet ist wird die Url /maintenance.html auf / weitergleitet.

Notizen verwalten mit BasKet

Permalink (Mer)Curius

Notizen- und Gedankenmanagement ist ein wichtiger Anwendungsbereich. Der Wert des Unternehmens hinter der App Evernote wurde 2012 auf circa. eine Milliarde US-Dollar geschätzt und letztlich bietet Evernote lediglich eine - zugegebenermaßen sehr ausgefeilte  - Software für Notizenmanagement an. Hinzu kommen andere Konkurrenten wie Google Notes, Apples iCloud und Microsoft OneNote. Letzteres ist inzwischen ein moderner Cloud-Dienst, beruht aber auf einer lokalen Software, die bereits seit einiger Zeit verfügbar ist. 

Ironischerweise wurde OneNote von Microsoft ursprünglich für Tablets entwickelt - lange bevor das iPad auf den Markt kam. Es fristete deshalb auch eher ein Nischendasein und wurden nebenbei mit den Office Suiten 2007 und 2010 ausgeliefert. Allerdings gilt OneNote nicht erst seitdem Microsoft eine kostenlose Version veröffentlichte und mit dem Cloud-Dienst verband als Geheimtipp. Eine Gedanken- und Notizenmanagementsoftware, die auf Karteikarten basiert und weder strukturelle Hindernisse (wie Zeilen, Spalten) oder mediale Limitierungen (Aufnahmen, Videos, Bilder) sucht man sonst oft vergebens.

Das gilt umso mehr für Linux, wo der grundlegende Unix-Gedanke "Mache nur eine Sache und mache sie gut." einer solchen Allzweckwaffe entgegen steht. Die Notizenprogramme für die diversen Linux-Desktops sind deshalb oft sehr rudimentär gehalten und erinnern in ihrer Funktionsweise und Leistungsvielfalt an Klebezettel.

Eine Ausnahme bildete hier immer schon BasKet. Eines dieser vielversprechenden KDE-Programe, die nie so richtig die Portierung von KDE 3.5 auf KDE 4 absolvierten. BasKet war früher ein OneNote-Äquivalent und bis 2008 eine Standardanwendung auf meinen Systemen. Nachdem sich die Umstellung verzögerte und die Entwicklung einschlief, wurden neue Projekte irgendwann nicht mehr in BasKet angelegt und bei irgendeiner Neuinstallation war BasKet nicht mehr dabei.

Stattdessen fiel die Wahl auf Evernote. Ebenfalls ein mächtiges Programm. aber leider gab es nie einen wirklich guten einigermaßen passabel funktionierenden Linux-Client für Evernote - weder offiziell noch inoffiziell. Webapps sind vielleicht der letzte Schrei, aber mir persönlich gefallen sie nicht. Es ist irgendwie immer eine Internetseite im Browser, die sich nicht in den Desktop integriert. Keine nahtlose Übertragung von Dateien, kein ineinandergreifen mit der Groupware-Suite. Hinzu kommt eine tablet-orientierte Weboberfläche, die auf einem 24" Monitor leicht überdimensioniert wirkt und statt auf gute Funktionen und Übersichtlichkeit, lieber auf Floating-Effekte setzt.

Latente Datenschutzbedenken beim Einsatz eines amerikanischen Dienstes ohne jegliche Verschlüsselungsoption für das Mangement wichtiger Projektdaten (und privater Gedanken) beförderten auch nicht gerade einen Verbleib bei Evernote. Die Suche nach Alternativen gestaltete sich aber schwierig.

Reanimierung

Glücklicherweise fällt bei Debian quasi kein Programm aus den Paketquellen - es sei denn es wird von wirklich schwerwiegenden Fehlern geplagt. Eine weitere glückliche Fügung war, dass der alte Update-Benachrichtungsdienst von den Debian-Entwicklern geschasst wurde und nun PackageKit/Apper (tolle Software übrigens!) für die grafische Update-Benachrichtung zum Einsatz kommt. Beim stöbern in der KDE-Kategorie von Apper fiel mir sofort BasKet auf.

apper kategorie kdeApper / Kategorie Debian

Hier hat man wieder eines dieser wunderbaren Phänomene freier Software. Der ursprüngliche Entwickler mag abgesprungen sein und das Projekt lag einige Zeit brach, aber der Code ist deshalb nicht verloren. Gemäß About-Seite von BasKet nahm sich ab 2013 Gleb Baryshev BasKet an und entwickelte es weiter. Das spiegelt sich im Debian Changelog, seit 2012 ist wieder richtig Bewegung in dem Projekt. Die alte Homepage wird nicht mehr gepflegt, möglicherweise fehlen hier die Zugangsdaten aber es gibt eine Launchpad-Seite.

[accordion]
[acc_item title="Debian 8.0 Jessie "]Installation direkt aus den Paketquellen möglich.[/acc_item]
[acc_item title="Ubuntu & Derivate 14.04"]Installation aus universe möglich. Durch den Synchronisationsprozess mit Debian gibt es eine hinreichend aktuelle Version, aber ohne offiziellen Support.[/acc_item]
[acc_item title="openSUSE 13.2"]Keine aktuelle Version in den Paketquellen, auch im KDE:Extra-Verzeichnis liegt lediglich eine veraltete Beta 1.90. Über die Softwaresuche finden sich aber inoffizielle Pakete aus dem OBS.[/acc_item]

[/accordion]

Die Funktionsweise von BasKet

Wer OneNote kennt kommt mit BasKet sehr schnell zurecht. BasKet basiert auf so genannten Körben (daher auch der Name) bzw. Karteikarten, in die Notizen "geworfen" werden. Die einzelnen Notizen werden dabei in Textfeldern angelegt, die sich frei über den Bildschirm verschieben lassen. Es gibt weder Zeilen, noch Spaltenbegrenzungen (es sei denn man stellt dies ein) und auch Überlagerungen sind möglich.

basket willkommen

Es sind quasi unendlich viele Notiz-Typen möglich. Bilder, Checklisten, Links, Bildschirmausschnitte etc. pp. Dabei läuft das Programm sehr stabil und integriert sich hervorragend in den KDE-Plasma-Desktop.

Synchronisation

Ein Schwachpunkt vieler Open Source-Projekte ist die Synchronisation zwischen verschiedenen Geräten - so leider auch bei BasKet. Synchronisation über Clouddienste verlangt einen Online-Dienst und damit Serverinfrastruktur und letztlich Finanzierung. Das ist der Knackpunkt vieler kleinerer Projekte, die von Entwicklern in ihrer Freizeit entworfen werden. Abhilfe könnten hier wohl nur die Distributionen und großen Projekte wie KDE oder GNOME schaffen, indem sie ihren Entwicklern eine gemeinsame Infrastruktur mit offenen Schnittstellen zur Verfügung stellen. So lange das nicht der Fall ist, bleiben Sychronisationsfunktionen, die sich nicht einfach als inoffizieller Client für große Webdienste ausgeben, Mangelware.

Allerdings kann BasKet seine Körbe als s.g. Korbarchive mit der Endung .basket exportieren und danach auch wieder importieren. Wer also nur eine kleine Anzahl an Geräten verwaltet und die manuelle Versionsverwaltung der Körbe nicht scheut, kann zumindest den stationären PC und das Notebook auf diese Weise leidlich synchron halten. Mobile Apps für z.B. Android fehlen allerdings völlig. Aus meiner Sicht allerdings kein Manko, da ich die Erfahrung mit Evernote und OneNot gemacht habe, dass große Notizstrukturen, die auf dem Computer angelegt wurden, sich mit einer mobilen App eh nicht mehr funktional verwalten ließen.

Fazit

Wer ein OneNote-Äquivalent für Linux sucht und auf erweiterte Synchronisationsfähigkeiten verzichten kann, sollte sich unbedingt mal BasKet ansehen. Es ist schön zu sehen, dass eine derart tolle Software nun doch noch weiterentwickelt wird und hoffentlich schafft BasKet auch noch den Übergang auf Plasma 5 und KF 5.

11. Mai 2015

Firefox Tipp: Verlinkten Text markieren

Permalink Sören Hentzschel

Heute gibt es auf diesem Blog einen Tipp zur Benutzung von Firefox. Wer schon einmal versucht hat, einen verlinkten Text zu markieren, und damit Probleme hatte, wird eben jene Aufgabe mit diesem kleinen Trick bewältigen können.

Dieser Tipp ist nicht neu, sondern funktioniert bereits seit vielen Jahren. Da ich dies beinahe täglich anwende, aber immer wieder feststelle, dass kaum jemand die hier vorgestellte Methode kennt, möchte ich diesen Tipp in Form eines Artikels teilen.

Das Markieren von Text auf Webseiten stellt normalerweise kein Problem dar. Außer, bei dem Text handelt es sich um einen verlinkten Text. Dann ist es nämlich nicht möglich, mitten im Text eine Markierung zu beginnen, nur vom Anfang oder vom Ende des Textes aus.

Abhilfe schafft das Gedrückthalten der Alt-Taste: Bei gedrückter Alt-Taste kann auch mitten im verlinkten Text die Markierung begonnen werden.

Thunderbird Adressbuch mit ownCloud Kontakten synchronisieren

Permalink My-IT-Brain

Dieser Artikel basiert auf der offiziellen ownCloud Dokumentation1 und beschreibt die Einrichtung eines Thunderbird-Adressbuchs zur Synchronisation mit den ownCloud-Kontakten.

contacts-carddav-link

Menü zum CardDAV-Link

Neben dem Thunderbird-Mailclient wird die Erweiterung Lightning2 benötigt. Wie man diese Erweiterung nutzt, um z.B. den ownCloud-Kalender mit Thunderbird zu synchronisieren, habe ich bereits an dieser Stelle beschrieben.

Um neben dem Kalender auch die Kontakte synchronisieren zu können, wird darüber hinaus der Sogo Connector3 benötigt. Am einfachsten installiert man diese Erweiterung, indem man einen Rechtsklick auf die Erweiterung ausführt und “Ziel speichern unter..” aus dem Kontextmenü auswählt. In Thunderbird richtet man diese Erweiterung ein, indem man im Add-on Menü die Option “Add-on aus Datei installieren…” auswählt.

Sind die beiden Erweiterungen erfolgreich installiert, kann das Adressbuch eingerichtet werden. Dazu öffnet man das Thunderbird-Adressbuch aus der Symbolleiste. Im sich öffnenden Fenster wählt man Datei->Neu->Remote-Adressbuch.

Der Verbindungsname kann frei gewählt werden. Bei URL wird der CardDAV-Link eingetragen, den man in den Einstellungen der ownCloud-Kontakte findet. Die Einstellungen verbergen sich hinter dem kleinen Zahnradsymbol.

remote-addressbook-settings

Remote-Adressbuch-Einstellungen

Die weiteren Optionen können nach den persönlichen Vorlieben gewählt werden. Einzig den Haken bei “Nur lesbar” sollte man nicht setzen, wenn man über Thunderbird auch neue Kontakte in der ownCloud anlegen möchte.

Fertig. Damit sind die ownCloud-Kontakte in den Mailclient integriert und lassen sich z.B. für die Autovervollständigung der E-Mail-Adressen in neuen Nachrichten nutzen.

  1. Thunderbird – Synchronize Addressbook
  2. Mozilla Thunderbird Lightning Calendar
  3. Sogo Connector

CentOS: Probleme beim Update von 7.0 auf 7.1

Permalink Michael Koflers Blog

Wenn Sie regelmäßig yum update ausführen, ist aus Ihrer CentOS-7-Installation schon seit geraumer Zeit CentOS 7.1 geworden. Nicht so fleißige Administratoren haben aber Pech: Wenn Sie einige Wochen lang kein Update durchgeführt haben, dann scheitert der Update-Versuch jetzt.

Der Grund: Eine Woche nach dem Update von CentOS 7 auf 7.1 wurden die Mirror-Verzeichnisse umgestellt, von 7.0.1406 auf 7.1.1503. Standardmäßig ist deltarpm aktiv, d.h. die Paketverwaltung versucht, nur Delta-Pakete herunterzuladen. Und das scheitert wegen der Versionsumstellung. Sie erhalten lauter HTTP Not Found Fehlermeldungen.

Abhilfe: Laden Sie die Datei /etc/yum.conf in einen Editor und fügen Sie die Zeile deltarpm=0 ein. Anschließend führt yum update zum Erfolg.

10. Mai 2015

Git für Einsteiger - Teil 4 (GitHub-Edition)

Permalink svij | Blog

Im letzten Teil ging es um das Rebasen und das Einrichten und Nutzen von Remote-Repositorys. In diesem Teil wird es rein um GitHub und dessen Workflow gehen. Darunter fällt unter anderem das Erstellen eines Repositorys und wie man sich an Open-Source-Projekten auf GitHub beteiligen kann.

Was ist GitHub?

Im dritten Teil dieses Tutoriums wurde zwar erläutert wie man mit Remote-Repositorys arbeitet, allerdings fehlte bislang eine sinnvolle Möglichkeit um Repositorys auf entfernt liegenden Servern zu lagern, die man über das öffentliche Internet erreichen kann. Eines der Dienste um dies zu erledigen ist GitHub.

GitHub besitzt sehr viele Funktionen die sich um das kollaborative Arbeiten an Projekten mit Git drehen. Darüber hinaus besitzt GitHub zwar noch einige weitere Dienste, dieser Teil des Tutorium dreht sich allerdings mehr um die grundsätzlichen Funktionen, die Git betreffen.

Hinweis: Da GitHub stetig weiterentwickelt wird, ändert sich auch die Web-Oberfläche. Die in diesem Artikel enthaltenen Screenshots könnten bereits nach wenigen Monaten veraltet sein.

Repository anlegen

Bei GitHub können Git-Repositorys angelegt werden. Bevor man sein erstes Repository anlegen kann, muss man sich zunächst registrieren. Der Funktionsumfang mit einem Standardkonto ist auf öffentliche Git-Repositorys beschränkt, das heißt vor allem, dass alle Dateien aus den Repositorys öffentlich und somit für jeden lesbar sind. Gegen Bezahlung kann man auch private Repositorys anlegen.

Nach der Registrierung und dem Einloggen findet man in der oberen Leiste in GitHub diverse Bedienelemente, darunter auch ein Knopf um ein neues Repository bzw. eine neue Organisation anzulegen. Eine Organisation ist an dieser Stelle noch nicht so wichtig, kurz gesagt, kann man Organisationen anlegen, damit eine Gruppe an Entwicklern sich die Rechte an Repositorys teilen können. Wenn man hingegen einen Account als normalen Nutzer besitzt, sind die Rechte standardmäßig auf die eigenen Repositorys für sich alleine beschränkt.

Wenn man nun ein Repository anlegen möchte, muss man dem Repository zunächst einen Namen vergeben. Optional ist hingegen eine kurze Beschreibung. Als zusätzliche Möglichkeit, kann man dem Repository direkt eine README-Datei hinzufügen lassen, ebenso wie eine ".gitignore"-Datei sowie eine Datei mit den Lizenz-Bestimmungen des Projektes im Repository.

Die "README"-Datei ist dafür da, um Informationen über das Projekt bzw. das Repository auf der Startseite des Repositorys darzustellen. GitHub stellt dies automatisch dar.

In diesem Tutorium wurde bislang noch nicht die Datei ".gitignore" behandelt. Innerhalb jedem Repositorys kann eine solche Datei anlegt werden. Alles was man dort einträgt, wird von Git schlicht ignoriert und somit nicht weiter beobachtet. Wenn man etwa an LaTeX-Dokumenten arbeitet, hat man bei jedem Kompilieren der TeX-Datei einige Dateien, die nicht direkt für das Projekt selbst relevant sind und somit auch eine Versionierung nicht notwendig ist. Diese Dateien kann man in der Datei ".gitignore" eintragen und Git zeigt diese Dateien in keinen der Befehle an. GitHub macht das Anlegen der Datei noch ein wenig komfortabler, da es sehr viele vordefinierte gitignore-Dateien anbietet, etwa für Java-, Android- oder TeX-Projekte.

Weiterhin kann man beim Anlegen eines Repositorys über GitHub eine Lizenz-Datei anlegen lassen. Dies ist wichtig, damit auch andere Leute von dem Inhalt des Repositorys profitieren können.

Wenn man nun einen Namen, eine Beschreibung sowie eine Lizenz-Datei ausgewählt hat und anschließend das Repository erzeugt, dann besitzt das Repository zu Beginn genau einem Commit mit der Commit-Message „Initial Commit“.

SSH-Key anlegen und hinzufügen

Bevor man das neu angelegte Repository klonen kann, muss man dem GitHub-Account noch einen SSH-Key hinzufügen. Sofern man auf dem lokalen Rechner noch kein SSH-Key erzeugt hat, muss zunächst ein Key anlegt werden.

Falls man nicht weiß, ob man schon mindestens einen SSH-Key besitzt, kann man den Inhalt vom Ordner "~/.ssh" überprüfen. Ein SSH-Key setzt sich aus zwei Dateien zusammen. Dies ist zum einen der private und zum anderen der öffentliche Schlüssel. Beispielsweise ist die Datei "id_rsa" der private Schlüssel, während "id_rsa.pub" öffentlicher Schlüsselteil ist.

Sofern man noch keinen SSH-Key angelegt hat, kann man das mit dem folgenden Befehl erledigen:

$ ssh-keygen -t rsa -C "mail@svij.org"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sujee/.ssh/id_rsa): /home/sujee/.ssh/id_github
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/sujee/.ssh/id_github.
Your public key has been saved in /home/sujee/.ssh/id_github.pub.
The key fingerprint is:
SHA256:LFM8YkUe+ACh4+mH0GXZ4xAlWXT3zpHDEKdg/r9jBHI mail@svij.org
The key's randomart image is:
+---[RSA 2048]----+
|    =B+oB +..    |
|   ..=oB + * .   |
|  o = =o. . *    |
| o = + =ooEo o   |
|. +   + So..o    |
| o .   o   ..    |
|  o .      ..    |
|   .        o.   |
|           ...   |
+----[SHA256]-----+

Beim Ausführen des gelisteten Befehls werden interaktiv einige Fragen gestellt, die beantwortet werden sollten. Darunter den exakten Speicherort des Schlüssels, sowie ein Passwort. Man kann zwar auch einen Schlüssel ohne Passwort generieren, dies ist allerdings nicht empfehlenswert, da man sonst vollständigen Zugriff auf die Repositorys erhält, falls der private Schlüssel in falsche Hände gerät.

Nachdem nun das Schlüsselpaar generiert worden ist, muss nun der öffentliche Schlüssel in GitHub eintragen werden. Der öffentliche Schlüssel liegt in diesem Beispiel in "~/.ssh/id_github.pub". In den GitHub-SSH-Einstellungen muss dann der Inhalt dieser Datei eingefügt werden.

Repository klonen

An dieser Stelle kann man das Repository erstmals klonen. Dazu braucht man die URL, um es über SSH zu klonen. Dies findet man entweder auf der GitHub-Repository-Seite oder man setzt es sich selbst zusammen, da es immer dem gleichen Schema folgt. In meinem Beispiel heißt das Repository „drunken-nemesis“ im Nutzer-Konto „svijee“. Das Repository findet sich daher unter https://github.com/svijee/drunken-nemesis. Unter der rechten Seitenleiste auf GitHub findet sich die URL zum Klonen via SSH, HTTPS oder Subversion. Relevant ist in der Regel nur das Klonen via SSH.

$ git clone git@github.com:svijee/drunken-nemesis.git
Klone nach 'drunken-nemesis'...
Enter passphrase for key '/home/sujee/.ssh/id_github': 
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Empfange Objekte: 100% (3/3), Fertig.
Prüfe Konnektivität... Fertig.

Wenn man das Repository direkt klont, konfiguriert Git automatisch das geklonte Repository als das „origin“ Remote-Repository. Dies kann man nachvollziehen, wenn man in das Verzeichnis wechselt und dort die Remote-Repositorys auflistet.

$ cd drunken-nemesis
$ git remote -v
origin  git@github.com:svijee/drunken-nemesis.git (fetch)
origin  git@github.com:svijee/drunken-nemesis.git (push)

Anschließend kann man alle gewünschten Funktionen von Git nutzen, wie das Erstellen von Branches und Commits. Diese können dann anschließend gepusht werden, um die Änderungen über GitHub zur Verfügung zustellen. Die Änderungen lassen sich auch auf der Webseite von GitHub selbst ansehen, sodass man Repositorys nicht zwangsläufig klonen muss. Unter github.com/svijee/drunken-nemesis/commits/master finden sich etwa alle Commits die auf dem Branch "master" getätigt wurden. Ebenfalls kann man dort zwischen den Branches wechseln.

GitHub-Workflow

Das Besondere an GitHub ist, dass es nicht nur eine einfache Möglichkeit bietet eigene Git-Repositorys zu hosten, sondern auch, dass man mit wenigen Schritten Änderungen an Repositorys von anderen Personen oder Organisationen vorschlagen kann, die dann übernommen werden können.

Jedes GitHub-Repository lässt sich im Browser forken. Bei einem Fork spricht man von einer Abspaltung. Hin und wieder hört man bei größeren Open-Source-Projekten, das ein Fork entstanden ist. So ist die Büro-Suite LibreOffice ein Fork von OpenOffice.org, wo allerdings nicht die Änderungen zu OpenOffice.org zurückgeflossen sind. Bei GitHub hat ein Fork in der Regel eine etwas andere Bedeutung. In der Regel liegen die Zugriffsberechtigungen an einem Repository allein bei dem Besitzer des Repositorys. Über GitHub kann man nun Änderungen an einem Repository vorschlagen, dazu muss man den Fork-Button im Browser drücken. Dann wird eine Kopie (der Fork) des Repositorys erzeugt und im eigenen Account abgelegt. Dort besitzt man anschließend alle nötigen Schreibrechte. Wenn man also an dem Repository svijee/drunken-nemesis Änderungen vorschlagen möchte, erstellt GitHub nach dem Drücken des Fork-Buttons eine Kopie des Repositorys unter $DEINNAME/drunken-nemesis. GitHub zeigt selbst direkt auch an, dass es sich um einen Fork des Haupt-Repositorys handelt.

An dem Fork kann man nun wie gewünscht auf einem Branch die gewünschten Änderungen in Form von Commits durchführen. In der Regel bietet es sich an, dafür einen extra Branch anzulegen in dem man die Commits hinzufügt. Fehlen darf dafür natürlich kein Beispiel:

$ git clone git@github.com:$DEINUSERNAME/drunken-nemesis.git
$ cd drunken-nemesis

Anschließend kann man etwa eine Datei namens "README" mit beliebigen Inhalt hinzufügen, die anschließend commited werden kann.

$ git add README
$ git commit -m "README Datei hinzugefügt."

Zur Wiederholung: Wichtig ist an diesem Punkt, dass man nicht vergisst das Repository zu GitHub zu pushen. Da Git bekanntlich ein verteiltes Versionsverwaltungssystem ist, sind die Änderungen bis zu diesem Punkt nur lokal verfügbar. Daher muss man noch "git push" ausführen, um die Änderungen zu dem Remote-Repository auf GitHub zu übertragen.

Anschließend kann man über GitHub den sogenannten Pull-Request erstellen, in dem man die Änderungen die man gemacht hat, dem Haupt-Repository zur Übernahme vorschlägt. Bei jedem Repository, wo die Pull-Request-Funktion nicht abgeschaltet wurde, findet sich auf der Repository-Seite der Menüpunkt „Pull Requests“ auf der sich vorhandene, offene Pull-Requests befinden und auch neue angelegt werden können. Beim Anlegen müssen dann beide Branches, jeweils aus dem Quell- und Ziel-Repository, ausgewählt werden, die zunächst verglichen werden können. Sofern alle benötigten Änderungen in dem Pull-Request enthalten sind, kann der Request angelegt werden. Die Mitarbeiter an dem Haupt-Repository, an dem der Pull-Request gestellt wurde, können diesen Kommentieren oder direkt annehmen.

Arbeiten mit zwei Remote-Repositorys

Wenn man regelmäßig an einem Projekt über GitHub beiträgt, bietet sich eine lokale Konfiguration an, die das Arbeiten mit zwei Remote-Repositorys erleichtert. Dadurch, dass man letztendlich mit zwei Repositorys arbeitet, müssen beide korrekt verwaltet werden. So gibt es einmal das eigene Repository, in dem man Schreibrechte besitzt und das Repository des Projektes, wohin die Pull-Requests und auch anderen Änderungen des Projektes fließen. Man sollte daher immer beachten, dass man sein eigenes Repository auf dem eigenen Stand hält.

Wenn die oben aufgeführten Befehle ausgeführt hat, ist der eigene Fork als Remote-Repository "origin" konfiguriert. Dies sollte man genau so belassen, da man alle Branches in das eigene Repository pusht. Jetzt sollte man das Repository des Projektes ebenfalls als Remote-Repository hinzufügen, hier bietet es sich an, es "upstream" zu nennen, da es sich schließlich um das Upstream-Projekt handelt.

$ git remote add upstream git@github.com:svijee/drunken-nemesis.git

Jetzt ist zwar das Repository konfiguriert, allerdings sind die Änderungen noch nicht heruntergeladen. Dies kann man mit einem der beiden aufgeführten Befehle durchführen.

$ git remote update 
$ git fetch upstream

Während der erste Befehl alle Remote-Repositorys herunterlädt, lädt letzterer Befehl nur das Remote "upstream" herunter. In der Regel ist es nun so, dass sich auf dem Upstream-Repository einiges tut, diese Änderungen müssten dann regelmäßig in das eigene Repository übernommen werden. Dazu sollte man regelmäßig "git remote update" ausführen und anschließend den Branch aus dem Remote-Repository in den Branch des eigenen Repositorys mergen. In diesem Beispiel, ist es der Branch "master" den man aktualisieren möchte.

$ git merge upstream/master

Sofern keine Änderungen auf dem Branch "master" im eigenen Repository sind, sollte der Merge problemlos funktionieren. Änderungen, die man dem Haupt-Repository beifügen will, sollte man daher immer in einem neuen Branch anlegen, um Merge-Konflikte zu vermeiden.

Häufig passiert es aber auch, dass man Pull-Requests anlegt, die zu einem späteren Zeitpunkt nicht mehr automatisch ohen Konflikte gemergt werden können. Als Einreicher von Pull-Requests sollte man also immer darauf achten, dass der Pull-Request ohne Konflikte gemergt werden kann. Da dies nicht immer möglich ist, müssen gegebenfalls Commits aus dem Entwicklungs-Branch des Haupt-Repositorys übernommen werden. Diese kann man entweder mit dem "git merge" Befehl mergen, schöner ist es allerdings, wenn man ein Rebase durchführt, der im dritten Teil dieses Tutoriums erläutert wurde.

Weitere Funktionen von GitHub

GitHub bietet nicht nur das Hosten von Repositorys an. Die Funktionen sind mittlerweile vielfältig und decken so gut wie alle Wünsche ab, die man für ein Software-Projekt haben kann. Darunter ein Ticket-System („Issues“) und ein Wiki. Beides ist direkt über das Repository zu erreichen. Daneben kann man auch statische Webseiten mit GitHub Pages hosten oder Gists als Lager für einzelne Dateien anlegen.

Alternativen

GitHub ist nicht die einzige Plattform, welche das Hosten von Repositorys mit sinnvollen Features erweitert um einfach und kollaborativ an Projekten zu arbeiten. So hat GitHub auch Nachteile, etwa steht es selbst nicht unter eine Open Source Lizenz und das Hosten von privaten, nicht öffentlichen Repositorys kostet Geld.

Als Alternative seien Gitlab und Bitbucket genannt, bei denen man auch private Repositorys mit einigen Begrenzungen kostenlos hosten kann. Gitlab kann man aber auch selbst auf eigenen Servern hosten, sodass man etwa für den Firmen-internen Gebrauch von Closed Source Software den Quellcode nicht auf fremde Server hochladen muss.

Wochenrückblick 19/2015

Permalink deesaster.org

Der Wochenrückblick lässt das Geschehen der vergangenen Woche rund um Ubuntu, Linux und Open Source Revue passieren.

Rund um Ubuntu

Ubuntu 15.10 heißt Wily Werewolf

In der Keynote des Ubuntu Online Summit hat Mark Shuttleworth den Namen der nächsten Ubuntu-Version 15.10 bekannt gegeben: Wily Werewolf („Gerissener Werwolf“) wird die Version heißen und vor allem den Punkt Konvergenz von Handy und Desktop soll weiter angegangen werden.

Mehr Informationen gibt es im Ikhaya-Artikel.

Weitere Quellen: OMG!Ubuntu!, Pro-Linux, heise open, Golem, Linux-Magazin

Xubuntu Core vorgestellt

Mit Xubuntu Core (das nichts mit Snappy und Ubuntu Core zu tun hat) hat das Xubuntu-Team eine Minimalversion ihres Betriebssystems vorgestellt. Über das bereitgestellte Image wird ein System mit Xfce und dem Look&Feel von Xubuntu installiert; Office, Mediaplayer und sonstige Anwendungen fehlen aber. Diese können je nach Bedarf nachinstalliert werden. Eine offizielle Version soll es ab Ubuntu 15.10 geben.

Quelle: Xubuntu-Blog, OMG!Ubuntu!, Pro-Linux

Ubuntu-Server mit networkd

Noch ist es nicht offiziell abgesegnet, aber für das kommende Ubuntu 15.10 denken die Ubuntu-Entwickler die testweise Integration von networkd in die Distribution an. networkd ist Teil des systemd-Projekts und sorgt für die Konfiguration der Netzwerkschnittstellen.

Quelle: Golem

Spielen unter Linux

Cyberpunk-RPG Dex veröffentlicht

Das Cyberpunkt-Action-Rollenspiel Dex wurde von Entwicklerstudio Dreadlocks Ltd. für Linux, MacOS X und Windows veröffentlicht. In dem seitwärtsscrollenden 2D-Spiel muss man gegen eine künstliche Intelligenz kämpfen, die sich über die Menschheit stellen will. Die Grafik ist sehr detailreich, aber thematisch ebenso düster gehalten. Das Spiel kann über Steam, aber auch DRM-frei, beispielsweise im Humble Store bezogen werden.

Quelle: LinuxGames

Humble Weekly Bundle: Surprise Attack

Das wöchentliche Humble-Bundle kann diesmal mit sieben Spielen für Linux, davon nur eines nicht DRM-frei, aufwarten. Wie immer kann man den Preis selbst wählen, den man bezahlen will. Ab einem US-Cent erhält man das Puzzle-Jump'n'Run Oscura: Lost Light, das Top-Down-Actionspiel Metrocide (nicht für Linux) und das Tower-Defense-RPG OTTTD {e}. Ab 6 US-Dollar gibt es das Strategiespiel A Druid's Duel, das Puzzlespiel Particulars und den Kampfroboter-Shooter Robocraft (nur über Steam als Early Access) dazu. Und ab 12 US-Dollar erhält man noch das Steampunk-Minigolf-Spiel Vertiginous Golf und Screencheat in doppelter Ausführung.

Manjaro ist einen Blick wert

Permalink Intux

Ich habe mir die Linux-Distribution Manjaro einmal etwas näher angeschaut. Die deutsch-französisch-österreichische Gemeinschaftsproduktion basiert auf Arch Linux. Das Interessante an Manjaro ist, dass es sich hierbei um ein Rolling Release handelt und man so das System sowie die Software aktuell hält.

Das von mir verwendete Installationsmedium ist mit 1,5GB zwar recht groß, bringt aber schon einige Dinge mit die nicht ganz selbstverständlich sind, wie z.B. Steam. Der bevorzugte Desktop ist dabei Xfce. Als Paketverwaltung dient Pacman.

Trotzalledem denke ich nicht, dass Manjaro etwas für einen Linux-Einsteiger ist. Dagegen spricht einfach das Aktualisierungsmodell, wo es mit Sicherheit hier und da mal klemmen kann. Erfahrenere und experimentierfreudigere User werden mit Manjaro jedoch ihre Freude haben. Ein schicker Desktop, eine Vielzahl von Paketen und ein aktueller und sicherer Unterbau sollten dies ermöglichen.

Hier nun ein kleiner Einblick:

news-512

news-513

news-514

news-515

news-516

9. Mai 2015

[nginx] installation unter centos7

Permalink itbasic

Um nginx installieren zu können wird zunächst ein Software Repository benötigt, welches unter dem Benutzer root hinzugefügt wird.
yum install epel-release

Im zweiten Schritt kann nginx installiert werden:
yum install nginx

Nach Abschluss der Installation kann der Dienst über systemctl start nginx.service gestartet werden. Damit der Zugriff per Browser möglich ist, muss der Port 80 in der Firewall geöffnet werden.

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload

Nun ist ein Aufruf per Browser über http://serverip möglich.

nginx Startseite

Damit nginx beim nächsten Systemstart mit gestartet wird, muss folgender Befehl ausgeführt werden:
systemctl enable nginx.service

Möchte man an dem default vhost(server block) ein paar Anpassungen vornehmen, so befindet sich die Standardkonfiguration in der Datei /etc/nginx/nginx.conf. Die html Dateien befinden sich in dem Verzeichnis /usr/share/nginx/html/.

Firefox 39+ mit Webkit-Emulation für bestimmte Webseiten

Permalink Sören Hentzschel

Firefox 39 besitzt ein neues Feature, um CSS-Eigenschaften mit dem -webkit-Präfix zu emulieren und somit korrekt darzustellen. Dies gilt allerdings nicht für jede beliebige Webseite, sondern nur für eine kleine Auswahl an Webseiten, welche fix in Firefox hinterlegt ist und auch nicht verändert werden kann. Webentwickler müssen also auch weiterhin darauf achten, nicht nur für Webkit-Browser Code zu schreiben.

Sogenannte CSS Vendor-Präfixe sind, auch wenn die Idee dahinter gut sein mag, oftmals ein Problem. Nämlich dann, wenn Webentwickler die Browser, welche logischerweise die herstellerspezifischen Präfixe der anderen Browser nicht kennen, vergessen oder gar bewusst ignorieren. Die Folge sind Webseiten, welche in den einen Browsern gut aussehen, in anderen Browser aber nicht, obwohl es überhaupt keinen technischen Grund dafür gibt und diese Browser sehr wohl in der Lage wären, die entsprechende Webseite korrekt darzustellen.

Mozilla hat sich diesem Problem angenommen und so kann Firefox ab Version 39 einige Webkit-Eigenschaften emulieren, als wären sie für das Web geschrieben worden. Allerdings dürfen Webentwickler nun nicht auf die Idee kommen, jetzt erst Recht nur noch für Webkit zu entwickeln, denn nun kommt das Aber: es handelt sich dabei um keine grundsätzliche Fähigkeit von Firefox, was für das Web auch eher schlecht als recht wäre. Stattdessen hat Firefox eine Liste von Webseiten fest implementiert bekommen, welche auch nicht durch den Nutzer verändert werden kann, und diese Liste beinhaltet auch nur wenige Webseiten, vor allem aus China und Japan. Die Idee dahinter dürfte sein, ein paar relevante Webseiten mit großen Darstellungsproblemen für Firefox-Nutzer benutzbar zu machen, wenn es nur an herstellerspezifischem CSS scheitert. In erster Linie geht es dabei um Firefox für Android, weil es besonders auf den mobilen Sektor zutrifft, dass häufig nur für Webkit entwickelt wird. Da dieses Feature allerdings auf Gecko-Ebene implementiert worden ist, ist dies auch uneingeschränkt für die Desktop-Version wirksam, was auch Sinn ergibt, da Gecko auf dem Desktop möglichst das Gleiche darstellen sollte wie Gecko auf dem Smartphone. Das Ziel ist außerdem eine Liste, die so klein, nicht so groß wie möglich ist, denn die beste Lösung für das Web ist ohne jede Frage das Entwickeln von Webseiten, die in jedem Browser funktionieren. Die Emulation für jede beliebige Webseite wäre kontraproduktiv und würde ein vollkommen falsches Signal an die Webentwickler-Community senden. Die Einstellung in about:config, um die Emulation zu deaktivieren, heißt layout.css.unprefixing-service.enabled.

8. Mai 2015

OnePlus One und Lollipop

Permalink Intux

Mit zwei Wochen Verspätung nach Beginn des Rollout am 14.04.2015 ist das Upgrade Cyanogen OS 12 mit Android Lollipop 5.0.2 am 01.05.2015 auf meinem One angekommen. Die Freude hierüber hielt jedoch nicht sehr lange an. Ich bemerkte, dass ich mindestens einmal am Tag arge Probleme mit dem Touchscreen bekam. Die Bedienung hakte oder war teilweise gar nicht mehr möglich. Ein Neustart behob das Problem zeitweise.

news-510 news-506

news-507 news-511

news-508 news-509

Eine Erklärung hatte ich hierfür nicht. Ein Wipe des Caches im Recovery Mode brachte auch nichts.

Was mir jedoch auffiel war, dass das Smartphone sobald ich mich im WLAN befand keinerlei Ausfälle hatte. Irgendwann kam mir die Idee, dass es eventuell an der Netzsuche liegen könnte. Da ich eh kein LTE nutze, stellte ich Mobilfunknetze => Bevorzugter Netzwerktyp  von LTE (empfohlen) auf 3G.

Seitdem klappt’s nun auch mit Lollipop aus dem One.

Dinge die ich bediene.

Permalink noqqe.de

Ich glaube ich habe mich noch niemals bzgl. meiner privaten Situation mit Technik so wohl gefühlt wie bisher. Das Equipment, das OS. Macht Spaß und funktioniert.

Ein bisschen wie bei usesthis.com (wtf, wie langweilig ist bitte das Setup von Bruce Schneier?) beschreibe ich mal was ich so benutze.

MacBook Pro 13”

Seit Ende 2014 benutze ich ein MacBook. Mein Zweites. Zwischenzeitlich hatte ich ein Lenovo Thinkpad x201 was zwar seitens der Hardware super geil war, mir aber das mit dem Betriebssystem und alles zum Hals raushing. Hatte ich schon erwähnt das 2015 das Jahr von Linux auf dem Desktop ist?

All diese Dinge die bei OS X einfach so angenehm sind. Safari synchronisiert einfach alles zwischen iPhone und anderen MacBooks hin und her. Airmail2 als Mailclient ist großartig. Die Kalender & Adressbuch Synchronisation rockt. Nutze 1Password, Spotify und seit dem Switch von iPhoto zu Photos kann man das auch wieder benutzen. Ich mag es sehr wie alles sich integriert, funktioniert und man eigentlich nie irgendwas tun muss. Ganz besonders toll: Die iMessage/SMS/FaceTime vom Handy zum OS. Ich hätte nie gedacht, dass ich das so intensiv benutze. Mit iMessage beweist Apple auch noch, dass benutzerfreundliche Crypto nicht unmöglich ist. Die Meisten wissen es nichteinmal.

Genug Kuschelkurs, OS X Liebesschwüre gibts schon genug im Netz. Die uralte Software z.B. rsync oder OpenSSH ist ein echtes Unding. Auch iTunes. Ich benutze es einfach nicht. Es fehlt mir nicht.

OpenBSD CLI VM

Ich habe es mir angewöhnt alles was ich so für den Alltag brauche auf einer klein dimensionierten VM irgendwo im Internet zu hosten.

Das ist extrem praktisch, da ich egal wo ich bin, egal an welchem Rechner ich sitze immer alles da habe. Software die ich dort auf dem bei rootbsd gehosteten System nutze ist unter Anderem:

Auf der Maschine befindet sich sonst nichts. Alles läuft unter meinem User, kein Daemon der lauscht, nichts. Gesichert wird die Kiste mittels tarsnap

Klar hat das auch Nachteile, ich kann auf meine Todoliste nicht zugreifen wenn ich nur mit dem iPhone bestückt im Supermarkt stehe, aber diesen Use-Case habe ich auch einfach nicht. Mit newsbeuter Urls im Browser öffnen ist auch bescheiden, daher muss ich dort immer klicken. Wenn jemand hierfür eine Lösung hat, immer her damit.

OpenBSD Server

Der Normal-Nerd hat natürlich auch Bedürfnisse Dinge zu hosten. Deshalb gibts eine zweite Maschine, die alle meine Dienste bereitstellt die ich so brauche, diverse PHP/MySQL Applikationen für den Eigengebrauch.

OpenBSD, brauche ich jetzt nicht erwähnen, ist dafür momentan so mein liebstes OS. Sicher per default. Die Devs hauen immer wieder allerhand nützliche Sachen wie lustiges Crypto für Ping oder seit neuestem privilege separated file

  • Meine privaten git Repos mit gitolite
  • der Blog
  • Zwei Instanzen von nichtparasoup
  • Isso Kommentarsystem
  • MongoDB
  • und diverse andere Websites

Demnächst kommst vielleicht noch etwas DNS hinzu, was ich dort hoste.

Dinge die mich Nerven gibt es auch hier. Nämlich die fehlende SNI Funktionalität bei httpd, relayd und libTLS. Somit muss ich bisher noch nginx für die Websites nutzen. Aber das ist nur eine Frage der Zeit.

Banshee mit Problemen unter Ubuntu 15.04

Permalink ME and my U

Nachdem ich mein System mit Ubuntu 15.04 (Vivid Vervet) neu aufgesetzt, Banshee nachinstalliert und meine Musikbibliothek frisch importiert hatte, machte der Medienplayer leider ein paar Probleme. Was mir aufgefallen ist…

Problem #1 – Langsamer Start

banshee-1504Das Hauptproblem ist der (gelinde gesagt) langsame Start von Banshee. Es sieht zunächst so aus, als würde das Programm hängen bleiben. Das Fenster wird erst einmal komplett weiß, nach einer Weile dann ganz grau dargestellt. Es sieht so aus, als wäre die UI kaputt.
Tatsächlich ist es bei mir (ca. 115GB Daten) allerdings so, dass im Hintergrund drei Datenbank-Statements mit jeweils rund 20 Sekunden Verarbeitungszeit abgesetzt werden und Banshee sich daher erst nach etwa einer Minute meldet.

Interessant ist, dass Banshee in 15.04 in derselben Version vorliegt, wie noch unter meiner vorigen Installation mit Ubuntu 14.04.02 – nämlich in Version 2.6.2. Ausschlaggebend für die unperformante SQL-Ausführung scheint vielmehr eine Umstellung in SQLite3 zu sein, denn da ist nun anstatt der Version 3.8.2 die Version 3.8.7.4 aktiv.

Das Problem ist schon in verschiedenen Bugreports gemeldet worden, siehe z.B. Bug #1447956 bei Launchpad oder Bug #740879 im Gnome-Bugzilla. Wenn ihr auch betroffen sein solltet, meldet das doch bei Launchpad.

Ob das Problem bei euch genauso zum Tragen kommt, könnt ihr prüfen, indem ihr Banshee im Debug-SQL-Modus startet. Dazu startet ihr Banshee im Terminal folgendermaßen:

banshee --debug-sql >/tmp/dbgsql.log

Nachdem Banshee ansprechbar ist, könnt ihr die geschriebene Protokolldatei /tmp/dbgsql.log auf lang laufende SQLs analysieren. Mit folgendem grep könnt ihr beispielsweise die Zeilennummern herausbekommen, an denen SQL-Statements zu finden sind, die 1000ms und länger gedauert haben:

grep -n "[0-9]\{4,\}ms" /tmp/dbgsql.log

Bei mir sind so dann Statements wie dieses hier zu finden:

DELETE FROM CoreCache WHERE ModelID = 21;
INSERT INTO CoreCache (ModelID, ItemID) SELECT 21, CoreTracks.TrackID
FROM (SELECT MIN(CoreTracks.TrackID) AS TrackID, CoreTracks.Year FROM CoreTracks GROUP BY CoreTracks.Year) AS CoreTracks
WHERE CoreTracks.Year IN
(SELECT CoreTracks.Year FROM CoreTracks, CoreCache
WHERE CoreCache.ModelID = 83 AND
CoreCache.ItemID = CoreTracks.TrackID )
ORDER BY Year

Warum das Statement so viel Zeit benötigt, konnte ich leider nicht herausbekommen, zumal es beim Versuch auf der DB-Shell recht flott ausgeführt wurde.

Aus den Bugreports ist zu entnehmen, dass es mit der neuen 2.9er-Version vermutlich gelöst sein sollte – hier wurde ein Hinweis (UNLIKELY) an den Optimizer von SQLite eingebaut. Ich habe es mir aber bislang erspart, die Version zum Test selbst zu kompilieren. Außerdem ist auch jemand der Meinung, dass die Statements an sich nicht optimal aufgebaut sind und daher überarbeitet werden sollten.

Vor dem kompletten Neuimport der Musikbibliothek habe ich übrigens auch den Weg probiert, die Datenbank und die Covers einfach zu kopieren – mit demselben Ergebnis.

Problem #2 – Kein Menü

Das nächste Problem ist, dass Banshee kein Menü darstellt. Man hat über die UI also keinerlei Zugriff auf die Einstellungen oder beispielsweise den Import-Dialog.
Als kleinen Workaround kann man Banshee beim Start einen Parameter mitgeben, der den gewünschten Dialog direkt aufruft.

So öffnet folgender Aufruf z.B. direkt den Konfigurations-Dialog:

banshee --show-preferences

Und dieser hier den Import-Dialog:

banshee --show-import-media

Weitere Hinweise bekommt ihr mit:

banshee --help-ui

Der Fehler tritt übrigens unabhängig davon auf, ob die Menüs in der Titelleiste des Fensters oder in der Menüleiste (siehe EinstellungenDarstellung in 15.04) dargestellt werden.
Für dieses Problem liegen ebenfalls schon Bugreports vor: siehe Bug #1450897 und Bug #1450197 bei Launchpad.

Problem #3 – Dateien umbenennen Import in Musiksammlung

Schließlich habe ich über diesen Workaround neue Musik in meine Bibliothek importiert. Dabei habe ich (wie hier beschrieben) Banshee so konfiguriert, dass es beim Import die Musikdateien in meinen Musikordner kopiert und dabei laut den Tags einheitlich umbenennt. Leider scheint das Ersetzen nicht so wie gewohnt zu funktionieren. Zumindest der optionale Part mit der CD-Nummer sieht im Ergebnis falsch aus.

Diesen Punkt werde ich mir allerdings erst dann noch einmal genau ansehen, wenn Banshee im aktuellen Ubuntu überhaupt zu gebrauchen ist.
Hoffentlich gibt es bald eine Lösung, denn, wie ich festgestellt habe, komme ich mit Rhythmbox nicht mehr ganz so gut klar…

7. Mai 2015

Bash wortweise vor und zurück

Permalink onli blogging

Ein Beispiel: Ich tippe in ein Terminal apt-get instal icewm. Es müsste install heißen. Also muss ich mit den Pfeiltasten Buchstabe für Buchstabe zurückgehen und das l eintippen. Natürlich geht es besser.

Stattdessen könnte ich Alt+b drücken. Das setzt den Cursor ein Wort zurück. Mein Problem damit ist, dass ich es immer vergesse.

Im Gnome-Terminal auf meinem Laptop funktioniert auch Strg+Pfeiltaste, um wortweise nach links oder rechts zu gehen. Um das in meinem Desktop nachzurüsten, musste ich folgenden Code in die ~/.inputrc einfügen:

"\e[1;5C": forward-word
"\e[1;5D": backward-word

Seitdem funktioniert Strg+Pfeiltaste auch im xfce4-Terminal und im Terminator (via).

6. Mai 2015

Thunderbird 38 wird später erscheinen

Permalink Sören Hentzschel

Thunderbird 38 wird nicht wie Firefox 38 am 12. Mai erscheinen. Das Thunderbird-Team benötigt weitere Zeit zum Beheben von Fehlern.

Thunderbird 38 wird der nächste große Thunderbird-Release nach Thunderbird 31 sein, entsprechend wichtig ist die Sicherstellung der Qualität. Stellvertretend für das Thunderbird-Team hat Kent James nun angekündigt, dass man Thunderbird 38 um ein paar Wochen verschieben und die neue Version von Mozillas E-Mail-Client nicht gemeinsam mit Firefox 38 am 12. Mai erscheinen wird. Ein definitiver Termin wurde nicht genannt, man geht derzeit aber davon aus, dass Thunderbird 38 um den 26. Mai herum erscheinen wird, was eine Verschiebung von zwei Wochen bedeuten würde.

Derzeit gibt es noch ein paar Fehler, die man vor Veröffentlichung beheben möchte. Außerdem sei die letzte Woche veröffentlichte Betaversion die erste Beta mit dem vollen Funktionsumfang, daher benötige man noch weitere Zeit zum Testen. Bis zur Veröffentlichung der finalen Version von Thunderbird 38 sind weitere Betaversionen geplant.