subota, 20 aprila, 2024
Predstavljamo

Taskvorior

Autor: Nikola Hardi

U petom broju našeg časopisa objavljen je članak pod nazivom „Slobodan softver u nauci” i tada je spomenut zgodan programčić pod nazivom Taskvorior (eng. taskwarrior) ili jednostavno – Task. Da se podsetimo, reč je o konzolnom programčiću za rad sa spiskovima zadataka, ili, kako se ti spiskovi često zovu, „tudu” (eng. to do – treba uraditi) listama . Od tada je proteklo gotovo tri godine, a Task je postao još bolji. U ovom članku će Task biti detaljnije predstavljen uz osvrt na nekoliko novosti koje su se dogodile od tada. Ovo je lep primer projekta za koji se može reći da je uspeo – njegova zajednica je porasla, kvalitet i mogućnosti su se poboljšali, a nastali su i novi projekti koji podržavaju originalni Task.

Kako je nastao Task?

Task nije ni prva ni poslednja aplikacija za upravljanje „tudu” listama iz konzole, postoje i todo.txt, todo.py, todo.sh i ostale. Task je nastao iz potrebe autora da unapredi slične aplikacije. Projekat je započet još 2006. godine, verziju 1.0 je dostigao 2008. godine, a verziju 2.0 2012. godine. Trenutna verzija je 2.4.4, što pokazuje aktivnost i dobro zdravlje projekta i zajednice. Mnogi korisnici GNU/Linuksa i sličnih operativnih sistema mnogo vremena provode radeći u terminalu, pa su konzolna rešenja uvek zanimljiva. Osim toga, ovakve aplikacije su po pravilu manje zahtevne kada su u pitanju resursi; jednostavnije su za udaljeni pristup i rad s njima je često brži i prijatniji zbog upotrebe preko tastature. Postoje mnoge tehnike za upravljanje ličnim zadacima, kao što su: GTD (eng. Getting Thigs Done), Pomodoro (eng. Pommodoro) i druge. Task nije vezan ni za jednu od ovih tehnika i na korisniku je da izabere disciplinu za dodavanje i rešavanje zadataka. Naš predlog je knjiga Dejvida Alena pod nazivom „Ključ uspeha” (eng. David Alen, Getting Things Done).

Jedan primer upotrebe

Tipičan tok upotrebe je dodavanje zadatka, pregled spiska (svih zadataka ili po zadatom kriterijumu) i završavanje zadatka. Pored toga, korisnik često ima potrebu da pregleda statistiku, ili da izmeni neki zadatak. Biće predstavljen kratak primer upotrebe.

Dodavanje zadatka

Nakon instaliranja, Task je dostupan komandom u terminalu task. Izbor opcije izvršava se dodavanjem naziva opcije nakon osnovne komande, pa je novi zadatak moguće dodati prilično intuitivnom komandom task add Otići u prodavnicu. Pored naziva zadatka, moguće je dodati zadatak koji pripada nekom projektu i ima neku oznaku. Oznake se pišu sa prefiksom plus, a cela komanda može da izgleda ovako

task add project:škola +domaći +programiranje Napisati primer generičke klase.

Redosled atributa u komandi nije važan, pa oznake ili atribut za projekat mogu da se nađu i na kraju komande. Postoji niz drugih atributa, pored imena projekta. Recimo, krajnji rok za izvršenje zadatka, zakazivanje ponavljanja zadatka, prioritet, i drugi. Lepa mogućnost je što naziv atributa ne mora da bude kompletan, već atributi mogu da budu napisani samo delom, recimo pri umesto priority ili proj umesto project.

Pregled spiska zadataka

Kada je Task pokrenut bez drugih komandi, prikazaće spisak zadataka u jednom kompaktnom obliku. Ukoliko ste već dodali neke zadatke, možete ih jednostavno prikazati pokretanjem komande task. Komanda u ovom obliku će prikazati spisak zadataka koji je prilagođen dimenzijama terminala tako što neće prikazati sve dodane zadatke i neće prikazati sve kolone (prioritet, projekat, oznake, ponavljanje, i drugo). U ovom podrazumevanom formatu spiska, zadaci će biti poređani po zadatim prioritetima, ali o tome će biti malo više reči kasnije.

Drugi format za prikaz spiska zadataka je long, odnosno dugačak spisak. Izvršavanje ove naredbe će prikazati spisak svih zadataka, sortiranih po projektima uz nešto više detalja.

Izmena zadataka

Sve Taskove komande se zapravo sastoje iz tri dela, a to su filter, komanda i parametri. Filtriranje se može izvršiti po identifikacionim brojevima zadataka, projektima, prioritetima ili po bilo kojem drugom podatku iz opisa zadatka. Komande su uobičajene, list za ispis, modify za izmenu, delete za uklanjanje i done za završavanje. Nakon toga po potrebi slede parametri koji nisu obavezni za sve komande. Sledi nekoliko primera.

task 1,2 modify priority:H task project:libre done task proj:libre taskwarrior done task 13 done task proj:libr pri:H long

Kao što možete primetiti, Task dozvoljava nepotpune nazive projekata, opisa, komandi i izbora parametara. Ukoliko niste sigurni koji zadaci će biti izabrani zadatim filterom, uvek možete pokrenuti Task samo sa filterom (bez komandi i parametara), kako biste dobili spisak zadataka koji zadovoljavaju uslove izbora.

Sinhronizacija

Task podržava nekoliko vidova sinhronizacije još od ranih verzija. Pošto su podaci o zadacima sačuvani u tekstualnim datotekama, ređenje i spajanje tih datoteka sa različitih računara nije prevelik problem. Tako je od ranije dostupna sinhronizacija putem Git repozitorijuma, ssh (eng. secure shell), a neki korisnici su se snalazili čak i sa Dropboksovim direktorijumima. Kada smo poslednji put pisali o ovom programu, taskd je bio tek u planu, a danas je to proveren i podrazumevani način za sinhronizaciju Taskovih podataka između više računara. Taskd je servis koji je Taskvorior zajednica napravila za svoje potrebe. Reč je, takođe, o slobodnom softveru i svako može da pokrene ovaj servis na svom serveru. Komunikacija je, naravno, šifrovana standardnim i dobro testiranim algoritmima. Ovom prilikom moramo da spomenemo i servis Frisink ( https://freecinc.com ) koji pruža besplatnu uslugu taskd servera.

Dodaci i srodni programi

Kao što smo već napisali, Taskvorior zajednica je poprilično živa, a korisnici dele svoje alatke i dodatke sa ostalim korisnicima. Na ovoj stranici postoji pregled takvih dodataka ( http://taskwarrior.org/tools/ ). Neki od zanimljivih su bugwarrior (Bagvorior), koji može da preuzima spiskove zadataka sa Githaba; „t”, koji će promeniti ponašanje u zavisnosti od lokacije na kojoj se terminal trenutno nalazi; i mail2taskwarrior (Mejl-tu-taskvorior), za dodavanje zadataka putem mejla.

Posebno je zanimljivo pitanje klijenta za Android. Pronašli smo dve implementacije. Jedna je taskwarrior-androidapp (Taskvorior-android-ap) (https://github.com/svijee/taskwarrior-androidapp), a druga je Mirakel (http://mirakel.azapps.de/taskwarrior.html). Izgleda da je Mirakel trenutno najpopularnije i jedino zaista upotrebljivo rešenje. Omogućuje sinhronizaciju, radi dovoljno stabilno, a izgleda da se formira i lepa zajednica oko tog projekta, što je obećavajuće.