ubuntuusers.de

10. Juni 2014

Für was ist das gut?

Um den Netzwerktraffic unter Linux zu analysieren, gibt es zahlreiche Werkzeuge wie ethstatus, iptraf oder iftop. Allerdings zeigen die meisten Programme nur von und zu welcher IP der Datenverkehr durch die Leitung geschickt wird oder wie viel gerade fließt. Möchte man dagegen wissen, welcher Prozess den meisten Netzerwerkverkehr gerade im Moment verursacht, tappt man bei den genannten im Dunkeln. Das Licht schafft hier das kleine Kommandozeilenwerkzeug Nethogs.

Allerdings gibt es vorab erwähnt auch ein paar kleinere Feature-Lücken: So kann keine Sortierung nach Programmnamen stattfinden, Nethogs muss immer mit Root-Rechten ausgeführt werden, zeigt nur den aktuellen Netzwerkverkehr und lässt UDP unter den Tisch fallen (relevant zum Beispiel für BitTorrent).

Installation

Das Progamm findet sich eigentlich in jedem Repositorium einer Linux-Distribution, zum Beispiel Ubuntu oder Arch Linux. Notfalls kann man aber auch den Quellcode selbst kompilieren.

Verwendung

Grundsätzlich lässt sich Nethogs mit dem gleichnamigen Kommandozeilen-Befehl ausführen. Jedoch sind dazu Root-Rechte notwendig.

1
$ sudo nethogs

Standardmäßig lauscht Nethogs an eth0. Verwendet man allerdings WLAN übergibt man – für die erste WLAN-Schnittstelle – wlan0 als Parameter.

1
$ sudo nethogs wlan0

Sollte das immer noch nicht zu Erfolg führen, gibt der folgende Befehl alle lokalen Netzwerkschnittstellen aus.

1
$ ifconfig

Die gewünschte Schnittstelle dann Nethogs entsprechend als Parameter übergeben. Danach präsentiert sich Nethogs als ncurses-Oberfläche wie im Screenshot.

Aussehen von Nethogs: tabellenartig mit 6 Spalten. Eine Spalte für die
PID, der Nutzer der das Programm ausführt, der Programmname, die
Netzwerkschnittstelle sowie die Menge an gesendeten und empfangenen
Daten.
So tabellenartig sieht Nethogs aus.

Die einzelnen Spalten sind eigentlich selbsterklärend. Zudem kann man über Tastenkürzel Nethogs ein wenig anpassen; kurz die meiner Meinung nach wichtigsten Optionen:

  • M: Zwischen den Einheiten KB/s, KB, B oder MB umschalten
  • R: Sortierung nach empfangenen Daten (received)
  • S: Sortierung nach gesendeten Daten (send)
  • Q: Programm schließen (Alternative zu Strg + C)

Die (kleine) Liste aller Optionen finden sich entweder in der manpage oder auf Deutsch im Ubuntuusers-Wiki.

Fazit

Nethogs ist ein kleines Werkzeug, das einfach nur macht, was es soll – nämlich den aktuellen Netzwerkverkehr auf die einzelnen Prozesse aufgliedern. Die bestehenden „Problemchen“ wie fehlende UDP-Unterstützung oder Sortiertung allein nach Datentraffic werden ggf. in einer nächsten Version ausgebügelt.

Ohloh erinnert mich an ein modernes freshmeat, auch wenn das inzwischen freecode heißen mag. Es listet Softwareprojekte mit ihren Metadaten, baut aus ihrem Quellcode nette Statistiken und zieht Schlussfolgerungen über den Zustand des Projektes.

Das funktioniert nicht immer fehlerfrei, aber die Fehler sind verständlich. So denkt Ohloh, dass izulu ein neues Projekt sei, weil der Code auf Github eben erst vor drei Monaten eingecheckt wurde und vorher fast 5 Jahre in Archiven auf sourceforge herumlag, mit denen es natürlich nichts anfangen kann.

Bei Serendipity stoppte die Analyse auf einem Stand von vor mehreren Jahren, wahrscheinlich kam es mit dem abgeschalteten - aber nicht aus der Repoliste entfernten - berlios-svn nicht zurecht. Dem abgeholfen denkt es, dass s9y zu 30% aus XML-Dateien bestehen würden, weil die XML-Dateien in additional_plugins eben entsprechend groß sind. Und ausschließen kann man sie nicht alle, dafür sind sie zu viele (mehr als 1000 Zeichen verbietet das Disallow-Tool). Edit: Ich habe da nochmal drüber nachgedacht und jetzt einfach das Repo rausgeschmissen, sodass nur s9y selbst analysiert wird. Ermöglicht einen besseren Vergleich mit Wordpress.

Der Sprung um 1 Millionen LoC Ende 2011 ist wohl eine Fehlberechnung, weil seitdem git und svn parallel betrieben werden

Aber zumindest werden jetzt die Serendipity-Statistiken überhaupt wieder berechnet, und aus einem vermeintlich toten Projekt ist ein angeblich sehr aktives geworden, was inzwischen auch wirklich stimmt. Und ich glaube, den 2.0-Branch ignoriert er, das wird nach dem Merge nochmal ein hübscher Sprung, zumindest bei den Commits.

Die Projekte so präsentiert zu sehen ist hübsch, und sicher nicht unnütz, falls sich ab und an Nutzer tatsächlich damit ein Bild einer bestimmten Software machen, oder eher Entwickler Projekte in einem bestimmten Feld suchen.

Für mich spaßiger sind die Entwicklerstatistiken. Als Entwickler kann ich meine Commits claimen, und Ohloh baut dann für mich ein paar Graphen und Fakten. So sei ich am erfahrensten in PHP, was mit meinem Selbstbild kollidiert, aber inzwischen wahrscheinlich schlicht stimmt, auch wenn ein gewisser Teil meines PHPs s9y-spezifisch sein dürfte.

Dann noch ein paar Badges dazu und schon hat die Seite es geschafft, dass ich mein Profil dort ein bisschen ausgefüllt habe. Und nebenbei fehlende Projekte in das Register eingetragen habe, was den Wert der Seite erhöht - saubere Manipulation mithilfe der eigenen Eitelkeit, oder nennen es wir Interesse; gutes Handwerk.

Ich finde es gut, eine zusätzliche und moderne Softwarepräsentationsseite gefunden zu haben. Es ist nun sicher nicht so, dass ich die Seite täglich besuchen werde, aber ab und an mal vorbeischauen oder mich von dort auf die eigentliche Projektwebseite leiten zu lassen, das kann ich mir schon vorstellen. Und als Gegengewicht für Github erfüllt es auch eine sinnvolle Funktion, sodass dieses neben dem Hosten der Projekte selbst nicht zwingend auch Hauptanlaufpunkt für Statistiken der Projekte und Selbstrepräsentation der Entwickler sein muss.

Seit der automatischen Upgrade-Funktion von Piwik geht das Update auf eine neue Piwik-Version bekanntlich schnell und unkompliziert. Ich habe bereits die eine oder andere Version über die Funktion aktualisiert und seither noch nie ein Problem gehabt – doch einmal ist ja bekanntlich immer das erste Mal:

Fai­led to load HTML file: Please check your ser­ver con­fi­gu­ra­tion. You may want to whi­te­list “*.html” files from the “plugins” direc­tory. The HTTP sta­tus code is 404 for URL “plugins/ZenMode/angularjs/quick-access/quick-access.html“

Diese Meldung spuckt mir das Webinterface nach einem erfolgreichen Upgrade entgegen. Und sie hat nicht ganz unrecht – wenn ich die Datei im Browser direkt öffnen möchte, so erhalte ich eine Zugriffsverletzung…

Um die Meldung wegzubekommen (eine Einschränkung in der Funktionalität konnte ich bisweilen nicht feststellen), müssen die Berechtigungen auf 3 Ordner von 750 auf 755 geändert werden:

1. /plugins/ZenMode/
2. /plugins/ZenMode/angularjs/
3. /plugins/ZenMode/angularjs/quick-access/

Hierbei sollte auch nur die Berechtigung der Ordner und nicht der Dateien angepasst werden, da dass Erlauben zum Ausführen für Alle mir bereits etwas Bauchschmerzen bereitet.

9. Juni 2014

Historisches

OpenOffice.org war eine quelloffene Bürosoftware, welche im Jahr 2000 aus dem Quellcode des kommerziellen Office-Programms StarOffice hervorgegangen ist. Teil von OpenOffice.org waren die Anwendungen Writer (Textverarbeitung), Calc (Tabellenkalkulation), Impress (Präsentationen), Draw (Zeichnen), Base (Datenbanken) sowie Math (Formel-Editor).

Im September 2010 haben zahlreiche Entwickler der Office-Suite OpenOffice.org dem Projekt – wegen Meinungsverschiedenheiten mit der Firma Oracle – den Rücken gekehrt und das LibreOffice-Projekt gegründet, welches von der Stiftung The Document Foundation getragen wird. Grundlage für LibreOffice war der Quellcode von OpenOffice.org.

Daraufhin hat sich Oracle im Juni 2011 komplett aus dem OpenOffice.org-Projekt zurückgezogen und die Entwicklung sowie die Markenrechte von OpenOffice.org in die Hände der Apache Software Foundation gelegt, welche das Office-Paket von OpenOffice.org in Apache OpenOffice umbenannte.

Co-Existenz zwischen Apache OpenOffice und LibreOffice

Seitdem (Stand: Juni 2014) herrscht eine Co-Existenz zwischen den beiden kostenlosen Office-Programmen, was vor allem bei EDV-Laien nach wie vor zu Verwirrungen führt.

