Query recently installed rpm’s

Last night I was fooling around with lwjgl (nice lib btw), when suddenly I started getting the following exception:

org.lwjgl.LWJGLException: Could not choose GLX13 config
	at org.lwjgl.opengl.LinuxDisplayPeerInfo.initDefaultPeerInfo(Native Method)
	at org.lwjgl.opengl.LinuxDisplayPeerInfo.(LinuxDisplayPeerInfo.java:61)
	at org.lwjgl.opengl.LinuxDisplay.createPeerInfo(LinuxDisplay.java:782)
	at org.lwjgl.opengl.DrawableGL.setPixelFormat(DrawableGL.java:61)
	at org.lwjgl.opengl.Display.create(Display.java:871)
	at org.lwjgl.opengl.Display.create(Display.java:782)
	at org.lwjgl.opengl.Display.create(Display.java:764)

I googled and some Minecraft stuff turned up (seems it uses lwjgl as well), but only with mysterious “solutions”. I thought it was because I tried to run it from console (it ran fine before in IntelliJ), but it stopped working there too. Then I suspected mixing openjdk compiled code run by sun jre was the problem (seems lwjgl requires sun jre). Than I fumbled around with the java.library.path variable because it looked like a 64bit vs 32bit issue. NONE OF THAT!
I screwed up and it was late, so I decided to admit my defeat and go to bed.

Today I started my suse box, suddenly I realized my KDE desktop effects were disabled. Nvidia driver borked? Reinstalled my nvidia, even rebooted, all in vein!
I checked hardware acceleration with Urban Terror, smooth gaming!

Then I started to retrace my steps of last night.. I tried to install glc which in the past had proven to be quite a decent opengl capture program for linux.

I checked my repos and noticed I accidentally installed the 12.1 version! Uninstalling that does not fix it of course, probably some dependency messed up things good (although still quite subtle to keep everything else working ;)).

I finally come to the point of this post 😉 I wanted to know what I installed last night in the late hours that seriously borked my system.

Turns out rpm has a neat option just for that: –last !
So it goes like this:

# rpm -qa --last | less

yields amongst others:

libcurl4-7.21.2-10.11.1                       Mon 30 Jan 2012 11:06:02 PM CET
libcurl4-32bit-7.21.2-10.11.1                 Mon 30 Jan 2012 11:06:02 PM CET
glibc-locale-2.14.1-14.18.1                   Mon 30 Jan 2012 01:46:16 AM CET
glibc-devel-2.14.1-14.18.1                    Mon 30 Jan 2012 01:46:11 AM CET
parallel-printer-support-1.00-5.1             Mon 30 Jan 2012 01:46:10 AM CET
glibc-2.14.1-14.18.1                          Mon 30 Jan 2012 01:46:08 AM CET
gpg-pubkey-b185393d-47965930                  Mon 30 Jan 2012 01:45:55 AM CET
phpMyAdmin-3.4.9-30.1                         Thu 19 Jan 2012 09:22:30 PM CET

I managed to fubar my glibc 🙂 culprit found! Reverting this to the previous version fixed it!

Extra keywords: query rpm history

Yet another 3D engine?

Back in the ‘old’ days, I once (actually thrice =)) wrote my own 3D engine just to find out Ogre did all of that and more. 😉 Naieve as I was, I was surprised to find a very similar design in it. 🙂 Still, at that time, it was more or less justified to roll my own because ogre was still growing up and I needed to implement a kind of volumetric texturing technique which was quite unconventional which made it not suitable as a plugin/extension for an existing engine. And as for everyone, for me too, it was great fun to make it from scratch. 🙂

The situation nowadays is a bit different. You would need to come up with a very good reason if you would like to convince someone you need to write yet another open source engine. It’s a fact that the open source 3D engine market is quite well established by now. Just take a look at projects like Ogre, Crystal space (go Jorritbelgian flag small! ;)), Irrlicht, Cube, …

Still, people DO seem to be able to find reasons. 🙂 Enter a world of dragons: the DragEngine. I think it’s an interesting approach which is typically inspired by open source roots (a closed commercial game does not have immediate interest in the flexibility that the DragEngine provides, or at least not to that extent (imho)). It’s definitely a project I want to follow-up, even just out of curiousity where it will end up. Because, let’s face it, it’s quite an ambitious project, developing its own tools/components from top to bottom.. I’m a bit surprised I never heard of it before, so that’s why I’m promoting it a bit now. 🙂 Keep up the good work!

Farmer joe

Ever wanted to render your fresh blender animation in full glory but refrained of doing so because of the long waiting time? Or you just wished you could involve that other computer that’s doing nothing while you’re waiting for your rendering? 🙂

There are several distributed rendering solutions for Blender. I once tried out DrQueue. DrQueue seems like a very powerful tool, but a bit troublesome to set up imho (on windows). I never got a working solution. When reading up on the blendernation post, FarmerJoe immediately seemed a very pragmatic and practical solution to me, accessible for the average joe. 😉 The whole thing is written in Perl, remarkably. 🙂 (except for the blender interface of course, which is python) So I tried it out, and indeed, after a few minutes, I was rendering a movie on 2 computers. It wasn’t a matter of seconds however, since I had some trouble configuring the windows share with non-default values.

The script assumes you use the R drive for sharing between clients/server but this drive letter is already taken in my case. So I put it on S:. Unfortunately, the blender script didn’t seem to adopt my drive letter, even after altering the initialization code in the python source. When I hard-coded the path everywhere, it worked. 🙂

A more interesting thing to me, seemed the support for bucket rendering, as the author calls it. Instead of dividing the frames of a movie over several slaves, FarmerJoe supports dividing a frame into several tiles, which are glued together afterwards (using imagemagick I believe). Unfortunately, there too, I received scripting errors, which I thought would probably be related again to my non-standard setup. I didn’t have the time anymore to check out the source, but I will follow-up on this post when it’s resolved!

UPDATE (20h47)

Heh, I figured it out. 🙂 Of course, it was all my fault. 😉

First of all, it seemed I didn’t see the full FarmerJoe gui. The FarmerJoe gui’s layout is deceiving in that there is a lot of space below the button on the bottom, while I didn’t see the top of the gui! I did try scaling it like the rest of Blender’s gui but I don’t know if that normally works on script gui’s.. So if you see the full gui, you can enter the farmerjoe path in a text box instead of having to edit the source. This doesn’t explain why editing the initial value of that text box didn’t make it work, oh well..

Secondly, I read in the code comments that the bucket render script does not have to be executed separately; it is called from within the main farmerjoe script! So you still need to put it in your scripts folder, which makes it show up in the blender script menu, but you can’t execute it. Also, if you want farmer joe to split your frames into pieces, you may only give him one frame. You can do that by setting your start and end frame accordingly. See here:

anim_setting