Tühikud vs Tabid

Meil oli siin “väike” fleim tabide ja tühikute teemal ja sellega selgus, et inimesed ei saa päris hästi aru, mis värk nende tabide ja tühikute segamisega on.

Paljud väitsid, et tabidega ei saagi normaalselt treppida, et kõik läheb kohe katki. Mina väidan, et kui tabe õigesti kasutada, siis ei teki mitte mingeid probleeme. Asi on selles, et tabe peab kasutama ainult treppimiseks ja mitte mingil juhul joondamiseks.

Kõige lihtsam on seda seletada pildiga.
See on originaal, tabi laius on 4:

ts4.png

Kaks pilti, tabi laiusega 2:
ts2.png
ja 8:
ts8.png
Funktsioonide kirjeldused:

  • omgsobadstyle – Tabe ja tühikuid on kasutatud igal pool segamini.
  • badstyle – Tabe on kasutatud nii palju kui võimalik aga täpsem joondamine on tehtud tühikutega.
  • goodstyle – Tabe on kasutatud ainult treppimiseks. Joondamiseks kasutatakse ainult tühikuid.

Piltidelt on näha, et kui kasutada tabe nii nagu ette nähtud (goodstyle), siis ei lähe koodi formaat katki ja iga progeja näeb koodi nii nagu ta silmadel mugav on. MOTT.

Kui nüüd aus olla, siis olen ise rohkem tühikumees, põhjusel, et ükski editor ei tee vahet treppimisel ja joondamisel ja seetõttu peab seda käsitsi tegema. Mulle lihtsalt ei meeldi, kui tabe kiusatakse ja hea fleim kulub alati ära :)

PS. Kui kedagi huvitab, kuidas saab vim’i panna tabe näitama, siis selleks on parameeter listchars. Antud näidetes siis “set listchars=tab:>-“.

SVG kui joonistamisvahend

Põhjustatuna sellest, et SVG (Scalable Vector Graphics) pole kahjuks eriti tuult tiibadesse saanud, siis ei saa teda kasutada vektorgraafika avalikuks esitlemiseks. Seda lihtsal põhjusel, et enamik inimesi lihtsalt ei näe seda. Osalt nokk kinni, saba lahti probleem.

Vähene tugi brauserites aga ei tähenda, et SVG oleks halb formaat vektorgraafika kirjeldamiseks ja tegelikult on olemas ka mitmeid SVG rasteriseerijaid. Seetõttu olen igasugu piltide “joonistamiseks” SVG-d kasutanud ja need teistele näitamiseks rasteriseerinud. Et siis põhimõtteliselt kasutan SVG-d kui vektrograafika joonistamise teeki. Kuigi see võib esmapilgul tobe tunduda, siis minu jaoks on selleks palju erinevaid põhjuseid:

  • Ma ei pea õppima ühtegi vektrograafika teeki. SVG teadmisest on mul igas keeles kasu. Ja kuna ma teen piltide genereerimist väga harva, siis on see argument seda enam kaalukam.
  • Päeval kui SVG popiks muutub võin rasteriseerimise etapi ära jätta.
  • Päeval kui SVG popiks muutub tunnen ma SVG-d.
  • Ma saan SVG-d käsitsi “debugida” – näiteks värve või joone jämedust muuta.
  • Ma saan suvalises vektrograafika programmis keeruka pildi valmis joonistada ja hiljem seda programselt muuta. SVG on ju XML. Mis paneb mõtlema, et äkki oleks siin ka XSLT-st kasu? Peab proovima.

Muideks, viimane punkt näitab, et läbi SVG on võimalik disaineri ja progeja koostöö vektorgraafika genereerimisel. Näiteks disainer joonistab ilusa diagrammi valmis, sina ainult muudad numbreid ja pikkusi. Ja kui veel kaugemas tulevikus SVG-d otse veebilehel kasutada, siis saab ühe CSSiga ka diagramme värvida. Arvan, et disainer oleks õnnelik.

Nagu ikka viimasel ajal, olen ka selleks arenduseks Ruby-t kasutanud. Abiks on teek nimega Ruby/SVG, mis on küll suhteliselt lihtne ja kõiki SVG võimalusi temaga kasutada ei saa – näiteks gradientidest olen puudust tundnud. Rasteriseerimiseks olen kasutanud BatikSVG-d, viimane on küll Java teek/rakendus, aga see mind ei häiri.

Kindlasti on sellisel lähenemisel miinuseid, aga mina olen senimaani sellega rahul olnud.

Füüsilised asjad lihtsalt on lahedamad?

Ühel päeval tabas meid kõiki vaimustus, kui nägime unit testide tulemusi tšekiprinteril. Selles oli midagi väga lahedat, kui testi tulemused printeri kräginal termotrükis paberile ilmusid. Isegi vaatamata sellele, et teste on ainult üks.testitulemused paberil
Ja kui kedagi huvitab siis unittestimise teegiks kasutasin CuTest-i. Põhjus on lihtne – kuna käesoleval raua api ei käitu päris nii nagu peaks, pidin tegema natuke portimistööd ja CuTest oli lihtsalt kõige väiksem teek mis ma leidsin.

BEAWorld 2006, Praha, I päev