Nachdem OpenOffice.org jahrelang zur Standardinstallation der meisten Linux-Distributionen gehörte, wird heutzutage LibreOffice vorinstalliert. Bei den meisten Distributionen ist OpenOffice gar nicht mehr in den offiziellen Repositories vorhanden und somit im Linux-Umfeld fast schon etwas von der Bildfläche verschwunden.

Apache OpenOffice LogoLibreOffice Logo

 

Apache OpenOffice: Totgesagte leben länger

Obwohl die Entwicklung bei LibreOffice (kurz LibO) – aufgrund der vielen Entwickler – sehr zügig vorangeht, sollte man Apache OpenOffice (kurz AOO) keineswegs abschreiben. Erst kürzlich wurde wieder eine neue, verbesserte OpenOffice-Version veröffentlicht.

Ausserdem erfreut sich OpenOffice unter Windows-Anwendern immer noch grosser Beliebtheit, da die Marke OpenOffice traditionell für eine kostenlose aber ebenbürtige MS-Office-Alternative steht. Des Weiteren dürfen die Entwickler der Apache Software Foundation bei der Entwicklung von Apache OpenOffice auf die Unterstützung des IT-Giganten IBM zählen.

IBM hat in Version 4.0 von OpenOffice beispielsweise eine Seitenleiste integriert, mit welcher man Zugriff auf die wichtigsten Funktionen der Textverarbeitung, der Tabellenkalkulation sowie des Zeichenprogramms erhält.

Zum Entwicklerteam von LibreOffice gehören nicht nur ehemalige OpenOffice.org-Entwickler, sondern auch zahlreiche bekannte Unternehmen aus dem Open-Source-Umfeld wie z.B. Red Hat, Univention, SUSE und Google. Auch Canonical, die Firma hinter dem beliebten Linux-Betriebssystem Ubuntu, zählt zu den Unterstützern von LibreOffice.

Kompatibilität zwischen Apache OpenOffice, LibreOffice und MS-Office

Wie schon OpenOffice.org verwenden auch Apache OpenOffice und LibreOffice das OpenDocument-Format (kurz: ODF) als Standard-Dateiformat. Dieses entspricht der internationalen ISO-Norm ISO/IEC 26300.

Mit diesem Dokumenten-Standard bleibt gewährleistet, dass ODF-Dateien mit beiden freien Officepaketen erstellt, gelesen und verändert werden können, egal ob diese ursprünglich mit Apache OpenOffice oder mit LibreOffice erstellt wurden.

Im Hinblick auf die verbreiteten Microsoft-Formate (doc, docx, xls, xlsx, ppt, pptx, usw.) sind beide Open-Source-Projekte bestrebt, eine gute Kompatibilität zu gewährleisten. Mit jedem grösseren Update wird die Darstellung dieser Formate wieder ein Stück verbessert.

Zu erwähnen ist, dass es für die Entwickler von Apache und The Document Foundation schwierig ist, eine 100 %ige Kompatibilität mit MS-Formaten zu gewährleisten, da Microsoft die Spezifikationen seiner eigenen Formate absichtlich nicht vollständig der Öffentlichkeit freigibt, um seine Monopolstellung im Software-Bereich zu bewahren. Diese traurige Tatsache hindert viele Unternehmen daran, auf freie Software umzusteigen.

Aussehen

Die Optik von Apache OpenOffice und LibreOffice ähnelt visuell sehr der 2003er-Version von MS-Office. Aber auch Umsteiger anderer MS-Office-Versionen dürften sich mit ein bisschen Lernbereitschaft mit den freien MS-Office-Alternativen rasch zurechtfinden.

Screenshots der Linux-Version von Apache OpenOffice 4.1 (zum Vergrössern anklicken)

Apache OpenOffice Start Screen Apache OpenOffice Writer Apache OpenOffice Calc Apache OpenOffice Impress Apache OpenOffice Draw Apache OpenOffice Base Apache OpenOffice Math

Screenshots der Linux-Version von LibreOffice 4.1 (zum Vergrössern anklicken)

LibreOffice Start Screen LibreOffice Writer LibreOffice Calc LibreOffice Impress LibreOffice Draw LibreOffice Base LibreOffice Math

Die Namen der einzelnen Programmmodule sind bei Apache OpenOffice und LibreOffice dieselben geblieben; doch unterscheiden sich die Programmsymbole der beiden Office-Suiten weitgehend voneinander.

Vergleich: Apache OpenOffice und LibreOffice Programm-Symbole

Auffällig ist, dass Apache für OpenOffice dieselben Programmicons verwendet, wie das „Vorgänger“-Projekt OpenOffice.org. The Document Foundation hat die Icons von LibreOffice stattdessen ganz dem Logo der eigenen Stiftung angepasst.

Kosten / Lizenz

Für den normalen Endanwender dürfte die Lizenz des Quellcodes der beiden Office-Suiten keine grosse Rolle spielen. Schliesslich ist die Benutzung von Apache OpenOffice und LibreOffice für die meisten Menschen eine Kostenfrage. Beide Office-Pakete sind und bleiben der Öffentlichkeit weiterhin sowohl in Binärform für GNU/Linux, Windows und Mac OS X als auch im Quelltext kostenlos zugänglich.

Anders sieht es bei Software-Entwicklern aus. Apache OpenOffice und LibreOffice stehen beide unter zwei verschiedenen freien Software-Lizenzen. Während Apache das OpenOffice-Projekt unter die hauseigene Apache-Lizenz v2.0 stellte, hat The Document Foundation das LibreOffice-Projekt dreifachlizensiert. LibreOffice steht nicht nur unter der General Public License v3+ (GPL), sondern auch wahlweise unter der Lesser General Public License v3+ (LGPL) und der Mozilla Public License v2.0.

Die Apache Lizenz v2.0 ist mit der (Lesser) General Public License v3 kompatibel, andersrum aber nicht. Als Folge daraus können Änderungen am Quellcode von Apache OpenOffice vom LibreOffice-Team in dessen Sourcecode übernommen werden, umgekehrt jedoch nicht.

Dies ist ein entscheidender Nachteil von Apache OpenOffice in Sachen Lizenzierung. LibreOffice kann sich sozusagen „legal“ am Code von OpenOffice bedienen, da dies die liberale Apache Lizenz zulässt.

Die von der Firma IBM in Apache OpenOffice 4.0 integrierte – oben erwähnte – Seitenleiste konnte von den LibreOffice-Entwicklern aufgrund dessen in LibreOffice 4.2 eingefügt werden. Die Seitenleiste ist in LibreOffice übrigens zwar standardmässig deaktiviert, kann aber im Menüpunkt Ansicht -> Seitenleiste dauerhaft aktiviert werden.

Apache OpenOffice Writer

Apache OpenOffice Writer 4.1 unter Ubuntu Linux mit Seitenleiste (siehe rechts vom Bild)


Fazit

Für Otto-Normal-Benutzer spielt es grundsätzlich keine Rolle, ob man sich für Apache OpenOffice oder LibreOffice entscheidet. Beide MS-Office-Alternativen sind kostenlos für alle verbreiteten Betriebssysteme herunterladbar. Bei der Entwicklung von Apache OpenOffice legen die Entwickler hohen Wert auf Stabilität und Zuverlässigkeit. Bei LibreOffice liegt der Fokus bei der Entwicklung vor allem auf der Integration neuer Funktionen und Verbesserungen. Dies ist zumindest mein persönlicher Eindruck.

Tipp für ältere, leistungsschwache Computer

Sowohl Apache OpenOffice als auch LibreOffice eignen sich problemlos auch für ältere Computer – sofern genügend CPU-Leistung und Arbeitsspeicher vorhanden ist. Wer jedoch zuhause einen – aus heutiger Sicht – leistungsschwachen PC stehen hat und für diesen ein leichtgewichtiges Schreibprogramm sowie eine ressourcensparende Tabellenkalkulation sucht, findet vielleicht auch in Abiword und Gnumeric eine Alternative. Beide sind ebenfalls Open-Source und kostenlos.

Puzzle sind nicht nur gut für die Wand sondern auch im Spielbereich eine tolle Sache.
Bei dem indie Spiel Spirits geht es wie beim puzzeln darum kleine Rätsel mithilfe von verschiedenen Objekten zu lösen.
Die Deutschen Entwickler von Spaces of Play verfolgen dabei ein Interessantes Spielprinzip.

Quelle - Bildschirmfoto von Spirits
Quelle – Bildschirmfoto von Spirits

Inhalt

Wem beim puzzeln Freude aufkommt wird sich bei Spirits sicher wohl fühlen da hier jedes Level ein kleines Puzzle darstellt.
In dem Spiel muss der Spieler die Elemente des Herbstes nutzen um die kleinen Geister zum Ziel zu befördern.

Der Wind spielt dabei eine wichtige Rolle da dieser zusammen mit anderen Aktionen zum überwinden von Hindernissen benutzt wird.
Um eine Kante zu überwinden können Brücken aus Laub gebaut werden jedoch wird bei jeder Aktion ein Geist nicht zum Ziel kommen.
Weiter kann der Spieler Aktionen wie dass erschaffen von Windwolken, graben von Tunneln oder dass anhalten des Windes an bestimmen stellen nutzen.

In höheren Level müssen neben der bestimmten Anzahl von Geistern auch andere Aufgaben wie dass einsammeln von Pflanzen erledigt werden.

Grafik

Die grafische Gestaltung von Spirits ist rundum gelungen, den Spieler erwartet eine Welt voller kräftiger Farben die an den Herbst erinnern.
Bei den Animationen wurde sauber gearbeitet sodass hier flüssige Bewegungen dargestellt werden.

