[ employ me or put me into an asylum, let me have a rest from you - or let us both just enjoy our lives; each of others'
(godly) peter sellers in
Being There - Also Sprach Zarathustra (Funky Version)
http://www.youtube.com/watch?v=F7zJGB6zA0U]
miä en haluaisi olla tunnettu, mutta minä olen tunnettujen tunnettu, se itkettää, yleensä nukkumaanmenoaikana, muulloin se naurattaa, muita.
semmosta touhuilua. vaan olipa mielessä ihan toisenlainen juttu mitä aioin tulla pähkimään tänne näin ja ääneen näin nähtävästi, että saisin vähän etäisyyttä siitä mitä olen tekemässwä (tekemäswä, kai swahilia sitte, vaikostajoopajoosta).
tilakonetta minä, sitä finite state machine. vittu, piti sanoa oikein. nyt kun miä sitte oikein kattelin ja meinasin että tekisin tilakoneen niin joopajoo. olen miä joskus tehny jotain kääntäjiä ja jopa komentotulkkeja ja en miä tiennytkään että niistä pitää käyttää nimikettä tilakone. onhan se toki hienoa kun huomaa että jos jollain minkä ite keksii on joku muu jo antanut oikein nimen, mutta olisi hemmetin kivaa kun niistä kirjotettaisiin tai kerrottaisiin, edes, jossain niin että niihin tulisi törmänneeksi, vieläpä niin että näkee ettei tarvi tuota vempainta ite keksiä ja pähkäillä kun on jo moinen olemassa.
olin siis käymässä toimeen ja rupesin tekemään tuota telnet-clienttiä, ja siinä tuumaillessa törmäsin johonkin vuoden 1997 dr. jobbsiin ja siinä oli vielä juuri rojektilleni sopivsti puhetta (hakemistossa) state-machinesta, ja kun kävin artikkelin kimppuun niin olikin aiheena Ggrep, jonka joku aussi oli rakentanut tilakoneen. no greppihän on ohjelma millä parsitaan tekstiä sillee ja tälle ja ovelasti niin ja mainitan "high speed huffman decoder", jonka selittämiseen menis sen verran enempi aikaa että luotan sen löytyvän jostain internettie webistä, se on vaan sellanen binääripuu, jolla harjotettaan tiedon pakkausta niin että useammin esiintyvä merkki koodataan vähimmällä bittimäärällä. mekanismi vaatii tietenkin datan analysointia tai olettamusta vaikkapa perustuen siihen millaisella yhteydellä liikennöidään (telnet, 8bit 64bit jne. jne)
esitetään myös ns. boyer-moore algoritmi, joka on päämenetelmänä muille hakumekanismeille kun halutaan nopeutta. sen voi lyhyesti (lainaten ja kääntämättä) kuvatakin: The boyer-moore algorithm is simple. if you are searching for a simple string such as "galah", don't look in the first position for "g" - look in the fifth position for h. if you find an "h" (an eits, eiks je, nq an hour, kai, ritva), start a normal match attempt from the first character. if you don't find an "h", look at the character you inspected: if it isn't int the string at all, skip forward by the lenght of the string. even when the character is in the string, hte search cn still skip forward. for example, finding an "l" whwn searching for "galah" allows the search to skip forward two bytes. - dr. dobb's, #271 nov 1997, numeric programmin special edition. hihg-speed finite-state machines - byte-oriented applications benefit from an assembly trivck.
toi on tietty yhtä hepreaa tai jotain muuta, mutta kyllä siinä winha perä on kun lukee koko artikkelin, en jaksa tarkistaa onko
toinen ja ikävämpi ilmiö asiassa on se että nykyään käytetää niin paljon bytekoneita, kun kyseessä ei todelisuudessa enää niinkään ole bytekoneet. tai mistä minän tiedän, mutta ajattelen sen kovin vaikiaksi kun on niin paljon laskutehoa että sitä ajattelee helposti että ei tarvi kuin tulkattua kieltä, jotain mitä sanotaan jit ja sitten sitä ei kuitenkaan, oikeastaaan, käännetä ihan assemblyksiksi, siis ei ole olemassa vaikkapa sellaista tomintoa kuin inline ja sitte puljataan cpun rekistreilleä ja ei nekään vielä mitään, mutta kun noilla bytekoneilla tahdotaan käytellä pinoa niinkuin rekistereitä, joskus jollain fortranilla ja mennään framesta toiseen ja homma on tosi sukkelaa. kun taas oikean bytekoneen, joka tulkkaisi kielen niin että se pysyisi vaikka cpun muistissa niin voitaisiin assemblyn ansiosta pinona käyttää cpun pinoa eikä tietokoneen muistia. optimointi ei ole pysynyt siinä kyydissä millä vaikkapa c-kieltä on laajennettu, vaikka kuinka väitettään että samat data-rakenteet on käytettävissä jne.jne.
noniin palataanpa siihen mistä tämä nyt sai alkunsa. kysehän taisi olla siitä telnet-clientistä ja -protokollasta. näin, vähän aikaa, kun olen tuota katellut ja lukenut kahta rfctä niin ei toi telnet nyt niin mahoton ole. neuvottelee vaan vähän että mitkä on yhteiset säännöt sille millaisella merkkialuella liikutaan ja tuntgetaan sekaan numeroa 255, jos tahdotaan kesken data-virran, vaikkapa vaihtaa terminaalin asetuksia, mille on aika harvoin tarvetta, mutta on kuitenkin. mutkikkaammaksi asiat muuttuvat silloin, kun halutaan vaikkapa lisätä dataan merkin- tai taustavärinvaihtoa tai kursivointia tai muuta sellaista, mikä sitten on taas esim. ansi tai vt102 terminaalin ominaisuuksia, ei NVT:n eli network virtual terminal, mikä on yksinkertainen ja juuri sellaiseksi tarkoitettu että sitä voi laajentaa tarvittaessa.
jos nyt vielä ajatellaan että tässä on kysmys sanakirjasta, jota käytellään telnet-yhteydellä (voi olla myös tunneloitu niin että siinä on salaus), ja ajatuksena on käyttää värillistä tekstiä monimutkaisimmillaan niin merkkivirran tapahtuma-aikaisen seurannan greppaaminen mm. vaikeutuu niin että on ehkä käytönnöllistä ylläpitää kahta puskuria; toista niin että siinä on kaikki ohjauskoodit (lähinnä värit) ja toinen josta ne on poistettu, kun halutaan parsia tekstistä pelkkiä tiettyjä, haluttuja, sanoja - mahdollisesti siksi että tahdotaan kytkeä niiden esiintymiseen vaikkapa laskentaa, jos sen voi tehdä ei ole sen ongelmallisempaa enää seuloa tekstiä värinsäkään perustella, mutta tuohan ei kuulu telnet-protokollaan. on tosi kummallista että minäkin olen jostain 80-luvulta asti ostellut noita dr.dobb'seeja ja vasta nyt olen alkanut lukea niitä ja ihmettelen että on hauskaa kun on keksinyt pyörää, itse, muodossa jos toisessa, mutta kuitenkin niin että sellainen on ja sille on annettu useita erilaisia nimiä.
kudotaanpa tämä kaikki nyt vielä yhteen. kun ajattelee telnet-protokollaa, ensin muodostetaan yhteys, jonka ohessa sovittaan virtuaaliterminaalien yhteensopivuus ja säännöt joilla dataa siirretään, kuten merkkikerrallaan tai rivittäin. voidaan kytkä kaiutus päälle ja tehdä joitain editointitoimia kuten poistaa merkki tai rivi. myös "printterin" ohjausta on mahdollista tehdä, kysehän on virtuaaliterminaalista, jossa on tosiasiallinen (virtual) näppäimistö ja näyttö. terminaalin tilaa on mahdollista myös asetella sen jälkeen kun on jo siirretty dataa (ts. kaikki terminaalien ominaisuudet on jo päätetty), siihen on olemassa yksinkertainen ohjauskoodi 255. jos se esiintyy kahdesti peräkkäin on kysmys arvosta 255, joka kulkee datan seassa, yksin se on IAC (interpret as command) -merkki, jota tulee seurata treminaalin ohjauskodi ja data mark (ja sen sellaista). tuohon tilakone soveltuu erinomaisesti, kuten se sopii greppaamiseen ja kääntäjiin, jossa sitä on käytetty sen "keksimisestä" lähtien ehkä eniten.
nykyään kaikki on tilakonetta, ja lähes kaiken yhteydessä puhutaan event-driven finite state-machinesta. joskus törmää myös vempaimeen data driven state-machine. molemmat ovat erittäin kömpelöitä, hitaita reagoimaan muutoksiin ja jälkinmäinen erittäin altis virhetilanteille. siitä on hyvin huonona esimerkkinä paljon kehumani, ja edelleen kehumani peli dungeon siege I, jota edelleen pidän alustana, joka ei ole vielä ollenkaan aikaansa elänyt tai ajan hampaan ohittama. karmeampi esimerkki edellisestä on itse microsoftin windows, mikä tahansa windows vaikka se olisi xp, jota pidän onnistuneimpana. mainittakoon vel äettä microsoftin jamppojen kyhäelmähän dungeon siegekin on, ja sen vuoksi se onkin oikein mielenkiintoinen alusta perehtyä siihen kuinka windows mahdollisesti toimii ja miksi se juuri ei voi toimia.
kyllä ohjelmointi on mukavaa,
kunpa se alkaisi maistua siltä,
enemmän :P
(created 20110811_032208
sen jälkeen kattelin top gearin ja ajattelin jälleen että saa olla lapsellinen, mutta pitääkö olla niin lapsellinen kuin jeremy clarckson, joka on lapsellinen kuin poika ennen murrosikää, eikä koskaan sen aikuisempi, mutta niin että taida ymmärtää sitä. minusta se olisi hyvin tärkeätä, jotta voisi välttyä siltä että on typerän ärsyttävä... voitelenpa toisen ajoneuvon moottorin juustolla... kyllä on hauska keksintö. *itkua ja lintujen laulua sanoi vesi sateessa, ja taivaalta satoi vettä*)
örf
(nyt pitää kattoa Qi, bbc entertainmentilta eli erästä iidolliani kuten stephen fry, thnak you and good morning)