• [Ratkaisu] Tiedoston salasanasuojaaminen GPG:llä

    Lähtökohta
    Pakettienhallinnassa gnupg on asennettuna. Kotihakemistossani on salainen.txt -niminen tiedosto, joka sisältää salaisen viestin.
    Ongelma
    Haluan salata salaisen viestin GPG:llä siten, että salauksessa käytetyn salasanan tietäminen riittää salatun tiedoston avaamiseen — avaintiedostoa ei siis tarvita.
    Ratkaisu
    Käytän GPG:n symmetristä salausta tiedoston salaamiseen, komentamalla seuraavasti:

    gpg -c ~/salainen.txt

    Komennon suorittamisen jälkeen GPG kysyy tiedoston salauksessa käytettävää salasanaa kahdesti. Sen jälkeen kotihakemistossani on alkuperäisen tiedoston lisäksi salainen.txt.gpg -niminen tiedosto, jonka avaamiseen GPG:llä tarvitaan salasana. Hävitän alkuperäisen tiedoston srm-komennolla.
    Salatun tiedoston avaaminen GPG:llä tapahtuu seuraavalla komennolla:

    gpg -d ~/salainen.txt.gpg > ~/salainen.txt

    Komennon suorittamisen jälkeen kotihakemistossani on jälleen salainen.txt -niminen tiedosto, joka sisältää alkuperäisen viestin salaamattomana.

    Huomautus
    Viestiä purettaessa GPG antaa seuraavanlaisen varoituksen:

    gpg: VAROITUS: viestin eheyttä ei oltu suojattu

    Varoituksen voi ilmeisesti jättää huomiotta.

  • Kolumni: Äksästä kiinni

    Gnome-työpöydällä olevan ikkunan sulkemisnappi Vielä tänä aamuna olin varma siitä, että ohjelman pääikkunan sulkemisnapin valitsemisen tulee sammuttaa ohjelma riippumatta siitä, onko ohjelmalla ilmoitusaluekuvaketta vai ei. Ajattelin, että sellaisen ohjelman, joka haluaa tarjota käyttäjälle mahdollisuuden sulkea sen pääikkuna sammuttamatta itse ohjelmaa, tulee tehdä niin vain erillisen valitsimen kautta. Tyypillinen esimerkki tällaisesta erillisvalitsimesta on Tiedosto-valikossa oleva Pienennä-kohta.

    Sitten luin Launchpadissa tästä aiheesta käytyä keskustelua, joka pyörii Rytmilaatikon pääikkunan sulkunapin ympärillä. Tämän kirjoitushetkellä Rytmilaatikko toimii niin kuin yllä mainostin vielä aiemmin vankkumattomasti uskovani ohjelmien pitävänkin toimia. Nähtävästi se on jossain vaiheessa toiminut toisinkin. Jotkut käyttäjät haluaisivat palata entiseen käytäntöön, ja yllätyin huomatessani pitäväni joitakin näiden käyttäjien argumentteja varsin pätevinä.

    Olin ajatellut, että ohjelman pääikkunan sulkemisnapin tehtävä on sammuttaa ohjelma, ja niinpä tästä käytännöstä poikkeaminen rikkoo napin toiminnallisuuden. Mutta mikäli luen vastustajien argumentteja oikein, heidän tulkintansa on, että ikkunan kuin ikkunan sulkemisnapin tehtävä on sulkea ikkuna, eikä sen takia ole johdonmukaista, jos sulkemisnappi sulkee ohjelman silloin, kun sen graafisena ilmentymänä näytöllä on ikkunan lisäksi ilmoitusaluekuvake. Huomasin oman kantani alkavan horjua, kun en ainakaan ihan suoralta kädeltä kyennyt tyrmäämään tätä näkemystä perusteettomana.

    Itse asiassa ajatus ikkunan sulkemisesta ikkunan sulkunapin ensisijaisena tehtävänä tuntuu niin viehättävän yksinkertaiselta, että haluaisin kääntää kelkkani tälle ajatukselle perustuvaan suuntaan. Sekään ei kuitenkaan ole täysin ongelmatonta, sillä sovelluksen pääikkunan sulkemisen assosiointi ohjelman suorituksen päättymiseen on sekin hyvin perusteltu ratkaisu: tarvitsee vain kuvitella sitä painajaista, jonka pääikkunansa sulkemisen myötä — siis kaikkien graafisten ilmentymiensä kadottuakin — käyntiin jäävät ohjelmat aiheuttaisivat.

    Pääikkunan sulkemisesta kuvakkeeseen -ratkaisun kannattajat eivät tietenkään aja takaa ikkunan sulkunapin toiminnan rajaamista ikkunan sulkemiseen näin puristisessa merkityksessä. Pääikkunan sulkemiseen assosioitavan toiminnon pysyvyys ei kuitenkaan heidän mielestään ole ratkaisevinta. Ratkaisevinta on ohjelman suorituksen jatkuvuuden assosiointi kaikkiin sovelluksen näytölle tuottamiin graafisiin ilmentymiin. Tästä perspektiivistä tarkasteltuna ohjelman suorituksen päättyminen silloin, kun sen kahdesta jäljelläolevasta ilmentymästä toinen suljetaan, ei ole johdonmukaista.

    Ongelma on pohjimmiltaan kaksiosainen. Ensinnäkin tulisi luoda johdonmukainen käytäntö sille miten sovellukset, ikkunat ja ilmoitusaluekuvakkeet käyttäytyvät ja miten ne suhteutuvat toisiinsa. Toisekseen ohjelmien tulisi sen jälkeen sitoutua tähän käytäntöön. Tällä hetkellä käytäntö vaihtelee ohjelmasta toiseen siirryttäessä, sillä riittävästi perusteltua käytäntöä ei ole määrätty missään käyttöliittymien ohjenuorassa.

    Olisiko tällaisen käytännön siis perustuttava ohjelmien pysyvyyteen ja kaikkiin graafisiin ilmentymiin tämän pysyvyyden kuvastimena, vai pääikkunan sulkemiseen assosioitavan toiminnon pysyvyyteen? Vielä tänä aamuna olisin vannonut ikkunansulkemistoiminnon assosiaatioiden pysyvyyden nimeen, mutta nyt en enää osaakaan sanoa varmasti. Ainakin näin tuoreeltaan ohjelmien pysyvyys kuulostaa ikkunansulkemistoiminnon pysyvyyttä elegantimmalta peruslähtökohdalta.

  • Firefox, updated extensions, and "Continue"

    I wish they’d do away with the completely useless Continue prompt after an extension update has taken place in Firefox.

    It’s good to prompt me before updating (in case I want to skip it), and obviously I’d like to be notified in case installing the update fails for some reason, but what is the purpose of prompting me to “continue starting Firefox, something which I’ve already requested, and for which there’s no longer anything requiring my intervention”? It’s just plain stupid.

    Sadly, I don’t see this change in Firefox 3’s changelog.

  • [Ratkaisu] Tiedostojen turvallinen hävittäminen

    Ongelma
    Haluan tuhota salasanoja.txt -nimisen salasanatiedoston niin, ettei sitä varmasti enää pystytä lukemaan.
    Ratkaisu
    Asennan pakettienhallinnassa secure-delete -paketin, minkä jälkeen voin hävittää salasanatiedoston seuraavalla komennolla:

    srm salasanoja.txt
  • [Ratkaisu] Binääritiedoston sisällön tulostaminen komentoriviltä

    Lähtökohta
    Haluan tarkastella komentoriviltä esimerkki.mov -tiedoston sisältöä.
    Ongelma
    Tiedoston sisältö on videodataa, joten sitä ei pysty tarkastelemaan sujuvasti cat-komennolla.
    Ratkaisu
    Asennan Synaptic-pakettienhallinnassa hexcat-paketin, minkä jälkeen voin tarkastella tiedoston sisältöä sivutettuna komentokehoteikkunassa seuraavalla komennolla:

    hexcat esimerkki.mov | less
  • [Ratkaisu] Sovelluksen valikkosijainnin muuttaminen

    Lähtökohta
    Pakettienhallinnassa gprename-paketti on asennettuna.
    Ongelma
    GPRename-sovellus on työpöydän Sovellukset → Muut -valikossa. Haluan, että se löytyy sen sijaan Sovellukset → Apuohjelmat -valikosta.
    Ratkaisu
    Teen GPRenamen kuvaketiedostosta oman, käyttäjäkohtaisen sovellukseni.

    1. Teen GPRenamen kuvaketiedostosta käyttäjäkohtaisen kopion seuraavalla komennolla:
      cp /usr/share/applications/gprename.desktop \
      ~/.local/share/applications/
    2. Muutan omassa GPRenamen kuvaketiedostossani sen valikkoluokitteluriviä seuraavalla komennolla:
      sed -i -e \
      's/^Categories=Application;\(.*\)/Categories=Application;Utility;\1/' \
      ~/.local/share/applications/gprename.desktop

    Tämän jälkeen GPRename löytyy Sovellukset → Apuohjelmat -valikosta.

  • [Ratkaisu] Tiedostojoukkojen nimeäminen kerralla

    Lähtökohta
    Minulla on kansio jossa on paljon keskenään samantyyppisiä tiedostoja, mutta joiden nimillä ei ole keskenään juuri mitään yhteistä, sillä ne ovat peräisin eri lähteistä.
    Ongelma
    Haluan nimetä tiedostot siten, että jokaisen nimi muodostuu samasta sanasta ja sen perässä olevasta, juoksevasta numerosta, seuraavasti: esim-01.txt, esim-02.txt, exim-03.txt ja niin edelleen.
    Ratkaisu
    Asennan gprename-paketin, minkä jälkeen käynnistän Sovellukset → Muut -valikosta GPRename -sovelluksen ja käytän sitä kaikkien tiedostonimien muuttamiseen kerralla.
  • [Ratkaisu] FLAC-muotoisen levyn muuntaminen MP3-muotoon

    Lähtökohta
    Minulla on CD-levyllinen musiikkia FLAC-muotoisiin tiedostoihin pakattuna.
    Ongelma
    Haluan tehdä musiikkitiedostoista MP3-muotoiset kopiot käytettäviksi sellaisessa kannettavassa soittimessa, joka ei tue FLAC- eikä Ogg Vorbis -muotoa.
    Ratkaisu
    Asennan soundconverter-paketin, minkä jälkeen käynnistän Sovellukset → Ääni & video -valikosta Sound Converter -sovelluksen ja käytän sitä musiikkitiedostojen muuntamiseen.
  • Siivosin eilen saitin juurihakemistosta kaiken vanhan roskan pois. Osan heivasin varastoon, osan arkistoon. .htaccess-kikkailun ansiosta vanhojen linkkien ei pitäisi särkyä tämän seurauksena, vaan kaikki ohjataan sulavasti 301-viestien saattelemana uusiin osoitteisiin. Niinpä siivous ei myöskään vähentänyt nimiavaruuden saastuneisuuta yhtään, mutta pääasiallinen tarkoitukseni olikin vain tuolla saitin hakemistossa navigoimisen helpottaminen.

    Paljaasta juuresta kävijä ohjataan 302:lla tällä erää wikin etusivulle, eikä juuressa ole enää mitään suoraan ladattavaa (Kapsin sinne oletuksena lisäämiä php-skriptejä lukuunottamatta), vaan kaikki on alihakemistoissa. Which is nice.

  • [Ratkaisu] Tietokoneen kello ei siirry kesäaikaan

    Lähtökohta
    Tietokoneessani on Ubuntun lisäksi toisella kiintolevyosiolla Windows-käyttöjärjestelmä. Ubuntun asennuksen yhteydessä olen ilmoittanut paikalliseksi aikavyöhykkeekseni (eli tietokoneeni sijainniksi) Suomen aikavyöhykkeen (Europe/Helsinki).
    Ongelma
    Kun Suomessa siirrytään kesäaikaan, Ubuntun työpöydän paneelissa oleva kello ei ole siirtynyt kesäaikaan. Kesäaikaan siirtymisen jälkeen tietokoneeni kello on siis tunnin Suomen aikaa jäljessä. Järjestelmä → Ylläpito -valikon Aika ja päiväys -sovellus ilmoittaa aikavyöhykkeekseni Europe/Mariehamn.
    Ongelman syy
    Tietokoneeni kello on asetettu paikalliseen aikaan koordinoidun yleisajan (UTC) sijasta. Ubuntu on tietoinen tästä valinnasta, ja tulkitsee sen siten, että Windows huolehtii kesä- ja talviaikaan siirtymisistä. Jos en ole käynnistänyt Windowsia kesäaikaan siirtymisen tapahduttua, kello näyttää tuntia vähemmän kuin sen pitäisi, jolloin Ubuntu ilmeisesti olettaa aikavyöhykkeen muuttuneen.
    Ratkaisu
    Sammutan Ubuntun ja käynnistän Windowsin, jolloin Windows asettaa tietokoneen kellon kesäaikaan. Kun sen jälkeen sammutan Windowsin ja käynnistän uudelleen Ubuntun, työpöydän paneelin kellonaika on Suomen kesäaika. Valitsen sen jälkeen Järjestelmä → Ylläpito-valikon Aika ja päiväys -sovelluksessa aikavyöhykkeekseni jälleen Europe/Helsinki.
    Huomautuksia
    • Jos siirryn käyttämään yksinomaan Ubuntua, voin asettaa tietokoneen kellon koordinoituun yleisaikaan ja ilmoittaa siitä asettamalla /etc/default/rcS -tiedostossa olevan UTC-muuttujan arvosta no arvoksi yes. Sen jälkeen Ubuntu osaa laskea kulloinkin vallitsevan paikallisen ajan tietokoneen kellon ja asettamani paikallisaikavyöhykkeen perusteella.
    • En tiedä mistä Ubuntun asennusohjelma päätteli, että tietokoneeni kello on asetettu paikalliseen aikaan. Sen pitäisi tiettävästi olettaa kellon olevan yleisajassa. Ehkä se otti yhteyden aikapalvelimeen ja vertasi sieltä saamaansa aikaa tietokoneeni kellon näyttämään aikaan.
    • Jos aikavyöhykkeen korjaa ennen Windowsin käynnistämistä, se on Ubuntun uudelleenkäynnistämisen jälkeen jälleen Europe/Mariehamn.