Quelle - Bildschirmfoto von Spirits
Quelle – Bildschirmfoto von Spirits

Infos und Details

Preislich liegt Spirits mit 7.49 Euro in einem guten Bereich der auch einen Spontan kauf nicht ausschließt.
Um dass Spiel zu Spielen kann der Spieler fast jedes Gerät nutzen da Versionen für die Plattformen Linux, Mac, iOS, Android und Windows verfügbar sind.
Erhältlich ist Spirits auch in dem Humble Store inklusive DRM-Freier Version.

Über die Option Online Highscore in den Einstellungen kann der Spieler sich mit anderen vergleichen und seinen Platz auf der Liste im Menü einsehen.
Der Soundtrack ist angenehm und nervt den Spieler beim lösen von den Aufgaben nicht.

Die Systemanforderungen sind recht niedrig gehalten womit dass Spiel auch auf Laptops problemlos laufen sollte.

Linux Systemanforderungen

-Betriebssystem: Linux Ubuntu 12.04
-Arbeitsspeicher: 2 GB RAM
-Grafik: 256 MB Video RAM
-Festplattenspeicher: 200 MB frei

Quelle - Bildschirmfoto von Spirits
Quelle – Bildschirmfoto von Spirits

Bewertung

Kategorie Wertung
Grafik 9/10
Gestaltung 8/10
Inhalt 7/10
Gesamt 24/30

Fazit

Mir hat dass Spiel sehr gefallen und für zwischendurch ist es wirklich gut geeignet.
Manchmal versinkt man in dem Spiel und bekommt die Zeit nicht mehr mit sodass die ein oder andere Stunde schnell vergangen ist.
Ich kann dass Spiel gut Gewissens weiterempfehlen, besonders den Puzzle Liebhabern.

8. Juni 2014

Kleine Änderung für Nutzer der Aurora-Versionen von Firefox: Diese werden ab Version 32 nicht mehr täglich, sondern nur noch wöchentlich zum Update aufgefordert.

Es ist nur eine kleine Änderung der Standard-Konfiguration (app.update.promptWaitTime in about:config) der Aurora-Version von Firefox: Diese Einstellung legt fest, wie viele Sekunden nach der Anzeige, dass ein Update verfügbar ist, das Fenster erscheinen soll, welches zum Update und Neustart des Browsers auffordert.

Bislang lag die Standardeinstellung bei 86400 Sekunden und damit 24 Stunden, diese wurde nun für Aurora auf 604800 Sekunden und damit sieben Tage geändert. Aurora-Versionen sind die Firefox-Versionen, die zwischen den Nightly- und Betaversionen liegen und diejenigen, welche Mozilla Webentwicklern empfiehlt. Diese sollen durch diese Änderung, wenn sie ihren Browser länger durchgehend offen haben, nicht so häufig durch die Update-Aufforderung gestört werden. Daran, dass es tägliche Updates für die Aurora-Versionen gibt, ändert sich nichts.

Open Source sei Danke, gibt es seit 2012 einen Fork von Cube 2: Sauerbraten welcher auf den Namen Tesseract hört und dem Genre der Shooter zuordnen lässt. Ziel der Abspaltung ist es dabei modernere Rendertechniken wie dynamisches Licht und andere Dinge zu nutzen. Das wirkt sich sehr positiv auf das Aussehen der Level aus. Das Spiel als solches ist sehr schnell, so das man durchaus ein paar brauchbare Reflexe mitbringen sollte. Eine weitere Besonderheit von Tesseract ist der integrierte Editormodus, mit welchem man in der First Person Ansicht alleine oder kooperativ die Level bauen kann.

Eine Tesseract-Map

Eine Tesseract-Map

Bezogen werden kann Tesseract auf der offiziellen Webseite. Das Spiel ist für Mac OS X, Linux und Windows verfügbar. Der Quelltext ist in einer Subversion-Instanz zu finden. Lizenziert ist das ganze dabei unter der zlib-Lizenz.

Dateien können unter unixoide Betriebssysteme mit „find“ nach vielen Kriterien gesucht werden.

Shell :: Manual find

Shell :: Manual find


Suche nach Alter, Name, Benutzer, Typ und Größe sind standardmäßig vorhanden, aber wie werden Dateien in einem bestimmten Zeitraum gefunden?

Kleiner Trick, um die Datei Suche zeitlich einzugrenzen kurz notiert …

HinweisZeitliche Suchkriterien werden relativ zur aktuellen Zeit angegeben. Im Vergleich zu einer bestehende Datei können neuere Dateien mit der Option „-newerXY“ gesucht werden.

Angenommen ein Server hatte ein Zeitfenster zur Wartung am 4.2 von 2 bis 4 Uhr und wir möchten Wissen, welche Änderungen im Dateisystem vorgenommenen wurden.

Die geänderten Dateien in diesem Zeitraum können mit zwei Hilfsdateien durch find aufgelistet werden. Eine Datei mit dem älterem und eine mit neuerem Zeitstempel können mit „touch“ erstellt werden.

$ touch -t 1402040400 older.timestamp
$ touch -t 1402040200 newer.timestamp

Der Filter kann mit den beiden Dateien auf neuer „-newer“ und und älter „\! -newer“ (nicht neuer) angegeben werden.

Damit das Ergebnis auch verarbeitet werden kann „-exec“, wird die Datei der aktuelleren Zeitgrenze mit „\! -samefile older.timestamp“ herausgenommen.

$ find . -type f -newer newer.timestamp \! -newer older.timestamp \! -samefile older.timestamp

Oder gibt es noch bessere Möglichkeiten in der shell Dateien zeitlich einzugrenzen?

Gist ist ein schneller Weg, um Code-Beispiele / Konfigurationen / etc.  mit anderen zu teilen oder für sich selber aufzubewahren. Jedes “gist” wird dabei als eigenes git-Repository angelegt, so werden diese automatisch versioniert und andere können davon einen Fork erstellen.

Leider gibt es keine Tags für die erstellten “gists”, so dass man sich ein System überlegen muss, wie man die entsprechenden Code-Beispiele wiederfindet z.B.:

– entsprechend aussagekräftige Dateinamen verwenden
– den Type der Datei immer korrekt angeben
– Tags in der Beschreibung hinzufügen #Tag1, #Tag2
– Beschreibung kurz halten

1.) meine “gists”

gist.suckup.de: Diese Webseite habe ich erstellt, um einen schnellen Überblick über meine gists zu erhalten, außerdem habe ich einige Code-Playground und andere Infos hinzugefügt.

2.) Gists organisieren und sammeln

www.gistboxapp.com: Auf dieser Webseite kann man den gists richtige Tags zuordnen und diese somit besser organisieren. Jedoch kann man diese Tags nicht via github / api abrufen, so dass diese nicht in z.B. der IDE angezeigt werden. Außerdem bietet die Webseite eine Chome-Addon, mit welchem man sehr einfach Code-Beispiele von anderen Webseiten als “gist” abspeichern kann.

 

2.) IDE-Integration

Alle großen IDEs und Texteditoren haben git / gists bereits integriert oder bieten zumindest Plugins, um z.B. selektieren Quelltext direkt als gist abzuspeichern oder gists im Quelltext einzufügen.

– PhpStorm / IntelliJ  (bereits integriert)
– Eclpise (Plugin: “EGit”)
– Sublime Text (Plugin: “gist”)
– vim  (Plugin: “gist-vim”)

Beispiel: Sublime Text + Gist

sample

 

Beispiel: PhpStorm + Gist

gist_phpstorm

Ich habe schon vor einiger Zeit über die “.bashrc” berichtet und hier die Installation meiner dotfiles [~/.*] vorgestellt.

Heute möchte ich an einigen Bildern zeigen wie die Bash aussieht nachdem man die bereits erwähnten dotfiles installiert und wie man diese nach seinen Wünschen anpasst.

bash_prompt

1.) der Code

.bashrc: Dies ist die Konfigurationsdatei der Bash, diese wird bei jedem Aufruf einer interaktiven Shell ausgeführt. In meiner .bashrc stehen zunächst einmal ein paar Informationen, wovon ich hier nur die entsprechenden Links nennen möchte, welche man sich einmal anschauen sollte:

http://www.kfirlavi.com/blog/2012/11/14/defensive-bash-programming/
www.commandlinefu.com/commands/browse/sort-by-votes
https://twitter.com/climagic

.bash_profile: Diese Datei hat die selbe Aufgabe wie die .bashrc, wird jedoch “eigentlich” nur für Login-Shells aufgerufen. In diesem Fall wird die Datei jedoch auch für interaktive Shells verwende, da wir diese in der .bashrc inkludiert haben.

for file in ~/.{path,colors,icons,exports,aliases,bash_complete,functions,extra,bash_prompt}; 
do [ -r "$file" ] && [ -f "$file" ] && source"$file" 
done 
unset file

In dieser Datei werden wiederum andere Shell-Konfigurationen geladen (siehe vorheriges Code-Beispiel), welche auch von anderen Shells (z.B.: der zsh) genutzt werden können.

Desweiteren werden einige Einstellungen in einer zweiten for-Schleife ausgeführt. Andere Einstellungen sind näher beschrieben bzw. nur für nicht root-User geeignet und werden daher einzeln ausgeführt.

 .bash_prompt: Wie wir im vorherigem Code-Ausschnitt sehen konnten, wird diese Datei zum Schluss geladen, so dass wir zuvor definierte Funktionen und Variablen verwenden können.

# Local or SSH session?
local remote=""
[ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ] && remote=1

Wir prüfen, ob es sich hier um ein lokales Terminal oder um eine SSH Verbindung handelt, so dass wir den Hostnamen nur anzeigen, wenn dieser auch benötigt wird.

