(toiminnot)

hwechtla-tl: Tekstimuotoinen yhteystietokanta

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


(nettipäiväkirja 23.05.2014) Nämä työvälineet, joilla saan yhteystiedot tekstimuodosta kännykkään, osoittautuvat vuosi vuodelta kätevämmiksi. Palveluihin talletetuissa kontaktitietokannoissa on nimittäin semmoinen ongelma, että tiedot mätänevät pikku hiljaa: kun tietoa siirrellään eteenpäin järjestelmästä toiseen, kukin järjestelmä lisää tietoon omien tuonti- ja vientitoimintojensa bugien aiheuttamat virheet. On mielettömän kätevää, että tiedot ovat raakatekstiformaatissa, joka on muuttumaton ja ikuinen. (No ok, jouduin kerran muuntamaan koko kontaktitietokannan merkistön iconvilla.) On myös mielettömän kätevää, että tiedot ovat versiohallinnassa, koska sillä tavoin ei synny epäselvyyttä, missä on talletettuna viimeisin, ajantasainen tieto.

Ajan mittaan minulle on ehtinyt kertyä kaiken maailman muunnostyökaluja yhteystietojen tuontiin ja vientiin (lähinnä vientiin, koska tämä raakateksti on yhteystietojeni master data). Minulla on esimerkiksi muunnokset gnokii-muotoon, vcardiksi, RFC822-headeriin kelpaavaksi osoitelistaksi, HTML-taulukoksi jne. Viimeksi, kun totesin firman Zimbran kontaktilistaan päätyneen jostain helvetin syystä duplikaatit kaikesta, vetäisin sen vain tyhjäksi, tein omasta osoitekirjastani exportin vcard-muodossa ja vein sen Zimbraan. Kaikki toimii kuin rasvattu.

Vcard-skripti on nykyään tämän näköinen:

#!/usr/bin/awk -f

BEGIN { FS="\t"; }

$4 && $4 != "?" {
        print "BEGIN:VCARD";
        print "VERSION:2.1";
        cnameindex = match($1, "([^ ]* os. )?[^ ]*$");
        match($1, "^[^ ]*");
        print "N:" substr($1,cnameindex) ";" substr($1,0,cnameindex-1);
        print "FN:" $1;
        if ($2 != "?") {
                print "EMAIL:" $2;
        }
        if ($5 != "") {
                split($5,osoite,",");
                split(osoite[2],kunta," ");
                katuos = osoite[1];
                pnro = kunta[1];
                pkunta = kunta[2];
                print "ADR;HOME:;;" katuos ";" pkunta ";;" pnro ";Finland";
        }
        split($4,numerot,",");
        for ( i in numerot ) {
                if (numerot[i] !~ /\+358/) type = "INTL";
                else if (numerot[i] ~ /358([123]0|9191|9310)/) type = "WORK";
                else if (numerot[i] ~ /358[23689]/) type = "HOME";
                else type = "CELL";
                print "TEL;" type ":" numerot[i];
        }
        print "END:VCARD";
}


Tekisin mielelläni saman kalenterille, mutta siinä on muutamia ongelmia:

  1. kalenterin tietoja päivitetään useammin kuin yhteystietoja. En halua, että minun pitää joka kerta kalenterimerkintää tehdessäni löytää kone, jossa on klooni kalenteritietokannastani, enkä halua joutua muistamaan tehdä sieltä pushia pääsäilöön ajoissa.
  2. kalenterissa olevien asioiden pitää joskus aktiivisesti muistuttaa minua. Siksi haluan, että kalenteri on integroitu kännykkään, ja se taas vaatii vähän toisten säännöillä leikkimistä.
  3. firma käyttää Zimbraa tapaamisten sopimiseen, ja olisi järjettömän epäkätevää synkata tietoja edestakaisin oman systeemin ja sen välillä. Suomeksi: miten hyväksyn tapaamiskutsun, jos kalenterini master data on erillisessä raakatekstitiedostossa?



kommentoi (viimeksi muutettu 29.07.2014 00:19)