German text below. / Deutscher Text weiter unten.
This new part of my mini series about Taskwarrior is about recurring tasks and priorities.
- Installation and basic operation
- Dates, dateformat, due dates and wait dates
Task supports currently up to three (four) priorities High, Medium and Low (and none), you can set them by adding a "pri:h" or "pri:m" or "pri:l" or "pri:" to your task.
This affects the display of your task list, higher priority tasks are appearing first if due dates are the same. As ever, you can change this behaviour by editing your config file. If you complete a task and you have higher priotity ones, you see a nag message, which can be configured in the config file as well.
Please check all lines containing "pri" in upper or lower case in your .taskrc.
Recurring tasks are a good possibility to organise repeating duties.
Example:
task add pri:h due:eom recur:monthly pay rent
This adds a high priority "pay rent" task which will be repeated every end-of-month. In fact it adds two (!) tasks, one is invisible and contains the "meta-data" of the task you are creating. And another one which is the due task to be done. If you try to remove the current due task you will be asked if you want to delete the due task and later on, if you want to delete the "master task" as well (this only happens, if you finished the recurring task at last one time).
task recurring
Shows all recurring tasks in one view.
The general command is
task add recur:frequency until:enddate
From the man-page:
due:due-date
Specifies the due-date of a task.
recur:frequency
Specifies the frequency of a recurrence of a task.
until:end-date-of-recurrence
Specifies the Recurrence end-date of a task.
Frequencies:
daily, day, 1d, 2d, ...
Every day or a number of days.
weekdays
Mondays, Tuesdays, Wednesdays, Thursdays, Fridays and skipping weekend days.
weekly, 1w, 2w, ...
Every week or a number of weeks.
biweekly, fortnight
Every two weeks.
quarterly, 1q, 2q, ...
Every three months, a quarter, or a number of quarters.
semiannual
Every six months.
annual, yearly, 1y, 2y, ...
Every year or a number of years.
biannual, biyearly, 2y
Every two years.
To be continued ...
Deutscher Text. / German text.
Dieser neue Teil meiner Miniserie über Taskwarrior handelt von sich wiederholenden Aufgaben und Prioritäten.
- Installation und einfache Aufgaben
- Datum, Datumsformat, Zieltermine und Wartedatum
Task unterstützt bis zu drei (vier) Prioritäten Hoch, Mittel, Niedrig (und keine), Ihr könnt durch Hinzufügen von "pri:h" oder "pri:m" oder "pri:l" oder "pri:" zur Aufgabe setzen.
Das beeinflusst die Darstellung der Aufgabenliste, höher priorisierte Aufgaben erscheinen zuerst, wenn die Fälligkeitsdaten die gleichen sind. Wie immer, so kann auch dass durch Veränderung der Konfigurationsdatei geändert werden. Wenn eine Aufgabe erledigt wird und höher priorisierte Aufgaben vorhanden sind, gibt es eine nervende Nachricht ("nag message"), die auch konfiguriert werden kann.
Bitte prüft einmal alle Zeilen in der .taskrc, die "pri" in Gross- oder Kleinschreibung enthalten.
Sich wiederholende Aufgaben sind eine gute Möglichkeit, wiederkehrende Tätigkeiten zu organisieren.
Beispiel:
task add pri:h due:eom recur:monthly Miete zahlen
Das fügt eine neue "Miete zahlen"-Aufgabe mit hoher Priorität hinzu, die an jedem Monatsende (eom = end-of-month) wiederholt wird. Tatsächlich werden aber zwei (!) Aufgaben hinzugefügt. Eine ist unsichtbar und enthält die Rahmendaten der erzeugten Aufgabe. Eine weitere Aufgabe ist die terminierte Aufgabe, die zu erledigen ist. Wenn Du die Aufgabe löschen willst, wirst Du gefragt, ob Du die Aufgabe mit den Rahmendaten auch löschen möchtest (das passiert aber erst, wenn wenigstens eine Wiederholung erledigt worden ist).
task recurring
zeigt alle sich wiederholenden Aufgaben.
Das generelle Kommando ist
task add recur:frequency until:enddate
Aus der man-page (Handbuch-Seite):
due:due-date
Spezifiziert das Fälligkeitsdatum der Aufgabe.
recur:frequency
Spezifiziert die Wiederholungs-Frequenz der Aufgabe.
until:end-date-of-recurrence
Spezifiziert das Enddatum der Wiederholungen.
Frequenzen:
daily, day, 1d, 2d, ...
Jeden Tag oder alle Anzahl von Tagen.
weekdays
Montags, Dienstags, Mittwochs, Donnerstags, Freitags, Wochenende wird übersprungen.
weekly, 1w, 2w, ...
Wöchentlich oder alle Anzahl von Wochen.
biweekly, fortnight
Alle zwei Wochen.
quarterly, 1q, 2q, ...
Alle drei Monate oder alle Anzahl von Quartalen.
semiannual
Alle sechs Monate.
annual, yearly, 1y, 2y, ...
Jährlich oder alle Anzahl von Jahren.
biannual, biyearly, 2y
Alle zwei Jahre.
Fortsetzung folgt ...
Artikel mit Tag plattformübergreifend
Verwandte Tags
computer (hör-)bücher barcamp firefox fremdhosting fundstücke gedanken hiveminder kvm linux mysql opensourcesoftware openstandards perl pla planet-community planet-ubuntu planet-ubuntuusers podcast root-server selfmanagement sqlite ssh sysadmin taskwarrior technik thinkpad ubuntu unix virtualisierung wattenichsachs zitat internet plugin allgemein bao&tyson blog facebook mobilfunk piratenpartei schweiz sozialenetzwerke twitter zensur blogosphäre closedsourcesoftware flattr google googlewave identica iran linkedin mp3 musik ogg serendipity xing java jdbc canoneos550d cowond2plusdab deimhart gegendenstrom ipad palmpre radiotux unterwegs cacert debian dropbox gps openmoko shell sonyericssonp910i ubcde09 ubcde10 ubucon ubuntudeev ubuntuusers.deMontag, 6. September 2010
Taskwarrior (3) ...
Geschrieben von Dirk Deimeke
um
18:49
| Kommentare (0)
| Trackbacks (2)

