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

Saturday, May 30, 2009

RamDraivit

Simppeli nopeutus nykykoneille joissa on 2-4 gigaa muistia: Luo Ramdrive, osoita käyttäjän temp-kansiot sinne. 

Lisäksi nyky-Windows käyttiksissä on muitakin hienouksia.

Friday, May 29, 2009

Simppelejä treeniohjelmia.

Joonas seuraa tuota '100 push ups' juttua, muut löytyivät sivustolta muuten.


Ohjelmointipuolella on ollut jokin ihme writer's block, Arby pyörii ruudulla ja näppäimistöä voi käyttää nätisti. 

Tämän taidan varastaa omaan käyttöön.

Thursday, May 14, 2009

Pyörii, pyörii...

OpenGL kuutio. SDL:n päällä. 

Sikäli erilainen verrattuna eilisen testiin, että tämä on itse asiassa blenderissä tehty kuutio exportattu raw:ksi. Värit on hardcode testivärit. 

Se ei ole kovin obvious, mutta kuutio on myös läpinäkyvä. 

Rawia tökkiessä huomasi että siinä ainakin saa olla quadeja ja triangleja sekaisin. Hmm. Oma Mesh-luokkani ei moista kestä right now. Tietty, produktiomallit on luultavasti aina kokonaan triangeleita (ding!) joten toivottavasti tämä ei ole ongelma. Joutuu pian Unionin laittaan tjsp.... 

En jaksanut tänään inputinlukua säätää vieläkään. Pah. 

Monday, May 11, 2009

Oma sen on oltava, kompressorinkin, eli Sanakirja-enkoodausta, osa 2

Ensin, tehovinkki:
RAMDrivet on kiveja. Nykykoneissa on 2-4G muistia, joten luo sellainen ja osoita oma Temp-kansio ja mahdollisesti oma Swap-file sinne. Eron huomaa.

Myös pelien datatiedostojen nakkelu RAM-drivelle ja .ini tiedostojen osoitus sen suuntaan on hauska temppu.

mO_Om

Hm. Viime keväänäkin oli virtaa ja tapahtui asiossa. Paino kävi tänään 96.5:ssä. Viel on siinäkin tekemistä. Lisää kaurapuuroa.

Onko se muuten ironista jos ei saa luettua "kuinka saa projektit tehtyä" - kirjaa?

Asiaan:
Kauan sitten jotain mietin asiasta, ja kauan se seisoi. Tänään sain koodia vääntymään, suurinpiirtein kuvatunlaisella algoritmilla, eli noin epätäsmällisesti:
  • luetaan syötettä merkki kerrallaan, jokainen merkkiyhdistelmä up to "maksimi sananpituus" laitetaan sanakirjaan. Eli, jos syöte on abcdef, sanakirjaan tulee sanat a, ab, abc, abcd, abcde ja abcdef.
  • Sortataan sanakirja niin että toistojen määrä * sanan pituus toimii painona. 
  • Sortatuilla sanoilla ruvetaan poistamaan stringistä palasia. Eli, jos sanakirja on _talo, talo, _, n, na, ja syöte on "talo_talon_talona" niin siitä on ekan poiston jälkeen jäljellä "talo", "n", "na". 
Tuossa olen menossa, mutta meni tappeluksi kun yritin raakasti pelata nollaterminoidun c-stringin kanssa.

Oikea ratkaisu on hajoittaa syöte puiksi. 


En tiedä selventääkö tuo yhtään asiaa, mutta suusanallisesti, teemme luokan / structin joka sisältää tekstinpätkän, pointterin sanakirjan sanaan ja vasemman ja oikean lapsen.

Homma etenee näin:
  • syötteestä poistetaan ensimmäinen '_talo', jolloin meille jää "talo" ja "n_talona" blobit. Vasemmalla ei koskaan ole syötettä. Luodaan ylin silmu, jonka teksti = null, sana -> "_talo", vasen lapsi on silmu jonka teksti = "talo" ja oikea on silmu jonka teksti on "n_talona". 
  • Jatketaan oikeaan silmuun ja analysoidaan sen teksti, joka hajoaa osiksi "n", ja "na". Asetetaan silmun sana -> "_talo", vasen lapsi -> "n", oikea "na"
  • Analysoidaan oikea - siellä ei ole mitään.
  • Seuraava sana lähtee analysoimaan puun silmuja, joissa teksti != null.
Puussa kuljetaan alimpaan vasempaan, minkä jälkeen parent-silmun kautta oikean noden vasempaan etc. Tämäntyyppisen puussa kulkemisen voi hoitaa rekursiolla.

Mites sitten jos halkaistaan solmu jolla on lapsia?  puoliskoista tulee lapsien vanhempia. 

Eli, jos bab:llä on c-lapset ja halkaistaan a pois, niin syntyy a-node jolla on vasen b ja oikea b. 
Silmujärjestys on aina vasen-parent-oikea-ylös. Ei pitäisi olla vaikeaa. Kai. katsotaan lisää sitten taas joskus.

Saturday, May 09, 2009

Opettelin Pythonia

En yhtään osaa sanoa miksi. Kaiketi "Koska se oli siellä" eli C:\Python25 kansiossa. Kirjoittelin pari luokkaa, ja testiskriptin, outputti näyttää tältä:
G:\devel\Source\MySRC\Tests\Python-duel>c:\Python25\python.exe test.py
Level: 1 HP: 10 Attack 0 Defense 10
STR 10 ( 0 )
DEX 14 ( 2 )
CON 10 ( 0 )
INT 10 ( 0 )
WIS 10 ( 0 )
CHA 10 ( 0 )
Level: 1 HP: 8 Attack 0 Defense 10
STR 18 ( 4 )
DEX 10 ( 0 )
CON 10 ( 0 )
INT 10 ( 0 )
WIS 10 ( 0 )
CHA 10 ( 0 )
attack roll: BAB 0 Stat 4 die roll 11
attacker hits!
damage roll: 1 + STR mod 4
defender receives damage: 5
defender remaining hp: 5
attack roll: BAB 0 Stat 0 die roll 17
attacker hits!
damage roll: 4 + STR mod 0
defender receives damage: 4
defender remaining hp: 4
...Että sellaista. Ihan helppoa ja todella human-readable. Pitäisi vain kaivaa paremmat tekstineditointikomennot, ja datastruktuurit saada paremmin selville miten ne toimii.

Microsoftin Powershell

Saapa nähdä onko 
  1. siitä Consolen korvikkeeksi
  2. se hyvä.
Siinä kaikki!

Thursday, May 07, 2009

Mitä kaikkea puhdas asennus tarvitsee?

Okei, uunituore puhdas asennus... jota heti käpälöimään.

Kovalevy:
Partitioi mielellään kolmeen osaan, esim. OS, Softa ja Temp.

Downloads - kansio myös tempille. Kopioit asennuspaketit sitten jonnenni, niin tulee ilmainen defrag tiedostoille samalla.

Säädöt:
  1. osoita swappi omalle partitiolleen - Temp.
  2. optio: käännä turhat servicet pois päältä
  3. optio: indexing pois päältä
Asennukset:
  1. Avast Antivirus
  2. Vim
  3. Git - ei shelliä eikä guita integroida.
  4. MinGW. Nyt meillä on about täysi kehitysympäristö.
  5. Eclipse optionaalisesti
  6. Console - osittain optionaalinen. Tai sitten ConEmu
  7. FFDShow
  8. Haali Media Splitter - paras Matroska toistin
  9. Joku kiva playeri ehkä. Media player Classic on kestohitti.
  10. Openoffice.Org LibreOffice suosiolla kiltisti. Vaikka SiaG onkin kiva.
  11. KiTTY korvaa PuTTYn.
  12. UnxUtils
Kun nuo on asennettu, lisää säätöä:
  • Lisää System Properties\Advanced\Environment Variables seuraavat:
  1. EDITOR=vim
  2. MinGW\bin polkuun
  • luo jonnekin polkuun make.bat jossa lukee @MinGW32-make.exe %1 %2 %3 tai jotain vastaavaa
Tarvitseeko muuta? GnuWin32 on kiva, muttei pakollinen, ja Git-paketissa tulee paljon *nix-työkaluja jo.

Start Menun kanssa kannattaa noudattaa muutamaa kurinalaisuus-juttua -
  • Kaikille dev-työkaluille Development\ alkuun
  • Kaikille peleille Pelit\ alkuun
Moni kiva juttu riippuu siitä mitä tekee. Esim. tuo MinGW-paketti on tietty sen sortin softankehitykseen. Vastaavasti JDK:n moni tarvitsee, tai Visual Studiota, GIMPpiä, SVN:ää jne.
Avast + FFDSHOW + Haali tai MPC on minusta aivan välttämättömät, kuten myös PuTTY.

*päivitys*: Git-paketin sijasta Git Extensions. tai PortableGit.

Ja tietty Defraggler korvaa MyDefragin

Sunday, May 03, 2009

Relevantteja intresseille

Console, oikein kiva must have. BTW set DIRCMD=/P /OGN helpottaa elämää. tämän kun laittaa envvariksi niin kivempaa. 
GnuWin32 myös, varsinkin kun muistaa sitten laittaa pathiin sen bin-kansion. 
Vim on vähän sellainen että vaikea oppia, mutta sitten vaikea olla ilman. Nuo kun laittaa niin rupeaa windowsissakin olemaan melkein kuin kotona. 
Vimpluginia en ole testinyt, mutta kehitystyöhön välissä kaipaa aina järeämpää IDEä. 
*edit*
Ok, nyt on testattuna. Ei minusta oikein toimi hyvin, päädyin kuitenni käyttämään Eclipsen omaa editoria, mikä on perus-OK. 

Eclipsen Ganymede-julkaisu vaikuttaa marginaalisesti Europaa paremmalta.