Thursday 28 July 2011

Loppukesä

Tuska oli ja meni. Lauantaina allekirjoittanutkin oli paikalla kuuntelemassa Epican ja Tarotin setin. Epicaa kuunnellessa jäi ärsyttämään se, etten raahautunut heidän keikalleen viime lokakuussa Nosturiin. Tarot veti yhtä hyvin, vaikka en olekaan lämmennyt Spell of Iron 2011lle. Alkuperäinen, jonka muuten nappasin Tuskasta Äxän kauppakärrystä CD:nä, on vaan äärimmäisen kova pakkaus ikäisekseen. Joka tapauksessa, tuolla ei kuitenkaan tapahtunut mitään niin ihmeellistä, mistä saisi keikkaraportin aikaiseksi :P

Mutta tänään hullu-Tässi sai tänään idean. Tämän idean lopputulos oli, että todennäköisesti lähdemme 19. ensi kuuta Kemiin junalla, ja palaamme seuraavaksi sunnuntaiksi. Siitä reissusta saanemme D&W:n ensimmäisen junakuva-blogitekstin. Aion varautua sinne parilla varapatteriparilla, kameralla ja muilla tarvittaville tilpehööreillä dokumentoidakseni yöjunien kaluston elokuulta 2011. Tässi ei taida olla ainoa hullu tässä seurueessa :P

Lisäksi Kemissä pitäisi uudelleenelää viimevuotisen satamafestarin parhaat hetket: Cumuluksessa voisi käydä ostamassa vanhalle pehmoporolle kaverin, satamassa pitäisi käydä tutkimassa maailman menoa, ja Ämmilässä pitäisi käydä syömässä. Lisäksi Möllärin Möljä oli hassu paikka, kuten Mansikkanokan puistokin. Lisäksi kun pyhiinvaellusmatkalle ollaan menty, pitäisi johonkin luonnon helmaan päästä käpertymään ja popittamaan Sonata Arcticaa "kultsipuppelista".

Tässä suunnitelma. Koulun alettua saanette raportin lopputuloksesta :P

Tuesday 26 July 2011

Tilannekatsaus

Niitä on hyvä tehdä välillä. Tietokoneeni osat tulivat viime viikon maanantaina, ja niiden kokoaminen oli melko läpihuutojuttu. Ei siis ollut mitään, mistä raapia kasaan tekstiä. Jotain kuvia otin pakkauksista, mutta hukkasin nekin jonnekin kovalevyjen tai kameran sisuksiin :D

Uusi kone tarkoitti, että alkuviikko meni sen kanssa säätäessä (ja menee edelleen... mm. Crossfire ei toimi lainkaan CCC:n mielestä, vaikka kaiken pitäisi tukea sitä), ja kun tämä oli mahdollista, aloin Civ V - pelin. Se on vieläkin kesken, joten en ole edistynyt oikein missään pariin viikkoon. Omaan kuitenkin suunnitelman palata Pröngiin, kunhan olen väsynyt Civ V:hen, Empire: Total Wariin ja Anno 1404ään.

Pröngistä minun pitikin puhua. Ensinnäkin, suutuin PHP:n tapaan sallia tehdä asiat melkein, mutta ei aivan, niinkuin ne pitäisi tehdä. Lopputulos oli, että viritin Viuhkaan Apache Tomcatin, aka. Javaserverin. Vielä kun saisin jostain aikaa opetella Javan serverikirjastoja, kun töissä kuitenkin kuluu suurin osa päivästä, ja loppupäivänä ehtii juuri ja juuri blogitekstin kirjoittaa.

Mutta tämä Pröngin kehitystauko on antanut minulle aikaa ajatella. Viikonloppuna joku lausui, että Pröngin tuottajatiimin pitäisi videoida tilanteita, joissa luonnoksia syntyy. Ideana se oli hyvä, mutta tuotanto monimutkaistuisi moninkertaisesti, mikä taas ei ole yhtä hyvä. Kuitenkin idean syntyhetkellä ilmeeni oli samantyyppinen kuin Hra Zuckerbergilla Social Networkissa kun tältä kysyttiin onko se-ja-tää tyttö vapaa. Pröngin pitäisi laajentua.

Osa lukijakunnastani tuntenee myös Fairandcruelin. Websin WYSIWYG-editori saattaa olla helpohko herra ylläpitäjälle, mutta foorumien käyttö on yhtä helvettiä, ei millään hyvällä, ja blogitkin saattaisivat vaatia hieman parempaa käyttötuntumaa. Jos nämä ominaisuudet toisi nykyisten pröngsuunnitelmien (luonnokset, kalendaari, profiilisivut) päälle, olisi F&Clle melko sopiva perillinen kokoomavalmis.

Eli Pröngistä olisi siis tulossa Kolmio-portaali, ei pelkkä luonnosten säilö. Miltä kuulostaa, kansalaiset?

Saturday 16 July 2011

Nörttihenkeä :D

Istun kalsarisillani asuntovaunussa, läppäri sylissä keskellä keskisuomen metsiä, koodaamassa pröngiä ja mussuttamassa leipää keskiyöllä kuunnellen Sireniaa. Tälläiseenkään tilanteeseen päädy ihan joka päivä :P

