Näytetään tekstit, joissa on tunniste dencrypt. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste dencrypt. Näytä kaikki tekstit

sunnuntai 18. huhtikuuta 2010

For loopin optimointi

[en]

Alla olevissa esimerkeissä käsittelen javan java.util.List tietotyypin implementaatioita, mutta sama toistuu myös monissa muissa erityisesti imperiatiivista syntaksia noudattavissa ohjelmointikielissä, sekä muissa tietotyypeissä kuten taulukoissa, mapeissa yms.

Näemme hyvin usein ohjelmoinnissa, sekä opiskelumateriaaleissa seuraavanlaisia for-looppeja:

for(int i = 0; i < list.size(); i++) {
teeJotain(list.get(i));
}

Esimerkissähän ei sinänsä ole mitään vikaa, mutta jos on mielenkiintoa kirjoittaa optimoitua koodia, kannattaa opetella kirjoittamaan for ( foreach ) looppi seuraavan esimerkin mukaisesti:

for(int i = 0, len = list.size(); i < len; i++) {
teeJotain(list.get(i));
}

Ylemmässä esimerkissä on se vika, että list.size() metodia kutsutaan ennen jokaista iteraatiota vertailun yhteydessä, tämähän voi olla joskus ideanakin jos tiedetään mitä tehdään ja muutetaan listan kokoa iteraatioiden aikana, mutta useimmiten tästä ei ole kyse.. for lausekkeen ensimmäinen osio, joka on pääsääntöisesti ideoitu muuttujien alustukselle, suoritetaan vain kerran, ja täten vertailussa suure tiedetään ja sitä ei tarvitse kysyä uudelleen listalta, joka kuluttaa enemmän prosessoriaikaa.

Noh, hyvin usein listarakenteet ovat aika pieniä, ja saavutettu hyöty suhteellisen minimaalinen, mutta toisaalta toinen syntaksikin on hyvin pieni muutos opetella, ja kerran opittua se tulee suoraan selkärangasta eikä täten aiheuta turhaa päänsärkyä.

Lisäksi lista voi olla myös jollain tapaa dynaaminen, esim. size() metodi voi suorittaa tietokantakyselyn tai mitä hyvänsä, jossa hyöty vain korostuu.

lauantai 17. huhtikuuta 2010

Uusi google docs dokumentti ja kansiot

[en]

Pitkästä aikaa olen viettänyt hetken aikaa Google docs:n parissa, aivan loistava teknologia, mutta nyt huomasin varsin ikävän puutteen kansioissa.

Jos haluan luoda uuden dokumentin johonkin tiettyyn kansioon, voin kyllä avata kansion, ja luoda siinä uuden dokumentin, mutta dokumentit menevät aina ei kategorisoiduksi, eikä jää kansioni sisälle, vaan minun on avattava näkymän jossa näkyy kaikki tiedostoni ja sieltä erikseen määrätä uusi dokumenttini tiettyyn kansioon.

Asiaa etsittyäni netistä vaikuttaa siltä että muillakin on sama ongelma, ja ainakaan tänä päivänä siihen ei ole minkäälaista ratkaisua, mutta eiköhän googlen kehitysporukka korjaa ongelman jossain vaiheessa.

torstai 15. huhtikuuta 2010

Elektroniikka labra Velleman EL3001

[en]

Lapsuudesta lähtien olen ollut erittäin kiinnostunut elektroniikasta, tekniikasta, ohjelmoinnista yms. asioista, jopa matematiikasta jonka teoriasta en ymmärrä yhtään mitään, mutta minkä logiikkaa käytän joka päivä ohjelmoidessani kaikenlaisia funktioita. =)

Kun olin nuorempi, halusin monta kertaa ostaa jonkinlaisen elektroniikka labran, ja opiskella elektroniikan alkeita, mutta minulla ei koskaan ollut rahaa tai aikaa tai jotain muuta oli tiellä, ja muistin tämä pari päivää sitten. Rupesin etsimään internetistä jonkinlaista elektroniikka opiskelu materiaalia, ja löysin Velleman EL3001 elektroniikka labran.

http://www.tequipment.net/Velleman_EL3001.html

.. joten nyt kun olen vähän vanhempi ja minulla on vähän rahaa sijoittaa, tilasin yhden tuollaisen, ja en malta odottaa sen saapumista ( tilaus kestää n. viikon.. ), joten jokin päivä blogaan vielä tuosta vekottimesta.

Liitetiedostojen lisääminen blogiin

[en]

Seuraava toiminto, mitä rupesin pian haluamaan tähän blogiin, on kyky lähettää liitetiedostoja, mutta näyttää siltä, että voidaan lähettää vain kuvia, ja videoita, joten ei jarreja, zippeja yms.

Onneksi voimme jakaa tiedostoja Google Docsilla, joten loin jaetun kansion DEncrypt liitetiedostoille, ja nyt voin uploadata tiedostot kansioon ja liittää ne blogiin.


Joten... sano hello HelloWorld.scala:lla

DEncrypt

[en]

Terve,

DEncrypt on blogi, missä blogaan elämästäni, ideaoistani, ajatuksistani, ohjelmointi vinkkejä, yms. ihmisille, ja erityisesti itselleni muistiin.