zondag 25 november 2007

Deze blog sluit

Voor diegenen die denken: geeft hij het al zo snel op om te bloggen:

Neen hoor, deze blog verhuist gewoon naar wordpress.com (in de hoop dat mijn posts nu wel gaan verschijnen op codeyard planet)

De nieuwe link nog even: http://nathansamson.wordpress.com/

zaterdag 24 november 2007

Polygonen, triangulataties, kapen

Gisteren hadden we op school de wiskunde B dag. De opdracht ging over veelhoeken, triangulaties, kapen, ..... De dag was op zich zeer interessant, maar de opdrachten waren wel zeer moeilijk, het resultaat van onze groep is dan ook wel zeer magertjes.
Voor diegenen die minder goed mee zijn in deze wiskunde even de volgende uitleg:
Een polygoon is gewoon een veelhoek, onze opdracht ging vooral over simpele polygonen (dat zijn veelhoeken die zichzelf niet doorsnijden - de meeste polyonen zijn dus zo). Een triangulatie is het opdelen van een veelhoek in driehoeken die elkaar niet overlappen, en volledig in de veelhoek liggen, en waarvan de hoekpunten, hoeken zijn van de veelhoek zelf. Een kaap is simpelweg een hoek waarvan de 2 buurpunten kunnen verbinden, en de verbindingslijn volledig in de veelhoek ligt.

Zo was er bijvoorbeeld een vraag: "Bereken het aantal mogelijke triangulaties voor een convexe (zonder inspringende hoeken) van een n-veelhoek". Er stond ook de suggestie bij dat je daar een programma voor mocht schrijven, want ik natuurlijk meteen heb gedaan (weliswaar zonder resultaat want het werkte niet).

Vannacht heb ik ook bedacht hoe ik deze kennis nu kan gebruiken in Jogo. In vorige versies van jogo konden objecten met elkaar botsen, maar hadden deze objecten een rechthoekige vorm. Door middel van een object om te zetten naar een veelhoek zouden veel betere botsingsresultaten kunnen worden gevonden. Ik dacht eraan om het op deze manier te doen:
  1. Het object (of beter de tekening van het object) wordt omgezet naar een polygoon
  2. De polygoon wordt getrianguleerd.
    Deze eerste 2 stappen zouden tijdens het "compileren" van het programma kunnen gebeuren en moeten dus niet supersnel zijn.
  3. Tijdens het draaien van het spel wordt voor elk object telkens gecontroleerd of het één of meerdere punten gemeenschappelijk heeft met een ander object (= een botsing). Dit kan gebeuren door dit te doen voor elke 3hoek met elke andere 3hoek (dit is al veel simpeler dan een polygoon op zijn eigen controleren)
Dit is hoe ik het zag. Toen begon ik te denken over punt 2: het trianguleren. Aangezien dat ik gisteren heb geleerd dat je een veelhoek kunt trianguleren door telkens een kaap af te snijden leek mij dat de meest simpele oplossing - mogelijk niet de snelste, maar snelheid is in dat stadium niet superbelangrijk.
Toen dacht ik: hoe herken ik een kaap? Zeer simpel, je pakt een willekeurig punt, je zoekt de 2 buurpunten, je trekt er een lijn tussen, je controleert of die lijn een zijde snijdt, zo niet is het een kaap, anders ga je naar het volgende punt van de polygoon. Toen ging ik over naar punt 3: hoe kan ik controleren of 2 driehoeken "botsen"? Ik bedacht het volgende : je controleert van 3hoek A de 3 zijden die snijden met een van de zijden van 3hoek B.
Toen viel mijn frank (of euro), als ik nu gewoon de zijdes van polygoon van object 1 met de zijdes van object 2, dan moet ik veel minder zijdes controleren dan als ik met 3hoeken werk, dus dat zou sneller moeten zijn. En dan valt een deel van het probleem weg (het trianguleren).

woensdag 21 november 2007

Ubuntu-Install-Party

Vandaag was er de ubuntu-install-party bij ons op school, en het was een grote flop.
Ten eerste waren er maar 2 geïntresseerden, terwijl ik eerder had gehoopt op een aantal van 10 of zelfs meer.
Ten tweede leek alles fout te lopen: Mijn laptop gaf geen beeld op de beamer (wel als hij in tekstmodus zat, maar niet in X modus), De vaste computer runde geen compiz (uiteindelijk wel), de laptop waar de presentatie uiteindelijk op werd gegeven was een laptop zonder werkende harde schijf en gaf eerst wat problemen om op te starten.
Toen de presentatie uiteindelijk startte - gegeven door een 15jarige ubuntu community lid uit het antwerpse - een dik half uur te laat, ging het eerst een hele tijd over wat linux/opensource/ubuntu eigenlijk was, terwijl de nadruk eerder had moeten liggen over het gebruik (en de gebruiksvriendelijkheid). (slides zijn te bekijken op ubuntu.rpgfamilie.net, deze presentatie zelf zit vrij goed in elkaar)
Toen de demo dan eindelijk starte was het - zoals iemand anders uitdrukte - een flipperkast (van draaiende kubussen enzo) en niet iets waar je echt iets van kon leren. Een mening waar ik me bij moet aansluiten. Als ik de demo had gegeven - en dat was oorspronkelijk zelfs de bedoeling - dan was ze volgens mij vele beter en leerrijker geweest.

Nouja een volgende keer beter zou ik maar zeggen.

zaterdag 10 november 2007

BBQ

Wij, leerlingen van het 6de jaar van het KLA, geven in maart het traditionele schoolfeest. (Een optreden van alle leerlingen met dans, theater, film, muziek, ...)

Om dit allemaal te kunnen financieren (techniekers licht, geluid, film, ...) organiseren wij vanalles.
Vorige week was het een carwash - op de parking van een of andere supermarkt. Gisteren was het dan aan de beurt van onze winter Barbeque: 250 leerlingen, leerkrachten, ouders, oud-leerlingen, vrienden, ..., die bij ons op school kwamen eten.
Resultaat van de avond: dodelijk vermoeid - alhoewel ik tegen over sommige andere (dank U Fernanda, Kris, Bart, Sam, Frank en alle anderen) weinig heb gedaan.
Echte resultaat van de avond: meer dan 2000 euro winst - het precieze bedrag kan pas berekend worden na de factuur van de drank, één gestolen fiets (sorry Sam), één gestolen elektriciteitsdraad (sorry Seamus), één gestolen bbqtang (nogmaals sorry Seamus), en heel wat zatte leerkrachten en leerlingen die er samen nog een zeer gezellige nacht van hebben gemaakt - die ik jammer genoeg niet meer volledig heb meegemaakt.

Al bij al een geslaagde avond dus, hopen dat het schoolfeest zelf (18 maart) ook zo'n succes wordt.

dinsdag 6 november 2007

Jogo

Zoals sommigen onder de lezers waarschijnlijk wel weten ben ik bezig aan het project Jogo: "Een spelontwerper om grafsiche games te maken". Dit project won voirg jaar in eind april de Capgemini OpenSource Award, sindsdien lag het project zo goed als stil.

Sinds een aantal dagen ben ik terug beginnen programmeren, maar dan vanaf een helemaal cleane broncode.
Redenen van deze rewrite:
  • De API was slecht
  • De code voor de GUI zat zeer onhandig in elkaar
  • Er misten een aantal belangrijke features, die moeilijk nog te programmeren waren in deze oude code.
Met de rewrite volg ik een veel schoner ontwikkelingsschema:
  1. Eerst wordt de Kern helemaal herschreven, en elke keer als er iets nieuws wordt toegevoegd wordt er meteen een Unit test geschreven.
  2. Daarna zal de runtime aan bod komen, mogelijkheid tot automatische tests zal nog onderzocht worden.
  3. Daarna pas zal er een GUI worden ontwikkeld, die ook volledig getest gaat worden door LDTP
Doelen van de rewrite:
  • Veel stabielere kern/GUI (door de vele tests)
  • Veel betere API
  • Undo/Redo vanaf het begin
  • Debugger voor runtime
  • Een volledig nieuwe GUI, die veel beter eruit zal zien dan de vorige
  • Plugins voor oa taalgeneratie/compilatie
    Dit zou als verder doel (dus na 0.1) moeten hebben dat niet alleen C#/SDL games kunnen gemaakt worden, maar vanuit een zelfde project ook bijvoorbeeld een Flash versie, of een versie met SVG en javascript direct in de browser te gebruiken.
  • ...
Momenteel zal deze versie van Jogo 0.5 zijn (waar vroeger alleen nog maar 0.1 was gereleased en 0.2 in ontwikkeling), maar mogelijk wordt dit meteen 1.0

Momenteel is de planning om een basis kern af te hebben tegen het eind van de kerstvakantie. Een eerste bruikbare versie voor de GUI zou dan moeten volgen tegen de paasvakantie, of mogelijk later nog.

Ik zoek ook nog mede geïntresseerden die eventueel nog goede ideeën hebben, of mee willen programmeren.

zaterdag 3 november 2007

Harde schijf

Eind juni heb ik mijn nieuwe laptop gekocht, en ik was daar zeer tevreden mee. Tot 2 weken geleden ineens de harde schijf er geen zin meer in had. Vrij vervelend, want ik had geen backups...

Ik krijg mijn laptop terug met een vervangen harde schijf, en ik installeer ubuntu 7.10 (op 2 partities, 1 voor / en 1 voor /home), Mac OS X staat op nog een 3e partitie.
Ook koop ik meteen een externe harde schijf (500 GB), om backups te nemen, en ook meteen om data te delen tussen 3 computers.

Tot gisteren werkte dit goed, want ineens zat / voor 100% vol (0 bytes vrij), weer vrij vervelend, maar mijn eigen fout want / was maar 6 GB groot.
Mijn oplossing: booten vanop livecd en met gparted / wat groter maken. Daarvoor moest /home wel verkleind worden en naar rechts verplaatst. Duur van die operatie: bijna 11 uur (gelukkig kon ik gaan slapen)

Volgende morgen, alles lijkt in orde, reboot, kom in GRUB: GRUB Hard disk error.
WTF wa nu weer? Terug booten op live cd en / mounten gaat perfect. Mogelijk zit het probleem erin dat de BIOS de verkeerde schijfgrootte doorgeeft aan GRUB, maar een oplossing (buiten het updaten van de BIOS) was er niet;

Geprobeerd om grub-install te runnen, maar dit gaf geen resultaat => Gutsy terug geinstalleerd (met behoud van /home). Na nogmaals een uurtje kan ik dan eindelijk terug booten.



Hopelijk dat ik vanaf nu wat minder problemen met mijn harde schijven ga hebben.

vrijdag 2 november 2007

2de Poging

Dit is namelijk de 2de poging om een blog te starten, hopelijk komt het tot méér dan 1 bericht per eeuw.

In deze blog zal ik het hebben over ervaringen met mijn computer (op dit ogenlik een macbook (laatste generatie) met Ubuntu Gutsy (7.10) en OS X Tiger (10.4) - waarbij deze laatste bijna niet gebruikt wordt)