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...

Thursday, July 31, 2008

Miksi koodini bugaa?


Rupesin keksimään uudestaan v3 kolmiorutiinia, jonka kirjoitin Nivalassa. tietenkään sitä ei ole muualla kuin Sarjankylän ukkoslinnussa nytten. Huoh.

Yritykseni ( joka on paljon yksinkertaisempi kuin v1 tai v2, ja yksinkertaisesti parempi ) ei jostain syystä piirrä pohja vasemmalle kallellaan olevia kolmioita ( , testattaessa tasasivuista kolmiota, ) mikä on siis omituista. Jätän enemmän debuggaamisen myöhemmälle, tänään ei enää jaksa tai kerkeä.

Töihinlähtö uhkaa, tai no, jos noin voi sanoa näin pitkään työtönnä olleena, iloinen asia on se. Palkka on tosin huono, mutta riittää laskuihin ja ylikin jää, joten ei voi liikaa valittaa. Nyt pitää vaan opetella PHP5:ttä, näemmä.

Tenttikin on edessä, aikaa vähän. Eli suomeksi, kiire painaa.

Paino rupesi taas ärsyttämään, kun se hyppäsi tuonne 98+ mökillä ollessa. Ihan hyvin jottei sen enempää, mutta kipu kantapäässä esti jopa kävelynkin. Ei miellyttävää.

Pitää Roolipelaajaan pistää nerdragea vähän niiden DnD 4e arvostelusta, kenties. Esimerkiksi Warlockien julistaminen WoWista kirpaistuksi herätti edellämainittua närästystä - olkoonkin että niin Complete Arcane että WoW julkaistiin samaan aikaan, joten WoW Betalla saattoi olla vaikutusta - ellei jopa täytyisi sanoa että kenties kyseessä on rinnakkainen evoluutio tahi yhteistyö... mutta säästän sappeani lehdelle. Silti... osuvasti jotkut sanoneet.

Jos rahaa joskus saa ( Kela sanoo EI! ) niin pitää nollapohjainen budjetti rääpystää kasaan sitten kai. Kun vähän tulee pitää tarkkaan seurata.

Tässä pitää olla tarkka terminologian suhteen. Liikemaailmassa nollapohjainen budjetti on hieman eri asia.

Friday, July 25, 2008

Mökkielämää.. // Läppärissä X

Mökillä ei tule painoa seurattua eikä blogiin kirjoitettua. Heikki uusi oman bloginsa, tosin.
Siellä järven rannassakin olisi toki hurja GPRS-yhteys saatavilla, mutta ei jaksa nähdä vaivaa.

Onnistuin saamaan kantapään kipeäksi juuri ennen mökille lähtöä, ja ärsytin sitä lisää juuri kun se oli toipumassa, joten liikuntakin on ollut vähäistä.

Läppäri on taas iskussa, X pelittää ja kaikkea ( eikä mikään gdm/xdm ole muistia rohmuamassa! ), nyt pääsee vihdoin sovelluksia laittamaan tarpeen mukaan. Opera riittää yllättävän pitkälle.

Niin, Openbox + LXPanel on aika riittävä kombo. Saa nähdä jos lisää rupeaa haluamaan jossain vaiheessa. Muistinkäyttö X:ssä kun ei ole sovelluksia ajossa on nyt jotain 33M, pyöreästi.

Vim on edelleen pysynyt editorina, senkin suhteen asiat ovat helppoja kun ne osaa. nyt kun vaan löytyisi täysin moderni, kontekstisensitiivinen IDE... Tekstitilaan. Tekstitilassa ei läppärin kammottava touchpadikaan vaivaa.

Päätin ruveta olemaan vähemmän säntillinen labeleitten suhteen. nykyinen spartalainen lähestymistapa rajoittaa tiedonkulkua, ja tieto haluaa vapaaksi.

Piirtäminen ei ole oikein alkanut tapahtumaan, vaikka uusin OpenCanvas onkin nyt Trialissa taas. Pitäisi pitäisi....

Olen "For The Emperor" - opusta - tai osiota - lukenut siitä isosta kirjasta. Hyvä ollut tähän asti. Ei mitään mahdottoman lennokasta, mutta yhtä kaikki, viihtyisää.

En päässyt serkun näyttelyyn sitten, menkää joku minun puolesta, thx.

Mm... THX...

Wednesday, July 16, 2008

Kakkua saako? // Omatekoista rautaa maailmalla

Hm. Rauta on toisinaan kivaa:
http://www.homebrewcpu.com/

Ja sitten Mark I ja Mark II Forth. Tuolta löytyy lisääkin linkkejä....

