VNC, DRI, DRM and other acronyms

February 11th, 2007

I got an email from someone using VirtualGL to assist with doing 3D visualization over the network, and after discovering that ‘VNC is an “admin nightmare”‘ found my VNC Session Manager. It’s been a while since I tinkered with the source, so I dusted it off and started cleaning it up (It still runs on my FC3 box at home).

So, there’s a new release with features such as: A session chooser (if zenity is detected as installed) that lists your running sessions and allows you to choose which one to reconnect to. There are also fixes to make NFS home directories work correctly. Extra debugging was added by Adam Bradley at Novell, and the TurboVNC client now also has a patch.

So after getting all the VNC code working I wanted to test it out on my machine: a Dell Latitude CPx with ATI Rage Mobility – aka the ati mach64 chipset – aka the one that doesn’t have DRI support enabled by default in the in 6.8.2 build :-(

Sooooo after an entire day of searching, finding, download, installing, testing, failing (need kernel source, install X drivers with correct filenames, X won’t load video drivers with mismatched versions, aaaargh), fueled mainly by a single post on the ubuntu forums I’ve found the trick. The USE=”insecure-drivers” switch is the trick (in Gentoo), but in Fedora it’s BuildDevelDRIDrivers as I found the next morning via an excellent post on how to patch and build the xorg source. The dri driver has been fixed to be secure in 7.2, and hence will build by default for new versions. Once the new rpm had been built and installed (and all the other failed installs had been cleaned up), I had a working mach64 with direct rendering enabled!

Now to get the vglrun part working…. At the moment it complains that it “Could not obtain Pbuffer-capable RGB visual on the server” :-(

Chromeless Meebo gets a facelift

January 2nd, 2007

Meebo got a facelift back in October, but I didn’t have the time to update my Chromeless Meebo Browser at the time. I found some time this weekend to sit down and figure out what needed doing, and went ahead and did it!

The new version doesn’t really have any new features compared to the previous one: It supports the new meebo interface better, it has a new tray icon menu, with some new options. The biggest change is that most of the code is now written in JavaScript loaded off my server. This means that it’s much easier to change, and to deploy directly to all you guys. It also means it’s easier for someone else to pick up a pre-compiled copy, change a few config settings, and start tweaking the source for themself (i.e. no need to recompile the .Net code)

As time allows, I will be adding new features, but for now enjoy!

(oh, the Mozilla control doesn’t support nearly enough methods to make this version work correctly, so it’s back to IE for now :-( . If you’ve been using the ClickOnce installer with the Mozilla control and want to keep using Mozilla, then you’ll need to download the offline version of v6)

XMPP auth for OpenID

December 11th, 2006

OpenID is a decentralized digital identity system, in which any user’s online identity is given by URL (such as for a blog or a home page) [...], and can be verified by any server running the protocol. (wikipedia)

Okay so that’s cool – the idea is that you want to sign in on a web-site that you’ve never seen before, so you give it your OpenID and *poof* you’re in. As part of the package, the web-site can also request some profile information from your OpenID provider, so you don’t have to re-type it. Lots of work has happened behind the scenes to make sure who you say you are is valid, so that the web-site can trust your OpenID.

Unfortunatly you still have to log into your OpenID provider with a username and password. “I thought OpenID was supposed to help with this horrid multiple username and password problem”, I hear you cry – at least you (hopefully) trust your OpenID provider more than you do some abritary web-site.

Unlike most single sign-on architectures, OpenID does not specify the authentication mechanism. (wikipedia)

Cool! So we can pick our own. How about a password-less authentication, that uses your instant messenger identity to confirm your OpenID?

It’s actually easy, you just take a copy of the PHP Standalone OpenID Server, add the required PHP OpenID library, and add a sprinkle of XMPP XEP-0070 support in form of a patch. Bake for a short while, and be sure to serve hot :-)

PreAuthenticate doesn’t

November 29th, 2006

So we’ve been trying to interop with a web service at work that requires Basic authentication. Unfortunately we get one of the following errors (depending on if we’re going via our ISA proxy server or not):

  • System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. —> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. —> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
  • System.Net.WebException: The request failed with HTTP status 502: Proxy Error ( The specified network name is no longer available. ).

It turns out (thanks to ethereal), that for some reason the .Net Framework is ignoring the ’401 Access Denied’ reply and assuming that the web service is usable. Oddly enough Squid handles the request perfectly, so does just bouncing the request via another box – so there’s clearly something odd going on inside the framework.

So no problem, we’ll just set PreAuthenticate to true. Except that only affects secondary requests:

“With the exception of the first request, the PreAuthenticate property indicates whether to send authentication information with subsequent requests to the specific Uri without waiting to be challenged by the server.”


The solution is rather hackish, but works while we wait for MS to code and test a real solution:

Read the rest of this entry »

Live ADSL statistics

November 25th, 2006

The SAIX ADSL User Statistics page is great (ADSL account details required). The Firefox Mimimeter plugin shows the current month’s details in you Firefox status bar, but something was lacking. Ahhh – it’s the disclaimer of “the above data does not include any active sessions”.

So I went an wrote a little php script that retrieves the data from the SAIX site, and adds in the current connection’s statistics. This way, the numbers in Firefox’s status bar match my real ADSL usage :-)


  • v5: added logout link to make it much easier to swap between accounts
  • v4: the default month is now the month when the connection started, not the current month
  • v3: only display modified stats for the connections month
  • v2: whitespace trim for young connections
  • v1: initial release

chromeless meebo gets mozilla support

August 27th, 2006

I’ve previously commented that I was working on Mozilla rendering support for my Chromeless Meebo Browser, well now it’s here.

To enable it you will need my upgraded version of the Mozilla ActiveX Control (As usual all the required files are in the distribution folder). Source diff is attached to bugzilla bug 340277.

You will need to hand edit the configuration file to change the Engine setting from Microsoft to Mozilla. If you’re using ClickOnce to launch the Meebo Browser, then you can find the configuration file under ‘C:\Documents and Settings\YourName\Local Settings\Apps\2.0\RandomId\RandomId\Somewhere’, just look for the lastest configuration file you can find and edit that one. I am planning to add a sort of configuration window to be able to change these settings from the frontend, once I’m happy that everything is working well.

Known Issues:

  • There seems to be a problem with getting the cursor to appear in the text boxes so that you can log into you IM account. The work around is to swap to another application (even Notepad), and then back to MeeboBrowser – sometimes I’ve had to do this two or three times to get the cursor to appear.
  • The tab key gets swallowed often, making it almost impossible to use.
  • Tooltips don’t show.
  • Clicked links don’t launch in a new browser window. (You can right click and select ‘Open’, but then you’re logged out of Meebo :-( )

These are all caused by bugs and missing code in the Mozilla ActiveX Control. If you’d like to help out, please don’t hesitate.

Stormhoek in a teacup

August 17th, 2006

d@vid tells me that Stormhoek are giving Wine away to bloggers that are willing to blog about it! Well I certainly wouldn’t mind a glass to go with my Macaroni Cheese at lunch :-)

BTW: gapingvoid cartoons are being used as wine labels! Who would have thought?

Update: Lunch was – the Wine was tasty good too. It really make a big difference if you drink it just after you’ve opened the bottle!

Net Limiter 1.3 Access Violation Patch

May 29th, 2006

If you’re using Net Limiter 1.3 (I do – it’s fast and has most of the features I need) and doing any .Net 2.0 remoting (GB-PVR does). Then you should know that Net Limiter’s nl_lsp.dll is what’s causing a lot of that crashing (NOD32 Antivirus’s imon.dll also does this). I managed to track down the offending code and I’ve written a quick patch for it (sorry I don’t use NOD32 :-) ). I created the patch using IDA and VPatch, enjoy.

