Geslaagd!

Vanmorgen mocht ik om me resultaten. Vijf weken studeren heeft dan toch zijn vruchten afgeworpen :-). Hier zijn me punten.

Communicatie in het Engels – deel 2: 12/20
Computernetwerken – deel 2: 17/20
Databanken: 15/20
Dynamische websites: 17/20
Objectgerichte systeemanalyse: 12/20
OO ontwerpen: 16/20
Wiskunde – deel 2: 18/20

En nu nog een grote week niets doen voor school, zalig! :-)

FOSDEM 2010

Op 6 en 7 februari 2010 gaat het grootste nerd event terug door te Brussel: FOSDEM! Omdat het vorig jaar wat tegen viel, hoop ik op een goed jaar. Ik kan helaas maar op 6 februari aanwezig zijn omdat mijn aanwezigheid niet kan gemist worden op een b-day party op 7 februari. Ik heb dit jaar eens een planning gemaakt van wat ik wil gaan bijwonen. Ik heb gekozen voor alles een beetje. Ik ga naar PostGrSQL, Groovy (Java), KDE en HTML 5.

Je kan mijn afspraken volgen op Google Calendar.

Ik zie jullie daar mede nerds :-).

Haïti: een goeie investering?

Ik heb het nieuws niet echt gevolgd rond Haïti en moest er niemand mij iets zeggen, zou ik het nog steeds niet weten wat er gebeurd is. Er is terug een grootschalige inzamelactie geweest in (bijna) alle landen. Nu zie ik een reportage op Canvas over de toestand van Haïti voor de aardbeving. Stel ik mij de vraag: zorgt het geld voor vernieuwing en vooruitgang of enkel voor geld over de balk te gooien?

Dat laatste willen we zekers niet meer meemaken nu de economie langzaam stabiel wordt. Dus zal het het eerste moeten worden. De regering is zo slecht als iets in Haïti, de VN probeert al jaren democratie te brengen maar het lukt hen niet. Er zijn rebellen overal in het land. Enfin één groot puinhoop die zich geen botten aantrekt van mensenrechten of niet luistert naar een mening van iemand (iemand is een persoon, inwoner, land of organisatie).
Je euro’s zullen wel aankomen in Haïti (als organisaties er ook niet corrupt mee omgaan) en ze zullen het land wel voorzien van de basisbehoeften. Maar als de situatie stabiel wordt, wat gebeurt er dan? Komen de rebellen terug en gaan ze de mensen, die hulp kregen van jou centjes, vermoorden? Laat ons hopen van niet want dan komt 11-11-11 terug met een campagne waar jij terug euro’s aan kan geven. Hopelijk is de VN nu strenger en gaan ze daar zelf een regering oprichten en democratie inrichten. Daarnaast zou men alle hulp moeten weigeren aan rebellen die zijn getroffen, poets wederom poets.

Als laatste vraag ik me af wat de regering van Haïti doet om hun eigen mensen te helpen. Hoeveel van hun eigen mensen helpen en hoeveel geld wordt uit eigen zak gedokt?

Enfin, toch doe ik me petje af voor de hulpverleners die nu dag en nacht werken. Ook sterkte voor de families die wachten op nieuws.

MyISAM sucks!

Voor me examen databanken overmorgen moet ik de hele SQL taal kennen. Ieder keyword moet in me geheugen gegrift staan. No problemos voor mij omdat ik al jaren iets van SQL ken en ik snel syntax kan aanleren. Ik wou eens testen of die foreign keys en die integriteitsregels wel werkte. Waarschijnlijk wel maar ik wou het met me eigen ogen zien.

Ik ga aan de slag en typ de volgende SQL code: http://pastebin.com/f1bb49f95.

Nu blijkt bij een foute insert dat de CHECK bij gebruikers niet gedaan wordt. Bij topics kan ik een foute id zetten bij de gebruiker. Als ik de gebruiker verander, verandert dat niet in zijn topics. Als ik een gebruiker verwijder, geeft hij geen foutmelding.

Ik begon te denken dat MySQL niets kon! Een product dat zo populair is, kan niets van de standaard SQL. Dat vond ik wat vreemd. Ontani kwam met de oplossing dat ik een verkeerde engine gebruik. MySQL heeft verschillende engines en de standaard is MyISAM. Die kijkt blijkbaar naar weinig regels. De engine die het wel doet is InnoDB. Dus vanaf nu weg met die MyISAM en hoera voor InnoDB!

Idee’tje

Toen ik volgende artikel op tweakers las, kreeg ik een idee. Als je niet thuis bent, je bent gaan werken en je vrouw zit weer te kletsen bij de buurvrouw, en er komt iemand langs die aanbelt (de postbode, een kameraad, getuige van jehova, …). Het systeem vertelt aan de aanbeller dat er niemand thuis is. Dan kan deze persoon een videoboodschap nalaten (een camera en microfoon inbouwen moet niet zo lastig zijn zekers in dit idee).
Later kom je terug van je werk, de vrouw zit nog altijd te kletsen bij de buurvrouw, en zie je dat er iemand aan de deur is geweest. Je klikt op de video waarin de aanbeller zijn boodschap verteld. Het systeem zou moeten ingebouwd zijn dat je die persoon zou kunnen bellen of dat je de persoon zijn locatie (thuis, werk, …) kan doorsturen naar je gps in je auto en er naartoe rijden.

Of dit systeem al bestaat weet ik niet, ik hoop van niet en ik hoop ook niet dat er een chinees dit bericht leest.

Algoritme Leenknegt-Floyd-Warshall

Het algoritme van Floyd-Warshall berekent het kortste pad tussen punten. We moeten dit algoritme kunnen voor het examen Wiskunde voor informatici komende donderdag. Ik heb algoritme eens bekeken en vond dat dit op sommige punten sneller kon.

Punt 1
Stel ik wil weten of het pad van punt 2 naar 3 via 1 korter is dan het huidige pad maar het pad van punt 2 naar punt 1 is oneindig. Dat betekent dat alle punten van 2 naar eender welk punt via punt 1 nooit kan want er is geen verbinding tussen punt 2 en 1.

Punt2
Als je wilt kijken of het pad korter is van punt 2 naar punt 2 via 1 is ook totaal nutteloos, want dit is altijd 0.

Punt 3
Als je van punt 2 naar punt 3 via punt 3 wilt, is ook zinloos want je gaat naar punt 3.

Punt 4
Als je wil kijken of de punten van punt 2 naar punt n via punt 2 korter kunnen is ook nutteloos.

Punt 5
Een gevolg van punt 1. Stel ik wil weten of het pad van punt 2 naar 3 via 1 korter is dan het huidige pad maar het pad van punt 1 naar punt 3 is oneindig. Dat betekent dat alle punten van 2 naar punt 3 via punt 1 nooit kan want er is geen verbinding tussen punt 1 en 3.

Dit zijn vijf kleine verbeteringen aan dit algoritme. Ik heb dit meteen in Scilab code geplaatst en dit klopt. Voor paden tussen kleine aantal punten maakt dit waarschijnlijk niet zoveel uit maar stel dat je paden hebt tussen 5000 punten. Dan heeft je algoritme 5000³ iteraties uitgevoerd, terwijl het mijne minder uitgevoerd wordt. Het algoritme wordt alvast minder dan 5000³ – 3 * 5000 keer uitgevoerd, dat is de worst-case O notatie. Als punt 1 of punt 5 voorkomt dan kan je nog eens 5000 iteraties wegnemen. Voor punt 1/5 zou ik dit nog eens moeten narekenen.

De Scilab code (oud, zonder punt 5): http://pastebin.com/f71d588af
De Scilab code: http://pastebin.com/f4d0add16

Na een test uit het boek van 5 punten, wordt er dus 125 keer doorlopen normaal en met mijn versie erbij komt dit neer op 48 keer.

update

Na een tweede blik op de verbeteringen, heb ik een vijfde puntje gevonden. Het algoritme ging van 48 stappen naar 31 stappen. Ik had in één klap +10% winst gemaakt.

Opgelet!

De graaf moet gesloten zijn en er moet dus een weg zijn voor ieder punt in de graaf. Dit is ook de voorwaarde van de originele Floyd-Warshall algoritme. Anders krijg je  bv een punt x dat niet met een ander punt y kan verbonden worden via andere punten.

Wat ga ik na de examens doen…

Het is nog vroeg maar tijdens de examens denk ik altijd wat ik na de examens ga doen. Hieronder heb ik al een beginnende lijstje gemaakt.

  • Romantisch doen
  • Cloud computing bekijken (Google App Engine)
  • Eindelijk eens aan Eiffel beginnen
  • Een Nederlandstalige community oprichten voor developers
  • Radijsjes plukken
  • Overstappen van Proximus naar Mobile Vikings
  • Werk zoeken voor die twee weken
  • Risk spel maken in Java om EA een kloot af te draaien
  • Het boek van Smashing Magazine kopen
  • Server draaien op kot om allerlei dingen mee uit te steken *lief engeltje*

Examens

Joepie het is terug zover! Examens! Vandaag heb ik me eerste alvast afgelegd: Statistiek. Twee vraagjes waarvan één mondeling met schriftelijke voorbereiding. Die vraag was perfect, niets op aan te merken. Met andere woorden, ik had nogmaals bewezen wat voor nerd ik was. Met de helft van de punten op zak, begon ik aan de schriftelijke vraag. Kansrekenen, bah en dan nog over dobbelstenen, bah bah. Alles was goed opgelost, had eventjes meer tijd nodig omdat ik eventjes op een verkeerd spoor zat. Uiteindelijk had ik het laatste antwoord mis uitgerekend. Ipv optellen had ik vermenigvuldigd me tussenresultaten. Anyway, dat wordt een 14-16/20 waarbij ik natuurlijk super vrolijk mee zal zijn.

Op naar het volgende wiskunde examen.