Studio 1 -kurssin ohjelmointiprojekti: Aihe-ehdotus (täyspitkä versio) Haluan toteuttaa XHTML-selaimen, tai ainakin sellaisen raakaversion. Raakaversiolla tarkoitan sitä, että projektissa riittää varmaan laajuutta vaikka muille jakaa, joten ominaisuuksia on toteutettava tärkeysjärjestyksessä "kaikki mitä kerkiän" -periaatteella. Selitän hiukan idean taustaa: Halusin kaikkein mieluiten tehdä "oikean" ohjelman, eli oman vaatimattoman versioni jostakin tarpeellisesta sovelluksesta, jollaista tulee käytettyä säännöllisesti. IRC-asiakasohjelma ja weppiselain olivat ajattelemieni aiheiden (joissa olivat mukana myös mm. piirtämissovelma, työhuoneen sisustuksen suunnittelussa auttava feng shui -opas ja kirjoitusnopeutta ja -tarkkuutta testaava peli) kärjessä, kun Javassa kerran on kuulemani mukaan helppoa toteuttaa moista kommunikaatiota ulkomaailman kanssa. Tavoitteeni ovat korkealla enkä osaa sanoa onko irkkaus kyllin haastavaa toteuttaa kokeillakseni sitä kurssin projektina. Toisaalta HTML-sivujen lukeminen oikein, kun suurin osa netistä löytyvistä sivuista ei todellakaan toteuta mitään standardeja, on erittäin uuvuttava tehtävä eikä tietyn pisteen jälkeen enää vaadi opettelemaan uusia koodaustaitoja vaan keksimään mitä erilaisimpia tapoja joilla ihmiset ovat voineet tehdä jonkin tagin sivuilleen. HTML- ja CSS-referenssejä katsellessani luin sitten W3 Schools:n sivuilta (www.w3schools.com) vähän XHTML:n ideologiasta. Sisäistin sen seuraavasti: Nykyään on olemassa XML tietosisällön kuvailua varten ja HTML sisällön näyttämistä ja asettelemista varten. XML vaatii tarkkaa merkintätapaa ja sääntöjen noudattamista. HTML-koodia on vähän kaikenlaista ja -tasoista, ja tietokoneiden nettiselaimet näkevät paljon vaivaa pyrkiessään näyttämään kaiken hyvännäköisessä tai edes luettavassa ulkoasussa. Kännyköiden, kämmentietokoneiden ja muiden kannettavien pienlaitteiden selaimilla ei välttämättä ole tähän tehoja tai varaa käyttää virtaa mihinkään tarpeettomaan. Yhdistämällä HTML:n ja XML:n vahvuudet saadaan merkintäkieli, jolle on käyttöä nyt ja tulevaisuudessa: XHTML. XHTML vaatii tarkkaa, standardoitua koodausta. Tagien on oltava oikein sisällytettyjä, pienillä kirjaimilla (kuten XML:ssä), ja ne täytyy sulkea. Dokumenttien täytyy olla selkeästi muotoiltuja. XHTML:llä tehtyjä sivuja kykenevät lukemaan kaikki XML:ää ymmärtävät laitteet, ja kunnes muun maailman selainkanta päivittyy, voidaan sillä kirjoitettavista sivuista tehdä myös vanhempien sovellusten kanssa toimivia. XHTML-selaimella, joka siis ei ymmärrä tavallisia HTML-sivuja, voi kokeilla omia sivujaan ja opetella XHTML-koodin käyttöä. Sovelluksen avulla voi suunnitella nettisivuja pienemmillä resursseilla toimivien laitteiden käyttöön. WAPissa käytettävä WML on kirjoitettu XML:llä. XHTML-selaimen tekeminen tarjoaa kaikki samat ohjelmointitekniset haasteet kuin tavallisenkin nettiselaimen teko, mutta aikaa kuluu vähemmän toistavaan puurtamiseen. Toiminnallisuuteen tarvitaan ainakin Swingiä ja säikeitä, en tiedä mitä kaikkea pitäisi nimetä. Sovelmaa eli applettia selaimesta ei kai voi tehdä, käsittääkseni kun applettien ei anneta ottaa yhteyttä millekään muulle palvelimelle kuin sille, missä ne itse sijaitsevat ennen lataamistaan käyttäjän koneelle. (Myöhempi korjaus: http-yhteydet ovat sallittuja, joten appletin olisi voinut tehdä.) Tavoittelen arvosanaksi vitosta, tai kutosta jos sellaisia jaellaan. ^_^ Haluan kurottaa korkealle kun on kyse koodauksesta. Odotan tekeväni tätä pitkään ja hartaasti. Aikatauluni voisi olla jotain seuraavan tapaista: 12.-18.12. Java-projektia, 19.-28.12. perheen luona Joensuussa joulunvietossa, mahdollisesti koodailua ennen uutta vuotta, uusi vuosi, koodausta demotilaisuuteen asti. Tuolla tavalla minun pitäisi saada aikaiseksi 80-100 työtuntia. Ja kukaanhan ei kuulemma ole ikinä ehtinyt tehdä projektityötään täysin valmiiksi... Aion käyttää tietolähteinä mm. Sunin Java-tutoriaalia ja APIa, W3 Consortium:n ja W3 Schools:n nettisivuja (www.w3.org, www.w3schools.com) ja kirjaa Inside Java 2. Siinä oli varmaan kattavasti. Tämä tuntuu aiheena erittäin kiinnostavalta, mutta myös varsin vaikealta. Kuulen mielelläni kommentteja teiltä, vaikkei missään olekaan sanottu että sellaisia saadaan. :P En ole vielä täysin hylännyt muitakaan ideoitani, tämä vaatii tietysti lisää perehtymistä. Pekka Ryynänen