keskiviikko 29. heinäkuuta 2009

Internet Relay Programming

Muuan Gregor Richardsin kehittämä ohjelmointikieli on aika erikoinen ja jännä tapaus. Siitä ajattelin nyt hieman kertoa. Ohjelmointikielillä tehdyt ohjelmathan ovat yleensä tarkoitettu tietokoneiden suoritettavaksi. Richardsin ohjelmointikieli tekee sellaisen jännän poikkeuksen, että ohjelmaa suorittavatkin ihmiset.

Kielen nimi on Internet Relay Programming eli IRP. Se toimii IRCissä serverillä irc.freenode.net, kanavalla #IRP. Tämän "ohjelmointikielen" ideana on, että käyttäjä kirjoittaa komentosarjansa KOHTELIAASTI ENGLANNIKSI edellämainitulle IRC-kanavalle. Ohjelman tuloste tulee jos on tullakseen. Tämä riippuu kanavan käyttäjien mielentilasta ym. henkimaailman asioista. Ohjelman tulos voi olla virheellinen tai sitä ei välttämättä tule ollenkaan, sillä ohjelman suorituksesta vastaavat vain kanavalla olevat käyttäjät. Mutta ainakin he osaavat tulkita paremmin englanninkielisiä käskyjä, kuin mikään muu ohjelmointikieli. Muutama esimerkki:

22:13 < kahvi> Please write the square root of 25 in binary notation.
22:13 < FireFly> 1001
22:24 < Sgeo> 101
22:26 < FireFly> Uh, yeah
22:27 < FireFly> # /me is tired

Ohjelmakäskyyni tuli yllättävän nopeasti vastaus, tosin väärä sellainen. Toinen henkilö kuitenkin korjasi.


22:53 < kahvi> Please put a random number to register a. Then in case you are not hungry, please write a divided by a, else write a divided by zero.
22:55 < FireFly> 1
22:55 < FireFly> # You're lucky we're still alive...
23:01 < kahvi> that was close :D

Tässä ohjelmassa testasin satunnaislukugeneraattoria, ehtolauseita ja jonkinlaista "statusmuuttujaa" (nälkäisyys). Tässä ohjelmassa nollallajakamistilanne on ollut hyvin lähellä. Tulosteesta voi päätellä, että a-rekisterissä oleva muuttuja ei ollut nolla ja ohjelman suorittaja ei ollut nälkäinen.

Lisätietoa tästä erikoisesta ohjelmointikielestä löydät täältä


maanantai 27. heinäkuuta 2009

tiistai 21. heinäkuuta 2009

Kalori vai kilokalori?

"Zumbaamalla kulutat 1000 kaloria tunnissa"

En niin paljo noista energiamääristä tiedä mutta tuhat kaloria tunnissa kuulostaa jo aika vähältä. Saa zumbailla sen 300 tuntia että kuluttaisi edes sen juoksulenkissä kuluvan 300 kilokaloria.

Jos vakavasti puhutaan niin ihmettelen, mistä tämä "kalori ja kilokalori on sama asia"-ilmiö on saanut alkunsa. Siinähän voi tulla sekaannuksia kun tarkotetaan kilokaloreita, vaikka puhutaan kaloreista. Tai toisin päin. Mun mielestä on ainakin ihan helvetin selvä juttu että joku juttu ja vastaava juttu tuhat kertaa isompana on ihan eri asioita.

Ja onko kaikki laihduttajat jotain konservatiiveja kun eivät pääse eroon tuosta ikivanhasta kalorista? Ei tää oo mikään Amerikka! Nyt eletään Suomessa 2000-luvulla. Että nyt vittu oikeesti! Laihduttaminen on muutenkin niin höpöhöpöpuuhastelua, koska Hitler, lapsiporno ja työvoimapula...


perjantai 17. heinäkuuta 2009

Facebook

torstai 16. heinäkuuta 2009

Kesän virallinen teearvostelu

Tee. Tuo aine joka tekee kuuman veden juomisesta katu-uskottavaa. Jotkut jopa nauttivat sitä kahvin asemasta (nyt vittu oikeesti!). Tee on ihan jees juotavaa. Ajattelin maistaa muutamaa erilaista teejuomaa ja kertoa, miten hienostunut makuaistini tunnistaa maun ja kuinka aivoni prosessoivat saamansa makudatan hyvin monimutkaiseksi makukäsitteeksi.

Lipton Yellow label tea