# set the user-color
local user_color=$COLOR_LIGHT_GREEN           # user's color
[ $UID -eq "0" ] && user_color=$COLOR_RED     # root's color

Root-User bekommen in der Prompt einen Roten-Usernamen angezeigt.

PS: die User-ID (UID) ist in der passwd zu finden: “cat /etc/passwd”

# set the user
local user="\u"

Die Zeichenkette “\u” wird beim Aufruf der Bash-Prompt in den entsprechenden Usernamen umgewandelt.

PS: hier gibt es eine Übersicht über weiter Zeichenketten, welche von der Bash-Prompt verarbeitet werden können z.B. die Uhrzeit

# set the hostname inside SSH session
local host=""
[ -n "$remote" ] && host="\[$COLOR_LIGHT_GREEN\]${ICON_FOR_AT}\h"

Wie bereits erwähnt zeigen wir den Hostnamen (“\h”) nur an, wenn es sich um eine Remote-Verbindung handelt.

if [[ -n $remote ]] && [[ $COLORTERM = gnome-* && $TERM = xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then
  export TERM='gnome-256color'
elif infocmp xterm-256color >/dev/null 2>&1; then
  export TERM='xterm-256color'
fi

256 Farben in der lokalen Shell verwenden.

# INFO:   Text (commands) inside \[...\] does not impact line length calculation which fixes stange bug when looking through the history
#         $? is a status of last command, should be processed every time prompt prints

Da der Bash-Prompt bestemmte Zeichen nicht mag und wir davon einige in der bereits inkludierten “.colors“-Datei verwendet haben, müssen wir diese Variablen nun hier escapen.

# Format prompt
export PS1="\`if [ \$? -eq 0 ]; then echo -e \[\$COLOR_GREEN\]\${ICON_FOR_TRUE}; else echo -e \[\$COLOR_RED\]\${ICON_FOR_FALSE}; fi\` \[$user_color\]${user}${host}\[$user_color\]:\[$COLOR_LIGHT_BLUE\]\w\[$COLOR_LIGHT_RED\]${ICON_FOR_ARROW_RIGHT}\$(__git_branch)\$(__svn_branch)\$(__git_dirty)\[$COLOR_NO_COLOUR\] "

Der Prompt wird in der Variable PS1 (“echo $PS1″) gespeichert und nach jedem Befehl auf der Kommandozeile neu aufgerufen / ausgeführt, daher rufen wir in der Variable wiederum Funktionen auf, so dass diese Funktionen ebenfalls erneut ausgeführt werden.

PS: “$?” muss als erstes ausgeführt werden, da dieser Befehl den Rückgabewert des letzten Kommandos zurückliefert

2.) Beispiele

bash_prompt_false

- Root-User wird rot gekennzeichnet

- “” anzeigen, wenn der letzte Befehl nicht korrekte funktioniert hat

 

bash_prompt_remote

- Anzeigen des Hostnamens nur bei Remoteverbindungen

- Repository-Branch (git, svn) anzeigen

-  Repository-Status anzeigen (! anfügen, wenn etwas nicht eingecheckt ist)

 

Links & Quellen:

http://wiki.ubuntuusers.de/Bash/Prompt
https://wiki.archlinux.de/title/Bash-Prompt_anpassen
http://ezprompt.net/

Vor einiger Zeit habe ich schonmal ueber Stereogramme (bzw. Stereoskopie) geschrieben, aber ich wusste bis heute nicht, wie ich sowas selber bauen kann.
Nun bin ich ueber eine Anleitung gestolpert, wie sowas geht und moechte euch diese in etwas ausfuehrlicher nicht vorenthalten. Zumal die Anleitung dort teilweise schon veraltet ist.

Meine Grundideen:

  • Stereogramme (SRIDS/SIS) aus verschiedenen Dingen (mit Gimp)
  • Veganblume als SRIDS und SIS (mit Blender)
  • Animiertes Stereogramm aus einer drehenden Veganblume (mit Blender)

Noch kurz etwas allgemein zu Stereogrammen:
Ein Stereogramm (oder besser: Autostereogramm) ist ein Einzelbild-Stereogramm, welches aus einem 2D-Bild durch optische Taeuschung dem Gehirn ein 3D-Bild vorgaukeln kann.
Mehr dazu und wie genau das funktioniert, die Geschichte dazu usw. befindet sich in der engl. Wikipedia.

Update (2014-07-26): Ich wurde per Mail gefragt, warum ich darueber eigtl. schreibe. Nun, mein Vater hatte so ein Magic 3D-Buch, dass ich als Kind sehr mochte, zumal ich es am Anfang nicht hinbekommen hatte, daraus 3D-Bilder zu sehen. Und ich fand das schon immer sehr faszinierend, wusste aber halt bisher nicht, wie sowas selbst gemacht werden kann. Daher hier nun die Anleitung ;)

Stereogramm mit Gimp

Mit der Anleitung, die ich gefunden habe, kam ich erst mal gar nicht klar. Allerdings habe ich dann ein besseres Tutorial gefunden und mir wurde einiges viel klarer ;)
Dort wird beschrieben, wie sich ein Stereogramm zusammensetzt:

Stereograms essentially contain two images to create the 3D effect. The first image is the Depth Map or Range Image [..]. The second image is the texture or pattern image [..].

Depth maps (Range Images) are made up of black, white, and gray colors. The computer software takes white and brings it to the front, black is sent to the back, and shades of gray fall in-between the two. As you can guess, the lighter shades of gray appear closer than darker shades of gray.

Textures or Pattern Images, can be any texture. However, it is recommended you use a texture that is very random, as the stereogram software will distort the texture to hide the depth map within it. [The stereogram software] will also create textures for you.

D.h. wir brauchen:

  • eine "depth map", d.h. ein Graustufenbild und
  • eine Textur oder Muster, in welcher das Graustufenbild "versteckt" wird.

Das Graustufenbild besteht nur aus Schwarz, Weiss und allen Grautoenen dazwischen. Schwarz befindet sich beim Endresultat im Hintergrund, Weiss im Vordergrund und demnach die Grautoene dazwischen.

Die Software (in meinem Fall stereograph) kann Texturen selbst erstellen, das werde ich aber gleich erklaeren.

Fuer den Anfang reicht also erstmal ein normales Bildbearbeitungsprogramm wie Gimp, wobei es hier aber auch Vor- und Nachteile gibt:

Vorteile:

  • aus 2D wird 3D (d.h. selbst ein sehr einfaches Programm wie Paint kann dazu benutzt werden, ein Graustufenbild zu erstellen)
  • keine grossen Vorkenntnisse benoetigt

Nachteile:

  • komplexere Modelle nur schwierig zu erstellen
  • Depth Map auch nur rudimentaer

Nichtsdestotrotz will ich hier mal zeigen, wie das mit Gimp (oder alternativ Inkscape, Krita, MyPaint, ...) geht.

SIRDS

Ein Single Image Random Dot Stereogram (SIRDS) ist ein Autostereogramm, welches zufaellige Punkte als zugrunde liegende Textur hat.

Wir wollen nun solch ein SRIDS erstellen, und bauen zuerst mal ein Graustufenbild mit Gimp (Meine Version: 2.8.10).

  • Dazu oeffnen wir Gimp, druecken Strg+N (fuer "Neu"), waehlen 640x480 aus der Vorlage aus, legen als Farbraum "Graustufen" und als Fuellung "Vordergrundfarbe" (schwarz) fest.
  • Dann habe ich mit meinem Grafiktablett mit dem Stift-Tool (N) etwas geschrieben (Farbe: #b5b5b5, Pinsel: 2. Hardness 050, Groesse: 20) ..
  • .. und dann noch eine Spirale mit dem Farbverlaufs-Tool (L) hinzugefuegt (Deckkraft: 10.0, Farbverlauf: VG nach HG (RGB), Form: Spirale (rechtsdrehend)) ..
  • .. und als sirds-dm.png exportiert (Umschalt+Strg+E).

Gimp Einstellungen fuer ein Graustufenbild

Fertig ist unser erstes Graustufenbild :)

Das erste Graustufenbild

Nun wollen wir daraus ja ein SIRDS bauen, also installieren wir erstmal die Software stereograph:

# pacman -S stereograph

Danach erstellen wir das SIRDS mit:

$ stereograph -b sirds-dm.png -w 100 -f png -o sirds.png

Und yeah, fertig ist unser erstes Stereogramm! \o/

Das erste Stereogramm

Mit den Optionen von stereograph kann natuerlich noch rumgespielt werden, bsp. kann durch ein angehaengtes -C -v das SIRDS mit zufaelligen Farbpunkten erstellt werden (default: Grayscale) und es werden alle Schritte ausgegeben (Verbose mode).

SIS

Ein Single Image Stereogram (SIS) ist ein Autostereogramm, welches statt zufaelligen (Farb-)punkten Texturen/Muster oder sogar Bilder verwendet. Die Bandbreite an Moeglichkeiten ist hier natuerlich sehr gross. Eine gute Auswahl an Moeglichkeiten bieten die Stereogramme von Gary W. Priester (der auch einige Stereogrammbuecher kreiert hat), die mich sehr dazu inspiriert haben, so viel mit den Moeglichkeiten, die ich habe, herumzuspielen.
Cool finde ich z.B. das Stereogramm mit den Muenzen, in dem das Graustufenbild auf die Textur gemappt wurde, so dass es den Anschein hat, als waeren die 3D-Objekte wirklich Muenzen.

Hier also Anleitungen, solch ein Muster mit stereograph zu verwenden.

