Using MediaWiki’s interface in your own language

Today I fixed bug 13463. It is relevant to people who use MediaWiki with interface language that is different from the wiki’s default language. When person logs in to MediaWiki, the first page saying your login was successful was shown in the default language.

It has apparently been like this for years, so I wonder why it only recently came up. I remember fixing a similar issue when changing the interface language in preferences few years back. Maybe people are not using their native language as often as possible as interface language. It may be that they are multilingual and don’t care about what language the interface is.

Of course there is also real reason not to use custom interface language. Interface messages can be customised, and they often are. All these customisation are “lost” when another language is chosen. Is this a problem? Can we do something to it?

MediaWiki has a feature that some interface messages are always displayed in a content language. It is a good thing for important and often customised messages like the one containing copyright information. The bad thing is that this list is somewhat arbitrary and it is not always clear what belongs to the list. It is also possible to remove messages from this list using a configuration variable. Adding is not possible.

Now, what if we just added all customised messages to this list and force them to be shown in the content language? Users would always see customisations, but we would also lose a bit in the localisation support. This may be acceptable on some wikis, but on large multilingual wikis this is not optimal. We could go one step further and translate these customisation to other languages. But to do that we need a translation infrastructure. Special:Allmessages isn’t usable for that.

One solution could be to use Translate extension. It has all needed features to easily group and translate messages. As I see it it would require two steps:

  • Automatic or manual creation of messages groups of customised messages
  • Change MediaWiki to use different message loading order for these messages (skip the translations in message files)

Is this needed? Would it be just a nice toy or useful feature?

I have a summer job

So, I was one of the five lucky winners who where chosen for Kesäkoodi (Summercode Finland). This means that I will be improving the Translate extension we use on Betawiki, and some i18n support on MediaWiki. Of course I will be active on the spring too, but the big features are coming in the summer. More about that later.

I also moved this blog to a new host, and updated WordPress. In this short time I’ve already got hate-hate relationship with it. Where is the delete all the N spam comments where N is big for example? Anyway maybe I get over it.

I’ll probably blog something about MediaWiki here too, if this works and I’m not too lazy.

Virransäästöä ja käsittämätöntä säätöä

Nyt kun Intelin heppu julkaisu kivoja graafeja niin voinkin julkaista tämän postauksen tekemättä niitä itse. Alla on siis käsittämätöntä vuodatusta kaikenkarvaisilla suomenkielisillä termeillä, joita on höystetty kirjoitusvirheillä. Toisin sanoen siitä ei varmaan ota Erkkikään selvää.


Koska Gentoossani ei vaihteeksi ollut mitään säädettävää, piti keksiä jotain uutta. Sopivaksi aiheeksi löytyi virransäästö. Tässä tuleekin tietoa virransäästötavoista helpoista vaikeampiin käyttäen esimerkkinä omaa kannettavaani TP R52:ta.Alla on oletettu että käytössä on ydin 2.6.21. Osa toimii vanhemmallakin.

Helppoja peruskeinoja

Näytön taustavalon kirkkauden säätäminen pitäisi onnistua suoraan näppäimistöltä. Helppo, mutta joskin ympäristosidonnainen tapa säästää vähän virtaa. Enemmän virtaa säästyy, kun näytön sammuttaa kokonaan, joten kannattaa heittää hyvästi näytönsäästäjille niiden alkuperäisemmässä merkityksessä.

Langattoman laitteet kannattaa ottaa pois käytöstä, kun niitä ei tarvita. R52:ssa ainakin BlueToothin saa pois suoraan näppäimistöltä. Muissa laitteissa sama voi onnistua myös wlanille. Saman asian voi yleensä hoitaa ohjelmallisestikin.

Peruskeinoja, joiden kannattaa tarkistaa toimivan

Suoritin on yksi pahimmista virtasyöpöistä näytön kanssa. Toisin kuin näyttöjen, suorittimien virrankulutusta voi hallita useammalla eri tavalla. Yleensä mitä uudempi suoritin, sitä enemmän tai paremmin se tukee eri tapoja.

Tärkein tapa on kellotaajuuden laskeminen, kun suoritinta ei käytetä. Tämä onnistuu automaattisesti CPU Frequency Governorilla eli suorittimen suorituskykyprofiililla. Profiilin valinta onnistuu useimpien työpöytien virransäästösovelmilla, laptop-modella tai käsin. Intelin suorittimien kanssa on suositeltavaa käyttää ondemand-profiilia. AMD:n prosessoreilla conservative saattaa olla parempi.

Ytimen versioilla ≤2.6.21 ondemand-profiilia käytettäessä kannattaa suorittaa seuraavat komennot, jotta profiili ei aiheuttaisi turhia keskeytyksiä (keskeytyksistä lisää alempana).

cd /sys/devices/system/cpu/cpu*/cpufreq # tarkka polku voi hieman vaihdella
cat ondemand/sampling_rate_max > ondemand/sampling_rate

Tämän R52:n Pentium M suoritin saa suurimmalla nopeudella (1866 MHz) 1.372 V ja pienimmällä (800 MHz) 0.988 V.

Lisäksi suoritin voi tukea throttling eli hidastustiloja. Verrokkisuoritin tukee kahdeksaa tilaa, joilla suoritinta voi käskeä suorittamaan tyhjää jopa 87 % ajasta. Hidastuksella ei juurikaan virtaa säästestä, joten sen hyöty onkin lähinnä lämpötilan laskeminen. Liian suuri lämpötila voikin laukaista pakotetun hidastustilan, joka ohittaa kaikki käyttäjän määrittelemät asetukset.

Vipuja ja maagisia komentoja

Linuxissa löytyy paljon vipuja, jotka vaikuttavat virransäästöön. Koska laptop-mode on kiva kokonaisuus, kannattaa sitä käyttää ensisijaisesti. Laptop-modella voi tarkoittaa kahta asiaa. Ensimmäinen on ytimen ajonaikainen asetus, joka kasaa levynkäyttötapahtumia, ja suorittaa ne sitten kaikki kerralla, jotta levyn ei tarvitsisi pyöriä koko ajan. Toinen merkitys on ohjelma, jolla voi asettaa tämän vivun päälle ja hallita siihen liittyviä ja muitakin asetuksia. Useimmille asetuksille voi määritellä eri arvoja riippuen ollaanko verkkovirrassa vai ei. Alla on selitetty muutamia levyihin liittyviä asetuksia, jotka eivät tule muualla esille. Kannattaa tutustua rauhassa tiedostoon /etc/laptop-mode/laptop-mode.conf.

Readahead eli ennakkoluku(?) määrittelee paljonko käytetyistä tiedostoista luetaan muistiin. Suurempi arvo voi auttaa esimerkiksi musiikin kuuntelussa tai elokuvien katselussa. Kannattaa asettaa koneen sisältämän muistimäärä mielessä.

Noatime eli tiedostojen käyttöaikojen kirjaamatta jättäminen on kätevä asetus, joka vähentää levylle kirjoittamista. Suurin osa ohjelmista toimii ilman tätä asetusta, joten sen voikin laittaa esimerkiksi suoraan fstabiin.

Levyn virransäästöasetuksia voi valita kuinka aggressiivisesti levy sammuu, kun sitä ei käytetä. Liian pieni arvo aiheuttaa jatkuvaa päälle-pois-rumbaa, joka kuluttaa levyä turhaan.

Muita satunaisia vipuja alla.

Atin tai AMD:n näytönohjain

Fglrx-binääriajuria käytettäessä (sallitut arvot näkyy --helpillä):
aticonfig –set-powerstate=1 –effective=now

Avoimilla ajureilla X:n asetuksissa Option "DynamicClocks" "true" saattaa auttaa.

TP:illä seuraavilla komennoilla voi olla tai voi olla olematta vaikutusta

echo crt_disable > /proc/acpi/ibm/video
echo dvi_disable > /proc/acpi/ibm/video

Langaton verkkokortti

Ainakin IPW2200 ja ilmeisesti myös osalla muistakin korteista voi hallita virransäästö.
Arvo 5 säästää virtaa vielä enemmän kuin 7. (missä selitetty?)
iwpriv eth1 set_power 7

Keskeytysten eliminoiminen

Oikeasti suuret virransäästöt tulevat, kun suoritin ei tee mitään ja menee syvään unitilaan. Tämä kysymys tuli olennaisesti oikeastaan vasta 2.6.21:n myötä, kun ytimeen lisättiin ominaisuus, jonka valitsemalla voi poistaa säännölliset keskeytykset, joita ei tarvita. Ominaisuus löytyy tällä hetkellä x86:lle, mutta se tekee tuloaan myös x86_64-arkkitehtuurille. Erilaiset keskeytykset herättävät suoritinta yleensä turhankin tiheään. Powertop [http://linuxpowertop.org] on ohjelma, jolla näitä ohjelmia voi paikallista. Lisäksi sivuilla koottu listaa tuhmista ohjelmista ja mitä niille voisi tehdä. Todennäköisesti ydin pitää kääntää uudestaan sopivilla vivuilla, että Powertop osaisi mitään näyttää. Ohjelma osaa lisäksi näyttää muitakin vinkkejä, kuten esimerkiksi AC97-äänikortin laittamisen virransäästötilaan.

Atin – köh – AMD:n kortten ajurit aiheuttavat keskeytyksiä näytön virkistystaajuuden mukaan. Vielä ei ole julkaistu ajureita, joissa turha keskeytys olisi poissa, kun sitä ei tarvita, mutta ainakin semmoinen on tulossa avoimiin ajureihin joskus.

TP-kannettavien tuulettimien hallinta

Monien, mutta ei kaikkien, TP-kannettavien tuuletinta voi hallita ohjelmallisesti, joka onkin tervetullutta, koska normaalisti tuuletin käyttäytyy lähinnä aivokuolleesti. Hallintaan tarvitaan moduuli, joka on ytimen versiossa ≤2.6.21 nimeltä acpi_ibm ja uudemmissa thinkpad_acpi. Niin ikään ytimen versiossa ≤2.6.21 se tarvii ladata parametrilla experimental=1 ja uudemmissa fan_control=1 experimental=1.
Itse käytän tp-fancontrol-komentosarjaa [http://www.thinkwiki.org/wiki/Talk:Code/tp-fancontrol] tuulettimen hallintaan. Suoritin käy keskimäärin hitaammin, eli on hiljaisempi.

Undervolting eli jännitteen alentaminen

Pentium M -suorittimien jännitettä voi alentaa ohjelmallisesti. Se onnistuu myös 2.6.21-ytimellä ja phc-lisukkeella, mutta alla on käytetty uudempaa vanilla 2.6.22_rc6-ydintä, johon on laitettu käsin Gentoo-paikat [http://dev.gentoo.org/~dsd/genpatches/trunk/], phc [https://www.dedigentoo.org/bdz/linux-phc/linux-phc-0.3.0-pre1.tar.gz] ja hrt [http://tglx.de/projects/hrtimers/].
Kirjoitushetkellä 2.6.22_rc7 on jo julkaistu, mutta kaikkia paikkatiedostoja ei vielä ole saatavilla sille.

Seuraavaksi siirrymme jo tuttuun paikkaan:

/sys/devices/system/cpu/cpu*/cpufreq

Olennaisia tiedostoja ovat phc_vids ja phc_default_vids. Volttimäärä lasketaan kaavalla X = 700 mV + Vid*16 mV. Nyt olennaisinta onkin keksiä millä arvoilla kone toimii vielä vakaana. Itse käytin voltage-ramp-down.sh-komentosarjaa [http://gentoo-wiki.com/HOWTO_Undervolt_a_Pentium_M_CPU#Finding_the_lowest_voltages_before_the_CPU_freeze], joka tosin on vain 2.6.21-ytimelle. Pienillä muutoksilla se varmaan toimii uudenkin kanssa. Ajoin cpuburnia taustalla, ja 30 s kellotaajuutta kohden, kunnes löytyi ensimmäinen epävakaa arvo. Sitten otin toiseksi viimeisen ”rivin”, jolla kaikki kellotaajuudet olivat olleet vakaita. Tietysti jokainen kellotaajuus kannattaa testata erikseen, jos haluaa oikein alas.

Viimeiset irti

Edellisessä kohdassa mainittu hrt tuo myös uuden vaihtoehtoisen ns. ladderin eli ohjelman, joka laittaa suorittimen eriasteisiin virransäästötiloihin. Uuden menu-ladderin pitäisi korjata tilanne, jossa suoritin ei käytä virransäästötiloja tehokkaasti, kun keskeytyksiä on hyvin vähän.

Sähköt men, elämä jäi

Kävipä sitten niin että läppäri ryhtyi laittomaan lakkoon. Ei voine enää ajatuslautoihinkaan luottaa. Voiko mihinkään? Ensimmäinen pöytäkone toimii vielä. Siitä on hajonnut alkuperäinen kiintolevy ja näytönohjain on vaihdettu parempaan. Virtalähteen tuuletin vetelee viimeisiään, mutta kone vielä toimii. Ensimmäinen läppäri oli täysin susi fushitsu. Sähköhammasharja ei tykännyt yksinäisyydestä ja päätti lopettaa toiminnan sillä välin kun suoritin kurkkusalaattiani. Kuulokkeistani puhuin edellisessä merkinnässä. Ulkoinen Lassien kiintolevy on käynyt kerran takuuhuollossa, kun USB-piiri kärähti syystä tai toisesta. Nyt sekin takkuilee, jos johto ei ole oikeassa asennossa, data ei kulje. Tekisi mieli julistaa sota johtoja vastaan, ensin ei kulje data, sitten ääni ja nyt sähkö. Enkä harrasta johtojen kanssa mitään ihmeellistä, jos vilkkaimmat jo semmoista ehtivät miettiä.
Kurkkapurkista hampaankoloon, UPS-sedät kuulemma hakevat huomenna maanantaina rakkaani takuuhuoltoon. Takuusetä optimistisena hehkutti, että UPS-sedät soittavat noin tuntia ennen kuin tulevat hakemaan. Saa nähdä missä olen kun yrittävät soittaa.
Nythän sitä luulisi olevan aikaa opiskeluun ja ensi viikolla odottavaan tenttiin… tai sitten ei. Toisaalla olen todennut, että FreeCol on liian bugiseksi vakavaan käyttöön. Tarkoituksena oli vähän parannella sen tukea monikkomuodoille ja taivutukselle, mutta saapa nyt nähdä koska saan koneeni takaisin. Näkyillään jos näkyillään.

Unta vain puoliksi

Olipa kerran Sennheiserin kuulokkeet mallia Pikku G eli HD 570. Olipa myös takuuaika ummessa ja kolme viallista johtoa. Oli aika toimia, ilman toimivia kuulokkeita elinaikani ei olisi kovin pitkä. Suuntasin metrolla rastilassa sijaitsevaan hifi-liikkeeseen, josta olin saanut vihiä. Se vaikutti oikein mukavalta ja leppoisalta paikalta, mutta lompakko laihtui tuotteen hinnan ollessa erittäin suolaiset 16 euroa.

Kun lopulta pääsin takaisin kämpille ja lopulta pääsin kokeilemaan uutta ostostani, meinasin hypätä ikkunasta. Toinen kanava kuului hyvin, mutta toinen kanava pysyi edelleen mykkänä. Harkitsin jo uusien kuulokkeiden ostamista, kunnes avautumisena eräällä kanavalla tuotti tulosta. Minulle ehdotettiin niiden purkamista, jota en luullut ollenkaan mahdolliseksi. Palava haluni saada kuulokkeet toimimaan kuitenkin sai minut purkamaan: ensin käsin laihoin tuloksin, sitten Leathermanin avulla. Purkamisessa pitää irrottaa vain kaksi osaa, mutta ne on aika tiukasti kiinni. Taidolla ja tuurilla avasin tietysti ensin väärän puolen, mutta toisen puolen avaus tuotti helpottavan näyn — kaiuttimeen menevän johto oli irronnut liittimestään, luultavasti turhautumisen tuloksena. Pienet rosot muoviosissa hyväksyy kernaasti, kun ei tarvitse ostaa uusia.

Nyt päivää myöhemmin näin unta, jossa isäni olisi ostanut HD 65:t, samantapaiset kuulokkeet kuin minulla, jotka oli myös avattu. Tässä mallissa oli sisäänrakennettu kasettisoitin! Unia onkin tullut nähtyä viime aikoina aika monta. Ne yleensä ovat sekoitus jostain viimepäivien tapahtumasta, kodista, mummolasta ja… intistä.

Do you want your text plain or with furries

Bug 8521 was filed today. It is about an old problem: text escaping in MediaWiki. We dump some of our user interface strings (messages) without escaping to html output. Some of the messages are parsed as wikitext, rest are escaped and outputted as plain text.

Debugging view

There are various reasons why we try to get rid of the unescaped output. One of reasons is that any sysop can edit those messages to contain anything ranging from invalid html to some code exploiting some security holes in the browser. Latter isn’t that much of concern because sysops should be trusted enough not to do evil things, and there is always common.js where they can do it anyway. Invalid html, however, is bad. If we ever get to the point where we output xhtml or xml, the code must be 100% valid, or the site doesn’t work at all. We don’t want sysop to break whole site accidentally with no easy way to repair it.

Unfortunately fixing unescaped output isn’t that straightforward. Two main problems are backward compatibility and performance. Many people are actively using complex html-markup in some messages and consider it as a feature. I think we removed the worst one—we provided [[mediawiki:edittools]] to use instead of [[mediawiki:summary]], latter still unescaped. But there are many left. And from time to time when we “demote” message from html to wikitext or plain text where someone uses html, the user goes nuts and breeds squad of terrorists. And if we add a wikitext message, which is parsed by the parser on every page view, one of our fellow developers commits a suicide, which we don’t want to happen :). Actually, there is third type of messages (not counting unescaped), where we only parse brace-thingies, like magic words. Now imagine you being a translator or a sysop customizing some UI message. Which format should you use in that particular messages that you are currently modifying? I don’t have answer to that question, sorry.

It’s been a while since I last wrote longer pieces of English, if you didn’t notice already :)

Elämää after kurkkusalaatti

Vähän vaatetta, läppis ja muut elintärkeät tavarat mukana saavuin Helsinkiin maanantaina aamupäivällä. Soitto kaverille ja suunta kohti HYYn toimistoa, jossa maksoin jäsenmaksun (≈ 35 €) ja Lyyra-kortin. Sitten Asematunneliin lataamaan korttiin kolme kuukautta kautta (≈ 60 €), lupatoimistoon aktivoimaan tunnukset, Itäkeskukseen ottamaan passikuvat ja pyytämään passi ja henkilökortti (≈ 100 €). Sitten vähän kebabia, joka oli kyllä kovin paksua ja kuivaa, ja maito vaikutti vanhentuneelta ☹. Tiistaina sitten Messukeskukseen Lääkäripäiville – lähinnä tapaamaan SotLK:n tuttuja. Saaliksi jäi kyniä, kaularoikotin, brändätty hiirimatto ja naamioitu kasvishernekeitto.

Mainittakoon vielä, että MediaWiki 1.9 julkaistaan pian. Näkyvimpinä uudistuksina on kotoistetut toimintosivujen nimet (esim. Toiminnot:Tuoreet muutokset) ja Toiminnot:Version ulkoasu. Myöskin $wgAjaxWatch-asetus on ihan näpsäkkä. Päivitys saattaa kestää hetken, kun Järjestelmäviestit-nimiavaruudesta poistetaan turhat viestit.

TJ 0

Hip huraa, tai sitten ei. Lopun ajan kohokohdaksi jäi lähinnä syönti ulkona lääkintäeversin kanssa. Koko reissusta käsiin ei jäänyt oikein mitään muuta kuin muistoja. Ehkä pari kaveria. Eilinen ja tämä päivä olivat varmasti koko palvelusajan synkimmät päivät. Luultavasti suurinta osaa palvelustovereista en näe enää koskaan. Olin muuten varmaan viimeinen, joka tänään käveli tuosta portista ulos viimeisen kerran.

Eikä paljoa lohduta tulevakaan, pitäisi nimittäin hoitaa ainakin seuraavat asiat: osoitteen muutos, passin tai henkilöllisyystodistuksen hankkiminen, osakuntaan kirjautuminen, ilmoittautuminen opiskelijaksi, bussikortin uusiminen, kursseille ilmoittautuminen, autokoulussa käynti, (taas) uusien kavereiden löytäminen, opiskelijakortin uusiminen ja ties mitä muuta. Ja kaikki tämä ah niin ihanassa (ei) Helsingissä. Ja kun kaikki pitää tehdä tietyssä epäloogisessa järjestyksessään, niin ravaamista ja odottamista tulee varmasti vaikka millä mitalla (enemmän kuin viimeisen puolen vuoden aikana).

Mutta älkäämme suotta vaipuko epätoivoon, olenhan nyt käyny kaiken ja kattavan asepalvuksen, ja kenttäkelpoisuuteni on kuulemma hyvä, joten kaikesta tästä pitäisi selvitä. Mieltä rauhoittamaan esittelen teille nyt yhden runon, joka pulpahti päästäni eräänä aamuyönä.

Minuutista puolet

hajoon
mut en hajoo
syön sienen
se maistuu
mutta ei maistu
lennän
mutta en lennä
syön lennon
se maistuu sieneltä

Hyvää vuotta ja tulevaa, toivottavasti näemme vielä.

Akregator

Monta tuntia päivässä meneekin tämän ohjelman käyttöön (planet kde, gentoo, pvl). Olenkin kasvattanut siihen viha-riippuvuus-suhteen. Sillä nimittäin oli tapana korruptoida koko tietokantansa koneen kaatuessa (mitä vastaava tilanne tapahtuu kun prosessorin lämpötilamittari näyttää 100 astetta seesiusta). Tätä vikaa korjaamaan tein cron-skriptankomentosarjan, joka kopioi ”kanna” tunnin välein talteen. Puutteena tosin mainittakoon, että se kopioisi vioittuneen kannan toimivan päälle, ellen ensin kopioisi toimivaa vioittuneen päälle. Onneksi akregator ei käynnisty ollenkaan, jos se on hajoittanut kantansa, joten se on helppo muistaa. Noh… eipä ole viimeaikoina hajoitellut paikkoja.

Toisaalla, löysin asetus-dialogista mielenkiintoisen kontekstivihjeen:

Akregatorin asetus-dialogi

Suorastaan ristiriitaista. Tätä ohjelmaa en ole suomentanut, joten en voi syyttää tästä itseäni, joten otetaanpas selvää. Käännös löytyypi stablesta, kdepimin alta, ja sisältää seuraavaa:

msgid "Select this if you want to get notified when there are new articles."
msgstr ""
"Valitse tämä, jos et halua huomautuksia uusien artikkeleiden ilmestyessä."

Kääntäjälle sattunut pieni moka → korjataan. Ja aikaa kului:

  • Vian huomaaminen: ≈ vuosi
  • Vian löytäminen: ≈ minuutti
  • Vian korjaaminen: ≈ 15 sekuntia
  • Korjauksen saattaminen versionhallintaan: ≈ 6-48 tuntia (yhteyshenkilö, jolla on svn-oikeudet on hereillä, mutta humalassa)
  • Korjauksen näkyminen loppukäyttäjällä: ≈ 0/0 (riippuu seuraavasta KDE-julkaisusta)
  • Bloggaaminen: ≈ 30 minuuttia

Loppupäätelmä: Kaikki mitä voi muokata ei ole wiki.

Uusi vuosi

Uusi vuosi – uudet kujeet. Itse päätin julistaa sitä kotoistustyön parissa:

[00:00:35] CIA-7> nikerabbit * r18703 /trunk/phase3/languages/messages/MessagesLt.php:
[00:00:37] CIA-7> * (bug 8428) Update for Lithuanian language (lt)
[00:00:39] CIA-7> * Happy new year

Toisaalla otin käyttöön gnome-experimental-overlayn, kun siellä oli uusi pango. Tässä sitä odottelen uutta cairoa, josko se toisi luvattua nopeutusta firefoxiin. Lisäksi totesin kdbusin kuolleeksi, ei muutoksia kahdeksaan kuukauteen, eikä toimi uuden hald:n kanssa, joka muuten päivittyi samalla. TJ 5.