Featured Post

Helppo ja nopea kolmionpiirtorutiini.

Vau. Kehitys kehittynyt ja oppi opittu. public static void SolidTriangle(Point a, Point b, Point c, Color color) {             Point[] po...

Monday, January 21, 2013

Tänään salille // Programmer's Block

Jos nenä onnistuu olemaan vuotamatta verta, niin menen hikoilemaan tänään. Koska kunto ei parane itsestään, eivätkä kilot eikä sentit karise.

Töissä on ollut vaikeaa. Ei muuten, mutta on ollut todella vaikea kirjoittaa koodia, varsinkin niin että saa asioita valmiiksi. Toivottavasti kyseessä on vain blokki eikä burnoutin alkuvaihe. Kieltämättä, pari viime viikonloppua ovat olleet epätehokkaita irtiottomielessä, ja kunnon irtiotto on tarpeellinen sen kannalta että jaksaa olla töissä.

Syytän osittain kylmää säätä. Ei tee mieli lähteä, noh, minnekkään.

Lukemisen alla on Brian Sandersonin 'Warbreaker ', William Gibsonin 'Virtual Light ' sekä Stephen King, 'On Writing '

Writing Excuses - podcastia on tullut kuunneltua, sekä Youtubesta joitain kiintoisia luentoja.

Friday, January 18, 2013

Windows 7 - osion kutistaminen ja Ati koko ruudulle hdmi-kaapelilla

Minulla on Windows 8:n asennus uudelle osiolle työn alla.
Windows 7 - partition kutistaminen osoittautui yllättävän hankalaksi, Ultradefrag nakkaa tietyt tiedostot osion loppuun, mistä ne piti saada alkuun.
Vakio-defrag, ultradefrag, Defraggler ja Auslogics Disk Defrag epäonnistuivat.

MyDefrag tuntuisi toimivan.

Noin niinkuin tiedoksi.

Päädyin asentamaan windows 8:n vhd:lle. Näytönohjain ei halunnut aluksi näyttää kuvaa koko ruudulla ulkoisella monitorilla, joten joutui tutkimaan. Tästä linkistä löytyi apu.

Tuesday, January 08, 2013

wikidPad

tl;dr:
Suosittelen.

Pidemmin:
Minulla on tapana kokeilla kaiken maailman editoreita aina välissä, ja moni niistä on ainakin okei, ja usealle löytyy jokin spesifinen käyttötarkoitus. Vimiä suosin yleisesti, ja Q10 on tämän hetkinen suosikkini distraction-free editoreista.

WikidPad on editori wikimoodissa, ja vaikuttaa aika kivalta työkalulta ajattelemiseen. Voit kirjoittaa sekaan WikiSanan, josta kllikkaamalla pääsee ko. sivulle. Tämän lisäksi linkit näkyvät vasemmassa reunassa.

Tämä on oikein kätevää vaikkapa seikkailun suunnitteluun. Voin kirjoittaa MonsterManual, ja tuplaklikkauksen jälkeen minulla on paikka jonne laitan monsterit, voin kirjoittaa ImportantLocations ja bam! minulla on paikka minne laittaa ne. Kätevää. Ja koko homman voinee exportata HTML:ksi, vaikka en ole siihen vielä niin tutustunut.

Tärkeää on siis, että tämä on editori, ja koko ajan editointitilassa. Normaalisti wikissä liikuttaessa joutuu vaihtamaan editointi - ja lukutilan välillä, mikä on epäkätevää luomisprosessin aikana.

Ehdin vain vähän tökkimään tätä tosin eilen, joten pienellä varauksella uskallan suositella.

*edit*
Alternative To wikidPad
Kokeilin Tomboy Notesia, jonka vika on lähinnä siinä että se avaa uuden ikkunan kaikelle mahdolliselle. Muuten ihan pätevä.

Tässä tapaillessa tulee huomanneeksi että ihan tekstieditori, jossa on vasemmassa reunassa kansion tiedostot auki, ja tabituki on aika riittävä, jos vain on sen verta kurinalainen että tekee nipun kansioita.

Tämä ei ole ihan täysin riittävä, minulla kun esim. oli tapana kirjoitella officella tulostuskuntoon hahmot ja seikkailut. Hm.

Seuraavaksi voisi vähän vilkaista Scriveneriä.

Monday, January 07, 2013

Uuden vuoden wassup // Dieetti

Eli. Olen palannut arkeen.
Tammikuun tavoitteena on tiputtaa senttejä vyötäröltä.
Asian edesauttamiseksi laitan ylös metriikkaa (normi, minimi, maksimipullistus) spreadsheettiin, ja Google Docs piirtää siitä käppyrän.
Muuten, tämä tiheä sairastelu haittaa, no, kaikkea.

Normivyötärö on tällä hetkellä n. 109 senttiä, minimi 102 ja maksimi 116-119 muistaakseni.

Muutama idea pyörii päässä tällä hetkellä, mutta on vielä sellainen tottumattomuus etelässäoloon tyyppinen häslinki päällä. Aika kuluu nopsaan.

Wednesday, January 02, 2013

Uuden vuoden suunnitelmat

Hyvää uutta vuotta noin ensiksi.

Joulun ja uudenvuoden väli? Söin. Omnomnomnom. Kinkkua, joulutorttuja, piparia. Jonkin verran suklaata.
Nyt pitää sitten elää oikein uudenvuoden ja joulun väli.
Mieli kyllä tekee vielä suklaata.

Olen flunssassa (taas!), mutta Tammikuu on vatsanpienennyskuukausi. Eli eli, tulen postaamaan vyötärön sentit tänne, ja hakemaan niille pienennystä.

En osaa sanoa paljonko se on nyt tarkalleen, mutta enempi kuin metri.
Alle metrin olisi minulle normaali, ja alle 95 senttiä olisi hyvin.
Eli, keskivartaloharjotteita luvassa, ja jahka flunssa hellittää? Kardiota. Kolme varttia kardiota päivässä on aika tehokasta, mutta se saattaa olla tylsää. Ehkäpä kuntosalijumppa + 15 min kardiota päivälle?

Mutta siis, vyötärö pienenemään!

Friday, December 21, 2012

PHP array_update


function array_update($source, $updates, $keyGen = NULL) {
$out_array = array();
foreach ($source as $key=>$item) {
foreach($updates as $k=>$v){
if (isset($item[$k])) {
$item[$k] = $v;
} else {
throw new Exception("Item has no key $k");
}
}

if (NULL === $keyGen || !is_callable($keyGen)) {
$out_array[$key] = $item;
} else {
$out_array[$keyGen($item)] = $item;
}
}
return $out_array;
}

Although, array_map....

*update*

for some reason, no array_reduce with PHP5.3.3 in Debian, so...


function array_reduce($input, $callback, $initial = NULL) {
$v = $initial;
foreach ($input as $item) {
if (is_callable($callback)) {
$v = $callback($v, $item);
}
}
return $v;
}

Wednesday, December 19, 2012

Tekstuurimappaus

Ei ole vielä auennut, ei.

Mutta siis,

kun meillä on kolmio abc, jonka pisteet on järjestetty Y:n mukaan,

josta piirretään vaakasuora segmentti (x1, x2, y)

ja meillä on tekstuuri, jossa on määritelty kolmio ijk niin että i vastaa a:ta jne,

piste u, v vastaa pistettä x1, y ja
piste u', v' vastaa pistettä x2, y, niin

piste u = delta ij.X * ((x1-a.X)/delta ab.X)
piste v = delta ij.Y * ((y-a.Y)/delta ab.Y)


piste u' = delta ik.X * ((x2-a.X)/delta ac.X)
piste v' = delta ik.Y * ((y-a.Y)/delta ac.Y)

ensimmäinen näytepiste tekstuurista on u, v.

tämän jälkeen, otamme seuraavan näytteen pisteestä
u + ((u'-u)/(x2-x1))
v + ((v'-v)/(x2-x1))

kunnes näytteenottopiste on u', v' ja näytteitä on otettu (x2-x1) kappaletta.

x2, x1 ja y vastaavat todellisia koordinaatteja bufferissa.

Kokeilen mennä tällä ja katson mitä tapahtuu. Lisään ehkä havainnollistavan kuvan tänne johonkin väliin.

Tuesday, December 18, 2012

Dieetti, missä sitä ollaan?

Eli, nyt on 43. päivä, kuusi viikkoa takana.
En hoksannut punnita itseäni, kun pyörähdin salilla viime... mm, lauantaina, vai perjantaina? Olin viikonlopun Turussa, jolloin dieetti EI ollut voimassa, vaikka en isommin mättänytkään ruokaa - en tiedä, onko se tottumiskysymys vai johtuuko se kromin syönnistä, mutta ruokahalu on enimmäkseen kurissa.

Tämän päivän syönnit tulevat olemaan:
kuppi jugurttia, mandariini, kahvia, viinirypäleitä, ja n. 3-4 desin ruoka-annos.

En ole varma riittääkö tuo, ja joka tapauksessa, pitää käydä ruoka-kaupassa. Saatan ostaa kananmunia. Yhtä kaikki, en ainakaan kovin paljoa tuon ohi mene. Arvelisin että olen n. 7 kiloa pahimman alapuolella nyt. Saattaa olla optimistinen arvio, tosin.

Muuten, tuntuu että olen flunssasta taas toipunut, joten käyn salilla varmaan joko tänään tai huomenna.

Saatanpa värkätä naiivin, eli perspektiivin huomiotta jättävän,  tekstuurimappaus-algoritmin kanssa tänään.

Friday, December 14, 2012

Helppo ja nopea kolmionpiirtorutiini.

Vau. Kehitys kehittynyt ja oppi opittu.

public static void SolidTriangle(Point a, Point b, Point c, Color color) {
            Point[] points = { a, b, c };
            points = points.OrderBy((i => i.Y)).ToArray();
            a = points[0];
            b = points[1];
            c = points[2];
            double dabx = b.X - a.X;
            double daby = b.Y - a.Y;
            double dacx = c.X - a.X;
            double dacy = c.Y - a.Y;

            double x1 = a.X;
            double x2 = a.X;
            int y = a.Y;
            while (y != b.Y) {              
                HorizontalLine((int)Math.Round(x1),
(int)Math.Round(x2), y, color);
                x1 += dabx / daby;
                x2 += dacx / dacy;
                y++;
            }
            double dbcx = c.X - b.X;
            double dbcy = c.Y - b.Y;
            x1 = b.X;
            y = b.Y;
            while (y != c.Y)
            {
                HorizontalLine((int)Math.Round(x1),
(int)Math.Round(x2), y, color);
                x1 += dbcx / dbcy;
                x2 += dacx / dacy;
                y++;
            }

  }
Samat periaatteet kuin mitä aikanaan päättelin, mutta nätimmin  tehtynä. Tämä on toimivaa c-sharppia.
Voisi testiksi vääntää saman tuonne JavaGraphicsiin, jos jaksaa.

Tätäkin voi vielä yksinkertaistaa, tarvitaan ainoastaan kolme relevanttia deltaa., ja saa kaksi jakolaskua while-looppien ulkopuolelle. Olkoonkin että fiksu kääntäjä osaa optimoida tuon automaagisesti.

Thursday, December 13, 2012

Laatikkotörmäys ja dieetti

Pienensin annoskokoa. Saas nähdä tuleeko miten nälkä. Tänään voisi käydä silleen nätisti salilla, lähinnä saunassa, mutta voisi myös kävellä. En varmaan rääkkää itseäni, on sen verta flunssainen olo.

BOX COLLISION

eli siis se laatikkotörmäys. Kun kaksi kappaletta liikkuu ruudulla, on hyvä tietää josko net ovat törmäämässä. 
Tähän tuli pyörä, vai liekkö tässä tapauksessa laatikko, keksittyä uudelleen. 

A

B


Eli meillä on laatikot A, ja B, joilla on koordinaatit x, y, leveys & korkeus w, h.

Pystyakselin törmäys:
Jos A.x + A.w // oikea ylänurkka
on suurempi tai yhtäsuuri kuin B.x // vasen ylänurkka
JA
A.x on pienempi kuin B.x + B.w
Niin, kappaleet ovat samalla pystylinjalla, ja voimme tarkistaa varsinaisen törmäyksen.
Jos samalla linjalla olevissa kappaleissa,
A.y + A.h eli kappaleen A alareuna, on suurempi kuin B.y,
JA
A.y on pienempi kuin B.y, A ja B ovat törmänneet reunoistaan, B:n yläreunasta.

alapuolen törmäykseen voimme vain nakata A:n ja B:n ristiin.

Vaakasuuntaisessa törmäyksessä käännämme vain  yhtälön kyljelleen.

A

B


Pseudokoodia:

if a.x+a.w <= b.x and a.x <= b.x+b.w then:
    if a.y+a.h >= b.y and a.y < b.y then:
        collision at b.y
    if b.y+b.h >= a.y and b.y < a.y then: 
        collision at b.y+b.h
if a.y+a.h <= b.y and a.y <= b.y+b.h then:



    if a.x+a.w >= b.x and a.x < b.x then:
        collision at b.x
    if b.x+b.w >= a.x and b.x < a.x then: 
        collision at b.x+b.w

Nyt, tämä koodi tuottaa ongelmia kun useassa tilanteessa rekisteröidään sekä x- ja y-akselin törmäys.
Tämän voi ratkaista laskemalla kollisio linjalle keskipisteestä. Esimerkiksi ylläolevassa kuvassa, kappaleen A keskipisteestä piirretyssä pysty- ja vaakasuuntaisissa linjoissa x-akselilla ei tapahdu törmäystä kappaleeseen B, kun taas y-akselilla tapahtuu. Yleisesti, boxcollision on lähinnä lähtökohta tarkemmalle törmäystarkastelulle

Monday, December 10, 2012

Dieetti: Kilo pois taas. No, ehkä.

Ja paino dippasi pitkästä aikaa alle sadan ja kymmenen. Kiva.
Käyn tänään salilla varmaankin, ja pienennän taas vähän annoskokoa seuraavaan satsiin. Kyllä se tämä tästä.

Hobitti, kohta.

Näpyttelin boxcollisionin javascriptillä viikonloppuna, pitänee kirjoittaa siitä jotain tässä lähiaikoina.

Wednesday, December 05, 2012

Dieetti!

Pitää. Tosin paino ei ole niin innolla enää tippunut. Pitänee tiputtaa ruoka-annoksen kokoa entisestään.
Ja kehitellä jotain muutakin millä painoa lähtee, veikkaisin. Juuri nyt on todella helppo vahingossa syödä tarpeeksi, jolloin ei laihdu, ellei sitten käy liikkumassa, noin esimerkiksi.

Nyt on tulossa neljän päivän paussi, pitää ensi maanantaina käydä salilla, niin voi raportoida sitten mikä on tilanne.

Missasin yhden salikerran tavallaan eilen, tosin.

Monday, December 03, 2012

Miksi The Binding of Isaac on niin hyvä?

The Binding of Isaac. Minut teema jätti kylmäksi, mutta luin Postmortemin pelille, ja katsoin Let's Playn Youtubesta.

Ja toisen.
Ja kolmannen.
...
...
Ja seitsemännen.

Eli peli itsessään on lyhyt, alle tunnin per läpipeluu, ja koostuu cutsceneillä siivitetyistä Legend of Zelda(se originaali) - tyyppisistä luolastoista.

Se millä peli vetää, on se että lähes jokainen läpipeluukerta avaa uuden hahmon tai esineen pelattavaksi, ja löydetyt esineet vaikuttavat todella paljon paitsi pelityyliin, myös hahmon ulkonäköön.

Eli siinä mielessä perinteinen, "Jokainen pelikerta on uusi" - ratkaisu.

Tämän lisäksi, kunkin kentän pomot arvotaan satunnaisesti, tietyistä vaikeusryhmistä. JA, peli vaikeutuu sen mukaan, miten monesti sen on pelannut läpi ( ja siis saanut kovempia varusteita löydettäväksi luolastossa.

Lisäksi pelissä on välianimaatiot, ja useampi loppu - ei niinkään vaihtoehtoinen, kuin tarinaa pidemmälle vievä aina pykälä kerrallaan, vähän kuten Dark Corners of the Earthin loppu, josta näkee sitä enemmän, mitä paremmin on pelin pelannut.

Thursday, November 29, 2012

VirtualBoxing

Asentelin VirtualBoxin ja Win8 evaluaatioversion siihen. Tavoitteena oli päästä testimään Windows Phone 8 - kehitystä.

Tämä jäi haaveeksi, sillä luuria ei ole, ja WP8 - simulaattori vaatii pyöriäkseen HyperV:n, jota ei ole VirtualBoxissa, eikä Core2Duossa.

Mutta, koska VirtualBox oli asennettuna, tein toiseen virtuaalikoneeseen ArchLinux - asennuksen, joka sujui ihan helposti --- sen jälkeen kun luopui yrityksistä laittaa GRUB toimimaan ja laittoi syslinuxin.

Sen jälkeen menikin muutama tunti kun yritti vääntää LAMP-stackin pelittämään. Vielä ei onnistunut.

Arch on ihan miellyttävä, ja lähtee tosi läheltä rautaa, en suosittele aloittelijoille, mutta muuten kiva.

Että sellaista. Eilen oli viikon mässäyspäivä. Tein viisi annosta ruokaa, jotka ovat kukin n. 30% pienempiä kuin aikaisemmat vakioannokset.

Maanantaista Keskiviikkoon tulin aikanaan töihin. Tänään lipsahti, johtuen tuosta Apache-taistelusta. Huomenna olisi tarkoitus olla taas ajoissa.

Niin, ja tänään salille.

Monday, November 26, 2012

Dieetti pitää edelleen.

Yksi syy millä se pitää, on se että yritän samalla säästää rahaa - ja että työpaikalla on hedelmiä, niin saa vitamiinit sieltä.

Anyway, pitää ruveta vähän tiputtamaan annoskokoja; tekee viisi annosta siitä määrästä mistä on tullut tehtyä reilut kolme. Lisäksi, terveys rupeaa sallimaan liikunnan. Kohta saa taas paino - ja vyötärötiedot. Toivottavasti vähän tippuneet.

Tänään tuli syötyä vähän enemmän, mutta toisaalta meni yli kolme tuntia ostoksillakin. Sain joululahjaksi peilin ja ruokaa, juuri mitä toivoinkin :)

Pakastimessa on nyt kaikenlaista, mutta se joutaa odottamaan. Pitää katsoa, joutuu varmaan vähän varioimaan ruoka-annoksia. Ei mikään isompi haitta se.

Thursday, November 22, 2012

Dieetti! 18. päivä!

Olen vähän lipsunut; muutamana päivänä on tullut syötyä muutama ruisleipä liikaa, ja söin karkkiakin kolmena päivänä, mistä tuli pikaisten laskujen mukaan 750 ylimääräistä kaloria tälle viikolle.

Tiistaina ja keskiviikkona ruoka-annos oli vähän turhan suuri, mutta muuten samaa soija-peruna-liha-porkkana huttua kuin yleensä. Seuraavassa kolmessa annoksessa on sitten cashewpähkinää, jotta ei puulta maistuisi.

Tiputan kuntosalikortista uintioption pois - se maksaa muutaman euron lisää viikkoa kohti, mutta kun olen käynyt uimassa sen 8kk aikana mitä kortti on ollut, kaikki YHDEN kerran. Ei rahallisesti kannattavaa, ennemmin voi maksaa täyden hinnan aina kun käy uimassa.

Sunday, November 18, 2012

Dieetti, viikko 2 viimeinen päivä

Hm. Eilen tuli vähän lipsuttua; en syönyt mitenkään hirveästi, mutta epäterveellisesti kyllä. Ja söin vähän karkkia.
Mutta no, tänään aamupalaksi oli jugurttia ja soijarouhetta. Käyn ulkona syömässä, mikä on kallista, mutta ei kuitenkaan hillittömästi kaloreita. Voinen kompensoida sen pyörähtämällä salilla. Noin about sama setti kuin viimeksi... tai, voisi ehkä ottaa vähän kevyemmin. :/

Friday, November 16, 2012

Dieetti! Mässäyspäivä #2

Hm. Tili tuli, joten...

Muuten, dieetti on pitänyt, ja mahdollisesti painoakin on lähtenyt pari kiloa, punnitsin eilen kun kävin salilla.
Isoin 'lipsahdus' oli kun tein lisää ruokaa pakkaseen keskiviikkona, ja söin illalla sitten pastaa, oikein herkullista.

Vakio mausteet+porkkana+soija+liha sekoitus, sitten paistoin  siivutettuja herkkusieniä jotka otin sivuun, tomaattimurskaa tölkki, n. 1.5 desiä (jo vähän hapanta) punaviiniä, johon annos lihasekoitusta, kiehautuksen jälkeen herkkusienetkin matkaan. Sitten keitin (samassa vedessä jossa keitin perunat) pastaa, jonka sekoitin soosiin. Parmesaania, basilikaa, oreganoa. Herkullista.

Söin sitä tosiaan, ja sitten seuraavana päivänä oli myös eväänä.

Oletan että tänään paino hyppää ehkä takaisinpäin (ei ihan varmaa, kun kerta tuli salilla käytyä) mutta en stressaa siitä.

Aikalailla 60 kg painoilla voi tehdä kaikissa laitteissa sen 15 setit. Tein kaksi settiä, ja viimeiseen settiin laitoin 100 kg, tai maksimi mitä laitteesta sai, kumpi nyt sattui olemaan pienempi, ja katsoin montako jaksoi. ( enimmäkseen 9-10 toistoa, ulkoreisikoneessa vain 5, 70 kilolla )

Tuesday, November 13, 2012

Dieetti! Toinen viikko.

Tänään voisi pyörähtää salilla.

Söin eilen vähän liikaa, tein kaksi ruoka-annosta viikonlopun riisi-soija-porkkana mössöstä, lämmittämällä pannulla ruskeita papuja, maissia ja tomaattimurskaa ja sitten sotkemalla. Maustoin myös lisää.

Yli jääneen söin televisiota katsoessa, ja koska söin peruna-annoksen työpaikalla, söin siis eilen liikaa.
Yksi hyvä syy lisää käydä siellä salilla. Käyn kuntosalipuolella, pyörähdän saunassa ja sitten käyn vielä venyttelemässä. Kuulostaa hyvältä suunnitelmalta, toivottavasti toteutuu.

Turkkilainen jugurtti ei muuten ole halpaa. Normijugurtti on halvempaa.
Tänään olen syönyt mandariinin, leipäpalan ja annoksen jugurttia. Ruuaksi on sitä maissi-papu-soija-riisi juttua. Illalla ei olisi tarkoitus syödä jugurttia ja leipäpalaa enempää.

Huomenna teen perunoista lisää ruoka-annoksia.

Sunday, November 11, 2012

Dieetti! Viikko 1/7 lähes ohi!

Tänään pitää tehdä ensi viikon eväät, jotka ovat lähes samat kuin viime viikon eväät, mutta
ajattelin tehdä riisiä myös ainakin annoksen tai pari. Jos käytän papuja, niin niitä ei voi pakastaa, eli luultavasti syön tänään/huomenna sitten riisiä. Ja työpaikalla odottaa uusi setti hedelmiä taas, nam. :)

En tiedä onko kyse paremmasta ihonhoidosta vai ruokavaliosta, mutta iho tykkää; vähemmän rasvaa, ja ihohuokosetkin vähemmän auki.

Flunssa vetelee viimeisiään, olen vähän kahden vaiheilla sen salipyörähdyksen suhteen - ei sillä että siinä paljon syke nousee jos tekee muutaman liikkeen isoilla painoilla, eli kaiketi kyllä sitten.

Eli, tänään syön vielä jonkinlaisen ruoka-annoksen - luultavasti liha-soija-bolognesepastaa. Sitten siihen vielä lisäksi jugurttia, ehkä.

Pitäisköhän herkutella maitopurkilla?

*Edit*
Isänpäivä, kaupat kiinni.
Eli soija-porkkana-riisi mössöä. Siedettävää, mutta ei herkullista. Jatkan loput huomenna tomaattimurskalla ja maissilla, niin on parempaa. Sillä pärjää tiistain. Tiistaina pitää siis tehdä ruokaa kolmeksi päiväksi, eli keitän loput perunat.

 Söin loput jugurtit myös --- tumma soijarouhe on aika hyvää jugurtin päällä.