Schneller, kleiner Bildbetrachter für den GNU/Linux Desktop

Wer kennt das Problem nicht, man will auch seinem Rechner mal eben nur ein Bild angucken und klickt auf das jpg und es startet gwenview, also es macht sich langsam aber sicher fertig für die Arbeit – es glüht gewisser Maßen vor. Natürlich ist gwenview ein hervorragendes Werkzeug, aber um sich „nur mal eben“ ein Bild anzugucken, startet es einfach zu langsam. Aber bisher gab es keine wirkliche Alternative.

Licht am Ende des Desktops

gpciview in BetriebVor einigen Tagen lief mir das Tool gpicview über den Weg. Es definiert sich selbst als:

A Simple and Fast Image Viewer for X

Also als „schneller und einfacher Bildbetrachter für X“ und exakt diese Definition trifft auch zu. Das kleine Werkzeug braucht nur wenige aufgelöste Abhängigkeiten, um auf einem gängigen System zu laufen.1 Ubuntu-User brauchen sich aber nicht um eine Kompilierung kümmern, denn der Entwickler stellt selbst debs zur Verfügung, welches sehr einfach über ein

sudo dpkg -i <paketname>

installiert werden kann.2

Einfachheit die überzeugt

Die Einfachheit des Programms ist wirklich auf die minimalsten Fähigkeiten beschränkt. Man kann vergrößern, verkleinern, drehen, den Vollbildmodus nutzen, durch das Verzeichnis blättern und die Bilder alphabetisch durchgehen.  Es startet sehr schnell und ist mittlerweile mein Standardprogramm zum öffnen von Bildern.

Irgendwas ist ja immer

Mir persönlich fehlt noch die Funktion, dass man ein geöffnetes Bild an ein anderes Programm weiterleiten kann, um es dort zum Beispiel weiter zu bearbeiten. Aber ich bin mir sicher, dass ein solches Feature sicherlich noch kommen wird. Ein Blick ist das Programm auf jeden Fall wert.

  1. Es benötigt nach eigenen Angaben nur die GTK+ Bibliothek. []
  2. Natürlich sollte man immer vorsichtig sein, welche Pakete man aus welchen Quellen bei sich auf dem Computer installiert. []

Neue Version von Contact Form 7

Die neue Version des Kontaktformular-Plugins „Contact Form 7“ ist draußen und was soll ich sagen… Ich habe einen kleinen Teil dazu bei getragen 🙂 Das Plugin stammt aus einer japanischen Feder und so sieht das aus, wenn man seinen Namen im japanischen Kontext sieht:

Die Übersetzung war auch notwendig ;)

Was macht das Plugin überhaupt?!

Das Plugin bietet dem Administrator an, verschiedene Kontaktformulare zu erstellen und diese dann mit einer sehr einfachen Syntax in Seiten oder Artikeln einzufügen. Bisher war die einzige für mich verstehbare Sprache in der das Plugin zur Verfügung stand Englisch. Da die Leser und Besucher der gerade einzurichtenden Seite aber in der Mehrzahl Deutsch-Muttersprachler sind, habe ich flux die po-Datei übersetzt.

Von der community für die community

Da ich WordPress und seine Plugins in der letzten Zeit wirklich lieben gelernt habe, war es quasi selbstverständlich, dass ich auch mal was an die community zurück geben werde. So funktioniert OpenSource und freie Software eben 😉

Relevante Links

Kategoriebasierende Banner mit WordPress

Für einen Kunden bin ich gerade dabei ein WordPress aufzusetzen. Das Problem dabei ist, dass es ein kategoriebasiertes Bannersystem geben muss, da spezielle Kunden nur in definierten Bereichen Banner und Anzeigen schalten können sollen. Leider haben weder Stefan noch ich ein Plugin gefunden, welches das bewerkstelligen kann. Aber da ich so schnell ein „Nein“ oder ein „geht nicht“ nicht akzeptiere habe ich mal ein bisschen um die Ecke gedacht.

Das wpads-Plugin

Als Plugin der Wahl stand das Plugin wpads ganz oben in der Liste der zu nutzenden Plugins. Es ist in der Lage verschiedene Zonen zu definieren, in denen die Anzeigen dann rotieren. Diese Zonen wollte ich nutzen um Werbung nur in den dazugehörigen Kategorien anzeigen zu lassen. Das Plugin zeigt einem, nachdem man die erste Werbung definiert hat, mit welchem php-Code man die Zone im Template definieren kann. Das Ganze folgt folgender Syntax:

<?php wpads('sidebar'); ?>

sidebar steht hier für die verwendete Zone.

Einmal um die Ecke bitte