Ugh.





Paino on kaiketi nousussa - taas kun on täällä pahuksen Nivalassa. Todella todella ärsyttävää, kerta kaikkiaan. Pahus! Jotain 98.X nyt taitaa olla.

Big Mess of Wires on mielenkiintoinen.

Noni. Zenwalk 5.2 Core asentui kiltisti. Siihen lisäksi ppp ja inet packaget niin pääsee jo nettiinkin. Koko kovo on justnyte 1 iso partitio, mikä ei ehkä ole kaunista mutta antaa optimi tilamäärän mitä tulee kovon täyttymiseen.

Se ettei ole X:ää, on minusta omalla tavallaan viehättävää - joskaan ei niin paljoa etten sitä laittaisi. Saa nähdä miltä osin ja miten paljon noita i486-binäärejä sitten loppujen lopuksi tulee sietämään.

Saatan jopa ehkä pysytellä Vim-linjalla, jos se ei ärsytä liikaa ja tutorohjelma on hyvä.

Tuesday, July 15, 2008

Pahuksen läppäri, pahuksen Linux. >_<;

Gentoon asennus ei onnistunut. Ugh. Taidan Puppy Linuxia harkita, sitten sen päälle rupeaa virittelemään jotain... tai ehkäpä DSL, tai jotain. Yksi Gentoon kehitysblogi arvosteli kevyitä distroja tuossa taannoin, mutta se ei tunnu toimivan just nyt.

Wishlistissä ei ole paljoa:
  • i686-binäärit
  • Täysi Dev-ympäristö
  • Pieni muistinkulutus
  • LXDE tai Fluxbox tai Openbox
Itse asiassa, Zenwalk oli aika hyvä, mutta jo valmiiksi hitaalla koneella 486-binäärit olivat hieman liikaa. Muuten olisin voinut silti pysytellä siinä ja käännellä itse omat softat, mutta menin partitioimaan pienen 30M levyn tyhmästi, ja käyttikselle itselleen jäi "vain" 5 gigatavua tilaa.

Ugh. Kun onnistuisi asennus, mutta tuon läppärin CD-asema on epäilyttävä.

Olen alkanut epäillä että kolmiorutiinini on hölmö ja aivan liian monimutkainen, myös.

Monday, July 14, 2008

Luolia ja lohikäärmiä // Pathfinder

Nivalan peliporukka ei ole vielä pitkään aikaan siirtymässä uuteen painokseen, joten kokeilemme Pathfinderiä. Vaikka porukka on tyypillisen vajaa, ( Kaksi hyvää pelaajaa ovat nykyään WoW-addikteja ) niin ihan hauskaa on ollut.

Muutamia havaintoja:
  • Combat Maneuver on loistava idea: Sillä voi Ad-hoc:ta melkein tilanteen kuin tilanteen.
  • Hitpoint Buffer on kuten myös kiva,
  • Päivitetyt meleeluokat ovat hyvä asia. Barbaarin muutokset on ihan hyviä.
  • Skill-säännöt on vaikea pitää mielessä - eli class skill saa automaagisen +3, eikä vain max rankit ole siellä
  • Skillit + vanhat hahmolomakkeet = ikävä yhdistelmä. Uusimmassa Alphassa tuli vihdoin hahmolomakkeetkin, tosin.
Ensimmäistä kertaa on myös Action Pointit käytössä. Ne ovat aivan totaalisen loistavia, jo siitä syystä että ne ovat DM:lle apu tilannearviointiin - jos niitä ei kulu, niin pelaajat ehkä pääsevät hieman helpolla, jos ne kuluvat jatkuvasti ja nopeasti, ehkä pitäisi vähän lieventää vastustajatulvaa.

Statpiste joka toinen taso, toimii varsinkin jos ottaa vähän low-magic asennetta mukaan. Nykyinen konsepti on että taikaesineet ovat niin arvokkaita, kukaan ei myy niitä, joten ne voi vain löytää tai voittaa itselleen. Pelit ovat hieman vaikeampia, mutta paljon, paljon viihdyttävämpiä.

Harkitsemme E6:n käyttöönottoa, tai ainakin käytämme normaali-XP gain mekaniikkaa + Pathfinderin Fast XP taulukkoa. Ei ole kiva juosta liian nopeasti tasoja läpi.

Paino tänään oli 98.0 noin suurinpiirtein tylyvaa'alla. Siellä 96-98 maastossa palloilee edellen.

Motivaation kanssa on ongelmia, koulu- ja ohjelmointihommia ei ole oikein tullut tehtyä. Piirsin yhden kuvan taideblogiin, tosin.

Wednesday, July 09, 2008

Kolmiopainia

Kolmioitten täyttäminen on vaikeaa. Olen aikani paininut sen kanssa nytten, ja lähes toimii, mutta jos meillä on kaksi janaa ab ja ac, joista ei tiedetä kuin se että a.y<=b.y ja a.y<=c.y.... Miettimistä se vaatii vaan hiukan. Ainakin olen jo sen verran saanut, että on kolme tapausta: kummatkin pisteet ovat a:n vasemmalla puolella, oikealla puolella tai toinen toisella puolella. Viimeinen on helppo. Nyt pitäisi päätellä vain vasen/oikea tapausten puolueellisuus. Sitten vain vasemmanpuolisen janan vasemmanpuolisin piste piirretään oikeanpuoleisen janan oikeanpuolimmaisimpaan pisteeseen.. Eli, ajatelkaa viivaa:

####
####
####
Jos piirrämme ekaan pisteeseen mihin törmäämme vasemmalta päin, meillä menee väärin ja jää 3 pix rako oikeaan reunaan.

Jne.

Ei ihan optimaalista. Jos lähtisi siitä että "Jokaiselle Y-riville piirretään viiva x1, x2, y kunnes toisin sanotaan," niin olisi kai parempi, mutta painiskelen just nyt vielä teorian parissa. Optimointi tulee myöhemmin.

Viivarutiini v3
:ssa on bugi ylöspäin vasemmalta oikealle nousevissa viivoissa. Osaako joku korjata hidastamatta sitä? Voisin kai Mureakuhaan heittää kysymyksen tjsp....

SPARTAAA!


Paino 98.0, Heikin läppäri rupesi elämään paremmin kun käänsin siihen uudet XFCE:t.

Tuesday, July 08, 2008

Piipitystä ja kolinaa

C64Music! pitää ehkä lisätä valikkoon, jopa. Kohinaakin voi kuunnella, teoriassa.
The Hardware Chiptune Project.

Päivitin viivanpiirtoa, mutta se on buginen nyt. v3 löytyy vanhan linkin alta, ja v4 on omassa koodissa nyt - hitaampi, mutta toimii varmasti. v3 olisi paras, jos siitä saisi bugit liiskattua.

Tietty, tällä ei ole isoa väliä, painiskelen kolmiontäytön kanssa juuri nyt. Se toimii ainakin satunnaisesti nyt, mutta siinä on läjä hyvin omituisia bugeja tietyissä tilanteissa.

Paino oli 98.5, kun söin aika myöhään eilenillalla. Tänään söin myös riittävästi, joten tuskin paino tippuu kovin paljoa.

Minulla on yksi JavaScript peli-idea jota saatan ruveta työstämään tässä jahka... no, tässä joskus,
joka tapauksessa.

"Behind Deep Blue" on ollut erittäinkin antoisa kirja, tullut luettua vähän turhankin vauhdikkaasti. Suosittelen lämpimästi. Antaa myös hiukkasen teknistä infoa kuinka tietokoneshakit toimivat. En varmaan jaksa arvostella - en ole arvostellut mitään oikeasti nyt hetkiseen. Mutta, lukekaa silti. Hyvä kirja.

Kaikki muu on ihan OK paitsi ettei ole töitä/rahaa, noin suurinpiirtein. Tekemistä ja motivaatiota tuntuu kumpaakin löytyvän.

Tietokoneesta ( omasta. Heikin läppäri voi hyvin, noin suurinpiirtein ) saattoi tosin toimintasavut karata, mutta en ole varma mistä komponentista. Kenties kerääntynyt pöly vain kärähti virtalähteestä?

Monday, July 07, 2008

Näppäimistövieraita // Otetaanpa uusiksi

Eilen joutessaan otin ja irroitin pari näppäintä näppäimistöstä, kun raot näyttivät likaisilta ja alta paljastui voi hyvä... Ia! Ia! Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!
....
Joten, otin kaikki näppäimet irti, ja näytin sille suihkua. Irtonaiset näppäimet tiskasin. Tämä oli vielä ihan hyvä ja turvallinen temppu. Sitten rupesin miettimään onko näppäimistö sisältä miten likainen, ja kaivoin ruuvimeisselin esiin.
....
Lyhyesti, älkää aukoko Logitechin näppäimistöjä. Kyllä minä sen kasaan sain suurinpiirtein lukuunottamatta muutamaa nappia joita en käyttänyt enivei....

Viivanpiirrosta:
Jooh, edelliskertainen rutiini oli... funktionaalisesti ja teoriassa oikein. Tietty teorian ja käytännön välinen ero on siinä, että... teoriassa niillä ei ole mitään eroa. Minkä lisäksi selitys oli aika kaoottinen.

Se mitä viivanpiirrossa tehdään on:
  • Ei ole olemassa kuin loivia (min X/Y=(+-)1) viivoja vasemmalta oikealle.
  • Tarkistetaan pitääkö siirtyä Y-suunnassa
  • piirretään piste
  • kasvatetaan X:ää.
Y-suunnassa siirtyminen tehdään siten, että kun meillä on FP- kulmakerroin k (esim. 145),
ja FP-kerroin m (esim. 100), niin, kasvatamme apumuuttujaa a, a=a+m. Jos a>k, siirrytään Y-suunnassa, ja asetetaan a=(a-k).

Tämä tarttisi jonkinlaisen grafiikan selitykseen, mutta lyhyesti, etsitään vain ne arvot X, joitten kohdalla Y muuttuu. Versio 2 algoritmista on lähes 5-10 kertaa nopeampi kuin edellinen. Tietty, tämä edelleen häviää Javan vakiolle, mutta tätä rutiinia tarvitaan täytettyihin kolmioihin. Viivanpiirtona, ilman sorttausta Y:n mukaan tämä käyttää enää 5x niin paljon aikaa kuin Javan natiivi viivanpiirto.


Hei, LapaTheMato3kin sai pienen päivityksen - siinä on nyt kunnollinen Timer.

Paino oli sunnuntaina 98.5, kun edellisiltana sortui känkkyyn, mutta tänä aamuna taas 96.6.

Saturday, July 05, 2008

Viivanpiirtoa nopeasti.

Aioin alunperin tehdä nämä testit JavaScriptillä, mutta siitä ei löytynyt putpixeliä, joten sen
sijaan joudun käyttämään Javaa. Missä ei myöskään ole putpixeliä, joten kirjoitin setRGB:lle wrapperin.

Okei, tämä on nuoruuden traumoja: En koskaan saanut viivanpiirtoa toimimaan ihan niinkuin olisin halunnut - fixed pointeilla miten pitkiä viivoja hyvänsä, nopeasti ilman aukkoja. Tästä syystä 3d-koodauskin vähän jäi, kun ei saanut polygoneja täytettyä itse. Ja siihen aikaan Oma Sen On Oltava oli iso iso juttu.
Mutta no, tässä on viivanpiirtorutiini, jonka pitäisi olla kohtuunopea, se ei taida olla tosin.... Kaukana optimaalisesta - mutta sinne päin kallellaan. Muuttujia voisi karsia, sekä iteraatiomäärissä voisi hyppiä varmasti fiksumminkin. Porttaaminen toiseen järjestelmään pitäisi olla todella triviaalia.

Kuinka se toimii?

Um. Piirrämme aina oikealta vasemmalle, ja sellaisia viivoja joitten delta-x>delta-y. Teemme rotaatioita jotta tämä onnistuu. (y=x, x=y keikautus)

Käytämme fixed-pointteja jotta Y-siirtymä olisi riittävän tarkka. Jos piirrämme alhaalta ylös, painetaan asia mieleen( vähennetään eikä lisätä liikuttaessa ) ja muutetaan delta positiiviseksi.

Itse luupissa harpotaan x-suunnassa eteenpäin kunnes olemme lähellä paikkaa missä Y-koordinaatti vaihtuu. tässä pitää olla tarkempana, joten siirrymme hyödyntämään fixed pointtejamme.

Jotain sellaista, kai. Tuostakin voi vielä optimoida jos haluaa, mutta lähinnä tein tämän jotta tietäisin miten se toimii, ja koska nuorempana se ei ihan onnistunut. Tietty, kannattaa ennemmin käyttää valmista viivanpiirtorutiinia nykyaikana, ( Javan oma esim. on n. 40 kertaa nopeampi. ) mutta se on tarkka ja toimiva. Sitäpaitsi, voin syyttää hidasta putpixeliä. :P
Parempi tapa tämänhetkisen putpixelin sijasta olisi käyttää SetRGB:n sitä versiota joka mäppää tietyn alueen kerralla, mutta noh...

pikseleitten bufferointi näyttää nopeuttavan testiä n. 50 msec, mikä on mielenkiintoista - sen ei kuvittelisi vaikuttavan. Kaiketi Javan cache operoi fiksummin näinpäin, kun pitää monta kertaa kutsua setRGB:tä?

Mutta siis! Kun on viivanpiirtorutiini, voi siirtyä tekemään täytettyjä kolmioita, ja niistä pääseekin sitten jo teksturoituihin kolmioihin!

JavaScriptilläkin voi tehdä kolmedeetä, varsinkin jos käyttää Canvas-tagia apuna, mutta siinä
pitää kyllä sitten hyödyntää sen valmiita grafiikkakomentoja, muuten ei mikään onnistu. Ei omaa
putpixeliä siis voinut oikein tehdä.

Sain luettua toisen pelisuunnittelukirjan, sekä "Born to Code in C" opuksen, jossa tosin rupesin skippailemaan. Erittäin hieno kirja tosin, siinä tehdään mm. ikoni ja animaatioeditori, multitaskaava ohjelma ilman mitään threadeja ja tietokanta, muunmuassa.

Eilisen aamupaino oli 98.1, tänään 97.6. Kävi siis selkeästi ylempänä kiitos TexMexin. Nyt on taas alaspäin menossa. Sitten kun menee alle 96.0:n voisi kai palkita itseään jollain kivalla ruualla.

Thursday, July 03, 2008

Kirjoja // Ei koodia hetkiseen // Unettomuutta

En ole skarpeimmillaan juuri nyt. En saanut unta viime yönä, enkä oikein tiedä miksi. Nukuin jonkin verran näin jälkeenpäin ajateltuna, mutta tuskin kovin montaa tuntia. ehkä ~5 tuntia?

Pakkasin läppärin pois, koska hain kirjastosta ison liudan kirjoja, ostin Fantasiapeleistä Ciaphas Cain - Hero of the Imperiumin ja minulla on tenttikirja työn alla. Ei uskalla koskea koodausjuttuihin nyt, viime yökin meni ( siihen asti että läppäri meni laukkuun, ) D-kieltä naputellessa. Derelict ei vaan halunnut ruveta toimimaan. Erittäin ärsyttävää. Sain kaiken kääntymään mutta sitten ohjelma itse SegFaulttaa.

Ideoita on, ja suunnitelmia, mutta nyt pitää priorisoida. Ehkäpä kykenen parempiin tuloksiinkin jahka olen kirjat lukenut. Käteen tarttui siis:
  • Pari pelisuunnittelukirjaa, toinen Tony Mannisen
  • SDL-oppikirja, jonkinlainen
  • Kirja IBM:n Deep Bluen tekemisestä
Liikunta on lipsunut, ja aamupaino olikin 98.0, mikä on vielä tälle hetkelle inhimillinen. ( ja n. 15 kiloa liikaa. )

Blogilistan tulokset olivat mielenkiintoisia - tämä blogi kävi hetken jo sijalla tuhatkaksisataajotain, mutta nyt yhtäkkiä näyttää tippuneen tuonne 22 tuhannen kieppeille. Hurjaa.

Roguelike
GBA:lle: POWDER.

*edit* Muistuttakaa joku että lupasin höpistä viivanpiirtoalgoritmeista, fixed point matikasta ja 3d:stä jossain välissä.

Tuesday, July 01, 2008

Tetris on valmis // paino käväisi alhaalla.

Jeps, nyt se on sen verran hyvä että kehtaa muillekin näyttää:

Tetris - ( tai kuten itse ajattelen- 'Testris.' Olenpas hauska. ) Cookie pysyy tallessa 7 päivää. Globaali highscore-lista ei onnistu ilman juttelua serverin kanssa, joten sille linjalle ei mennä, mmok?

Paino tosiaan kävi niin alhaalla kuin 96.6 tänä aamuna! Eilen meni myöhään enkä sitten jaksanut kokata. Kävin iltalenkillä, mutta tänään en jaksanut aamulenkille asti liikahtaa.

Kirjoitin ensimmäisen D-ohjelmani Heikin läppärillä. Hyvä on se, minusta. Saa nähdä pitääkö vanha ( monta kuukautta ) FluxBuntu laittaa siihen läppärille, josko se pelastaisi... Yritän ensiksi tosin GCC:n uudelleenasennusta.

Työnhaku jumii taas päässä jotenkin kummasti, kuppi kahvia, ja yritän uudestaan.
*edit* Yliopiston kahvila meni kiinni ja automaatista tuli ihan ihmeellistä kääpiökahvia. Pitäisi jo uskoa, että noista kahvimaateista ei säällistä kahvia saa. Taitaa joutua tänään sen TexMexin tekemään. Itse käyttämäni resepti pohjaa Tuomas Laitilan ideoihin, ja periaatteessa virittelen valmista TexMex-ainessettiä sipulilla ja pavuilla jne. Hyvää.

Play Finland, hmm.