7. helmikuu 2010, 19:11

Tehokkuutta työpöytäkäyttöön

Noniin, on aika viihdyttää taas teitä rakkaita kuuntelijoitani muutamalla pohdinnalla ja jäkätyksellä tehokkuudesta.

Ensiksikin voisin puhua pitkään mieltäni kourineesta jutusta. Jos jotain tungen torrentoitavaksi, on se sitten seuraavana päivänä latauduttuaan jo pahasti unohduksissa. Ja kun se vietävä on sitten siellä jossain lataushakemistossa muiden linux-distrojen ja indiebändien julkaisujen seassa. Ne yksinkertaisesti hukkuvat sinne. Kerrankin todistin löydöstäni, erästä loistavaa musiikkialbumia, jonka havaitsin loistavaksi, mutta olin ladannut sen jo 7 kuukautta aiemmin. Se vain ei ilmoitellut itsestään, joten etsintäpartioitakaan ei oikein kukaan osannut asettaa tulille.

Nyt pahkeinen viimein korjasin tämän epäkohdan sillä tavalla, että asetan rtorrentin lisäämään tekstitiedostoon yhden uuden rivin per valmistunut lataus. Tämä ei tietenkään suju mitenkään sulavasti, mutta yhdessä simppelin bash-skriptin avulla homma on pihvi. Tässäpä teille gui-miehille pureskeltavaa, miksi bashin perusteet kannattaa osata, vaikka se KDE tai mikälie onkin niin mukava ja ihana. Joskus vain miehen on osattava bash-purkkansa ainesosaset.

#!/bin/bash
# lähinnä rtorrent-skriptissä käytetään tätä, älä koske
echo "`date +%F`:  $1" >> ~/Completed.txt

Siinäpä se on. Päiväys heitetään mausteeksi päälle, muodossa YYYY-MM-DD, vaikka tässä casessa voisi olla vähän muutakin: joka tapauksessa tiedoston sisältö tulee olemaan kronologisessa järjestyksessä. Nimetään tämä haluamallaan tavalla ja rtorrentin konffiin määrätään seuraavanlainen rivi:

system.method.set_key = event.download.finished,notify_me,
  "execute=~/pika/addToTheCompleted.sh,$d.get_name="

Kyllä, en yhtäkään rumempaa asiaa keksi kuin rtorrentin täysin epäselvä ja sekava asetussyntaksi. Kunnollisten manuaalien puute ei helpota asiaa juurikaan. Mutta tuolla tavalla sain toimimaan parin kokeilun jälkeen.

Nyt se päivittyy jo kotihakemiston ~/Completed.txt -tiedostoon aivan sulavasti. Kuinka mukavaa. Mikäli sattuu olemaan vaikka musiikkidiggari, joka mielii kokeilla uutta, mutta ei sitten aina muista löydöksiään kuunnella, tämä on ihanteellinen ratkaisu. Minä heitin vielä lisäksi tämän tiedoston tarkkailuun conkylle. Se näyttää nyt kyseisen tiedoston rivilukumäärän, joka on sattumoisin sama lukema kuin uusien latailujen määrä.

Minun tarkoituksenani ei ole kartuttaa tätä tiedostoa, vaan ajatella sitä eräänlaisena "lukemattomien" entryjen listana. Siis kun laitan uuden ilmaismusiikkini MPD:n hakemistoihin ja soitantoon, poistan kyseisen rivin tiedostosta. Pyrin siis ensisijaisesti pitämään lukemat nollassa. Tiedostoa on toki näppärä muokkailla Vimillä milloin haluaa, mutta teinpä kaksi bash-funktiota vielä avustamaan tätä entryjen poistoa, onhan kyseessä melko puhdasoppinen listarakenne.

# Pari funktiota listatiedostojen käsittelyyn
function deleteTheFirstLine {
ex "$1" <<EOF
:1d|:wq
EOF
}
function deleteTheLastLine {
ex "$1" <<EOF
:\$d|:wq
EOF
}

Vaihteeksi iskin nämä funktiot siis bashin konffitiedostoon. Ne käyttäytyvät komentorivillä samalla tavalla kuin jos ne olisivat bash-skriptejä hakupolun varrella. Ehkä hivenen nopeampia nämä. Nämä tekevät tavallisia ex-komentoja, eikä siinä sen erityisempiä hommia. Muinoin ex oli kova näissä komentorivikikkailuissa, nykyisemmin ei niinkään. Samat automaatiot voisi tehdä myös vimin komentorivioptioiden avulla, mutta ex linkkaa kuitenkin vimiin nykyiselläänkin, ei minulla tässä ole tarvetta opetella toista ratkaisua. Täytyy sanoa, olen melko tyytyväinen tähän systeemiin. Voisihan toki kirjoittaa kolmannen funktion, joka poistaa matchaavat rivit tiedoston keskeltäkin, mutta se lienee harvinaisempaa niin voin kirjoitella sellaiset suoraan vimin starttaamalla. Harmi kun välillä tuntuu vimillä kestävän tuo käynnistys luvattoman pitkään, vaikka profiloinnin perusteella nopeudet ovat säilyneet samanlaisena jo pitkään.

Tuotakin olen pohtinut, että minulla on henkilökohtaisessa skriptivarastossani paljon lyhyitä bash-skriptejä, jotka voisivat varmasti osiltaan olla paremmassa käytössä bash-funktioina nopeuden takia. Mutta joitain launchereita siellä on, joista on hyötyä ihan graafisista launchereistakin käsin (esimerkiksi vaikka dmenu ja gmrun). Ehkäpä puhtaasti komentoriviltä käyteltävät skriptit vaihtavat paikkaansa .bashrc:n sisään.

PS, kirjoitin tämän tekstin kokonaisuudessaan GVimillä, käsiä pahemmin perusrivistöltä irroittamatta. Tuntuu kyllä pirun hyvältä nyt. Aiemmin olen ulkoisten tiedostojen sisältöjä kopsaillut X:n leikepöytää käyttämällä, nyt ihan oikeaoppisesti puskureihin avaamalla ja vimin sisäisiä rekistereitä hyväksikäyttäen. Lopuksi kopypastesin tähän WordPressin javascript-kakkaan ja lisäsin jotkut HTML-muotoilut.

Tageja: , , , ,

---
---

---

Aiheen vierestä