Feeds:
Beiträge
Kommentare

LED-Dings

https://www.instagram.com/p/BLnxfh2B2Zh/

Doch noch eine Lösung gefunden

Dieses Problem „Auf der Suche nach den Verzeichnissen“ hatte ich fast vergessen, bis ich mich heute noch einmal auf die Suche nach einer Lösung gemacht habe. Der hier erreichbare Vorschlag brachte dann den Durchbruch.
Ich habe lediglich einen Test hinzugefügt, der das Löschen von Verzeichnissen verhindert, die selbst noch ein Verzeichnis beinhalten.

#! /bin/bash

shopt -s nullglob
shopt -s nocaseglob
find -depth -type d | { while read -r D;
do
case "$D" in
"$DR" ) continue;;
esac
v=$(echo "$D"/*.mp3)
case "$v" in
"" )
d=$(find "$D" -type d | wc -l)
if [ "$d" == "1" ]
then
echo "$D no mp3, to be deleted"
# rm -fr "$D" #uncomment to use
echo "$d"
fi;;
*)
DR=${D%/*}
;;
esac
done }

Add to local repository

Auf der Suche nach einer Möglichkeit, alle JARs eines Verzeichnisses in das lokale Maven Repository zu schieben, bin ich auf dieses Script gestoßen:
A script to add 3rd party artifacts to your maven repository.
Diese Version habe ich leicht abgeändert, quick and dirty:


#!/bin/bash
# Add 3rd party jars to maven in a batch
# Usage: add2maven groupid directory
#
# Edit the mvn command as per your repo setup

if [ $# -lt 2 ]; then
echo Usage: $0 groupid directory
exit 1
fi

GROUPID=$1
shift

find $1 -name "*.jar" | while read f;
do
if [ ! -d $f ]; then
FILENAME=`echo $f | sed -e 's/\.jar//' | sed -e 's/.*\///'`
ARTIFACTID=`echo $FILENAME | sed -re 's/[_|-]([0-9]\.).*//g'`
VERSION=`echo $FILENAME | sed -re 's/.*[a-z][-|_]//'`
if [ "$VERSION" == "$FILENAME" ]; then
VERSION="unknown"
fi
mvn install:install-file -DgroupId=$GROUPID -DartifactId=$ARTIFACTID -Dversion=$VERSION -Dpackaging=jar -Dfile=$f
fi
done

Für Revolutionen bin ich zu haben. Um so mehr interessierte mich der Artikel „Die Git-Revolution“ in der Ausgabe 01/2011 des Javamagazin.
Zum Artikel selbst gibt es nicht viel hinzuzufügen. Er führt schnell und verständlich in das Thema ein. Was mich allerdings stört, sind die kleinen Fehler. So fiel mir auf, dass mehrmals das Kommando $ git add . ohne den abschließenden Punkt verwendet wird. Git reagiert an dieser Stelle vorbildlich und weist den Anwender mit einem Lösungsvorschlag darauf hin.
Ein weitere Unstimmigkeit gibt es auf Seite 61 in der rechten Spalte ganz oben. Dort heißt es, dass das Kommando $ git pull verwendet werden soll. Ohne zusätzliche Konfiguration kann das so aber nicht funktionieren. Ohne einen Eintrag in der Konfigurationsdatei müsste der korrekte Aufruf z.B. so lauten: $ git pull origin development

Flickr

This is a test post from flickr, a fancy photo sharing thing.

Ich hatte das zweifelhafte Vergnügen, dass nicht der gesamte Inhalt der DVD nach dem Einhängen im System angezeigt wurde und der Aufruf von Installer.exe mit einem Fehler endete („Module not found“ bzw. „The folder ‚<temporary data>‘ could not be created“). Wenn die DVDs mit folgendem Befehl angemeldet werden, lässt sich das Problem umgehen:

# /dev/sr0 und /media/cdrom0/ sind natürlich den eigenen Gegebenheiten anzupassen
sudo mount -o ro,unhide,uid=1000,gid=1000 /dev/sr0 /media/cdrom0/

Die erste DVD habe ich in ein Verzeichnisse auf meiner Festplatte installiert. Von der zweiten DVD werden nur die Dateien Installer Tome 4.mpq und Movies.mpq benötigt und ebenfalls in dieses Verzeichnis kopiert.
Beim Aufruf von Installer.exe stand ich jetzt vor dem Problem, dass ich nur die Möglichkeit hatte das Spiel zu starten. Eine Installation war nicht möglich. Um dieses Problem zu umgehen habe ich vor dem Aufrufen von Installer.exe mein WoW-Verzeichnis umbenannt. Nach dem Starten von Installer.exe konnte ich dann die Installation starten. Vor der Bestätigung der Auswahl des Zielverzeichnisses habe ich die Umbenennung des WoW-Verzeichnisses rückgängig gemacht.

In den Verzeichnissen meiner Musiksammlung haben sich im Laufe der Zeit jede Menge Dateien angsammelt, die selbst keine MP3s sind. Nach dem Verschieben oder löschen der MP3s kann es also vorkommen, dass es Verzeichnisse gibt, die zwar noch Dateien beinhalten, aber keine MP3s mehr. Diese Verzeichnisse will ich loswerden.
Folgender Befehl listet schon mal alle Verzeichnisse, in denen außer PNGs nichts enthalten ist:

find . -name '*png' -printf '%h' | xargs -0 ls -l --hide=*.png | grep -ZB1 ' 0$'

Was noch fehlt ist das Löschen der gelisteten Verzeichnisse und der Umgang mit mehreren Dateitypen gleichzeitig, z.B. PNG, JPG, PDF, …

sudo -u gdm gconftool-2 --set --type bool /desktop/gnome/sound/event_sounds false

Vorgestern habe ich hier über den gmusicbrowser berichtet. Für dieses Programm habe ich mir zwei kleine Ergänzugen gebaut. Im einzelnen ein Layout und eine Möglichkeit sich mittels notify-send über einen Liedwechsel informieren zu lassen.

Das Layout

Das von mir verwendete Layout basiert auf diesem Layout (eine Übersicht weiterer Layouts lassen sich hier finden). Gestört hat mich an dem Originallayout, dass der Slider zur Positionierung in einem laufenden Titel nicht funktionierte. Den Fehler konnte ich beheben. Was ich noch nicht geschafft habe ist, den Fehler zu finden und zu beseitigen, der die Informationen zur aktuellen Liedliste anzeigt. Also die Anzahl der Titel, Gesamtlänge und Gesamtgröße.

Mein Layout sieht im Quellcode folgendermaßen aus:

[itunes-like-plus-plus]

####General
Type        = G
Default        = Window size=1120x820 VPfp_list 120 HPfp0 300 
VPfp_list 200_550

###main layout with notebook tabs
VBmain        = HBupper _15TBupper

## 
HBupper        = _VBupper -HBRight
## Notebook with 3 tabs
TBupper        = _"Queue" VBQueueList _"Library" HPfp_list_src
 _"Context" Context 

VBupper        = _7HBIndic _HBHeader
HBRight        = -ArtistPic(hover_layout=ArtistPopup,
hover_delay=100,tooltip=%a) -10Cover(hover_layout=CoverPopup,
hover_delay=100,tooltip=%l)

HBIndic        = MBmenu 20Sort Filter Queue 10Pos
HBHeader    = HBButtons _ABInfo

HBButtons    = Prev(size=dnd) Play(size=dialog) Next(size=dnd)
 Stop(size=small-toolbar) Vol(size=small-toolbar,button=1) 10Filler0

ABInfo        = FRInfo(shadow=etched-out)
FRInfo        = VBInfo
VBInfo        = _HBSongInfo _7HBScale
HBSongInfo    = _VBSongInfo -Filler1
VBSongInfo    = _2HBTitle _2HBAlbum
HBTitle        = LockArtist _Title_by -Stars
HBAlbum        = LockAlbum _Album -Date
HBScale        = _Scale LabelTime -Length
MBmenu        = MainMenuItem PSortItem PFilterItem QueueItem

VBQueueList    = 3_QueueList(activate=playlist) HBQueueAct
HBQueueAct    = EditListButtons 10QueueActions

HPfp_list_src    = FPane3(nb=1,hide=1,pages=savedtree) _VPfp_list
VPfp_list    = HPfp0 _VBlist

VBlist        = HBstatus _SongTree
HBstatus    = SimpleSearch MBlist Refresh ResetFilter PlayFilter
 QueueFilter -Total
MBlist        = HistItem LSortItem PlayItem
HPfp0        = FPane0(nb=2,hide=1,pages=genre) HPfp1
HPfp1        = FPane1(nb=3,hide=1,pages=artist)
 FPane2(nb=4,hide=1,pages=album)
VSize1        = 47 HBHeader
HSize1        = HBButtons HBRight
HSize2        = LockArtist LockAlbum Filler1
VolumeScroll= HBupper

[CoverPopup]
VBmain        = Cover(minsize=300,maxsize=300,click1=CloseWindow)

[ArtistPopup]
VBmain        = ArtistPic(minsize=300,maxsize=300,click1=CloseWindow)

Um das Layout zu verwenden, müssen die Angaben in eine Datei (z.B. itunesplusplus.layout) abgelegt werden. Die Datei muss sich im Verzeichnis ~/.config/gmusicbrowser/layouts/ befinden. Nach dem Neustart des gmusicbrowser kann das Layout ausgewählt werden.

 

Die Benachrichtigung

Um die Benachrichtigungsfunktion verwenden zu können ist zuerst die Erweiterung Jetzt läuft zu aktivieren. Danach kann man einen Befehl eintragen, der bei einem Liedwechsel ausgeführt wird. Ich habe mir ein Miniscript geschrieben, welches an dieser Stelle aufgerufen wird. Der Aufruf des Scripts sieht bei mir also so aus (der Pfad ist natürlich anzupassen):

/home/andreas/.local/share/bin/notify %c %t %a %l

Das Script selbst sieht folgendermaßen aus und ist wirklich sehr primitiv gehalten:

#!/bin/bash
/usr/bin/notify-send -u critical -i "$1" "$2" "von $3 ($4)"

Als Ergebnis erscheint eine Benachrichtigung, die neben dem Titel, dem Künstler und dem Album auch ein Albumcover enthält.