Author: Jani

  • [Ratkaisu] Skandinaavisten kirjainten korvaaminen tiedostonimissä

    Lähtökohta
    Minulla on joukko tiedostoja joiden nimissä on ä- ja ö-kirjaimia. Kaikki tiedostonimet koostuvat yksinomaan pienistä kirjaimista, eli kirjainmerkeistä a-ö. Haluan muuntaa nimet siten, että ä:t korvautuvat a-kirjaimilla ja ö:t o-kirjaimilla. Aion käyttää muuntamiseen tr-komentoa.
    Ongelma
    Tr-komento tulkitsee sille antamiani skandinaavisia kirjaimia sisältäviä muunnossääntöjä väärin ja ennalta-arvaamattomalla vaikuttavalla tavalla. Seuraavassa on tästä esimerkkejä:

    $ echo tiedostonnimi-jossa-on-ä | tr ä a
    tiedostonnimi-jossa-on-aa
    $ echo tiedostonnimi-jossa-on-ää | tr ä a
    tiedostonnimi-jossa-on-aaaa
    $ echo tiedostonnimi-jossa-on-äö | tr ä a | tr ö o
    tiedostonnimi-jossa-on-aaao
    $ echo tiedostonnimi-jossa-on-öö | tr ä a | tr ö o
    tiedostonnimi-jossa-on-aoao
    $ echo tiedostonnimi-jossa-on-öä | tr ä a | tr ö o
    tiedostonnimi-jossa-on-aoaa
    
    Ongelman syy
    Tr-komento ei tue komentotulkissani käytössä olevaa UTF-8 -koodausta.
    Ratkaisu
    Käytän tr-komennon sijasta sed-komentoa skandinaavisten kirjainten muuntamiseen, seuraavalla tavalla:

    for file in *ä*; do mv $file `echo $file | sed -e 's/ä/a/g'`; done
    for file in *ö*; do mv $file `echo $file | sed -e 's/ö/o/g'`; done
  • [Ratkaisu] Secret Maryo Chronicles on hidas

    Lähtökohta
    Näytönohjaimeni on Connect 3D:n valmistama, AGP-väylässä kiinni oleva Radeon 9600 -piirisarjalla varustettu All In Wonder. Olen valinnut näytönohjaimelle avoimen lähdekoodin ajurit käyttöön, ja ikkunointijärjestelmä ja työpöytä toimivat niiden kanssa hyvin.
    Käynnistän Secret Maryo Chronicles -pelin suorittamalla smc-komennon Päätteestä. Peli käynnistyy ja sen musiikki alkaa soida.
    Ongelma
    Pelin kuvanpäivittyminen on todella hidasta; vaikuttaa siltä kuin kuva päivittyisi vain noin kerran parissa sekunnissa. Näin hitaan kuvanpäivityksen kanssa pelin valikon käyttäminen on vaikeaa ja itse pelin pelaaminen mahdotonta. Pääteikkunassa, josta pelin käynnistin, näkyy seuraavanlainen virheilmoitus:

    *********************************WARN_ONCE****************************
    File r300_render.c function r300Fallback line 471
    Software fallback:ctx->Line.SmoothFlag
    **********************************************************************
    Ongelman syy
    Secret Maryo Chronicles käyttää R300-piirisarjan ominaisuutta jota ajuri ei vielä tue, jolloin ajuri turvautuu ohjelmalliseen kuvanpiirtoon.
    Ratkaisu
    Asennan DriConf-sovelluksen ja kiellän ajuria käyttämästä ohjelmallista kuvanpiirtoa pelin kanssa.

    1. Asennan Synaptic-pakettienhallinnassa driconf-paketin.
    2. Käynnistän DriConfin komentamalla Päätteessä driconf.
    3. Lisään sovelluskohtaisen asetuksen DriConfin Direct Rendering Preferences -ikkunan Application Settings -osion Lisää-napilla.
    4. Avautuvan Add Application -ikkunan Application Name -kenttään kirjoitan Secret Maryo Chronicles ja Executable Name -kenttään smc, jonka jälkeen suljen Add Application -ikkunan sen OK-napilla.
    5. Direct Rendering Preferences -ikkunan Application Settings -osiossa on nyt valittuna äsken luomani Secret Maryo Chronicles. Lisään sovellukselle Disable Low-impact fallback -asetuksen Add setting -kohtaan liittyvän alasvetovalikon Performance-alivalikosta.
    6. Kun Disable Low-impact fallback -asetus on valittavissa, asetan sen arvoksi Kyllä.
    7. Suljen DriConfin Direct Rendering Preferences -ikkunan Sulje-napilla.

    Kun tämän jälkeen käynnistän Secret Maryo Chronicles -pelin, sen kuvanpäivitys toimii niin nopeasti, että valikkoa voi käyttää ja itse peliäkin pelata.

  • [Ratkaisu] Secret Maryo Chronicles ei käynnisty

    Lähtökohta
    Full Circle Magazine numero 11 kertoi Secret Maryo Chronicles -pelistä. Peli vaikutti kiinnostavalta, joten asensin sen asentamalla Synaptic-pakettienhallinnassa smc-paketin ja kaikki sen vaatimiksi ilmoitetut lisäpaketit. Haluan kokeilla peliä, joten avaan Päätteen ja suoritan komennon smc.
    Ongelma
    Peli ei käynnisty. Komentotulkki näyttää seuraavanlaisen virheilmoituksen:

    CEGUI::Exception: DynamicModule::DynamicModule - Failed to load module 'libCEGUIDevILImageCodec.so': libCEGUIDevILImageCodec.so: cannot open shared object file: No such file or directory
    CEGUI Exception occurred : DynamicModule::DynamicModule - Failed to load module 'libCEGUIDevILImageCodec.so': libCEGUIDevILImageCodec.so: cannot open shared object file: No such file or directory
    Ongelman syy
    Smc-paketissa on ohjelmavirhe, jonka takia se ei merkkaa lisäksi vaadittujen pakettien joukkoon libcegui-mk2-dev -pakettia.
    Ratkaisu
    Asennan pakettienhallinnassa libcegui-mk2-dev -paketin. Sen jälkeen smc-komento käynnistää Secret Maryo Chronicles -pelin.
  • Avasin wikin ja tein siitä oletusetusivun näin lähtökohtaisesti hiukan kömpelöllä viritelmällä, joka nojaa JavaScriptiin, ja jos se ei ole käytettävissä, tarjoaa opastavan ponnahduslaudan (jonka saa pakotetusti näkyviin viittaamalla etusivuun sellaisen ankkurin kanssa, jota ei siellä ole). Tämä siksi etteivät vanhalla etusivulla olleet ankkurit särkyisi. Vanhan blogilistan ankkureiden särkymistä en ajatellut korjata.

    Parempaakaan ratkaisua en keksinyt, sillä ankkurit eivät ole PHP:n tai Apachen näkyvissä (ne käsitellään pelkästään asiakaspäässä, eli palvelimelle niitä ei lähetetä).

  • [Ratkaisu] GIMPistä kadonnut Script-Fu -valikko ja kuvan reunojen pyöristäminen

    Lähtökohta
    Olen käynnistänyt GIMP-kuvienkäsittelyohjelman ja avannut siihen kuvatiedoston. Olen ottanut esille Fading Photography Edges -sivun, jolla neuvotaan kuinka valokuvalle saa pyöristetyt reunat.
    Ongelma
    Ohje kehottaa käyttämään GIMPin kuvaikkunan Script-Fu -valikosta löytyvää kohtaa. Kuvaikkunassa ei kuitenkaan ole Script-Fu -valikkoa.
    Ongelman syy
    GIMPin versiossa 2.4 valikot on järjestelty eri tavalla kuin aikaisemmissa versioissa. Fading Photography Edges -sivu on tehty GIMPin vanhoja versioita silmälläpitäen.
    Ratkaisu
    Sovellan Fading Photography Edges -sivun ohjetta GIMPin uuden valikkojärjestelyn kanssa.

    1. Rajaan valinnan pyöristettyyn neliöön valitsemalla Valitse-valikosta Pyöristetty neliö -kohdan. Asetan liukusäätimellä valinnan parametri-ikkunassa olevan Säde (%) -kohdan arvoksi tässä tapauksessa 12.
    2. Kutistan valintaa kymmenen pikselin verran valitsemalla Valitse-valikon Pienennä... -kohdan, ja syöttämällä lukuarvon 10 sille varattuun kenttään.
    3. Pehmennän valinnan reunaa kymmenen pikselin verran valitsemalla Valitse-valikosta kohdan Pyöristä..., ja syöttämällä jälleen lukuarvon 10 sille varattuun kenttään.
    4. Käännän valinnan valitsemalla Valitse-valikosta Käänteinen-kohdan.
    5. Pyöristän kuvan reunat valitsemalla Muokkaa-valikosta kohdan Tyhjennä.
  • [Ratkaisu] DVD-levyllä olevan elokuvan toistaminen Totemilla

    Lähtökohta
    Olen lisännyt Synaptic-pakettienhallinnan Ohjelmalähteisiin Canonicalin tukemat avoimen lähdekoodin ohjelmistot (main) ja Yhteisön ylläpitämät avoimen lähdekoodin ohjelmistot (universe).
    Minulla on dvd-levy joka sisältää salaamattoman videoraidan. Haluan toistaa videon, joten lataan dvd-levyn tietokoneeni dvd-asemaan ja käynnistän Sovellukset → Ääni & video -valikosta Elokuvasoittimen. Sovelluksen käynnistyttyä valitsen sen Elokuva-valikosta kohdan Toista levy "G1985vKG", jossa lainausmerkeissä oleva osuus on dvd-levyn tiedostojärjestelmässä näkyvä nimi.
    Ongelma
    Elokuvan pyöritys ei käynnisty. Sen sijaan Elokuvasoitin antaa seuraavanlaisen ilmoituksen:

    Totem ei voi soittaa tämäntyyppisiä tiedostoja (DVD), koska sopivaa liitännäistä levyltä lukua varten ei ole asennettu.
    
    Soittaaksesi tiedoston asenna tarvittavat liitännäiset ja käynnistä Totem uudestaan.
    Ongelman syy
    Totem-xine -pakettia ei ole asennettu.
    Ratkaisu
    Asennan pakettienhallinnassa totem-xine -paketin. Paketin asentaminen poistaa totem-gstreamer -paketin. Sen jälkeen dvd:llä olevan elokuvan toistaminen onnistuu haluamallani tavalla.
  • [Ratkaisu] Tiedostojen turhien kaksoiskappaleiden haku ja poistaminen

    Ongelma
    Haluan etsiä tiedostojärjestelmäni tietyistä hakemistoista tiedostot, jotka esiintyvät identtisinä useammassa kuin yhdessä näistä hakemistosta, jotta voin poistaa ylimääräiset kaksoiskappaleet.
    Ratkaisu
    1. Asennan Synaptic-pakettienhallinnassa fslint-paketin.
    2. Käynnistän FSlint-sovelluksen Sovellukset → Järjestelmätyökalut -valikosta.
    3. Sovelluksen käynnistyttyä lisään sen Search Path -välilehdelle skannattaviksi haluamani tiedostojärjestelmän osat + Add -napin kautta avautuvalla hakemistonvalitsimella.
    4. Varmistan, että ikkunan alapuoliskolla valittuna on Duplicates -välilehti, ja painan Find-nappia. Sovellus etsii valitsemistani tiedostojärjestelmän osista tiedostot joista on kaksoiskappaleita, ja listaa ne ikkunassaan.
    5. Valitsen listalta tiedostot jotka haluan poistaa, ja painan Delete-nappia.
  • [Ratkaisu] Alihakemistojen sisältämien tiedostojen määrien tulostaminen

    Ongelma
    Haluan listata komentoriviltä nykyisessä hakemistossa olevien alihakemistojen sisältämien tiedostojen määrän kunkin alihakemiston osalta.
    Ratkaisu
    for dir in *; do echo -n "$dir: " && echo $dir/* | wc -w; done
    Huomautus
    Ratkaisussa annettu komento ei erottele nykyisen hakemiston juuressa olevia tiedostoja varsinaisista alihakemistoista, vaan listaa nekin ikään kuin ne olisivat alihakemistoja, jotka sisältävät yhden tiedoston.
  • [Ratkaisu] DVD-levyllä olevan musiikkikappaleen eristäminen ja muuntaminen siirrettävään muotoon

    Lähtökohta
    Minulla on dvd, johon on sen toisena videoraitana tallennettu Godzilla ja Mothra -elokuva. Pakettienhallinnassa acidrip, mplayer, audacity, vorbis-tools ja id3v2 ovat asennettuna.
    Ongelma
    Haluan kuunnella elokuvan lopputekstien aikana soivan musiikkikappaleen ilman, että minun tarvitsee käyttää dvd-levyä tietokoneeni dvd-asemassa.
    Ratkaisu
    Irrotan loppumusiikin erilliseen tiedostoon MPlayeria käyttäen, trimmaan sen Audacityllä ja lopuksi muunnan tiedoston Ogg Vorbis -muotoon ja lisään siihen ID3-avainsanat.

    1. Irrotan loppumusiikin erilliseen tiedostoon MPlayeria käyttäen.
      1. Lataan dvd-levyn dvd-asemaan.
      2. Käynnistän Sovellukset → Ääni & video -valikosta AcidRip DVD Ripper -sovelluksen.
      3. Varmistan, että Video source -palstan Path-kentässä on dvd-asemani laitenimi (tässä tapauksessa /dev/dvd) ja painan Load-nappia.
      4. Valitsen Video source -palstalle ilmestyvältä listalta toisen videoraidan ja panen ylös sen toiseksiviimeisen kappaleen numeron, joka on tässä tapauksessa 20.
      5. Suoritan Päätteessä seuraavan komennon, jonka -chapter -parametrin arvona käytän edellisessä kohdassa ylöspanemaani kappalenumeroa:
        mplayer -vc null -vo null -ao pcm:file=mothra.wav \
        dvd://2 -chapter 20
    2. Trimmaan tiedoston Audacityllä.
      1. Käynnistän Sovellukset → Ääni & video -valikosta Audacity Sound Editor -sovelluksen.
      2. Avaan äsken luodun mothra.wav -nimisen tiedoston Audacityssä sen Tiedosto-valikon Avaa... -kohdan kautta.
      3. Leikkaan tiedoston alusta ja lopusta ylimääräisen datan pois.
      4. Lopuksi tallennan muutokset tiedostoon Tiedosto-valikon Export... -kohdan kautta.
    3. Muunnan tiedoston Ogg Vorbis -muotoon seuraavalla komennolla:
      oggenc -q 6 mothra.wav
    4. Lisään tiedostoon ID3-avainsanat seuraavalla komennolla:
      id3v2 mothra.ogg \
        -a "Akira Ifukube" \
        -t "Godzilla vs. Mothra: Rolling Titles/Ending" \
        -g 24 \
        -y 1992

    Tiedosto mothra.ogg sisältää tämän jälkeen elokuvan loppumusiikin ilman dvd:tä kuunneltavassa, siirrettävässä muodossa.

    Huomautus
    Kun loppumusiikin sijasta on kyse alkumusiikista, MPlayerille annettavan kappaleparametrin arvoon on hyödyllistä lisätä lopetuskappale, jottei tiedostoon tule elokuvan koko ääniraita. Esimerkiksi kahden ensimmäisen kappaleen irrottamiseksi -chapter -parametrin arvoksi annetaan 1-2.
  • Kapsille on hankittu uusia palvelimia kapasiteettia parantamaan. Käyttökatkot eivät ensimmäisen, ensi viikonloppuisen jälkeen ihan vielä ole ajankohtaisia, mutta niitäkin on sitten aikanaan tulossa.