Muster in Gimp erstellen

Das ist recht einfach:

  • Die Groesse der Textur ist bei sich wiederholenden Mustern erstmal egal, d.h. wir verwenden wieder die Vorlage 640x480 (Strg+N fuer neues Bild). Der Rest der Einstellungen kann bei den Standardwerten bleiben.
  • Dann waehlen wir das Fuellen-Tool aus (Umschalt+B), klicken bei Fuellart auf Muster, waehlen ein Muster (wie z.B. Sky) aus und klicken damit ins Bild.
  • Nun nur noch als textur.png abspeichern (Umschalt+Strg+E).

Gimp Einstellungen fuer eine Textur

Fertig ist die Textur :)

Die erste Textur

Die Textur koennen wir nun zusammen mit dem Graustufenbild von oben mit dem folgenden Befehl in ein Stereogramm verwandeln:

$ stereograph -b sirds-dm.png -t textur.png -w 100 -f png -o sirds-2.png

Ein Stereogramm mit dieser Textur

Die richtige Breite (-w 100) wird uebrigens in der Manpage von stereograph (man 1 stereograph) gut erklaert:

As a hand rule, 100 should work nice for stereograms of 640*480 up to 800*600 pixels. Use 110 to 120 for bigger ones and higher screen resolutions (>=1280*960).

Muster mit ImageMagick erstellen

Damit nicht Gimp bemueht werden muss, um ein Muster bzw. eine Textur zu erstellen, wollte ich ImageMagick nutzen, um solch ein zufaelliges Muster in der Shell zu generieren (Quelle):

$ convert -size 100x100 plasma:fractal -blur 0x1 fractal.png

fractal

Eingebunden werden kann es dann mit:

$ stereograph -b sirds-dm.png -t fractal.png -w 100 -f png -o sirds-3.png

Ein Stereogramm mit einer Textur aus ImageMagick

Allerdings stellte ich dabei schnell fest, dass das nicht wirklich schoen ist (eher noch mehr Kopfweh verursachender) und daher z.B. diese Methode zu bevorzugen ist (Quelle):

$ convert -size 50x80 xc: +noise Gaussian -write mpr:rand \
    -extent 100x80 -page +50-40 mpr:rand \
    -page +50+40 mpr:rand -flatten hextile.png

hextile

$ convert hextile.png -virtual-pixel tile -blur 0x5 -normalize \
    -colorspace gray -fill "#0069aa" -tint 100 random-0.png

random-0

Da die Breite von random-0.png 100 ist, sollte das auch so beim Aufruf von stereograph beachtet werden:

$ stereograph -b sirds-dm.png -t random-0.png -w 100 -f png -o sirds-4.png

Ein Stereogramm mit einer besseren Textur aus ImageMagick

Es gibt auf der Seite noch ziemlich viele Moeglichkeiten, also einfach mal damit herumspielen ;)

Veganblume als SIS mit Blender

Wie ein Graustufenbild bzw. eine Depth Map mit Blender erstellt werden kann, war mir am Anfang ueberhaupt nicht klar. Der erste Versuch war lediglich: Veganblume in Blender laden, etwas drehen (Rotate oder R), Kamera verschieben (Translate oder G und Umschalt+F) und rendern (F12). Und dann daraus ein Stereogramm bauen. Allerdings ist das nicht der richtige Weg, wie sich bei der weiteren Recherche herrausstellte. Das Geheimnis liegt in der Tiefe ;)

Dabei habe ich zwei Wege gefunden, eine Depth Map zu erstellen. Einmal mit Map Value und einmal mit ColorRamp.
Ich habe mich fuer die erste Variante entschieden, weil sie etwas simpler zu erstellen ist.

Wenn euch die Textanleitung hier zu kompliziert erscheint, guckt euch auf jeden Fall die Video-Anleitung an! Ich wollte es nur zusaetzlich noch in Textform haben, falls das Video irgendwann mal nicht mehr da ist.

  • Dazu oeffnen wir in Blender (ich verwende Version 2.70a) erstmal veganismus_logo-yh.blend aus einem anderen Eintrag und druecken Numpad 5 oder "View" - "View Persp/Ortho".
  • Um die Veganblume gut verschieben/bewegen zu koennen, aendern wir noch die Mitte des Objekts: mit einem Linksklick ca. auf die Mitte der Blume klicken und dann "Object" - "Transform" - "Origin to 3D Cursor" auswaehlen.
  • Nun verschieben wir die Kamera, sodass sie frontal auf die Veganblume "blickt" (mit Translate oder G und Umschalt+F um sie zu positionieren). Wie das gerenderte Bild nachher von Sicht der Kamera aus aussieht, kann mit Numpad 0 oder "View" - "Camera" nachgeschaut werden.
  • Nun fehlt nur noch die Positionierung des Objekts, was wir ein bisschen an zwei Achsen drehen (mit Rotate oder R).
  • Mit den Einstellungen zufrieden? Dann koennen wir nun die Depth Map in Angriff nehmen ;) Dazu oben in Blender neben der Hilfe den Screen "Composting" auswaehlen und in diesem Fenster "Use Nodes" und "Backdrop" aktivieren.
  • Um dort ein Bild hinzubekommen, muessen wir erstmal die Szene rendern (mit F12 oder "Render" - "Render Image") und einen "Viewer" erstellen: Dazu im Node Editor (das obere, groessere Fenster) auf "Add" - "Output" - "Viewer" klicken und die neue Node ablegen. Nun nur noch den Ausgang "Image" bei der ersten Node (Render Layers) mit der neuen Node (Eingang "Image") verbinden. Nun sollte im Hintergrund das Renderergebnis zu sehen sein.
  • Nun erstellen wir die Depth Map. Dazu erstellen wir eine neue Node: "Add" - "Vector" - "Map Value". Nun muessen wir noch die Nodes richtig verbinden: Bei "Render Layers" sollte der "Z"-Ausgang zu "Value"-Eingang bei "Map Value" gehen und der "Image"-Ausgang zum "Image"-Eingang bei "Composite" sowie der "Value"-Ausgang bei "Map Value" zum "Image"-Eingang von "Viewer" gehen.
  • Der Backdrop sollte nun einfach nur weiss sein. Bevor wir aber mit den Werten von "Map Value" herumspielen, invertieren wir noch das Bild: "Add" - "Color" - "Invert" und verbinden den "Value"-Ausgang von "Map Value" mit dem "Color"-Eingang von "Invert" und den "Color"-Ausgang von "Invert" mit dem "Image"-Eingang von "Viewer".
  • Nun nur noch mit den Werten von "Map Value" herumspielen und wir sind fast fertig. Halbwegs zufrieden war ich mit "-3.600" bei "Offset" und "0.400" bei "Size".
  • Damit nun auch das gerenderte Bild so aussieht wie der Backdrop, muessen wir noch den "Color"-Ausgang von "Invert" mit dem "Image"-Eingang von "Composite" verbinden.
  • Um ein detailreiches Bild zu erhalten, waehlen wir bei dem rechten "Properties"-Fenster unter "Render" als "Resolution" bei X "1920px", bei Y "1080px" und darunter "100%" aus und klicken auf "Render" bzw. F12.
  • Zuletzt waehlen wir noch linksunten im "UV/Image Editor"-Fenster "Image" - "Save as Image" oder F3 aus und speichern das Bild als veganblume.png ab.

Blender Einstellungen fuer ein Einzelbild

Um sich die ganze Anleitung oben zu sparen, koennt ihr euch hier auch einfach meine fertige Blend-Datei runterladen.
Um eine Depth Map zu erzeugen, einfach auf "Render" klicken oder F12 druecken.

Die Veganblume als Graustufenbild

So, fast fertig, es fehlt nur noch das Stereogramm. Das erstellen wir als SIS (das SIRDS spar ich mir jetzt) mit der Textur textur.png von oben:

$ stereograph -b veganblume.png -t textur.png -w 120 -f png -o veganblume-2.png

Die Veganblume als Stereogramm

Animiertes Stereogramm (SIS) mit Blender

Fuer das animierte Stereogramm nutzen wir einfach die eben erstellte Datei als Basis.

Die Schritte nach dem oeffnen, um eine Animation zu erstellen:

  • In Blender oben neben der Hilfe den Screen wieder auf "Default" setzen und Numpad 0 oder "View" - "Camera" auswaehlen.
  • Nun zentrieren wir die Veganblume wieder auf allen Achsen, sodass die Kamera auf ein gerade gerichtetes Objekt blickt. Dazu mit "Rotate" oder R mit den Views "Front", "Right" und "Top" (oder Numpad 1/Numpad 3/Numpad 7) das Objekt gerade ausrichten.
  • Da unsere Animation nur eine Sekunde bzw. 24 Frames lang sein soll, stellen wir unten in der Timeline "End" auf 24.
  • Nun setzen wir den ersten Keyframe, indem wir i druecken und in dem Menue "Rotation" auswaehlen. D.h. die Aufnahme beginnt nun in Frame 0 und beachtet nur die Rotation des Objekts.
  • Die Veganblume soll sich in diesem Beispiel einfach nur um die Z-Achse drehen, d.h. wir waehlen den naechsten Frame aus (12) und drehen die Veganblume um 180 Grad und druecken dazu nacheinander: r, z, 180, Enter. Und setzen wieder einen Keyframe: i und dann "Rotation".
  • Um zu verhindern, dass sich die Veganblume einfach in die gleiche Richtung zurueckdreht, setzen wir noch einen Keyframe bei Frame 18. Also: Frame 18 auswaehlen, Objekt um 90 Grad drehen (r, z, 90, Enter) und Keyframe setzen (i, "Rotation").
  • Zu guter Letzt setzen drehen wir wieder bei Frame 24 die Veganblume wieder um 90 Grad und setzen einen Keyframe. Fertig ist die Animation :)