Tags für diesen Artikel: computer, planet-community, planet-ubuntu, plattformübergreifend, selfmanagement, taskwarrior

Mittwoch, 28. Juli 2010
Taskwarrior (2) ...
German text below. / Deutscher Text weiter unten.
The next part of my mini series about Taskwarrior is about dates, dateformat, due dates and wait dates.
Previous part
The standard date format is m/d/Y. That means the following:
m minimal-digit month, for example 1 or 12
d minimal-digit day, for example 1 or 30
y two-digit year, for example 09
D two-digit day, for example 01 or 30
M two-digit month, for example 01 or 12
Y four-digit year, for example 2009
a short name of weekday, for example Mon or Wed
A long name of weekday, for example Monday or Wednesday
b short name of month, for example Jan or Aug
B long name of month, for example January or August
V weeknumber, for example 03 or 37
H two-digit hour, for example 03 or 11
N two-digit minutes, for example 05 or 42
S two-digit seconds, for example 07 or 47
And, you guess it, it is configurable. Since I am not familiar with the American way of printing dates, I modified the dateformat for everything to YMD. This can be done in ~/.taskrc
With this in mind, you can set dates to your tasks. "due" manages the due date of your task, "wait" edits a task to not show up in lists before that specific day.
Did you notice that the color changed?
I want to do that task tomorrow and I do not want to be bothered with seeing it before tomorrow.
Apart from using abolut dates, you can use relative ones as well.
task ... due:today
task ... due:yesterday
task ... due:tomorrow
task ... due:23rd # next occuring 23rd
task ... due:eow # end of week
task ... due:eom # end of month
task ... due:eoy # end of year
task ... due:fri # next occuring Friday
task ... due:wed # next occuring Wednesday (not today!)
The next version of taskwarrior will have the "start of" commands as well.
With this very basic knowledge you can already do a lot of work, I will talk/write about recurring tasks later on.
To be continued ...
Deutscher Text. / German text.
In diesem zweiten Teil über Taskwarrior geht es um Daten (Termine), Datumsformate, Zieltermine und Wartetermin.
Letzte Episode
Das Standard-Datumsformat ist m/d/Y, was das folgende bedeutet:
m minimale Ziffern für den Monat, beispielsweise 1 oder 12
d minimale Ziffern für den Tag, beispielsweise 1 or 30
y zwei Ziffern für das Jahr, beispielsweise 09
D zwei Ziffern für den Tag, beispielsweise 01 oder 30
M zwei Ziffern für den Monat, beispielsweise 01 oder 12
Y four-digit year, beispielsweise 2009
a Kurzname des Wochentags in englischer Sprache, beispielsweise Mon oder Wed
A Langname des Wochentags in englischer Sprache, beispielsweise Monday oder Wednesday
b Kurzname des Monats (Englisch), beispielsweise Jan oder Aug
B Langname des Monats (Englisch), beispielsweise January oder August
V Wochennummer, beispielsweise 03 oder 37
H die Stunde mit zwei Ziffern, beispielsweise 03 oder 11
N die Minute mit zwei Ziffern, beispielsweise 05 oder 42
S die Sekunde mit zwei Ziffern, beispielsweise 07 oder 47
Und, wie Ihr wahrscheinlich vermutet, ist das konfigurierbar. Da ich mit dem amerikanischen Datumsformat nichts anfangen kann, habe ich es auf YMD gesetzt (D.M.Y) wäre auch möglich. Das kann in der Datei ~/.taskrc eingestellt werden.
Mit dem im Hinterkopf könnt Ihr Daten an Eure Aufgaben hängen. "due" für Zieltermine, "wait" für Wartezeiten bis zu dem die Aufgabe in den Übersichten ausgeblendet wird.
Habt Ihr gesehen, dass sich die Farbe geändert hat?
Ich möchte die Aufgabe morgen erledigen und heute nicht mehr in meiner Liste haben.
Losgelöst von absoluten Datumsangaben können auch relative verwendet werden (immer in englischer Sprache)
task ... due:today # Heute
task ... due:yesterday # Gestern
task ... due:tomorrow # Morgen
task ... due:23rd # der nächste 23te
task ... due:eow # Ende der Woche
task ... due:eom # Ende des Monats
task ... due:eoy # Ende des Jahres
task ... due:fri # der nächste Freitag
task ... due:wed # der nächste Mittwoch (nicht heute!)
In der nächsten Version von Taskwarrior wird es auch die "start of" Daten geben (sow, som, soy).
Mit dem bis jetzt erreichten Basiswissen, kann bereits eine grosse Menge an Arbeit erledigt werden. Über wiederkehrende Aufgaben schreibe ich später.
Fortsetzung folgt ...
The next part of my mini series about Taskwarrior is about dates, dateformat, due dates and wait dates.
Previous part
The standard date format is m/d/Y. That means the following:
m minimal-digit month, for example 1 or 12
d minimal-digit day, for example 1 or 30
y two-digit year, for example 09
D two-digit day, for example 01 or 30
M two-digit month, for example 01 or 12
Y four-digit year, for example 2009
a short name of weekday, for example Mon or Wed
A long name of weekday, for example Monday or Wednesday
b short name of month, for example Jan or Aug
B long name of month, for example January or August
V weeknumber, for example 03 or 37
H two-digit hour, for example 03 or 11
N two-digit minutes, for example 05 or 42
S two-digit seconds, for example 07 or 47
And, you guess it, it is configurable. Since I am not familiar with the American way of printing dates, I modified the dateformat for everything to YMD. This can be done in ~/.taskrc
$ grep ^dateformat ~/.taskrc
dateformat=YMD # Preferred input and display date format
dateformat.holiday=YMD # Preferred input date format for holidays
dateformat.report=YMD # Preferred display date format for reports
dateformat.annotation=YMD-HN # Preferred display date format for annotations
With this in mind, you can set dates to your tasks. "due" manages the due date of your task, "wait" edits a task to not show up in lists before that specific day.
task shell # makes it a lot easier since you do not need to type the word "task" before any command
task> add Pay rent
Created task 1
task> list
ID Project Pri Due Active Age Description
1 8 secs Pay rent
1 task
task> 1 due:20100731
Modified 1 task
task> list
ID Project Pri Due Active Age Description
1 20100731 1 min Pay rent
1 task
task> quit
Did you notice that the color changed?
I want to do that task tomorrow and I do not want to be bothered with seeing it before tomorrow.
task> 1 wait:20100729
Modified 1 task
task> list
No matches.
Apart from using abolut dates, you can use relative ones as well.
task ... due:today
task ... due:yesterday
task ... due:tomorrow
task ... due:23rd # next occuring 23rd
task ... due:eow # end of week
task ... due:eom # end of month
task ... due:eoy # end of year
task ... due:fri # next occuring Friday
task ... due:wed # next occuring Wednesday (not today!)
The next version of taskwarrior will have the "start of" commands as well.
With this very basic knowledge you can already do a lot of work, I will talk/write about recurring tasks later on.
task add due:20100731 wait:20100724 Pay rent
task add due:20100831 wait:20100824 Pay rent
task add due:20101225 wait:eom Buy christmas presents
To be continued ...
Deutscher Text. / German text.
In diesem zweiten Teil über Taskwarrior geht es um Daten (Termine), Datumsformate, Zieltermine und Wartetermin.
Letzte Episode
Das Standard-Datumsformat ist m/d/Y, was das folgende bedeutet:
m minimale Ziffern für den Monat, beispielsweise 1 oder 12
d minimale Ziffern für den Tag, beispielsweise 1 or 30
y zwei Ziffern für das Jahr, beispielsweise 09
D zwei Ziffern für den Tag, beispielsweise 01 oder 30
M zwei Ziffern für den Monat, beispielsweise 01 oder 12
Y four-digit year, beispielsweise 2009
a Kurzname des Wochentags in englischer Sprache, beispielsweise Mon oder Wed
A Langname des Wochentags in englischer Sprache, beispielsweise Monday oder Wednesday
b Kurzname des Monats (Englisch), beispielsweise Jan oder Aug
B Langname des Monats (Englisch), beispielsweise January oder August
V Wochennummer, beispielsweise 03 oder 37
H die Stunde mit zwei Ziffern, beispielsweise 03 oder 11
N die Minute mit zwei Ziffern, beispielsweise 05 oder 42
S die Sekunde mit zwei Ziffern, beispielsweise 07 oder 47
Und, wie Ihr wahrscheinlich vermutet, ist das konfigurierbar. Da ich mit dem amerikanischen Datumsformat nichts anfangen kann, habe ich es auf YMD gesetzt (D.M.Y) wäre auch möglich. Das kann in der Datei ~/.taskrc eingestellt werden.
$ grep ^dateformat ~/.taskrc
dateformat=YMD # präferiertes Ein- und Ausgabedatumsformat
dateformat.holiday=YMD # Bevorzugtes Eingabedatumsformat für Urlaub und Feiertage
dateformat.report=YMD # Bevorzugtes Ausgabedatumsformat für Reports
dateformat.annotation=YMD-HN # Bevorzugtes Ausgabedatumsformat für Anmerkungen
Mit dem im Hinterkopf könnt Ihr Daten an Eure Aufgaben hängen. "due" für Zieltermine, "wait" für Wartezeiten bis zu dem die Aufgabe in den Übersichten ausgeblendet wird.
task shell # das macht es ein bisschen einfacher, da braucht man nicht mehr "task" vor jedem Kommando zu tippen
task> add Miete zahlen
Created task 1
task> list
ID Project Pri Due Active Age Description
1 8 secs Miete zahlen
1 task
task> 1 due:20100731
Modified 1 task
task> list
ID Project Pri Due Active Age Description
1 20100731 1 min Miete zahlen
1 task
task> quit
Habt Ihr gesehen, dass sich die Farbe geändert hat?
Ich möchte die Aufgabe morgen erledigen und heute nicht mehr in meiner Liste haben.
task> 1 wait:20100729
Modified 1 task
task> list
No matches.
Losgelöst von absoluten Datumsangaben können auch relative verwendet werden (immer in englischer Sprache)
task ... due:today # Heute
task ... due:yesterday # Gestern
task ... due:tomorrow # Morgen
task ... due:23rd # der nächste 23te
task ... due:eow # Ende der Woche
task ... due:eom # Ende des Monats
task ... due:eoy # Ende des Jahres
task ... due:fri # der nächste Freitag
task ... due:wed # der nächste Mittwoch (nicht heute!)
In der nächsten Version von Taskwarrior wird es auch die "start of" Daten geben (sow, som, soy).
Mit dem bis jetzt erreichten Basiswissen, kann bereits eine grosse Menge an Arbeit erledigt werden. Über wiederkehrende Aufgaben schreibe ich später.
task add due:20100731 wait:20100724 Miete zahlen
task add due:20100831 wait:20100824 Miete zahlen
task add due:20101225 wait:eom Weihnachtsgeschenke kaufen
Fortsetzung folgt ...
Geschrieben von Dirk Deimeke
um
18:05
| Kommentare (4)
| Trackbacks (2)

