Minne menet, MOE?

Viime päivinä olen kehittänyt sekä MOE:a että Texifieriä hiukan parempaan kuntoon nettilevitystä ajatellen. Kaikenlaisten bugikorjausten ja sellaisten lisäksi tein suuria muutoksia ohjelmistojen asetusten hallinnassa. Käyttäjäkohtaiset asetukset on nyt siirretty ulos ohjelmistojen hakemistoista, ja molemmat ohjelmistot käyttävät nyt samoja asetuksia. Mutta mitä tulevaisuudessa tapahtuu?

Pääpaino kehitystyössä on edelleen MOE-editorissa, sillä Texifier on keskeisiltä osiltaan valmis paketti. Texifieriin liittyvä kehitys on enemmälti sisäistä siistimistä ja erilaisten formaattien generoinnin täydentämistä, sekä ohjauskomentojen siistimistä ja järkeistämistä. Ohjauskomennothan periytyvät niiltä ajoilta, jolloin käytin vielä suoraan LaTeX:ia. Parserin rakentamisen jälkeen ohjauskomennoilla ei tarvitse olla minkäänlaista yhteyttä LaTeX:iin, joten koetan muokata niitä vielä enemmän ”kirjoittajaystävälliseen” suuntaan.

MOE:n suhteen eräs keskeisiä tulevia kehityskohteita on tekstien hallinnan parantaminen. Nykyinen perusnäyttö, jossa on vierekkäin ideksi ja editointilaatikko, on kyllä toimiva, mutta hiukankaan suurempien tekstien kanssa ahertaessa se tuntuu riittämättömältä. ”Outline” -näkymä on vielä keskeneräinen ja kehno, ja sen parantamiseksi tai korvaamiseksi toimivammalla ratkaisulla on tehtävä töitä. Poistin lopulta kokeellisen OpenOfficea imitoivan ”Contiguous” -näkymän kokonaan, koska en saanut sitä toimimaan järjellisesti, mutta uskon, että koetan saada sen kaltaisen näkymän joskus rakennettua.

Ajatuksia. Olen suunnitellut ja kokeillutkin erilaisia vaihtoehtoisia tapoja esittää teksti näytöllä. Yksi ajatus olisi tehdä ”Kohtauslista” -näkymä, jossa tekstin ylimääräinen ryhmittely on riisuttu ja näytöllä on vain listaus kohtauksista sekä mahdollisuus editoida niitä.

Olen miettinyt kovasti tapoja saada MOE tukemaan luonnollisia tapoja rakentaa tarinoita. Perusajatuksena olisi noudatella lumihiutaletekniikkaa (kts. Randy Ingermanson ja Snowflake), jossa tarinaa rakennetaan hahmottelemalla suuria linjauksia ja tarkentamalla sitä asteittain. Lähtökohtaisena suunnitelmana olisi se, että tätä tarkoitusta varten näkymät tekstiin toimisivat hierarkisesti. Päätasolla näkyisi tarinan synopsis ja päätason rakenteiden (osat tai luvut) synopsikset. Tästä voitaisiin siirtyä päätason osan sisälle, jolloin näytöllä olisi kyseisen osan synopsis ja sen sisältämät kohtaukset. Eri tasojen välillä tapahtuvien siirtymisten pitäisi olla jouhevia, ja kokonaisuutenaan tukea tarinan hahmottamista sekä sen muokkausta kaikilla tasoilla.

PyRoom. Eräs mielen päälle noussut ajatus olisi integroida PyRoom tai vastaava käytettäväksi MOE:sta. Ajatus ei ole lainkaan mahdoton, päin vastoin. Sen ehkä suurin yksittäinen kysymysmerkki on se, olisiko parempi editoida tekstiä PyRoomilla kohtaus kerrallaan, vai pitäisikö kaikki kohtaukset kasata yhdeksi tiedostoksi PyRoomia varten, ja editoinnin jälkeen purkaa tiedostosta sisältö takaisin kohtauksiin.