Blender Einstellungen fuer eine Animation

Nun werdet ihr beim Starten der Animation feststellen, dass das Objekt sich nicht wirklich in der Mitte befindet, aber das ist mir im Moment egal ;)

Dank schon vorhandenem "Map Value"-Kram im "Composting"-Screen, koennen wir die Szene nun einfach als Animation rendern. Dazu Ctrl+F12 druecken oder "Render" - "Render Animation" auswaehlen.

Die finale Blend-Datei koennt ihr wieder (wenn ihr die Anleitung nicht befolgen wollt) hier herunterladen.

Nach einiger Zeit sollten nun 24 Bilder (0001.png - 0024.png) in /tmp vorhanden sein, die nun an einen besseren Ort verschoben werden koennen.

Nun muessen wir nur noch jedes einzelne Bild in ein Stereogramm umwandeln. Das geht z.B. mit folgendem Befehl:

$ for i in 00*.png ; do echo $i ; stereograph -b $i -t textur.png -w 120 -f png -o "s$i" ; done

Um nicht einfach nur die Bilder mit einem Bildprogramm durchgehen zu muessen, erstellen wir nun aus den Einzelbildern ein Gif und zusaetzlich noch ein Webm.

Am Besten ist eine kleine Anzahl an Bildern (so wie in diesem Beispiel), da der folgende Befehl mit vielen Bildern lange dauert, viel CPU-Last erzeugt und den Ram/Swap ausreizt.
Mit diesem Befehl koennen wir aber relativ einfach ein Gif erzeugen, was sich immer wieder wiederholt und pro Bild quasi 100 ms "wartet" (Quelle):

$ convert $(for a in s00*.png ; do printf -- "-delay 10 %s " $a ; done) -loop 0 veganblume.gif

Achtung: das Ergebnis kann recht gross sein, vor allem, wenn die Ausgangsbilder schon eine grosse Aufloesung haben. Bei mir ist das Gif nun 29 MB gross ...

Und im Uebrigen ist das ganze hin und her (also 3D-Szene aus Blender als 2D-Bilder umwandeln und dann per optischer Taeuschung wieder in 3D) etwas unnoetig, aber warum einfach, wenn es auch kompliziert geht? ;)

So, und weil es cool ist und Webm schon so ein bisschen Zukunft ist, wandeln wir nun die Bilder auch noch in eine webm-Datei um (Quelle):

  • Erst installieren wir zwei dafuer benoetigte Pakete:

    # pacman -S mjpegtools libvpx
    
  • Dann wandeln wir die Einzelbilder in ein "YUV4MPEG" um:

    $ png2yuv -I p -f 24 -b 1 -n 24 -j s%04d.png > veganblume.yuv
    
  • Und letztendlich wandeln wir die YUV-Datei in ein webm um:

    $ vpxenc --good --cpu-used=0 --auto-alt-ref=1 \
        --lag-in-frames=16 --end-usage=vbr --passes=2 --threads=2 \
        --target-bitrate=3000 -o veganblume.webm veganblume.yuv
    

Und das Endergebnis ist schon krass: gerade mal 363 KB gross. Wenn ich richtig gerechnet habe, ist das eine Verkleinerung um fast 80%!

Und hier gibt es daher die webm-Datei zum Download.

In einer anderen Quelle habe ich noch einen Befehl gefunden, um die Bilder in eine AVI-Datei umzuwandeln, aber das spare ich mir nun.

Noch eine Idee ...

... war, mit Hilfe der Stereogramme ein Spiel zu bauen :)
Und zwar ein moeglichst einfaches Spiel, wobei jedes einzelne Bild in ein Stereogramm umgewandelt und ausgegeben wird.
So entsteht aus einem 2D-Game ein 3D-Game, welches aber wahrscheinlich Kopfschmerzen erzeugt ;)

Aber natuerlich gibt bzw. gab es sowas schon: Magic Carpet (Quelle, letzter Absatz) ;)

Ich wollte das natuerlich ausprobieren, und habe es zwar zum Laufen bekommen, konnte aber leider nicht den SIRDS-Modus ausprobieren. Nichtsdestotrotz hier aber ein kleiner Exkurs, wie ein so altes Spiel zum Laufen gebracht werden kann.

Exkurs: DOSBox

Zuerst muessen ein paar Pakete installiert werden:

# pacman -S dosbox unzip
$ mkdir ~/tmp && cd ~/tmp

Dann das Spiel z.B. hier herunterladen und in ~/tmp speichern.
Nun nur noch das Spiel entpacken und mit dosbox starten (Quelle):

$ unzip magic-carpet.zip
$ dosbox carpet.exe

Viel Spass ;)

Andere Spiele, die solch einen (oder einen aehnlichen) 3D-Modus anbieten, befinden sich in dieser Auflistung.

Sonstige Quellen

So, das war ein sehr langer Artikel, fuer den eine Menge Zeit drauf ging (mehrere Tage).
Daher nun: viel Spass ;)

7. Juni 2014

Nachdem uns CD Projekt Red mit einer Linux Version des 2011 erschienenen Spieles The Witcher 2 beschert hat wird für den dritten Teil nun gleich eine Version für Linux mit-angekündigt.
Dass Spiel wird voraussichtlich am 24.5.2015 erscheinen jedoch kann auf Steam bereits vorbestellt
werden.
The Witcher 3: Wild Hunt kostet aktuell in der Vorbestellung 46.99 Euro und wird bei Veröffentlichung voraussichtlich 59.99 Euro kosten.

Wild Hunt spielt im Imperium von Nilfgaard in dem unter anderem Dörfer über Nacht zerstört werden sollen.
Die bereits bekannten Informationen zu der Geschichte rund um Gerald von Riva lesen sich nicht schlecht und klingen interessant.
Ich persönlich freue mich schon auf dass Spielen in einem hoffentlich Nativ laufendem Spiel.
Das nächste Jahr hat damit bereits einen ersten Höhepunkt für Spieler unter Linux bekommen.

Im Ubuntu-Repositorium bin ich auf das Kommandozeilen Programm „highlighting“ gestoßen. Gleich vorweg: Meine Bedürfnisse für Syntax-Highlighting erfüllt es vollkommen. Ich will damit vor allem längere Code-Passagen auf dieser Website lesbarer machen, weswegen die Ausgabe in diesem Artikel in HTML erfolgt. LaTex ist aber beispielsweise auch möglich.

Beispielanwendung

Nach der Installation aus dem Repositorium (denke das sollte jeder selbst hinbekommen), ist highlighting über die Kommandozeile zu bedienen. Ein Beispiel:

$ highlight -l -f --inline-css --enclose-pre -S html -i test.html -o test_high.html

Die Bedeutung der Parameter im Detail:

  • -l: Zeilennummern
  • -f: kein Header oder Footer (Voraussetzung für beiden nachfolgenden Optionen)
  • --inline-css: bei HTML keine seperate CSS-Datei, sondern Formatierung „direkt an Ort und Stelle“
  • --enclose-pre: keine vollständige HTML-Datei mit body und header, sondern nur die <pre>-Tags
  • -S: „Sprache“ der Quelle festlegen; hier html
  • -i: Eingabedatei für Syntaxhighlighting
  • -o: Ausgabedatei

Ich nutze hier ausnahmsweise CSS inline, da ein generiertes externes CSS-Stylesheet nur die aktuell verwendeten Regeln auswirft. Eine Option, um ein komplettes Stylesheet für einen Stil ausgeben zu lassen, habe ich nicht gefunden. Damit wir der Hauptnutzen von externem CSS meiner Meinung nach ad absurdum geführt, nämlich das Caching. Denn wenn für jede neuen Codeblock ein eigenes Stylsheet geladen werden muss, kann man dies gleich inline schreiben. Das spart nur HTTP-Requests – die fehlende Trennung von Inhalt und Design ignoriere ich hier jetzt einmal.

Themes

Das Aussehen der Ausgabe kann man über vorgegeben Themes verändern.

$ highlight -w

Gibt eine Liste mit allen installierten Themes aus. Wie die einzelnen Themes aussehen, sieht man auf zwei (unvollständigen) Wiki-Seiten: Seite 1, Seite 2

Meine Favoriten sind die Stile „acid“, „bright“, und „zmrok“. Das Standardtheme ist aber auch nicht schlecht. Auf dieser Website werde ich in Zukunft wohl „zmrok“ verwenden.

Skript zum Ausprobieren

Da die Wikiseite wie oben geschrieben unvollständig ist, hab ich mir mal ein kleines Shell-Skript geschrieben. Dieses probiert anhand einiger Dateien im Ordner „org“ die unterschiedlichen Themes für verschiedenen Programmiersprachen aus. Dabei ist für jede Programmiersprache eine eigenen Beispieldatei im „org-Ordner“. Entsprechend der Dateiendung wird ein Ordner angelegt. Mit den ausgegeben HTML-Dateien ist dann ein Vergleichen der Themes relativ gut möglich.

Das Archiv enthält schon einen Durchlauf des Skripts unter Ubuntu 12.04. Möchte man es auf seinem eigenen Rechner ausführen, reicht ein einfaches

$ bash test_highlighting.sh

im selben Ordner. Wer möchte, kann davor alle Ordner außer „org“ löschen.

Beispiel: JS-Code, Theme „zmork“

