Projects
> youterm
> 0xFFFF
> radare
> glh
> xml2doc
> bluewall
> pvc-repo
> cvs-repo
> git-repo
> mesure
> wistumbler2
> acr

Posts (81)
> List of posts

> Mini update
> Accelerated dreams
> Paranoia?
> Changelog
> Graphs and 077n pwnk
> HNY2k7
> Maemo mooo
> HC pwned
> Long time no post
> USB Pawah Injector i boot reveng

Categories
> all*
> TWD(7)
> blog(5)
> bluetooth(4)
> conf(1)
> desktop(1)
> devel(8)
> family(8)
> hpcva(9)
> hurd(2)
> life(20)
> n770(3)
> netbsd(2)
> pkgsrc(2)
> reality(5)
> tips(2)
> tothink(2)

Links
+ del.icio.us
+ asterx
+ bee.es.gnu.org

nopcode
+gallery
+www.nopcode.org
+cvs.nopcode.org
+news.nopcode.org
+blogs.nopcode.org

Other Blogs
+ sKUrZ0
+ TripleDES
+ gospel
+ blyx
+ MiKi
+ plue
+ xtraeme
+ esteve
+ jmmv
+ pof
+ syvic
+ Yosh
+ k0ro
+ ESN
+ Brainstorm
+ BlackShell
+ Hubertf
+ TooMany
+ viric
+ ziberpunk

doblog
+ Makefile
+ Source
+ Readme
+ TODO
+ Changelog









 
 >>Tue, 14 Feb 2006 01:57:45 +0100

 TWD : Amb la calma...


Feia temps que no postejava i la veritat es que no he tingut gaire temps per posar-me a postejar. Es una llastima no haver postejat res sobre Venecia, pq realment es un lloc molt guapo i vam passar 5 dies de conya entre bolets i carrers d'aigua .

El fet es que ultimament se m'amontonen massa les coses, i aixo que tampoc en tinc tantes a fer..o potser si, pero no em se quadrar les hores i enrecordar-me/forçar-me a fer-les quan toca.

Aixi que aquest dissabte passat vaig decidir escriure un altre programa per tal de dominar el mon . Una agenda.

Potser dit aixi sembla que sigui poca cosa, pero el fet es que perl i unix donen per escriure bastantes palles mentals en molt poc temps, aixi que vaig implementar, una agenda, un sistema de notificacions d'anotacions amb capacitat de categoritzar-les per tags, un sistema d'alarmes, una agenda d'adreces personals, un bloc de notes, un sistema user-local d'actualitzacions (nomes cal root en la primera instal.lacio) i un sistema de sincronització distribuida per tal de tenir totes aquestes dades en totes les meves maquines x).

I el nom...crec que es forç suggerent: calma (aka Calendar manager).

La criatura té 2 dies de vida pero ja esta prou crescudeta, utilitza el sistema de fitxers per emmagatzemar les dades, aixi que es facil buscar notes per shell o fer frontends (java, Gtk2, php, cgi, etc..).

El programa permet ser manejat desde linea de comandes o desde la shell propia (si l'executem sense parametres), aixi podem cridar a totes les funcionalitats de l'agenda i automatitzar-ho al cron pq ens envii un mail/sms/bluetooth dient-nos tot el que tenim per fer avui. ( calma --today | mail my@mail.com ).

També el podem integrar amb el MUA per tal de recollir direccions de correu:
  console:

$ calma --get test-user email
test-user@server.com


Feia temps que buscava alguna cosa que em soluciones tot aixo de tenir una agenda, alarmes, anotacions, etc. I que ho pogues sincronitzar facilment entre diferentes maquines per tal de no perdre notes faci on les faci.

Doncs bé anem a instal.lar-lo

Instal.lació:


El procés d'instal.lació es molt senzill, encara que nose si fer-lo en forma de paquet amb tarball i demes, pero el tiempo dirà

  console:

$ cd /usr/bin
$ wget http://news.nopcode.org/calma
$ wget +x calma


Primera sessió amb la calma:


Per defecte ens creara el directori ~/Calendar on emmagatzemara totes les notes, alarmes, contactes, etc.

Pero podem configurar-ho en el ~/.calmarc, per exemple:
  console:

$ cat ~/.calmarc
@RemoteHosts=("user\@remotehost.org:./Calendar");
$CalmaAlertPreogram="/usr/pkg/bin/zenity --info --text";
$Editor="/usr/pkg/bin/vim";
$IgnoreSystem=1;
1;

$


Fixeu-vos que la arroba del host ssh remot té una contrabarra davant, no us la oblideu! (fallo tipic). Ara..anem a veure el --help.

  console:

$ calma --help
calma v0.2.3:
--about Information about this program.
--daemon Executes the calma daemon in background.
--help Shows this helpy stuff.
--cal [-t] [-l] Shows a colorized calendar of the current month.
--ls [-a|-t|-c] Shows all notes (or '-a'larms)for the target date.
--rm [-a|-t|-c] Removes the target matching the expression.
--sync [url] Syncronizes a remote calendar to your local CalmaDir.
--commit [url] Commit your local calendar to a remote one.
--tag [name] [expr] Tags as 'name' for the matching notes.
--get [name] Get the contact information.
--contact [name] Adds a new contact.
--update Updates calma to the latest version.
--date Shows local current time.
--edit [-c] Edits a target note.
--today Shows notes for today.
--todo Edits the 'TODO' file.
--grep [keyword] List all notes contain this keyword.
--view [expression] Show contents of notes matching the expression.
--alarm [title] Adds a new alarm.
--note [title] Adds a new note to the calendar.

date string format: [[YYYY/]MM/]DD].
targets for ls and rm: (-a)alarm, (-t)tags, (-c)contacts.
$


