tiistai 10. syyskuuta 2013

CSS - Blendailua ja luokittelua

CSS is pretty cool already o.O

Oon tässä viimeisen vuoden aikana sillon tällön pläränny CSS-vinkkejä ja huomannu, että perhana sillähän voi tehä jo vaikka mitä kivoja juttuja, mitä aiemmin tykkäsin tehä Flashilla! Esim.
  • Opacity
  • Dropshadow
  • Blendmode
Border-radius oli myös kiva havainto. :) Pitäneepä selvittää voiko tehdä myös sellasia 45 asteen kulmia, mitä tein ekalle nettisivulleni, Heke's Homesiin. Ja glow-efektejä pitää tutkia kans.

Classes

Oon ehkä vähän daiju, mutta tajusin tässä vasta konkreettisemmin, että miten käteviä Classit oikeestaan on. Esim.
  • Yhdellä komponentilla, voi olla monta eri luokkaa
  • Yksi luokka voi määritellä esim. pelkästään taustakuvan tai alleviivauksen
  • Luokkia voi myös lisäillä ja poistaa jQueryllä
tosin en oo keksiny vielä miten tuota viimeisintä käyttäisi järkevästi missään...

Nyt, kun vielä oppisi tuon sijoittelun sillei, että osaan käyttää jotain tarkoituksenmukaista tekniikkaa aina, kun jotain yritän saada aikaan...

3D

Web-3D juttuja olis kiva kans alkaa vähän tutkia. Olisi kiva olla guru tekemään 3D-käyttöliittymiä. :P

torstai 14. maaliskuuta 2013

RDF ja SPARQL

Pakko kirjottaa nyt muistiin jotain, kun niin pitkään pähkäilin ja kuitenkin hoksailinkin kaikenlaista.

Ensinnäkin kätevä työkalu, jolla saa muotoiltua mm. XML mallisesta RDF:stä vähän helpompi lukuisempaa:

http://www.mindswap.org/2002/rdfconvert/

No se nyt sit jäi. Piti palkinnoks pelailla vähän. Hitto 5h :D

RDF Schema

Okei. Koitetaan summata vähän jotain mitä tässä kipeenä nyt oppinu näistä:
  • Luokat (rdfs:Class) on hierarkioiden luomista varten. Luokat voivat olla toistensa alaluokkia (rdfs:subClassOf).
  • Olio-ominaisuudet  (Object properties) määrittää yksittäisten olioiden väliset suhteet riippumatta niiden hierarkiasta
  • Data-ominaisuudet (Data properties) määrittää yksittäisten olioiden arvot, kuten nimen, iän jne.
Näköjään RDF Schemassa on erikseen luokkien ja alaluokkien määrittely, sit joidenkin "literaalien" (rdfs:Literal) määrittely sekä ominaisuuksien ja niiden hierarkioiden määrittely ja sit vasta itse ontologia.

Scheman pääidea on siten kai määritellä nää "Domain" ja "Range" jutut, että ontologia datassa on jotain rajoja ja määrittelyitä. Nää on kai tärkeitä, että tietokoneet ymmärtävät niitä?

Kuinka nuo RDF-tiedostot laaditaan ja miksi niihin viitatataan?
Jäi vähän epäselväksi nyt, kun pitäisi oma ontologia luoda.

maanantai 18. helmikuuta 2013

Matriisi matikkaa ja kannanvaihto (Harj5)


Jos ton matriisien kertolaskun nyt joskus oppis vaikka. Auttaisko, et muistaa ton kuvan? Että siinä on A (eli enimmäinen vektori) vasemmalla ja B (toinen vektori) ylhäällä. A * B. Noiden paikat tossa kuvassa vaihtuu, jos kertoo B * A ja se ei kuvan tapauksessa ole edes määritelty, koska B:llä on erimäärä sarakkeita, kuin A:lla on rivejä.

Kannat

Ehkä mä nyt vähän hiffasin lopulta noi kannat. Tai oon mä kai ne tajunnu jo joskus sillon JAMKin peliohjelmoinnin matikkaosiossa, mutta nyt osaan ehkä vähän perusteellisemmin perusteet. En tosin kaikkea teoriaa kyllä todellakaan vielä. Näitten kans pitää leikkiä enemmän, esim. Javalla.

Vektori voi olla täysin sama (siis visuaalisesti), mutta eri kannassa sen komponentit ovat eri. Mitä kohtisuoremmassa kannat ovat, sitä lyhyemmin komponentein keskimäärin vektori voidaan ilmoittaa. Veikkaisin... x)


