A short story about which calendar tool to use Matthias Beyer Furtwangen University matthias. beyer@ hs-furtwangen. de
12. Juli 2013
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
1 / 38
Overview
1
Intro Welchen soll ich nehmen?
2
remind How it works Arbeiten mit remind OMIT Context
3
wyrd
4
Abspann
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
2 / 38
Wie man es nicht macht
nano vim emacs sonstiger Texteditor
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
3 / 38
Was man vermeiden will
GTK Qt Tk sonstiges GUI
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
4 / 38
Was man haben will
Ein Tool, welches schnell, einfach, effizient, über ssh und ohne Maus bedienbar, alle Möglichkeiten bietet, die ein Terminkalender in Buchform bietet und dabei die Unix-Philosophie beachtet (one job one tool).
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
5 / 38
Tools
calcurse when gcalcli oder googlecl bsdcalendar gnu gcal palcal remind → Welchen soll ich nehmen?
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
6 / 38
calcurse
Text-based ncurses calendar and scheduling system.
1
Nicht sonderlich One job one tool!
1 Quelle:https: //wiki.archlinux.org/index.php/List_of_Applications#Console_15 Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
7 / 38
when
It’s a very short and simple program, so you can easily tinker with it yourself. 2
→ Kann ja nur zu simple sein
2
Quelle:http://lightandmatter.com/when/when.html
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
8 / 38
gcalcli / googlecl
Yeah, sync mit meinem Android! Aber sonst halt nix!
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
9 / 38
bsdcalendar
Haha → Linux? Soll ich mir das jetzt auch noch selbst bauen?
Lassmer mal lieber!
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
10 / 38
gnu gcal
Sieht ja aus wie cal, kann der überhaupt Termine?
Hmm... neee, lieber nicht!
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
11 / 38
palcal
Schon ziemlich nah dran: Commandline-Tool → ssh! Suchen mit Regex Für cronjobs geeignet One-time events and a variety of recurring events are supported (daily, weekly, monthly, yearly). Recurring events can have start and end dates. → Yeah! Farben für Termin-Tage Export nach HTML / LATEX.
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
12 / 38
palcal
Aber: [. . . ] special TODO event type → Unix? Easy to use interface → Suspekt! 3
Vielleicht gibts ja noch was besseres. . .
3
Quelle:http://palcal.sourceforge.net/
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
13 / 38
remind
design philosophy of [. . . ] Unix utilities: [. . . ] interacts well with other programs cron + gxmessage → Popup Event-Scripting → vim! Hat selbst kein UI → wyrd → ssh → Yeah!
4
4
Quelle:http://roaringpenguin.com/wiki/index.php/Remind_use_case_1
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
14 / 38
Was remind ist
UNIX command-line Tool, welches textfiles für die Datenbank einließt Datums-Rechner Scriptsprache Klein (120kB executable) und schnell Einfach zu lernen → Witz! Flexibel Frei (GPL) 5
5
Quelle:http://www.roaringpenguin.com/files/download/remind-oclug.pdf
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
15 / 38
Was remind nicht ist Shared. Nur für persönlichen Gebrauch Standard-Kompatibel. iCal Konverter in/out Man kann mehr ausdrücken als andere Kalendertools verstehen
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
16 / 38
Geschichte von remind
1989: remind v1.0 (never Released) 1990: remind v2.0 (SunOS) 1992: remind v3.0 instead of Master thesis bis 2005: Weitergearbeitet aber dann versickern lassen 2007: Arbeit an remind wieder aufgenommen 6
6
Quelle:http://www.roaringpenguin.com/files/download/remind-oclug.pdf
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
17 / 38
How it works 1
Einlesen von reminder-File Ausführen des reminder-Files Eine Zeile = Ein Kommando, Backslash notation erlaubt Zeilen mit oder ; sowie leere Zeilen sind ignoriert
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
18 / 38
Vorraussetzungen
Use your favourite text editor (emacs or. . . that other one. . . ) 7
7
Quelle:http://www.roaringpenguin.com/files/download/remind-oclug.pdf
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
19 / 38
reminder scripten
Listing 1: Einfache reminder 1
3
# Kommentar REM 6 J a n u a r y MSG F a b i a n s G e b u r t s t a g REM 4 Feb MSG P a t r i c i a s G e b u r t s t a g REM T h u r s d ay AT 1 9 : 0 0 MSG Unfug
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
20 / 38
reminder scripten - 2
Listing 2: Schwerere reminder 2
FSET i s G o o d ( d a t e ) \ monnum ( moondate ( 2 , d a t e ) ) == \ monnum ( moondate ( 2 , moondate ( 2 , d a t e ) +1) ) → WTF?
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
21 / 38
Warnings
Listing 3: Warning reminders 1
REM 6 Jan +5 MSG %"E l e a n o r ’ s A n n i v e r s a r y %" i s %b Am 6 Jan und schon 5 Tage davor "%b"→ ïn 3 day’s tim, "tomorrow", . . .
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
22 / 38
Letzter Tag eines Monats?
Listing 4: tricky reminder 1
REM Mon 1 −−7 MSG L a s t Monday o f t h e month Mon 1 → Erster Montag am oder for dem 1. des Monats –7 → minus 7 Tage
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
23 / 38
Nichtwöchentliche reminder
Listing 5: nichtwöchentlich reminder 1
REM 7 Sep 2007 ∗14 MSG J e d e r z w e i t e F r e i t a g REM 10 Mar 2008 ∗1 UNTIL 14 Mar 2008 MSG March Break 8
*n → Wiederhole alle n Tage UNTIL → Bis Enddatum
8
Quelle:http://www.roaringpenguin.com/files/download/remind-oclug.pdf
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
24 / 38
Verdammte Ferien!
Sich wiederholende reminder sind im Urlaub/an Feiertagen ungültig. Lösung → OMIT Context
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
25 / 38
Verdammte Ferien!
Beispiel: Meeting jeden Montag, aber wenn Feiertag ist wird es auf den Dienstag verschoben.
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
26 / 38
OMITS
Volle OMITs: OMIT 3 Sep 2007 MSG Labour Day Partiell: OMIT 25 Dec MSG Christmas
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
27 / 38
Beispiele
Listing 6: OMIT Beispiel 2
4
OMIT 25 Dec MSG C h r i s t m a s REM 26 Dec −1 MSG T r i g g e r e d on 24 Dec REM 26 Dec −−1 MSG T r i g g e r e d on 25 Dec REM 26 Dec +1 MSG S t a r t w a r n i n g 24 Dec f o r \%y−\%m −\%d REM 26 Dec ++1 MSG S t a r t w a r n i n g 24 Dec f o r \%y−\%m −\%d 9
9
Quelle:http://www.roaringpenguin.com/files/download/remind-oclug.pdf
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
28 / 38
REM vs OMIT
Normalerweiße wird ein REM getriggert wenn es auf ein OMITteten Tag fällt, aber man kann das ändern!
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
29 / 38
Beispiele
Listing 7: OMIT Beispiel 2 1
3
5
7
# C h r i s t m a s i s a Tuesday i n 2007 OMIT 25 Dec MSG C h r i s t m a s OMIT 26 Dec MSG B o x i n g Day REM REM REM REM
Wed Wed Wed Wed
MSG T r i g g e r e d on 26 t h anyway BEFORE MSG T r i g g e r e d on 24 t h AFTER MSG T r i g g e r e d on 27 t h SKIP MSG S k i p p e d on 26 t h
10 Quelle:
http://www.roaringpenguin.com/files/download/remind-oclug.pdf
10
\unskip\penalty\@M\vrulewidth\z@height\z@depth\dp¸
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
30 / 38
OMIT-Kontext zwischenspeichern
Man kann den OMIT-Kontext zwischenspeichern um einen neuen anzulegen!
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
31 / 38
Beispiele
Listing 8: OMIT PUSH 2
4
6
PUSH−OMIT−CONTEXT CLEAR−OMIT−CONTEXT # add a bunch o f e x c e p t i o n s OMIT . . . w h a t e v e r . . . OMIT . . . w h a t e v e r . . . REM . . . SKIP MSG w h a t e v e r POP−OMIT−CONTEXT 11
11
Quelle:http://www.roaringpenguin.com/files/download/remind-oclug.pdf
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
32 / 38
Beispiele
Listing 9: OMIT PUSH - Anwendungsbeispiel 1
3
5
PUSH−OMIT−CONTEXT OMIT 8 J u l y 2013 THROUGH 26 J u l y 2013 MSG Pruefungszeit OMIT 27 J u l y 2013 THROUGH 30 S e p t 2013 MSG Semesterferien REM T h u r s da y SKIP AT 1 9 : 0 0 DURATION 3 : 0 0 MSG Unfug POP−OMIT−CONTEXT 12
→ Äussere OMITs gelten nicht für Unfug-Rem! 12
Quelle:http://www.roaringpenguin.com/files/download/remind-oclug.pdf
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
33 / 38
STOP!
Bis hierher, alles schön und gut! Aber niemand will so Termine verfassen! → Lösung: wyrd!
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
34 / 38
Was ist wyrd
→ → → →
ncurses Interface für remind Einfach zu benutzen Terminübersicht Genau das was man als Interface zu remind will
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
35 / 38
Screenshot
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
36 / 38
Ressources
→ http://roaringpenguin.com/products/remind → http://www.linuxjournal.com/article/3529 → http://pessimization.com/software/wyrd/
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
37 / 38
Fragen und Antworten
→ Fragen? → Fragt sich, ob ich die wirklich beantworten kann!
Matthias Beyer (HFU)
How to do "calendar" right
12. Juli 2013
38 / 38