Tags für diesen Artikel: computer, planet-ubuntu, planet-ubuntuusers, plattformübergreifend, selfmanagement, taskwarrior

Donnerstag, 22. Juli 2010
Taskwarriror, tasks on the commandline (1) ...
German text below. / Deutscher Text weiter unten.
With this series of articles I want to introduce Taskwarrior, a command line tool for task management.
The reasons for my decision to use Takswarrior are quite simple:
• It is easy to learn.
• It is unbelievable powerful.
• It is platform independent (I use it on Windows and Ubuntu, via ssh even from my smartphone)
• It has an active development.
• I can influence the project by making suggestions.
• An Ubuntu personal package archive (PPA) exists.
• I know Federico, who showed some of the possibilities at German Ubucon 2009.
Installation:
On Ubuntu 9.04 or newer:
On older versions:
On Windows (using Cygwin):
Install gcc, make, ncurses, libncurses, libncurses-devel with the graphical setup tool. Update: Meanwhile you can find the recent version in the graphical setup tool.
Further possibilities are explained on the download page.
Do a quick check:
Comments are very welcome, consider contributing to Taskwarrior as well.
... to be continued.
German text. / Deutscher Text.
Mit dieser kleinen Artikelreihe möchte ich gerne Taskwarrior, ein Kommandozeilenwerkzeug zur Aufgabenverwaltung vorstellen.
Die Gründe für meine Entscheidung, Taskwarrior zu nutzen, sind relativ einfach:
• Es ist leicht zu erlernen.
• Es ist unglaublich mächtig.
• Es ist plattformübergreifend (Ich nutze es unter Windows und Ubuntu, via ssh sogar von meinem Smartphone)
• Es wird aktiv weiterentwickelt.
• Ich kann das Projekt durch eigene Vorschläge beeinflussen.
• Es gibt ein Ubuntu personal package archive (PPA).
• Ich kenne Federico, der ein paar Möglichkeiten auf der deutschen Ubucon 2009 vorgestellt hat.
Installation:
Unter Ubuntu 9.04 oder neuer:
Unter älteren Versionen:
Unter Windows (mit Cygwin):
Installiert gcc, make, ncurses, libncurses, libncurses-devel mit dem grafischen Setup Tool. Update: Mittlerweile ist die aktuelle Version auch mit dem grafischen Setup Tool installierbar.
Weitere Möglichkeiten sind auf der Download-Seite beschrieben.
Eine kleine Überprüfung:
Kommentare sind willkommen, überlegt Euch ob Ihr das Projekt unterstützen wollt.
Fortsetzung folgt ...
With this series of articles I want to introduce Taskwarrior, a command line tool for task management.
The reasons for my decision to use Takswarrior are quite simple:
• It is easy to learn.
• It is unbelievable powerful.
• It is platform independent (I use it on Windows and Ubuntu, via ssh even from my smartphone)
• It has an active development.
• I can influence the project by making suggestions.
• An Ubuntu personal package archive (PPA) exists.
• I know Federico, who showed some of the possibilities at German Ubucon 2009.
Installation:
On Ubuntu 9.04 or newer:
sudo add-apt-repository ppa:ultrafredde/ppa
sudo apt-get update
sudo apt-get install task
sudo apt-get update
sudo apt-get install task
On older versions:
sudo apt-get install build-essential
wget http://www.taskwarrior.org/download/task-1.9.2.tar.gz
tar xzf task-1.9.2.tar.gz
cd task-1.9.2
./configure
make
sudo make install
wget http://www.taskwarrior.org/download/task-1.9.2.tar.gz
tar xzf task-1.9.2.tar.gz
cd task-1.9.2
./configure
make
sudo make install
On Windows (using Cygwin):
Install gcc, make, ncurses, libncurses, libncurses-devel with the graphical setup tool. Update: Meanwhile you can find the recent version in the graphical setup tool.
wget http://www.taskwarrior.org/download/task-1.9.2.tar.gz
tar xzf task-1.9.2.tar.gz
cd task-1.9.2
./configure --with-ncurses-inc=/usr/include/ncurses
make
make install
tar xzf task-1.9.2.tar.gz
cd task-1.9.2
./configure --with-ncurses-inc=/usr/include/ncurses
make
make install
Further possibilities are explained on the download page.
Do a quick check:
task version
task add Pay rent # first task we create
task add Check Taskwarrior #second task we create
task list # shows all pending tasks
task 2 start # marks a task as active
task list
task 2 stop # marks a task as inactive
task 2 done # marks a task as done
task list
task add Pay rent # first task we create
task add Check Taskwarrior #second task we create
task list # shows all pending tasks
task 2 start # marks a task as active
task list
task 2 stop # marks a task as inactive
task 2 done # marks a task as done
task list
Comments are very welcome, consider contributing to Taskwarrior as well.
... to be continued.
German text. / Deutscher Text.
Mit dieser kleinen Artikelreihe möchte ich gerne Taskwarrior, ein Kommandozeilenwerkzeug zur Aufgabenverwaltung vorstellen.
Die Gründe für meine Entscheidung, Taskwarrior zu nutzen, sind relativ einfach:
• Es ist leicht zu erlernen.
• Es ist unglaublich mächtig.
• Es ist plattformübergreifend (Ich nutze es unter Windows und Ubuntu, via ssh sogar von meinem Smartphone)
• Es wird aktiv weiterentwickelt.
• Ich kann das Projekt durch eigene Vorschläge beeinflussen.
• Es gibt ein Ubuntu personal package archive (PPA).
• Ich kenne Federico, der ein paar Möglichkeiten auf der deutschen Ubucon 2009 vorgestellt hat.
Installation:
Unter Ubuntu 9.04 oder neuer:
sudo add-apt-repository ppa:ultrafredde/ppa
sudo apt-get update
sudo apt-get install task
sudo apt-get update
sudo apt-get install task
Unter älteren Versionen:
sudo apt-get install build-essential
wget http://www.taskwarrior.org/download/task-1.9.2.tar.gz
tar xzf task-1.9.2.tar.gz
cd task-1.9.2
./configure
make
sudo make install
wget http://www.taskwarrior.org/download/task-1.9.2.tar.gz
tar xzf task-1.9.2.tar.gz
cd task-1.9.2
./configure
make
sudo make install
Unter Windows (mit Cygwin):
Installiert gcc, make, ncurses, libncurses, libncurses-devel mit dem grafischen Setup Tool. Update: Mittlerweile ist die aktuelle Version auch mit dem grafischen Setup Tool installierbar.
wget http://www.taskwarrior.org/download/task-1.9.2.tar.gz
tar xzf task-1.9.2.tar.gz
cd task-1.9.2
./configure --with-ncurses-inc=/usr/include/ncurses
make
make install
tar xzf task-1.9.2.tar.gz
cd task-1.9.2
./configure --with-ncurses-inc=/usr/include/ncurses
make
make install
Weitere Möglichkeiten sind auf der Download-Seite beschrieben.
Eine kleine Überprüfung:
task version
task add Pay rent # first task we create
task add Check Taskwarrior #second task we create
task list # shows all pending tasks
task 2 start # marks a task as active
task list
task 2 stop # marks a task as inactive
task 2 done # marks a task as done
task list
task add Pay rent # first task we create
task add Check Taskwarrior #second task we create
task list # shows all pending tasks
task 2 start # marks a task as active
task list
task 2 stop # marks a task as inactive
task 2 done # marks a task as done
task list
Kommentare sind willkommen, überlegt Euch ob Ihr das Projekt unterstützen wollt.
Fortsetzung folgt ...
Geschrieben von Dirk Deimeke
um
18:27
| Kommentare (10)
| Trackbacks (4)

