Monthly Archives: April 2009

Developing software for the world

Here at PaperCut we develop software that’s used in every region of the world. Most of our customers are in USA, Canada, UK, Australia, Brazil and China. However there are thousands of customers in more exotic locations. We have customers located throughout the depths of Africa, the middle east, the channel islands, and even a small tropical island.

Developing software for the world represents unique challenges. The most obvious challenge is ensuring that every facet of the application is translatable. PaperCut is already translated into over 15 languages which shows that we’ve done this bit right. You also need to make sure that you are 100% Unicode aware so that you can handle all characters, like Chinese, Japanese, Korean, Russian, etc. Again, PaperCut handles all this with ease.

But occasionally we encounter a problem or unexpected behaviour that only affects users in a particular region in the world. A few weeks ago we had one of these problems. In this case the user was reporting a problem where they were unable to run any PaperCut reports. We obtained debug logs that showed the error details, but even with this information we could not explain the problem. In the end it was the customer that helped find the problem. They reported that if they changed their “language” to “English” the reports worked, and if they changed the locale to “Turkish” the reports failed. Aha!! With that information we reproduced the problem.

I won’t go into all the gory technical details, but it turns out that the problem was that in Turkish the letter “i” when converted to uppercase becomes “İ” (unicode character 0×0130) which is an “I” with a dot above it. Some of our code has assumed that if you uppercased “i” it would become “I”, and when this didn’t occur the report failed to run.

As they say, you learn something every day. And we did! We learned that when dealing with text in different locales around the world … assume nothing.

We’ve now fixed this problem and this fix is now available in our 9.3 release. And with this release PaperCut is available to another large group of users. Prior to this Turkish users needed to run PaperCut under an English/US locale.

Now all we need is a Turkish translation. :) If you’d like to help translate PaperCut into Turkish (or any other language!!!) then let us know. We’d really appreciate your help.


Subscribe to new posts:

Posted in General | Leave a comment

Version 9.3 Released

Today we released PaperCut version 9.3. A full list of changes in this release can be found in the release notes for PaperCut NG or PaperCut ChargeBack.

This release contains many smaller changes that have been requested over time by our customers. To have your say about which features we should be working on for the next release please fill out our Vote for a Feature survey. To find it, log into PaperCut as an admin user, click on the About tab, then click Vote now and have your say under Application News.

For the more lighthearted side of news at PaperCut take a look at the developers’ blog.


Subscribe to new posts:

Posted in Releases | Leave a comment

Version 9.4 Released

PaperCut version 9.4 is now available. A full list of changes in this release can be found in the release notes for PaperCut NG or PaperCut ChargeBack.

This release marks the addition of native 64 bit (x64) support for Linux and Novell OES2 Linux.

For Novell OES2 Linux users this means that 64 bit installations are now fully supported.

For users of other Linux distributions this means that there is no longer a requirement to have 32 bit compatibility libraries installed. Native 64 bit support also pushes the performance and scalability of PaperCut on Linux to new levels.

We had planned native support for 64 bit architectures ever since our re-write of PaperCut in 2005. This meant that the actual development required was only about a week for a single developer. If only all the printer manufacturers had the same passion for supporting new platforms and architectures in their printer drivers!

Rumor has it that 128 bit support won’t be required for at least the next millennium, so this should be the only major architecture change for some time!


Subscribe to new posts:

Posted in Releases | Leave a comment

Brewing Beer: Why I Started With Grain

editor’s note: The development team has given Tom 10/10 for his beer and has asked him to bring some more in for us all to enjoy!

The programmers here at PaperCut all write print management software for a day job, but have varied and often somewhat eccentric hobbies out of hours. I’d like to share with you one of my recent discoveries: all-grain brewing. I’d hazard a guess that home brewers are disproportionately represented amongst all you techies and readers of this blog, so hopefully you’ll find this interesting.

As an engineer and lover of beer it was inevitable that one day I would pose myself the question, “how does this beer stuff work and how can I make it?”. I’d been put off for many years because the only home-brew I’d heard about was to brew from extract. In summary, extract brewing means:

  • Buy a kit from the supermarket. A kit usually has malt extract, hops and dry yeast.
  • Boil the malt extract with water and the hops.
  • Put the result into a fermentor with the yeast.
  • Put the result into bottles with some sugar.

Well that’s easy enough, but it’s not exactly an art form. How can you change the flavour of the beer? By choosing a different kit, and maybe by varying the boil or amount of hops used. That’s why extract brewing was completely disinteresting to me. The value proposition seems to be that you can make beer cheaper than you can buy it, which is really only because you don’t have to pay alcohol tax to drink your own home-brew. To me it was like trying to be a handyman by building Ikea flatpacks.

Then I discovered all-grain brewing. Not only is all-grain brewing possible to do at home, it’s actually quite easy and doesn’t require much additional equipment. Rather than using malt extract all-grain brewing involves starting with malted grains (a sack of grain, available at brew shops) and extracting the sugars yourself. This is “real brewing”, and allows you to take on any style of beer you can think of by varying the malts, water, hops, yeast, sugars and other additions.

One site that was a fantastic guide for me while learning about brewing was the aptly named howtobrew.com. This covers a lot of the theory behind brewing, as well as guides for building some of the specialised equipment.

mash/lauter tun and manifold

from howtobrew.com‘s instructions for building a piece of brewing equipment: a mash/lauter tun and manifold

For the first batch my brewing partner and I decided to start with a beer that would require as little “modification” as possible. When extracting sugars from malt the water quality is a big factor. Basically: the harder the water, the darker the beer. This is why Dublin, with its very hard water, is known for its dark stouts, and Pilsen, with its very pure/soft water, is known for light coloured beers (and the Pilsner style). Melbourne’s water is about as pure as it is in Pilsen, so we settled on a Pilsner.

The one thing we didn’t count on was fermentation temperature. A Pilsner beer calls for a lager yeast, which ferments best at around 9°C (48°F). This might not be a problem in Pilsen, but in Melbourne that’s almost impossible without refrigeration (unless you want to leave it outside in the winter, in which case you’d risk freezing it). Ale yeasts on the other hand call for a temperature of around 20°C (68°F), which is much more achievable. So the result was a “Pilsner ale”. Not exactly a recognised style, but that’s part of the fun.

We couldn’t have been happier with our first all-grain batch. It’s encouraged us to learn more about the details (and there is a lot to learn) and to try other styles of beer. Fermenting now: a strong Scottish ale.

If you’ve got some brewing experiences to share I’d love to hear about them in the comments!


Subscribe to new posts:

Posted in General | 3 Comments