LibreOffice’i arendaja intervjuu: Kohei Yoshida

Kohei Yoshida on LibreOffice’i projektis teada-tuntud inimene. Paljudele on ta üheks tuumarendajate grupi liikmeks, kes on pühendunud stabiilsele arenemisele ja projekti koodi parandamisele. Samuti on tema õlgadele asetatud ühena liidritest Calc’i arendamine. Kohei leidis oma tihedast graafikust meie intervjuu jaoks aega ning nii on meil võimalus selle mehega ja tema suhtest LibreOffice’iga lähemalt tutvuda.

LibreOffice eksisteerib ainult tänu sellega töötavatele inimestele; seega palun räägi endast natuke lähemalt.

Minu nimi on Kohei Yoshida, jaapanlane kes praegu elab Põhja-Carolina’s Raleigh’is. Töötasin kunagi keskkonnateaduse valdkonnas, kuid vahetasin selle eluala oma tõelise kire ja kinnismõtete vastu tarkvara-arenduse valdkonnas. Olen selle vahetuse üle väga õnnelik, sest nüüd on mul võimalik oma sundmõtteid õigustada ja saada selle eest ka tasustatud.

Milliste teiste tarkvaraprojektidega Sa veel seotud oled?

Peale LibreOffice’i? Ega tegelikult eriti ei olegi. Mõistagi, vanadel aegadel olin seotud OpenOffice.org projektiga, aga see on ka kõik.

Kunagi töötasin umbes aasta aega SlickEdit’i arendajate meeskonnas, veel enne kui ühinesin Novell’iga OpenOffice’iga täistööajaga tööks.

Kus sa elad (ja/või õpid)?

Raleigh, Põhja-Carolina.

Millega vabal ajal tegeled?

Kilde siit-sealt erinevatest tegevustest, nagu näiteks oma poja Taekwondo trenni saatmine, TV-st peamiselt uudiste ja dokumentaalide vaatamine maailma värskete arengutega kursis olemiseks, trenn hea vormi hoidmiseks… ja muid selliseid asju.

Millal sa LibreOffice’iga tavaliselt töötad?

Väga lihtne. Tegemist on täistöökohaga, täpselt nagu kõik inimesed käivad tööl. Samas panustan ma ka päris palju omaenda aega, tavaliselt mõne väiksema projekti edendamiseks, mis ei kuulu otseselt minu kui töötaja töökohustuste hulka.

Millist tekstitöötlejat sa eelistad ja miks?

Erinevalt teistest paljudest arendajatest, kes kasutavad emacs’i või vim’i, eelistan mina SlickEdit’i. See on täiesti korralik kommertsrakendus, kus on sisse-ehitatud sümbolite andmebaas LibreOffice’i laadse projektiga sobivas mahus. Samuti leiab sealt kõikvõimalikke kasulikke funktsioone, mis hoiavad mu aega ja mugavust kõvasti kokku. Fakt, et ma ka ise antud tarkvara arendamisega kokku puutusin, ilmselt andis esimese tõuke ja siin ma sellega olen.

Kuidas sa LibreOffice’ist kuulsid?

Noh, on raske olla sellest mitte kuulnud, kuna olen projektiga olnud seotud alates selle sünnist.

Miks sa projektiga ühinesid?

Sattusin siia tänu mu tööandjale, SUSE’ile.

Milline oli sinu esmane koostöö kogemus LibreOffice’iga?

Veelkord, sedalaadi küsimustele ei saa ma päris üheselt vastata, sest olen projektis kaasa löönud esimest päevast. Aga ma pean märkimist väärivaks seda, et meie uus git-il põhinev repositoorium on minu tööd 100 korda kergemaks teinud kui vana süsteemiga, mis polnud tegelikkuses muud kui vaid käsitsi meisterdatud pakettide haldus-süsteem, mis oli cvs/subversion/mercurial repode ümber mähitud. Kui sulle on tuttavlik Go-oo projekt, siis täpselt sellest ma räägingi.

