esmaspäev, 30. august 2010

Kuidas töötab AJAX?

Ma olen sellest kunagi aastaid tagasi juba juttu teinud, aga nüüd otsustasin põhjalikumalt asjad kirja panna ning tulemuseks on seletus, kuidas teha AJAX päringuid ILMA väliste teekideta (jQuery, Prototype vms.).

Muudest juttudest on veel pooleli sündmuste haldus (hetkel on kaetud ainult DOM level 0). Üritan selle teema millalgi uuesti käsile võtta.

kolmapäev, 25. august 2010

IFRAME skriptimine

Kirjutasin lühikese ülevaate IFRAME elemendi skriptimisest http://bit.ly/cdUwq6

IFRAME element on teinekord väga mugav variant näiteks kolmanda osapoole koodi isoleerimiseks muust lehest või siis brauseri puuduste ülesaamiseks. Reeglina kasutatakse seda WYSIWYG tekstitoimetite kuvamiseks (vanemad brauserid ei toeta selleks palju sobilikumat contentEditable parameetrit) ning ka "AJAX üleslaadimist" (mis tegelikult pole küll väga AJAX, aga see selleks). Sellisel juhul suunatakse faili üleslaadimise vorm IFRAME elemendi pihta, kui fail saab üles laetud käivitab freimi sisse tekkinud skript põhilehel teavituse üleslaadimise lõppemise kohta ja leht saab kasutajale vastava teate anda.

laupäev, 21. august 2010

Vana tnnistus

Lappasin enda vanu pabereid ja leidsin sellise tunnistuse (kliki pildil, et suuremalt näha):


Peale emotsionaalse väärtuse pole sellel paberil küll suurt midagi, aga vahva ikka.

See tuletas ka meelde, et peale keskkooli astusin ju Kõrgemasse Sõjakooli ja sain esimese 10 hulgas sisse. Täiendavaks sisseastumise tingimuseks oli aga, et tuleb minna koheselt ajateenistusse ning läbida seal vähemalt seersandikursused. Ajateenistusse läksin, aga kursustele mitte ja ainsaks saadud diplomiks ongi seesama 3 nädalase USA õppuse läbimise diplom (õppuste ajaks "ülendati" reamehest jaoülem-tõlgiks). Samal sügisel astusin TTÜ'sse ja militaarkarjääri peale pole enam mõelnud :)

reede, 20. august 2010

Node.JS v.0.2

Täna uuenes lisaks muudele asjadele ka Node.JS ja seda versioonile v.0.2. Tegu ei ole millegi põhimõttelise uuendusega vaid API fikseerimisega - kogu 0.2 perekonna juures ei tohiks API väga muutuda. Seega midagi sellist nagu promise objektide kaotamisega, kus suur hulk programme lakkasid töötamast, lähiajal enam juhtuda ei tohiks.

NETI.ee uuendus nüüd kõigile nähtav

Täna hommikul kell 05.50 uuenes NETI.ee kujundus. Senini sai uut kujundust näha aadressilt eval.neti.ee, kuid nüüd on see NETI pealehel kõigile avatud.

Lisaks värskendatud välimusele on lisandunud näiteks pisipildid otsingutulemuste juures, kataloogikirjete juurde tekkis info ettevõtte andmetega, sisse saab logida Facebook/Google kontoga jms. Ettevõtete andmete juures olev kaart muuseas ei ole staatiline pilt vaid hiirega täiesti vabalt lohistatav.

PS. Kuna Elion uuendas eile vanemate digibokside kasutajaliidest, siis tekkis ka sinna uus NETI.ee (Menüü -> Internet -> NETI). Eriti soovitan tähelepanu pöörata digiTv NETI esilehel olevale "Kasiino" lingile :)

neljapäev, 19. august 2010

Garage48 osalejate rollide jaotumine

Garage48 üritus on avalikustanud seekordsed osalejad, kuid tekkis huvi mis ulatuses eri rollidega inimesed üksteise suhtes jagunevad. Koostasin seega lihtsa graafiku, kus on rollide järgi inimesed tulpadesse pandud.

(Kliki pildidl, et näha suuremalt)

laupäev, 7. august 2010

Konkurss JS1K

Kes veel ei tea, siis parasjagu on käsil konkurss JS1K mis võtab vastu kuni 1 KB (1024 B) JavaScripti programme. Programmid ei tohi sõltuda ühestki välisest failist, ainsaks boonuseks on võistluslehel juba asetsev CANVAS element, mida saab mugavalt ära kasutada. Konkurss kestab kuni 10. septembrini.

Minu osalemistöö leiab siit.

pühapäev, 1. august 2010

node.ee

Paar päeva tagasi sain tööle tõenäoliselt esimese avaliku node.JS serveri Eestis - node.ee. Tegu pole ses suhtes küll 100% node.JS serveriga, kuna antud platvorm ei paista maailmale kätte otse, vaid läbi nginx proksi. See tähendab, et hetkel kõik aadressid kujul node.ee/node/* teenindatakse just node.JS poolt, muude eest aga hoolitseb juba nginx.

Sellega seoses olen juba paari asja katsetanud ja ühe huvitava projektina proovisin teha kliendipoolset andmebaasi liidest. See tähendab, et server näitab välja otsad andmebaasiga majandamiseks, kuid konkreetseid tegevusi teeb selle liidese abil juba kliendi pool ehk brauseris jooksev JavaScript. Tulemust saab näha siit. Kõik päringuandmed teisendatakse vahepeal lihtsalt objektidest JSON'i kujule ja vastupidi kuid edasi antakse kliendile/andmebaasile need juba originaalkujul.

See tähendab, et kui klient koostab mingisuguse päringu (objekti kujul, näiteks {eesnimi:"Peeter", perenimi:"Meeter"}), teisendatakse see JSON'iks, saadetakse serverile, server taastab JSON'ist uuesti objekti ja annab selle andmebaasile töötlemiseks. Täpselt sama, ainult et vastupidises järjekorras, toimub ka andmete saatmisega andmebaasist tagasi kliendile. Server otsib näitena toodud päringu alusel üles kõik kirjed, kus eesnimi on Peeter ja perekonnanimi Meeter ja tagastab need massiivina kliendile.

Juhul kui selline baas on kasutajapõhine ning erinevate kasutajate baasid on üksteisest eraldatud (näiteks serveri poolt lisatud prefiksid tabeli nimedes), peaks tulemus olema piisavalt stabiilne, et a) kliendil on väga suur vabadus käia andmetega ringi nagu soov on ning b) üks klient ei saa ligi teise kliendi andmetele. Suurepärane näiteks veebilehel olevatele widgetitele enda seadete salvestamiseks jms.

Huvitav teema indeed!