maanantaina, kesäkuuta 30, 2008

sunnuntaina, kesäkuuta 29, 2008

Turussa bongattu Itä-Saksan seisoja

----
Lähetetty Sony Ericsson -matkapuhelimella

Voittaja sai kuningattaren ja koko valtakunnan

----
Lähetetty Sony Ericsson -matkapuhelimella

Turnajaiset

----
Lähetetty Sony Ericsson -matkapuhelimella

Kelttiläisiä koruja ostamassa

----
Lähetetty Sony Ericsson -matkapuhelimella

Taas syödään :)

Turussa oli jo nälkä. Heti hyökättiin aseman vieressä kiinalaiseen.

----
Lähetetty Sony Ericsson -matkapuhelimella

Puolimatkassa Karjaalla

----
Lähetetty Sony Ericsson -matkapuhelimella

Vahvistusta Turun matkaa varten

Kahvia ja muffinssia Rautatieasemalla.

----
Lähetetty Sony Ericsson -matkapuhelimella

tiistaina, kesäkuuta 24, 2008

Auto-op my IRC friends

I finally managed to make a plugin for Colloquy, the IRC client I use on the Mac. The plugin grants channel operator status to my friends when they join the channel.

My first stab at this plugin caused the version prior to 2.1 to crash. 2.1 seems to work, almost. Colloquy does not pass input from plugins thru the same parser which processes commands like /op, so it seems to be necessary to send raw IRC protocol command to give ops. Thanks for Juha Autero for his help.

You can download the plugin. Put it in Application Support/Colloquy/Plugins

lauantaina, kesäkuuta 21, 2008

Kännykän sterilointi?

Kännykän latausasema Kampin linja-autoasemalla

----
Lähetetty Sony Ericsson -matkapuhelimella

sunnuntaina, kesäkuuta 15, 2008

Hevoset kesälomalle


Olimme tänään viemässä Primadonnaa, Nasua, Akashaa, Paavoa ja Pinkiä laitumelle. Tämä oli vain etujoukko. Loput hevoset tulevat ensi viikon lopulla kun Sandbackenin viimeisetkin kurssit on pidetty. Täällä ne saavat sitten syödä ja telmiä koko heinäkuun.

40 tuli mittariin

Syntymäpäivä vietettiin viemällä hevosia kesälaitumelle.

----
Lähetetty Sony Ericsson -matkapuhelimella

Erlang process spawning, continued

I forgot to explain why this obsession to use spawn/1 instead of spawn/3. spawn/3 calls the named function in the named module, which means the function must be exported by the module. In my program it felt unnecessary to export the helper function just for the purpose of being able to start a second process to run it. Only start/1 needs to be exported by the pingpong module now and life is good.

lauantaina, kesäkuuta 14, 2008

Erlang process spawning solved

I did not understand how to use the one-parameter spawn call in Erlang. Later I was looking for a tutorial on socket programming in Erlang and came across this. Among other things, spawn/1 was also used in there. This is how I now start a second process in my first Erlang program:

Pid = spawn(fun () -> pinger() end)

It works!

Erlang process spawning

I'm a bit puzzled about Erlang process spawning. Why does spawn/1 exist? Let me explain.

The normal way to spawn a process is apparently with spawn/3 (which means that spawn takes 3 arguments): spawn(Module, Function, Argumentlist). A "module" in Erlang means the file in which the function is specified.

There is also a variant of spawn that takes only one parameter, spawn/1: spawn(Function). It starts a process running that function with no parameters. One could easily think it is a shorthand for spawning a process that runs a function defined in the same module where spawn was called, but I have never gotten it to work.

When I try spawn/1 in my first Erlang program, all I get is this error: {"init terminating in do_boot",{badarg,[{erlang,spawn,[pinger]},{pingpong,start_pings,1},{init,start_it,1},{init,start_em,1}]}}

Anyone have any ideas?

perjantaina, kesäkuuta 13, 2008

My first Erlang program

I wrote a program to test how fast is the message passing and process scheduling in Erlang.

-module(pingpong).
-export([start/1, pinger/0]).

% This would be something that got its params from command line
% like: ['123']
start([PingH|_]) ->
start_pings(list_to_integer(atom_to_list(PingH)));

start(Pings) ->
start_pings(Pings).

start_pings(Pings) ->
Pid = spawn(?MODULE, pinger, []),
io:format("Processes ~w and ~w will exchange ~w pings~n", [self(), Pid, Pings]),
Pid ! { self(), Pings - 1 },
pinger().

