Kuulen käytävältä kiroilua. Ohjelma ei käänny. Hetki kuluu ja virheen syy selviää. Osoitin on osoittanut jo vapautettuun objektiin. Naapurini tekevät C++ -kielellä virtuaalimaailmaa, jossa ihminen voi vuorovaikuttaa maailman hahmojen kanssa. Naapurini törmäävät usein vaikeasti selviäviin ongelmiin. He saavat kääntäjältä kummallisia virheilmoituksia. Valitettavasti naapurieni ongelmat ovat osittain itse aiheutettuja. He käyttävät väärää ohjelmointikieltä. Vaikka C++ on suosittu kieli, ei se kuitenkaan ole hyvä oliokieli. Jopa alan teollisuus on luopunut C++:n käytöstä lähes kaikkialla missä mahdollista. Nykyisin jo pelitkin käyttävät sisäisesti skripti- ja kuvauskieliä maailmojen ja maailmojen objektien välisten interaktioiden kuvaamiseen. Vain kaikkein suorituskykykriittiset osat kannattaa koodata C++:lla tai C:llä. Naapurini aikovat ilmeisesti koodata koko projektin C++:lla vaikka tiukkoja suorituskykyvaatimuksia ei olekkaan.
Mielestäni tärkein yksittäinen tekiä, millä ohjelmistotyön tuottavuuteen voidaan vaikuttaa on käytetyt ohjelmointikielet. Menetelmillä ja käytetyillä työkaluilla kuten kääntäjillä, debuggereilla, profiloijilla, IDE:llä ja editoreilla on kaikilla tietenkin asiaan vaikutusta. Tuottavuuden kannalta kielen valinta on tärkein tekijä. Kielellä on keskeisin merkitys, koska ohjelmoija kuvaa sillä ongelman ratkaisun (tai ongelman).
Hyvin laadittu kieli on ongelmakentällään ilmaisuvoimaisin tapa kuvata ratkaisu tai ongelma. Tämän vuoksi en ole kovinkaan innokas kun näen työkaluja joissa voi ohjelmoida graafisesti. Yleensä graafisella työkalululla ohjelmointi on merkittävästi hitaampaa kuin saman asian sanominen ilmaisuvoimaisella kielellä. Tästä minulla on omakohtaistakin kokemusta. Kun olin vielä teollisuudessa ja teimme yksinkertaista logiikkaa graafisella työkalulla televerkon hallintaan, oli graafinen työkalu jopa niin hidas, että kokeneet logiikan luojat loivat mielummin saman logiikan suoraan kyseisen työkalun XML-pohjaisella kielellä, vaikka kieli ei oltu suunniteltu käsin ohjelmoitavaksi. Jollain tavallisella kielellä kuten Java saman logiikan olisi tehnyt murto-osassa siitä ajasta, mitä "helpolla" graafisella työkalulla kulutimme asiaan aikaa. Suunnittelutyötä UML-kaaviot helpottavat, koska ne piirretään abstraktimmiksi kuin syntyvä ohjelma. Jos kaaviot piirrettäisiin samalla abstraktiotasolla kuin itse ohjelma, kaavion tekemisessä olisi enempi vaivaa kuin saman asian tekeminen ohjelmointikielellä.
Kun kieli ei osaa jotain hyödyllistä asiaa päädyytään helposti huonoihin ratkaisuihin. Tarvitaan joko ylimääräistä työkalutukea, generoitua koodia, kirjastoja tai kieltä käytetään jonkin konvention mukaan. Nämä ratkaisut saattavat johtaa vaikeasti hallittavaan yhdistelmään koodia, kuvaksia ja riippuvuuksia. Ratkaisut lisäävät virhealttiutta erityisesti ohjelman kehittyessä. Hajautetussa ohjelmistokehityksessä ongelmat vielä korostuvat. Corbaa, RMI:tä, tai jotain muuta middlewarea käyttäneet ymmärtänevät mitä tarkoitan. Middleware-arkkitehtuureista saadaan vasta sitten helppokäyttöisiä ja vähemmän virhealttiita kun kielet tukevat niitä.
Teollisuudessa usein unohdetaan käytetyn kielen merkitys ja päädytään käyttämään sitä kieltä, jota on ennenkin käytetty. Kieltä vaihdetaan vasta kun on pakko. Akateemisessa maailmassa taas historiallisesti on jokaista vastaan tulevaa ongelmaa pyritty ratkaisemaan uudella kielellä. Kieli kun on mukava väitöskirjan aihe. Akateemisessakin maailmassa ollaan hieman päästy kielivillityksestä eteenpäin ja välillä tuntuu, että ohjelmointikielen merkitystä on vähän jopa unohdettu.
Eli seuraavan kerran kun aloitatte uutta projektia, miettikää millä kielellä se oikeasti olisi järkevintä toteuttaa! Ja pitäkää silmänne auki, aina silloin tällöin keksitään hyvä uusi kieli! (Uusista kielistä yksi suosikeistani on D, mutta siitä lisää jokin toinen kerta)
31.7.2007
Ohjelmointikielistä
Lähettänyt
veskuh
kello
22:35
0
kommenttia
Tabletti meni rikki
Lauantaina istahdin junaan kohti pohjoista. Kaivoin tabletin repusta esiin, kuten melkein aina junassa, ja avasin tekstinkäsittelyohjelman. Kerkesin kirjoittaa muutaman sanan ennen kuin käyttöliittymä hyytyi. Akku oli täynnä. Muita ohjelmia ei ollut ajossa. Laite ei reagoinut mihinkään. Akku irti ja buuttaus. Kaikki toimi jälleen normaalisti, mutta vain pari minuuttia kunnes laite taas jämähti. Kokeilin käyttää eri ohjelmia. Kokeilin olla käynnistämättä ohjelmia. Aina sama tulos: laite hyytyi. Muutaman uudelleen yrityksen jälkeen luovutin. Laite on rikki.
Tablettia olen käyttänyt eräänlaisena läppärin korvikkeena. Olen laitteeseen ollut todella tyytyväinen, vaikkei se tietenkään täydellinen ole. Prosessoritehoa ja muistia saisi olla enemmän ja ohjelmistoalusta hieman kypsempi. Tabletti on aina mukana kun matkustan. Pääasiassa netissä surffailua, sähköpostin lukua ja pikaisia muistiinpanoja sillä on tullut tehtyä. MaemoMapperia ja bluetooth gps mokkulaa on myös tullut käytettyä navigointiin (kuten kuvassa). MaemoMapper muuten on ilmaiseksi karttasoftaksi varsin toimiva, vaikkei tietenkään kaupallisten veroinen.
Voi olla, että laitteen asetuksissa on vikaa tai että sisäinen flash muisti on hieman sekaisin. Lataan akun täyteen ja flashään tuoreimman ohjelmiston laitteeseen tänään illalla. Toivottavasti kapistus vielä tokenee. Tabletti taisi seota viikko sitten, kun se unohtui autoon helteisenä päivänä. Auto oli paahteessa koko päivän. Auton sisälämpötila oli sen mukainen.
Laitteen rikkoutuminen tietenkin tarjoaisi erinomaisen tekosyyn ostaa laitteen uudempi versio N800. Fiksumpaa olisi ehkä odotella iPhonen saapumista Suomeen. Olen melko varma, että iPhonen kuitenkin vielä jotain päivänä ostan.
Lähettänyt
veskuh
kello
10:07
1 kommenttia
30.7.2007
Autotalli
Autohallipaikkani vuokraisäntä soitti. Irtisanoi vuokrasopimuksen ensi kuun loppuun. Vuokraisäntä aikoo myydä paikan. Tarjosi paikkaa minulle. Hintaa olisi 12 000€.
En tunne hintatasoa. En tiedä onko hinta kohtuullinen vai törkeä. En nopealla googlettamisella löytänyt vertailukohtaa. Tallipaikka on pieni. Auto mahtuu, eikä muuta. Käteistilanne taas on reissun takia huono eli joutuisin ottamaan velkaa lähes kokosummalle, jotta reissuun tarvittava liikkumavara säilyy tilillä. Ajankohta on reissun takia vaikea. Täytyy käydä pankissa ottamassa selvää mikä on rahan hinta.
Sen tiedän, että maksamani vuokra on ollut kallis, miltei kohtuuton. Paikassa on parasta se, että se on suoraan rakennukseni alakerrassa ja sen vuoksi olen vuokraa sietänyt. Jos tilanne olisi tullut alkukesästä tai reissun jälkeen luulen, että olisin tarttunut mahdollisuuteen ostaa paikka. Nyt tuntuu, että voisin luopua paikasta.
Tuntuu, että kyseessä on taas iso valinta. Ostamalla paikan sitoudun yhä voimakkaammin asuinpaikkaani ja työhöni yliopistolla. Toisaalta, yliopiston sitoutuminen minuun ei ole yhtä vankka. Työsuhde on voimassa määräaikaisella sopimuksella vuoden vaihteeseen. Jatkosta ei ole tietoa, vaikka professorini on ilmeisesti työhöni tyytyväinen. Sinänsä olen asuntooni tyytyväinen ja seutu on tuttua. Seutu vaan on alkanut tympäsemään. Täällä asumisen piti olla väliaikaista. Ajattelin asua täällä kunnes minulla on varaa hyvään kämppään keskustassa. Haave hienosta kämpästä, hyvällä paikkaa keskustassa, alkaa vaan tuntua yhä kaukaisemmalta.
Lähettänyt
veskuh
kello
20:02
0
kommenttia
Digiboxi vanhuksille
Vierailin viikonloppuna isovanhempieni luona. Heille oli hankittu digiboxi. Topfieldin perusmalli on varmasti hyvä digiboxi, mutta ei oikein sopiva isovanhemmilleni. Television käyttö oli heidän näkökulmastaan muuttunut vaikeammaksi, miltei mahdottomaksi.
Isoin ongelma on kanavan vaihto. Ennen kanava vaihtui välittömästi kun kaukosäätimestä painoi numeroa. Vaihdon jälkeen ruudulla oli isolla tekstillä kanavan numero. Nyt kun digiboksin kaukosäätimestä painaa numeroa, ei kanava vaihdukkaan välittömästi. Boksi odottaa muutaman sekunnin ennen kuin vaihtaa kanavaa. Tämä siksi, että kanavassa voi olla useita numeroita. Vanha ihminen, joka ei näe tai ymmärrä tilannetta luulee, että laite ei ottanut valintaa ja painaa nappia uudelleen. Näin halutun ykköskanavan sijaan saa ruudulle kanavan 11 tai jopa 111. Kanavan vaihdon jälkeen ruudulle tulee pelkän numeron sijaan inforuutu jossa on paljon tietoa, kuten kanavan nimi, menossa oleva ohjelma, yms. Isovanhemmat eivät tiedon joukosta kykyne erottamaan mikä kanava tuli valittua. Pelkkä numero olisi ollut selkeämpi ratkaisu. Kaukosäätimeen oli tullut 10 uutta nappia, joten tarpeellisten nappien löytäminen on vaikeampaa. Sammuttamiset ja käynnistämiset vanhuksilta sujuivat, mutta kanavanvaihto ei. Yritin opettaa heidät käyttämään kanavan vaihtoa + ja - napeilla numeroiden sijaan, mutta saa nähdä tarttuiko oppi.
Isovanhemmat ovat toki iäkkäitä (84 ja 90) ja tietenkin haluttomia opettelemaan uutta. Heille olisi kuitenkin sopinut digiboxi, joka toimisi kuten heidän muutama vuotta vanha televisionsa. Onkohan olemassa boxia, jossa ei olisi turhia toimintoja sotkemassa ja joka olisi vanhuksille sopiva?
Lähettänyt
veskuh
kello
12:59
0
kommenttia
26.7.2007
Maakoodeista
Olen ollut innostunut teräväpiirtotelevisiosta ja teräväpiirtoformaateista siitä lähtien kun helmikuussa ostin videotykin. Kun kuvaruudulla on kokoa 83 tuumaa, ero tavallisen DVD ja uuden HD tarkkuuden välillä on selvä. Olenkin pähkäillyt kannattaisiko ostaa Bluray- vai HD-DVD -toistin. Bluray-puolella edullisin ratkaisu olisi ostaa Playstation 3. Hintaa taitaa olla Suomessa yli 600€. HD-DVD toistimista halvin olisi Toshiban HD-E1, jonka voisi tilata suomenkielisestä verkkokaupasta halvimmillaan hintaan 350€.
Lähinnä hintaeron vuoksi olinkin jo päätymässä ostamaan HD-DVD toistinta. Samalle reissulle jenkkeihin tuleva työkaveri kuitenkin keksi hyvältä kuulostavan ajatuksen. Jenkeissä PS3 maksaa vain 499 dollaria. Eli noin 350€ (plus alv). Kerkesinkin jo innostua ajatuksesta, kunnes otin selvää asioista. Vaikka PS3-pelit ovatkin maakoodittomia, niin Bluray-standardi määrittää kolme eri maakoodia. Amerikka ja Eurooppa käyttävät eri maakoodia, eli Amerikasta ostettu levy ei pyöri euroasemassa ja päinvastoin. Kaiki studiot eivät määritä elokuvilleen maakoodia, mutta jotkut, kuten Disney, sitä käyttävät. Muutkin studiot saattavat tulevaisuudessa ottaa maakoodit käyttöön. Koska pääkäyttöni olisi elokuvien katselu, eikä pelaaminen, tämä torpedoi ajatuksen ostaa PS3 Amerikasta. HD-DVD ei tällä hetkellä tue maakoodeja, eli luultavasti päädyn siihen. Aion ostaa toistimen vasta palattuani takaisin Suomeen. Ihan varmuuden vuoksi.
Ymmärrän toki maakoodien logiikan studioiden kannalta. Studiot voivat julkaista levyt eri aikaan eri mantereilla ja hinnoitella tuotteet kunkin alueen ostovoiman mukaan. Maakoodit ovat kuitenkin kuluttajan kannalta pelkästään haitallinen ominaisuus. Maakoodit estävät elokuvien ja mediatoistimien ostamisen eri mantereelta. Ison Hollywood-elokuvan kohdalla tämä ei tietenkään ole iso ongelma. Elokuva voi Suomessa maksaa vähän enemmän ja tulla saataville hieman myöhemmin kuin Jenkeissä. Pienempien julkaisujen kohdalla tilanne on huonompi. Esim. jonkin SciFi-sarjan kausiboxi saattaa olla ainoastaan saatavilla jenkeissä. Luonnollisesti maakoodit heikentävät myös kilpailua ja auttavat pitämään hinnat pienillä markkinoilla korkeina.
DVD:n osalta maakooditilanne on helpottunut ajan myötä. Maakoodivapaita asemia on saatavilla. DVD-levyn voi tarvittaessa helposti ripata tietokoneelle. Toivottavasti maakoodivapaus voittaisi myös teräväpiirtoformaateissa. Hmm.. Jos homma ei muuten tunnu onnistuvan niin sitten EU voisi yrittää puuttua asiaan. Saataisiin taas yksi pieni parannus!
Lähettänyt
veskuh
kello
22:44
0
kommenttia
Reissun valmistelua
Viikon päästä pitäisi lentää jenkkeihin. Muutama pikkujuttu on vielä hoitamatta: lennot, majoitus, reissun pituuden varmistus ja läppärin hommaaminen. No hyvinhän tässä on vielä aikaa. Majoitus on suurin ongelma. Majoitus pitäisi tietenkin olla edullinen, hyvältä paikkaa, ja ruuanlaitto pitää olla mahdollista. Ruuanlaitto on tärkeää, koska reissulle tulee pituutta kuusi viikkoa ja jatkuva ravintolasyöminen käy kukkarolle. Niin ja suurena burgerien, pizzojen ja pihvien ystävänä tulisin varmaan takaisin ainakin 20kg painavampana. Helpompaa reissaminen on yksityisellä puolella. Olisi voinut mennä vaan kunnolliseen hotelliin kustannuksista välittämättä.
Viisumi on sentään kunnossa.
Lähettänyt
veskuh
kello
08:15
1 kommenttia
25.7.2007
Linuxin skeduloinnista
Luin slashdotissakin mainitun Con Kolivaksen haastattelun apcmag.com:ssa. Con Kolivas on yksi Linux-kernelin kehittäjistä ja hän on keskittynyt Linuxin suorituskyvyn parantamiseen tavallisessa työpöytäkäytössä. Kolivas on päättänyt lopettaa osallistumisensa kernelin kehittämiseen ja artikkeli selittää miksi.
Kolivas julkaisi ensimmäisen patchinsä Linuxiin vuonna 2002, koska tuolloin muiden kernelin kehittäjien pääkiinnostuksen kohteena oli Linuxin suorituskyky palvelinkäytössä. Palvelinkäytön ja työpöytäkäytön tarpeet ovat hieman erilaisia. Palvelinkäytössä on tärkeää, että ydin ei kuluta paljoa suoritinaikaa ja se että, suoritinaikaa ei hukata kontekstinvaihtoihin eli prosesseja ei jatkuvasti vaihdella. Palvelinkäytössä on hyväksyttävää, että yksittäinen prosessi voi suorittaa pitkänkin ajan kerralla. Interaktiivisessa käytössä on tärkeää, että prosessi kykenee vastaamaan käyttäjän toimintoihin nopeasti. Tämä vaatii, että skedulointia suoritettaisiin usein ja myös, että prosesessaja vaihdettaan usein. Mukavaa olisi myös, jos viive syötteen ja vasteen välillä ei vaihtelisi paljoa. Lisäksi työpöytäkäytössä on joitain lähinnä median toistoon liittyviä reaaliaikavaatimuksia. Nykykoneilla MP3-musiikin soittaminen ei vie paljoa tehoa. MP3-soittoa suorittavaa prosessia tulee skeduloida säännöllisin väliajoin ajoon, jotta soitto ei pätkisi. Jos ajoon ottojen välillä on liian pitkä viive niin musiikki pätkii. Kolivas työskenteli lähinnä näiden asioiden parissa ja mm. paransi interaktiivisten ohjelmien tukea skedulerissa. Jotkin Kolivaksen parannukset päätyivät viralliseen kerneliin, mutta kaikki eivät.
Kolivas päätyi kehittämään kokonaan uuden skedulerin, joka sopisi paremmin työpöytäkäyttöön. Uudessa skedulerissa oli laajennusrajapinta, jonka avulla uuden skedulointialgoritmin voi helposti lisätä tai käynnistäessä vaihtaa. Näin skedulointialgoritmia olisi voinut vaihtaa sen mukaan haluaako käyttää järjestelmää palvelin- vai työpöytäkäyttöön. Kolivaksen skeduleria ei kuitenkaan kelpuutettu viralliseen kerneliin. Ingo Molnar kehitti oman skedulerin, jossa oli toteutettu samoja ideoita kuin Kolivaksen skedulerissa. Tämä vaikutti Kolivaksen lopettamispäätökseen. Lopettamiseen oli tietenkin myös muitakin syitä.
Kolvaksen mielestä palvelinkäytön vaatimukset ovat usein ajaneet työpöytäkäytön ohi. Tämä on ymmärrettävää. Kernelin kehittäjistä moni on isojen yritysten palveluksessa. Isoissa yrityksissä tärkeä käyttötarkoitus Linuxille on palvelimet. Tilanne saattaa olla parantumassa. Vaikka Linux ei tavallisen tietokoneen työpöytäkäytössä vielä ole lyönyt laajalti läpi, on se viihde-elektroniikassa ja kännyköissä lyömässä läpi. Nokia käyttää Linuxia Internet Tableteissaan, ja mm. Motorola kännyköissä. Monessa kodin viihde-elektroniikka tuotteessa on Linux-kernel. Tällaisia tuotteita ovat bluray -soittimet, HD-DVD -soittimet, divx -toistimet ja jotkin nauhoittavat digiboxit. Näissä suorituskykyvaatimukset ovat hyvin samanlaisia kuin työpöytäkäytössä. Toivottavati isot viihde-elektroniikkaa kehittävät yritykset panostavat kernelin kehitykseen ja Linuxin työpöytäkäyttäjätkin hyötyisivät näiden työn hedelmistä.
Lähettänyt
veskuh
kello
10:08
0
kommenttia