Tuesday 25 September 2012

Aikaa ei ole - tarina erään nuoren syksystä


Minä olen kyllä aivan sekaisin - Kertaus ja historiikki

Neljäs yritys herättää Dreamerandthewine kesähorroksestaan. Jos tällä kertaa ei tähtäisi Yeggehtävään 10 sivun esseeseen, sillä vaikka tykkään kaverin kirjoitustyylistä ja siitä, miten hän sanoo kaiken mitä on sanottavana, vanhojen blogitekstidraftien kimppuun on hemmetin vaikea palata, eikä niin pitkiä voi kirjoittaa yhdellä istumalla. Nyt yritän siis kertoa julkaisukelpoisesti miten keväisiin pohdintoihini on löytynyt ratkaisu, ja kuinka kaheli se on.

Kuten kaikki toivottavasti muistavat, keväällä vietin viikkoja kiroten kuinka mistään ei saa työtä, kaikki koulut ovat pelottavia ja mistään ei tule mitään. Lopputuloshan oli, että sain töitä (Pharmadatalta, hieno paikka, hienoja ihmisiä, hyvänä esimerkkinä minä), ja hakemistani kouluista {Metropolia@Leppävaara, Laurea@Leppävaara, Helsingin Yliopisto} vain helsinkiläiset tykkäsivät että parempi onni ensi kerralla. Ammattikorkeisiin pääsin heittämällä sisään. Päätin kuitenkin työskennellä välivuoden verran, ja ilmoitin metropoliaan että katotaan jos ensi vuonna tulisin opiskelemaan. Lisäksi minulla heräsi viime tammikuussa himo lentää pesästä. Koska persoonani on eriskummallinen, ei pesästälento tässä tapauksessa tarkoita sitä että hankkisin kämpän lähempää koulua/duunia, vaan pitkää lentoa, jonka päätepisteenä olisi opiskelupaikka Brittein saarilla.

Ratkaisuja

Kesällä päässäni naksahti. Päivät menivät C#:tä ja Javaa kirjoittaen, illat tein mitä tein. Riittikö se? No ei tietenkään! Soitin kaksoistutkintolukioni, TYKin, kansliaan ja kerroin tilanteen. Oli päästävä opiskelemaan (pitkää) matikkaa! Otin siihen rinnalle myös saksan, jota en kyennyt amiskassa lukemaan, mutta jota olin lukenut 2/3 yläasteestani. Nyt päivistäni oli tullut sellaisia, että aamulla kun lähti töihin seitsemältä, oli hyvällä tuurilla kahdeksalta kotona. Nyt ihmiset katsoivat minua kuin hassua, ehkä ansaitusti, ja ihmettelevät miten jaksan tätä. Vakio vastaihmettelyni on, että kuinka ihmeessä jaksaisin kotona homehtua kaikki illat.
Kuitenkin tähän saakka saksan ja matikan opiskelu oli päämäärätöntä "opiskelenpa tätä kun en muutakaan tehdä osaa" - tyyppistä opiskelua. Viikonloppuna kävin Tässin kanssa pitkällisen keskustelun siitä, kuinka suomalaiset kolmannet asteet ovat tylsiä ja tavallisia, mutta voisimme mennä Skotlantiin, Dundeen yliopistoon opiskelemaan matikkaa ja pelien tekemistä. Minä matikkaa, Tässi pelejä, tietysti :P Vai olikohan se toisinpäin?

Pelien tekeminen on kuitenkin hiukan naurettavaa lyhyellä matikalla ja peruskoulufysiikalla. Lisäksi yliopiston nettisivulla oli hieman vaatimuksia, joita en kuitenkaan osannut suomeksi tulkata, kummastakin. Mutta mikä ettei, minähän olin jo pitämässä välivuotta-opiskeluilla, joten samalla vaivalla voisin pitää kaksi, ja kirjoittaa sekä opiskella kunnolla sekä pitkän matikan että fysiikan, jolloin jo kehtaan hakeakin yliopistoon.

Eli loppuvuodeksi ja seuraavaksikin kalenterini on täysi. MERPG kehittynee perinteisellä yököttelytahdilla, kunhan sekin saadaan potkittua liikkeelle vuotuiselta kesälomaltaan. MEsE pitäisi joku viikonloppu kirjoittaa valmiiksi, ja Pröngin Java-(Clojure?)toteutus pitäisi aloittaa. Kiirettä pitää.

Loppuun vielä ilmoitus. Koska Taitajakisoista en stressannut laisinkaan, ja ne olivat niin kevyet (vai mitensenytoli?), ilmoitin juuri ex-maikoille että ellei työpaikalla ole jotain todella hyvää perustetta, kuten esimerkiksi se että olen työsuhteessa, yritän päästä ensi kesänä Saksaan WordSkillsseihin.

Minä tykkään kirjoittaa emacsilla <3

Sunday 2 September 2012

Noulife-statusta metsästämässä

Kesän aikana on tapahtunut paljon kaikenlaista. Olen uiskennellut, olen ollut sosiaalinen (hyh meitä nykynuoria), ja kuten olen täälläkin hehkuttanut, olen löytänyt uusia blogeja, joita olen sitten lukenut ja analysoinut tarkemminkin. Eräs näistä blogeista, Yeggen Steven sellainen, on hehkuttanut Emacsia ja Lispejä niin paljon, että kiinnostukseni heräsi.

Emacs

Latasin siis Emacsin, sekä tutustuin ja rakastuin sen kirjoittamisominaisuuksiin. Alkuun ohjelman kuuluisissa pikanapeissa ei ollut mitään järkeä, mutta jo toisena päivänä, jona tein duunissa erästä XML-projektia Emacsilla, olin oppinut kuinka avataan- tai tallennetaan tiedosto, miten haku-ominaisuudet toimivat, miten päästään käsiksi komentoriviin, ja mikä tärkeintä, miten suoritetaan Lispiä.

Avaus- ja tallennuspikanapit (C-x-f ja C-x-s) ovat ihan yhtä hyviä kuin Windows-kulttuuriinkin pesiytyneet (C-o ja C-s), mutta jo ees- ja taaspäinetsintä oli tehty paremmin kuin Windows-tekstinkäsittelijöissä yleensä. C-S antaa kirjoittaa ikkunan alalaitaan hakusanan, jota sitten haetaan kursorin jälkeisistä sijainneista. C-r taas hakee hakusanaa kursoria ennen sijaitsevasta dokumentista. Hakiessa ei tarvitse koskea laisinkaan hiireen, mikä voittaa mm. Visual Studiossa löytyvän hakuhärpäkkeen, jossa ei toki hyvinä päivinä tarvitse koskea hiireen, mutta jolla on tarve esitellä itseään graafisesti ja viedä näyttötilaa :P

Emacsin komentoriviominaisuudet ovat MAHTAVAT! M-! (missä M viittaa Altiin tai Esciin) tuo ikkunan ala-laitaan kyselyn, jonka tulos ohjataan järjestelmän shelliin, mikä Windowsin tapauksessa on cmd.exe. Eikö kuulostakin kivalta? Ai että mihin sitä voisi käyttää? Noh, ainakin Mercurial - versionhallinnan kanssa on usein pidettävä IDEn ohella komentoriviä auki, koska IDE:n Mercurial-integraatio on huono, ja graafisen TortoiseHg:n opiskelu oli paljon raskaampaa kuin komentoriviloitsujen. Jos IDE:n korvaa e-tiedätte-kyllä-millä-macsilla, voi kömpelön alt+tabaamisen sijaan painaa M-! ja kirjoittaa hg - komentoja suoraan emacsista. Näin voimme integroida emacsin kaikkiin versionhallintoihin, joissa on komentoriviliittymä, eli joukkoon, joka käsittää jotain Visual Studioon kolvattuja sourcesafeja lukuunottamatta kaikki käytetyt versionhallinnat.

Lisäksi, jos jollakulla sattuu olemaan emacs juuri nyt ladattuna, kokeilkaapa painaa ensin C-u, sitten M-! ja kirjoittaa komeentokehotteeseen "ECHO Hello World!". Ai mitä? Tuloste, jonka olisi pitänyt ilmestyä Shell Command Output - bufferiin, ilmestyikin auki olleeseen dokumenttiin? Kai ymmärrätte tämän tarkoittavan sitä, että C-u M-! - näppäinyhdistelmän avulla millä vain kielellä toteutettuja toimintoja voi hyväksikäyttää emacsissa?

Lisp

Sanokaa mitä sanotte, en ole kovin hyvä Lispissä, ja olen mahdottoman laiska lukemaan internetissä sijaitsevia "kirjoja". Siksi en jaksanut opiskella Elispiä, vaan sen sijaan menin ja ostin Amazonilta Peter Seibelin kirjan Practical Common Lisp, joka on puolen viikonlopun lukemisen jälkeen saanut minut näkemään ohjelmoinnin uudessa valossa. Tietysti olen oppinut kieltä vasta sen verran, että osaan toteuttaa CL:llä juuri ja juuri keskinkertaisia komentoriviohjelmia, jotka vaativat Lispboxin alleen runtimeksi, mutta kirja on ehtinyt näyttää lispistä puolia, joista saa muualla vain haaveilla. Makrot mahdollistavat kielen kustomoinnin tavalla, joka saa Java- ja C# - ohjelmointiin tottuneen pään pyörälle... tai sitten se on tämä syysnuha, jota olen kehitellyt viikonlopun aikana.

Toinen kirja, jonka ostin samalla, oli O'reillyn kustantama Clojure-kirja, joka ei ole tässä käden ulottuvilla, joten en voi luntata siitä yksityiskohtia. Kunhan saan Common Lisp-kirjan siihen pisteeseen, että voin myöntää itselleni osaavani jotain (katsotaan siinä 2030 uudelleen), opiskelen Clojurea ja todennäköisesti pyrin siirtämään ainakin kotijavaprojektini sille. Jos joku on elänyt tynnyrissä, Clojurehan on kieli, joka tarjoaa paljon Lisp-herkkua, Java-luokkakirjaston ja Javan alustariippumattomuuden samassa paketissa. Taivaassa tehty tulitikku siis.

Kuten sanoin, siirrän todennäköisesti vain kotiprojektini Clojurelle. Syy siihen on, että ihmiset ilmeisesti eivät tykkää opiskella uusia asioita, joten suhtaudun epäillen siihen että töissä koodipohjiani sörkkivät arvostaisivat minua lispin valinnasta. Jännä nähdä, sillä en omaa kokemusta siitä miten ihmiset reagoivat C-murteiden ulkopuolelta tuleviin kieliin, vaan perustan sanomani Yeggen Steven kokemuksiin.

Linux

Tämä on viimeinen pisara, jolla virallisesti möin sieluni "normaalien ihmisten" ulottumattomiin. Olin äärettömän kyllästynyt pikkuläppärilläni olleeseen Windows XP:hen, jossa ainoat käyttämäni non-portaappelit ohjelmat olivat Office ja Visual Studio, joiden toiminnallisuus tippuisi rajusti jos asentaisin taas raudan tehoja syömään seiskan. Lisäksi Lisp-maailmaan sukeltaessani olin huomannut kuinka Lispereille(kin) asiat olivat paremmin vaihtoehtokäyttisten maassa, ja Windowsia tuettiin jos ja kun jaksettiin.

Kokemukseni Linux-maailmasta olivat kuitenkin keskinkertaiset. Aina kun olin kokeillut distroja, oli joko jotain hajonnut, moni asia oli ollut huonommin kuin Windowsilla, tai tilanteessa ei ollut mitään syytä siirtyä Windowsilta pois. Nyt kuitenkin sain työkavereilta suosituksen kokeilla CentOSää. Viime kappaleen perustelut tuovat monia syitä tuoda vaihtoehtokäyttis vähintään Windowsin rinnalle, ja korvattavien nonportaappeleiden ohjelmien vähyyden vuoksi en nähnyt mitään syytä potkia terästankoa, joten tyhjensin pienpäpän kovalevyn täysin ja asensin CentOS kuudennen sille.

Tähän mennessää tämä vaihto on vaikuttanut erittäin hyvältä. Emacs korvaa hyvin raskaat IDEt, Java- ja Lispit toimivat, ja vaikka Pidgin onkin pikaviestimenä heikko esitys verrattuna Livemese -09iin, työn alla oleva MEsE/yool-messenger korjannee kyseisen ongelman. Toivottavasti. Joskus.

Metabloggausta

Tätä tekstiä ei ole kirjoitettu bloggerin selainnäkymässä, vaan päätin kokeilla Yeggen strategiaa kirjoittaa näitä emacsilla. Asiaa/pituus - suhde, sekä silkka pituus, vaikuttavat tässä tekstissä melko hyviltä. Pääsen myös soveltamaan skriptejä tämän toteuttamisessa. Ainoa skripti, jota käytin, lisää </p> \n <p> - merkit puskuriin aina painaessani returnia. Tämä johtuu siitä, että tässä pikkukoneella taginapit ovat erittäin pöljässä paikassa, ja kirjoitan tätä html:nä, joten tuollainen skripti säästää aikaa ja vaivaa. Jos jotakuta kiinnostaa miltä tämä koodi näyttää, niin olkaa hyvä: (defun insert-paragraph () (interactive)(insert "</p> \n <p>")) (global-set-key (kbd "<RET>") 'insert-paragraph)

Ensi kertaan! Silloin minulla saattaa olla asiaa MEsEstä/yool-messengeristä, tai mahdollisesti emacs-blogger - integroinnista, jota suunnittelen tutkimatta onko sitä jo toteutettu. Nähdään!