ubuntuusers.de

10. März 2012

Wer eine Weile auf Linux mit den Standardtools wie bashcurlgawkgrepputty,rsyncsedsftp gearbeitet hat, möchte unter Umständen diese auch auf einem Windows System nutzen. Die bekannte Vorgehensweise dafür ist in der Regel, dass man sich das wirklich umfangreiche Cygwin installiert, welches eine sehr große Anzahl an unterschiedlichen Paketen aus der Linux-Welt enthält.

Einen ähnlichen Weg geht auch Gow (Akronym für GNU on Windows, MIT license), welches aber im Gegensatz zu Cygwin (ca. 100 MB) eine schlankere Alternative sein möchte und  mit seinen knapp 10MB auch erreicht. Die Installation erfolgt ähnlich wie Cygwin über die bereitgestellte Installationsdatei, welche alle Binärdateien bequem in den Windows PATH legt und somit über die Standard-Kommandozeile von Windows erreichbar ist.

Trotz seiner recht schmalen Größe sind für mich alle wichtigen Programme dabei. Die populärsten in einer kurzen Übersicht (hier eine vollständige Liste):

  • Shell scripting: bash, zsh
  • Compression: gzip, zip, bzip2, compress
  • SSH: putty, psftp, pscp, pageant, plink
  • Download/upload: cURL, wget
  • FTP: NcFTP
  • Editing: vim
  • Text search/view: grep, agrep, less, cat, tail, head
  • File system: mv, cp, du, ls, pwd, rmdir, whereis
  • Development: make, diff, diff3, sleep, cvs, dos2unix, unix2dos
Gow selbst befindet sich auch in aktiver Entwicklung, sodass die Programme auch ihre Updates erhalten. Mir persönlich hat der Funktionsumfang absolut ausgereicht, wer mehr benötigt ist aber nach wie vor auch gut mit Cygwin bedient.

 

Heute mal ein Blick in meine ~/.bashrc über viele Schnippsel und Funktionen die ich im Laufe der Jahre für git zusammengesammelt habe. Wenns mir noch einfällt mit Quelle :)

Aliases

Teilweise selber gebastelt, teilweise aus bash-it geklaut.

``` bash Aliases

git Aliases

alias gcl='git clone' alias ga='git add' alias gall='git add .' alias g='git' alias gs='git status' alias gss='git status -s' alias gl='git log --oneline' alias gup='git fetch && git rebase' alias gp='git push' alias gpo='git push origin ' alias gb='git branch' alias gcount='git shortlog -sn' alias gdel='git branch -D' alias gcm='git commit -a -m' alias gll='git log --graph --pretty=oneline --abbrev-commit' alias cdiff='git diff --cached' alias gsdiff='git diff --staged' ```

Hervorheben will ich hier besonders gll:

git Informationen

Wer viel in verschiedenen git Repos unterwegs ist hilft vielleicht (wie mir) diese Funktion. Selbst geschrieben.

``` bash git_info function function git_info() {

if [ -n "$(git symbolic-ref HEAD 2> /dev/null)" ]; then
    # print informations
    echo "git repo overview"
    echo "-----------------"
    echo

    # print all remotes and thier details
    for remote in $(git remote show); do
        echo $remote:  
        git remote show $remote
        echo
    done

    # print status of working repo
    echo "status:"
    if [ -n "$(git status -s 2> /dev/null)" ]; then
        git status -s
    else
        echo "working directory is clean"
    fi

    # print at least 5 last log entries
    echo 
    echo "log:"
    git log -5 --oneline
    echo 

else
    echo "you're currently not in a git repository"

fi

} ```

``` bash Gitinfo Output $ git_info

git repo overview

origin: * remote origin Fetch URL: git@github.com:revans/bash-it.git Push URL: git@github.com:revans/bash-it.git HEAD branch: master Remote branch:

master tracked

Local branch configured for 'git pull':

master merges with remote master

Local ref configured for 'git push':

master pushes to master (up to date)

status: working directory is clean

log: 39f8ef9 add defaults autocompletion for OS X 67f642f Merge pull request #102 from jpschewe/master d0ffb0d Merge remote-tracking branch 'berenm/master' 94a7b78 Revert "Revert new color framework" 87d7d7a Fixed issue #103 caused by "normal" colors not reseting bold/underline/... text attributes. ```

git Bash Prompt

Eines der nützlichsten Dinge. Wenn das aktuellen Working Directory ein git Repository ist verändert sich der Prompt. Es zeigt falls das der Fall ist den aktuell ausgecheckten Branch an und eine Asterisk (*) wenn das PWD sich in einem uncommitteten Zustand befindet.

``` bash git Prompt GIT_THEME_PROMPT_DIRTY='*'

function git_prompt_info() { ref=$(git symbolic-ref HEAD 2> /dev/null) || return echo -e " (${ref#refs/heads/}$(parse_git_dirty))" }

function parse_git_dirty { if [[ -n $(git status -s 2> /dev/null |grep -v ^# | grep -v "working directory clean" ) ]]; then

  echo -e "$GIT_THEME_PROMPT_DIRTY"

else

echo -e "$GIT_THEME_PROMPT_CLEAN"

fi }

PS1="\u@\h:\w[\$(git_prompt_info)]$ " ```

bash Prompt Example noqqe@deathstar:~/Code$ cd octopress noqqe@deathstar:~/Code/octopress (master)$ touch foobar noqqe@deathstar:~/Code/octopress (master*)$

git Remotes

Zwei Funktionen an die ich mich ziemlich gewöhnt habe, weil ich für meine git repos meistens sowieso den selben Remote benutze. Ebenfalls veruntreut vom bash-it Framework.

``` bash Remote functions function git_remote { echo "Running: git remote add origin git@n0q.org:$1" git remote add origin git@n0q.org:$1 }

function git_first_push { echo "Running: git push origin master:refs/heads/master" git push origin master:refs/heads/master } ```

git Statistiken

Hier noch ein Stück für die Statistik Liebhaber. Ich mags.

``` bash git stats https://github.com/esc/git-stats git-stats function git_stats { if [ -n "$(git symbolic-ref HEAD 2> /dev/null)" ]; then

echo "Number of commits per author:"
git --no-pager shortlog -sn --all
AUTHORS=$( git shortlog -sn --all | cut -f2 | cut -f1 -d' ')
LOGOPTS=""
if [ "$1" == '-w' ]; then
    LOGOPTS="$LOGOPTS -w"
    shift
fi
if [ "$1" == '-M' ]; then
    LOGOPTS="$LOGOPTS -M"
    shift
fi
if [ "$1" == '-C' ]; then
    LOGOPTS="$LOGOPTS -C --find-copies-harder"
    shift
fi
for a in $AUTHORS
do
    echo '-------------------'
    echo "Statistics for: $a"
    echo -n "Number of files changed: "
    git log $LOGOPTS --all --numstat --format="%n" --author=$a | cut -f3 | sort -iu | wc -l
    echo -n "Number of lines added: "
    git log $LOGOPTS --all --numstat --format="%n" --author=$a | cut -f1 | awk '{s+=$1} END {print s}'
    echo -n "Number of lines deleted: "
    git log $LOGOPTS --all --numstat --format="%n" --author=$a | cut -f2 | awk '{s+=$1} END {print s}'
    echo -n "Number of merges: "
    git log $LOGOPTS --all --merges --author=$a | grep -c '^commit'
done

else

echo "you're currently not in a git repository"

fi } ```

``` bash git_stats Output Number of commits per author: 149 Mark Szymanski

64  Robert R Evans
53  Travis Swicegood
22  Florian Baumann
16  Jesus de Mula Cano
14  John Schulz
12  Ryan
10  JFSIII
10  Ryan Kanno
 9  David DeSandro

Statistics for: Mark Number of files changed: 52 Number of lines added: 1577 Number of lines deleted: 733

Number of merges: 19

Statistics for: Robert Number of files changed: 74 Number of lines added: 5817 Number of lines deleted: 3065

Number of merges: 16

Statistics for: Travis Number of files changed: 106 Number of lines added: 4416 Number of lines deleted: 3919

Number of merges: 19

Statistics for: Florian Number of files changed: 14 Number of lines added: 363 Number of lines deleted: 145

Number of merges: 3

[...] ```

git fehlende Files entfernen

bash git fehlende Files entfernen function git_remove_missing_files() { git ls-files -d -z | xargs -0 git update-index --remove }

git lokales ignore

bash git lokales Ignore function local-ignore() { echo "$1" >> .git/info/exclude }

Gro??er Stofftux bei der Arbeit

Das ist Tux. Tux ist ein erfahrener Mitarbeiter, den wir gerne gehalten hätten. Manchmal ist er etwas chaotisch, aber er hat ein großes Herz.

Jetz sucht Tux  eine neue Herausforderung! Am liebsten würde er mit Kindern arbeiten, damit sein Leben wieder einen Sinn macht. Dabei ist es im egal, ob er als Kuscheltier für ein Kind oder eine ganze Gruppe angagiert wird.

Wer also eine freie Stelle für Tux als Kuscheltier hat, soll dies bitte in den Kommentaren melden und eine kurze Stellenbeschreibung hinterlassen. Tux wird sich dann im Laufe der nächsten Woche für eine Stelle entscheiden.

Seit einiger Zeit betreiben wir unser Ubuntu-Radio und es sammeln sich immer mehr Musik Dateien an. Mit zunehmender Menge wird eine übersichtliche Darstellung der Dateien immer schwieriger. Wenn man nun Alben von jamendo.de herunter laden tut, dann sind die Musik Dateien immer mit der Track Nummer und dem Titel benannt. Das mag gut sein für ein Album, für das Ubuntu-Radio ergeben sich aber verschiedene Probleme die sich damit nicht lösen lassen.

Die Aufgabe

Im Ubuntu-Radio wird jede Woche eine Musik-Richtung zusammen gestellt. Dazu müssen die verschiedenen Alben zuerst von jamendo.de ausgesucht und herunter geladen werden. Das ist eine Arbeit von ca. 2 Stunden pro Woche. Nach dem Download werden die Audio Dateien entpackt und in das entsprechende Genre-Verzeichnis kopiert. Hier wäre nun schön, wenn die Dateien dann auch den richtige Dateinamen im Sinne des Künstlers und nachfolgend dem Titel beinhalten würden. Eine Zusammenstellung für die spätere Sendung mit eindeutigen Dateinamen wäre viel einfacher.

Die Lösung

Für das Ubuntu Radio braucht es eine einfache und stabile Lösung für das umbenennen der Audio Tags und den Datei-Namen. Wir haben mit der Applikation Audio Tag Tool die ideale Lösung gefunden. Damit ist es möglich die Audio Dateien nach dem jamendo.de Download auf die richtige Benennung zu bringen.

Das Audio Tag Tool

Mit diesem Tool kann man sehr einfach und schneller seine Sammlung bearbeiten. Am Anfang steht die Auswahl des Verzeichnisses oder der einzelnen Datei. Man kann mit dem Audio Tag Tool nun die Tags oder den Dateinamen ändern. Das ganze lässt sich auf einzelne Dateien oder auch auf ein ganzes Verzeichnis anwenden. Ich habe einmal ein Bild für die Tag Bearbeitung gemacht.

1) Nach dem Start wählt man den gewünschten Ordner aus. Je nach Anforderung aktiviert man die Unterordner, so wäre auch die Bearbeitung von grösseren Sammlungen möglich

2) Hier werden nun alle Dateien alphabetisch aufgelistet. Mit einem Rechtsklick auf einer Datei ist es auch möglich diese zu löschen.

3) Bei der Funktionsauswahl kann man die Aufgaben auswählen. Diese sind: Tag bearbeiten, mehrere Dateien taggen, Tags entfernen, umbenennen mehrerer Dateien und Playlistenerstellung.