10. ja 11. toimus Prahas järjekordne BEAWorld konverents. Arvestades fakti, et Praha on hea koht kus õlut juua ning et me tegelikult ju WebLogicut igapäevatöös ja aeg ajalt ka Tuxedot kasutame olime kohal.BEAWorld2006

Esimene päev algas raskekahurväe keynotega, kus esinesid BEA CEO Alfred Chuang ning Intel Corp. UK managing director John Woodget. Kuna kogu konverentsi võtmesõnaks tundus olevat maagiline akronüüm SOA siis saimegi kuulda, mida need tegelased selle all mõistavad. Nagu Chuangi jutust selgus on aasta BEA buzzword SOA360. Ei tea kas seda peaks seda mõistma kui täisringi tegemist ning tagasi algusesse jõudmist.

Continue reading “BEAWorld 2006, Praha, I päev”

Aarhus, JAOO, day two

Teise päeva hommik tuli meie jaoks selgelt liiga vara. Lasime end sellest häirida, aga läksime ikkagi kohale kohe esimest keynote-i kuulama, seda rääkis Suni mees Guy L. Steele ning teemaks oli keel nimega Fortress, mida nad arendavad. Märksõnad, mis meelde jäid oli unicode (tähenduses, et miks peab keel olema ainult us-asciis, kui sa saad näiteks 10 erinevat sulgu ja pi-d kasutada) ja matemaatika. Ehk siis näited oli väga matemaatika-lähedased, et sa saaks kirjeldada oma arvutusi nii nagu matemaatikud. Millegipärast jäi mulje, et progejatest läks see jutt suhteliselt mööda, sest me ju armastame for-tsükleid ja meile ei meeldi summa märk. See oli silmarinig laiendav ning kui nende lootused on 2011 sellega popid olla, siis on sinna natuke aega ka. Continue reading “Aarhus, JAOO, day two”

Enterprise Architect – kas sellist CVSi tuge me tahtsimegi?

Enterprise Architect (EA) on muidu täiesti OK vaese mehe analüüsi ja disaini dokumenteerimise abivahend, kui otsida töövahendeid, millega nagu actually tööd ka teha saab. Jah, tal ei ole normaalseid reverse engineeringu omadusi nagu näiteks Togetheril, aga ta ei maksa ka tuhandeid dollareid per litsents. Üldiselt tundub featureset täitsa muljetavaldav. Kuna vahend ise reklaamib ühe oma olulise featurena “Team Based Modeling” nimelist omadust, siis uurisin tiba, et mismoodi see mulle kasulik võiks olla. Seni oleme EA mudeleid jaganud läbi CVSi pandud binaarse EA projektifaili, aga selle CVSis hoidmisega on omad probleemid – näiteks on muutusi ebamugav trackida. Samuti oli tüütu ekspordi ja impordiga eri tegelaste poolt tehtud mudeield mergeda.

Oleks ju tore, kui EA seda ise teeks mõtlesin.

Continue reading “Enterprise Architect – kas sellist CVSi tuge me tahtsimegi?”

Keel D

Pean tunnistam, et vaatamata sellele, et olen D keelest korduvalt kuulnud pole ma varem kunagi seda uurinud arvates, et see on veel keerulisem variant C++ist. Sellel nädalavahetuse selgus, et tegu on väga huvitava edasiminekuga. Ning see edasiminek on toimund kõige paremat teed pidi – varem tehtud vigu on tunnistatud ja need on parandatud. Kõik mis mulle Cs ja/või C++’is ei meeldinud on lahenduse saanud. Lisaks on veel nii mõndagi huvitavat. D keele eesmärk on olla võimas ja kiire süsteemprogrameerimise keel nagu C ja C++ aga samas mugav ja kaasaegne nagu Ruby ja Python. Keelel on kõigile tuttav C stiilis süntaks. D on loomulikult ka staatiliselt tüübitud ning masinkoodiks kompileeritav – tegu ei ole kolmanda Javaga :D

Continue reading “Keel D”

Google ja AJAX ning tore aeg

Google AJAX framework ehk GWT (Google Web Toolkit | http://code.google.com/webtoolkit/ ) on Google poolt välja antud AJAXI API (nagu nimigi vihjab), mis peaks AJAX-it kasutavate aplikatsioonid tegemist hõlbustama. Asja omapära on selles, et kirjutatakse koodi Javas, mis hiljem kompileeritakse JavaScriptiks.

Sai siis otsustatud, et teeks ühe reallife testimise antud jubinaga. Ülesandeks oli GWT-d kasutades teha olemasolevale süsteemile (J2EE +JSP) interaktiivne andmete uuendamine.

Asi sai siis kätte võetud ja alustatud algusest peale, puhtalt lehelt. GWT õpetuste järgi on küllaltki kerge esialgu järje peale saada. Kõvasti aitavad kaasa ka GWT tööriistad, mis valmistavad ette Eclipse-i projekti koos vajalike skriptide/failidega ja samuti genereerivad kõik vajamineva uue aplikatsiooni ehitamiseks. Loodud failide hulgas on skriptid koodi jooksutamiseks nii hosted mode-is kui kompileerimiseks. On ka ette antud “Hello World!” näide, mida oli alustuseks väga mõnus näppida.

Continue reading “Google ja AJAX ning tore aeg”