ubuntuSince a lot of people seem to be struggling with this issue (getting good performance out of Intel Mobile Graphics chips on Ubunty Jaunty), I’ll give a quick heads-up on my findings again. I’m on an 945GM chip myself, so although this issue probably effects the whole range of chips using the xorg-intel driver, keep in mind that results may vary.

Last time I explained how I installed the xserver-xorg-video-intel driver from the X.org SWAT Launchpad PPA. This resulted in a performance increase and a fix for the swap-hogging problem. Behold, I was wrong about that last bit. Mock me behind the cut. Continue reading »

GimpHere’s a quick tip on how to draw dotted lines in The Gimp (Open-source Photoshop alternative). I stumbled upon it when I was trying to draw a cut-out line for some promotional design I was making last night.

Instructions based on Gimp 2.6.6 behind the cut!

Continue reading »

Dvb-T Receiver

Dvb-T Receiver (patent pending)

I recently bought a Pinnacle PCTV DVB-T Stick Solo 72e (bonus points for Pinnacle’s over-the-top naming scheme), because the public TV services in Belgium switched to digital broadcasting. It was the €40 pricetag which turned me. The box contains the USB 2.0 stick and an antenna. I advise on attaching this antenna to a metal object (the attach point is magnetic).  I attached it to my desk lamp. I can’t light it and watch TV, but that’s a setback I can live with. No issue.

What’s the real issue then? More behind the cut.

Continue reading »

For my course in Computer Graphics, we had to implement the two basic algorithms in CG: Ray Tracing (using physics theory of viewing and lighting rays to evaluate the color of each pixel) and Rasterization (slap all triangles down to the screen using Matrix transformations).

More images beneath the cut.

Continue reading »

Oct 202008

So, the new academic year has started. I’m following a Master in Computer Sciences now, option Human-Machine interaction. I’ve got a bunch of interesting new courses (Computer Graphics, Distributed Systems, Compiler Construction, …), but the workload is getting pretty heavy. I’m also organising events for the improvisational theater group I’m active in, Preparee.

So I’m going to do the very thing I think is a landmark in laziness: instead of writing out paragraphs and paragraphs about the tidbits of interesting things I’ve found in the last few weeks, I’m going to sum them up. That’s right. Yes, Dave, I’m afraid I can do that.

  • I’ve been using Drupal a lot for the Preparee website. It’s quite complicated to get started with at first, although the module system is a bless. It was hard to get things running, since we opted for drupal 6.X, and a lot of modules still don’t have release candidates for the 6 series. Especially the Date module had some problems, but with my little project living against the dev-release line, I helped to debug it.
  • The Telectroscope is an awesome art project.
  • World of Goo is the best indie game I’ve played in a long time. It’s a physics-based puzzle game with a unique art style and tremendous music. It’s quite hard to believe this is a two-man project. I try to avoid using the phrase Bedroom Programmers here, since it tends to sound quite homoerotic.
  • Automated P2P enforcement gone wrong: printer sued for downloading Indiana Jones 4. Of all movies, the poor printer.
  • Promising one-man MMO: Love. Procedural animation and rendering.
  • Video series I’ve laughed at lately: twisted cubicle workers in ManInTheBox and the ever sarcastic Zero Punctuation.
Sep 132008

Thanks to the excellent Rock Paper Shotgun (best website title ever) I keep discovering cute little indie games. Rorsach is a short adventure game, which is interesting on two points:

  • Art style: everything is drawn in chinese ink. Although the locations are limited (it’s a one man game after all), this works pretty well with the theme, which is an asylum.
  • Conversations: instead the of regular “IF you talked to X you can suddenly talk to Y about subject P”, the game features an original system: every subject is an actual object. You can add objects (for example The Murder Weapon) to your inventory, and take them to other characters to get them talky about it. Although the inventory is quite small and you still find yourself running back and forth to get all the subjects, this is an interesting take on the genre.

It’s free, so I highly recommend you check it out.

Aug 092008

A project I saw scrolling by on #thepiratebay.org on Efnet caught my attention a couple of weeks ago. Flox is an enhancement on several existing traditional P2P techniques.

“Flox is a technique in development which will identify the same parts from similar files and download those when needed. This will certainly increase speed, for slightly different files. This will also make the technique to strip off metadata from media files obsolete, since Flox will do it universally for ALL sorts of files, whether they have ID3 tags, ApeTags, or something completely new.

The current development draft contains some very interesting stuff about palindrome pattern file splitting and hashing. I’ll surely get my hands on this when I have the time.

Jul 182008

One of my activities these months is setting up a community-oriented wiki for the improvisational theater group Preparee (which I’ll be captaining next academic year. Oh, the suspense !). I went for the PmWiki distribution, developed by Patrick Michaud. Since quite a lot of customization went into converting the base installation to a user-oriented / CMS-like system I thought I’d better share some of the tricks and snippets I’ve been writing.

Always check the PmWiki cookbook before you start hacking away yourself: there are tons of available recipes which might already offer the functionality you wish.