perjantai 15. helmikuuta 2013

Logaritmit

Okei, en näköjään voi vältellä opettelemasta noita nyt kerralla kunnolla. Niitä tarvitaan näköjään Algoritmien hiffaamisessa sen verran usein ja välistä myös matikassa.

Eli se tarkoittaa niinku sitä, että jos

y = log x

niin y kyllä kasvaa koko ajan, kun x:kin. x < 0 ei vissiin oo määritelty edes? Pitää testailla. Mutta niin... y siis kasvaa, mutta sen kasvu hidastuu koko ajan, mitä suuremmaksi x kasvaa. Se kuinka nopeasti se kasvu hidastuu, riippunee logaritmin kannasta? Mitä isompi, sitä nopeammin hidastuu? 

Vähän paremmin pitää viel pyörittää tää aivoihin, löytää kunnolla se yhteys exponenttifunktioihin ja tajuta miten se kanta vaikuttaa. Myös vois tutkii missä kaikessa tätä voi tai on hyvä käyttää.

maanantai 4. helmikuuta 2013

Matlab Vektorit, pistejoukot ja plot() (Harj4)

Välillä meinaa järki mennä, ku pitää aina opetella uusiks noita Matlab-käskyjä. Siispä kirjotan vähän jotain ylös, minkä kanssa jouduin tänään tuskailee kunnes lopulta aukes.

Plot() ottaa siis parametreikseen mieluiten vektorin x (joka sisältää kaikki pistejoukon x-koordinaatit) ja toisena parametrina vektorin y (joka taas sisältää kaikki pistejoukon y-koordinaatit). Esim. näin:

plot( v[ 1, : ], v[ 2, : ], 'color', [ 1 0 0 ] ... jne.

Muistaakseni tuo hakasuluissa oleva ensimmäinen koordinaatti kertoo, miltä riviltä otetaan ja : tarkoittaa, että otetaan kaikki sen rivin alkiot.

Enivei, kun antaa plotille koordinaatit näin, se automaagisesti piirtää viivat yhteen järjestyksessä. On se niin helppoo.

Jos taas antaa koordinaattei näin:
plot( v(1,1) , v(2,1), v(1,2), v(2,2), '*', 'color', [ 1 0 0 ] ... jne.

Niin Matlab tulkitsee koordinaatit pisteiksi ja piirtää ne pisteinä. Nämä eivät tietenkään näy kuvaajassa, ellet tuo niitä esiin tuolla '*' -tähtiparametrilla, joka tulee siis heti koordinaattien perään.

Muista piirtäessä myös ne perus:
  • figure(1);
  • clf;
  • hold on;

maanantai 28. tammikuuta 2013

Matlab: Kantavektoreita (Harj11)

Tällä koodilla voi luoda kaksiulotteiset (n = 2) kantavektorit:

a = 2*pi*rand(2,1);

f1 = [ cos(a(1)) , sin(a(1)) ];
f2 = [ cos(a(2)) , sin(a(2)) ];

F = [ f1 ; f2 ];


Tämä funktio luo parametrin mukaan n-ulotteiset kantavektorit:

function F = luokantav( n )
   
    % a = 2*pi*rand(2,1);
   
    F = zeros(n,n);
    f = zeros(1,n);
   
    for i = 1:n,
        for k = 1:n,
            f(1,k) = rand();
        end
        F(i,:) = f;
    end

end


Tämä tekee saman yhdellä rivillä (Matlab, doh...):

rand(n,n);

Katso netistä EJML -java-kirjasto matriisien kanssa leikkimiseksi.

keskiviikko 23. tammikuuta 2013

Hello World!

Pitkästä aikaa koodasin rivin javaa, kun väänsin Hello World tutoriaalin (LOL). :) Unohtunu aika pahasti ihan perusjutut, mutta toisaalta myös kaikki mitä tuli vastaan tuntui jollain tavalla tutulta. En vaan muistanut enää ulkoa.

Pitää seuraavaksi tutkia ainakin:
  • main -funktio ja sen erityispiirteet
  • abstraktit -funktiot, mitä tarkottaa
  • miten funktioiden syntaksi meni
  • mitä perus tietotyyppejä (vai mikskä niitä kutsuttiin?)
  • mitä tietorakenteita oli käytössä
  • miten luokkia tehtiin ja
  • miten niistä luotiin olioita
Kyl se tästä :P