gb-pvr joins the .net 2.0 world

May 29th, 2006

The various GB-PVR enhancements have I have been working on over the last while have finally all been upgraded to .Net 2.0. UncleJohnsBand was kind enough to upgrade the Enhanced Web Admin, and ubu upgraded the External Recording Plugin along with doing the first pass on the WDM Recording Plugin. A few minor .Net 2.0 differences later (I upgraded DShow’s UCOMInterface references to ComTypes.Interfaces, and had to fix an out/ref array parameter) and the WDM Recording Plugin is working on GB-PVR 0.97. I even upgraded my Detect Multi Recordings utility (which only really required a single line of code change).

Except for a minor issue with NetLimiter 1.30 breaking some .Net 2.0 remoting, it looks like everything is working 100% :-)

chromeless meebo 2.0

May 28th, 2006

Update (Aug 28): I’ve created a Chromeless Meebo changelog page.

My chromeless meebo proof-of-concept got an upgrade this weekend (now at version 0.5). It’s been fully upgraded to .Net 2.0, which means that there are no more external dependancies. Also included are:

  • Saving of preferences.
  • Single clicking on the tray icon only toggles the buddy list – To toggle all Meebo windows, use double click.
  • Tooltips no longer rotate when you recieve a message from a contact – They appear once only.
  • ClickOnce magic – This means you can ‘install’ Meebo Browser via a web interface, and updates happen automagically.
  • Splash Screen – With an AJAX loading widget provided by Ajaxload.

So you can take it for a test drive right now if you have the .Net 2.0 Framework installed (the ClickOnce page should detect if you don’t – and prompt you to install it). If you’re a Firefox user, then you might want to install FFClickOnce to ‘enable’ ClickOnce functionality correctly in Firefox.