Mein Gedanke war nun anstelle des Strings sidebar einfach den Namen der Kategorie zu definieren. Da die Zonen in der wpads nicht in der Lage sind Leerzeichen zu interpretieren, kam ich auf Idee die nicenames der Kategorien zu nutzen. Leider habe ich keine WordPress-Funktion gefunden, die mir diesen liefert, jedenfalls nicht um sie in den Templates zu nutzen. Also habe ich die eben geschrieben. Da WordPress recht adminfreundlich1 ist, kann man im Template-Verzeichnis einfach eine Datei functions.php anlegen2 und folgenden Code dort hinein schreiben.3

<?php
function get_category_nicename($cat_id) {
    $cat_id = (int) $cat_id;
    $category = &get_category($cat_id);
    return $category->category_nicename;
}
?>

Diese Funktion erlaubt es nun den nicename mit dem Parameter der cat_id auszulesen.

Anpassung des Templates

Nun muss man die einzelnen Template-Dateien (single.php, archive.php …) mit dem Code bestücken, der die Auslieferung der Anzeigen iniziiert. Ich habe um die Anzeige noch einen div gelegt, um margins oder paddings zu setzen.

<div class="ads">
<?php foreach (wp_get_post_categories() as $cat_id){
    wpads(get_category_nicename($cat_id));
}?>
</div>

Hier ist darauf zu beachten, dass es schon zur Anzeige einiger Werbung kommen kann, wenn ein Beitrag in mehreren Kategorien geschrieben wurde. 😉 Dort müssten dann noch Regeln hinzugefügt werden, die es ermöglichen nur ein oder maximal zwei Banner anzeigen zu lassen.

Alles zum Laufen bringen

{wpads} Hier werden die nicenames definiert.

{wpads} Hier wird die Zone definiert, die gleich zu den nicenames sein sollten.

Um nun die Banner auch an der richtigen Adresse anzeigen zu lassen, müssen die nicenames der Kategorien und die Zonen der Ads exakt gleich lauten. Zur Verdeutlichung wie man wo, was einstellen muss, habe ich keine Mühen gescheut, um Euch zwei super Screenshots zur Verfügung zu stellen.

Werben, aber immer!

Möchte man, dass auf alle Fälle ein Banner gezeigt wird, auch wenn in der Kategorie im Moment keines gespeichert ist, dann richtet man sich eine Zone fallback ein und erweitert seine functions.php um folgende Funktion:

function get_category_wpads() {
	foreach (wp_get_post_categories() as $cat_id) {
		if (get_wpads(get_category_nicename($cat_id))==false) wpads('fallback');
		else wpads(get_category_nicename($cat_id));
	}
}

Dort wo nun kategoriebasierte Werbung erscheinen soll, nun folgen Quellcode in die einzelnen Template-Dateien einfügen:

<div class="ads">
    <?php get_category_wpads(); ?>
</div>

Ohne Gewähr

Für die Veränderungen im Code und in Euren Templates übernehmt ihr die Verantwortung! Ich habe hier nur Denkanstöße und keine Handlungsanweisung gegeben.

  1. Ich wähle absichtlich nicht entwicklerfreundlich, da ich mich in diesem Fall nicht als Entwickler, sondern „nur“ als Admin sehe. []
  2. Sollte man ein fertiges Template nutzen, welches in der Lage ist mit Widgets zu arbeiten, wird es diese Datei schon geben. []
  3. Bei einer schon bestehenden Datei können/müssen die Tags <?php und ?> nicht eingefügt werden. []

LUG Balista ist tot, es lebe LUG Balista e.V.

Zugegeben ein eingetragener Verein ist die LUG Balista noch nicht, aber das stellt sich doch hoffentlich als eine formelle Hürde dar. Am gestrigen Abend kam es zu einer Gründungsversammlung im Bürgerhaus in Barmbek und es waren ~20 Personen anwesend1 , die sich (fast) alle dazu entschlossen haben Mitglieder des neuen Vereins zu werden.

Realitätsfremder Idealist

Wie bereits vor fünf Jahren festgestellt wurde, bin ich ein realitätsfremder Idealist2 und das scheint auch immer noch so zu sein. Während den Diskussionen vor und während der Vereinsgründung habe ich in aller Deutlichkeit3 festgestellt, dass ich gegen einen festgelegten Mitgliedsbeitrag bin. Die Gründe dafür liegen auf der Hand:

  • GNU/Linux ist frei und somit sollte auch eine Organisation, die sogar eine Gemeinnützigkeit anstrebt, ohne eine erzwungene Aufwandsentschädigung auskommen.
  • Bisher, immerhin seit 2002, ist Balista ohne einen festen monatlichen Beitrag der Mitglieder ausgekommen, obwohl alle Kosten auf Einzelpersonen lasteten.
  • Ein fester Beitrag hindert vielleicht sozial schlechter gestellte Personen, sich im vollen Umfang an dem Verein zu beteiligen.

