WWW-diary of Juhapekka Tolvanen:

Sunday, 09 May 2004




03:52:17 EEST @077

Talsin Ainolan Kioskille ja hain sieltä sipsejä ja solaa. Sitten menin Janne Kujalan kämpille ja siellä sitten pelasin Go-matseja. Mun rankkaushan oli 23 kyu ja on sitä kai yhä. Pelimuotona oli 20 min. pikapeli kanadalaisella byo-yomilla. En muista byo-yomin pituutta, mutta ainakin byo-yomi-kivien määrä oli 20. Tälleen niissä kävi: Ensin vastassani oli Ismo "CodeBlast" Horppu (25 kyu). Voitin sen matsin 93-58, vaikka yhdessä vaiheessa jopa unohdin painaa pelikellon nappulaa. Sitten vastassa oli Jyri "Jykke" Ahia (12 kyu), jolle hävisin 130-13. Seuraavana oli vuorossa Emilia Ojala (16 kyu), jolle hävisin 107-28. Ja lopuksi pelasin Johan Wahlströmia (11 kyu) vastaan ja hävisin sen 106-38. Pelasin siis yhden matsin jokaista paikallaollutta two-digit-kyu:ta vastaan. Kaikissa muissa matseissa paitsi ekassa pelasin valkoisilla kivillä.

Muita paikallaolijoita olivat ainakin: Einari Niskanen, Jani Virkamäki, Maunu "njorppa" Tuomainen, Kim "zsb" Helenius, Teemu Korkiakangas, Kare Jantunen ja tietenkin Janne Kujala. Pelattuani noi neljä matsiani mä välillä katselin töllöä ja jossain välissä irkkasin aika pitkän aikaa Jannen läppärillä. Väki väheni ja lopulta paikalla oli vain Janne, Johan ja mä. Sitten saimme idiksen, alamme katsoa animesarjaa nimeltä Hikaru no Go. Vähänkö oltiinkin koukussa, kun vähän joka jakso päättyi johonkin jännään kohtaan ja oli pakko sitten katsoa seuraavakin jakso, jotta sai selville, miten tarina jatkui. Onneksi tuli joku jakso joka ei päättynyt liian jännään paikkaan joten päätimme lopettaa katselun siihen. Jotain 5-10 jaksoa me katsoimme. Johan lähti veks ja jonkin ajan päästä myös minä. Oon jo jotain tunnin parin verran ollut kotona.





06:37:16 EEST @192

Meenpä nukq.





15:03:32 EEST @543

Hereillä taas.





18:37:49 EEST @692

Heitinpäs wildeast-koneelta mäkeen mun ircII:hin ja TinyIrcrc:hen perustuvan virityksen, joka pitää mun nickkiä varattuna ja salasanan saatuaan lopettaa nickin pitämisen siksi aikaa, että kotikoneessani pyörivä irssi saa nickin haltuun. Tossa muutama päivä sitten irkkiin tullessa huomasin, että se ircII oli sammunut tai kaatunut, mutta yks irssi mulla oli yhä pystyssä. Kaiketi syy oli splitin jälkeinen nick-kollisio. irssi ei reagoi sammumalla saatikka kaatumalla tollaisiin. Se vaan koittaa saada uuden yhteyden irc-serverille niin monta kertaa kunnes pääsee sisään ja jos pääasiallinen nick on varattuna, niin sitten se tajuaa käyttää tarvittaessa toissijaista nickkiä. Siispä tutkimaan, että miten irssi:iin saisi samantapaisen virityksen. Hyvin näköjään onnistui.

Tosi kivaa päästä eroon ircII:stä totaalisesti: ircII:n käyttäminen ja varsinkin puolusteleminen ja suositteleminen on selvä sendmail-tcsh-syndrooman oire. Sendmail-tcsh-syndroomahan on sitä, kun kaikenlaiset aikansa eläneet, edelleenkehityskelvottomat ja muutenkin paskat ohjelmat eivät lähde kulumallakaan, vaikka niille on jo ajat sitten tehty elegantimpia ja tietoturvallisempia korvaavia ohjelmistoja, koskapa kaikenlaiset eltaantuneet ja tapoihinsa juuttuneet vanhat käävät yhä antavat niille vanhoille ohjelmille tekohengitystä ja yrittävät puolustella niitä ja suositella niitä uusille Unix-käyttäjien sukupolville.