Tags für diesen Artikel: computer, planet-ubuntu, planet-ubuntuusers, plattformübergreifend, selfmanagement, taskwarrior

Samstag, 26. Juni 2010
Audiolänge ...
Vielleicht kann ja einer von Euch auch etwas damit anfangen. Das Skript berechnet die Summe der Längen aller Audiodateien in einem Verzeichnis, dazu muss der absolute Pfad angegeben werden. Zusätzlich zu Perl muss noch das Schweizer Taschenmesser der Audiobearbeitung, SoX, installiert sein. Es gibt kaum ein Audioformat, dass SoX nicht versteht. Wenn sox, oder vielmehr das Tool soxi im Pfad ist, funktioniert das Skript auch unter allen gängigen Betriebssystemen, Windows inklusive.
Es ist für den Eigenbedarf entstanden und macht keinerlei Prüfungen oder Fehlermeldungen.
Es ist für den Eigenbedarf entstanden und macht keinerlei Prüfungen oder Fehlermeldungen.
#!/usr/bin/perl -w
use strict;
use File::Find;
my $playtimesec = 0;
my $playtimetme = "";
my @directories = @ARGV;
sub audiolength {
my $len = `soxi -D "$File::Find::name" 2>/dev/null`;
$playtimesec += $len if ((defined $len) && ($len ne ""));
}
sub seconds2time( $ ) {
my ($ss) = @_;
my ($hh,$mm);
$mm = int($ss / 60);
$ss = int($ss) - ($mm * 60);
$ss = "0${ss}" if (length($ss) == 1);
$hh = int($mm / 60);
$mm = $mm - ($hh * 60);
$mm = "0${mm}" if (length($mm) == 1);
return "$hh:$mm:$ss";
}
find(\&audiolength, @directories);
$playtimetme = seconds2time($playtimesec);
print "$playtimetme";
use strict;
use File::Find;
my $playtimesec = 0;
my $playtimetme = "";
my @directories = @ARGV;
sub audiolength {
my $len = `soxi -D "$File::Find::name" 2>/dev/null`;
$playtimesec += $len if ((defined $len) && ($len ne ""));
}
sub seconds2time( $ ) {
my ($ss) = @_;
my ($hh,$mm);
$mm = int($ss / 60);
$ss = int($ss) - ($mm * 60);
$ss = "0${ss}" if (length($ss) == 1);
$hh = int($mm / 60);
$mm = $mm - ($hh * 60);
$mm = "0${mm}" if (length($mm) == 1);
return "$hh:$mm:$ss";
}
find(\&audiolength, @directories);
$playtimetme = seconds2time($playtimesec);
print "$playtimetme";
Mittwoch, 24. März 2010
VirtualBox-Lizenzen ...
In unserer Episode zum Thema Lizensierung ist die Frage nach der VirtualBox-Lizenz offen geblieben.
Ein Hörer von DeimHart hat mich darauf hingewiesen, dass auf den Seiten von VirtualBox endlich der Web Store verlinkt ist, 50 Dollar sind ein mehr als fairer Preis für VirtualBox. Diesen Link hatte ich gesucht, weil nie zu 100% klar war, ob die Benutzung im Büro durch "Personal Use" abgedeckt war, ist sie aber.
Aber auch das ist mittlerweile in der FAQ zu den Lizenzbestimmungen angekommen. Dort heisst es unter Punkt 6:
Danke Erwin!
Ein Hörer von DeimHart hat mich darauf hingewiesen, dass auf den Seiten von VirtualBox endlich der Web Store verlinkt ist, 50 Dollar sind ein mehr als fairer Preis für VirtualBox. Diesen Link hatte ich gesucht, weil nie zu 100% klar war, ob die Benutzung im Büro durch "Personal Use" abgedeckt war, ist sie aber.
Aber auch das ist mittlerweile in der FAQ zu den Lizenzbestimmungen angekommen. Dort heisst es unter Punkt 6:
What exactly do you mean by personal use and academic use in the Personal Use and Evaluation License?Ganz kurz zusammengefasst, bedeutet das etwa so viel, wie: "Benutzung auf einzelnen Computern ist Personal Use. Wenn VirtualBox in einer ganzen Organisation ausgerollt wird, kostet es Geld.".
Personal use is when you install the product on one or more PCs yourself and you make use of it (or even your friend, sister and grandmother). It doesn't matter whether you just use it for fun or run your multi-million euro business with it. Also, if you install it on your work PC at some large company, this is still personal use. However, if you are an administrator and want to deploy it to the 500 desktops in your company, this would no longer qualify as personal use. Well, you could ask each of your 500 employees to install VirtualBox but don't you think we deserve some money in this case? We'd even assist you with any issue you might have.
Use at academic institutions such as schools, colleges and universities by both teachers and students is covered. So in addition to the personal use which is always permitted, academic institutions may also choose to roll out the software in an automated way to make it available to its students and personnel.
Danke Erwin!
Geschrieben von Dirk Deimeke
um
06:06
| Kommentare (0)
| Trackbacks (0)