Suposo que amb el temps anire sintitzant més les comandes, pero son força facils d'aprendre. I com veureu, aquestes comandes les podem utilitzar sense posar els '--' davant i dins del prompt del programa:

  console:

pancake@mal:~$ calma
Today: 2006/02/13 24:41
=> version
0.2.3
=> cal
February 2006
Su Mo Tu We Th Fr Sa
          1  2  3  4 
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28

=> cal -l

February 2006

2006/02/13:
18:28 | post sobre la calma

2006/02/14:
13:01 | trucar a l'albert
13:30 | trucar al fran

2006/02/17:
21:00 | kdd

2006/02/22:
20:00 | Netstrike contra la SGAE

2006/02/27:
21:00 | concert disidencia + terrorismo sonoro

=>


Ara que ja hem vist una mica com funciona...anem a veure com podriem fer algunes accions interessants:

Crear una nota nova


Per crear-la hem d'utilitzar la comanda "--note" i ens anira demanant les dades...es important que la data es posi en format YYYY/MM/DD i que la hora sigui HH:MM, encara no comprovo gaire els inputs i podeu ficar entrades que no seran processades bé. (Ho corregiré aviat ).

  console:

$ calma --note
Title: Aixo es una prova
Time (01:01): 10:10
Date (2006/02/14): 2006/02/20
Text: (end with a single-line dot).
howhowhow
.
Store this note? (Y/n)
*message* note stored.

$ calma --ls /prova
2006/02/20/10:10 aixo es una prova


Accedint a la informació:


Tenim diverses formes d'accedir a la db de la calma:

ls : llista totes les notes emmagatzemades.
ls -a : llista totes les alarmes.
ls -t : llista tots els tags.
ls -t feina : llista totes les notes amb el tag "feina".
ls -c : llista tots els contactes que tenim.
cal : mostra l'output del 'cal' colorejat
cal 3 : mostra el calendari colorejat del mes 3 (Març).
cal -l : mostra totes les tasques que tenim per fer aquest mes de forma lineal.

Podem utilitzar masqueres per filtrar els resultats d'aquestes comandes aixi:
ls /java : mostra totes les notes que continguin la paraula "java" en el titol.
ls -c oan : llista tots els noms de l'agenda que continguin aquesta cadena (Joan, joan, joana...)

Poc a poc aniré definint una forma estandar per totes les comandes, pero dic lo mateix d'abans...no costa ni cansa utilitzar-lo i canviar 4 comandes no es cap catastrofe.

Els tags


La calma ens permet agrupar notes mitjançant tags. Per exemple, anem a marcar la nota "nopcon" com a "kdd" aixi:
  console:

=> tag kdd nopcon
- 2006/02/17/21:00-nopcon.0x03
Tag this note to kdd? (Y/n)

Note tagged.
=>

Com veieu el primer argument es el nom del tag. El qual sera creat si no existeix i el segon es la string que ha de contenir el titol de la nota. Haurem de respondre una a una "Y" o "n", o <enter> per defecte .

Ok, ara anem a veure tots els tags que tenim i les notes contingudes en el tag de "kdd":
  console:

=> ls -t
concerts
kdd
mataro
=> ls -t kdd
2006/03/04 10:00 - Jornades KDE
2006/02/17 21:00 - nopcon 0x03
=>


Sincronitzant...


La sincronització es fa mitjançant rsync. Per tant podem utilitzar diferents protocols per comunicar-nos entre maquines (ssh, rsync, ftp...). El fet de ser distribuit ens obliga a tenir com a minim algun node intermig per centralitzar totes les maquines que hi accedeixin o tenir 2 nodes sincronitzats entre ells, fins hi tot poden encadenar sincronitzacions en forma d'arbre amb comandes per ssh automatitzades.