Nüüd, kui ma vaatan Go-oo projekti süsteemile tagasi, oli tegemist kohutavalt ebaefektiivse ja mitte just parima loovust toetava keskkonnaga. Tol ajal ma küll nii otseselt ei mõelnud, aga nüüd küll. Meil oli ka alustava LibreOffice’i projekti süsteemi juures mitmeid tahumata nurki. Hea uudis, mis mind rõõmsaks teeb, on muidugi see, et oleme saanud vahepeal süsteemi edasi arendada ja suurem osa veidrustest on nüüd parandatud.

Mida sa selle aja jooksul teinud oled?

Olen alates projekti algusest teinud mitmeid asju. Sõltuvalt oma töö iseloomust, tegelen ma mitmete Calc’i arendustega ja minu jaoks on raske koostada individuaalset saavutuste nimekirja. Üldiselt, asjad mida olen teinud saab kategoriseerida järgmiselt:

  1. koodipuhastus
  2. uued funktsioonid ja täiustused
  3. tuuma restruktureerimine parema hoolduse/suutlikkuse/mälujälje parandamiseks

Viimasel ajal fokuseerin oma tegevust peamiselt jõudluse täiustamisele ja tuuma restruktureerimisele, et muuta koodi lahtisemaks, paremini hooldatavaks ja üldiselt paremini toimivaks. Need muutused ei jõua kasutajani küll visuaalselt, kuid on minu arvates sama olulised kui nähtavad funktsioonid.

Olen töötanud ka koodi väljaviimisega välistesse projektidesse, mida hallatakse väljaspool LibreOffice’it. Mdds ja orcus projektid on selliste pingutuste headeks näideteks.

Millist omapoolset panust LibreOffice’ile siiani sa ise kõige tähtsamaks pead?

Edasiarendused Pivot-tabeli mootorisse, mis on nüüd 3.6 versioonis väga heas vormis, ja loendamatult palju üksuste testimise koodi alates projekti käivitamisest.

Kuidas see kasutajaid mõjutab?

Loodetavasti peavad kasutajad Pivot-tabeleid kasutades vähem erinevate asjade taga ootama. Lisaks, meie üksus-testide raamistiku suutlikkus aina suuremat osa koodist automaatselt testida tähendab väiksemat võimalust tagasilangusteks. Kahjuks pole meie testide raamistiku poolt kaetav ala piisav ja me peaksime endiselt usinalt testide koodi kirjutama erinevate pisivigade ennetamiseks. Aga asjad arenevad ja loodetavasti kasvab üksus-testide arv ja ulatus koos uute versioonide ja koodimuutustega.

Milline on sinu tulevikuvisioon ja/või mida sa sooviksid paremaks teha?

Minu visiooniks projektis on muuta kood rohkem modulaarsemaks – viies rohkem koodi mdds’i, orcus’i vms vähendamaks koodi hooldust. Lisaks tuleb tõsta üksus-testide ulatust väljalasete koodi kvaliteedi tõstmiseks. Ja loomulikult, ma ei saa unustada ka Calc’i kiiruse tõstmist kõigis valdkondades. Aga selle saavutamiseks tuleb meil teha väga mitmeid muutusi paljudes erinevates kohtades.

Samuti sooviksin ühel päeval korralikult jännata ja aru saada joonistuskihi koodist. Praegu tean ma väga vähe, minimaalselt, et hakkama saada. Jätkates Calc’i joonistuskihi koodi, mis põhineb suures osas ühisele joonistuskihi koodile kõikide rakenduste vahel, suuremahulise restruktureerimise ja arhitektuuri taasehistamisega ei ole ühel päeval selline teadmiste tase enam piisav. Ühel hetkel võiks seda olukorda muuta.

Tabeli kood veel üks elajas, mille kohta meil korralik teadmine puudub. Mitmeid meist, kaasa arvatud mina, oleme seda koodi uurinud, aga see tundub ikkagi kuidagi “võõras”. Oleks tore seda muuta.

Lisaks, me peame tõsiselt ette võtma ods ja xlsx impordi kehva jõudluse. See on lahendamiseks keeruline ülesanne, ja kuigi mul on mõned ideed laadimise kiirendamiseks, on tegemist pigem ikkagi pika-ajalise muudatusega kui homme juhtuva asjaga. Mul on mõned prototüüpmõtted orcus’es, aga väljakutse seisneb nende ideede materjaliseerimises, et need LibreOffice’is korralikult toimiksid. See ei saa kerge olema, ent ükspäev peab selle asjaga tegelema.

Viimaks, ma tõesti sooviksin restruktureerida Calc’i tuumakesta hoidlat, et saada kasu uuematest CPU vektoriaalsest toest, kasutada ära GPU-d või isegi lubada mõne superarvuti klastri lisamist arvutusfunktsioonide massiivseks kiiruse tõstmiseks. Selle saavutamine saab peamiseks arhitektuurseks väljakutseks, aga see saab ka väga huvitav olema.

Millist nõu sa annaksid uutele LibreOffice’i arendajatele, kes teevad oma esimesi parandusi/täiendusi?

Tee omale täpselt selgeks, mida sa soovid selle projektiga saavutada ja, kui võimalik, proovi püsida ühel kindlal alal ning anna minna.

Kas sa tegeled veel millegi põnevaga peale häkkimise?

Tegelikult mitte eriti. Üldiselt kipun ma kulutama palju aega uusimate puhta energiaga arenduse uurimusega. Kahju, et mul ei ole võimalik selles vallas ise midagi eriti teha ja ma saan ainult õppida, milliseid hämmastavaid asju on teised inimesed selles valdkonnas teinud. Usun, et meil on globaalse suurusega energiakriis, ja ma tõesti olen selle väga raske küsimusega tegelejatele tänulik. Samal ajal tegelen ma ka ise rakenduste efektiivsuse suurendamisega – rakendus täidab ülesandeid kiiremini, kulutades vähem CPU võimsust ja hoides sellega kokku nii elektrienergiat kui ka üleliigse soojuse teket.

Suur tänu aja ja vastuste eest! Ootame põnevusega uusi koodiridu meie lemmikkusse kontoritarkvara paketti!

LibreOffice’i arendaja intervjuu: Lionel Elie Mamane, LibreOffice Base’i hooldaja ja vabatahtlik

Jätkates “Arendajaintervjuu” sarjaga, rääkisime seekord Lionel Elie Mamane’ga tema tööst LibreOffice’i koodiga ja tema erilisest huvist Base’i vastu. Just Lionel’i juhtimise all on kogu Base’i mooduli arendus- ja hooldustööde läbiviimine, aidates selle tööga kogu LibreOffice’i kommuuni tervikuna.

Kuidas LibreOffice Sinuni jõudis?

Lionel Elie Mamane

Debian vahetas OpenOffice’i kontoritarkvara LibreOffice’i vastu.

LibreOffice eksisteerib ainult tänu sellega töötavatele inimestele; seega palun räägi endast natuke lähemalt. Lisaks, milliste teiste tarkvaraprojektidega Sa veel seotud oled?

Peamiselt Debianiga, aga viga nähes olen alati paranduspaikasid saatnud, sealhulgas:

  • IPv6 tugi privoxy’ile, mis on anonüümsust tagav HTTP proksi
  • veaparandused gfax’ile, mis on graafiline kasutajakeskkond fakside saatmiseks. Parandus ise sisaldas dünaamilist tühikute arvestamist faksinumbrites
  • Linux’i kernel: SIT tunnelis, mis on seatud “tos inherit” peale, levita IPv6 transportklassi sisemise paketi bait’i ka välimise paketi ToS baidile, nagu seda tehti nii IPIP kui ka GRE tunnelites
  • Pan (uudisteluger): Pan’i ja mutt’i (e-kirja tarkvara) koostöövõime parandus
  • Pan: veaparandus kategooriate filtris
  • Parandused mõnedes LaTeX’i pakettides
  • mutt: mailto: URL’ide parandus parsimisel

Millega sa peale LibreOffice’i veel tegeled?

Lõpetan oma doktorantuuri väitekirja teoreetilises arvutiteaduses/ arvutimatemaatikas.

Milles sinu doktoritöö seisneb?

Minu täpsem eriala on interaktiivne teoreemitõestamine. See on tarkvara, mille abil matemaatikud saavad luua ja haldada erinevaid teoreeme, aga ka tõestada nende kehtivust. Väidan, et praegused automaatsed teoreemitõestajad ei suuda kunagi anda kõigile kergesti loetavat teoreemi kinnitust. Meil tuleb õige vähe muuta nii konkreetseid süsteeme (programme) kui ka teoreetilisi aluseid,

Lisaks tegelen ma ühe väikse ettevõtte (15 inimest) IT teenuste vajadustega.

Kui tohib küsida, siis millise ettevõtte? Ehk võid meile rääkida selle toodetest või anda näiteks lingi?

See on Gestman S.A, mis tegeleb administratiivse, raamatupidamis- ja juriidiliste teenuste osutamisega.

Samas olen ma Matanel’i fondi nõunik. Fondi missiooniks on julgustada sotsiaalset ettevõtlus-suhtlust üle terve maailma. Täpsema kirjelduse fondi missioonist leiab siit (inglise keeles).

Lisaks osalen ka veel “klassikalistes” heategevusprojektides (toit, haridus, kultuur, …), olen peasüüdlane Debconf11 ja Debconf12 logode taga. Ilmselt märkate, et ka minu tööandja (Gestman s.a.) on üks nende konverentside toetajatest, makstes kinni ka minu osalemiskulud: http://debconf8.debconf.org/corporate.xhtml.en.

Millal sa LibreOffice’iga tavaliselt töötad?

Kui mind teel koju keset mõttelendu või vigade parandamist segatakse, siis lõpetan kodus.

Seega enamasti pärast tööd?

Jah.

Miks sa projektiga ühinesid?

Sellepärast, et tahan oma ametikohal LibreOffice’it erinevate andmebaasipõhiste ärirakenduste programmeerimise platvormina kasutada. Soovi korral võib seda pidada Microsoft Access’i põrmustamise katseks. Ma alustasin kergete vigade kõrvaldamisega ja väikeste lisavõimaluste lisamisega, mis olid minu jaoks kasulikud. Ja veel enne, kui ma sellest arugi sain, leidsin ma ennast olevat LibreOffice’i andmebaaside ekspert.

Väga põnev! Mida sinu ärirakendused teevad? Saad sa sellest ülevaate anda?

Ärirakenduste põhiülesanded:

  • Kliendiandmebaas
    • kontaktandmed
    • jälgib, kes saavad tellida,
    • track who is authorized to order which action on behalf of customer
  • arveldamine: manuaalne, automaatne, poolautomaatne
    • kui klient soovib eritellimust, arvesta tunnitasu
    • statistika töötajate erinevate tööaegade ja -tulemuste kohta
    • statistika toote müügihinna ja tegelikult kulutatud ressursi kohta (iga kliendi lõikes)
  • käibes oleva vara- ja investeeringute jälgimine
  • konkreetse tööülesande progressi jälgimine, kui see liigub töötajalt töötajale või väljaspool ettevõtet
  • Näiteks ettevõtte tuludeklaratsiooni esitamine:
    • raamatupidaja koostab bilansiaruande: 1. töötaja
    • ettevõtte juhataja kinnitab selle: 2. töötaja
    • saadetakse audiitorile: 3. töötaja
    • oodatakse audiitori vastust: väline teenus
    • esita audiitori poolt kinnitatud tuludeklaratsioon: 4. töötaja
    • kas maksuamet sai deklaratsiooni kätte?

Milline oli sinu esmane koostöö kogemus LibreOffice’iga?

Väga avatud kommuun. Nad teavad mu tugevusi ja hindavad minupoolset panust.

Milline oli sinu esimene panus LibreOffice’isse?

Minu esimene sissekanne vearaportisse paistab olevat: (kuupäev: Sat Jan 15 05:39:40 2011 +0100)

#116187: report left/right page margin setting ignored on Unix 64 bit

Viga seisnes asjaolus, et tehes ääriste muudatusi 64bitisel Linux’i versioonil, ei salvestatud ühtegi seadet.

Mida sa peale seda parandust veel teinud oled?

Eemaldanud mitmeid erinevaid vigu Base’ist ja natuke ka skriptinud.

Lahe! Võibolla seletad natuke nende vigade eemaldamise olulisust?

Peaaegu kõik “ettevõtte/äri- tarkvarad” töötavad stiilis “loe sellest andmebaasist, tee sellega seda tööd, salvesta tulemus andmebaasi,…”. LibreOffice ei saa kunagi Microsoft Office + Visual Basic for Applications’i laadseks kiireks tarkvara-arendus platvormiks, millel puudub korralik andmebaasidega suhtlemiseks ja haldamiseks vajalik korralik komponent.

Kuidas see kasutajatele kasuks tuleb?

Kõigil on võimalik kasutada LibreOffice’it andmebaasidele ligipääsemiseks ilma segavate vigadeta.

Milline on sinu tulevikuvisioon ja/või mida sa sooviksid paremaks teha?

  • ideaalis sooviksin Base’i ümber näha suurt ja elavat arendajate/testijate/kvaliteedikontrollijate kommuuni
  • Kui keegi on huvitatud andmebaasidest või skripitimisest, ühinege meiega! Sõltumata sinu kogemusest või oskustest, on meil alati tarvis programmeerijaid, vigade haldureid, kvaliteedi kontrollijaid, testijaid, dokumentatsiooni kirjutajaid…
  • Vigade teavitus-süsteem on aegunud ning sellele kuluks ära korralik uuendus.
  • Oleks tore, kui väljad suudaksid näidata ka mitut kirjet ühe korraga (mitte ainult võrk-vaates)
  • Mitmed sõltuvused Java’st, mis ei ole usaldusväärsed, ja mille sooviksin eemaldada.

Mida sa arvad uuest LibreOffice’i ülesehituse viisist?

gbuildification kasutuselevõtt on samm õiges suunas, aga tegemist on “rekursiivse” kompileerimisega, mis on tegelikult halb. Lähemalt saad uurida siit: http://miller.emu.id.au/pmiller/books/rmch/. Vähemalt praegu oleme selles suhtes samal tasemel enamike teiste projektidega.

Märkus: Nagu hiljem selgus, tähendab LibreOffice’i “rekursiivne” kompileerimisviis tegelikult siirdamist – väiksed kompileeritud osad viiakse üle tail_build moodulisse, mis seal omakorda üheks tervikuks liidetakse.

Olen 100% veendunud, et meie seoseid puudutav informatsioon on poolik ja/või liiga katkendlik. Siiani puutun koodi kompileerimisel kokku vigadega, mille ainukeseks lahenduseks on “make module.clean” või midagi sarnast. Proovides täpsemaid puhastuse meetodeid, ei ole see lihtsalt võimalik, sest reaalselt faili ei muudeta. Kompileerimine lõpeb lihtsalt “file you removed mising” (fail, mille sa eemaldasid, kadunud) veateatega.

Millist tekstitöötlejat sa eelistad ja miks?

Emacs. Harjumus (mitmed klaviatuurikäsud on käe sees), võimalused, programmeerimine korralikus keeles (olen pigem funktsionaalne programmeerija).

Kuidas sa julgustad uusi liikmeid endaga töötama?

Olen teinud mõned “easy hacks” (programmeerimis)ülesanded koos soovitustega.

Teed sa veel midagi põnevat peale häkkimise?

Ei, häkkimine on mu elu ;)

Äitäh leitud aja eest LibreOffice’i projektis!

(Intervjueeris Michael Meeks, toimetas Marc Paré)