Tuesday 30 March 2010

Matka

Ostinpa torstain matkaa ajatellen pikkupäpääni ulkoisen dvd-aseman. Tänään koulussa asentelin tuon kautta Age of Mythologyä, ja äsken kokeilin. Voi hitsi, ei toimi. Kuten ei toiminut tikun kautta asennettu *köh* kräkätty *köh* AoE1:kään, joka oli toiminut WinXP:llä. Ja siis tässä on nyt 7. Eli minun lienee pakko tehdä tähän kaksoiskäynnistys 7:n ja XP:n kesken, 7 kun täytyy tehdä jotain järkevää ja XP kun täytyy pelata eikä ole muita koneita saatavilla.

Saturday 27 March 2010

No moi! Mitäs on tullut tehtyä?

No moi! Kiva ku kysyit.

Pääsin kotiin suht. aikaisin. Tämän takia piti katsoa TV:tä paljon. Eli olen katsonut tänään aika hemmetisti Doctor Whota ja yhden jakson Roomaa. Ja sitten, tuossa iltasella...

Koodasin, kiusasin pikkusisaria, peeloilin netissä ja rakensin tietokonetta samaan aikaan. Kun kyllästyin tähän, siirryin pelaamaan Rome Total Waria, mikä bugasi kiitettävästi. Peli käyttäytyi kuin alla olisi ollut viisi vuotta vanhempi kone kuin oikeastaan olikaan.

Thursday 25 March 2010

Irroittelua

Tämä pari vuotta sitten osina ostama tietokoneeni, joka sai puolisen vuotta sitten vesijäähdytyksen. Se toimii liian hyvin. Eli nyt täytyy vähän koettaa vääntää tätä, jos tehoja tulisi lisää (ja missäköhän ne tehot näkyisivät...? Tombeissa ja AoEissa koodi on pullonkaula eikä rauta).

Ensinnäkin, lataan AMD:n sivuilta 10.3 - Catalystia parhaillaan. Päivittänen Asus - merkityn CCC 8.6 - ajuriohjelmiston, ja kokeilen viikonloppuna vakautta AoE3:lla ja Paint.Netillä, ohjelmilla joilla paskoilla 9.XX - ajureilla oli vakausongelmia.

Eilen ajoin CCleanerin. Tämän luulisi myös helpottavan tietokoneen elämää.

Muuten, hautasin juuri virallisesti Firefoxin. Asensin Chromen, yritän asentaa Operaa ja lataan Safaria parhaillaan. Ja IE:täkin voisi käyttää ihan vain ollakseni tilastoihme. Firefox käyttäytyi epävakaasti jälleen, joten odotan pari versionumeroa ja palaan takaisin siihen. Ellei Safari tai Opera yllätä. Chromeen en usko siirtyväni, käyttöliittymä on kauhea, liian yksinkertainen.

Takaisin tähän päivään. Jos ajuripäivityksestä selvitään vakaasti, tutkin myös paljonko tähän otukseen saisi prossulle kelloja. Jos E8400:lla menee 3,6 ghz rikki vakaasti, niin olen tyytyväinen.

Ja loppusanoina: se ajuripäivitys taitaa jäädä huomiseen. Firefoxin perkele kaatui, eikä suostu lataamaan pakettia loppuun.

Huonot koneet

Laitteistotunnista tuli hypäri -> tehkäämme edellisen tunnin tehtävää siis sen ajan. Mutta! Voi kiva, laitteistoluokan XP-koneista puuttuu eräs ohjelma. Ja kun yritän tehdä näillä koneilla, Paint.Netiä hyväksikäyttäen sitä tehtävää, ei Paint.Net käynnisty koska se ohjelma puuttuu. Näinollen kytkin pikkupäpäni kiinni, ja asensin PdN:n siihen. Ei ollut mikään helppo operaatio käyttää jotain keskiraskasta kuvankäsittelyä virtapihillä&tehottomalla koneella.

Ja kohta syömään. Saa nähdä mitä äikäntunnilla tapahtuu. Täytyy alkaa kerätä tehtäviä sen ensi kuun matkan ajalle... Onneksi pääsiäisloma syö pari koulupäivää täysin tehtävävapaaksi.

Wednesday 24 March 2010

Laitteistokurssi

Ylläolevalla kurssilla alkaa projektityö: pitäisi asentaa työasemakäyttis ja servukäyttis työasemalle. Tulee olemaan historiallisen vaikeaa.

Tuesday 23 March 2010

Live from äikäntunti

Jos joku kysyy, kirjoitan tekstitaidon vastausta tälläkinn hetkellä.