Ai, että miksikö ircII kuuluu sendmail-tcsh-syndrooman piiriin? Sehän on hirveää spagettikoodia koko softa! Ekan kerran kuulin niin Ilpo "Ashitaka" Ruotsalaiselta. Myöhemmin ainaskin Hazor ja Bisqwit ovat myöntäneet, että se on spagettikoodia. Jos itse osaat tarpeeksi hyvin C-ohjelmointia, voit tutkia sitä spagettisuutta itsekin. Sorsat käteen vaan. Muussa tapauksessa täytyy pyytää jotakuta C-ohjelmointitaitoista tutkimaan sitä ja kertomaan mielipiteensä. Itse kyllä luotan Ashitakan, Hazorin ja Bisqwitin sanaan.

Mutta aivankuin tässä ei olisi vielä tarpeeksi, jotkut liimanhaistelijat ovat kyhänneet sen ircII:n spagettikoodin pohjalta uusia irc-klienttejä, ainaskin sellaisia kuin BitchX ja EPIC ja muistaakseni myös Scrollz (sp) perustuu siihen. Äly hoi! Entistäkin kamalampaa spagettia luvassa ja sen myötä bugialttiutta. irssi on sen sijaan koodattu täysin puhtaalta pöydältä. Ja sen tekijä Timo "Cras" Sirainen vaikuttaa kyllä tosi pätevältä koodarilta, joka on todella kiinnostunut tietoturvallisesta ohjelmoinnista ja myös osaa ohjelmoida niin, ettei tietoturvabugeja kovin kauheasti pääse koodiin pujahtamaan. Se jätkä myös tykkää tehdä tietokoneohjemien lähdekoodin tietoturvallisuuden auditointia.

ircII:ssä (ja sen skriptissä nimeltä TinyIrcrc) on lisäksi kasa kaikenlaisia pikkuvikoja, joita kaikkia ei jaksa muistaa just nyt, mutta joihin palaa käämit, aina kun sitä olosuhteiden pakosta joutuu käyttämään. Toi em. tapa reagoida nick-collisioihin on tietysti eräs. Esim. ircII:n ja TinyIrcrc:n yhdistelmässä on jonkinlaiset timestampit saatavilla riveille, mutta se oli tosi pitkään sellainen, ettei niitä näkynyt läheskään joka riville ja Hazor korjaili niistä vain osan. En tiedä, toimiiko ne vieläkään kunnolla. irssi:ssä ne sen sijaan pelitti tuosta vaan, kun ne kytki päälle ja ennenkuin ensimmäistäkään Perl-skriptiä olin siihen ladannut. Ja ne saa konffattua just eikä melkein mieleisekseen. Muutenkin ircII:ssä pitää kirjoittaa kasa ircII-skriptiä, jos tahtoo saada jotain ominaisuuksia, joita irssi:ssä on jo ilman mitään skriptejä. Toinen aika inha piirre ircII:n ja TinyIrcrc:n yhdistelmässä oli ns. pubkey eli ircnickin täydennys public-riveillä. Esim. irssi:ssä voi tehdä näin: "nickin1alku<TAB> Minä näin, kun nickin2alku<TAB> pussasi nickin3alku<TAB>". Mutta jos TinyIrcrc:tä käyttäessä painat public-rivien täydennykseen bindattua näppäintä keskellä riviä, niin se, perkele, putsaa vaan koko rivin tyhjäksi! Aaaaargh! ircII:ssä itsessään vituttaa myös tällainen: Jos muutat terminaali-ikkunan kokoa, niin rivien lisätyt rivinvaihdot jäävät entisille paikoilleen ja rivinvaihdot ovat missä sattuu. irssi sen sijaan rivittää kaikki rivit uusiksi tuollaisessa tilanteessa. Joskus olen ircII:ssä törmännyt tällaiseen: Jos vahingossa floodaa ison kasan tekstiä irkkiin, niin lentää koko IRC-serveriltä pihalle ja muille näkyy quit-reasonina "excess flood". Kiitti vitusti! Mutta irssi antaakin tämäntapaisen ilmon: "Olet aikeissa pasteta X riviä tekstiä. Oletko aivan varma? Paina se-ja-se peruaksei. Paina tämä-ja-tuo päästääksesi ne rivit liikkeelle." irssi sitten niin pyydettäessä lähettää ne rivit sellaista vauhtia, ettei excess flood:ia tapahdu.

Muutenkin ircII on ihan ankea irssi:in verrattuna. irssi:ssähän saa esim. statusbariin näkymään, että missä päällekkäisissä ikknunoissa on aktiviteettia ja niitten ikkunoitten numeroitten väreillä ja boldauksilla sitten ilmaistaan sitä, miten tärkeää aktiviteettia siellä on. Esim. jos jollain kanavalla joku mainitsee mun nickin tai nimen tai jotain muuta highlighttaamisen arvoista, niin mulla sen kanavan ikkunan numero näkyy purppuranvärisenä ja boldattuna. Muutenkin erilaisilla ANSI-väreillä siinä voi ilmaista ihan mitä lystää ja sillä parantaa luettavuutta. ircII:ssä ei myöskään taida saada ilman hillitöntä ircII-skriptien kyhäämistä aikaiseksi sitä, että automaattisesti logattaisiin ihan kaikki silleen, että erilaiset rivit päätyisivät eri tiedostoihin ja hakemistoihin. Sitäpaitsi irssi:ssä voi konffata esim. silleen, että tietyn irc-verkon ja tietyn vuoden logit menevät tiettyyn hakemistoon ja siellä hakemistossa jokaisen kanavan ja jokaisen messuilijan logit menevät omaan tiedostoonsa. Ja tiedostonimessä näkyy tietenkin myös se, miltä päivältä se logi on. Ja jos haluaisin, voisin myös säätää esim. niin, että tietyn kuukauden logit menevät tiettyyn hakemistoon. Ja niitä hakemistoja irssi sitten luo tietenkin lennossa eikä mun tarvii niitä käsin tehdä. Ja tähänkään ei vielä tarvittu ensimmäistäkään erillistä Perl-skriptiä.

Mutta sitten Perl-skripteillä saakin irssi:in vaikka sun mitä hienoa lisäominaisuutta. Se toki vähän arveluttaa mua, kun irssi käyttää skriptikielenään nimenomaan Perli:iä, joka ei ole niin elegantti kieli kuin vaikka Python. En kyllä tiedä, miten paljoa se haittaa, koska ei ne skriptit loppujenlopuksi ole kauhean pitkiä. Sensijaan siitä olen kyllä kuullut ihan riittämiin kauhutarinoita, miten hankalaa isompia Perl-ohjelmia on ylläpitää, kun se syntaksi on niin typerän epäluettavaa, tyyliin: "tutkieassani, mitä tietty rivi Perl-koodissa tekee, kerkiän jo unohtaa, mitä edellinen rivi teki." Ja sitäkin jengi valittaa, että jos jonkin Perl-ohjelman tehtyään ei vilkaisekaan siihen koodiin muutamaan päivään, niin seuraavalla kerralla sitä ohjelmaa parannellessä on ihan tuska ahterissa ottaa uudestaan selvää, että mitä se ohjelma teki ja miten se tarkalleen toimii. Mutta kaikkein eniten Pythonin paremmuudesta Perliin nähden on mut saanut vakuuttuneeksi tämä Eric S. Raymondin artikkeli:

Linux Journal: Issue 73: Why Python?

Mutta ei toi kyllä kauheesti näytä saavan päreentuiketta aikaiseksi paatuneitten Perl-hakkereitten kupolissa. He usein koittavat selitellä, että kyllä Perlilläkin saa luettavaa ja ylläpidettävää koodia, kunhan ohjelmoitsijalla on tarpeeksi itsekuria ja yrittävät vähätellä sitä, miten paljon ohjelmointikieli itsessään vaikuttaa siihen, miten luettava ja ylläpidettävä lopullisesta ohjelmasta sitten tulee. Ja Perl-hakkerit usein koittavat selitellä, että Python on ihan kauhea kieli, kun siinä whitespace-merkillä on merkitystä. Mutta jos mä itse joskus jaksan uusia ohjelmointikieliä opetella, niin kyllä mä mieluummin opettelisin Pythonin ennen Perliä, jos vaan olosuhteet sallivat.





Edellinen / Previous

Seuraava / Next

Juhapekka Tolvanen