Tags für diesen Artikel: planet-community, plattformübergreifend

Donnerstag, 11. März 2010
Hintergrundgrafiken ...
Mir erschliesst es sich noch immer nicht so ganz, warum manche Menschen unglaublich viel Energie darauf verwenden, Grafiken für den Bildschirmhintergrund zu finden, wo doch dieser die meiste Zeit durch Fenster verdeckt wird. Schlimmer noch, dass die meisten Menschen - unabhängig von der Auflösung - Anwendungen im Vollbild nutzen, wie meine kleine Umfrage zeigte.
Allerdings muss ich gestehen, dass mich die Grafiken von Digital Blasphemy schwach machen könnten. Schade, dass die grösseren Bildschirmauflösungen kostenpflichtig sind.
Gefunden via Pofacs.
Allerdings muss ich gestehen, dass mich die Grafiken von Digital Blasphemy schwach machen könnten. Schade, dass die grösseren Bildschirmauflösungen kostenpflichtig sind.
Gefunden via Pofacs.
Freitag, 5. März 2010
Mediathek ...
Ich finde ja, dass die öffentlich-rechtlichen Sender in der DACH-Region (Deutschland, Österreich, Schweiz) etwas zu bieten haben und mir gefallen auch die Mediatheken, der einzelnen Sender. Da kommt mir das Java Programm Mediathek gerade richtig.
Das Programm durchsucht die Mediathek verschiedener Sender (ARD, ZDF, Arte, 3Sat, MDR, NDR, ORF, SF), lädt Beiträge mit einem Programm eigener Wahl und kann Themen als Abos anlegen und neue Beiträge automatisch downloaden. Es gibt auch eine Möglichkeit, Podcast zu verwalten und zu Downloaden.Die Bedienung ist ein bisschen gewöhnungsbedürftig, aber das Programm funktioniert wunderbar.
Geschrieben von Dirk Deimeke
um
15:46
| Kommentare (4)
| Trackbacks (0)