Natürlich sehe ich auch, dass ein fester monatlicher Beitrag Sicherheit bietet und so Ausgaben besser geplant werden können und auch einiges einfacher zu organisieren ist, aber dennoch darf ein Verein, der sich hauptsächlich mit GNU/Linux und freier Software befasst, gerne mal gegen den Strom schwimmen und dem kapitalistischen Gedanken den Rücken kehren.

Leider wurde die Satzung so verabschiedet, dass nun ein Beitrag fällig wird und die Höhe des Beitrages von der Mitgliederversammlung ermittelt, bzw. festgelegt wird. Aus diesem Grund habe ich mich nicht durch die euphorische Stimmung dazu hinreißen lassen, die Satzung zu unterschreiben und somit die historische Gelegenheit verpasst Gründungsmitglied von LUG Balista e.V. zu sein.

Freiheitsdenken setzt sich durch

In der folgenden ersten Mitgliederversammlung des Vereins, wurde mehrheitlich dafür gestimmt, dass der zu entrichtende Beitrag auf null Euro festgelegt wird, es aber einen Richtwert gibt, der den Mitgliedern nahe gelegt wird, um ihn monatlich zu Spenden. Niemand ist also dazu gezwungen einen Mitgliederbeitrag zu entrichten. Sobald eine Vereinskonto eröffnet wurde, werden Vordrucke für Lastschrifverfahren erstellt, die es ermöglichen die freiwillige Spende per Lastschrift abbuchen zu lassen.

Diese Variante ist zwar nicht exakt die von mir vorgeschlagene, ist aber ein guter annehmbarer Kompromiss, zwischen der sozialen Sicherheit und der ideologischen Freiheit, so dass ich in den nächsten Wochen wohl meine Mitgliedschaft beantragen werde.

Links zum Thema

  1. Genaue Zahlen können bitte dem Sitzungsprotokoll entnommen werden. []
  2. Leider ist der Beitrag mittlerweile zu einem so hohen Gut geworden, dass die FTD Geld für das Lesen haben möchte. Ich habe aber das Zitat gefunden auf das ich mich beziehe: https://www.das-netzbuch.de/article/495/realittsfremder-idealist []
  3. Sicherlich auch das eine oder andere Mal recht heftig 😉 []

Videobearbeitung unter GNU/Linux

Videoschnitt ist immer noch einer der Stiefkinder von GNU/Linux. Auch wenn der Platzhirsch kino ein wirklich gutes Programm ist, welches selbst in einer professionellen Umgebung eingesetzt wird, ist es doch für den „Otto-Normal-Verbraucher“ nicht immer logisch strukturiert und verfolgt leider auch eine lineare Editierform, die es wenig intuitiv macht.

Abenteuer

Wenn man aber auch andere Video-Daten außer DV schneiden und verarbeiten wollte, dann musst man teils abenteuerliche Installationen vornehmen (Cinelerra) oder sich in die Thematik des Video de- und encoding tiefer gehend beschäftigen (avidemux). Wer sich als Videokünstler sieht, der hat vielleicht mit VeeJay sein Werkzeug gefunden, um sein Lebenswerk zu vollenden. Für den alltäglichen Gebrauch hat sich aber noch kein Werkzeug auf dem „Markt“ etabliert.

Ein Licht am Ende des Horizonts

kdenlive 0.6 ScreenshotAber endlich scheinen die Gebete derer erhört, die für ein nicht-lineares, bedienbares Videobearbeitungswerkzeug gebetet haben. Die aktuelle Version (0.5) von kdenlive lässt auf ein vielversprechendes Programm hoffen. Es macht einen bedienbaren Eindruck und gliedert dich in den KDE Desktop ein. Einfaches drag and drop ermöglicht die Videos zu positionieren und per Kontextmenü fügt man Übergänge und Effekte ein. Egal ob man Video-Anfänger ist oder sich schon zu den Profis zählt, der Exportdialog lässt keine Wünsche offen. Ich habe hier die 0.6er Version installiert und muss gestehen, dass Sie noch nicht stabil läuft, aber dass muss eine Beta auch noch nicht. Leider habe ich gerade kein Projekt, mit dem ich das Programm testen könnte, somit kann ich auch noch nichts über die wirkliche Benutzerfreundlichkeit sagen, aber der Eindruck während des herumspielens ist toll. Ein Vorteil der für das Einarbeiten in kdenlive noch genannt werden muss, ist das schon sehr ausgereifte Handbuch auf Deutsch für das Programm.

Weitere Projekte

Natürlich gibt es noch weitere Projekte, die versuchen das Videoeditieren auf den GNU/Linux-Desktop zu bringen. Hier eine Auswahl: