(nettipäiväkirja 12.02.2014) Keksin loistavan ohjelmistosuunnitteluperiaatteen! (...)
!!! Helmikuu (...)
Huoh. Olemme vähän myöhässä [hääjärjestelyt]-sivun meta-aikataulusta, vaikka siinä on vain muutama asia kuussa. Vapaat hetket järjestellä jotakin ovat vain niin harvassa... mutta onhan tässä paljon saatu aikaankin. (...)
Hiihtolomasta selvittiin. Neljäs lapseni kertoi, miten [metsähaltiat] elävät. (...)
Pidin [Lambda ry]:n tapaamisessa alustuksen äänestysjärjestelmistä: (...)
Tämä artikkeli on varsin mielenkiintoinen: http://www.rangevoting.org/HeitzigUtil.html (...)
Lainasin mielenkiinnosta kirjan ''Fair division: from cake-cutting to dispute resolution''. Se on hyvin hauskaa luettavaa, vaikkakin sen peliteoreettinen analyysi on silloin tällöin aika puolivillaista. Mutta olen tullut kasvavassa määrin tietoiseksi kahdesta hankaluudesta reilussa tasajaossa, jotka molemmat liittyvät siihen, miten eri ihmiset antavat eri arvon samoille asioille: (...)
Muutamia aiheita, joista pitäisi kirjoittaa: (...)
Pidin tällä kertaa "monikulmioista tähtiä" -oppitunnin. Idis on siinä, että kun osataan esim. viisi-, seitsen- tai kahdeksankulmio, tehdäänkin se niin, että kerrotaan kääntymismäärä kahdella tai kolmella. Siis tämä: (...)
!!! Helmikuu (...)
Lisäsimme tänne http://twitter.com/faijagooglaa :n iloksi sivun siitä, [miten huijata tinan valamisessa]. (...)
Mainitaanpa tämäkin täällä, se on sen verran hyvä kirjoitus: (...)
Taas edistymisraportti lasten opettamisesta. (...)
Esikoiseni teki jotain tosi söpöä: http://pupunu.deviantart.com/art/Natrium-and-Helium-427541423 (...)
Muistui tässä taas mieleen OLPC-projekti ja erityisesti sen käyttöliittymä Sugar (http://en.wikipedia.org/wiki/Sugar_%28desktop_environment%29). Tämä on oikeastaan ainoa yleiskäyttöliittymä, jossa en ole huomannut yhtään suunnitteluvirhettä. Tietysti nykyiset Mac-, Win8- ja Maemo-käyttöliittymät ovat idealtaan vähän samanlaisia zoom-käyttöliittymiä, mutta niissä on paljon ylimääräistä tauhkaa. Sugar taas yhdistää kaiken siistiksi kokonaisuudeksi, jossa jokainen ohjelma on jaettavissa ystäville (ja tiedostot ovat vain ohjelmien tiloja). (...)
Tänään oli taas pari oppituntia Logon merkeissä. Viisivuotiaalla oli uusi sotku-kehrä-vipperä-tunti, mutta lapsi ei osannut kovin omatoimisesti ehdottaa kokeiltavia ohjelmanpätkiä, joten se ei ollut kovin palkitsevaa. Sen sijaan hän halusi kokeilla ihan omatoimisesti piirtämistä, ja sai aikaan: (...)
(Varoitus, tämä on aika pitkälle erikoistuneeseen alaan liittyvä kirjoitus.) Selvittelen, mitä eri tahot ovat sanoneet muutoskalkyylista ("patch theory" tmv.), jotta minulla olisi eheä ja [tarkka] kuva siitä, mitä esim. [Darcs]-versiohallintaohjelmistossa oleva ''patch commutation'' oikeastaan tarkoittaa. Muutos on tietyssä tilanteessa ("kontekstissa") tehty vaikutus, jonka vuoksi tilanne muuttuu toiseksi. (...)
Jee, hääsivuistakin alkaa olla alustava versio valmis. Tehtiin sinne tällainen hyödyllinen testi: http://hennajapanu.sange.fi/puuhaa.php (...)
Hankin julkisen nimen kotikoneelle lasten minecraft-servereitä varten. Viritys on siis sellainen, että nat-koneella on yksi portti auki, josta ssh:lla tehdään reverse-tunneli kotiverkon sille koneelle, jossa sattuu olemaan minecraft-servu päällä. Lapsilla on skriptit näiden tunneleiden pystyttämiseen, mutta nyt nat-koneella on sitten julkinen nimikin. (...)
Pidin taas muutamia oppitunteja lapsille. Mukavaa, kun on joululoma, niin ehtii tekemään tällaista. Yksityistunnit ovat lisäksi käteviä sikäli, että muut lapset saavat puuhailla mieleisiään asioita, kun yhdellä on oppitunti, eikä kukaan ylikuormitu (paitsi ehkä minä?). (...)
!!! Helmikuu (...)
Minun on pitänyt jonkin aikaa kertoa, miten lasten tietokoneoppitunnit etenevät. Tällä kertaa olemme työskennelleet aika paljon Logo-kielellä (minkä ehkä olette voineet arvata muista päiväkirjamerkinnöistä). (...)
Myös lasten palvelinprojekti etenee, vaikkakin hitaasti. Asensimme 11-vuotiaan kanssa FTB-palvelimen (modattu Minecraft-palvelin) tälle lasten omalle palvelimelle. Siinä tuli vähän kertausta normaaleista tiedostonhallintakomennoista (mkdir, ls, cd, jne.), ohjelmien asentamisesta (sudo apt-get install, myös wget ja unzip), sekä joistain ylläpitokomennoista (sudo adduser, sudo passwd, top, netstat -a | grep LISTEN, free, df --si). Asensimme screenin ja Javan. Oikeastaan ainoa varsinaisesti uusi asia oli screenin käyttö (ajetaan serveriä screenissä), muu oli kertausta. Varsinkin vi:n käytön kertaus FTB-serverin asetustiedostojen muokkaamisessa oli arvokasta. (...)
Tein pienen kirjaston ucblogolle sitä varten, että voi käyttää monta eri kilpikonnaa. Tämän päälle on tarkoitus väsätä spritekirjasto ynnä muuta pelien tekemistä helpottamaan, mutta näytän nyt tässä vaiheessa kuitenkin, millainen tämä on rakenteeltaan. (...)
[[Image megakukka.jpeg]]Tällä kertaa saatte vain muutamia kuvia ihmeteltäviksenne. Toiseksi nuorin lapseni teki erilaisia kukkia. Minä olen niistä tuo peltokukka, hän on kuukukka. (...)
Kokeilimme parantaa Qiniä (ks. [Qin-pelin peliarvostelu]) sääntömuutoksilla. Ehdimme testata kahta sääntömuutosta: (...)
Ajattelin, että Unix-komentojen käyttöä saattaisi motivoida paremmin, jos lapset saisivat oman ylläpidettävän koneen, johon otetaan yhteyttä ssh:lla ylläpitotoimia (ja muuta) varten. Voivat sitten pyörittää siellä haluamiaan palvelimia jne. (...)
Keskimmäinen lapseni teki [Joulu saapuu jokaiselle]-laulun uudelleensanoituksen. (...)
Nyt kun suomalaisten PISA-menestys matematiikassa on huonontunut, haluaisin mielelläni tietää, onko huononnus tapahtunut tulosjakauman ylä- vai alapäässä vai tasaisesti kauttaaltaan. Aiemmin nimittäin Suomi on ollut PISA-huippumaista ainoita, jossa hyvä keskimääräinen tulos perustuu nimenomaan siihen, että huonotkin osaavat kohtalaisesti. Muilla huippumailla hyvä menestys on perustunut erittäin hyvin osaavaan huippuun. (...)
Mielestäni mielenkiintoinen juttu siitä, kuinka Google suhtautuu Androidin menestykseen: (...)
Kiinnostuin tällä kertaa [monen pelaajan nim]-pelistä. Yritin kerätä aineiston siitä, miten ihmiset käytännössä pelaavat peliä. Aineisto on ihan riittämättömän kokoinen, mutta minulla on sen perusteella muutamia teorioita, miten pelissä pärjää. (...)
Ei-[nollasumma]iset pelit, varsinkin asymmetriset, todistavat erästä kummallista piirrettä ihmisten psykologiassa, nimittäin sitä, että [absoluuttinen voitontavoittelu on ihmisille vaikeaa]. (...)
Vielä lautapeliaiheista: tavallisessa menolipussa (siis Pohjois-Amerikka-menolipussa) on sellainen rakenteellinen vika, että ratojen rakentaminen pohjoiseen on suhteettoman kannattavaa: siellä on paljon pitkiä ratoja, mikä merkitsee sekä nopeampaa rakentamista (kun vuoroja kuluu vähemmän rakentamiseen) että paljon enemmän ratapisteitä. Lisäksi kaksi pelin suurimmista tavoitteista on aivan pohjoisessa. Jos nämä tavoitteet päätyvät sattumalta samalle pelaajalle, kyseinen pelaaja voittaa jotakuinkin varmasti (jos siis on kohtalaisen kokenut pelaaja). (...)
Paras kirjoittaa pieni [Qin-pelin peliarvostelu]. (...)
Näistä pitäisi kirjoittaa (saa nähdä, ehdinkö): * [mitä tarvitaan ohjelmoinnin opettamiseen lapsille] * [agenssi] * [virastojen vallankäyttö] * [Mitä tietotekniikkataitoja lapsille pitäisi opettaa?] (...)
Nettiyhteisöt tarjoavat loistavan kokeilualustan erilaisille yhteistyömalleille. Monet yhteisöistä vieläpä yrittävät saada jotain aikaan, jolloin niiden organisoitumisen ja aikaansaamisen yhteyttä voi tarkastella. (...)
Outoa, mutta jostain syystä lapsen pitäminen lähellä (esim. kantorepussa) helpottaa pissattamista. Lapsi jaksaa pidätellä pissaa paremmin, kun on lähellä. (Olen nyt havainnut tämän kahdella alle yksivuotiaalla lapsella ja vaikutus on aivan selvä.) (...)
(nettipäiväkirja 29.11.2013) Jee, sain vihdoin viimein korjatuksi äärellistilaisia automaatteja käsittelevästä kirjastostani kaikki tiedossani olleet bugit. Sikäli kuin tiedän, tämä on ainoa FSA-kirjasto, joka toteuttaa automaatin komplementin riippumatta aakkostosta. (Minulla on sitä varten syötejoukkoalgebra, joka tulee avoimia komplementtijoukkoja. Katso [miksi negaatio on ongelmallinen].) (...)
!!! Helmikuu (...)
Linkissä kokeillaan ohjelmoinnin opettamista Javalla. Se muistutti minulle (taas), miten monta satunnaisen hankalaa asiaa Javassa on. Seuraavalla kerralla käsitellään merkkijonoja, joten päätin tällä kertaa tehdä avukkeita (ettei lasten tarvitse muistaa ulkoa sellaisia rimssuja kuin ''Integer.parseInt(reader.nextLine())'': http://dy.fi/q6z (...)
Olen viime aikoina miettinyt paljon peliteoriaa, koska olen valmistellut peliteoria-aiheista tapaamista. Pelasin morsiameni kanssa kokeeksi seuraavaa peliä. [Peli] on normaalimuotoinen, eli pelaajat tekevät valintansa (A, B tai C) "yhtaikaa" eli tietämättä toistensa valintaa. Taulukko kertoo, kuinka paljon "pisteitä" kumpikin pelaaja saa. Pelissä ei ole tarkoitus saada enemmän pisteitä kuin kanssapelaaja, vaan mahdollisimman paljon pisteitä. Peli sisältää sekä yhteistyömahdollisuuksia (molempien pisteitä hyvin kartuttavia lopputuloksia) että hyökkäysmahdollisuuksia (lopputuloksia, joista tulee toiselle paljon ja toiselle vähän). (...)
Nykyään kuulee joskus puhuttavan, että ihmisille pitäisi järjestää enemmän yrittäjyyskoulutusta tai jotain, mikä auttaa heitä keksimään tapoja työllistää itsensä. Tämä on tavallaan totta, mutta minua epäilyttää, tietääkö kukaan, mitä tällaisen koulutuksen oikeasti pitäisi pitää sisällään. (...)
Olen pariin kertaan valitellut sitä, kuinka inhoan isoja työpöytäympäristöjä (KDE, Gnome, XFCE), mutta niissä on aina muutama ominaisuus, joita katson tarvitsevani. Nyt minulla on [lista työpöytäympäristöjen korvattavista ominaisuuksista]. Josko vaikka pääsisin pahoista työpöytäympäristöistä eroon? (...)
Tässä Unixin opettamisessa lapsille on käytössäni yksi hyvin, hyvin tärkeä ominaisuus, jota ilman en suoraan sanoen pystyisi opettamaan ainakaan viisivuotiaalle mitään. Se on bashin (ja monen muunkin shellin) ominaisuus, että varhempia käskyjä pystyy hakemaan ylöspäinnuolella. (...)
Olen jatkanut ''sox''-ohjelman toiminnan selvittelemistä. Se on oikeastaan ihan hyvin dokumentoitu, mutta järjettömän monimutkainen ja täynnä historiallista painolastia. Kaikilla efekteillä on argumenteilleen vähän erilainen syntaksi, ja jos jokin efekti on osoittautunut kömpelöksi käyttöliittymältään, sen tilalle on yleensä tehty uusi. Niinpä esimerkiksi kanavien vähentämiseen soveltuvia efektejä on kolme: ''channels'', ''mixer'' ja ''remix''. (Lisäksi syötetiedostot voi yhdistellä mix-metodilla, mutta se ei ole "efekti".) (...)
Olen viime aikoina omaan rauhalliseen tahtiini edistellyt lapsille Unixin käytön opettamista, ks. [nettipäiväkirja 18.10.2013], [nettipäiväkirja 27.10.2013] ja [nettipäiväkirja 01.11.2013]. Ajattelin taas kertoa, mitä olen tehnyt lasten kanssa. (...)
Otin jonkin verran selvää 3d-mallinnuksesta saadakseni aikaan haluamaani kuvitusta. Pyformex (http://www.nongnu.org/pyformex/) vaikutti sellaiselta ohjelmalta, jolla saan helposti aikaan, mitä haluan. (...)
Eilen oli vähän hämmentävä kokemus, kun mainitsin terveyskeskuslääkärissä, että nelikuukautista kuopustani pissatetaan pönttöön / lavuaariin, ja lääkäri totesi, ettei tuonikäisen aivojen fysiologia ole vielä kehittynyt siihen pisteeseen, että se onnistuisi. Sanoin, että kyllä se käytännössä siis onnistuu, mutta lääkäri ei oikein rekisteröinyt tätä. (...)
Avovaimoni kysyi, onko epäeettistä työskennellä isolle firmalle, joka laskuttaa mettä ja hunajaa asiakkailtaan. Yksityissektorilla vastaus on aika selvä: ei ole väärin pyytää isoja hintoja, eikä ole väärin laskuttaa asiakkaalta, joka suostuu maksamaan. Se, että joku maksaa tuotteesta laskutetun hinnan, on sinänsä riittävä osoitus, että ainakin jollekulle se on pyydetyn hinnan arvoinen. (...)
Törmäsin todella hauskasti otsikoituun artikkeliin The Economistissa: ''Data suggest guns do in fact kill people'' :) (...)
Pikalinkit: