0110.be logo

~ Vergelijking Ruby VMs

Ruby Logo

Ik heb een B-Tree en een Red-Black tree geschreven in Ruby. Om die datastructuren te testen heb ik een programma geschreven dat alle woorden uit een grote tekst inleest in een b-tree met het woord als sleutel en de frequentie als waarde en daarna een red black tree gebruikt als priority queue met als sleutel de frequentie en als waarde het woord. Op die manier kunnen de meest voorkomende woorden bepaald worden. De broncode is hier neer te laden.

Het programma is een ideale test voor Ruby VM’s: het is redelijk intensief en gevarieerd. IronRuby, JRuby, Ruby 1.8 en Ruby 1.9 werden getest op een Intel Core 2 Duo E6660 en dit zijn de resultaten:

VM Duur Geheugen VM details
JRuby 28.79 sec 162MB jruby 1.1.3 (ruby 1.8.6 patchlevel 114) (2008-07-20 rev 7243) [x86-java]
IronRuby 88.15 sec 195MB IronRuby 1.0.0.1 on .NET 2.0.50727.1433
Ruby 1.8 104.1 sec 102MB ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
Ruby 1.8 66.8 sec 96MB ruby 1.8.6 (2007-09-24 patchlevel 111) [universal-darwin9.0]
Ruby 1.9 33.42 sec 88MB ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-darwin9.2.0]

De verschillen zijn dus erg groot. Zowel in geheugengebruik als in duur. Ruby 1.8 is blijkbaar erg traag maar gebruikt relatief weinig geheugen. JRuby is in deze test drie keer sneller maar gebruikt meer geheugen. Ook IronRuby is sneller dan de standaard Ruby VM maar gebruikt net niet het dubbele aan geheugen. Hierbij moet wel verteld worden dat IronRuby een alfa build is, de resultaten kunnen dus nog veel veranderen.

Ruby 1.9 werd later getest op Mac OS X, met dezelfde pc. De nieuwe Ruby lijkt toch enkele beloften in te lossen. Ter vergelijking werd de voor Mac OS X geoptimaliseerde Ruby 1.8 VM die standaard met het besturingssysteem meegeleverd wordt ook nog getest.


~ Bash Script to Backup Remote Postgres Databases via Cron with Password Authentication

PostgreSQL Logo

I have modified a bash-script to backup PostgreSQL databases, this is the original script. The modified version can be used to backup databases on a remote or local database server. Also this script does not need a trust relationship but uses a login and password. To get started you need to:

  1. Modify the directory and database variables to suit your needs.
  2. Add an entry to crontab to perform the backups nightly or whenever you wish.
  3. Have fun.

The script empties ~/.pgpass and writes login info for the system databases. Then it logs in and fetches an up-to-date list of databases. For every database an entry is made in ~/.pgpass and every database is backed up. The results are logged to $logfile.


~ Collaborative Filtering: Onderzoek & implementatie

Vooruit Logo

Gisteren werd de laatste hand gelegd aan de thesis over collaborative filtering (CF) waar Greet Dolvelde en ikzelf een jaar mee bezig zijn geweest. Als je hier meer over wilt weten dan kan je het werk Collaborative Filtering: Onderzoek & implementatie [pdf] downloaden. De intiemste details van verschillende CF-benaderingen worden er in geuren en kleuren uit de doeken gedaan. Uit de poster zou moeten duidelijk zijn waarover de thesis eigenlijk gaat:

Poster Collaborative filtering: onderzoek & implementatie

De poster is ook verkrijgbaar in pdf-formaat.


~ Genetisch algoritme in Python

Python Logo

Maandag heb ik een examen over A.I. Dat gaat onder ander over genetische algoritmen. Om dat principe in werking te zien heb ik een eenvoudig programmatje geschreven in Python: er zitten enkele beestjes (vierkantjes) in een omgeving. Als de beestjes opvallen, witte beestjes zie je goed zitten op een zwarte achtergrond, worden ze verslonden. De beestjes die minder opvallen overleven, muteren of planten zich voort. Overlevenden gaan een generatie langer mee. Bij het muteren verandert de huidskleur willekeurig. Bij voortplanten wordt er een kind gemaakt die het gemiddelde van de huidskleuren van zijn ouders als kleur heeft. Als het meerendeel van de beestjes uiteindelijk een goeie schutkleur aangenomen hebben kan de achtergrond veranderd worden en begint alles van voor af aan.

Screenshot genetisch algoritme.

Dit is de broncode van het programma, het werkt enkel met grijswaarden. Er is ook een uitvoerbaar bestand voor Windows. De .exe is gemaakt met PyInstaller. De achtergrondkleur kan veranderd worden door er op te klikken. Dit is broncode van de versie met kleur.


~ Text To Speech Recognition

Python Logo