Suoraan asiaan. Suuntalinja MOE:n kehityksessä on alusta asti ollut se, että kun ohjelman käynnistää, voi kirjoittamisen aloittaa saman tien. Nykyisellä versiolla se ei vielä toteudu aivan kokonaan, koska uuden tiedoston avaamisen yhteydessä otsikon muuttamista ei voi tehdä suoraan aloitusnäytöstä (on ensin valittava listassa päällimmäisenä näkyvä otsikkoelementti, muutettava otsikko ja tultava takaisin itse tekstin pariin). Tästä syystä olen harkinnut erikoisemman ”yhdistelmäelementin” toteuttamista, jossa olisi samassa paketissa sekä tarinan otsikko että sen sisältö. Pienimuotoiset vastukset ja ongelmat tämän toteuttamisessa ovat lähinnä ohjelmiston sisäiseen arkkitehtuuriin liittyviä, joten hiukan pidemmällä aikajänteellä on miltei varmaa, että ”Suoraan asiaan” -filosofiaa tukevat ratkaisut löytävät tiensä editoriin.

”Suoraan asiaan” -filosofialla on sellainenkin piirre, että niin nyt kuin tulevaisuudessakin tekstin rakenteellista editointia tehdään MOE:lla vain silloin, kun sitä halutaan tehdä. Tulevaisuudessakaan MOE ei vaadi minkäänlaisia esivalmisteluja.

Hahmot, paikat ja artefaktit. Hahmot ja vastaavat eivät ole vain ylimääräistä kuorrutusta. Niiden hallinta ja liittäminen kohtauksiin liittyy keskeisesti tarinan rakenteelliseen suunnitteluun. Pitkäaikainen haave on ollut se, että Voikkoa apuna käyttäen MOE osaisi poimia automaattisesti kohtauksista niissä esiintyvät henkilö ja paikat. Olen pitkään hahmotellut sitä, kuinka henkilöhahmoja hallittaisiin MOE:lla. Vielä hahmotteluista ei kuitenkaan ole syntynyt toimivaa ja käyttökelpoista koodia.

Apua sarjojen tekemiseen. Koska itse kirjoitan tarinoita sarjoihin, niin minua kiinnostaa myös se, kuinka sarjoja voitaisiin hallita ja käsitellä. Tämä tarkoittaisi mm. sarjoille yhteistä hahmotietokantaa. Tälläkin saralla olen tehnyt hahmotelmia, mutta mitään valmista ja toimivaa ei ole vielä syntynyt.

GTK. Yksi MOE:n kehittämisessä vaikeuksia aiheuttava tekijä on GTK-käyttöliittymäkirjasto. Sen peruskomponentit ovat kyllä soveltuvia tavallisempiin, yksinkertaisiin ohjelmistoihin, mutta MOE:n kaltainen editori saattaisi vaatia huomattavasti monipuolisempia, joustavampia ja intuitiivisempia keinoja tekstien hallintaan.

Vaihtoehtoja on kuitenkin vähän. Haluan pitää MOE:n Pythonilla kirjoitettuna niin kauan kuin se on mahdollista, koska silloin ohjelmasta ei tarvitse levittää erillisiä binäärejä eri järjestelmille, ja ohjelma toimii heti paketin purkamisen jälkeen. GTK:lle ehkä ainoa vaihtoehto olisi QT, johon ajattelin tutustua tarkemmin tulevaisuudessa. Muita vaihtoehtoja voisi olla ohjelmiston kirjoittaminen Javalla.

Yksi muutoskankeutta aiheuttava tekijä on se, että tein projektin alkuvaiheessa sellaisen ratkaisun, että dokumentti luetaan suoraan GTK:n TreeStore -olioksi (MOE:n Document-luokka periytyy siitä). Sen ansiosta dokumentin voi antaa suoraan TreeView -komponentille, jossa tehdyt muutokset (Drag’n’drop) näkyvät suoraan itse dokumentissa. Tässä ratkaisussa on kuitenkin omat ongelmansa, sillä vaihtoehtoisten näkymien kasaaminen on huomattavan mutkikasta. Toisaalta samat ongelmat olisi pakko ratkaista myös siinä tapauksessa, että dokumentti olisi sisäisesti tallennettu ”oliomaisempaan” muotoon (suoraksi puurakenteeksi).

Mainokset

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Google photo

Olet kommentoimassa Google -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s

%d bloggers like this: