Gnome Hearts

The classic card game for your GNOME desktop. Visit our project page where you can find all the guides, screenshots, downloads and other resources. The latest release is gnome-hearts-0.3.tar.gz.

Office­shots

Test your ODF documents in many different office applications. Try it online at Officeshots.org or contribute your office applications to the cloud.

ODF-XSLT

Automatically generate ODF documents from XML data using your favourite office suite and a bit of XSLT. Visit the odf-xslt project page for more information.

More

We have even more open source projects, such as CakePHP plugins, a PHP spam filter and a Python jukebox daemon. View all projects.

Resizing images with correct gamma using PHP and GD

by Sander Marechal

A short while ago Ty W posted an interesting question on StackOverflow. Apparently, most graphics software cannot scale images the right way. Usually it's hard to notice the flaw but the linked article does a great job of explaining the problem.

PHP's GD library suffers from the same issue, but Ty discovered that the sample PHP program provided with the article did not work on partially transparent images. After a couple of hours of fiddling I managed to get a working solution.

Apparently, the imagegammacorrect() function in PHP deals badly with images that have an alpha channel. I suspect that it tries to apply the same calculation to the alpha channel that it applies to the red, green and blue channels. To work around this, my solution splits the aplha channel from the original image. The alpha channel is resampled regularly while the red, green and blue channels are resampled using gamma correction.

How to correctly create ODF documents using zip

by Sander Marechal

One of the great advantages of the OpenDocument format is that it is simply a zip file. You can unzip it with any archiver and take a look at the contents, which is a set of XML documents and associated data. Many people are using this feature do create some nifty toolchains. Unzip, make some changes, zip it again and you have a new ODF document. Well… almost.

The OpenDocument Format specification has one little extra restriction when it comes to zip containers: The file called “mimetype” must be at the beginning of the zip file, it must be uncompressed and it must be stored without any additional file attributes. Unfortunately many developers seem to forget this. It is the number one cause of failed documents at Officeshots.org. If the mimetype file is not correctly zipped then it is not possible to programmatically detect the mimetype of the ODF file. And if the mimetype check fails, Officeshots (and possibly other applications) will refuse the document. This problem is compounded because virtually no ODF validator checks the zip container. They only check the contents. In this article I will show you how you can properly create ODF files using zip.

New Officeshots feature: ODF Anonymiser

by Sander Marechal

I have just released a new feature for Officeshots: The ODF anonymiser. The ODF Anonymiser tries to make your document completely anonymous while maintaining it's overall structure. All metadata is removed or cleaned. All text in the document is replaces with gibberish text that has approximately the same word length and word distribution. All images are replaced with placeholder images. All unknown content is removed.

The result of the anonymiser is a document that has the same general structure but with made-up contents. If your original document does not work in a certain application, the anonymised version of the document should fail in the same manner. By using the anonymiser you can test your private documents without exposing the contents to our rendering clients.

New Officeshots feature: ODF validators

by Sander Marechal

I am happy to announce an exciting new feature for Officeshots: Integrated ODF validators.

Every ODF document that is uploaded is run through several different ODF validators. If the converted documents are also ODF documents (when you are testing ODF round trips) then those results are also passed through these ODF validators.

The results of the validators are made available on the request overview, the individual result pages and inside the galleries. Galleries now not only show all attached documents but also all results and a summary of the validator results. This way it becomes really easy to see which documents failed.

Book Review: Pro Linux System Administration

by Sander Marechal

“By the end of this book, You’ll be well on your way to becoming a Linux expert” is quite a bold claim for a book that is aimed at people who only have some familiarity with Windows and networking. “Pro Linux System Administration” by James Turnbull, Peter Lieverdink and Dennis Matotek aims to do precisely that and surprisingly, it largely succeeds. In its 1080 pages it explains how you can set up and configure multiple Linux servers to operate a small business network. Starting with basic Linux management and working up the stack through networking, e-mail and webservers you will end up with a pretty complete network that includes document management, groupware and disaster recovery.

The only downside of the book is that it becomes terser as it goes along. Part 1 and half of part 2 are quite thorough. They explain what you are doing, why you are doing it, differences between distributions and possible gotchas. But as the book moves up the application stack these explanations become shorter and in some cases amount to little more than an installation walk-through. I think it would have been better to focus on fewer alternative applications and dive deeper into those.

This article was originally posted at LXer Linux News.

Open Core: The worst of both worlds

by Sander Marechal

A lot has been written recently about so called “Open Core” software ever since Andrew Lampitt coined the term back in August of 2008. Many analysts have been critical about it, such as Richard Hillesley from The H Open in his recent article “Open core, closed heart?”. Many are also very positive about it such as Matt Aslett from The 451 Group. However, I think that most them are missing the elephant in the room: Open core is not sustainable in the long term because it represents the worst of both worlds. Open core tries to find a middle ground between proprietary software and free software, but it reaps the benefits of neither and inherits the problems of both.

Let me show you by example. SugarCRM is one of the more popular open core software products available. The company offers the Community Edition for free under a GPLv3 license but also offers a Professional and Enterprise edition under a proprietary license. SugarCRM has been around since 2004 but it is already showing many signs of not being sustainable.

Digg this article: This article on Digg

Help translate Officeshots in your language

by Sander Marechal

I have finished setting up the internationalisation and localisation frameworks for Officeshots. If you want, you can now help to translate Officeshots to your own language. Translating Officeshots can be done through our Pootle installation.

At the moment there are almost no languages configured yet in Pootle. The reason is that the CakePHP framework on which Officeshots runs has a different locale structure than what Pootle expects. This means I need to add every language by hand. If you want to start working on a new language, please post to the Officeshots mailinglist and I will add the language to Pootle and to Officeshots.

Scanning files with ClamAV from CakePHP

by Sander Marechal

One of the requirements for the upcoming public release of Officeshots.org is that all uploaded files are run through a virus scanner before they are made available. Picking a virus scanner for this job was easy. ClamAV is open source, well supported, actively maintained and comes pre-packaged for Debian Lenny which we use for the Officeshots servers. Finding a PHP library to interact with ClamAV proved harder though. The 3rd party library page for ClamAV points to two different libraries that provide PHP bindings for ClamAV but both appear to be dead and expunged from the internet. So, I created my own using the clamd TCP API, and because Officeshots is built using CakePHP I implemented it as a Cake plugin.

You can download the clamd-0.1.tar.gz plugin or check out the source from my Subversion repository with the following command:

  1. ~$ svn checkout https://svn.jejik.com/cakephp/plugins/clamd/trunk clamd

Or you can browse the repository online. In the rest of this article I will show you how you can use this plugin.

Fixing OpenDocument MIME magic on Linux

by Sander Marechal

When working on the beta of Officeshots.org I ran into an interesting problem with file type and MIME type detection of OpenDocument files. When a user uploads an ODF file to Officeshots I want to determine the MIME type myself using the PHP Fileinfo extension. Windows user who do not have any ODF supporting applications installed will report ODF files as application/zip which is of no use to me. In addition, a malicious user could attempt to upload an executable file and report the MIME type as ODF file.

On Linux, the PHP Fileinfo extension relies on the magic file that is provided by the file package. The magic file contains a series of tests that can determine the file type and MIME type of a file by its contents. I found out that the magic file is incomplete for OpenDocument files. Below I will show you what is wrong with the magic file and how you can fix it.

Update 2009-06-29: I have now also created a patch against the original upstream file-5.0.3.

Book Review: Practical CakePHP Projects

by Sander Marechal

CakePHP has rapidly been gaining mindshare as a powerful and easy to use MVC framework for PHP. Mimicking Ruby on Rails, it allows developers to quickly prototype and build database driven websites and web applications. With increased popularity books usually follow. “Practical CakePHP Projects” by Kai Chan and John Omokore is one such book. It is aimed at advanced PHP developers who have some experience with CakePHP and builds on books like “Beginning CakePHP” (Apress, 2008). The book promised to show how to build practical, real-world web applications using the CakePHP frameworks.

Unfortunately “Practical CakePHP Projects” only partially succeeds in that. It is refreshing to see how applications are built that are different from the proverbial “blog” or “store” example (though both are used in the first chapters), but I find myself disagreeing often with how these applications are built. The chosen solutions often seem to work against the framework instead of going with it.

This article was originally posted at LXer Linux News.

About us

The Lone Wolves Foundation is a small development company based in The Netherlands. We offer various commercial services such as open-source consultancy and implementations, and web development for small to medium sized businesses. We use the proceeds to fund our own open source games and applications as well as projects run by other free software developers. This website is both our commercial as our personal platform. Please see the about us page for more information.

Blurb

Officeshots at the 2010 Document Freedom Day

Just a quick update: I will be giving a presentation about all the new features in Officeshots at the 2010 Document Freedom Day in Baarn in The Netherlands. I will be updating the audience about the progress made since my presentation last year at the DFD. I am not sure exactly what time I will speak, but it will be taped for those who cannot be there.

Mailinglists server down

The mailinglists server lists.jejik.com is down for some much needed maintenance. The OS is being reinstalled and the data will be rebuild using backups.

Update 16:00 The maintenance is finished and all systems are operating as they should.

Subversion server is down

The subversion server is down. There is a problem with mod_gnutls that causes Apache to use 100% CPU and never finish any request. It started around 5 AM this morning (European time) and nothing I do seems to work.

#apache on irc.freenode.net isn'table to help either, so I am forced to take the SSL domains on the server offline while I investigate this issue.

I am getting really, really fed up with mod_gnutls. It is causing way more trouble that it's worth. Unfortunately it's the only way to have multiple SSL virtual hosts with just one IP address. The server that hosts subversion also hosts a few other websites which require SSL to work.

I will try to get the server back online as soon as possible.

Update 12:22h: The Subversion server is back. It turns out that there is a bug in libdb which causes gnutls to lock up when trying to write session cache data in some rare circumstances. I tried replacing libdb with memcached but unfortunately gnutls is built without memcached support on Debian Lenny.

Webserver relocation

In the week of April 14 our webserver will be moved to a new location. You should not notice anything of this since we can simply reassign the existing IP address to the new server, so no DNS cache needs to be updated. We will be upgrading our base platform from Debian Etch to Debian Lenny during the move. I will update this post once the move has been completed.

Update: The server move has been completed. Please let us know if you see any problems.

Subversion upgraded to GnuTLS

Our Subversion server has been upgraded to use mod_gnutls instead of mod_ssl for SSL/TLS encryption. GnuTLS supports Server Name Indication (SNI) which means we can run multiple virtual hosts with SSL/TLS enabled on the same IP address and port.

Unfortunately for you this means that you cannot access our Subversion repository anymore if you use a client that does not support SNI. The standard subversion client as well as all major browsers support SNI these days. The only notable exception is Microsoft Internet Explorer 6 on Windows XP. So, if you use IE6 then you can no longer browse our repositories directly. Use the ViewVC interface instead.