En ole kahteen päivään kirjoittanut mitään :O Olen siis tehnyt suuresti syntiä. Melkein muuten rikoin tikkuni. Onneksi ei hajonnut niin paljon ettei saisi otettua varmuuskopioita läppärin kovolle.

Akvaarion valo on jännä novelli, suosittelen lukemaan sen. Tai jos käytte äikän kolmos/kakkoskurssin, saatte lukea sen muutenkin.

Seuraavana on vuorossa enkkua... Toinen ihana aihe. Ja kotona joko pelaan tai katson eilen aloittamaani Rooma Kausi 1:ta etiäppäi.

Saturday 20 March 2010

Ilta laskeutuu yllemme

Tänä maaliskuisena lauantaina hakkaan taas näppäimistöä, jos se ei ole selvää.

Sauna lähestyy. Kirjoitan ajatuksiani ja siirryn sinne. Huomenna jatkuvat puuhommat. Jos hyvin käy, saan puuhommista palkkioksi DVD-aseman, joka tarkoittaisi etten tarvitse isoa konetta matkalla, mikä tarkoittaisi että voisin ottaa pikkupäpän sinne, mikä tarkoittaisi helppoutta, mikä tarkoittaisi ihan liian pitkää virkettä.

Sirenian 9 Destinies - kiekko on aivan aliarvostettua kamaa. Orkesteri toimii loistavasti, kuoro antaa kylmiä väreitä koko suvulle, Monika on kuin Nightwishin Anette (kun ääneen tottuu, niin tajuaa sen mahtavuuden), biisien rakenteet on mahtavia, ja Veland örisee uskomattomalla tavalla. Uskomattomuutta lisäisi, jos herra örisisi enemmän.

Ja sitte saunaan.

Lauantaipäivä

12 päivää ja olen lentokoneessa matkalla Egyptiin. Ja kun tulen sieltä, täällä on parasta olla alkukevät kauneimmillaan.

Sain tehtyä ainoan äikän ykköskurssista puuttuneen suorituksen. Saanen siis ehkä 3:n siitä kurssista. Yksi tehtävä meni perseelleen, tuosta tehdystä en osaa sanoa vielä, koe meni yllättävän hyvin ja esseestä tuli 9!

Tämä päivä mennee joko siivotessa tai Housen kanssa. Näinä päivinä en ole ollut kotona kovin tuottava, toisin kuin koulussa.

Friday 19 March 2010

Oikeusopin koe

Hmm... Hyötykäyttöä nämä kouluviikot. Ensimmäisellä tunnilla saatiin tehtävä, joka piti toteuttaa pseudona, ja joka tultaisiin joskus tulevaisuudessa vääntämään C++:lla ja Javalla. Mutta vain kun ne eivät enää ole niin pelottavia. Ja arvatkaapa kuka teki sen tehtävän C++:lla heti alkuun.

Toinen tunti taas, meillä piti olla yllämainittu koe. Opettaja on 22 minuuttia myöhässä tällä hetkellä, ja toinen opettaja antoi luvan hajaantua ympäri koulua kun opettaja on 15 min myöhässä. No, hypäriksi tämä siis muuttui. Minun lisäkseni luokan luona päivystää tasan yksi oppilas. Ja sekin istuu pelaamassa Runescapea.

Tällä hypärillä olisi kai pitänyt tehdä jotain tärkeää projektia, blogaamiseksi tämä silti meni. Toisaalta Fairandcruel-adminin hypärillä piti tehdä jotain yhtä tärkeää, mutta hänen projektinsa kaatui Da Vinci Code - soundtrackin kuunteluksi.

Kotona olisi tarkoitus harrastaa. Yool.blogissa mainitun koneen kanssa, lähinnä. Tai sitten pelaan. Viikonloppuna on vuorossa läksyt. Ja mitä muuta? Ei kait mitää.

Thursday 18 March 2010

Delain

Kirjastosta tuli levy. Selvästi hetken_suosikikseni alkaa nousta kevyempi musiikki, Mortemia ja Sirenia saanevat väistyä pieneksi hetkeksi Delanin April Rain - kiekon tieltä. Toki jotkin Radio Nova -puritaanit voivat säikähtää, että hui, sähkökitara joka on muutakin kuin taustarätinää, mutta minä tykkään. Charlotte Wessels ja Morten Veland ovat aivan yhtä mahtavia laulajia, mitä nyt Norjalaisen laulajan äänessä on "hieman distorttia".

Seuraavaksi OS/2 sisään?