Saturday 9 July 2011

Miksi?

Otan boheemisti mukillisen vettä ja astun ulos pikkupäpä kainalossa ja soittopeli toisessa. Kello on yksitoista, musiikkina Indica ja on heinäkuinen kesäilta. Täydellinen hetki kirjoittaa D&W:n kuukauden teksti.

Aistin ihmisten usein miettivän, miksi pääni täyttää päivittäin jokin, mikä näyttää monimutkaiselta, vaatii paljon mietiskelyä ja aiheuttaa paljon kirosanoja. Ajoittain mietin tätä itsekin. Mikä ajaa ihmisen ohjelmoimaan, ja mikä ihmisen pitää tässä loppuelämänsä?

Aihetta romantisoimatta, alunperin tunsin, etten tietänyt tietokoneista tarpeeksi ennenkuin osaisin ohjelmoida. Sillä tiellä olen edelleen, sillä jos lähtee tutustumaan ohjelmointiin aikeenaan oppia kaikki aiheesta, ei muuta ehdikään kuin opiskella. Ala on niin laaja.

Hieman romantisoiden, koodari on käsityöläinen, jolla on syytä olla työstään ylpeä. Koodari miettii ongelmaan ratkaisun ja toteuttaa sen, helpottaen ihmisten elämää. Nettiselain, jolla luet tätä, on tuonut tekijöilleen nelinumeroisen summan ongelmia ratkaistavaksi, ja kun nämä on ratkaistu, on lopputuloksena ohjelma, jota olet käyttänyt useampiin merkittäviin asioihin, kuin osaat laskeakaan. Toisena esimerkkinä voitanee käyttää jotain tietokonepeliä, kuten vaikka Age of Empireseja minulle. Pelkän kolmiuloitteisuutta matkivan pelin tekeminen on monimutkaisempaa, kuin yksinkertaisen nettiselaimen, puhumattakaan aidosta kolmedee-pelistä (3D kuten Age Of Empires 3, ei 3D kuten 3D-Avatar - elokuva). Ratkottavia ongelmia on kymmeniä tuhansia, osa on haastavuudeltaan pisteestä pisteeseen - tehtävän tasoa, osaa taas saa miettiä viikkojen ajan. Ja jumankauta, olen viettänyt jonkun alkuperäisen AoE1:n kanssa äärimmäisen monta tuntia. Puhumattakaan siitä, mitä kaikkea olen käynyt läpi AoE2:n ja AoE3:n moninpelien kanssa. Näitä tunteita saavat käyttäjät tekevät koodaamisesta äärimmäisen nautittavaa.

Minulla oli joku idea myös raa'asti romantisoiden - kappaleeseen, mutta kello lienee tehnyt tehtävänsä. Toivottavasti tämä teksti antaa jotain osviittaa siitä, mitä päässäni liikkuu koodatessa :P

Pröngin oliomallintelu

Nyt kun tietokanta on olemassa, lienee sopivaa alkaa miettiä millä abstrakteilla olioilla Pröngin sisäistä toimintaa voisi kuvata. Lisäksi muutakin arkkitehtuuria voisi kuvata, eikä vain tehdä luetteloa tarvittavista luokista.

Ainoa järkevä perusdesign nykyisen (jossa on piilotettu lähinnä Pröngin kahdelle palstalle kirjoittelu luokan sisään) jälkeen, on .NET/Swingimäinen ratkaisu, jossa kaikki pelottava käyttöliittymäkoodi on abstraktoitu piiloon. Eli suomeksi sanoen, pahaa ja ilkeää HTMLää ei tarvitse nähdä, ellei välttämättä halua. Tämä halu kuitenkin luo tarpeen preHTML- ja postHTML-kentille, jotka olisi tarkoitus tulostaa selaimelle ennen ja jälkeen käyttöliittymäelementin tulostuksen.

Eli, tarvitsemme yhteisen, abstraktin Kontrolliluokan, jossa määritellään protected-määreenä varsinaisen kontrollin koodi, ja jossa on juuri nuo pre- ja postkentät (ja näiden getterit ja setterit). Tästä sitten voidaan periyttää ihmeellisempiäkin kontrolleja :P

Kun otin nuo työpöytä-UIkirjastot esiin, voisin toteuttaa myös jonkinlaisen paneelicontainerin. En kuitenkaan kirjoita mitään javamaista layoutmoottoria siitä syystä, että CSS on paljon kivempi ja ajoittain jopa voimakkaampi layoutin luoja.

Mutta, koska Pröng ei ole pelkkä webbiulkoasukirjasto, pitänee datan liikkeitäkin mallinnella. Ensi-alkuun tarvitsemme jonkun staattisen- tai singletonluokan tietokantayhteydelle. Tähän pitäisi riittää joku kevyt PDO-wräpperi yleisimmille operaatioille (getLuonnos(), getLuonnosAttribuutit(), getUser() mm.), ja hienostuneemmat luokkafactoryt (Käyttäjät, Luonnokset) käyttävät tätä wräpperiä (tai sitten suoraan PDO:ta, en tiedä onko tarpeellista laittaa PDO-kerroksen ja muun softan väliin omaa kerrosta, joka vain kutsuu PDOta tekemättä mitään omaa).