Tags für diesen Artikel: planet-community, plattformübergreifend

Donnerstag, 7. Januar 2010
JDBC ...
Ich selber bin kein grosser Fan von Java, muss aber eingestehen, dass mit JDBC eine der brillantesten Treiberimplementierungen überhaupt erfunden wurde. JDBC steht für Java Database Connectivity und bildet eine Schnittstelle, damit Java-Programme auf Datenbanken zugreifen können.
Es gibt vier verschiedene Typen von JDBC-Treibern. Der oben verlinkte Wikipedia-Artikel erklärt die einzelnen Typen genauer. Im Groben ist Typ 1 eine Schnittstelle zwischen JDBC und ODBC, Typ 2 ist eine Schnittstelle zwischen JDBC und lokal installiertem Treiber, Typ 3 ist eine Schnittstelle zwischen JDBC und einem Brücken-Server, der eine Verbindung zur eigentlichen Datenbank herstellt und Typ 4 ist eine Implementation des Treibers in reinem Java.
In der Praxis habe ich am häufigsten mit Typ 2- und Typ 4-Treibern zu tun, wobei Typ 4 das ist, was man haben möchte, da der ganze Treiber (in der Regel) aus nur einer einzigen Datei besteht und diese Datei funktioniert (wiederum in der Regel) überall dort, wo Java installiert ist.
Beispiele für die Anwendung:
Ich benutze sowohl unter Linux, wie auch im Büro unter Windows, SQuireL SQL zum generieren von Abfragen für MySQL, Sybase, SQLite, ...
Für Perl Datenbank-Anwendungen nutze ich DBD::JDBC als Proxy-Server, um auch immer mit der gleichen Syntax und ohne die Not, lokal binäre Treiber installieren zu müssen, auf Datenbanken zugreifen zu können.
Gerade gestern durfte ich einehysterisch historisch gewachsene Datenbank untersuchen (reverse engineering), dabei ist SchemaSpy eine sehr grosse Hilfe (ich habe bei der Implementation des DB2 Teils ein wenig mitgeholfen), allerdings sollte davon die aktuelle beta verwendet werden, da das Release einen Fehler hat. Wer es lieber grafischer mag, kann auch SchemaSpyGUI als Oberfläche benutzen.
Es gibt vier verschiedene Typen von JDBC-Treibern. Der oben verlinkte Wikipedia-Artikel erklärt die einzelnen Typen genauer. Im Groben ist Typ 1 eine Schnittstelle zwischen JDBC und ODBC, Typ 2 ist eine Schnittstelle zwischen JDBC und lokal installiertem Treiber, Typ 3 ist eine Schnittstelle zwischen JDBC und einem Brücken-Server, der eine Verbindung zur eigentlichen Datenbank herstellt und Typ 4 ist eine Implementation des Treibers in reinem Java.
In der Praxis habe ich am häufigsten mit Typ 2- und Typ 4-Treibern zu tun, wobei Typ 4 das ist, was man haben möchte, da der ganze Treiber (in der Regel) aus nur einer einzigen Datei besteht und diese Datei funktioniert (wiederum in der Regel) überall dort, wo Java installiert ist.
Beispiele für die Anwendung:
Ich benutze sowohl unter Linux, wie auch im Büro unter Windows, SQuireL SQL zum generieren von Abfragen für MySQL, Sybase, SQLite, ...
Für Perl Datenbank-Anwendungen nutze ich DBD::JDBC als Proxy-Server, um auch immer mit der gleichen Syntax und ohne die Not, lokal binäre Treiber installieren zu müssen, auf Datenbanken zugreifen zu können.
Gerade gestern durfte ich eine
Mittwoch, 11. November 2009
gvim ...
Weil ich ein "fauler Hund" bin, benutze ich so viele Plattform übergreifende Werkzeuge wie möglich und erlaubt.
Da ich beruflich Windows als Client-System nutzen muss, versuche ich auch dort meine bekannten und bewährten Linux-Programme zu verwenden. So zum Beispiel auch (g)vim,
Auf der vim-Webseitebekommt man das Self-installing executable für Windows. Wie unter Minimalismus beschrieben, konfiguriere ich vim nur minimal.
Der Konfigurationsdatei (Kopie von vimrc_example.vim) füge ich noch die Zeilen "set nu" für Zeilennummern und "set enc=utf-8" für UTF8-Kodierung hinzu. Die resultierende Konfigurationsdatei muss mit "_vimrc" (Konsole) bzw. "_gvimrc" (grafische Variante) benannt und in das Home-Verzeichnis kopiert werden (copy _vimrc _gvimrc "%HOMEDRIVE%%HOMEPATH%").
Da ich beruflich Windows als Client-System nutzen muss, versuche ich auch dort meine bekannten und bewährten Linux-Programme zu verwenden. So zum Beispiel auch (g)vim,
Auf der vim-Webseitebekommt man das Self-installing executable für Windows. Wie unter Minimalismus beschrieben, konfiguriere ich vim nur minimal.
Der Konfigurationsdatei (Kopie von vimrc_example.vim) füge ich noch die Zeilen "set nu" für Zeilennummern und "set enc=utf-8" für UTF8-Kodierung hinzu. Die resultierende Konfigurationsdatei muss mit "_vimrc" (Konsole) bzw. "_gvimrc" (grafische Variante) benannt und in das Home-Verzeichnis kopiert werden (copy _vimrc _gvimrc "%HOMEDRIVE%%HOMEPATH%").
Sonntag, 13. September 2009
Perl rename ...
Hier noch einmal ein kleiner Beitrag für Romans Blogparade zum Thema Exotische Linux-Applikationen: Perl rename
Mit "rename" aus der Perl-Installation (bei Debian und Ubuntu automatisch im Pfad, bei SUSE gibt es ein anderes rename) kann man auf sehr komfortable Art und Weise mehrere Dateien umbennenen.
Die generelle Syntax ist:
Lässt man Dateien weg, können die umzubenennenden Dateien via StdIn an das Programm übergeben werden.
Ein vorangestelltes "-v" oder "--verbose" gibt alle umbenannten Dateien aus, ein "-n" oder "--no-act" zeigt nur, was umbenannt würde, ändert aber nichts und ein "-f" oder "--force" überschreibt bereits vorhandene Dateien.
Beispiele:
Alle Dateien in Kleinbuchstaben wandeln:
In allen Dateien, die auf "bak" enden, Leerzeichen durch Unterstriche ersetzen:
Allen ".jpg"-Dateien ein "bak." voranstellen:
Sehr gekünsteltes Beispiel, aber Rückwärtsbezüge funktionieren auch:
macht aus kind_und_kegel.txt kegel_und_kind.txt oder aus hof_und_hund.txt wird hund_und_hof.txt
Mit "rename" aus der Perl-Installation (bei Debian und Ubuntu automatisch im Pfad, bei SUSE gibt es ein anderes rename) kann man auf sehr komfortable Art und Weise mehrere Dateien umbennenen.
Die generelle Syntax ist:
rename RegulärePerlExpression Dateien
Lässt man Dateien weg, können die umzubenennenden Dateien via StdIn an das Programm übergeben werden.
Ein vorangestelltes "-v" oder "--verbose" gibt alle umbenannten Dateien aus, ein "-n" oder "--no-act" zeigt nur, was umbenannt würde, ändert aber nichts und ein "-f" oder "--force" überschreibt bereits vorhandene Dateien.
Beispiele:
Alle Dateien in Kleinbuchstaben wandeln:
rename 'y/A-Z/a-z/' *
In allen Dateien, die auf "bak" enden, Leerzeichen durch Unterstriche ersetzen:
rename 's/ /_/g' *bak
Allen ".jpg"-Dateien ein "bak." voranstellen:
rename 's/^/bak./' *.jpg
Sehr gekünsteltes Beispiel, aber Rückwärtsbezüge funktionieren auch:
rename 's/(.*)und(.*).txt/$2_und_$1.txt/' *.txt
macht aus kind_und_kegel.txt kegel_und_kind.txt oder aus hof_und_hund.txt wird hund_und_hof.txt
Geschrieben von Dirk Deimeke
um
12:23
| Kommentare (4)
| Trackback (1)