4) Bei der Funktion Tag bearbeiten werden die Tag Versionen ID3 v1 und ID3 v2 angeboten

5) In diesem Bereich kann man die Audio Information einsehen

Für unser Ubuntu Radio bearbeiten wir nun immer nach dem Download die Tags der Audio-Dateien. In einem nächsten Schritt werden die Dateinamen umbenannt, damit immer zuerst der Künstler und danach der Titel in dem Dateinamen steht.

Man kann bei dieser Funktion das Format des Dateinamens einstellen. Wir wählen immer <artist> – <title>, so wir wir das für unsere Sammlung benötigen. Mach kann noch einige Details zu Sonderzeichen etc einstellen, was manchmal auch nötig ist, da die Tags international eingegeben sind und manchmal ganz exotische Zeichen beinhalten. So sind Musik Stücke aus dem Osten von Russland bis China ganz speziell getaggt. Nach den vorgenommenen Einstellungen kann man das umbenennen starten. Dies geschieht sehr flott und die Dateien erhalten einen neuen Namen. Man kann die Umbenennung auch gleich im Anzeigefenster kontrollieren und wenn nötig nachbesseren.

Fazit

Das Audio Tag Tool ist eine einfache und schnelle Lösung seine Audio Sammlung nach seinen Wünschen zu bearbeiten. Ob eine einzelne Datei oder eine ganze Sammlung, das Audio Tag Tools verrichtet seine Arbeit schnell und einfach.

Ähnliche Artikel

  • Keine ähnlichen Artikel vorhanden

9. März 2012

Als Musikredakteur beim freien Webradio Radio GFM habe ich festgestellt, dass es manchmal gar nicht so einfach ist, einem Laien zu erklären, was eine Creative Commons-Lizenz ist. Klar, vielen Linux-Benutzern dürften freie Lizenzen wie Creative Commons sicherlich ein Begriff sein – was jedoch noch lange nicht heisst, dass sich jeder Mensch damit auskennt.

Creative Commons Logo

Natürlich könnte man der Einfachheit halber auf die freie Enzyklopädie Wikipedia verweisen, doch wer nicht den ganzen, ausführlichen Artikel über Creative Commons durchlesen will, dem bleibt meist nur den Griff zur Suchmaschine. Oder doch nicht?

Dieses Problem hat nämlich auch Gregor Atzbach – welcher regelmäßig Radiosendungen mit CC-Musik auf Radio Unerhört Marburg moderiert – erkannt und kurzerhand einen Infoclip über Creative Commons-Lizenzen aufgenommen.

Anhand der rund sieben-minütigen Sound-Datei ist der Begriff „Creative Commons“ schnell erklärt und für weniger sachkundige Künstler nicht länger ein Fremdwort. Ein gute Sache. </div>
                <div class= Permalink

Bildbearbeitungen gehen heutzutage mit den verschiedensten Programmen wie Krita, Gimp, Inscape und vielen anderen recht leicht von der Hand. Diese Programme sind jedoch häufig nicht darauf ausgelegt eine Vielzahl von Bildern mit einmal zu bearbeiten, sodass diese wiederholenden Vorgänge, wie z.B. Bilder in ein anderes Format konvertieren, Größenverhältnisse ändern u.v.m. doch zu einer langweiligen, wiederholenden Tätigkeit führen können.

Daher wird man sich recht schnell auf die Suche machen, diese einfachen Vorgänge zu automatisieren. Einige Möglichkeiten, wie man mit der Gimp eigenen Sprache Script-Fu gute Ergebnisse erzielt, findet ihr auch hier in einem Beitrag der Linux Community von Wolfgang Kerschbaumer.

Dort wird auch ein Programm genannt, welches ich in diesem Beitrag ein wenig näher vorstellen möchte, da ich es für eines der intuitivsten und am leichtesten bedienbaren Programme auch für Anfänger halte, nämlich Converseen.

Converseen setzt auf Qt-Bibliotheken für die Erstellung der Oberfläche. Insgesamt stellt es vereinfacht lediglich einige der nützlichen Funktionen des sehr beliebten Kommandozeilenwerkzeuges ImageMagick dar, beschränkt sich aber hier meiner Meinung nach auf die zentralen Elemente, die ich bei einer Stapelverarbeitung benötige.

Der Vorgang zur Bildverarbeitung ist intuitiv und schnell durchführbar. Zunächst wählt man alle Bilder in das Programm über Bilder öffnen. Anschließend hat man die Möglichkeit im Hauptfenster auf der rechten Seite das jeweilige Bildformat auszuwählen, in welches konvertiert werden soll. Durch die große Vielfalt, die ImageMick im Hintergrund bietet, hat man auch in Converseen die Möglichkeit auf eine große Anzahl an unterschiedlichen Bildformaten zuzugreifen und in diese Zielformate zu konvertieren.

Auf der linken Seite besteht zusätzlich die Möglichkeit ein paar grundlegende Optionen den Bildern mitzugeben. So ist es u.a. möglich eine Vorschau der einzelnen Bilder anzuschauen, um sich zu vergewissern, dass man auch die richtigen Bilder in der Auswahl hat. Zudem kann man die Abmessungen der Bilder verkleinern oder vergrößern, sowie Auflösung und Speicherpfad zu definieren.

Abschließend besteht noch die Möglichkeit die Dateien nach einem festgelegten Schema umzubenennen. Natürlich ist das nur ein Bruchteil der Funktionen von ImageMagick, aber für die Standardfälle reicht dies durchaus aus und ist für Anfänger auch sicher leichter zu bedienen, als sich in die Kommandozeilenoptionen einzuarbeiten.

Die Installation muss derzeit in Ubuntu noch über ein PPA erfolgen, mittels:

sudo add-apt-repository ppa:faster3ck/converseen
sudo apt-get update
sudo apt-get install converseen

installiert ihr Converseen auf eurem System. Es stehen des Weiteren auch Binärpakete für Windows, Fedora und OpenSuse zur Verfügung.

Wer sich jedoch einmal näher damit beschäftigen möchte, dem sei die Dokumentation und die zahlreichen Beispiele zur Bildkonvertierung mit ImageMagick nahe gelegt, denn hier hat man wirklich eine riesige Auswahl an Funktionen konkreten Anwendungsfällen.

(via)

Bereits Ende letzten Jahres habe ich mich über den AMD-Grafiktreiber hier im Blog ausgelassen. Damals war dieser völlig unbrauchbar, wenn man die GNOME-Shell oder Unity nutzen wollte. Die Fenster ruckelten nur noch über den Desktop und auch der Rest der Arbeitsoberfläche war schlicht gesagt extrem träge. Auch andere Blogger, wie zum Beispiel Valentin von picomol, sprachen das Thema an und kamen insgesamt zum gleichen Ergebnis: Was AMD da abliefert ist einfach peinlich.

In der Zwischenzeit wurde seitens AMD mehrmals Besserung gelobt, unter anderem Anfang diesen Jahres. Heute habe ich mir dann gedacht, probierst du den neuen Catalyst doch einmal aus. Ich nehme es sofort vorweg, ich bin enttäuscht. Das einzige was sich seit meinem letzten Test des Treibers verändert hat, ist, dass die GNOME-Shell nun nicht mehr abstürzt. Aber was nützt einem das, wenn der Desktop nur so vor sich hin ruckelt? Alles in allem kann man also das Fazit von Ende letzten Jahres wiederholen: Der Treiber ist unbrauchbar.

Da ich die 3D-Leistung des Treibers aber benötige, habe ich nach einem Workaround Ausschau gehalten. Diesen findet man direkt im verlinkten Thread im Ubuntu Forum. Damit die GNOME-Shell (bzw. Unity) flüssig über den Bildschirm läuft, muss VSync deaktiviert werden. Dies geht (im laufenden Betrieb) mit folgendem Befehl:

CLUTTER_VBLANK=none gnome-shell --replace

Dabei wird erstens VSync deaktiviert und zweitens die GNOME-Shell neugestartet. Der Desktop sollte nun weitgehend flüssig laufen, nur hier und da fällt ein leichtes Tearing auf. Aber dieser Befehl soll natürlich auch beim Start direkt ausgeführt werden, denn wer möchte diesen Befehl bei jedem Systemstart anwenden. Dies machen wir folgendermaßen:

Zuerst öffnen wir die Datei /etc/profile. Alle in dieser Datei enthaltenen Befehle werden automatisch beim Systemstart ausgeführt.

gksudo gedit /etc/profile

In diese Datei schreiben wir dann die Zeile export CLUTTER_VBLANK=none. Das ganze sieht dann so aus:

Nun noch speichern und das Ruckeln sollte sich zurückhalten.

Update 10.03.12 – 12.00 Uhr:

Solltet ihr statt der GNOME-Shell Unity verwenden, so könnt ihr VSync ganz einfach mit dem CompizConfig Einstellungs-Manager ausschalten. Dafür müsst ihr diesen zuerst einmal installieren:

sudo apt-get install compizconfig-settings-manager

Dann öffnet ihr diesen, indem ihr im Dash nach Compiz sucht. Klickt dann im Manager auf OpenGL. Dann entfernt ihr den Haken bei Mit VBlank synchronisieren und ab sofort sollte auch Unity ruckelfrei laufen.

Vielen Dank an Jallajalla für den Tipp!

Vor einer Weile habe ich schon einmal einen etwas längeren Artikel in freiesMagazin zur OpenShift Plattform von RedHat geschrieben. Der Artikel war zunächst mehr für diejenigen geschrieben, die sich in der Konsole beheimatet fühlen und sich mit den unterschiedlichen Syntaxbefehlen, die notwendig sind, anfreunden können.

Ich bin in der Regel allerdings nicht ein riesiger Fan der Konsole, wenn ich Sie nicht vermeiden kann und mir Oberflächen eine ähnliche Funktionsvielfalt bieten, nutze ich diese doch ganz gerne, noch dazu, wenn ich OpenShift mit der populären und mir gut vertrauten Eclipse-Plattform verwenden kann.

Daher habe ich mich die Tage einmal auf die Suche begeben, ob für OpenShift nicht auch ein Plugin vorhanden ist und ich wurde tatsächlich fündig. Hier nun die kurze Anleitung, welche Schritte man durchführen muss, um die Entwicklungsarbeit zukünftig in Eclipse zu gestalten.

Man beginnt wie bei der Installation jedes Eclipse Plugins über Help – Install New Software… und gibt in dem erscheinenden Dialog über Add folgende URL und einen Namen an:

http://download.jboss.org/jbosstools/updates/development/indigo

Danach holt sich Eclipse alle möglichen Plugins von dieser Seite. Ihr müsst nun navigieren zu den JBoss Cloud Development Tools und dort JBoss OpenShift Express Tools auswählen. Anschließend die Lizenzbestimmungen bestätigen, neustarten und das Plugin ist in Eclipse verfügbar.

Neue Projekte anlegen bzw. bereits bestehende bearbeiten funktioniert folgendermaßen:

File – New – Other… und dann zum Ordner OpenShift navigieren und den Eintrag OpenShift Express Application auswählen und mit Next bestätigen.

Danach werdet ihr nach euren Login-Daten von OpenShift gefragt, ihr könnt aber auch über den Link im Dialog euch einen eigenen Account anlegen, solltet ihr noch keinen besitzen. Anschließend hat man die Möglichkeit seine bestehenden Projekte zu bearbeiten oder völlig neue anzulegen.

In der Detailübersicht der bisher bestehenden Projekte bekommt man alle Angaben schnell auf einen Blick.

Über den Button New hat man zudem die Möglichkeit einen Namen der Anwendung zu vergeben, sowie die Programmierungebun zu bestimmen. Möglich sind aktuell:

  • Perl 5.10
  • PHP 5.3 oder PHP 5.10
  • Python 2.6
  • Ruby 1.8
  • JBoss 7
  • Jenkins 1.4