Tenim 2 comandes basiques per manejar les sincronitzacions:
commit : comiteja l'arbre de notes de l'agenda ($CalmaDir) a un o més hosts remots. (Fa una copia identica del que tenim en local a la maquina remota).
sync : sincronitza la nostre agenda local a partir d'una remota. (simplement afegirem les notes que no tinguem, pero no perdrem res.

Aixi que ja sabeu...acostumeu-vos a fer 'sync' abans de cada commit, o com a minim cada cop q canvieu de maquina

Ella mateixa crea un fitxer anomenat: ~/Calendar/commit quan cal commitejar canvis, aixi que podem mirar si existeix i cridar al calma --commit.

Updating


La calma integra un suport d'actualitzacions local a nivell d'usuari, sense necessitat de ser root. Mira si existeix el ~/.calma al arrencar, i si existeix l'inclou i continua l'execució des d'ell. Cada calma porta hardcodejada la URL origen, aixi que fent:

  console:

$ calma --update


Ja tindriem la ultima versió actualitzada, sense pujar a root ni re . Si fem servir l'update a user-level haurem de definir la variable $IgnoreSystem=1; en el ~/.calmarc per tal d'evitar cada cop que l'arrenquem si volem executar la versio del sistema o la local.

Alarmes


Com es de suposar tot plegat necessita un sistema d'alarmes que ens avisin quan hem de fer certa tasca.

Hi han 2 tipus d'alarmes:
- Les de les notes : S'activen quan es l'hora i el dia fixada per una nota.
- Les alarmes 24h : S'activen per l'hora.

Ambdues executen el programa definit a $CalmaAlertProgram, per defecte porta el "zenity", que pels qui no el conegueu, es el que hauria de ser el "gdialog", usease, un dialog pero amb Gtk2.

# $CalmaAlertProgram="zenity --info --text";

Ara mateix el que fa es executar el callback com 1 argument amb l'string completa de la hora el dia el titol i el contingut de la nota.

FMI: Per mes info...mireu-vos les comandes "ls -a", "rm -a" i "alarm".

Etzetera..


Com podeu veure explicar com fer servir la calma es un pel llarguet, pero no es dificil d'entendre i manejar, ara us ho deixo amb algunes comandes que trobareu utils:

$ calma --today # mostra totes les tasques per avui.
$ ls /xerrada # busquem tots els posts que tinguin "xerrada" en el titol.
$ view xerrada # mostra tot el contingut de les notes amb "xerrada" al titol.
$ edit xerrada # edita el post que tingui "xerrada"
$ edit -c pep # edita la fitxa persona d'en "pep" :P
$ contact # crea un nou contacte
$ todo # edita el ~/Calendar/todo

TODOs


La veritat es que es algo que sempre havia necessitat, sobretot pel tema que si algu em diu q vagi a fer algo, sudo de fer-ho, pero si es un programa en perl el qui m'ho diu...m'apalanco menys en fer-ho.

Molaria tenir diversos frontends, al menys un per web i un amb Gtk2. M'agradaria integrar-lo amb el doblog per tal de tenir una barra on llisti els events proxims interessants o coses aixi. Fins hi tot podria generar RSS o permetre importar fitxers xCal o iCal de forma modular, es a dir, agendes solapades sobre la nostra agenda i que podem treure o posar les que volguem .

Ja em direu que tal si el proveu! a mi m'esta sent molt util..i l'anire millorant constanment, aixi que si l'useu, acostumeu-vos a fer "calma --update" de cop en quant .

[add comment] [view comments] (7)

Comments:
from: jordi burn to be wifi
date: Tue, 14 Feb 2006 01:11:46 +0100
title: es lo q te

es lo q te cuan t'ho passes tan be no t dona temps a postejar ni a fer fotos.. passa amb els bolets i passa a venecia.. i si stas a venecia ensetat (aka Boletecia) pues passa ncara mes!


from: Argentina
date: Thu, 20 Jul 2006 21:47:38 +0200
title: My homepage

Great work!
My homepage | Cool site


from: Brazil
date: Thu, 20 Jul 2006 21:47:40 +0200
title: My homepage

Thank you!


from: Brazil
date: Thu, 20 Jul 2006 21:47:54 +0200
title: My homepage

Great work!
http://dtwhilrh.com/desm/mkht.html | http://amqtpvsf.com/znik/rfga.html


from: Argentina
date: Wed, 27 Sep 2006 22:00:10 +0200
title: My homepage

Thank you!
My homepage | Cool site


from: Israel
date: Wed, 27 Sep 2006 22:03:28 +0200
title: My homepage

Nice site!


from: Austria
date: Wed, 27 Sep 2006 22:06:43 +0200
title: My homepage

Nice site!
http://lmisknje.com/bbyx/wsmy.html | http://fmzeoduk.com/yvpl/jryp.html