Recent blog entries for ghostgum

Just released GSview 4.41 beta. This fixes two stupid bugs with the X11 version.

First I assumed that everyone would have the LANG environment variable set (wrong). It worked on my system but crashed on start-up on others.

Secondly my code for progressively updating the display during rendering on X11 queued up a whole series of screen updates when displaying on a slow X11 server. The code then sent these updates one at a time to the remote X11 server. This is very slow on a remote X11 server (tens of seconds), but hardly noticeable on my local display used for development. Having an old X server on a 10M Ethernet is recommended for testing. What now happens is that when it finds a screen update in the queue, it looks at what else is in the queue and merges them as appropriate, minimising the number of updates sent to the X11 server. This is obvious in hindsight (I already knew that Windows does this with WM_PAINT), but when you are doing this on a new platform for the first time you can't see the wood for the trees.

I recently added the pngalpha device to Ghostscript. This is a nasty hack which fills the page with transparent whenever it is told to fill the page with white. The alpha channel carries pixel coverage data. The result is an RGBA PNG output device that provides transparent background with anti-aliasing (soft edges). It will be in the next GNU and AFPL Ghostscript releases. Have you ever had a logo in PostScript or PDF that you wanted converted to a bitmap with transparent background for a web page?

I got the GhostPCL changes to work on Windows, but still need to make it build as a shared library on Linux. Shouldn't be hard, just another few evenings.

I didn't get very far with GSview printing. I got side-tracked with making it handle files larger than 4GB. This is most unportable. Reading large files is easy. It's just the seeking that is difficult. ftell/fseek can't be used on 32-bit platforms.

Bought a new notebook computer (toy). It is not super fast (AMD 1400+), but it is a substantial improvement over the old 486-75. The old 486 travelled around the world and is now in semi-retirement as a test box. Required features on the new computer were a decent screen, DVD and CD-RW. Being able to back up digital photos to CD-R in the field is very reassuring.

To wardv, we should also compare it to the number of security fixes for Linux. The Red Hat Linux 8.0 errata now contains 16 security advisories. The major difference I see is not the number of fixes, but the ability to verify if holes exist or not. I use both Linux and Windows XP.

My favourite from the Windows XP install was the MS claim "Fastest Booting Windows ever". I've got VMware with several different Windows installations. The winner of the Windows booting race is DOS/Windows 3.1 :-)

I'm been feeling a bit burnt out after the ghostscript 8.0 release. I contributed a few bug fixes, new features and did platform testing for Windows and OS/2. I only work on this stuff part time and getting patches to the appropriate standard and through the review process often takes more time than I wish. Other things get put aside. I'm hoping that this Christmas break I'll be able to finish off my GhostPCL updates for Windows and gtk+ display, and then get GSview printing and PDF writing on Linux, and then do the MFC code for GSview. My rule for coding is to maximise the platform independent code, and minimise the MFC and gtk+ code.

epstool 3.0 is released. This is used for manipulation of Encapsulated PostScript (EPS) files, particularly adding and removing preview images. Other tricks include adjusting the bounding box, converting EPS to a bitmap, and fixing some common faults in Desktop Color Separation files. Much of the code is common with the rewrite of GSview. Sources, Linux i386 executable and Windows executable are available.

The rewritten GSview on Linux now displays well. Next step is to add the user interface for PostScript to PDF, so you can set distiller parameters. There are still many user interface issues as a result of migrating to gtk+ 2.0, but it's useable enough that I haven't run the old version on Linux for months. It's available in a public CVS if anyone wants to test it.

I'm rewriting GSview (PostScript previewer based on Ghostscript) and I am currently working on the gtk+ version. The old version uses gtk+ 1.2 and the Aladdin Free Public Licence, while the rewritten version uses gtk+ 2 and the GPL. If you are familiar with gtk+ 2, and are willing to answer the occasional programming question, please send me email at gsview at ghostgum.com.au. I'll try to make sure I RTFM before sending questions.

If you are interested in trying an early version of the code, see cvs.ghostscript.com and look for the GSview tree. Suggestions for improvement to the old GSview, or the new rewrite are always appreciated.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!