Zum Abschluss noch ein Beispiel für das meiner Meinung nach schönste Theme „zmork“

    1 function fibonacci(n) {
    2   var i = 1, j = 0, k, t;
    3   for (k = 1; k  Math.abs(n); k++) {
    4      t = i + j;
    5      i = j;
    6      j = t;
    7   }
    8   if (n  0 && n % 2 === 0) j = -j;
    9   return j;
   10 }

Inspiriert von Thomas Artikel zum anonymisieren und abschalten von Apache-Logfiles, möchte ich euch gerne eine ähnliche Lösung für nginx, meinen eingesetzten Webserver, präsentieren.

Standardmäßig speichert nginx in seinen Access-Logs leider auch die IP-Adressen der Besucher, was rechtlich gesehen in Deutschland umstritten ist und was ich persönlich auch gar nicht möchte. Glücklicherweise kann man auch nginx relativ schnell beibringen, die Access-Logs ohne IP zu speichern. Dazu legt man sich ein eigenes Logging-Format fest, zum Beispiel in der Datei /etc/nginx/conf.d/logs.conf:

log_format privacy
'[$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';

Das Format kann an dieser Stelle natürlich an die eigenen Wünsche angepasst werden. Ich habe mich am standardmäßigen Format orientiert.

Anschließend muss das neue Log-Format noch für den Access-Log definiert werden. Dafür im vHost in /etc/nginx/sites-available die access_log Zeile folgendermaßen erweitern:

access_log /var/log/nginx/access_log_tuxdroid privacy;

Nach der Anpassung sehen die Access-Logs jetzt so aus:

[07/Jun/2014:16:05:13 +0200] "GET /2013/07/erfahrungen-mit-dem-google-play-support-1993/ HTTP/1.0" 200 33643 "http://www.tuxdroid.de/2013/07/erfahrungen-mit-dem-google-play-support-1993/#comment-28644" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36"

Wer gar keine Access-Logs haben möchte, der kann diese natürlich ganz leicht deaktivieren. Einfach im entsprechenden vHost in /etc/nginx/sites-available die access_log Zeile in folgendes ändern:

access_log off;

Um das neue Log-Format zu nutzen muss nginx einmal neugestartet werden:

service nginx restart

Im Ubuntu-Repositorium bin ich auf das Kommandozeilen Programm „highlighting“ gestoßen. Gleich vorweg: Meine Bedürfnisse für Syntax-Highlighting erfüllt es vollkommen. Ich will damit vor allem längere Code-Passagen auf dieser Website lesbarer machen, weswegen die Ausgabe in diesem Artikel in HTML erfolgt. LaTex ist aber beispielsweise auch möglich.

Beispielanwendung

Nach der Installation aus dem Repositorium (denke das sollte jeder selbst hinbekommen), ist highlighting über die Kommandozeile zu bedienen. Ein Beispiel:

1
$ highlight -l -f --inline-css --enclose-pre -S html -i test.html -o test_high.html

Die Bedeutung der Parameter im Detail:

  • -l: Zeilennummern
  • -f: kein Header oder Footer (Voraussetzung für beiden nachfolgenden Optionen)
  • --inline-css: bei HTML keine seperate CSS-Datei, sondern Formatierung „direkt an Ort und Stelle“
  • --enclose-pre: keine vollständige HTML-Datei mit body und header, sondern nur die <pre>-Tags
  • -S: „Sprache“ der Quelle festlegen; hier html
  • -i: Eingabedatei für Syntaxhighlighting
  • -o: Ausgabedatei

Ich nutze hier ausnahmsweise CSS inline, da ein generiertes externes CSS-Stylesheet nur die aktuell verwendeten Regeln auswirft. Eine Option, um ein komplettes Stylesheet für einen Stil ausgeben zu lassen, habe ich nicht gefunden. Damit wir der Hauptnutzen von externem CSS meiner Meinung nach ad absurdum geführt, nämlich das Caching. Denn wenn für jede neuen Codeblock ein eigenes Stylsheet geladen werden muss, kann man dies gleich inline schreiben. Das spart nur HTTP-Requests – die fehlende Trennung von Inhalt und Design ignoriere ich hier jetzt einmal.

Themes

Das Aussehen der Ausgabe kann man über vorgegeben Themes verändern.

1
$ highlight -w

Gibt eine Liste mit allen installierten Themes aus. Wie die einzelnen Themes aussehen, sieht man auf zwei (unvollständigen) Wiki-Seiten: Seite 1, Seite 2

Meine Favoriten sind die Stile „acid“, „bright“, und „zmrok“. Das Standardtheme ist aber auch nicht schlecht. Auf dieser Website werde ich in Zukunft wohl „zmrok“ verwenden.

Skript zum Ausprobieren

Da die Wikiseite wie oben geschrieben unvollständig ist, hab ich mir mal ein kleines Shell-Skript geschrieben. Dieses probiert anhand einiger Dateien im Ordner „org“ die unterschiedlichen Themes für verschiedenen Programmiersprachen aus. Dabei ist für jede Programmiersprache eine eigenen Beispieldatei im „org-Ordner“. Entsprechend der Dateiendung wird ein Ordner angelegt. Mit den ausgegeben HTML-Dateien ist dann ein Vergleichen der Themes relativ gut möglich.

Das Archiv enthält schon einen Durchlauf des Skripts unter Ubuntu 12.04. Möchte man es auf seinem eigenen Rechner ausführen, reicht ein einfaches

1
$ bash test_highlighting.sh

im selben Ordner. Wer möchte, kann davor alle Ordner außer „org“ löschen.

Beispiel: JS-Code, Theme „zmork“

Zum Abschluss noch ein Beispiel für das meiner Meinung nach schönste Theme „zmork“

Zmrok stellt Code mit Orange für Zahlen, Braun für Steuerungswörter und einem dunklen Blau für Funktionen dar. Textfarbe ist sonst ein helles Grau.

(Als Screenshot, da ich mittlerweile auf pygments setze)

Inspiriert von Thomas Artikel zum anonymisieren und abschalten von Apache-Logfiles, möchte ich euch gerne eine ähnliche Lösung für nginx, meinen eingesetzten Webserver, präsentieren.

Standardmäßig speichert nginx in seinen Access-Logs leider auch die IP-Adressen der Besucher, was rechtlich gesehen in Deutschland umstritten ist und was ich persönlich auch gar nicht möchte. Glücklicherweise kann man auch nginx relativ schnell beibringen, die Access-Logs ohne IP zu speichern. Dazu legt man sich ein eigenes Logging-Format fest, zum Beispiel in der Datei /etc/nginx/conf.d/logs.conf:

log_format privacy
'[$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';

Das Format kann an dieser Stelle natürlich an die eigenen Wünsche angepasst werden. Ich habe mich am standardmäßigen Format orientiert.

Anschließend muss das neue Log-Format noch für den Access-Log definiert werden. Dafür im vHost in /etc/nginx/sites-available die access_log Zeile folgendermaßen erweitern:

access_log /var/log/nginx/access_log_tuxdroid privacy;

Nach der Anpassung sehen die Access-Logs jetzt so aus:

[07/Jun/2014:16:05:13 +0200] "GET /2013/07/erfahrungen-mit-dem-google-play-support-1993/ HTTP/1.0" 200 33643 "http://www.tuxdroid.de/2013/07/erfahrungen-mit-dem-google-play-support-1993/#comment-28644" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36"

Wer gar keine Access-Logs haben möchte, der kann diese natürlich ganz leicht deaktivieren. Einfach im entsprechenden vHost in /etc/nginx/sites-available die access_log Zeile in folgendes ändern:

access_log off;

Um das neue Log-Format zu nutzen muss nginx einmal neugestartet werden:

service nginx restart

6. Juni 2014

Warum automatische Revisionen sinnvoll sein können habe ich gerade wiedereinmal erfahren müssen.
Beim schreiben eines Artikels für meinen Blog hat sich dass Programm Abiword aufgehängt.
Ich hatte kurz zuvor die Daten per Tastatureingabe kopiert, da es Text ist sollte der Programmabsturz kein Problem sein.
Nachdem ich nun Abiword nochmal öffnete und die Datei mit dem zuvor kopiertem überschrieben hatte stellte fest dass nur die ältere Version aus dem Zwischenspeicher kopiert worden ist.
Dass ist nicht dass erste mal dass durch einen Fehler in Abiword komplett oder teilweise Artikel verloren gehen.

Ich bin also derzeit auf der suche nach einem Schreibprogramm welches Revisionen automatisch anlegt.
Es sollte in den Standartquellen der meisten Betriebssysteme und am besten Open Source sein.
Dazu bräuchte ich eine Rechtschreibprüfung wie hunspell.
Wer eine Idee dazu hat kann sich gerne bei mir melden.

MPD(engl. für »Music Player Daemon«) ist ein Freier Musikserver für Linux bzw. Unix-Artige Systeme, der unter anderem erlaubt, innerhalb des Netzwerks Playlists zu erstellen, die Musikdateien zu »Taggen«, danach zu suchen, usw.. Einen Musikplayer hierfür, den ncmpcpp, habe ich hier schon vorgestellt.

Hier soll es erst mal um die Standardkonfiguration gehen, sprich Adresse innerhalb des Netzwerks, Ports, Standardverzeichnisse und den entsprechenden User.

MPDs Standardverzeichnisse sind wie folgt(in Debian-Artigen Systemen):

  • Konfiguration: /etc/mpd.conf
  • Basisverzeichnis: /var/lib/mpd/
    • Musik: /var/lib/mpd/music
    • Playlists: /var/lib/mpd/playlists
    • Tag Cache: /var/lib/mpd/tag_cache
    • „Standards“: /var/lib/mpd/state (Hier wird eine Playlist angelegt, die Standardmäßig genutzt werden kann.)

Konfigurieren der Adresse