Yellow label tea on aika perus teetä. Siinä on kitkerä maku, joka neutraloi suuhun jääneitä muita makuja. Sopii hyvin leivän tai kahvileivän kanssa nautittavaksi.

Nordqvist Tiger's daydream

Tiger's daydream ei mitenkään erityisen paljon poikkea tavallisesta teestä. Lisänä on jotain hunajan tuoksua.

Twinings Passion fruit, mango & orange flavoured black tea

Tää hedelmämaku tekee varmaan sen että tämä tee poikkeaa huomattavasti aiemmista. Siitä tulee sellainen tunne, kuin söisi jonkin hedelmäpalan. Hieman hankala selittää. Tämä on ehdottomasti paras tee näistä kolmesta.

Joo. Eiköhän tää ollu tässä...

tiistai 14. heinäkuuta 2009

Kesäinen retki kompleksitasossa

Kompleksiluvut, nuo hyvin jännät matematiikan kummajaiset, muodostavat vielä jännempiä kuvioita, kun erilaisia funktioita piirretään kompleksitasolle. Tässä blogitekstissä ajattelin näyttää muutamia kuvia kompleksitasolle piirrettyjen funktioiden yksityiskohdista.

Näiden kuvien piirtämistä varten kirjoitin ohjelman, jolle syötetään funktio ja joka tämän jälkeen piirtää funktion näytölle. Kompleksitason reaaliakselina on näytön vaaka-akseli ja imaginääriakselina näytön pystyakseli. Jokainen pikseli on siis kompleksiluku, jonka arvo sijoitetaan funktion kompleksiseen tuntemattomaan muuttujaan z. Pikselin väri määräytyy funktion arvon mukaan. Kirkkauden määrää arvon etäisyys nollasta, eli kompleksitason origosta. Sävyn määrää luvun vaihekulma (värispektri on laskettu ohjelmassani päin vittua, eli toisin sanoen, ohjelman värispektriosuus on oma viritelmäni). Lisäksi kaikki nollakohdat värjäytyvät kirkkaanpunaiseksi (värikoodi &hff0000), jotta ne erottuisivat helpommin. Kompleksilukulaskut saattavat toki olla virheellisiäkin, sillä en ole vielä käynyt lukion kompleksilukukurssia.


Kuvassa origon lähellä olevat nollakohdat muutamasta eri funktiosta



Lomakuvia kompleksitasosta

Kuva liittyy, sillä kuten kompleksiluvut, myös kissat ovat hyvin jänniä.

Kahvin musacorner: Füngus

Maalasin tuon ylläolevan kuvan Sir Füngusille, sillä hän tarvitsi taustakuvan "musiikkivideoonsa" (=tuo mun kuva stillkuvana ja musa kuuluu taustalla). Oli aika erikoiset värienkäyttöohjeet: "joo tee ihan mitä vaan kunhan siinä on vaaleansininen tausta ja biisin nimi keltasella". No ihan miten vaan. Kai siitä ihan ok tuli.

Füngus tekee kokeilevaa, avant gardemaista musiikkia. Tai niin mä ainakin olen hänen musiikkinsa ymmärtänyt. Hänen omin sanoinsa selitettynä:

"Huonoilla välineillä luotua huonoa musiikkia, josta luultavasti vain harva pitää ja hekin vain sen takia, että tuntevat minut."

Ominaista hänen musiikilleen on usein toistuva rakenne ja rytmin epäsynkronisuus. Jälkimmäinen oli mielestäni erityisen häiritsevää, mutta sir itse sanoi sen "kuuluvan asiaan". Lisäksi hänen tuotannossaan on havaittavissa äänikanavien panerointi äärimmäisen oikealle tai vasemmalle. Nämä yhdistettynä erikoisilla soittimilla tehtyyn musiikkiin on korville kuin raiskatuksi tulemisen ja vihreän teen juomisen räikeä fuusio. Suosittelen Füngusin tuotantoa progressiivisen rockin ystäville ja kokeilevasta taiteesta kiinnostuneille.

Kuunneltavissa täällä:
Mikseri.net
IRC-Galleria.net


Ens kerralla kirjotan taas jostain muusta aiheesta. En vaan tiedä vielä mistä.


maanantai 13. heinäkuuta 2009

Idea: Mekaaninen tietokone