Tags für diesen Artikel: planet-ubuntuusers, plattformübergreifend

Dienstag, 4. August 2009
Verheiraten von SQLite und SQuirreL SQL ...
Über mein Lieblingsdatenbankabfragewerkzeug SQuireL SQL habe ich in anderem Zusammenhang schon einmal etwas geschrieben.
Den JDBC-Treiber von SQLiteJDBC herunterladen und ins lib-Verzeichnis der Squirrel-Installation kopieren.
Einen neuen Treiber nach folgendem Muster anlegen.

Name: SQLite
Example URL: jdbc:sqlite:
Website URL: http://www.zentus.com/sqlitejdbc/
Class Name: org.sqlite.JDBC
Danach kann eine neue Datenbank nach diesem Muster angelegt werden (unter Windows Backslashes durch Slashes ersetzen), ein Login wird nicht gebraucht.:
Den JDBC-Treiber von SQLiteJDBC herunterladen und ins lib-Verzeichnis der Squirrel-Installation kopieren.
Einen neuen Treiber nach folgendem Muster anlegen.

Name: SQLite
Example URL: jdbc:sqlite:
Website URL: http://www.zentus.com/sqlitejdbc/
Class Name: org.sqlite.JDBC
Danach kann eine neue Datenbank nach diesem Muster angelegt werden (unter Windows Backslashes durch Slashes ersetzen), ein Login wird nicht gebraucht.:
Mittwoch, 29. Juli 2009
SQLite, noch einmal ...
Wie bereits angekündigt, wollte ich mal etwas zu SQLite schreiben.Da ich das Werkzeug mal wieder im Büro gebraucht habe und fast zeitgleich eine Anfrage im ubuntuusers.de-Forum aufkam, hier also ein bisschen Text dazu:
SQLite ist eine Datenbank in einer Datei, das heisst, es muss kein Server-Dienst laufen. Das Client-Programm ist auch gleichzeitig das Datenbankverwaltungstool.
SQLite ist in allen aktuellen Mobiltelefonen (als Telefonbuch / Adressverwaltung) zu finden und wird aktiv von (beispielsweise) Adobe, Bloomberg, Mozilla und Symbian gefördert.
SQLite gibt es als Sourcecode und vorcompiliert für Linux, Mac OS X, und Windows, sowie auch als JDBC-Treiber oder Perl-Modul.
Natürlich kann SQLite nicht alles was ein Client-Server-Datenbanksystem kann, aber für 95% der Anwendungsfälle einer Privatperson reicht es aus.
Ein sehr grosser Anteil von SQL-Kommandos wird unterstützt.
Es gibt nur vier Speicherklassen Integer, Real, Text, Blob. "create table"-Statement anderer Datenbanksysteme wird in der Regel problemlos interpretiert (nur, dass im Hintergrund beispielsweise statt VARCHAR TEXT benutzt wird).
Die Aufgabe:
Zwei Dateien: Eine enthält Adressdaten in Folgender Form (telneu.txt, 1.8 GB, ~60 Millionen Zeilen): Vorname Nachname;Strasse;Ort;PLZ;Telnr; (Je Zeile ein Datensatz), die Zweite Datei enthält nur Postleitzahlen (plz.txt, ~1000 Zeilen).
Aus der ersten Datei werden alle Datensätze gesucht, deren Postleitzahlen in der zweiten Datei vorkommen.
sqlite> CREATE TABLE telneu (Vorname_Nachname text, Strasse text, Ort text, PLZ text, Telnr text);
sqlite> .separator ";"
sqlite> .import telneu.txt telneu
sqlite> CREATE INDEX idx_telneu_plz ON telneu (PLZ);
sqlite> CREATE TABLE plz (plz text);
sqlite> .import plz.txt plz
sqlite> SELECT * FROM telneu WHERE plz IN (SELECT plz FROM plz);
sqlite> .separator ";"
sqlite> .import telneu.txt telneu
sqlite> CREATE INDEX idx_telneu_plz ON telneu (PLZ);
sqlite> CREATE TABLE plz (plz text);
sqlite> .import plz.txt plz
sqlite> SELECT * FROM telneu WHERE plz IN (SELECT plz FROM plz);
Vielleicht hilft es Euch auch.
Hier ein paar Links:
- Downloads - Paket "sqlite3" in Ubuntu
- Dokumentation
- Datentypen
- SQL-Syntax
- JDBC-Treiber
- Perl-Modul - Paket "libdbd-sqlite" in Ubuntu
- Firefox Extension SQLite Manager
Montag, 27. Juli 2009
Miro ...
Gerade wollte ich mir die neue Version des viel gepriesenen Miro herunterladen und ausprobieren. Gerade Version 2.5 soll ja einige bahnbrechende Neuerungen bringen, da jetzt auch Audio-Podcasts möglich sind (und das verfolge ich wegen DeimHart aus besonderem Interesse).
Nach Einrichtung der Paketquelle kommt der erste Nerv-Faktor, warum schaffen die es eigentlich nicht, Ihre Paket zu signieren?
Installation klappt - wie bei Debian/Ubuntu gewohnt - sehr gut. Danach der zweite Nerv-Faktor, es wurde Version 2.0.5 installiert, aktuell ist aber laut Webseite Version 2.5. Zunächst habe ich gedacht, es läge daran, dass die 64bit-Architektur noch nicht bedient wird (was ich auch nicht verstehen könnte). Jetzt finde ich einen Blog-Artikel, dass die 2.5 für Ubuntu noch nicht verfügbar ist ... Warum wird das nicht auf der Webseite bekanntgegeben?
Ich bin bis jetzt mit Miro noch nicht warm geworden, gebe aber jeder Version eine Chance ... so etwas finde ich dann aber echt übel.
Nach Einrichtung der Paketquelle kommt der erste Nerv-Faktor, warum schaffen die es eigentlich nicht, Ihre Paket zu signieren?
Installation klappt - wie bei Debian/Ubuntu gewohnt - sehr gut. Danach der zweite Nerv-Faktor, es wurde Version 2.0.5 installiert, aktuell ist aber laut Webseite Version 2.5. Zunächst habe ich gedacht, es läge daran, dass die 64bit-Architektur noch nicht bedient wird (was ich auch nicht verstehen könnte). Jetzt finde ich einen Blog-Artikel, dass die 2.5 für Ubuntu noch nicht verfügbar ist ... Warum wird das nicht auf der Webseite bekanntgegeben?
Ich bin bis jetzt mit Miro noch nicht warm geworden, gebe aber jeder Version eine Chance ... so etwas finde ich dann aber echt übel.
Donnerstag, 21. Mai 2009
SQLite
Diese "Datenbank in einer Datei" ist wirklich unglaublich. Die Beschäftigung damit lohnt sich in jedem Fall. Die Datenbank findet sich in jedem Handy und es gibt Portierungen für nahezu alle Betriebssysteme.
Geschrieben von Dirk Deimeke
um
20:14
| Kommentare (2)
| Trackback (1)

Tags für diesen Artikel: plattformübergreifend, sqlite

Montag, 23. Februar 2009
SQuirreL SQL ...
... hat die von mir lange erwartete Version 3.0 veröffentlicht.
Solltet Ihr das installieren wollen, nehmt nicht das vorgeschlagene Installationsverzeichnis, das mitgelieferte Startskript kommt nicht mit Leerzeichen zurecht.
Solltet Ihr das installieren wollen, nehmt nicht das vorgeschlagene Installationsverzeichnis, das mitgelieferte Startskript kommt nicht mit Leerzeichen zurecht.
Geschrieben von Dirk Deimeke
um
07:24
| Kommentare (0)
| Trackbacks (0)

Tags für diesen Artikel: java, plattformübergreifend

(Seite 1 von 3, insgesamt 41 Einträge)
nächste Seite »







