ubuntuIt’s that time of the year again. The 10th month means lots of things: start of spring,  silly birthdays and a new and shiny Ubuntu release. And it wouldn’t be the same without me recklessly updating to the beta a couple of weeks before release.

What’s fixed? What’s broken? And what about the rest? Read it after the cut.

Continue reading »

WICDThere are lots of things to like about the GNOME desktop environment. It’s free, it’s highly consistent and backup up with excellent development ethics and a wide range of supported applications. It comes as no surprise that it is the default desktop in a lot of Linux distributions (Ubuntu, Fedora, …). There’s one thing that’s been bothering me for a few years now: the default network manager. It had to go.

Continue reading »

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 »

ubuntuA couple of weeks ago, I reported about a fix for Intel driver performance regression in Ubuntu 9.04 (Jaunty Jackalope). The fix solved the overal responsiveness of the interface (especially for composite-enabled desktops), but introduced a new problem which wasn’t visible at first: a memory leak slowly filling up swap space.

Over the course of 2 or 3 hours, my UXA-enabled driver would start to fill swap space with unrecoverable junk blocks. The only solution was to restart X before it grinded to a halt. This was not optimal, but I preferred restarting X over the clunky EXA method.

I’ve experimented with a new solution – read more behind the cut. Continue reading »

ubuntuAfter upgrading from Intrepid (8.10) to Jaunty (9.04) I noticed a noticeable performance hit, in 2d and 3d applications on my Ubuntu system, running a (rather crappy) Intel 945GM mobile graphics chip. After poking around on the Ubuntu forums I found this thread. The problem seems to be the switch between EXA and UXA in the new intel driver.

More tech talk and a solution behind the cut.

Continue reading »

ubuntuYesterday, I decided to upgrade my Ubuntu installation from Intrepid Impatient Ibex (8.10) to Jaunty Jackalope (9.04). I recklessly went update-manager -d and just let it run. Backups are for wimps, real men save their data the moment the shit hits the fan. Even when there’s still 12 days of public beta in the can ;)

Remarks 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 »

Crowbar attack!Since its release in 2004 Valve’s Source engine has been a popular platform for professional and indie game developers alike. A combination of great publicity through good games (Half-Life 2, Team Fortress 2, Left 4 Dead), functionality and solid mod support (I blogged about Steamworks earlier) has made it continue the legacy of the GoldSource engine.

I’ve learned the nuts & bolts the hard way, and I thought a quick rundown on how to compile the Source SDK on a linux-based system would be useful. Technical mumbo-jumbo behind the cut. Continue reading »

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 ? :)

Every six months, it’s that time again … upgrading to the newest Ubuntu release. I don’t know which department is in charge of the release branding, but with the label for release 8.04 (The year 2008, fourth month) they have outdone themselves: Hardy Heron. I really hope Mark Shuttleworth opens an Ubuntu Zoo out there in South Africa. Screw PETA, it would be horribly nice of him. The man’s been into space, is there anything he can’t afford ? A couple of drakes, fawns and herons would do the trick.

Back to the dist-upgrading then. The great thing about Unix is that all of your settings are stored in a central place: the Home folder (trademark). Backing up your system is a simple matter of backing up one directory. Even if it all goes bottoms up, it’s just a matter of an hour (I/O wait time, mostly) to get your system back into the exact state it was.

After the obligatory reboot – yes, the only necessary reboot is when your kernel has changed – all seemed to work, except for a few Gnome panels. I’m 23 days early, the release is still in beta, so I was expecting some trouble either way.

Let’s go quickly over the big changes in this release:

  • Firefox 3 beta: A huge improvement. The overall feel is a lot smoother, pages render blazingly fast, regardless of how many flash elements, poorly structured chunks of HTML or high-resolution pictures the page holds. The interface (and the download dialog) had a necessary cleanup, and the bookmarks system is a lot clearer now.
  • Gnome 2.22: Simple, yet elegant, Gnome remains my favorite desktop manager, although I’m going to check out the spectacular-looking KDE4 too. The most noticable improvement probably is the bundling of file transfer dialogs. When you’re moving a lot of files between disks, the task bar used to get cluttered with “copying files” or “moving files” dialogs. Now, they are all bundled into one convenient dialog. It’s a detail, but it sure makes a difference.
  • CFS (Completely Fair Scheduler): Since kernel 2.6.23, the standard Linux schedular has switched to CFS mode, which is an intelligent way of distributing processor time over several processes. It improves desktop reaction time, and makes the overall experience of working with GUI’s feel smoother. You can read the (nerdy at first glance, extremely interesting at a second look) lengthy discussion Mr. Torvalds had with the other kernel developers here.

I’m very satisfied with the new release overall ! Also, very interesting for windows users: you can try out Ubuntu from within windows now, thanks to the new Wubi installation system !

(warning: next section is extremely boring if you don’t have an Intel Proset Wireless chipset in your laptop, if any :) )

And now, on to the slightly bad news: this update bricked my wireless connectivity, partially. Since the 2.6.24 kernel version, ubuntu has switched from ipw3945 to ilw3945 as kernel module for Intel Proset Wireless interfaces. This new module seems to have several quirks, which hopefully will be ironed out before Hardy goes out of beta. Here’s a couple of things you can do if you’re experiencing troubles with given card:

  • Launchpad #204709: Solution for network interface wlan0 changing to wlan0_rename and useless activation of eth1 after performing an upgrade.
  • This thread offers a solution which is connected to a broken CAPA implementation, but that seems to be resolved in the latest Network-Manager updates.
  • Launchpad: #210005: My bugreport about the issue
Code is poetry. Please, Suffusion WordPress theme by Sayontan Sinha