Tässä oli kai tärkeimmät osa-alueet :P Lisää keksin viimeistään lopullista luokkakaaviota tehdessäni.

Monday 4 July 2011

Uus kone

Kun enkkublogin puolella sitä hehkutin, niin hehkutetaan sitten täälläkin. Tilasin viime viikolla uusia osia tietskariin (Tuolla näkyy osat), ja toivon että ne olisivat loppuviikosta minulla. Kun ne ovat minulla, tehnen kuvitetun tekstin koneen rakentelusta :P

Sunday 3 July 2011

Pröngin tietokannan suunnittelu

Alkuun meillä on kaavio, joka esittelee tietokannan taulut ja näiden suhteet.

Suorakulmiot ilmaisevat tauluja, salmiakit selittävät miten mikin taulu liittyy toiseensa, ja viivoilla olevat merkinnät (joko 1 tai M) ilmaisevat kuinka monta jäsentä toisesta taulusta osallistuu toisen taulun merkinnän tuottamiseen. Esim taulusta Käyttäjät voi 1 käyttäjä tehdä Monta kalendaarimerkintää tai luonnosta. 1 Luonnosta taas voi kommentoide Moni kommentti, jne. Editoin tähän perään lisää kaavioita, kun nämä valmistuvat.

Tässä taas meillä on koko kaavio tietokannasta, kenttineen. En jaksa alkaa dekoodaamaan merkintöjä, jos ette ymmärrä, ei tästä tarvitse tietää mitään :)

Pröngin lopullinen kehittelylista

Pröng 11.7, nykyaikaisesti versioituna, on se, mitä Pröngin käyttäjät ovat odottaneet Pröng 2011:den julkaisusta saakka. Tämä uusi versio keittää teet ja tekee matikanläksysi - kotimatkalla... Ainakin melkein. Muutoslista on niin iso, etten yllättyisi vaikka tuo tekisikin näin.

Tämä muutos-/ominaisuuslista on seuraava
  • Kaikki vanhat ominaisuudet säilyvät
  • Edellinen- ja Seuraava Luonnos - napit (katso viesti 9. nykyisellä Pröngin laudalla)
  • BB-koodimuotoilut
  • Case-sensitiivisyys käyttäjänimen suhteen (Katso viestit 10. ja 11.)
  • Käyttäjäprofiilit
    • Puolijulkinen synttäripäivä-kenttä (Puolijulkinen, eli synttäriä ei ole pakko antaa. Syntymäpäivän voi pitää piilossa profiilista, mutta voi antaa softan onnitella synttäripäivänä, ja sen voi antaa, mutta piilottaa täysin näkyvistä)
    • Allekirjoitus
    • Privaatti salasanakenttä
    • Henkkohtkuva
    • Hallintasivu ja esittelysivu (eli ei vain kolmea "Vaihda X" - linkkiä sivupalkissa)
  •  Synttärionnittelija, jolla on hieno valikoima "Onnee vaan!" - fraaseja, ja joka onnittelee jokaista, jolla on tiettynä päivänä synttärit ja on sallinut onnittelun.
  • Rekisteröitymismahdollisuus ja käyttäjäarvot
    • Käyttäjätasot alimmasta ylimpään:
    • Spartalainen
      • Voi kommentoida luonnoksia ja kirjoittaa laudalle. Ei voi kirjoittaa luonnoksia tai käsitellä kalendaaria. Voivat muokata tuotoksiaan. Rekisteröityneet ovat näitä.
    • Puolijumala xD
      • Voi yllämainittujen lisäksi kirjoittaa luonnoksia ja käsitellä kalendaaria (josta lisää myöhempänä). Voivat muokata ja poistaa tuotoksiaan. Kolmiomme on automaattisesti tälläinen, ja tälle tasolle päästäkseen kyetä näyttämään olevansa asiallinen ja kykenevä tuottamaan korkealaatuisia luonnoksia :P
    • Sisäinen Kanadanhanhi
      • Minä. Oikeudet luoda, muokata ja poistaa mitä tahtoo. Lisäksi rajalliset oikeudet sörkkiä muiden ihmisten käyttäjäprofiileita. Esim. unohtuneen salasanan voi muuttaa muuksi kauttani, menetelmällä josta kertonen myöhemmin.
  • Saatan toteuttaa mahdollisuuden muokata käyttäjäkohtaista ulkoasua omanlaiseksi. En kuitenkaan lupaa import/export - tukevia teemoja.
  • Etusivulle voisi toteuttaa jonkin pienen widget-moottorin (ja tietysti widgettejä/härpäkkeitä :P)
  • Mietin yhä blogikonseptia (katso viesti 26.)
  • Luonnoksiin voisi lisätä tageja, ja näiden pohjalta luonnoksia voi mm. tulostaa järjestyksessä jonkin tagin mukaan
    • LID-kentänkin voisi toteuttaa tagina
Seuraavaan postiin voisin suunnitella tietokantaa...