Archive for April, 2008

A Python issue

Sunday, April 27th, 2008

I have a few issues with Python. One of which is the unit-testing mantra. I’m a big fan of unit testing, however I don’t see how it can take the place of static type checking. It can supplement static type checking, but not replace it. For example:

File “/home/balor/tmp/revisor/revisor/base.py”, line 1410, in buildInstallationMedia
self.mode.BuildMedia.extend_task_list()
AttributeError: RevisorBase instance has no attribute ‘mode’

The above would never occur in a statically typed languages such as Java. The Java compiler would simply tell the developer at compile time that RevisorBase has no mode attribute. Unfortunately, this application takes about 20 minutes before it hits the offending line. So what would be a quick spin in a compiler in a staticly typed language is a 20 minute run in Python. It’s also a 20 minute delta between testing patches :( If I write a change it takes 20 minutes before I see if the change is effective.

I understand that one can get similar runtime bugs in statically typed language, however I’ve seen several instances of this type of issue in Python which would be solved by the simple application of a statically typed language.

Anyway, why should I, the user, see this issue.

Issue with Revisor from Git

Sunday, April 27th, 2008

Rarely is a blog a good place to discuss a bug, however Revisor does not use the GNOME accessibility framework (yet) so I can’t submit this issue as a DogTail test.

Update: I figured out the issue after the blog post. I fixed it at 18:55. The patch was reviewed at 19:01 and thereafter applied. The power of Free Software!

Revisor, when choosing the options I want, presents 13 screens. Here is each screen just before I hit the “Forward” button

Step 1: I’m trying to make a live DVD. Actually, I just want the ISO so that I can make a live USB disk from it.
Select Media

Step 2: Build from the Fedora 9 sources

Step 3: Load no kickstart file.

Step 4: Choose only some server packages, the emacs editor (can’t live without it) and the UK language pack

Step 5: Get a nice screen detailing what you’ve just chosen and the file size of this.

Step 6: The server lives in Brighton, otherwise I’d choose English (Ireland) :)

Step 7: Nothing fancy with the bootloader plase

Step 8: A fairly standard configuration of requesting DHCP for eth0

Step 9: No fancy network authentication, simple passwd/shadow stuff please

Step 10: We don’t need no stinkin firewalls

Step 11: I didn’t select any package with an Xorg dependancy, so there’s no need to configure X

Step 12: Do as little work as possible, so I didn’t bother to fill in a user (not that this affects the bug)

Step 13: Haven’t we seen this before?

The UI always brings me back to step 5. Ad infinitum. This is with the latest Git. I created a new user with which to check out and build the source and before running “./revisor-devel.sh” (as root) I deleted the /srv/revisor and /var/tmp/revisor stuff.

Deploying the Computer Games development lab

Thursday, April 24th, 2008

As regular readers know I’m deploying Fedora 9 on PS3s to support our new Computer Science Games course. Students will be able to develop on a workstation running Fedora 9 and Windows Vista and then deploy on a PS3. The easiest (and best) way to access the PS3 is to install Linux on it. This has one seemingly major drawback. Sony, in their infinite wisdom, decided to disallow access for non Sony code to the RSX unit which is the PS3s graphics card. Personally, I think this is dumb. At any rate, there’s a work around.

The Cell processor in the PS3 is awesome. In fact it’s not all too dissimilar to what Intel are trying to do with Larrabee on the CPU die or what AMD are trying to do with Fusion. So some smart people have come along with a reimplementation of the Linux OpenGL subsystem called Gallium3D. This uses the SPE units on the Cell processor as, essentially, a graphics card.

Which is great, but it complicates my deployment somewhat. The current plan is to use Fedora’s kickstart support to boot from a bare minimum CD and then install a list of packages from the Fedora servers. I’m also going to create my own Fedora package server to serve out the Gallium3D reimplementation of Mesa. And then there are some integration issues.

I’ll need to authenticate off the Uni LDAP server. However, though the Uni LDAP servers include the posixAccount OID they don’t appear to fill in the uidNumber and gidNumber fields. Which sucks for a UNIX. So I need to set up an IPA server to leach auth information from the Uni LDAP server but fill in the required POSIX attributes.

That’s much more work than I initially thought it would be, but it’s the minimum required to get a development environment with user authentication. I’ll also be looking at puppet to roll out maintenance tasks.

Back in the office

Monday, April 14th, 2008

I’m back in my office now after my paternity leave. If anyone needs me, just drop by or email me.

Bongo is better

Saturday, April 5th, 2008

I’ve been keeping an eye on Bongo for a while. It stared out as Hula, an open-sourced version of Novells NetMail. So it has heritage in a massively scalable mail server. Furthermore, from the start of Hula there has been a strong emphasis on ease-of-use. When Novell discontinued their sponsorship of Hula, some brave folks took over the project and duly renamed it Bongo. What we’ve got is a mail and calendar server which is easy to setup and maintain from the admin perspective and easy to use from the user perspective.

Today (I don’t have insomnia, I have a baby) I tried their 0.3.1 release. For me, it has to work with Evolution (my email/calendar client), and as you can see from the screenshot below. It does.

Lori and I will now be running this a our home calendar server.