Lukekaa tämä, toteutin uhkaukseni joka sijaitsee blogipostin tageissa. Asensin OS/2:n! Kuten arvata saattaa, olivat omat OS/2 Warp 3 - korppuni puolikuolleita siitä, kun heitä ei ollut koskaan asennettu. Onneksi olen koulussa! Opettaja lahjoitti oman OS/2 Warp 3 - CD:nsä hyvään tarkoitukseen.... Ja hyvään hintaan. Tarkoitus olisi ottaa uudemmasta koneesta, jota en todellakaan ole laittamassa nettiin, PCI-LAN - kortti ja asentaa se tuohon OS/2 - koneeseen ja toivoa etten joudu pelkän TCP/IP:n vuoksi asentamaan Warpia uudelleen...

Novellikommentointi

Okei, enää ei tarvinnut miettiä mitö pyörä symboloi. Nyt päästiin miettimään että symboloiko taulu ystävyyttä, ja miks kultakala hylkäsi teinin. Elämäntapavalittajaksi voin paljastua, mutta rasittavaa... Ei vain voi lukea erilaisia tekstejä, täytyy tulkata jokaiselle sanalle novellissa jokin merkitys. Pahimmillaan, eli ensi tiistaina, saa kirjoittaa 200 sanan tulkinnan.

Ja seuraavaksi on sanari. Kuka onkaan lukenut? En minä ainakaan!

Dreamerandthewine

Tässä blogauksessa minua on pitkään ahdistanut se että joudun tunkemaan "Jee elämä on kivaa" - ilmaisut ja "Jee osaan hyödyntää huippuvaikeita C++ - kirjastoja!" - ilmaisut saman blogin alle. Nicht Mehr! Perustin dreamerandthewine.blogspot.com - lyhytosoitteen alle casual-blogin. Jos sinua, rakas lukija, kiinnostaa tietää miten päiväni on mennyt, ole hyvä ja siirry lukemaan DatW-blogia, jos taas olet kiinnostunut siitä, miten sivustopäivitys tai SHaV4-moottori edistyy, lue Yool-blogia.

Ruokailu ohi on, ohi on, ohi on...

Äskeinen kirjoitus keskeytyi ruoan vuoksi. Sain syötyä herkkumakaronilaatikkoa. Ja nyt, puoli tuntia äikän alkuun. Sopivasti aikaa taivaltaa pasilan asemalle ostamaan juomaa, eikö? No ei todellakaan! - sanoo Electron lompakossani. Pyrin kuuntelemaan sen käskyä, kuten kaikkien muidenkin asioiden osalta.

Enkkukin kuulostaa extrakivalta. Pitkän päivän jälkeen pitäisi jaksaa keskittyä kielenopetukseen, onneksi ensimmäiset 3 kurssia on kerrattu yläastetta. Vaikein asia joka minun oletetaan osaavan, on passiivi. Voi kauhee ku on vaikea asia!!!

Sitäpaitsi täällä koulussa on lämmitys tulikuumalla. Herätkää, höntit, emme ole missään napajäätiköllä, eikä yläkerrassa asu yhtäkään Jagrafess - oliota. Ei meitä tarvitse polttaa tänne!

Ja mitäs muuta? Joku voisi päästää tuon tietokoneen tuskistaan ja päivittää sen tälle vuosikymmenelle. Yrittää epätoivoisesti ladata XP:tä, mutta sitten käy hassusti ja buuttaus alkaa alusta.

Kuunnelkaa Mortemiaa. Misere Morteme on mahtava levy.

Aloitusteksti™

Perustinpa tälläisenkin, blogi jossa keskityn kaikkeen muuhun paitsi tietokoneisiin liittyviin projekteihin. Tai ainakin pyrin keskittymään kaikkeen muuhun, Yool.blogspotin pidän erityisesti tietokone&koodiprojekteille. Elämä on kivaa.

Istunpa laitteistokurssin tunnilla. Viimeiset 20 minuuttia olemme katselleet juutuupista videoita siitä, miten kasataan tietokone. Voi iik, en todellakaan osaa kasata konetta itse, minullahan on kotona vain vesijäähdytetty, superhyperkone parin vuoden takaa.

Seuraavaksi koetaan kaksoistutkintolaisuuden ihanuuksia, lukioaineita. Äikkä etenkin innostaa! Todennäköisesti/muistaakseni jatketaan yhä runoteemaa. Tarkoittaakohan tuo "pyörä" ilmaus taivasta vai maata vai jumalaa ja elämän tuskaa, vaiko mahdollisesti spagettia?

Ja sitte syömään. Päätä särkee jo valmiiksi....

Kynttilä tunnelin päässä

Hemmetti! Melkein meni puolentoista vuoden työt vessasta alas. Tikku jäi matkan varrelle. Ja tikulla oli KAIKKI. Ei mitään varmuuskopioita :) Onneksi tuo pieni otus löytyi.

Lisäsin muuten blogiin linkin Yooliin. Tuossa oikealla, ylhäällä oleva "Yool 3.0" - teksti.

Wednesday 17 March 2010

Nyt se on sitte virallista :(

Yool kasvoi ulos websistä. Se oli sivuston hengissäpysymisen kannalta välttämätöntä, mbnetin PHP- ja FTP-tuet helpottavat ylläpitoa enemmän kuin uskoinkaan. Websissä sivuston kehitys oli hidasta ja tuskaista, http-javalaturi oli epävakaa ja kaikkea. Mbnetissä on tilaa kasvaa, kunnes löydän paremman palvelimen.

Monday 15 March 2010

Tuo parseri on uskomaton!

Kun SHaV4 ajaa joka rivin parserin läpi, pystyn kutistamaan tulosta - avainsanan toiminnot neljästäkymmenestä rivistä yhteen. Tästä moottoriversiosta tulee optimoiduin pitkään aikaan.

Oikea parseri

Yoolin SHaV4 - määritelmä tarvitsee jälleen päivityksen :)

Sen sijaan että tulkki palauttaa getwordillä itselleen kaiken toisen ja kolmannen lainausmerkin väliltä, ja etsii siitä muuttujat ja korvaa ne, SHaV4 esittelee oman parserimoduulin. Se tarkastaa jok'ikisen sanan käsiteltävältä riviltä, olettaen että jokainen järjestysluvultaan pariton lainaus sisältää muuttujan tai arvonpalauttavan funktion. Ladattuaan muuttuja-arvot käsiteltävälle riville, se palauttaa rivin runtimen puolelle, jossa tarkistetaan onko parseroitua riviä hyödyntävä avainsana "tulosta" vai "virhe" vai mikä.

Tämä tuo mukanaan sen, että muuttujasyntaksi on seuraava: tulosta "Nimeni on "+nimi+";, ja tuossa mainittu +nimi+ on aiemmin koodissa määritelty str - muuttujaksi."

Tuossa lainauksien välissä oleva nimi siis tunnistetaan muuttujaksi. Ainoa ongelma on, että jos käyttäjä haluaa tulostaa useamman muuttujan, se pitää tehdä näin: tulosta "Sitten seuraa läjä muuttujia: "+muuttuja+""+muuttuja2+""muuttuja4+" eli muuttujien välissä on oltava tyhjät lainaukset tai parseri hämääntyy";

Koodarin ei tarvitse enää huolehtia muuttujan tyypistä tulostaessa. Tulkki päästänee läpi samannimisiä muuttujia, mutta se ei missään nimessä ole A)suositeltavaa eikä B) todellakaan järkevää. Yritän totettaa tarkastuksen muuttujan olemassaolon varalta.

Friday 12 March 2010

Edistystä

Koska Skriptihöskä Alpha V4:stä on jotain näytettävääkin, perustin sille mbnetyooliin projektisivun.Sivulla tosin esittelen vasta tämän aiemmin päivällä mainitsemaani latausrituaalin lopputulosta, mutta katson saavutukseksi sen että moottori osaa eriyttää funktiot, pääsorsan ja käskykooditaulun toisistaan. Seuraavaksi väännän muuttujaAPI:n tähän päivään ja keskityn Runtimen kasaamiseen.

Huomautanpa muuten tähän väliin, että Runtime olettaa selvästi että funktiomäärittelyt hoidataan lopuksi. Lienee aika päivittää ShaV4 - syntaksimääritelmä lähipäivinä.

SHaV4-funktioiden tuoma muutos

Funktiot ovat teoriassa ihan toimivia, mutta kun ennen koodi ajettiin laturin, esikäsittelijän ja "compilerin" läpi, niin SHaV4 pallottelee koodia kolmen esikäsittelyvaiheen ja ainakin kahden kääntövaiheen lävitse.

Tuesday 9 March 2010

Skriptihöskä elää taas

Sain bussissa idean: Skriptihöskän versiossa 0.3 nähdyt puolipilkut palaavat! Joka rivin, lukuunottamatta foreja ja iffejä ja hienompia rakenteita, on päätyttävä SHaV4 - syntaksissa puolipilkkuun (;). Tuossa vanhassa versiossahan puolipilkuilla välitettiin puolipilkuilla rivien määrä. Nyt suunnittelen sellaista, että jos normaalit komennot lopetetaan puolipilkkuun, on tulkin ja tavuohjeistimen tasolla asiat PALJON paremmin. SHaV3:ssa yksittäiset rivit olivat kokoelman jäseniä, kun taas SHaV4:ssa suunnittelen että koko koodi ladattaisiin yhteen ainoaan muuttujaan. Tätä muuttujaa parseroitaisiin sitten GetWord(koodi,N,";") - funktiolla, jonka parametreissa koodi on muuttuja joka sisältää koodin, N on For - rakenteen hallitsema juokseva numero, ja viimeinen parametri määrittelee erotusmerkin.

Eli. Yksi muuttuja, josta napattaisiin Getwordillä pienempiä paloja käsiteltäväksi. Järjettömästi helpompi koodata kehittyneeksi kuin rivi/kokelman jäsen - ajattelumalli.

Ja toinen uutinen, kun viimeisissä blogiviesteissäni hehkutin että osaan käyttää tiedostoja c++-koodilla, niin pakkohan tätä oli soveltaa. Olen aloittanut Skriptihöskä++ - projektin. Kyseessä on siis ajoympäristö, joka lukee koodin, muodostaa siitä Integertaulukon josta switch() - rakenne lukee että miten toimia, ja siinä sivussa ajaa koodin. Eli käytännössä sama projekti kuin Skriptihöskä, c++:lla vain kirjoitettu.

Suunnitelma olisi että SHa++ söisi SHaV4 - syntaksia, josta kerronkin seuraavaksi.

Kun vanhemmissa versioissa pystyi vain latelemaan komentoja:

tulosta "Hello world"

odota_painallusta

SHaV4 odottaakin seuraavanlaista koodia:


tulosta "Hello World";

odota_painallusta;


Eikä tässä vielä kaikki, tässä oli vasta näkyvin uudistus. Chen suuntautuva syntaksi tuo mukanaan myös funktiot (ainakin suunnittelutasolla). Kun jo SHaV2 esitteli muistaakseni muuttujat C:mäisesti "int muuttuja" tai "str muuttuja", niin SHaV4:n mukanaantuoma funktiomäärittely menisi jotenkin seuraavasti: "int funktio(int yks int kaks)" eli paluuarvo, funktion nimi, ja parametrit. Konepellin alla tuo loisi funktiokokoelmaan uuden jäsenen jonka koodi-kenttään sijoitettaisiin varsinainen koodi ja "kahvana" nimi-kenttä saisi funktiomäärittelyssä määritellyn nimen (yllä olevan perusteella siis "funktio")

Parametreja täytyy vielä miettiä. Yksi vaihtoehto on että teen muistipalakokoelman, josta luon joka funktiolle oman jäsenen, joka omaa osoittimen muistipalaan, johon on tallennettu asciita tai integerejä parametrin tyypistä miettien. Helpomminkin voisi tehdä, mutta pitäähän funktio - käsitteen pinoperinteitä kunnioittaa.

Ja mitäs muuta, ei kait tässä enää enempää. Perustin Yooliin (3.0) projektisivun, johon tulee vielä sisältöä (eli dokumentaatiota) kun projektit ovat julkaisukunnossa. Nauttikaa.

Sunday 7 March 2010

Siis se fileio

Koska blogger pelkää pienempikuinmerkkejä, hakekaa toimiva .cpp täältä

Saturday 6 March 2010

C++ FileIO

Tässä on toimivaksi todettu demo C++:n tiedosto-ominaisuuksista:

#include
#include
#include

using namespace std;
using std::string;
using std::fstream;

int lue();
int kirjoita();

int main()
{
    cout<<"Haluatko lukea tiedostosta vai kirjoittaa?\n";
    cout<<"0=lukea\n1=kirjoittaa\n";
   
    int valinta;
   
    cin>>valinta;
   
    switch (valinta)
    {
        case 0:
            lue();
            return 0;
        case 1:
            kirjoita();
            return 0;
    }
}

int kirjoita()
{
    string line;
    fstream f;
   
    f.open("fileio.txt",ios::out | ios::in | ios::ate);
   
    if(f.is_open())
    {
        getline(cin,line);
        getline(cin,line);
        f << line<<"\n";
    }
    return 0;
}
   
int lue()
{
    string line;
    fstream f;
    f.open("fileio.txt");
   
    if(f.is_open())
    {
        while(!f.eof())
        {
            getline(f,line);
            cout <<
        }
        f.close();
    }
    else cout <<"Huono tiedosto :(";
   
    system("PAUSE");
    return 0;
}