Installation is a piece of cake, it’s a matter of unpacking the source files and making the right directories writable by the webserver process (by using chmod on the wiki.d directory). I installed pmwiki on a Linux box. All the further customization is done in the local/config.php file, in separate skins or on the wiki pages themselves. Make sure not to touch the files that came with the core distribution (scripts, default skin …), it makes upgrading a lot easier. I learned it the hard way :)

Users

The first part consisted of converting the wiki into a private one with several accounts which had different permissions. Setting the site-wide privacy settings (which can be finetuned per page or group by using ?action=attr in the URL) is done in the config.php file:

$DefaultPasswords['read'] = ‘id:*’;
$DefaultPasswords['edit'] = ‘id:*’;

This only allows logged-in users to read and edit pages. The site-wide admin password is bound to one account name (mine, in this case), but can be bound to a group too.

The accounts themselves can be defined in the SiteAdmin/Authuser page, in the config file, … I soon realised that this was cumbersome, since I had to create all of the accounts by hand. By moving the accounts to a .htpasswd file and the group definitions to a .htgroup file I was able to automate the registration process :

  • Install the excellent htpasswdform recipe. It shows regular users a change password form, unregistered users a new user form and admin users a group/user management tool. Prevent account spam by installing the Captcha recipe too.
  • New users get added to a unchecked group. They get restricted privileges. Authorizing them is simply transferring them to the users group. This allows admin to check user accounts first.
  • The next part is letting pages display different links for each group. This is done by adding some custom Conditional Markup to the config file: $Conditions['authgroup'] = ‘$GLOBALS["AuthList"][$condparm] > 0′;
    This allows you to check a current users group by using (:if authgroup=groupname:) and thus showing different content. I managed to write a quite complicated sidebar / AuthForm chock-full of checks. Dirty, but it works wonderfully well. Other interesting checks: (:if enabled AuthId:) (:if auth admin:) (:if auth read:)

Usability

The next step was to add functionality. It’s pretty easy to edit the standard edit-form GUI buttons:

$GUIButtons ['textred'] = array($ArrayCount++, ‘%25red%25′, ‘%25%25′, ‘$[Red Text]‘,’$GUIButtonDirUrlFmt/hightextred.gif”$[Red Text]“‘);

Adds an extra button which allows the user to color text. Check this page for more info.

Another thing I wrote was a simple shoutbox using Fox forms. This allows people, just by using standard button interaction, to post content to a page (in this case: a shoutbox). I wrote several fox scripts to allow users with no wiki knowledge whatsoever to perform basic tasks (shoutbox, adding themselves to an event, …) by just using buttons and standard forms. It doesn’t always result in pretty code, though …

Shoutbox

I submitted this to the PmWiki cookbook. You can find the code here. This block was implemented as a page in a permanent div block I added to my custom skin. It’s pretty straightforward from there. Don’t forget: do not edit the default pmwiki skin, it will get replaced by a new version on the next upgrade.

Event attending/not attending list

This one’s a bit uglier:

%comment% Start enroll/disroll code ”’Attending”’ %comment% enrolllist ”’Not attending”’ %comment% disrolllist (:fox enroll:) (:foxreplace template=Site.EnrollRemove target={$FullName} put=all mark=”* [[Profiles/{$$author}]]” foxsuccess=’[[<<]]’ foxfailure=’[[<<]]’:) (:foxadd template=Site.EnrollAdd target=’{$FullName}’ put=below mark=enrolllist foxsuccess=’Attending!’ foxfailure=’Probleem !’:) (:input hidden author value=’{$Author}’ :) (:input hidden csum value=’is attending’:) %center%(:input submit post ‘Im attending’:) (:foxend enroll:) (:fox disroll:) (:foxreplace template=Site.EnrollRemove target=’{$FullName}’ put=all mark=”* [[Profiles/{$$author}]]” foxsuccess=’[[<<]]’ foxfailure=’[[<<]]’:) (:foxadd template=Site.EnrollAdd target=’{$FullName}’ put=below mark=disrolllist foxsuccess=’Not attending’ foxfailure=’Problem !’:) (:input hidden author value=’{$Author}’ :) (:input hidden csum value=’is not attending’:) %center%(:input submit post ‘Im not attending’:) (:foxend disroll:) (:foxmessage enroll:)
(:foxmessage disroll:)

As you can see, both of the buttons are in a different fox form, each with two actions: replace the current occurences of the author name on the page, and add it to the right list. Disadvantage: you can’t use more than one of these on the same page, only the first will get updated. Makes you wonder … what if people were actually good enough to simply use the edit button and add their name ? :)

Today marks the release of Mozilla Firefox 3.0. To celebrate this, the Mozilla Foundation is trying to set the Guinness World Record for most downloaded software. So if you’ve never tried out Firefox before or were bound to update anyway, go ahead. World-wide release times can be viewed here.

Version 3 adds faster rendering (through Gecko 1.9), intelligent bookmarks and smaller memory footprint. Pages load noticeably faster. Firefox is available for all Windows, Linux and Mac flavours.

Firefox is a web browser. I know there are tons of people out there still thinking Internet Explorer is The Internet. I have to cry myself to sleep every night over it.

P.S: Congratulations to the Mozilla Art team for having that giant retro robot in the beta.

Code is poetry. Please, Suffusion WordPress theme by Sayontan Sinha