23 Mar 2010 @ 12:14 AM 

Today I came across what I predict will be the next big paradigm shift in the world of database design. This brilliant work I stumbled upon has been created by 4 students at the Koninklijk Atheneum of Sint-Niklaas, an innovative institute devoted to developing bleeding edge technologies. It is a completely new way of structuring MySQL database tables, the next epoch in design if you will.

Before we have a look at the code, let’s first consider the strong points of this new way of structuring database tables.

Benefits:

  • It does away with all the confusing field type’s – just use INT’s for ID’s, and text for all the rest.
  • Create only one table, which then holds all your data. This can be done by creating fields such as peopleWith1pc, peopleWith2pcs, peopleWith3pcs, ect. Brilliant no?
  • To make it even more easy, it also does away with any sort of naming convention, after all, it’s only confusing!

Let’s have a look at a simple example where the new pattern is applied to a database in which survey results are stored. The table stores ‘answers’ of people who took the survey. The field names are in Dutch, but this should not prevent you from deducing the overall awesomeness.

Code:

CREATE TABLE IF NOT EXISTS `antwoorden` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `geslacht` text NOT NULL,
  `studeren` text NOT NULL,
  `geboorteJaar` int(4) NOT NULL DEFAULT '0',
  `gsm` text NOT NULL,
  `prijsGsmToestel` text,
  `herlaadmanier` text,
  `provider` text,
  `bedragPerMaan` text,
  `smsPerDag` text,
  `belPerDag` text,
  `mp3` text NOT NULL,
  `prijsMp3` text,
  `gebruikMp3` text,
  `pc` text NOT NULL,
  `aantalPc1` text,
  `aantalPc2` text,
  `aantalPc3` text,
  `aantalPc4` text,
  `aantalPc5` text,
  `aantalPc6` text,
  `aantalPc7` text,
  `aantalPc8` text,
  `aantalPc9` text,
  `aantalPc10` text,
  `prijsPc` text,
  `pcWerk` text,
  `pcSchool` text,
  `pcGamen` text,
  `pcFilm` text,
  `pcComm` text,
  `pcSociaal` text,
  `pcMuziek` text,
  `pcAndere` text,
  `pcGebruik` text,
  `pcProvider` text,
  `pc2000` text,
  `pcXp` text,
  `pcVista` text,
  `pc7` text,
  `pcLeo` text,
  `pcSnowLeo` text,
  `pcLinux` text,
  `pcUnix` text,
  `pcAndereBest` text,
  `pda` text NOT NULL,
  `prijsPda` text,
  `pdaWerk` text,
  `pdaSchool` text,
  `pdaGamen` text,
  `pdaAndere` text,
  `pdaGebruik` text,
  `pdaProvider` text,
  `tv` text NOT NULL,
  `tvGebruik` text,
  `tvProvider` text,
  `gamen` text NOT NULL,
  `play1` text,
  `play2` text,
  `play3` text,
  `xbox` text,
  `xbox360` text,
  `psp` text,
  `pspGo` text,
  `gameCube` text,
  `wii` text,
  `ds` text,
  `gameAndere` text,
  `consoleAantal` text,
  `prijsGames` text,
  `digiFoto` text,
  `filmCamera` text,
  `extHD` text,
  `memStick` text,
  `videoRec` text,
  `dvdSpelRec` text,
  `bluRay` text,
  `dlToetsMuis` text,
  `gameToeb` text,
  `surround` text,
  `printer` text,
  `webcam` text,
  `scanner` text,
  `enqueteLeuk` text NOT NULL,
  PRIMARY KEY  (`id`)
)

References:

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
Posted By: Jeroen De Dauw
Last Edit: 23 Mar 2010 @ 12:18 AM

EmailPermalinkComments (1)
Tags
 11 Mar 2010 @ 1:44 AM 

I noticed something fun on Ohloh, a open source contribution tracking site. I reached 347 commits, which is just as much as Icrocker, which is the original developer of the MediaWiki engine. What should happen in that one of us is put on spot i, and the other one on spot i+1. Since i = 30, and i+1 = 31 in this case, that would mean someone on page 3, and someone on page 4. Due to a bug in the paging system, one person will be shown on both pages, and the other one will not be shown on the list.

This is the situation as it was yesterday.Page 4:

And page 3:

As you can see, the (evil) original author (of doom) threw me off the list! Today ceiling cat ruled in my favour though. Page 4:

And page 3…

And I entered the top 30!!!!!1!11!! :D

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
Posted By: Jeroen De Dauw
Last Edit: 11 Mar 2010 @ 01:45 AM

EmailPermalinkComments (0)
Tags
Tags: , , , ,
Categories: Programming
 07 Mar 2010 @ 3:49 AM 

I created a new MediaWiki extension titled “UK geocoding for Maps“, which I released yesterday.

The goal of this extension is to provide a way to display UK postcodes on Google Maps maps, by extending the Maps extension. Since obtaining geocoded postcodes for UK Postcodes via Google services is only possible using the Google AJAX search API, the standard geocoding infrastructure of Maps could not be used, and this extension should be seen as a sort of hack. Initial development for this extension was funded by Neill Mitchell for Prescient Software Ltd.

Version 0.1 is an experimental release, in which multiple issues are expected. I’m hoping to polish the whole extension a little more once I have some free time. Bug reports are welcome though.

You can get version 0.1 from SVN at

http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/UKGeocodingForMaps/
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
Posted By: Jeroen De Dauw
Last Edit: 07 Mar 2010 @ 03:50 AM

EmailPermalinkComments (0)
Tags
 05 Mar 2010 @ 5:28 PM 

Whitespace would like to invite you to its opening weekend 19-21 March.

When: From Friday 19th of March to Sunday the 21st.
Where: Blekerijstraat 75, Gent, Belgium

Whitespace (0×20) is the first hackerspace in Ghent and will be opening its doors for the first time on the weekend of 19-21 March. The space is ready for launch, but far from finished: we’ve got a roof, multiple walls,  and some cat5 and now we need more people to have fun with. Don’t know what a “hackerspace” is? Check http://hackerspaces.org ;-) We hope to see you drop by.

The agenda
The sechedule might undergo minor changes, so keep an eye on the wiki page.
Friday:

  • 20:00: Opening drink, see the space, meet the locals, fun hacker partygames.

Saturday:

  • 14:00 : OpenWRT presentation: a big os for small devices.
  • 15:00 : Flashing for fun & profit (Bring your compatible wireless router (http://wiki.openwrt.org/oldwiki/tableofhardware), Flash it! (don’t worry we’ll walk you trough).)
  • 17:00 : Everything you always wanted to know about IPv6 but were afraid to ask.
  • 18:00 : Open recipe burgers (with secret sauce).
  • 21:00 : Evening entertainment: Powerpoint karaoke hosted by fs111.

After that : something involving liquids.

Sunday:

  • 12:00 Hungry-Hacker is hungry. Breakfast.
  • 15:00 lightning talks:Such diverse subjects as: Google Summer of Code, The talk too trollish to mention, How to get  yourself a lot of work that you didn’t plan by being creative, Something about something, Awesome talk will be awesome, … (open stage, schedule will be on the wiki, add your lightning talk there).

Registration
Is not necessary but it would be nice to give us an idea on how many of you to expect so we have enough chairs and secret sauce. Please add your name: http://www.doodle.com/bg5x7xrbcg5z9h8q. Feel free to invite your friends.

More info
Check out our wiki at 0×20.be, follow us on twitter and join the #0×20 irc channel on freenode.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
Posted By: Jeroen De Dauw
Last Edit: 05 Mar 2010 @ 05:33 PM

EmailPermalinkComments (0)
Tags
 02 Mar 2010 @ 1:11 AM 

Yesterday I released Maps and Semantic Maps 0.5.4. This is a minor update which mainly brings additional stability and security to the 0.5.x branch. It contains several bug fixes, a few code improvements and some security fixes. Check out the Maps change log and Semantic Maps change log.

Semantic MapsThe only new functionality is that you can now define OpenLayers layers in your LocalSettings file, as well as layer groups. This is done by modifying the $egMapsOLAvailableLayers, $egMapsOLLayerGroups and $egMapsOLLayerDependencies arrays, which are defined in Maps_Settings.php.

Another noteworthy point is that Semantic Maps now contains all the geographical coordinate format handling that was part of Semantic MediaWiki earlier on. The code has been removed from SMW itself, and the SMW 1.5 release will be the first one without it. A nice side effect of this is that people still using Semantic Google Maps (one of the extensions Maps and Semantic Maps are based on, which is now obsolete (and really should not be used any more!)) will be forced to switch over to Maps and SM if they want to get the latest SMW.

Both extensions now use Validator 0.2.2, which is a minor update to 0.2.1, which was used in 0.5.3.

Downloads

[zip, 7z, svn tag]
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

 Last 50 Posts
 Back
Change Theme...
  • Users » 1019
  • Posts/Pages » 162
  • Comments » 111
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight

About me



    No Child Pages.