pinger() ->
receive
{ Pid, 0 } ->
Pid ! quit,
done;
{ Pid, Pingsleft } ->
Pid ! { self(), Pingsleft - 1 },
pinger();
quit ->
done
end.

Save it into a file, like pingpong.erl, then compile with erlc pingpong.erl. Run with: time erl -noshell -s pingpong start 100000000 -s init stop

Sending 100 million messages takes roughly 60 seconds on my 1.4 GHz PowerPC Mac mini.

lauantaina, kesäkuuta 07, 2008

Hyvin parkkeerattu

Kuvattu työpaikan autotallissa. Autonhan voi jättää mihin haluaa jos oven vieressä ei ole vapaata pysäköintipaikkaa.

----
Lähetetty Sony Ericsson -matkapuhelimella

Sony Ericsson K810 muutaman kuukauden käytön jälkeen

Maaliskuun alussa kirjoitin uudesta puhelimestani alustavia kokemuksia. Ajattelin että nyt pitää kirjoittaa tuntemuksia muutaman kuukauden käytön jälkeen.

Kuvan lähettäminen blogiin on kiva toiminto ja käytin sitä ahkerasti niin kauan kuin se toimi. Sitten se vaan eräänä päivänä lakkasi toimimasta. Ruudulla palkki kulkee vasemmasta reunasta oikeaan ja sitten tulee teksti: "Kuvan lähettäminen blogiin ei onnistu." En ole keksinyt mitään tapaa korjata sitä, lähinnä siksi kun en ole löytänyt mitään asetuksia tälle toiminnolle. Tai voihan se vika olla Bloggerin päässäkin.

No, ei hätää, sähköpostin lähetys toimii ja kuvat kulkevat Bloggeriin sitä kautta aivan kuten ennenkin.

Kirjoitin aiemmin, että musiikkisoitin ei muista kuinka pitkälle mp3-tiedostoa on kuunneltu. Tämä ei näköjään pidä ihan paikkaansa. Jos musiikkisoittimesta poistuu kesken mp3-tiedoston kuuntelun ja tulee myöhemmin takaisin, soitto jatkuu siitä mihin viimeksi jäätiin.

Sen sijaan jos vaihdat kappaleen keskeltä seuraavaan ja päätätkin palata takaisin, toisto jatkuu edellisen kappaleen alusta, ei siitä kohdasta mistä hyppäsit eteenpäin. Tämä on vähän ikävää pitkien podcastien kuuntelussa, jos sattuu vahingossa tökkäämään tikkua niin, että soitin vaihtaa kappaletta.

Mac OS X 10.5 ei tietenkään osaa sykronoida kaletereita sun muita K810:aan. Sen sijaan jos puhelimen liittää Macintoshiin tiedostonsiirtotilassa, se näyttää ihan tavalliselta USB-massamuistilta. Macin työpöydälle ilmaantuu kaksi levyä: PHONE ja PHONE CARD. Olen sittemmin askarrellut iTunesin älykkään soittolistan ja Automator-työnkulun yhdistelmän, joka poistaa vanhat podcastit puhelimen muistikortilta ja kopioi sinne uudet.

PHONE- ja PHONE CARD -levyjen irrottamiseen liittyy pieni kauneusvirhe: Vain toisen levyistä pystyy irrottamaan, sen, jota yrittää irrottaa ensin. Jälkimmäistä levyä ei pysty irrottamaan. Puhelimen mielestä jo ensimmäisen levyn irrotus on riittävä ja puhelin pyytää irrottamaan kaapelin. Kaapelin irrotus kuitenkin saa Macin heittämään ruudulle pari ilmoitusta siitä kuinka levyä ei koskaan saisi noin vain poistaa ja nyt tietoja on voinut hukkua.

Tietoliikenneyhteydet toimivat ehkä suunnilleen samalla tavalla kuin Nokian 6630:n kanssa: Muutaman minuutin weppisurffailun jälkeen puhelimen selain alkaa valittaa tietoliikennevirheistä. Kun vaan sitkeästi yrittää niin kohta taas sivut latautuvat.

Puheluissakin on jotain vikaa. Pari kertaa on käynyt niin, että puhelin ilmoittaa tekstiviestillä uudesta puhepostista. Kun soitan takaisin minua tavoitelleelle ihmiselle, hän on sanonut että puhelu ohjautui suoraan puhepostiin. Kun näin on tapahtunut, puhelin ei ole soinut kertaakaan.

