Místo úvodu
Asi skoro každý používá nějakou berličku k plánování úkolů a organizaci
času - kdy (případně) má jít do kina, na nákup a tak podobně, nemluvě
již o úkolech a termínech pracovních. Kromě různých ulů na kapesníku,
lístečků na nástěnce nebo papírových kalendářů a diářů existuje i velmi
mnoho nejrůznějších počítačových programů, které jsou k danému účelu
více nebo méně vhodné.
Situace se má obvykle takto - úkolovaná osoba časo potřebuje mít kalendář k
dispozici na stolním počítači v práci, případně i doma a nejlépe
neustále při sobě (třeba v mobilu nebo PDA). To obyčejně znamená,
že potřebuje pro každý počítačí prostředek jeden program a to takový,
aby si byl rozuměl s těmi ostatními. Úkol do kalendáře totiž
nepochybně vznikne právě ve chvíli, kdy není stolní počítač ani po
ruce, ale nejspíš ani v dosahu a je třeba ho hned zadat, zkontrolovat,
jestli je splnitelný (jestli už v daném termínu není naplánováno něco
jiného) a tak podobně. Tedy ty různé programy je třeba spolu nějak
(pokud možno bezstrátově) synchronizovat.
No a v tomto bodě jsem s Planem tak trochu narazil.
Je sice možné synchronizovat Plan s kapesními počítači Palm, ale ty už
nějakou dobu aktivně nepoužívám (z pietních důvodů sice stále vlastním
Palm IIIx a z něj odvozený IBM Workpad, ale už je delší dobu mám jen
jako muzeální exponáty). No a v podstatě s niším jiným to
synchronizovat nejde. Posléze jsem to řešil (používaje internetové
tablety od Nokie) pomocí programu GPE
Calendar a kalendáře od
Google, kteréžto jsem vzájemně synchronizoval programem Erminig. Tohle řešení
je funkční a od jisté verze Erminigu i spolehlivé, ale zase znamenalo,
že bez připojení k síti se na stolním počítači ke kalendáři nedostanu
(a kdo ví, jak "běhá" Mozilla/Firefox/SeaMonkey na IRIXu, asi tuší, že
používání čehokoli ve WWW prohlížeči jsem se pokud možno snažil vyhnout).
Navíc to nefungovalo už jinde - u mě hlavně na Neo
FreeRunneru, kde sice je kalendář Dates a synchronizátor
Pisi, ale hlavně Pisi
je ve vývoji (byť dnes už funguje hodně bezproblémové) a Dates mi v
některých ohledech moc nevyhovoval. V každém případě to znamenalo, že
jsem potřeboval Google Calendar jako mezičlánek, což mi přijde čím
dál méně jako dobrý nápad.
Navíc ovládání klikacího adresáře (libovolného, zkoušel jsem
samozřejmě i další) mi přijde trochu neohrabané - obvykle potřebuji
nadatlovat naráz větší počet podobných úkolů (například hodiny výuky v
kombinovaném studiu), které jsou obvykle rozmístěny v kalendáři velmi
nepravidelně. U grafického programu zo znamená (v lepším případě)
zkopírovat a popřesouvat úkoly, v tom horším každý zadat samostatně.
Taky se grafické kalendáře blbě ovládají přes telnet nebo
SSH (ovšem Plan to třeba umí). Vypadá to asi divně, ale zrovna
tahle funkce se mi v práci celkem často hodí.
Poslední kapkou bylo pořízení Ben NanoNote
(na slíbené recenzi se pracuje, ale asi ještě počkám na plánovaný update
systému, který by měl vylepšit funkčnost přístroje).
Na Benovi totiž standardně není GUI (tedy ne, že by tam nešly spouštět Gtk+
a Qt aplikace na framebufferu, ale proč to dělat), zato je tam
plnohodnotná linuxová konzole (jen trochu malá).
Takže jsem se odhodlal vyzkoušet doporučovaný Remind.
Co je a co není Remind
Program Remind není
klasický interaktivní kalendářový program. On vlastně není vůbec
interaktivní. Spustíte ho, vypíše vám aktuální úkoly v kalendáři (nebo úkoly
pro požadovaný počet týdnů nebo měsíců) a skončí. Případně běží na
pozadí
a až nastane čas úkolu, tak spustí zadaný program pro oznámení této
skutečnosti (např "xdialog" nebo cokoli jiného). A to je asi tak
všechno.
Použití může vypadat asi takto:
remind -m -c+ .reminders
Což dopadne třeba následovně:
+----------+----------+----------+----------+----------+----------+----------+
| Monday | Tuesday |Wednesday | Thursday | Friday | Saturday | Sunday |
+----------+----------+----------+----------+----------+----------+----------+
|8 Mar |9 Mar |10 Mar |11 Mar ***|12 Mar |13 Mar |14 Mar |
| | | | | | | |
| | | |7:15-8:45a|9:02-10:02| | |
| | | |m PPSV |am | | |
| | | |DOS, GEO |Konzultace| | |
| | | |LPA209 |SSKI | | |
| | | | | | | |
| | | |9:00-10:30|10:45am-12| | |
| | | |am PPSV |:15pm SSK1| | |
| | | |MSI01 |2.rocnik | | |
| | | |LPA209 |LPH109 | | |
| | | | | | | |
| | | |10:45am-12|2:15-3:45p| | |
| | | |:15pm PPSV|m SSK1 | | |
| | | |MSI02 |3.rocnik | | |
| | | |LPA209 |LPB201 | | |
| | | | | | | |
| | | |2:30-4:30p| | | |
| | | |m | | | |
| | | |Konzultace| | | |
| | | |SSKI | | | |
+----------+----------+----------+----------+----------+----------+----------+
Aai tušíte, že "-m" říká, že týden začíná v pondělí. Parametr "-c" by
vypsal měsíční kalendář, zatímco "-c+" vypíše týdenní (dovede to i na
víc týdnů nebo měsíců dopředu, stačí za parametr doplnit číslici,
třeba "-c3").
Tohle vás asi úplně neoslnilo, ale síla Remindu není ve schopnosti
prezentovat výsledky (je to unixový program, spoléhá na to, že výstup
jde do roury, kde sedí něco, co to umí dále zpracovat). Ostatně
existují převodníky do HTML (rem2html) a PostScriptu (rem2ps) i do
formátu iCalendar (a asi i další). Remind je totiž lepší na úplně
druhé straně, v zadávání věcí do kalendáře.
Už samotná skutečnost, že vše se zadává do lidsky čitelného textového
souboru (takže synchronizaci řeší "rsync", nebo i jen "scp" "cp" a
podobně) je více než pozitivní, dalším pozitivem je, že kromě
jednoduchých úkolů lze definovat i úkoly složitě (ať je ti tehdy a
tehdy, ale v sobotu zase ne...), k čemuž slouží de facto příkazový
jazyk.
Definujeme úkoly v kalendáři
Naslibované složitější věci tu ukazovat nebudu, Remind má pěknou
manuálovou stránku a dobrá je i tahle
prezentace od autora
Remindu.
Jednoduché věci se dělají jednoduše (slovo "REM" není poviné):
REM 17 Mar +5 MSG Šéfovy narozeniny
http://www.roaringpenguin.com/files/download/remind-oclug.pdf
Tušíte správně, šéf má 17.3. narozeniny a remind mi to bude hlásit už
5 dní předem.
Pokud jde o úkol se zadaným časem, tak je to podobné:
REM ONCE 27 May AT 14:30 DURATION 2:00 MSG Nesmírně důležitá porada
Slovíčko "ONCE" zajistí, že porada se koná jen jednou. Čas je 14:30 a
trvat bude 2 hodiny.
Když si pročtete dokumentaci, najdete tam spoustu možností jak co
nastavit, aby se úkol konal jen podmíněně, když jsou splněny všechny
stanovené podmínky (přičemž Remind umí i měsíční fáze a podobné věci),
případně aby se někdy přímo nekonal (nastavíte pomocí "SKIP" a "OMIT").
Spouštět můžete i předem definované programy (pro každý úkol klidně
různý), nechat si vypisovat kolik dní zbývá do příslušného úkolu
(například REM 15 Mar +22 MSG Slet carodejnic bude %s povede k tomu, že
%s bude ve výpisech nahrazováno termíny jako "tomorrow", "today" a
podobně, podle toho jak se vude příslušné datum blížit).
Nadstavby
Pokud máte obavu, že skončíte v ústavu pro duševně choré, pokud výás
někdo uvidí, jak provozujete kalendář v příkazovém řádku, tak (alespoň
před svým okolím) můžete provozovat některou z nástaveb nad Remind. Ty
sice neumožňují využívat možnosti programu na víc než 5% (případně
umoňují, a to tak, že pro zadání úkolu vám spustí Vim nebo Emacs se
souborem ~/.reminders), ale vypadají méně zdravotně závadně
Pro textový terminál je určen wyrd.
Ten je napsán v OCaml, ale jinak je vcelku konvenční a
jednoduchý k používání (a najdeteho jak v Debianu, tak v Ubuntu).
Určitým omezením Wyrdu je jeho naprostá neochota pracovat v
terminálových oknech užších než je 80 znaků (což ho předem
diskvalifikuje z používání na většině kapesních zařízení).
Klikací grafické nadstavby najdete minimálně dvě: tkremind (napsaný v
Tcl/Tk)
je přímo součástí zdrojové distribuce Remindu, je funkční, ale
nevypadá moc moderně. Opticky aktaktivnější je wxRemind napsaný
v Pythonu pomocí knihovny wxWidgets. Ani jeden program jsem moc
nezkoušel, protože je zatím nijak nepotřebuji - zatím si vystačím s
Remindem a grepem.
Uživatelé Apple taky nepřijdou asi úplně zkrátka - existuje applet pro
Dashboard (sice funkčně nic moc, ale použitelný v zásadě je) a Remind
jde nastavit i tak, aby hlásil události pomocí vhodných grafických
nástrojů (zkuste pohledat v manuálech na 43Folders.com).
Závěrem
Samotný Remind je napsaný v jazyce C a je docela dobře portovatelý.
Třeba na
OpenWRT (distribuce používaná nejen
na Ben NanoNote) šel naprosto bezproblémů
naportovat hned na první pokus a an Neo FreeRunneru to bylo podobné.
Pokud tedy hledáte něco hodně malého a
hodně univerzálního, tak možná opravdu stojí za vyzkoušení.
[Tiskni] [Přidat komentář]