Anschließend besteht die Möglichkeit Datenbanken, oder Cron-Jobs etc. direkt hier zu aktivieren. Dies kann man aber auch durchaus später noch aktivieren, wenn man diese Tools später benötigt.

Je nachdem, was ihr hier zusätzlich ausgewählt habt, bekommt ihr noch die Login-Daten für die entsprechenden Datenbankverbindungen in einem zusätzlichen Fenster angezeigt.

Anschließend fragt euch Eclipse, ob ihr das eben erstellte Projekt auch importieren möchtet. Dazu müsst ihr sicherstellen, dass ihr einen SSH Key generiert und diesen OpenShift bekannt macht. Dies funktioniert relativ schnell, in dem ihr im Dialog auf den Link SSH Preferences klickt und dann über den Reiter Key – Management und Generate RSA-Key einen neuen Key erstellt bekommt. Zusätzlich müsst ihr nun noch das Passwort unten eintragen, welches mit diesem Key verbunden wird und ihr später braucht um euch bei OpenShift zu authentifizieren, sobald ihr etwas in die Cloud pushen wollt.

Kopiert euch den eben erstellten Key aus der textarea heraus und geht hier auf die Openshift Seite und ändert den bestehenden SSH Key mit eurem ab.

Danach könnt ihr wieder in Eclipse wechseln alles über Apply und OK bestätigen und euer Projekt wird nach dem eingeben eures Passworts in Eclipse importiert. Um jetzt einen Commit und Push zu testen, ändert einfach eine bestehende Datei zunächst ab und speichert diese ab.

Wählt darauf euer Projekt mit Rechtsklick aus, geht auf den Menüpunkt Team und im obersten Eintrag seht ihr Commit. Danach die jeweilige Commit-Meldung vergeben. Als letzten Schritt müsst ihr das ganze noch in die Cloud übertragen in dem ihr statt Commit nun Push to Upstream auswählt. Nach Eingabe des Passworts eures SSH-Keys sind die Dateien anschließend in OpenShift gelandet und ihr könnt sie euch unter eurer öffentlichen URL anschauen.

Nun seit ihr in der Lage vollständig mit Eclipse und OpenShift zu entwickeln, was ich persönlich deutlich angenehmer empfinde, als über die Konsole die Schritte im anfangs zitierten Beitrag zu nutzen. Das ist jedoch Geschmackssache. Wer sich also einmal mit einer PaaS-Umgebung vertraut machen will, sollte OpenShift durchaus eine Chance geben, da die Express-Edition vollkommen kostenlos zum Testen kleinerer Applikationen zur Verfügung gestellt wird.

 

 

Linux Mint Logo 150x150Ich hatte schon ausführlicher über Linux Mint 12 LXDE RC berichtet. Aus diesem Grund nur schnell die Änderungen gegenüber dem Release-Kandidaten. Das Problem mit dem Energie-Management wird in den Veröffentlichungs-Notizen nicht mehr erwähnt. Aus diesem Grund gehe ich davon aus, dass es bereinigt ist – bestätigen kann ich es aber nicht. Es wurde kein Lade-Symbol bei Notebooks angezeigt.

Moonlight fehlt aber immer noch. Ein Fehler bringt Firefox zum Absturz und daher verzichten die Entwickler darauf. Wer bereits den RC im Einsatz hat, kann mittels Level-1- und -2-Upgrades auf die finale Version aktualisieren. Anwender die eine ältere Ausgabe aktualisieren wollen, möchten diesen Anweisungen folgen.

Linux Mint 12 LXDE "Lisa"

Linux Mint 12 LXDE "Lisa": Desktop (Quelle: linuxmint.com)

In der Ankündigung ist zu lesen, dass die Mindestanforderungen wie folgt sind: x86-Prozessor, 256 MByte Arbeitsspeicher und 3 GByte Festplattenplatz. Es gibt nur eine 32-Bit-Version, die Du via BitTorrent oder von einem der Spiegel-Server herunterladen kannst. Auch bei der LXDE-Variante handelt es sich um Hybrid-ISOs, die sich sowohl auf DVD brennen, als auch mittels dd auf einem USB-Stick bannen lassen. Wie bei der Standard-Ausgabe bleibt der Bootscreen komplett schwarz. Das ist so gewollt, weil der schwarze Bildschirm auf allen Systemen gleich aussieht – unabhängig vom Treiber.


Jürgen (jdo) für bitblokes.de, 2012. | Permalink | Twitter

TinyMe Logo 150x150Es handelt sich um eine Alpha-Version, was die Entwickler in der Ankündigung auch klar herausstellen. Anwender sollen mit Ecken und Kanten rechnen. Allerdings ist TinyMe “Acorn” Alpha gut genug, um das Ziel der Distribution zu sehen. Zum Beispiel ist das root-Konto noch nicht vollständig ausgearbeitet – es funktioniert aber grundsätzlich.

TinyMe “Acorn” basiert auf Mandriva Cooker und Unity Linux und richtet sich an ältere Computer oder Anwender, die ein leichtes und schnelles Betriebssystem wollen. Eine Besonderheit von Version 2012.03.05 ist – es gibt die Distribution auch erstmalig in einer 64-Bit-Ausgabe.

TinyMe 2012.03.05 Acorn

Minimalistische Linux-Distribution - basierend auf Mandriva Cooker und Unity Linux

8 Fotos

Die Distribution bringt Linux-Kernel 3.2.7 mit sich und SLiM sorgt für die Anmeldung. Session- und Fenster-Manager ist Openbox, während sich Nitrogen um die Wallpaper kümmert und LXPanel die Leiste anzeigt. Es gehört fast schon zum guten Ton, dass Abiword bei leichtgewichtigen Distributionen die Textverarbeitung der Wahl ist. Mit MuPDF lassen sich PDF-Dateien betrachten und DeaDBeef spielt Audio-Dateien ab. Bilder lassen sich mit Viewnior ansehen und mit MEdit ist ein Text-Editor mit Tabs verfügbar. Osmo dient als persönlicher Informations-Manager (PIM).

TinyMe 2012.03.05 Netsurf kein JavaScript Google Plus

Kein Google+ mit Netsurf möglich

Netsurf als leichtgewichtiger Browser ist zwar gut gemeint, aber leider völlig unbrauchbar. Der Browser unterstützt kein JavaScript. Ganz ehrlich – wie viele Seiten im Internet lassen sich heutzutage ohne JavaScript vernünftig betrachten? Man nehme nur als Beispiel das ganze Social-Media-Gedöns. Google Mail läuft auch nur auf drei Zylindern damit. Zum Glück kann man über den Smart Package Manager einen vernünftigen Browser nachinstallieren. Zum Beispiel findest Du Firefox 10.0.2 oder Chromium im Repository.

Sehr angenehm ist das Kontroll-Zentrum. Von vielen minimalisitischen Linux-Distribution ist man eher rudimentäre Kontrollzentren gewohnt. Diese funktionieren zwar auch gut, sehen aber weit nicht so hübsch aus, wie das von TinyMe. Hier merkt man deutlich den Mandriva-Hintergrund und in Sachen Anwenderfreundlichkeit ist das natürlich ein Plus. Die Standard-Anmeldedaten sind übrigens root / root und guest / guest.

TinyMe 2012.03.05 Menü

TinyMe mit LXPanel

Ansonsten kommt die Distribution nach dem Start mit weniger als 100 MByte Arbeitsspeicher aus. Die enthaltenen leichtgewichtigen Programme starten in Blitzgeschwindigkeit. Wie schon erwähnt, gibt es hier und da noch Fehlermeldungen und für den täglichen Gebrauch ist TinyMe doch noch zu Alpha. Aber ich finde die Entwickler sind auf einem guten Weg, eine wirklich schöne und schnelle Distribution zu erschaffen, die sich auch gut für ältere Rechner eignet.

Ob es langfristig schlau ist, auf Mandriva zu bauen sei dahingestellt. Es ist derzeit sehr ungewiss, wie es mit Mandriva weitergeht. Vielleicht täten die Entwickler besser daran, auf die Mandriva-Abtrünnigen von Mageia zu setzen.

Das Hintergrundbild auf den Screenshots ist nicht in der Distribution enthalten. Du findest es aber in niegelnagelneuen Wallpaper-Sektion als kostenlose Download ohne sichtbare Wasserzeichen oder andere störende Elemente. Testwillige können ISO-Abbilder aus dem Download-Bereich der Projektseite herunterladen. Es stehen Abbilder für die Architekturen i586 und x86_64 zur Verfügung: TinyMe-Acorn-Alpha-2012.03.05.i586.iso (230 MByte), TinyMe-Acorn-Alpha-2012.03.05.x86_64.iso (238 MByte)


Jürgen (jdo) für bitblokes.de, 2012. | Permalink | Twitter

8. März 2012

Pistos (Diaspora* Entwickler_in, siehe auch Diasp0ra.ca – Pistos Diaspora* Fork) ging heute in einem langen Post auf seine Erfahrungen mit Diaspora* ein. Neben den Gründen für die ‘Pistos-Fork‘ wird in dem Post auf diverse Kritikpunkte an den Hauptentwickler_innen (‘DiasporaInc.’) eingegangen. Bisher haben noch keine Hauptentwickler_innen reagiert, ich bin gespannt ob sich eine konstruktive Diskussion über die Zukunft von Diaspora* entwickelt.

Der Artikel ist lang (die Diskussion auch) und es ist spät, deshalb verlinke ich an dieser Stelle nur den Post ohne weiter darauf einzugehen. Mitdiskutieren kann wer einen Dispora* Account hat ;-)

Update [09.03.2012] Ich möchte jetzt (mit etwas mehr Zeit) noch die wichtigsten Punkte und Argumente des Artikels (ohne Anspruch auf Vollständigkeit) zusammefassen.

Pistos erklärt, dass er sein ‘Fork’ Projekt (seiner Meinung nach handelt es sich noch nicht um eine ‘richtige’ Fork) startete als seine Code Beiträge teilweise ohne Begründung abgelehnt wurden.

Problematisch findet er auch, dass Dienstleistungen von Google und Amazon innerhalb von joindiaspora.com (als Analyse Werkzeug, Speicherplatz, aber auch Mailinglisten etc.) genutzt werden. Weitere Kritikpunkte sind die fehlende Pod-Neutralität (der Quellcode ist wohl teilweise auf joindiaspora.com zugeschnitten) und die Fokussierung auf große skalierbare Pods statt auf viele kleine.

Der größte und wohl wichtigste Kritikpunkt ist die (ungenügende) Kommunikation. Sowohl die direkte Kommunikation mit Nutzer_innen und Mitentwickler_innen als auch die Dokumentation (u.a. des Quellcodes) empfindet Pistos als ungenügend. Die arbeit von Sean Tilley lob Pistos jedoch ausdrücklich, dieser wurde anscheinend von DiasporaInc. eingestellt um die Kommunikation mit der Community zu koordinieren / aufrecht zu erhalten.

Anfang 2012 wurden laut Pistos große Teile des Quellcodes ohne vorherige (rechtzeitige?) Ankündigung geändert. Das hatte nicht nur zur Folge, dass viele noch nicht in den ‘offiziellen’ Code eingeflossene Beiträge von Mitentwickler_innen unbrauchbar wurden, sondern auch , dass Pistos es aufgab, seinen Code kompatibel zum ‘offiziellen’ Code zu halten.

Im Februar 2012 kam dann die Ankündigung, dass das Konzept der Kommunikation der Pods untereinander umgestellt / neu programmiert würde, wodurch die Verbindungen zu allen nicht mit dem ‘offiziellen’ Code laufenden Pods (und auch zu ‘Friendica’) abbrechen würden. Die Arbeit an diesem Protokoll hat anscheinend auch schon begonnen und zwar ohne dass sie öffentlich dokumentiert oder diskutiert wurde / wird.

Soweit zu den (aus meiner Sicht) wichtigsten Punkten, anzumerken wäre noch, dass der Beitrag mittlerweile 64 mal reshared und 95 mal kommetiert wurde, sich allerdings kein Statement der Kern-Entwickler_innen darunter befindet.

Noch ein Hinweis, Pistos Post hat eine weitere interessante Diskussion angestoßen und zwar darüber, ob Diaspora* ein demokratisches Projekt ist (sein sollte) ist. Hier haben sich sogar einige Kern-Entwickler_innen zu Wort gemeldet.

Update [13.03.2012] Der aktuelle Blogpost der Kernentwickler_innen “How We Are” scheint wohl die Antwort auf beiden langen Diskussionen zu sein, welche von Pistos angestoßen wurden. Im Artikel stellen sie klar, dass sie die grundlegende Richtung des Projektes bestimmen, in diesem Rahmen aber für Hilfe offen sind. Auch auf die ‘Vision’ wird nochmal eingegangen, u.a. ist ihnen wichtig nicht nur ‘techmenschen’ anzusprechen. Am Ende des Artikels wird noch angedeutet, dass noch Informationen zum neuen Federationsystem kommen werden. Womit sie wohl auf Pistos Kritik an der mangelnden Kommunikation reagieren.


Mit ext4 kam unter anderem ein Feature hinzu, welches sich Directory Indexing nennt. Es ist dazu gedacht in Verzeichnissen mit vielen Dateien eine Art Map anzulegen an welchen Inodes welche Files liegen und kommt erst ab Fileanzahl X pro Directory automatisch dazu. Ziel der Entwickler war natürlich Performance Gewinn.

Allerdings kauft man mit diesem Feature auch eine zusätzliche Limitierung mit ein, bei der ich mich schwer tat wirklich (aufgrund in meiner Wahrnehmung mangelnder Berichte und Doku) das Problem zu debuggen.

Die Limitierung bei vielen Files sind in den meisten Fällen erstmal die Inodes der Platte. Ist die Platte aber ausreichend groß (oder die Inodes ausreichend klein) kommt hier das Directory Indexing ins Spiel:

EXT4-fs warning (device /dev/sdd): ext4_dx_add_entry: Directory index full!

Rsyncs bzw. Schreibende Zugriffe in das Verzeichnis brechen ab und im dmesg findet man obige Meldung. Problem dabei: In dem Directory Index sind so viele Files gelistet, dass in dem (wahrscheinlich FS Designtechnisch limitierten, korrigiert mich bitte) Hashmap Block kein Platz mehr ist. Es können schlicht und ergreifend keine neuen Einträge hinzugefügt werden.

Was jetzt?

Längeres wälzen von Dokumentation lässt sich nicht vermeiden.

A linear array of directory entries isn't great for performance, so a new
feature was added to ext3 to provide a faster (but peculiar) balanced tree keyed
off a hash of the directory entry name. If the EXT4_INDEX_FL (0x1000) flag is
set in the inode, this directory uses a hashed btree (htree) to organize and
find directory entries.

Ext4 Disk Layout, ext4.wiki.kernel.org

Oder auch andere schaurige Threads aus Mailinglisten:

http://www.mail-archive.com/cwelug@googlegroups.com/msg01937.html

Mit debugfs lassen sich die Informationen des Filesystems auszulesen, die einen interessieren. Basic Problematik ist einfach, welches Verzeichnis ist betroffen, wie konnte das passieren und wie bekomme ich es wieder heile.

bash $ cd /var/ $ debugfs debugfs> open /dev/sdd1 debugfs> cd log/ debugfs> htree . [...] Number of Entries (count): 508 Number of Entries (limit): 508 [...] htree listet die Indexes in dem Ordner und Informationen zum hashed B-Tree. Die Limit und Count Values sprechen denke ich für sich.

Okay. Problem gefunden. Wie beheb ich es?

Man baut den Directory Index neu auf, wobei der alte Dir Index prinzipiell behalten wird und der Neue an der letzten Stelle auf den weiteren Index referenziert.

bash fsck.ext4 -yfD /dev/sdd1 Dazu ist ein unmounten zwingend erforderlich, was bei produktiven Systemen unschön ist. Oder man löscht das Verzeichnis.

Wie sich später herausgestellt hat war die Ursache davon ein nicht korrekt funktionierendes Logrotate welches ca 8 Mio. Files produziert hat. Das Löschen hat auch nur ca. 10 Tage gedauert. Nur so am Rande.

Irritiert.

Zum Abschluss muss ich sagen bin ich etwas.. irritiert. Man schafft ein Feature, dass dann einspringt wenn es viele Files werden (bei meinen Tests ab 300.000 Files), welches dann später wegen diesen vielen Files zu fehlern führt. In dem Bereich dazwischen ist das eventuell wirklich nett zu haben, weil Perfomance. Aber dass ich den "Referenzakt" nicht anstossen kann während das FS gemountet ist finde ich dann speziell für den HA Betrieb von Servern ... fragwürdig.

Klar es ist in keinem Fall eine gute Idee mehr als 2 Mio. files in ein Verzeichnis zu legen, aber hey.

Wirklich gestört hat mich eher das mangelhaft Dokumentierte Vorgehen dafür. Seitens Entwickler, seitens Community. Aber deswegen hab ich ja jetzt diesen Post verfasst.

Inspiriert durch die Mojam-Aktion habe ich mir vorgenommen, mich auch mal etwas mit der Spiele-Programmierung (speziell mit Java) zu beschäftigen. Aber dazu vielleicht irgendwann später einmal mehr…

Jedenfalls habe ich auf der Suche nach einem Sprite-Editor ein interessantes Programm gefunden, das ich gerne kurz vorstellen möchte – ASEPRITE.

"Lord Lard" im ASEPRITE-Editor

ASEPRITE ist ein OpenSource-Projekt, das auf Windows, Mac OS und Linux lauffähig ist. Ein erster Pluspunkt. Leider gibt es auch Probleme, auf die ich aber erst weiter unten eingehen will.

Während für Windows eine Binary-Version zum Download bereitsteht, müssen Linux-Benutzer aber die Sourcen herunterladen und selbst kompilieren. Da recht wenig Abhängigkeiten bestehen, sollte das im Regelfall aber nicht sehr kompliziert sein.

Features

Horizontal gesplitteter Editor

Als erstes muss ich mal sagen, gefällt mir die pixelige Oberfläche – :) auch wenn das nur Eye-Candy ist. Und was die Features angeht, naja, ich bin ja kein Profi, aber ich denke, man kann als Hobby-Pixelartist schon sehr gut mit dem Programm arbeiten:

  • Frame-basierte Bearbeitung.
  • Mehrere Layers sind möglich.
  • Vorschau der Animation.
  • Es besteht eine Onion Skinning Option, die den vorigen Frame halb-transparent mit anzeigt (bzw. den Teil des vorigen Frames, der über den Rand des aktuellen heraussteht), so dass man die Bewegung gut sehen/bearbeiten kann.
  • Zeitleiste und Layer-Übersicht

    Der Editor kann beliebig horizontal und vertikal gesplittet werden. So dass man gleichzeitig in mehreren Zoom-Stufen oder aber auch an mehreren Sprites arbeiten kann. Wobei die horizontale und vertikale Aufteilung der Frames auf dem Sheet wählen kann.

  • Sprite-Sheets (alle Sprites in einer Grafik-Datei) können importiert und exportiert werden.
  • Es gibt ein nettes Cheat-Sheet (offiziell Quick-Reference genannt) mit den Shortcuts für die Funktionen.

Kompilation

Um die Kompilation durchführen zu können, muss man zunächst CMake und ein paar andere Pakete installieren:

sudo apt-get install cmake build-essential libx11-dev

Dann legt man sich eine Verzeichnis für die Kompilation an, z.B.:

mkdir /tmp/aseprite
cd /tmp/aseprite

Als nächstes benötigt man natürlich die Quellen. Dazu kann man sich von der Homepage die Sourcen der aktuellen Stable-Version herunterladen. Oder man lädt sich die aktuelle Entwicklungsversion von GitHub (wofür natürlich noch Git installiert werden müsste). Letzteres macht man folgendermaßen:

git clone git://github.com/dacap/aseprite.git

Nun wechselt man in das Verzeichnis, das durch das entpacken der Stable Sources bzw. durch das Klonen des Git-Repositories erstellt wurde. So, dass man nun in dem Verzeichnis steht, in dem auch die Datei INSTALL.txt zu finden ist. In dieser Datei finden sich übrigens in etwa diese Informationen zur Kompilation.

Dann erstellt man ein temporäres Verzeichnis für den Build, wechselt da hinein und startet den Vorgang:

mkdir build
cd build
cmake .. -G "Unix Makefiles"

Abschließend ist noch ein einfaches…

make

… notwendig. Die Kompilation ist damit dann (hoffentlich ohne Fehler) abgeschlossen.

Installation

Befindet man sich nicht (mehr) im temporären Build-Verzeichnis (im Beispiel oben wurde es build genannt), wechselt man zunächst dort hinein. Dann kopiert man das kompilierte Binary an den Zielort. Am besten natürlich in ein Verzeichnis, das im Pfad liegt – also zum Beispiel /usr/local/bin:

sudo cp src/aseprite /usr/local/bin

Außerdem benötigt ASEPRITE noch ein paar zusätzliche Dateien. Diese muss man an einen Ort kopieren, wo das Programm sie auch sucht. Das kann z.B. das Verzeichnis $HOME/.aseprite sein, oder aber in diesem Fall passender /usr/local/share/aseprite/data. Also:

mkdir -p /usr/local/share/aseprite/data
sudo cp -pr ../data/* /usr/local/share/aseprite/data

Das war’s. ASEPRITE sollte nun über aseprite startbar sein.

<UPDATE 10.03.2012>

Um das Programm ins Menü einzubinden, kopiert man folgenden Inhalt in eine Datei namens /usr/local/share/applications/aseprite.desktop (Verzeichnis anlegen, falls nicht vorhanden):

[Desktop Entry]
Version=1.0
Name=ASEPRITE
Comment=Allegro Sprite Editor
Exec=/usr/local/bin/aseprite
Terminal=false
Type=Application
Icon=/usr/local/share/aseprite/data/icons/ase16.png
Categories=Graphics
MimeType=image/bmp;image/gif;image/jpeg;image/png;

</UPDATE 10.03.2012>

Probleme / Bugs

Leider erzeugt das Programm eine hohe Systemlast. Unter Unity 3D und wohl auch unter Gnome3 legt das Programm so sogar das System praktisch lahm – in Unity 2D ist ASEPRITE dagegen gut verwendbar. Ein Bug (#76) ist dazu bereits erfasst – es wäre natürlich gut, wenn ihr für diesen Bug voten würdet, damit er mehr Gewicht bekommt (außerdem werdet ihr so über Neuigkeiten zum Bug auf dem Laufenden gehalten).

Wer Unity kurzzeitig für die Arbeit mit ASEPRITE deaktivieren will (ohne sich neu anzumelden), kann das vor dem Programmstart so tun:

metacity --replace &

Zu beachten ist dabei, dass das Panel natürlich so verschwindet und man nur noch über das Terminal Programme starten kann. Mit…

compiz --replace &

… stellt man den Ursprungszustand wieder her.

<UPDATE 08.05.2012>

Für den Performance-Bug unter Unity und Gnome Shell habe ich heute einen kurzen Beitrag mit einem weiteren Workaround gepostet…

</UPDATE 08.05.2012>

Außerdem ist mir noch ein Bug (#52) aufgefallen, der aber in der Entwicklungsversion (im Gegensatz zur Stable Version 0.9) schon behoben ist: Importiert man ein Sprite-Sheet kann man die vorbelegte Sprite-Größe von 16×16 zwar ändern, die Änderung hat aber keinen Effekt. Das ist natürlich ein Problem, wenn man bereits fertige Sheets hat, die aber nicht korrekt in den Editor übernehmen kann.

Wine LogoDas Wine-Team hat mit stolz eine neue große Wine-Version angekündigt: Nach ungefähr zwei Jahren Entwicklungszeit – 20 Monate um genau zu sein – und sechs Release-Kandidaten gibt es nun die finale Version.

Als die Highlights stellen die Entwickler in der offiziellen Ankündigung die neue DIB Grafik-Engine, einen überarbeiteten Audio Stack und volle Unterstützung für bidirektionales Text- und Character-Shaping heraus.

Des Weiteren unterstützt die neueste Wine-Ausgabe viele weitere für Windows geschriebene Software, wie zum Beispiel Microsoft Office 2010.  Die Entwickler widmen Wine 1.4 den im Mai 2011 verstorbenen Gé (Greg) van Geldorp. Der Entwickler hat ganz alleine den Wine Testbot designed, geschrieben und gewartet. Dieses Stück Software wurde zu einem der Eckpfeiler in der Wine-Entwicklung. Auch die hohe Qualität dieser Version sei Greg van Geldorp mit zu verdanken.

Wie immer gibt es den Quellcode bei ibiblio.org oder sourceforge.net. Binärpakete für unter anderem Ubuntu, Debian, Red Hat, Fedora, openSUSE, Mandriva, Slackware, FreeBSD und PC-BSD findest Du im Download-Bereich der Projektseite. Weitere Informationen gibt es auch in der Dokumentation.

Vor wenigen Tage erst ist CrossOver XI erschienen, das ebenfalls auf Wine 1.4 basiert. Und auch die Entwickler von PlayOnLinux und PlayOnMac stellen Wine 1.4 bereits zur Verfügung.

Fallout 3 1.x

Fallout 3 1.x (winehq.org)

Mit Wine / CrossOver / PlayOnLinux lassen sich in der Tat viele Windows-Programme unter Linux nutzen, für die man keine Alternative hat. Persönlich benutze ich es für die eine oder andere Windows-Software, wie zum Beispiel Tauchplaner oder auch Microsoft Word (hab leider keine Wahl).

Dennoch bin ich froh, dass es immer mehr gleichwertige Alternativen zu Windows-Produkten auf dem Linux-Markt erhältlich sind und auch diverse Firmen ihre Produkte sowohl für Windows als auch Linux anbieten. Für mich persönlich sind das Programme wie Corel Aftershot Pro und natürlich auch Firefox, Chrome, Thunderbird, LibreOffice und so weiter. Für viele Linuxer ist Wine ein Segen, weil man damit einige der prominenten Spiele zum Laufen bekommt. Dazu zählen auch meine Favoriten Fallout 3 und Fallout: New Vegas. Aber auch World of Warcraft und diverse Shooter lassen sich mit Wine sehr gut unter Linux spielen. Für eine kleine Gaming-Sitzung muss man den Rechner also nicht neu starten.


Jürgen (jdo) für bitblokes.de, 2012. | Permalink | Twitter

Cinnamon 1.3 Desktop

Cinnamon 1.3: Desktop

Der Gründer von Linux Mint, Clement Lefebvre, hat angekündigt, dass die eigens entwickelte Desktop-Umgebung Cinnamon ab sofort übersetzt wird.

Aus diesem Grund gibt es ein komplettes Übersetzungs-Template auf Launchpad. Die Linux-Mint-Übersetzungs-Truppe wird Cinnamon daher genau wie zum Beispiel die Mint Tools übersetzen und paketieren. Andere sind aber herzlich eingeladen, auch mit zu arbeiten.

Anders als andere Linux Mint Translation Packages, die in das Paket mint-translations wandern, werden die Cinnmon-Übersetzungen natürlich in Cinnamon selbst eingepackt.

Das Template beinhaltet nicht nur die Buchstaben-Strings für Cinnamon selbst, sondern auch für die darunterliegenden St-Bibliothek und alle Applets, die per Standard enthalten sind.

Laut eigener Aussage ist die Übersetzung doch recht umfangreich. Es gibt derzeit 342 Sätze pro Sprache zu übrsetzen. Aber sobald dieser Schritt erledigt ist, kannst Du Cinnamon in Deiner Landessprache laufen lassen.


Jürgen (jdo) für bitblokes.de, 2012. | Permalink | Twitter

7. März 2012

Da ich auf meinen Systemen meist einen Gast-Account einrichte und mein eigenes Home-Verzeichnis prinzipiell verschlüssele, gab es bisher auf meinen Rechnern keine Möglichkeit, dass sich Gast-Account und mein eigener Account ein Musik-Verzeichnis teilen. In einem Gespräch ist mir nun gestern klar gemacht worden, dass ich einfach nur die Musik in einen Ordner kopieren muss, der nicht verschlüsselt ist, damit beide Accounts Zugriff erhalten können. Gesagt, getan.

Nun stellt sich die Frage, wo die Musik in Zukunft liegen soll. Sinnvoll wäre natürlich ein Überordner wie /usr/share, aber da auf meinen Rechnern der /home-Ordner auf den größten Platten liegt, habe ich schlicht keine andere Möglichkeit. Es ist also notwendig, einen neuen Ordner innerhalb des Home-Folders an zu legen:

cd /home
sudo mkdir music

Damit nun beide Accounts auf diesen Ordner zugreifen können ist es sinnvoll eine neue Benutzergruppe an zu legen:

sudo addgroup austausch

Nun hat die Gruppe nach dem Anlegen noch keine Mitglieder. Das sollten wir beheben, in dem wir beide Accounts hinzufügen:

sudo usermod -aG austausch HAUPTACCOUNT
sudo usermod -aG austausch GASTACCOUNT

Nach dem wiederanmelden sind beide Accounts Teil der Gruppe. Nun müssen wir den eben angelegten Ordner music der Gruppe übertragen und den Gruppenmitgliedern Rechte zum Schreiben, Lesen und Ausführen geben:

sudo chgrp austausch music
sudo chmod g+rwx music

Zum Abschluss sollten wir noch jeweils einen symbolischen Link erstellen, damit wir den Musik-Ordner im verwendeten Account weiterhin als navigatorischen Zugang beibehalten können. Ich verwende hier gern den Unterordner namens LPs:

ln -s /home/music /home/HAUPTACCOUNT/Musik/LPs

Damit wir uns beim Gastaccount nicht grafisch anmelden müssen nutzen wir su um temporär dessen Rechte an zu nehmen:

su GASTACCOUNT
ln -s /home/music /home/GASTACCOUNT/Musik/LPs
exit

Und schon kann von beiden Accounts auf den selben Ordner zu gegriffen werden.

Bereits vor ein paar Tagen, haben ich darüber berichtet, dass die erste Beta von Ubuntu 12.04 LTS veröffentlicht wurde. Dort habe ich unter anderem versprochen, dass ich mir die Beta auch einmal anschauen möchte. Hier im Artikel folgt jetzt also die Einlösung meines Versprechens.

Was fällt auf?

Die erste Änderungen, die man nach der Installation von Ubuntu 12.04 erblickt, betreffen den Desktop-Manager LightDM. Dieser hat allerdings nur einige optische Anpassungen und Spielereien verpasst bekommen, sodass sich zum Beispiel das Hintergrundbild des Managers an das des ausgewählen Benutzers anpasst. Außerdem ist nun ein Pfeil im Feld des Kennworts enthalten, mit dem man die Anmeldung ausführen kann.

Nach der Anmeldung erkennt man auf dem Desktop erst beim zweiten Blick kleine Änderungen. So wurde auffälligerweise der Dash-Button halb-transparent gestaltet, sodass die Farbe vom Hintergrundbild leicht durchschimmert. Auch das ist wohl nur eine optische Spielerei. Klickt man jedoch auf diesen Button, gibt es die erste Änderung, die auch den Arbeitsalltag leicht verändert. So findet man auf der Dash-Startseite nun nicht mehr acht vorgegebene Programme, sondern es werden die letzten verwendeten Programme aufgelistet. Diesen Schritt begrüße ich, da ich der bisherigen Dash-Startseite nur wenig abgewinnen konnte. Ansonsten befindet sich auch die zweite mir aufgefallene Änderung im Dash. Hier gibt es nun eine Videolinse, wo man nicht nur lokale Videos, sondern auch Online-Videos finden kann. Wünschenswert wären hier aber mehr deutsche Dienste. Außerdem funktionierte die Online-Suche bei mir noch nicht.

Eine kleine Änderung gibt es auch im Global-Menu. Die einzelnen Menüpunkte werden nach dem Start einer Anwendung nun für ein paar Sekunden eingeblendet, so dass auch Ubuntu-Einsteiger sofort wissen, wie sie das leicht versteckte Menü finden.

Kommen wir nun aber zum größten neuen Feature, was schon vielfach angepriesen wurde, dem HUD-Menu. Drückt man in einer (unterstützen) Anwendung die [alt]-Taste, so kann man direkt nach einer bestimmten Aktion suchen, die man sonst mühsam im Programmenü hätte finden müssen. Das ganze klappt erstaunlich gut und intuitiv, wodurch mir das Feature doch sehr sympathisch ist. Wenn bis zum finalen Release noch mehr Anwendungen unterstützt werden, wird das HUD-Menu sicherlich seine Anhänger finden.

Ansonsten ist noch anzumerken, dass sich die Batterielaufzeit auf meinem Lenovo Thinkpad Edge E320 sehr zum positiven entwickelt hat. Ohne irgendwelche Optimierungen erreiche ich die gleiche Akkulaufzeit wie mit meinem optimieren Ubuntu 11.10. Ubuntu ist ab Version 12.04 also auch wieder uneingeschränkt für Sandy-Bridge-Systeme geeignet.

Zum Abschluss möchte ich noch darauf hinweisen, dass es während der Testzeit zu vielen Fehlern kam, wodurch ich nochmal die Warnung von offizieller Seite bestätigen kann. Die Beta-Version ist schön zum Testen, jedoch meiner Meinung nach keinesfalls zum produktiven Einsatz geeignet.

Das populäre Open Source Mediencenter XBMC nähert sich langsam aber sicher einem neuen Major Release an. Seit ein paar Tagen steht der Release Candidate 2 zum Download auf der Projektseite bereit. Die neue Version bringt vor allem Verbesserungen in der Architektur mit sich, aber auch ein Port für iOS, neue Funktionen wie die Wiedergabe ungeschützter BluRays und ein neues Standard-Design sind mit an Board. Da ich ein großer Fan von XBMC bin habe ich die neue Version bereits jetzt einmal angetestet.

iOS-Port

Die größte Neuerung von XBMC ist sicherlich der iOS-Port für Geräte wie den Apple TV 2, das iPad oder auch das iPhone. XBMC kann dabei ganz einfach auf jedem Geräte mit Jailbreak und mindestens iOS 4.x aus dem Cydia-Store installiert werden. Die Installation wird detailliert im Wiki des Projektes beschrieben und lässt sich innerhalb kurzer Zeit durchführen. Grundsätzlich lassen sich alle auf den anderen Plattformen unterstützen Videoformate in SD-Qualität auch auf den iOS-Geräten wiedergeben. HD-Material im H.264 Format kann ebenfalls auf den meisten Geräten wiedergeben werden, alle anderen HD-Formate funktionieren aufgrund mangelnder Leistung aber nur schlecht und auch nur auf dem iPad 2 und dem iPhone 4S. Musik und Videos sollte man am besten auf einem Netzwerkspeicher vorhalten, denn keines der Geräte unterstützt externe Festplatten oder andere Datenträger. Lediglich auf dem iPad kann man mithilfe des SD-Adapters auf externes Material auf SD-Karten zugreifen.

Ich hab XBMC auf einem iPad der ersten Generation getestet und war von der Stabilität und der Funktionalität positiv überrascht. Das “Touched”-Theme funktioniert gut und die Steuerung ist auch einigermaßen flüssig. Der Zugriff auf meine Videodatenbank mittels SMB funktionierte auf Anhieb und mithilfe eines Tricks lassen sich alle Bibliotheken mit mehreren XBMC-Installationen synchronisieren. So sieht man auf dem Mediencenter am Fernseher die gleichen Videos wie auf einem iPad oder einer Installation auf einem Notebook. Schade ist, dass XBMC auf dem iPad noch kein Multitasking unterstützt, sprich sobald man in eine andere Anwendung wechselt wird XBMC beendet und man muss von vorne Anfangen.

BluRay-Wiedergabe

Eines der am meisten geforderten Features der Community war ein ordentlicher Support für BluRays. Dem sind die Entwickler in der neuen Version auch nachgekommen und unterstützen das direkte Wiedergeben von BluRays und BluRay ISO-Dateien. Ein großer Wermutstropfen bleibt aber: Die Unterstützung für das Abspielen von BluRays bleibt auf ungeschützte Filme beschränkt und auch Menüs werden bislang nicht unterstützt. Grund dafür ist, dass es noch keine Open Source Bibliothek zum Umgehen der Verschlüsselung oder zur Darstellung von Menüs von BluRays gibt. Bis sich die Situation ändert und es eine Art libdvdcss für BluRays gibt muss man auf andere Möglichkeiten zurückgreifen, etwa wie in dieser Anleitung beschrieben, die auch bereits mit der alten XBMC-Version Dharma funktioniert.
Die Wiedergabe klappt dank ausgereifter Hardware-Beschleunigung selbst auf schwachbrünstigen Atom-HTPCs ohne Probleme in voller HD-Auflösung und mit Sound über HDMI oder SPDIF. Nervig ist bei manchen Videos die Suche nach der richtigen Audio-Spur, da XBMC diese oft nicht mit Namen benennen kann und man so raten muss.

Theming und GUI

XBMC Eden bringt auch eine neues Standard Theme mit horizontalem Layout mit. Die Entwickler beschreiben in einem Eintrag, dass sie damit das Auffinden von Videos und Addons erleichtern und unnötige Klicks vermeiden wollen. Zusätzlich zur neuen Addon-Leiste unten gibt es auch die Möglichkeit oben die kürzlich hinzugefügten Serien und Filme anzuzeigen.

Das alte Confluence Theme

Das alte vertikale Confluence Theme aus XBMC Dharma. (Quelle: xbmc.org)

Das neue Confluence Theme aus Eden

Das neue horizontale Confluence Theme aus XBMC 11. (Quelle: xbmc.org)

Außer dem neuen Standard-Design gibt es aber auch einige Verbesserungen für Entwickler eigener Themen. Diese sollen noch besser auf die verschiedenen Funktionen von XBMC zugreifen können und so um einiges flexibler werden. Weiters wurde die Maus und Touch-Unterstützung verbessert sowie Touch-Gesten eingeführt. Das ist natürlich im Hinblick auf den iOS-Port beinahe zwingend nötig gewesen.

PVR-Unterstützung?

Leider haben es die Entwickler in dieser Version nicht geschafft eine eigene ordentliche PVR-Unterstützung zu programmieren. Wer also Filme mit einer TV-Karte aufzeichnen möchte oder live anschauen will, der muss weiterhin auf externe Lösungen wie MythTV oder VDR zurückgreifen und diese in XBMC mithilfe von Addons integrieren. Ein eigenes Backend rund um TV-Karten soll aber die nächste Version mit sich bringen.

Weitere Neuerungen

Die oben genannten Verbesserungen sind natürlich nicht alle Änderungen der neuen Version. Ich bin so frei und fasse ein paar der wichtigsten kleinen Perlen aus der Englischen-Wikipedia und der Roadmap des Projektes zusammen:

  • Allgemeine Verbesserung der CPU und GPU-Auslastung, vor allem auf der ARM-Architektur und in Zusammenhang mit erweiterten Prozessorfeatures wie MMX oder SSE
  • Slingbox-Wiedergabe (Set-Top-Box zum ortsunabhängigen Fernsehen)
  • Verbesserter OpenGL ES und EGL Support
  • VDPAU-Verbesserungen – etwa hardwarebeschleunigtes Upscaling mit NVIDIA GPUs
  • AirPlay/AirTunes Support
  • Verbesserte Addons API, etwa eigene Webinterfaces für Addons
  • Stub-Files um Nachrichten anzuzeigen, etwa wenn eine DVD ins Archiv aufgenommen werden sollte, ohne dass ein Image davon existiert
  • NFS-Support auf allen Platformen
  • Update der ffmpeg-Bibliothek

Fazit

XBMC kann es in der neuen Version auf jeden Fall mit kommerziellen Mediencentern aufnehmen. Die Entwickler haben meiner Meinung nach zwar keine bahnbrechende Neuerungen eingeführt, aber einige Probleme der alten Version ausmerzen können. Leider trüben DRM-Systeme wie die Verschlüsselung von BluRays weiterhin den absoluten Mediengenuss, wer aber etwas Geduld mit sich bringt oder weiterhin bei DVDs bleibt und auf BluRay-Medien verzichten kann wird das wenig stören.

Ich habe gestern abend eine Internetseite umgezogen. Ein WordPress. Aus dem Bett heraus. In 20 Minuten. Mit Linux auf dem Notebook wär’s vermutlich einen Ticken schneller gegangen, aber auch nicht wirklich.

Voraussetzung für einen derart schnellen Umzug ist, dass die Seite bisher kein Emailing hat, bzw. dieses woanders liegt, und der DNS-Record vollständig konfigurierbar ist, und beide Hoster SSH-Zugriff erlauben.

Normalerweise würde man die Datenbanken auf Hoster A per PHPMyAdmin o.ä. exportieren und die Webseite-Daten per FTP herunterladen, dann auf dem neuen Hoster runterladen und die Datenbanken importieren.

Der Aufwändigste Teil war für mich das portieren der Datenbanken: Dump herunterladen, modifizieren für die neue Datenbank, dann wieder hochladen in den neuen PHPMyAdmin.

Der Rest ging einfach, weil mit wenigen Befehlen in der Konsole machbar statt ewigem Herumgeklicke und umhergelade.

  1. Einloggen bei Uberspace per SSH
  2. Navigieren in das Ziel-HTML-Root
  3. Von Uberspace aus einloggen in den Space von 1blu
  4. Navigieren in das HTML-Root der Seite.
  5. pwd eingeben und sich “1bluuser@1bluserver:/[ausgabe von pwd]/” in die Zwischenablage kopieren
  6. Ausloggen aus 1blu
  7. Eingeben: “scp 1bluuser@1bluserver:/[ausgabe von pwd]/* .“, kurz warten (ein Server lädt die Daten direkt vom anderen Server, nix geht über den langsamen Upspeed zuhause, das macht Spaß!)
  8. Ggf. Rechte anpassen und bei WordPress z.B. die wp-config.php anpassen. Das war bei dem migrierten WordPress bisher nicht nötig, auch Uploads und Co. funktionieren einwandfrei.
  9. DNS-Eintrag A-Record auf die neue IP umstellen.

Zack. Fertig. Keine Sonderzeichen-Probleme, alles läuft.

0 0 0

So dann trete ich mal meinen virtuellen Gang nach Canossa an und die Bitte in diesem Fall ist: Erspart Euch bitte Kommentare im Stil von “hätt ich Dir gleich sagen können” – die Beteiligung war schockierend genug: Eine Einsendung!

Dann möchte ich mich noch entschuldigen, dass es so lange gedauert hat mit der Ankündigung, aber ich habe gerade echt viel um die Ohren und bitblokes.de ist derzeit nun mal Teil meiner Freizeit.

Das Gute an der Sache ist, dass wir uns über den Gewinner absolut einig sind … :)

Natürlich betreibt man in so einem Fall zuminedst in seinem Gehirn eine Fehler-Analyse. Eine Sache war wohl meine eigene Naivität zu glauben, dass Mundpropaganda funktioniert. Mich hatte auch Leute angeschrieben, die per E-Mail benachrichtigt werden wollten, wenn der Wettbewerb losgeht. Müssen wohl alle von der selben Klasse gewesen sein.

Vielleicht war es auch ein bisschen dämlich von mir, den Einsendeschluss in die Faschingswoche zu legen. Ich frage mich dennoch, ob wir mehr Einsendungen für einen Wettbewerb “Sende einen Screenshots mit den meisten Frags ever unter Shooter XYZ ein!” bekommen hätten. Dennoch überlegen wir (die Juroren und ich) uns, die Sache zu wiederholen – allerdings nur dann, wenn wir einen Weg finden, die Schulen direkt zu adressieren.

Egal – es hat nicht funktioniert und der Gewinner steht fest. Ich will deswegen diesen Post auch gleich nutzen, um den Artikel des Gewinners vorzustellen. Im Artikel linken die Einsender auf eine englische Übersetzung. Auf Nachfrage ist diese aus der selben Feder. Sie wurde erschaffen, weil die Mehrheit der Minetest-C55-Nutzer Englisch sprechen. In der selben E-Mail hat mir Nils von den Gewinnern auch geschrieben, dass er sich wundert, dass die Beteiligung bescheiden sei. Seiner Meinung nach würden sich genug Schüler für Computer interessieren und er hat die Frage der Faulheit als Ursache in den Raum gestellt.

Bedanken möchte ich mich vielmals bei den willigen Juroren Matthias, Moritz, Ole und Patrick, sowie O’Reilly und Terrashop, die Preise zur Verfügung gestellt hätten.

Über die Aufbesserug der Klassenlasse von 200 Euro darf sich die Klasse 9d des Hölderlin Gymnasiums aus Nürtingen. Der Text wurde von Florian geschrieben und das HTML sowie die Screenshots von Nils vorbereitet. Vielen Dank, dass ihr Euch die Mühe gemacht habt und deswegen habt ihr den Preis auch verdient. Der nachfolgende Text ist einfach via Copy&Paste eingefügt.

Minetest-c55 Modding in Lua

Einführung:

Minetest-c55 (test.mine.bz) ist ein Minecraft-Klon, entwickelt vom finnischen Programmierer ‘celeron55′. Es verfügt unter anderem über eine sogenannte ScriptAPI, die zur Programmierung von Mods eingesetzt wird. Dieses Tutorial soll erklären, wie die Entwicklung von Mods funktioniert.

Vorraussetzungen:

Um dieses Tutorial richtig verstehen zu können, sollten Sie grundlegende Kenntnisse in der Programmierung, bevorzugt Lua haben.

Kapitel 0: Anlegen eines Mods

Um einen Mod zu programmieren, muss unter dem Verzeichnis ~/.minetest/usermods ein Ordner mit dem Namen des Mods angelegt werden. Darin muss zum einen die Datei ‘init.lua’, die die Programme enthält und ein weiterer Ordner mit dem Namen ‘textures’ angelegt werden.

Kapitel 1: Der erste Mod!

Als ersten Mod werden Sie einen Holzblock erstellen, der zu Dekorationszwecken verwendet werden kann. Dazu wird der Ordner ‘tutorial’ und die dazugehörigen Dateien wie in Kapitel 0 beschrieben erstellt.

In die init.lua muss der folgende Quellcode eingefügt werden:

minetest.register_node("tutorial:holz",{
        tile_images = {"holz.png"},
        material = minetest.digprop_constanttime(1),
})

 

In den Ordner textures muss die Datei ‘holz.png’. Diese befindet sich im selben Ordner wie dieses Tutorial. Wenn minetest nun gestartet wird, wird dabei automatisch der Quellcode kompiliert und geladen.

Nun ‘ingame’ das Chatfenster mit ‘T’ öffnen und sich durch /giveme tutorial:holz einen Holzblock erschummeln. Fertig ist der erste Mod!

Nehmen wir einmal den Quellcode auseinander:

Die Funktion minetest.register_node ist dafür verantwortlich, neue Blöcke zum Spiel hinzuzufügen.

Als Parameter müssen zum einen der Namen des neuen Blocks (“tutorial:holz”) sowie eine Lua-Tabelle mit verschiedenen Parametern übergeben werden.

Darunter befindet sich tile_images, welches die Textur des Blocks vorgibt, und mit Komma getrennt material, was die Eigenschaften bezüglich der Abbaugeschwindigkeit angibt. minetest.digprop_constanttime(1) gibt demzufolge an, dass der Spieler, egal welches Werkzeug er verwendet, 1 Sekunde zum Abbauen des Blocks braucht.

Alternativ könnte man zum Beispiel auch

material = minetest.digprop_woodlike(1.5),

verwenden. Dadurch braucht das Abbauen des Blocks 1.5 mal so lang, als bei einem normalen Holzblock.

Außerdem bevorzugt dieser Wert auch Äxte, da diese Holz schneller abbauen als andere Werkzeuge.

Kapitel 2: Crafting!

Obwohl das Spiel Minetest im Gegensatz zu MineCraft das Wort nicht im Namen trägt, ist Crafting dennoch ein grundlegender Bestandteil des Spielprinzips. Als Crafting bezeichnet man das Herstellen von Gegenständen, indem man andere Gegenstände kombiniert.

So wird z.B. eine Steinaxt aus Stöcken und Steinen hergestellt:

Um das Deko-Holz aus Kapitel 1 auch craften zu können , müssen Sie den folgenden Code in die init.lua einfügen:

minetest.register_craft({
        output = '"tutorial:holz" 2',
        recipe = {
                {'default:wood', 'default:wood', ''},
                {'default:wood', 'default:wood', ''},
                {'', '', ''},
        }
})

Die Funktion minetest.register_craft() registriert einen Crafting-Vorgang. Der Parameter output gibt an, welcher Gegenstand beim Vorgang herauskommt, hier unser Holz. Die 2 gibt an, dass 2 Blöcke Holz entstehen. Das Rezept unten gibt an, woraus das Holz ‘gecraftet’ werden kann;

Jeder String steht für ein Feld beim Crafting. Probieren Sie auch andere Kombinationen aus!

Was bedeutet eigentlich das default vor wood?

‘default’ steht ,wie tutorial:* für den tutorial-mod, für den default-mod. Dieser definiert alle grundlegenden im Spiel vorkommende Gegenstände.

Der default mod findet sich bei einer run-in-place-version von minetest unter minetest/data/mods/default/init.lua.

Darin enthalten ist auch z.B. default:wood.

Kaptiel 3: ABMs & Positionen!

ABMs sind Arbeitsbeschaffungsmaßnahmen für Blöcke, Sie verschaffen unserem Tutorial-Holz sinnlose Aufgaben. Wie wäre es, wenn das Tutorial-Holz einfach nach einer bestimmten Zeit wieder zu normalem Holz wird?

Dazu müssen Sie diesen Code noch an die init.lua dranhängen:

minetest.register_abm(
        {nodenames = {"tutorial:holz"},
        interval = 30,
        chance = 1,
        action = function(pos)
                minetest.env:add_node(pos, {name="default:wood"})
        end,
})

Die Funktion minetest.register_abm registriert eine für jeden Block einer Sorte auszuführende Aktion. nodenames = {"tutorial:holz"} gibt an, dass die Aktion für alle Tutorial-Holzblöcke ausgeführt wird. Probieren Sie doch auch einmal “default:stone”, um auch alle Steinblöcke zu verwandeln. interval = 30 bedeutet, dass die Aktion alle 30 Sekunden ausgeführt wird und chance = 1 dass die Wahrscheinlichkeit dafür 1 (also immer) beträgt. Als Aktion (action) kann nun eine Funktion gesetzt werden, die pos (die Position des tutorial-Holzblockes) als Parameter hat.

Mit minetest.env:add_node(pos, NodeTable) kann nun ein Block an der Position pos mit den Attributen in NodeTable hinzugefügt werden. Um zu definieren, dass es sich um einen Default-Holzblock handelt, reicht es den Namen anzugeben.

Lehnen Sie sich jetzt zurück und schauen Sie zu, wie sich Ihre Freunde aufregen, dass Ihre Kreationen aus Deko-Holz wieder zu Standard-Holz werden.

Angenommen, Sie wollen jetzt aber erreichen, dass auf jedem Erde-mit-Gras-Block hohes Gras wächst (also default:junglegrass). Dazu müssen Sie die Position pos modifizieren können.

Dazu müssen Sie wissen, dass pos eine Tabelle ist die die folgenden Variablen enthält: x, y, z.

x und z sind Koordinaten in der Blockwelt nach Vorne-Hinten, Rechts-Links.

y hingegen ist die Oben-Unten-Koordinate (je höher, desto größer y).

Um nun hohes Gras über Erde-mit-Gras Blöcken wachsen zu lassen, können Sie den folgenden Code verwenden:

minetest.register_abm(
        {nodenames = {"default:dirt_with_grass"},
        interval = 1,
        chance = 100,
        action = function(pos)
                pos.y=pos.y+1
                minetest.env:add_node(pos, {name="default:junglegrass"})
        end,
})

Die Zeile pos.y=pos.y+1 manipuliert die Position so, dass es sich nun um die Position direkt über dem Erde-mit-Gras-Block handelt. Das Ausführ-Intervall beträgt hier 1 Sekunde, die Wahrscheinlichkeit, dass die Funktion aber wirklich ausgeführt wird liegt bei 1/100. So wird Ihr minetest-Garten langsam, aber sicher mit hohem Gras überwuchert.

Dies ist nur eine kurze Einführung in Minetest Lua Modding. Eine englische Fassung dieses Tutorials finden Sie unter https://github.com/Jeija/minetest-modding-tutorial/blob/master/mtmoddeven.txt. Die englische Fassung ist umfangreicher als die deutsche Version.

Ich hoffe, dass Sie hiermit schon einen kurzen Einblick in die Modprogrammierung erhalten haben und diese Kenntnisse auch bei anderen Programmen hilfreich sind.

Für weitere Informationen steht Ihnen das Wiki von Minetest zur Verfügung.

Beide Links dienen nur als Kurzreferenz. Außerdem können Sie im Minetestforum Ihre Fragen loswerden oder Ihre selbstgeschriebenen Mods präsentieren.


Jürgen (jdo) für bitblokes.de, 2012. | Permalink | Twitter

CrossOver Logo 100x65Codeweavers hat die Verfügbarkeit von CrossOver XI für Linux und Mac angekündigt. Hier handelt es sich um eine kommerzielle Software, mit der sich Windows-Programme unter Linux oder Mac OS X benutzen lassen.

Neu an CrossOver XI ist ist, dass es keine verschiedenen Versionen mehr gibt. Laut offizieller Ankündigung wurden Pro, Standard und Bundle konsolidiert und man liefert nur noch eine einzige Ausgabe. Ebenso ist CrossOver Games in das Hauptprodukt eingeflossen. Nun gibt es CrossOver also nur noch als einzelnes Produkt.

Dennoch gibt es Preisunterschiede. Der Kunde kann sich entscheiden, wie lange er offizielle Unterstützung haben möchte und das wirkt sich in den Kosten für CrossOver XI aus. Die Optionen sind 1 Monat, 6 Monate oder 12 Monate.

Ebenso kann CrossOver XI mit mehr Produkten als der Vorgänger umgehen. Als Highlight wird Microsoft Office 2010 herausgestellt. CrossOver XI basiert auf Wine 1.4 und laut eigenen Angaben wurden gegenüber 1.2 über 16.000 Patches eingepflegt. Wine 1.4 befindet sich derzeit kurz vor der Herausgabe. Der aktuelle Release-Kandidate ist Nummer 6 und das Projekt befindet sich im Code Freeze. Die Entwickler bügeln nur noch Fehler / Bugs aus.

Weiterhin geben die Entwickler an, dass CrossOver XI die letzte Version sein wird, die unter Mac OS X 10.5 “Leopard” laufen wird. Die nächste Variante setzt mindestens 10.6 “Snow Leopard” voraus.

Eine weitere Neuerung ist eine komplett neue Webseite, um CrossOver XI zu unterstützen. Das neue Design soll es Menschen einfacher machen, sich zurecht zu finden.

CrossOver neue Webseite

Codeweavers Webseite im neuen Gewand

Wer bereits CrossOver-Anwender ist und Anspruch auf Unterstützung hat, kann sich die neueste Version bei Codeweavers herunterladen. Der Nutzer möchte dazu einfach seine E-Mail und Passwort zu Rate ziehen, die er beim Kauf verwendet hat.

Wer die Katze nicht im Sack kaufen möchte, kann sich eine Testversion herunterladen. Wer sich informieren möchte, was denn alles mit CrossOver lauffähig ist, kann dies ebenfalls auf der Webseite einsehen. Die Applikationen sind in Gold, Silber, Bronze oder nicht lauffähig klassifiziert.

Mittels CrossTie kannst Du bei einem installierten CrossOver einfach auf die Applikations-Seite gehen und dann die Software mit Unterstützung installieren. Es ist irgendwie vergleichbar mit einem “One Click Install”.. Anwendern soll somit unter die Arme gegriffen werden, die Installation so einfach und angenehm wie möglich zu machen.

Ich selbst bin seit Jahren gezwungen, CrossOver einzusetzen. Sei es für gewisse Taucher-Software oder auch andere Software, für die ich unter Linux keine Alternative habe. Ich muss für einige Firmen zwingend Word einsetzen. In meinem Fall reicht zwar 2003, aber die RTF-Ausgabe von Word unterscheidet sich von LibreOffice, SoftMaker und was weiß ich, was ich schon alles versuchte – es führt da im Moment (seit fast 7 Jahren) kein Weg daran vorbei. Das läuft aber doch sehr stabil und mir stürzt Word vielleicht 2 Mal pro Jahr ab.


Jürgen (jdo) für bitblokes.de, 2012. | Permalink | Twitter

    Normalerweise mache ich immer beim erscheinen der ersten Beta ein Upgrade auf die neue Ubuntu-Version, da sie zu diesem Zeitpunkt schon im Großen und Ganzen benutzbar ist. So auch dieses mal.
    Das Update geht relativ simpel, als erstes alle Fremdquellen deaktivieren, dann in ein Terminal sudo update-manager -d eingeben und den Anweisungen folgen. Es müssen ungefähr 1,5 GB an neuen Paketen heruntergeladen und installiert werden. Das kann, abhängig von der Internetverbindung und dem Computer ein bisschen dauern. Nach einen Neustart hat man dann das neue System.

    Was ist neu?

    Die erste Neuerung, die einem ins Gesicht springt, ist der der Displaymanager. An der Oberfläche von LightDM wurde ein bisschen gearbeitet. Ob das jetzt notwendig war, darüber lässt sich streiten, es hat ja auch in Oneiric alles funktioniert und schön sah es auch schon aus.
    Der Desktop sieht dann erstmal so aus, wie das alte Ubuntu.
    Die Neuerungen sind in den Details zu finden.

    Die neue Video-Lense

    Die neue Video-Lense

    Die Dash hat eine andere Startseite spendiert bekommen, die acht großen Symbole wurden durch eine Ansicht der zuletzt verwendeten Programme, Datein und heruntergeladenen Dateien ersetzt.
    Ist auf jeden Fall praktischer, da die vier Standardprogramme auch in der Seitenleiste vertreten sind. Allerdings fand ich die alte Dash optisch ansprechender ;) .
    Eine weitere Neuerung die ins Auge springt, ist die Video-Lense. hier kann man jetzt nicht nur Videos, die Lokal auf dem Computer vorhanden sind, suchen, sondern auch in den Verschieden Internetquellen suchen. Wenn man ein Internetvideo anklickt, wird es im Browser geöffnet. Leider fehlen die Mediatheken von ARD und ZDF.
    Neu ist auch das Head Up Display, kurz HUD. Wenn man in einem Programm die alt-Taste drückt, der kann eingeben, welchen Menüpunkt er klicken möchte und muss so nicht mehr die Maus benutzen.
    Eine sehr interessante Erweiterung wie ich finde. Weitere kleinere Änderungen sind im Einstellungsmenü passiert.

    HUD in Benutzung

    HUD in Benutzung

    Eine weitere Verbesserung ist die Erhöhung der Akkulaufzeit. Zumindest auf meinem Laptop (Intel i7) ist die maximale Akkulaufzeit um ungefähr eine Stunde gestiegen.

    Soweit die positiven Änderungen, es gibt aber auch negative Seiten.
    Zum einen wurde Banshee durch Rhythmbox ersetzt, was ich zwar verstehen kann, aber nicht gut finde. Was ich absolut nicht verstehen kann ist, warum der intelligente Autohide Modus der Sidebar abgeschafft wurde. In Ubuntu Oneiric konnte man die Sidebar einblenden lassen, wenn Platz ist (nicht maximierte Fenster, leerer Desktop), und wenn kein Platz war, wurde sie versteckt.
    Diese Option ist nun weg, man kann die Sidebar entweder auf immer da oder auf Autohide stellen, so dass sie auch dann nicht sichtbar ist, wenn man kein Fenster geöffnet hat.
    Die Gründe für die Entfernung dieser Möglichkeit sind mir völlig schleierhaft. Hoffentlich gibt es irgendwann eine Erweiterung/ein Programm was dies wieder möglich macht.

    Fazit

    Viele gute Neuerungen, ein paar Kleinigkeiten, die mir missfallen, aber ansonsten ein ganz gutes Release bisher.
    Gut find ich, dass Unity sich immer besser nur mit der Tastatur bedienen lässt, oder zumindest ist man mit Tastatur in vielen Sachen erheblich schneller.
    12.04 wird also auch nicht, das perfekte Release, aber man muss Canonical ja auch Gelegenheit zum verbessern geben ;)

    Die Firma Chicago.com Inc. eröffnet heute ihr soziales Netzwerk “Chicago Social Network“, welches auf Diaspora* basiert. Anmelden darf sich auf dem Pod der Firma  nur, wer eine kostenpflichtige Chicago.com E-Mailadresse besitzt. Die Diaspora* Hauptentwickler_innen  scheinen von dem Projekt selbst erst aus der Presse erfahren zu haben.

    Im Moment sind viele Fragen offen und auf Diaspora* wird zurzeit eifrig diskutiert. Handelt es sich um eine Fork (Abspaltung vom Diaspora* Projekt) oder wird der Diaspora* Hauptzweig genutzt werden. Wird die AGPL unter welcher Diaspora* lizensiert ist korrekt angewendet? Das scheint zumindest angesichts der Terms of Service fraglich. Allerdings bin ich kein Jurist…eventuell steuert Diaspora* gerade auf einen ersten Rechtsstreit zu.

    Ich bin gespannt auf die weitere Entwicklung, vielleicht bekommt das Diaspora* Projekt jetzt aus Chicago auch tatkräftige Unterstützung bei der weiteren Entwicklung? Das wäre zumindest wünschenswert.


    Ich bin aktuell an den Vorbereitungen für LPI 117-202, die abschliessende Prüfung von LPIC-2. Und dazu wird es auch mal wieder Zeit ein paar Befehle, Parameter und Notizen zu repetieren und zu vertiefen.

    Apache / SSL

    Ein grösseres Kapitel der Prüfung ist die Erstellung und Verwaltung von Webservern mit Apache. Nichts schwieriges, schliesslich gehörten VirtualHosts und DocumentRoot auch zu den vorigen Prüfungen. Doch bei SSL bin ich dann doch ein bisschen ins Stocken geraten, die ganzen Kommandos zum Erstellen eines passenden Zertifikates hatte ich nicht gleich auswendig im Kopf und musste diese kurz nachschauen. So wird ein neuer Schlüssel wie folgt generiert:

    openssl req -new > cert.csr

    Will man das Passwort nicht, so kann man dies auch entfernen:

    openssl rsa -in privkey.pem -out cert.key

    Will man das Zertifikat nun signieren, so folgt folgender Befehl:

    openssl req -new -x509 -key cert.key -out cert.cert

    Nun muss das ganze noch an die korrekte Stelle, wie in der Konfiguration von Apache angegeben:

    cp cert.cert /etc/httpd/ssl/ServerCert.pem
    cp cert.key /etc/httpd/ssl/ServerKey.pem

    Ist nun das Modul mod_ssl auch geladen, und SSL durch “SSLEngine on” aktiviert, so können auch geschützte Verbindungen aufgebaut werden.

    Samba 3

    Ein anderes grösseres Kapitel ist Samba in Version 3. Leider habe ich damit nie wirklich gearbeitet und deshalb ein klein wenig Nachholbedarf!
    Die Konfiguration von Samba (/etc/samba/smb.conf) ist Gegliedert durch einen Titel in eckigen Klammern, welcher jeweils für ein Verzeichnis steht. Darunter folgen dann Einstellungen zu jeweils diesem Verzeichnis oder Drucker. Einzige Ausnahme bildet der erste Title [global]. Dieser beinhaltet allgemeine Einstellungen zu Samba:

    [share01]
      comment = Freigabe von share01
      path = /shares/01
      read only = No
      public = No
      create mask = 0750
    

    Die jeweiligen Benutzer erhalten von Samba ein spezielles Passwort, welches zusätzlich gesetzt werden muss. Natürlich muss der Benutzer bereits als normaler Benutzer bestehen:

    smbpasswd -a USERNAME
    net password "USERNAME" "PASSWORD"
    

    Zusätzlich gibt es noch weitere Parameter:

    Deaktiviert ein Benutzer: -d
    Löscht ein Benutzer aus SMB: -x
    Reaktiviert ein Benutzer: -e
    

    Abgelegt werden die Benutzer ähnlich der passwd-Datei unter /etc/samba/smbpasswd.

    Will man den SMB-Server einer Domäne anhängen, so muss in der Konfiguration unter [global] der Wert “security = global” gesetzt sein. Danach hilft folgendes Kommando:

    net rpc join

    Will man über Samba Drucker freigeben, so hilft der Eintrag [printers]:

    [printers]
      comment = Alle Drucker aus /etc/printcap
      path = /tmp
      create mask = 0600
      printable = Yes
      browseable = No
    

    Nun gibt es noch eine Handvoll an hilfreichen Kommandos. Zum Beispiel zum anzeigen aller aktiven Verbindungen:

    smbstatus

    Oder auch die smb.conf kann geprüft werden mit:

    testparm -s

    Wer die eigentliche Funktionalität testen will, verwendet folgendes:

    smbclient -L sambaserver -U USERNAME%PASSWORD

    NFS

    Und um auch alles Abzudecken kommt neben Samba auch noch NFS.
    Damit hatte ich schon ziemlich oft zu tun, deshalb habe ich damit keine grösseren Schwierigkeiten. Die Freigaben werden in der /etc/exports definiert und können mit weiteren Optionen versetzt werden. Eine Freigabe wie /share/01 kann auf eine IP-Adresse, eine Netzmaske oder eine Domäne samt Wildcard limitiert werden. Die Optionen, welche für die betreffenden Limitierungen gelten (es können mehrere Limitierungen angegeben werden), werden in Klammern gleich dahinter geschrieben:

    /PFAD/ZUR/FREIGABE *(OPTION1,OPTION2) *.encodingit.ch(OPTION1,OPTION3) 192.168.3.1/24(OPTION2,OPTION4)

    Als Optionen kann man dabei wählen zwischen:

    ro = Read Only
    rw = Read Write
    sync = Antwortet erst wenn alle Änderungen am FS abgeschlossen sind (Standard)
    async = Antwort auch bevor alle Änderungen am FS abgeschlossen sind
    no_wdelay = kein Gruppieren von Schreib-Anfragen
    no_root_squash = Verhindert, dass ein lokaler root auch auf dem Share root ist (Standard)
    anonuid=123 = Alle Zugriffe erfolgen unter der UID 123
    anongid=123 = Alle Zugriffe erfolgen unter der GID 123
    nohide = eingehängte Unterverzeichnisse werden auch freigegeben
    no_subtree_check = Verhindert das Lesen in Verzeichnissen, die nur Root zugänglich wären

    Will man die Freigaben nun dem Kernel übergeben, so verwendet man exportfs:

    exportfs -r

    Wer mehr Informationen zum NFS Server selbst will, muss auf nfsstat zurückgreifen. Und zum erkennen, welche Freigabe von welcher Maschine genutzt wird, gibt es showmount:

    showmount -a NFS-SERVER

    Oder aber zum Anzeigen aller zur Verfügung stehender Freigaben:

    showmount -e NFS-SERVER

    iptables

    Zu meinem bedauern kommen auch iptables in dieser Prüfung vor. Ein Thema mit dem ich mich nie anfreunden konnte. Nun muss es halt sein…
    Grundlegend funktionieren die iptables wie eine Firewall. Das heisst, die Filter werden hierarchisch abgearbeitet. Deshalb hier der Befehl, mit welchem man alle Befehle löschen kann:

    iptables -t filter -F

    Will man sich vorher noch die alten Filter anzeigen so verwendet man folgendes:

    iptables -L
    iptables-save

    Ein Interface wie z.B. das Loopback kann auch ganz ausgenommen werden:

    iptables -t filter -A INPUT -i lo -j ACCEPT

    Und nun kann man einzelne Pakete, Ports und Protokolle erlauben:

    # ICMP erlauben
    iptables -t filter -A INPUT -i eth0 -p icmp -j ACCEPT
    
    # HTTP, HTTPS und SSH Anfragen erlauben
    iptables -t filter -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
    iptables -t filter -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
    iptables -t filter -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

    Auch Port-Forwarding ist möglich mit iptables. So werden alle Anfragen für 173.194.35.24 auf Port 8080 an die lokale IP 192.168.3.2 auf Port 80 weitergeleitet:

    iptables -t nat -A PREROUTING -p tcp -d 173.194.35.24 --dport 8080 -j DNAT --to-destination 192.168.3.2:80

    So und das war es dann auch, jetzt fehlt nur noch die Prüfung!

    Update vom 07.03.2012 09:00

    Soeben wurde ich von Linuxnetzer auf sein sehr beachtliche Sammlung an LPIC-202 Artikeln aufmerksam gemacht und möchte diese natürlich niemandem vorenthalten.

    6. März 2012

    Es gibt sicherlich viele die verzweifelt versuchen, das Evolution auf den LDAP Server schreibne kann. Das wichtige ist, dass das Schema von Anfang an eingebunden wird und jeder Kontakt beim Erstellen dieobjectClass: evolutionPersonbekommt. Wichtig ist nochgivenNamehinzuzufügen und die Standardsachen. Wenn man das dann importiert, kann auch Evolution auf LDAP Server schreiben.

    Hier der Link zu einer Beispiel-LDIF Datei: http://pastie.org/3536007

    Mit dem Problem hatte ich die ganze Zeit zu kämpfen. Es ist nur vorteilhaft, alle seine Kontakte im LDIF Format vorliegen zu haben. Man sollte das doch im LDIF Format exportieren können, nicht wahr?
    Mehr zu dem Thema in einem späteren Blogpost.