Eli ilmeisesti Nokia 6630:ssa ei sitten ollutkaan suurempaa vikaa ja syy lienee Soneran 3G-verkossa.

K810:n selaimessa on sama ongelma kuin 6630:ssa: Kumpikaan ei näytä tallentavan evästeitä. Tämä ilmenee siten, että jos kirjaudun jollekin sivustolle ja laitan kirjautumissivulla rastin ruutuun "Muista minut ensi kerralla," minua pyydetään silti kirjautumaan joka ikinen kerta. Ainut sivusto, joka ei vaadi kirjautumista jokaisella käyttökerralla on Google Readerin mobiiliversio, mutta se taitaakin tunnistaa jollakin muulla tavalla, ehkä WAP-puhelinnumeron perusteella tms.

Ericssonin käyttöliittymä on parempi kuin Nokian: Esimerkiksi jos johonkin paikkaan pitää kirjoittaa esimerkiksi sähköposti-tai weppiosoite, tekstinsyöttö menee automaattisesti pois T9-tilasta. 6630:ssa T9 piti itse ottaa pois päältä. Ja samaisessa tilanteessa joutuu usein osoitetta syöttäessään kirjoittamaan pisteen tai @-merkin. Ericssonissa kun painaa 1-näppäintä kerran, saa pisteen, toisen kerran niin saa @-merkin. Nokialaisessa ainakin @-merkki piti kalastaa paljon kauempaa. Muuten, kolmas painallus 1-näppäimestä tekee /-merkin. Näppärää, koska sitäkin usein tarvitaan weppiosoitteiden kirjoittamiseen. Ja Nokialaisessa sekin merkki piti hakea jostain kaukaa.

Olen edelleen positiivisesti yllättynyt kameran kuvanlaadusta. Zoomatut kuvat näyttävät melko huonoilta, mutta jos kuvia ei zoomaa, olen aika tyytyväinen moniin kuviin. Erityisen huomionarvoista on, että kelvollisia kuvia tuntuu tulevan jopa sisätiloissa ilman salamaa. Lisäksi asiakirjakuvaustilassa kamera tarkentaa aivan naurettavan lähelle, ihan parin sentin päähän paperista.

Kameran ollessa perustilassa ihmisten ihonväri ei näytä ihan oikealta. Jos kameran laittaa muotokuvatilaan (ja miksei laittaisi jos tarkoitus on kuvata ihmisiä,) ihonväri korjaantuu luonnolliseksi.

Radio on pienoinen pettymys koska se ei tunnu kovin herkältä. Se ei automaattihaulla löydä monia paikallisradioasemia ja jopa Yleisradion kanavat kuuluvat rakennusten sisällä erittäin huonosti. Jos YLEn kanavat riittävät ja kuuntelee radiota ulkoilmassa, äänenlaatu on hyvä.

Sijoitin muutaman kympin Ericssonin lisävarusteeseen, jossa saa piuhan, jonka toinen pää sopii puhelimen persiiseen ja toisessa päässä on vastausnappi ja normaali 3.5mm kuulokeliitin. Paketissa oli myös in-ear-tyyppiset kuulokkeet ja niihin 3 erikokoista tuttiparia. Pienimmällä tuttiparilla kuulokkeet ovat todella mukavat minunkin ahtaissa korvissani ja pysyvät hyvin paikoillaan. Kuulokkeet myös eristävät hieman ympäristön melua. Äänenlaatu on kyllä etenkin bassotoistossa melko kehno.

Kuulokkeissa on pieni nipsu, jolla kuulokejohdon saa kiinni takkiin tai paidankaulukseen. Se on hyvä keksintö, jonka toivoisin yleistyvän myös iPodin kuulokkeissa.

K810:aan ei saa ladattua kaikenmaailman omia ja ostettuja ohjelmia, mutta en ole niitä yhtään kaivannut. Kaikki kaipaamani tuntuu olevan jo valmiina ja toimii aika lailla niin kuin luontevalta tuntuu. Oikeastaan harmittelen vain sitä, että jos olisin odotellut muutaman kuukauden, olisin voinut muutaman kympin lisärahalla saada mallin C702, jossa on muuten samat toiminnat ja vielä GPS lisänä.

perjantaina, kesäkuuta 06, 2008

Erotilanne?


Tämän päivän Helsingin Sanomissa ollut pikku-uutinen. Mikä ihme on "erotilanne koiran ja omistajan välillä"? Päättivät muuttaa erilleen? Kumpi pani eron vireille?