Siitä lähtien, kun näin tämän binäärisen mekaanisen yhteenlaskukoneen, olen ajatellut, että jonkinlainen mekaaninen tietokone voisi olla mahdollista rakentaa. Vasta lähiaikoina olen alkanut suunnitella tällaista laitetta ja miettiä sellaiselle toimivaa toimintamekanismia. Tarkoitus olisi, että tämän mekaanisen tietokoneenkin toimintaperiaate tulisi perustumaan ylhäältä tippuviin marmorikuuliin, jotka kytkisivät mekaanisia flipflopeja eri asentoihin. Suunnitteluun käytän tätä ohjelmaa.

Yhteen- tai vähennyslaskukone on yksinkertainen toteutukseltaan, mutta pelkkä yhteen- ja vähennyslaskumahdollisuus ei tee laitteesta tietokonetta. Ohjelmoitavuus ja yleiskäyttöisyys on tärkeä osa tietokonetta. Mietin, kuinka saisin toteutettua jonkinlaisen program counter ja instruction decoder systeemin. Viimeisin ideani tähän ongelmaan olisi yllä olevassa kuvassa. Ylhäällä olevat neljä flipflopia on järjestetty siten, että kun marmorikuula tippuu ylimpään flipflopiin, se matkaa johonkin flipflopien alla olevasta neljästä reitistä. Ja tämä tapahtuu järjestyksessä. Uusi kuula menee aina seuraavaan reittiin ja viimeisen reitin jälkeen koko homma alkaa taas alusta. Näiden reittien lopussa on kytkimet, jotka on kiinnitetty "langoilla" haluttujen komentoväylien "oviin" instruction decoderissa. Tällaisen tietokoneen ohjelmointi tapahtuisi siis yhdistelemällä lankoja program counterin ja instruction decoderin välillä.

Nelibittinen adder/subtracter-rekisteri

Tietokoneen matemaattiset laskutoimitukset perustuvat ainakin tällä hetkellä kahteen komentoon: +1 ja -1. Toisin kuin marble adding machinessa, jossa lasketaan kerralla yhteen kokonainen bittijono, tässä koneessa voi lisätä tai vähentää vain yhden yksikön kerralla. Koneen muistina toimii yksi tai useampi rekisteri, johon voi käyttää joko yhteen- tai vähennyslaskua. Tämän kaksoiskäyttötarkoituksen vuoksi rekisterillä on kaksi puolta, jossa kummassakin on yhtä monta flipflopia. Näiden flipflop-parien asennot pitäisi olla aina samat. Toistaiseksi en ole saanut suunniteltua kunnon mekanismia, joka saisi flipflopit liikkumaan samoihin asentoihin, mutta jotain olen yrittänyt. Oikealla olevassa kuvassa nykyinen toteutus nelibittisestä rekisteristä.

Vielä on monia asioita toteuttamatta. Ainakin ehdolliset hypyt olisi tärkeä saada koneeseen. Rekisteritkin saattavat vielä kokea uudistuksen, ellei niitä saa tuosta kehitettyä monikäyttöisemmiksi. Saa nähdä miten tämä projekti jatkuu. Mutta nyt voisi maistua kuppi kahvia...

Aloittelen blogin kirjoittamista

Nyt kirjoitan blogia. Tuli vain mieleeni, että voisipa sitä blogiakin alkaa kirjottamaan. Toivottavasti saan jotain järkevää kirjotettua. Pyrin pitämään kieliopin siedettävän näköisenä, mutta en välttämättä jaksa kiinnittää huomiota siihen, käytänkö kirjakieltä, murretta tai jotain ihan muuta. Huomaan että kielenkäyttö on hyvin vaihtelevaan kirjoituksissani.

Miten tässä saa ees kappaleet sisennettyä? Jo on kumma kun ei meinaa sujua. Laitoin vain muutaman välilyönnin tuohon alkuun. Vaan eiköhän nekin siitä häivy kun tämän tekstin julkasen. No, asiaan: tässä blogissa tulee olemaan asiaa esim. tietotekniikasta, matematiikasta ja... varmaan jotain musiikkijuttuja. En vielä tiedä. Idea on kuitenkin siinä että tänne tulisi kaikki tärkeämmät jutut, kuin mitä minulla on IRC-Gallerian päiväkirjassa. Ajattelin että jospa tällainen blogi saisi jonkinlaisen lukijayleisön tällaisille aiheille.

Laitoin suoraan HTML-koodiin nuo kappalemerkinnät. Siitä tuli kyllä vaan tuommonen, että kappaleet erotetaan parilla rivinvaihdolla. Haluaisin sen sisennyksen. Tämän tekstin voisi kyllä jo lopettaa. Ehkä ensi kerralla kirjottelen mekaanisesta tietokoneesta, jota olen suunnitellut tässä lähiaikoina.