Der MPD ist normalerweise unter localhost:6600 erreichbar. Dies kann nützlich sein, wenn man ihn nur Lokal nutzen möchte, hindert aber gerne aussenstehende Rechner daran, eine Verbindung aufzubauen(Kommt auf die genutzte Firewall an..). Wenn man den MPD also im ganzen Netzwerk erreichen möchte, sollte man ihm eine Statische IP zuweisen, welche er belegen kann.
Dies wird in der Konfigurationsdatei, /etc/mpd.conf, niedergeschrieben. Ich habe hier Lokal den Adressbereich 10.0.0. reserviert, und nutze deshalb die Adresse 10.0.0.3:

bind_to_address         "10.0.0.3"
port "6600"

Der Unix-Socket für den MPD wird folgendermaßen niedergelegt:

bind_to_address         "/var/run/mpd/socket"

Wenn wir jetzt also den MPD neustarten, welches wir über „service mpd restart“, oder optional, /etc/init.d/mpd restart, tun können.

Jetzt ist der Daemon schonmal erreichbar. </div>
                <div class= Permalink

Neue Webseiten werden heutzutage oft via SASS erstellt, aber was macht man mit alten Projekten? Kann man auch hier SASS einsetzten? – Ja! Das schöne an “SCSS”-Dateien ist das diese 100% mit CSS kompatibel sind, so dass man die entsprechende Dateiendung umbenennen kann und neue / kleine Anpassungen in der SASS-Syntax schreiben kann. Wer jedoch eine ganze CSS-Datei auf den SCSS-Style anpassen möchte kann z.B. den “sass-convert”-Befehl auf der Kommandozeile verwenden.


See the Pen tqJvn by Lars Moelleken (@voku) on CodePen.

CSS > SCSS

Mit dem folgendem Befehl kann man die CSS-Datei in eine SCSS-Datei umwandeln lassen.

sass-convert --from css --to scss test.css test.scss

See the Pen Arxuv by Lars Moelleken (@voku) on CodePen.

Es folgt eine kleine manuelle Optimierung, dabei gilt: Umso besser die ursprüngliche CSS-Datei aufgebaut war, desto besser kann diese konvertiert werden.


See the Pen eFdlJ by Lars Moelleken (@voku) on CodePen.

SCSS > CSS

Nun erstellen wir aus der neuen SCSS-Datei wieder eine CSS-Datei + Sourcemap

scss  --sourcemap --line-comments --style expanded test.scss test_new.css

See the Pen pErjB by Lars Moelleken (@voku) on CodePen.

PS: mithilfe der Source Map kann Chrome automatisch die entsprechenden Code-Stellen in der entsprechenden SCSS-Datei  anzeigen :)

 

Links:
http://sassmeister.com/
http://css-tricks.com/sass-style-guide/

Quellen:
http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style

5. Juni 2014

Gerade hatte ich mein WordPress-Plugin zur Anonymisierung von IP-Adressen zu WordPress-Kommentaren fertiggestellt, da ist mir aufgefallen, dass es entgegen meines bisherigen Kenntnisstands doch schon ein solches Plugin gibt:

Remove IP für WordPress

Es arbeitet genauso wie meine Version und ist unter einer freien Lizenz veröffentlicht. Sobald ein Kommentar von WordPress verarbeitet wird, wird die echte IP-Adresse des Kommentar-Autors durch „127.0.0.1″ ersetzt. Das Anonymisieren der IP-Adresse ist in Deutschland übrigens Pflicht nach geltendem Datenschutzrecht (sofern es keinen „bedeutenden Grund” dafür gibt) – Das Plugin dürfte eigentlich auf keinem Blog fehlen!

Nach deutschem Recht dürfen Webserver keine IP-Adressen abspeichern – Es sei denn, es ist z.B. aus geschäftlichen oder technischen Gründen zwingend notwendig. (=> TMG §15)

Das gilt sowohl für die Kommentarfunktion z.B. in WordPress als auch für die Logfiles, die von Apache angelegt werden. Die meisten Apachen sind leider falsch eingestellt und werden den Datenschutzgesetzen damit nicht gerecht. Mit ein paar Zeilen Konfiguration kann man die Logfiles seines Webservers aber anonymisieren oder sogar ganz abschalten.

Logfiles anonymisieren

Eine Möglichkeit ist das anonymisieren von Logfiles. Dabei werden weiterhin Einträge in die Dateien geschrieben – doch mit entfernter IP-Adresse. Unter Ubuntu 14.04 wechselt man in das Konfiguraionsverzeichnis /etc/apache2/conf-available/ und öffnet die Datei „other-vhosts-access-log.conf„, um die Logeinstellungen für vHosts zu ändern. Eine neue Zeile wird hinzugefügt:

LogFormat "[IP] %l %u %t \"%r\" %>s %b" vhost_combined

Danach ist ein Neuladen des Webservers nötig:

service apache2 reload

In den Logfiles erscheint statt der echten IP eines Clients nun „[IP]”

Ähnlich kann die Einstellung für Erroglogs geändert werden: Öffnet die Datei /etc/apache/apache2.conf und fügt diese Zeile hinzu:

ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client [IP]] %M"

Logfiles abschalten

Wer ganz auf den Accesslog verzichten kann, kann diesen auch ausschalten und Ressourcen sparen. Dazu wird in /etc/apache2/conf-available/other-vhosts-access-log.conf einfach die Zeile „CustomLog …” mit einem vorangestellten „#”-Zeichen auskommentiert. Dasselbe gilt für den Errorlog: Hier muss in /etc/apache/apache2.conf die Einstellung „ErrorLog” auskommentiert werden.

Wie immer nach einer Konfigurationsänderung ist ein Neuladen der Konfigurationsdateien nötig, damit die neuen Einstellungen aktiv werden:

service apache2 reload

 

4. Juni 2014

Irgendwie bin ich openSUSE ja verfallen, denn alles funktioniert, wie ich es mir wünsche. Wenn es doch mal etwas hakt, dann knuspere ich etwas, bis alles (wieder) funktioniert.
Eines jedoch ärgert mich immer wieder: Die Programm-Verwaltung.

Zwar habe ich mich nun schon daran gewöhnt, dass ich für neue Programme / Aufgaben immer wieder eine Suchmaschine befrage, jedoch ist es diese Notwendigkeit, welche mich stört. Das erinnert mich an Windows-Zeiten, zu welchen ich auf ähnliche Suchspiele angewiesen war.

Nun mag man einwerfen, dass es ja Seiten wie die folgenden gibt, jedoch sind diese entweder vollkommen unübersichtlich (viele Pakete für die selbe Software) oder für alle möglichen Distributionen und Desktops ausgelegt.

http://software.opensuse.org/appstore/
http://de.opensuse.org/Portal:Anwendungen
http://linuxappfinder.com/

Hier denke ich mit etwas Wehmut an Ubuntu zurück, welches eine schön aufgeräumte Programmverwaltung nebst Bewertung enthielt.
Ubuntu-Software_Center
Quelle: http://de.wikipedia.org/wiki/Ubuntu

Ein Klick zum Installieren, ein weiterer zum entfernen, wenn es doch nicht gefällt.

Unter openSUSE benutze ich nach wie vor das Terminal mit dem Befehl sudo zypper install – oder – sudo zypper remove -u

Die Paketverwaltung unter Yast ist mir einfach zu unübersichtlich und überladen. Wenigstens sind Kategorien dazu gekommen </div>
                <div class= Permalink

Irgendwie bin ich openSUSE ja verfallen, denn alles funktioniert, wie ich es mir wünsche. Wenn es doch mal etwas hakt, dann knuspere ich etwas, bis alles (wieder) funktioniert.
Eines jedoch ärgert mich immer wieder: Die Programm-Verwaltung.

Zwar habe ich mich nun schon daran gewöhnt, dass ich für neue Programme / Aufgaben immer wieder eine Suchmaschine befrage, jedoch ist es diese Notwendigkeit, welche mich stört. Das erinnert mich an Windows-Zeiten, zu welchen ich auf ähnliche Suchspiele angewiesen war.

Nun mag man einwerfen, dass es ja Seiten wie die folgenden gibt, jedoch sind diese entweder vollkommen unübersichtlich (viele Pakete für die selbe Software) oder für alle möglichen Distributionen und Desktops ausgelegt.

http://software.opensuse.org/appstore/
http://de.opensuse.org/Portal:Anwendungen
http://linuxappfinder.com/

Hier denke ich mit etwas Wehmut an Ubuntu zurück, welches eine schön aufgeräumte Programmverwaltung nebst Bewertung enthielt.
Ubuntu-Software_Center
Quelle: http://de.wikipedia.org/wiki/Ubuntu

Ein Klick zum Installieren, ein weiterer zum entfernen, wenn es doch nicht gefällt.

Unter openSUSE benutze ich nach wie vor das Terminal mit dem Befehl sudo zypper install – oder – sudo zypper remove -u

Die Paketverwaltung unter Yast ist mir einfach zu unübersichtlich und überladen. Wenigstens sind Kategorien dazu gekommen 😉

Es gab 2011 mit Bretzn einen Versuch, eine schöne Software-Verwaltung zu erstellen, aber das Projekt ist wohl im Sand verlaufen.

Die 1-Klick Lösung von software.opensuse.org ist ein guter Anfang, aber es fehlt einfach eine Webseite mit Filterfunktion für die Distribution, Bewertungen, Screenshots und Kommentar-Funktion… oder ich habe sie schlicht noch nicht gefunden und meine Software-Suche mache ich mir unnötig schwer (für Tipps in den Kommentaren bin ich dankbar)

ajax loader