Header graphic 8 of 8



Other stuff

Other sites

I wish this site were powered by Django

August 03rd, 2011

First look: Funambol connector for Mozilla Thunderbird 5.0

Filed under: Mobile,Technology — jm @ 20:21

Over the last few weeks I spent a couple of nights on porting the Funambol connector for Mozilla Thunderbird to Gecko 2.0, the engine underlying Thunderbird 5.0. Funambol for years now has been an important part of my infrastructure as I use it to sync my address book between my iPhone, my Laptop and my PC at home, so the lack of official support is unsettling to me.

Details on the changes that were necessary can be found in the Release Notes for version 1.0b4-tb5-jm-dev1 and the Mercurial repository. An experimental version for Windows can be found here.

October 26th, 2010

Running Z-Push 1.4.2 with Apache and FastCGI/fcgid

Filed under: Mobile,PHP,Technology — jm @ 20:49

I spent half a night yesterday installing Z-Push, an open-source Microsoft Exchange ActiveSync push protocol implementation, which is written in PHP. Z-Push supports multiple back-ends from which it can push data to your mobile device, including maildirs, IMAP and vCard folders. Multiple other open-source groupware projects (like Horde.org) have produced their own back-ends.

I'm using my iPhone with my own mail system with a secure IMAP server and CalDav, based on Sun's Oracle Communications Calendar Server. I want the ability to remotely wipe my phone, though.

Z-Push itself only supports the "remote wipe"-command through Zarafa's administration console. However, there is a project called iRemoteWipe that provides a Z-Push back-end that checks with a LDAP database which remote devices are to be wiped. There's a good how-to on AFP548.com that shows how to make this back-end work with a SQLite database.

I will not cover the whole process of unpacking and configuring Z-Push, as it's easily done and well documented, but I want to describe the few bumps that I've hit along the way.

The thing that left me stumped is that I'm running PHP through mod_fcgid on a Apache 2.2 server with the worker MPM. The Z-Push installation instructions however, only cover the installation with mod_php. When I tried to access the "Microsoft-Server-ActiveSync"-URL on my server, I always got the error message "No input file specified". This first error was easily fixed. Z-Push uses a Alias directive to map its index.php-file to the ActiveSync-URL. I had issues with this before, so I knew that somehow Apache will not use pass the right URL to the fcgid-script handler. I just rewrote it using mod_rewrite to:

RewriteEngine On
RewriteRule ^/Microsoft-Server-ActiveSync \
        /z-push/index.php [PT,L,QSA]

Now however, Z-Push complained that it didn't get any authentication headers. While the documentation was right in that, when I accessed the URL using a browser, I got an authentication dialog... I still couldn't authenticate. It took hours before I remembered that using Apache with mod_php passes some HTTP headers using non-standard names. "Authorization" becomes "HTTP_AUTHORIZATION" for example. Armed with that knowledge and extensive googling, I finally found this forum post, which solved the remaining problem, as Z-Push assumes running under mod_php at the moment.

So the final configuration reads:

# Enable ActiveSync (Z-Push)
RewriteEngine On
RewriteRule .* - [E=HTTP_X_MS_POLICYKEY: \
RewriteRule .* - [E=HTTP_AUTHORIZATION:\
RewriteRule /Microsoft-Server-ActiveSync \
        /z-push/index.php [PT,L,QSA]

I hope this helps someone else out there :-).

February 28th, 2009

How to uninstall Microsoft’s .Net Framework Assisstant Spyware

Filed under: Cutting the crap,Security,Technology — jm @ 15:40

"Microsoft's .Net Framework Assistant" is installed in your Firefox Browser without your consent as part of Microsoft's .Net framework. It's installed via Windows Update, so its installation can't be easily blocked. It can't be uninstalled (they made it intentionally very hard) and looking at Microsoft's track record, there's absolutely no reason to trust that it's secure. Also, it transfers information about software on your computer to third party servers, again without your consent.

That I think, fits the definition of spyware.

Fortunately, there's a way to uninstall it from your machine as long as you have administrative privileges. I found a good recipe here. Basically you have to edit the registry key


and delete the key named {20a82645-c095-46ed-80e3-08825760534b}. At which point, after a browser restart, the extension will be gone.

Unfortunately, Microsoft also takes the liberty to modify your preferences to add the .NET framwork's version to your browser's referrer. To fix this, type about:config into your browser's URL bar, then type "microsoft" into the search box, right-click on the key "general.useragent.extra.microsoftdotnet" and click "reset". That's it, you're done.

August 06th, 2008

GeoDjango has been merged into Django’s trunk yesterday

Filed under: Django,Python,Technology — jm @ 12:19

This means that GeoDjango will be part of Django 1.0! This is another great addition to this fabulous framework. It changes and extends Django's ORM so that it supports GIS types in multiple databases. Of course, that primarily means support for OpenGIS types in MySQL and PostgreSQL and querying them via Django's ORM.

Now, if they'd finally land aggregation support, I'd be totally happy with Django 1.0!

July 28th, 2008

Making the iPhone work under XP64

Filed under: Technology — jm @ 11:01

I've been using 64-bit systems exclusively for a while now (Windows XP x64 for daily work and Windows Vista x64 as my gaming system), but Apple made the braindead decision to let iTunes v7.7's iPhone 64-bit support only run on Windows Vista. Well, unfortunately, all my business data is on Windows XP and there's no way that I'll downgrade to 32-bit and loose support for my 4GB RAM.

Turns out, there's really no technical reason for not having iPhone support on Windows XP 64, unless you have a phobia of editing MSI files with Orca. Here's an excellent write-up.

July 21st, 2008

Django: newforms-admin has been merged into trunk

Filed under: Django,Python,Technology — jm @ 15:37

Brian Rosner posted this update in the Django users group. This means that Django just made a big step forward!

PHP gains closures

Filed under: PHP,Technology — jm @ 13:23

This PHP RFC contains a proposal for closures, lambda functions and callables in PHP. Looking at the rest of PHP, the syntax seems to be in the same style, with a new reserved word "use".

The RFC has been accepted and the code is in PHP's trunk. Well, it was about time, right?

Of course, PHP will still helpfully truncate your 64-bit database id columns by converting them into floating point numbers, if you're using a PHP version compiled on a 32-bit system, but of course not on a 64-bit system, because it wouldn't be PHP if it behaved the same on two random computers. But now you will be able to do that with real up-to-date, all-the-hype scripting language style in PHP 6.0 ;-).

July 02nd, 2008

Updates all around: Ruby, Django, Diablo

Filed under: Django,Games,Security,Technology — jm @ 11:27

I didn't touch my newsreader in a while and promptly I missed quite a bit of interesting things. Here are the most important:


Large file uploads: Revision 7814 finally lands the patch from ticket 2070 and finally allows Django to handle arbitrarily-sized file-uploads.

Ruby's security vulnerabilities

Man, I'm late to that particular party, but some serious vulnerabilities have been found in the main Ruby interpreter. Unfortunately it seems that the official maintainers messed up as well and only 3rd-party patches are available right now, because there's no known stable release code in the codebase that a quick patch release could be based off.

I think the most important lesson that can be learned from this, as Simon Willison points out, is that you need to keep release tags around in your SCM system, but also that you should never blindly trust any part of a system. At least it makes me wonder what surprises lurk in the Java VM or CPython.

Diablo III

Has been announced. Userfriendly pretty much hits the nail on the head.

May 23rd, 2008

JavaScript IDEs

Filed under: Python,Technology,Web — jm @ 22:52

I just watched a presentation about the impressive JavaScript support in Netbeans 6.1.

I have to say that I'm really impressed with it. There's a project (the Ajax Toolkit Framework) in Eclipse incubation that promises to provide pretty much the same capabilities for Eclipse, but it's not there yet. ActiveState's Komodo has some good support, but it's not really free (there's a free version without debugging support).

The only problem left now is that Netbeans' is missing a widely advertised Python plug-in, so I don't know if good Python support is available, but if it is, then it would be enough reason to leave Eclipse+Pydev behind. I'll try JPyDbg and see if I get anywhere.

March 02nd, 2008

Qmail recipes 2: Integrating qmail with nixspam and spamassassin

Filed under: qmail,Technology — jm @ 16:18

It's here! I was going to post the second part of my qmail recipes series on this weblog today, but the post got so long that I decided to publish it as an article. It's much easier to read that way. Enjoy!

Next Page »