Om Python wat te leren kennen heb ik een “Text To Speech Recognition” programma geschreven. Het roept SAPI 5.1 aan om een tekst voor te laten lezen door Microsoft Sam. Het voorgelezen stuk tekst wordt daarna meteen via microfoon opgenomen en Sam probeert het zelf, via Speech Recognition, te verstaan. Het resultaat van de speech recognition wordt dan gelezen door Sam enzovoort… Dit is een voorbeeld van Sam in dialoog met zichzelf:

I am sitting in a room different from the one you are in now. I am recording the sound of my speaking voice and I am going to play it back into the room again.

I’m sitting in a room different from the one U.N. NA I’m recording the sound of my speak English and I’m going to play it back into the room against

I’m sitting in a room different from the one you could in a LAN recording the sound of my speak English and I’m going to clamp back into the room against

I’m sitting in a room different from the one you put in a LAN recording the sound and I speak English and I’m going to clamp back into the room against

I’m sitting in a room different from the one you put in a LAN recording the sound and I speak a Mac into ghent

I’m sitting in a room different from the one you put in a LAN recording the sound and I speak a match into ghent

De broncode is hier te vinden.


~ Studium Generale: Het Vergeten Van Het Geheugen

Ik heb voor het vak Studium Generale een paper geschreven. De paper moet een kritische verwerking zijn van vijf bijgewoonde lezingen. Dit jaar was het thema

Het studium generale van de Hogeschool Gent zal zich dit academiejaar
buigen over de paradoxale werking van geheugen en vergeten voor de huidige
wereld. Ook blijkt het massale opslaan en toegankelijk maken van het collectieve
geheugen slechts voor een minderheid kritische meerwaarde te bezitten; het
toenemen van historisch besef en kritische inventarisatie gaat niet hand in hand
met de toename aan inzicht.

In deze paper wordt de aandacht gevestigd op één aspect van de brede waaier aan
mogelijke onderwerpen: De invloed van retorische technieken en de filosofie van
het dramatisme op de vorming van het collectieve geheugen. Aan dat centrale
thema worden de verschillende lezingen verbonden. De paper is te downloaden als pdf en ook de latex bron bestanden zijn beschikbaar:


~ Stage bij kunstencentrum Vooruit

Vooruit Logo

Kunstencentrum Vooruit heeft sinds kort een nieuwe site opgericht. Aan de site is een community luik gekoppeld waarop gebruikers een profiel kunnen aanmaken en evenementen op een persoonlijke wishlist kunnen plaatsen. Daarnaast kunnen ze er ook tickets voor voorstellingen kopen. Ook kunnen de gebruikers relaties tussen zichzelf en vrienden leggen.

Aan de hand van die gegevens en de gegevens van in het back-office systeem zou het mogelijk moeten zijn om een cultureel profiel op te stellen van de gebruikers en ze gepersonaliseerde, relevante tips geven. De voordelen van zo’n Customer Intelligence systeem zijn legio:

En dat C.I. systeem gaan wij volgend jaar ontwikkelen. Er zal een uitgebreid onderzoek gebeuren naar de manier waarop en daarna wordt een implementatie gekoppeld met de in Ruby on Rails ontwikkelde website.


~ Muzieksmaak in een grafiekje

Dit is een grafiekje waarop je de evolutie van mijn muziekale smaak kan zien tijdens de voorbije twee jaar. De dikte van de stroom toont de populariteit tijdens die periode aan. Onderaan staat er in het klein een tijdslijn. Klik voor de (erg) grote versie.

Joren zijn persoonlijke muzieksmaak en dat in één grafiekje.


~ Sorteeralgoritmes in c++

Voor het vak algoritmen hebben we enkele sorteeralgoritmes besproken en in c++ geïmplementeerd. Dit is mijn versie van de algoritmes het gebruikt een interface SortAlgorithm en het Strategy design pattern om zijn werk te doen.

Sorteer algoritmes en het Strategy design pattern

In principe kan om het even wat gesorteerd worden maar sommige sorteeralgoritmes (Counting Sort) werken enkel met int’s. Om strings te sorteren kan gebruik gemaakt worden van de Nstring klasse.

Elk sorteeralgoritme kan getest en gemeten worden, dit is de uitvoor voor het shell sort algoritme met de Sedgewick incrementen:


Measuring sorting algorithm: Shell Sort: Sedgewick increments
                            Random           Sorted         Reversed
              128                0                0                0
              230                0                0                0
              414                0                0                0
              745                0                0                0
             1341                0                0                0
             2413                0                0                0
             4343                0                0                0
             7817                0                0                0
            14070             0.01                0                0
            25326             0.01                0             0.01
            45586             0.01             0.01             0.01
            82054             0.03             0.01             0.02
           147697             0.07             0.02             0.03
           265854             0.12             0.05             0.06
           478537             0.22             0.09             0.12
           861366             0.44             0.15             0.22

Hier kan de code gedownload worden: download. Niet alle algoritmes werken even goed dit is een lijst van werkende algoritmes die het wel doen:


~ Vakantiejob bij Encima

Ik werk momenteel bij Encima. Encima maakt websites en andere toepassingen in Java. Mijn eerste week zit er al op en ik heb me bezig gehouden met een module voor www.weekendesk.com. Maandag wordt de module, samen met de nieuwe versie van de site, in gebruik genomen. Weekenddesk doet het volgende:

Weekendesk.com is een B2C e-commerce site die weekend- en dagtrips on line verkoopt en zich hierbij in eerste instantie op de Belgische en Nederlandse markt richt. Weekendesk fungeert hierbij als tussenpersoon tussen de consument en de organisator van de vrijetijdsactiviteit. De website biedt de klant op een frisse en overzichtelijke manier alle nodige informatie over de vrijetijdsactiviteiten.
De activiteiten zijn onderverdeeld in twee types: cadeaubonnen en weekendideeën. De prijs en beschikbaarheid van elke activiteit is steeds up-to-date. On line boeken is snel, eenvoudig en veilig. Betalen kan via creditcard of per overschrijving.
Via een on line content management module kan Weekendesk alle activiteiten en de gerelateerde informatie (beschrijving, fotoboek, prijzen, beschikbaarheid, promotie, ...) beheren. Een order management module laat hen toe de bestellingen on line op te volgen.
Ook de leveranciers (organisatoren) van de activiteiten kunnen via een private on line module de beschikbaarheid, prijzen en promoties inbrengen.
En net die module voor de leveranciers, organisatoren (meestal hotels) heb ik in elkaar gestoken.

~ 0110 Logo set

Hieronder staat een lijst van 0110 logo's in verschillende formaten die gebruikt kunnen worden voor verschillende doeleinden.

Web:

Hieronder staat een lijst met voorgebakken logo's voor op het web. Voor andere groottes, achtergronden (transparant), kleuren, formaten kun je je behelpen met het 0110-logo in photoshop formaat.

Print

Onderstaande logo's kunnen gebruikt worden door mensen die dingen uitprinten, op papier, met inkt.


~ Edutainment paper: Imperceptible edutainment & mathematics

Ik heb voor BIT4, een cursus die ik hier volg een paper geschreven over onwaarneembare edutainment en wiskunde. De bedoeling ervan is aan te tonen dat edutainment meer is dan schooltelevisie of iets als een flash game over de Afrikaanse zwaluw. Ik probeer te bewijzen dat drie verschillende spellen spelenderwijs wiskunde aanleren en dus edutaining zijn. Right...:


~ Studium Generale: Smaakmakers

Ik heb voor het vak Studium Generale een paper geschreven. De paper moet een kritische verwerking zijn van vijf bijgewoonde lezingen of een eigen verhaal rond het centrale thema. Ik heb voor het tweede gekozen en omdat het algemene thema nogal breed is:

Tijdens de volgende jaargang willen we nadenken over de vraag, hoe het gesteld is met onze zo geroemde individuele vrijheid in het licht van de globale netwerken die deze vrijheden zeggen te leveren.

Dacht ik van het aangename aan het nuttige te koppelen en over iets te schrijven wat me zelf interesseert en waar ik vaag iets over weet. Muziek en het internet en hoe smaak beïnvloed wordt door het internet. Mijn paper is dan ook getiteld Smaakmakers. De paper moet pas ingediend worden de 2e mei dus ik zou het appreciëren mocht er iemand feedback op geven. Hieronder staan links naar het document in verschillende formaten:


~ Wat we in Halmstad doen

Halmstad University

Mel en ik zijn bezig aan een systeem om war games te ondersteunen. War games zijn grootschalige ramp-oefeningen.

Bijvoorbeeld een aanval van terroristen op een kerncentrale. Er wordt een bepaald scenario opgesteld: terroristen gijzelen werknemers en dreigen de boel op te blazen. Er wordt op deze situatie gereageerd door iedereen die daar in het echt ook mee zou te maken hebben: politie, swat teams, er worden fake nieuwsberichten gemaakt door de media, de werknemers van de centrale zelf,....
Tijdens die simulatie wordt adhv vragenlijsten gepolst hoe goed (of slecht) alles verloopt. Die vragenlijsten komen op een beveiligde website die wij aan het programmeren zijn. Die data is dan de basis voor een rapport met de bevindingen: wat verliep er goed en wat kan beter.

We gebruiken het ASP.NET 2.0 platform in samenwerking met een sql express 2005 database én een object database: db4o. Daarmee zijn we aan het experimenteren. Daarbij horen unit tests en load tests. Daaruit blijkt dat Db4o zijn beloftes waar maakt:

Embed db4o's native Java and .NET open source object database engine into your product and store even the most complex object structures with only one line of code. db4o slashes development cost and time, provides superior performance, and requires no DBA.

blijkbaar zijn we verplicht een access database te gebruiken, hoe 1994, zucht.


~ Hallo uit halmstad

We zijn hier eergisteren (maandag) aangekomen. We namen het vliegtuig van Brussel naar Kopenhagen en dan de trein naar Halmstad. De reis is volledig volgens plan verlopen, we kwamen zoals gepland om 16.54 toe. Dus daar valt niet veel spannends over te melden. Bij deze: niets spannends wink ([;)]).

Sinds kort, drie minuuten dus, heb ik draadloos internet op mijn kamer. Dat is praktisch omdat een groot deel van onze opdracht "maak een website" is. Aan die opdracht kunnen we ten vroegste vrijdag beginnen: vrijdag krijgen we een uitgebreidere briefing over wat we moeten doen. Gisteren kregen we al een oppervlakkige uitleg tijdens een lunch met onze mentor.


~ Acceptance Letter ontvangen

Logo Halmstad University

Dit weekend heb ik een brief ontvangen van de "School of Information Science, Computer and Electrical Engineering". Die ging als volgt:

LETTER OF ACCEPTANCE

With this letter I certify that the student Mr Joren Six is admitted as an exchange student to Halmstad University during the Spring semester 2006.



~ Ik ga naar Halmstad

Ik heb me, vorig jaar al, kandidaat gesteld om aan een Erasmus/Socrates uitwisselingsprogramma mee te doen. Ik had meteen interesse om naar Zweden te vertrekken. Ik ga dus waarschijnlijk vanaf begin maart in Zweden, meer bepaald Halmstad, te vinden zijn. Aan de "Högskolan Halmstad" zou ik dan een opdracht krijgen die vergelijkbaar is met een stage in een bedrijf.
Välkommen till Högskolan I Halmstad

~ Eindwerk over Beeldschermtechnologieën: LCD, PDP & CRT

LCD-Scherm

Samen met Kris Welvaert en Dries Boone heb ik een eindwerk gemaakt over verschillende beeldschermtechnologieën. Dit is een pdf van het eindwerk over LCD, PDP & CRT. De inleiding maakt duidelijk over wat het precies allemaal gaat:

De televisie en de computer hebben in de 2 de helft van de twintigste eeuw de wereld totaal veroverd en op vele gebieden sterk veranderd. Dag na dag en in alle delen van
de wereld kijken mensen naar televisie; en dag na dag zijn miljoenen computermonitoren in bedrijf over een immens gebied in sterk verschillende toepassingen.


Schermen zijn een niet te verslaan medium geworden om elektronische informatie
(tekst of grafieken), stilstaande of bewegende beelden weer te geven. Geen enkel
ander medium heeft de veelzijdigheid, de snelheid en de interactie als die van een
scherm. Belangrijkste kenmerken van een scherm zijn de weergavekwaliteit en de
reactietijd. Ze bestaan in alle soorten, maten en gewichten. Afhankelijk van de
doelgroep ziet men dat er zich bepaalde weergavetechnieken profileren, zoals
bijvoorbeeld, voor grote groepen, zal er meer gebruik gemaakt worden van projectoren
dan van enig andere techniek. Net zoals met verplaatsbare schermen, hier ziet men
hoofdzakelijk maar flat panel displays (FPD). Deze kunnen nog wel onderverdeeld
worden in bepaalde technieken maar steeds zullen dit FPD’s zijn. Bij schermen voor
persoonlijk gebruik die stabiel moeten zijn is wel een grote verscheidenheid aan
weergaventypes. Men zal deze daarom nog onderverdelen in bepaalde
toepassingsgebieden zoals op het hoofd gemonteerde schermen, muurgemonteerde
schermen, bureauschermen…

Het zou onmogelijk zijn om alle beeldvormingprincipes voldoende te kunnen belichten,
daarom hebben wij ons beperkt tot het bespreken van drie beeldvormingprincipes,
namelijk CRT (Cathode Ray Tube), PDP (Plasma Display Panel) en LCD (Liquid Chrystal
Display) omdat dit tot op heden de meest courante beeldschermen zijn. Voorafgaand
aan deze hoofdstukken hebben wij de eigenschappen van licht en kleur en de werking
van het oog uitgelegd, dit om de werking van de verschillende technieken te kunnen
begrijpen. Vervolgens is er ook een hoofdstuk over modulatie in ons eindwerk
opgenomen, om de zendermodulatie van televisie te kunnen begrijpen en tot slot
hebben wij nog een hoofdstukje over teletekst.


~ first post :p

first post :d

~ db info

De site werkt nu met een access 2002 database maar er is nog veel werk.

Previous blog posts