
LaternaMagica 0.4 got released.
The Image viewer and slideshow tool for GNUstep (and your Macintosh).
Enjoy better navigation, keyboard shortcuts and better mass-exporting tool Enjoy it on more platforms too.





![]() |
| Parabola |
![]() |
| sinc(x) |




The battery monitor for GNUstep of the GAP project, has now basic battery information support by accessing the APM/ACPI driver. Advanced cell information supplied by ACPI is still missing. In any case at least I can see how much juice my OpenBSD laptop has left...
(Tested on my Dell Latitude C600, as always with APM and APCI, your luck with other laptops may vary depending on BIOS information and Kernel support)



DataBasin now sports an Object Inspector which works in the easiest way possible: insert a SalesForce.com ID: DataBasin will try to attempt do determine the object type, automatically describe it and finally load the data.
How many times did you have the need to quickly inspect an Object of which you got the ID in an exception email? Or how many times did you have to inspect the value of a field not visible on the layout?
This new feature required some extension to the underlying API of DB: the Soap class now has an identifier method which looks for an ID in all objects returned by the Describe Global in the attempt to identify the object it comes from.
The coolest addition however is in the DBSObject class itself: it is capable of loading or refreshing the values of a set of fields or of all known fields. And behold, a finesse: when loading the value of all fields, the queries will be split into executable queries without reaching the maximum SOQL size of 10K chars, as opposed to Apex Explorer which chokes if you select all fields of a very big object.
GWorkspace is now more portable: the desktop feature and its mounted volume display now should work reliably not only on Linux but also on most BSDs and derivatives. GWorkspace needs to check which volumes are mounted. Comparing it with a list configured in SystemPreferences the user can see the mounted devices on the desktop.
All started by a patch offered by Sebastian, where a FreeBSD feature was used on OpenBSD. The whole code was a maze which attempted to parse the "mount" output. I first fixed it and also found security holes which were rapidly amended.
The final solution however has been to remove the parsing code and use getmntinfo() where available and maintain only one fall-back mechanism, the parsing of /etc/mtab as to maintain Linux compatibility.
The question on how to support GNU/HURD remains open though. I'd love to have it working in a clean way. However, it lacks /etc/mtab and even the hackish solution to parse mount is not feasible since it returns valid content only for Linux.
Solaris support needs to be verified too.
Constructive input appreciated.

ProjectCenter, GNUstep's IDE, equivalent of ProjectBuilder / XCode was released in version 0.6.0.
Happy coding!

I created a new System Preference Module called Internet. It is intended to hold system-wide configurations for Internet applications, a bit like Macintosh had up to version 10.2 (or, for that matter, even the older System 7.5 up to 9... or SGI Irix IndigoMagic...).
Currently, the preference implemented is the default browser selection (used by NSWorkspace when it has to open URLs). The registered browsers are presented, they are set immediately on selection and the corresponding application icon is conveniently displayed.
Currently the selection of browsers is essentially limited to Vespucci and SWK's test-bed SWK Browser. Browser wrappers are not supported because they are unable to register with NSWorkspace correctly as they can't open URLs.




The upcoming GSPdf version can be used seamlessly to do Print Preview in GNUstep. The provision to do that has long been in GNUstep's printing code, but no application exploited it.
GSPdf is undergoing quite some restructuring and is now a true document-based application. This allows it to register properly for the post script viewing task. Activationg GhostScript's anti-aliasing is supported too (look at the screenshot, where Graphos itself is running without).
GSPdf is an interface to ghostscript as gv is, so the displayed quality should remain the same.

GWorkspace 0.8.8 is out! Many thanks to all those who helped with testing or contributed with patches.
GWorkspace is GNUstep's standard workspace manager.
Among the improvements:
The compulsory screenshot shows GWorkspace running with the Neos theme from GAP.

I'm pleased to announce the first release of DataBasin, a tool which allows to access Data on SalesForce.com using its WebService APIs. Core part of the tool is the API implementation in Objective-C, which uses the GNUstep WebServices for the low-level interaction.
The API implementation is designed to be reusable in other application and is LGPL'd.
Basic functionalities like Query, Insert and Delete are implemented (and of course log-in!) but the tool contains many rough parts, like the CVS importer/exporter so production use is not yet recommended.
As far as I know this is the only open source library for Salesforce.com, at least in Objective-C.
In the screenshot DataBasin running on Debian GNU/Linux.
A big thanks to many friends who helped me implementing the API and debugging the SOAP Calls. First of all Richard Frith-MacDonald who extended the GSWS to support SOAP in the first place. Then two colleagues, Andrea Rosa and Enrico Murru who helped track down many bugs.
I made a second attempt in implementing Undo support for ProjectCenter (GNUstep's IDE) I was much more successful thanks to Wolfgang's suggestions.
ProjectCenter now supports Undo in the Editor, both if it is docked inside the project window or if it is standalone. A few rough edges remain, but it appears to be functional and usable.
Finally! A small feature I was missing since a long time.
I released Battery Monitor 0.5 for GNUstep. This version includes some bug fixes and most importantly it supports the ACPI information in the /sys filesystem available on the more recent Linux kernels (as compared to /proc).
I noticed that for some ACPI implementation information is written in both places, but for some it is only in /sys so BatteryMonitor wasn't able to find a battery.
Currently /proc is still available as a fall-back if no battery is found in /sys, but I plan to deprecate and remove it in the future.
Batmon is available as usual in GAP.
I released Terminal 0.9.7.
This version is a maintenance release that guarantees compilation again on the most recent GNUstep release. This release contains code clean-up, fixes of recent and long-standing warnings and some smaller bug fixes.
Sources are available at Terminal's page in the GNUstep Application Project.

I once created a color scheme for the "Color Schemes" preference module I too created long ago.
However, the Color Schemes module was deprecated (it still exists, but it is not installed by default) since we have the new Theme module and the Theme Engine in GNUstep. Themes have all the capabilities of the old Color schemes, plus of course new features.
Since I apparently had some faithful users of the old scheme, I took the effort to remake it as a Theme and also tweak some more details. It is already better than the old one. but other details can be tweaked and improved as a theme. However it is almost ready for a 0.1 release!
I hope the new theme will enjoy the same popularity that the old scheme had!
The appearance of GNUstep gets lighter, it looses much of the 3d accent. Somebody may call it more modern.

DataBasin, the SOAP data access tool for Salesforce of the GNUstep Application Project, got new features! Check the screenshot.
The SOAP layer was enriched with the update call. To perform an update the steps are identical to an Insert and the already existing object describe is use to retrieve the list of available objects. Currently, as with Insert, the CSV column titles need to match exactly the Salesforce fields.
Also, DataBasin got a new inspector about the user properties retrieved during login. These informations can be handy during development, like the ID of the Org, the User, its profile and role. They are exposed in Output-only fields with support for copy-paste to other applications

Grr now works under Windows! Another proof of GNUstep's versatility.
Screenshot attached, with the upcoming native WindowsUXTheme. Note the scrollbars, checkboxes, native in-window menus, native window-decorations for windows and panels...
Graphos (GAP Vector editor) got undo support. Add/remove shapes (that worked already) and proper undo of moving, inspecting and editing shapes.
This required implementing shallow vs. deep copy of the objects, but the deep copy needs to be smart about which references are indeed duplicated and which not... A bit of fun programming!

Laterna Magica v0.2 is out! New features are more keyboard short-cuts, JPEG saving and better in-window menus support (NSWindow95Style). The latter feature delayed release another bit of this long-due release, but it works great.
The attached screenshot shows LaternaMagica running on windows using the experimental WinUXTheme which draws several controls native including in-window menus. Note how the menu is attached to the main application window but not to the image window.

Scrollbars now draw properly on Windows using the native WinUXTheme, sizing and placing is correct.
In the screenshot you can see Graphos running with the current version of the native windows theme.

A long time ago 10 years now, Enrico Sersale began to work on a very interesting and promising application: GDraw. A vector drawing application for GNUstep. Its spline drawing capabilities and document-based design were very advanced for those early days of GNUstep.
A long time passed, there were no further developments and the application bitrotted, starting not to compile any more under GNUstep or not working properly in any case.
I decided to make GDraw come back from the ashes under the name of Graphos. It took me a lot of work to bring it up-to-date.
From a user perspective little has changed, as a kind of tribute to the original work I left the user-interface essentially as-is, planning to change and enhance it only in the next release. However when the application was written, Gorm was in its infancy so for example the Menus were hard-coded. Now they are done properly in Gorm.
All drawing operations were PostScript based, I converted them to use NSBezierPath, this makes the application portable to Macintosh and Cocoa, as the attached screenshot testifies.
I wanted then to bug-.fix and complete some of the existing functions, The when I tried to complete the implementation of the "Box" tool, I found out that the architecture was unclear and limited making it next to impossible to continue.
The upcoming task was thus an incremental re-factoring of the application core. The code itself was almost untouched, but a clearer distinction was formed between Editors and Objects (improving also the file format, making it Editor independent). Object inheritance permits now easier extension and organization of the code.
Now Graphos works on Mac and GNUstep almost like its predecessor GDraw, I intend to make a preliminary release soon and then evolve its missing functions and perform more refactoring.
The file format changed only little and Graphos is able to read GDraw files (but not the opposite) due to a better Editor/Object distinction.
Almost a tribute to a ghost from the past, I hope Enrico will appreciate the efforts.
As usual, the application is part of GAP, the GNUstep Application Project where it finds its new home.

I implemented a new preference module for System Preferences. It allows the selection of the preferred theme system-wide for the current user (NSGlobalDefault GSTheme)
This is finally the way an end-user should set his preferred theme, since currently either the command line was needed (defaults write) or only per-application setting was possible.
The module uses themes for GSTheme and they can be created with thematic. It displays a short description, the author, if available the version, the icon and a small theme preview. Since it would be almost impossible to do a preview in a subview, each bundle can carry an image of its preview.
The user can "Apply" the theme which means essentially to set the selected theme to the SystemPreferences application as a sort of preview or to Save, which writes the default permanently.
In the attached screenshot, you can see that the "ThinkDark" theme is applied temporarily and that the user is inspecting the Neos theme. The rest of the system however still runs the standard theme.
Thanks to the dynamic loading capabilities of GSTheme, after saving the theme all application get the new theme immediately.
The Themes module supersedes the Color Schemes control panel which is thus now no longer built and installed by default, although it remains available.
System Preferences 1.1.0 was thus released, combining some other minor code and makefile improvements already present
Up-to-date themes are present in the GAP CVS repository, they will be re-released soon.

I implemented delete in the Salesforce.com API Layer (DBSoap) of DataBasin.
The screenshot shows DataBasin running on the Mac, natively built in Xcode.
Delete is capable of deleting an array of records, on top of this I implemented a convenient function: QuickDelete. Just enter a Saleforce.com ID and delete it.
Full handling of the error results is still missing, currently only the verbose message are retrieved. For the QuickDelete an error gets conveniently displayed as if it were an exception in a small scrollable panel.

Guenther Noack, the Author of Grr, donated the appreciated RSS Reader and its Framework RSSKit to the GNUstep Application Project some time ago, since he had no time to maintain it any more. I will not promise anything, but as it is usual for GAP projects we try hard to make our programs compatible.
Thus Grr got a general make up of crash fixes, makefile fixes and warning fixes. Then an extensive work of removing forward declaration of Protocols was done so that compilation on gcc 29.5 is now possible, expanding the list of platforms where to run Grr on.
I compiled and ported Grr to the MIPS based Letux 400 netbook as can be seen in the screenshot. Grr uns perfectly and thus tracking RSS on the small device is now smooth as butter. RSS everywhere with you!
Subtitle: Why OpenSource continues to fail in many sectors.
Now. this is going to be a negative post full of criticism. Beware and decide if you want to stop reading. A rant.
A premise: I have mainly two uses of Open Source: the first is personal. That means I do stuff for myself. Or maybe I use it with my development of Open Source. That means I use it within a clean environment. Mostly I use developer tools but also Office and Graphics tool. But it is easy, I send material to a colleague that means he is most probably using the same thing.
The real problem is the second use: real business. Here things immediately take another turn. There are no excuses. My main rant is against OpenOffice and MS Office incompatibility. There are no excuses possible!
The new shiny 3.1.1 is out there and once again I give it a try. It is so appealing to have an alternative. An alternative which I can also use on Linux, on BSD or on Solaris. And on Windows of course. I notice many improvements, the applications on Windows XP looks good. I am pleased that OO did not yet follow the terrible "new MS style without menu bars and big fancy icons". I know it will happen, but for now it is fine.
But what is the real world task I need to solve? Take a file from a colleague, work on it, give it back. Sounds simple, doesn't it?
I take a power point file, modify it, give it back.
The file is ruined, the graphic images are broken. Things gets misplaced, connectors are broken...
The verdict is just one: OpenOffice is unusable in the real world. So sorry to say that.
I reported a similar bug in Word documents about a year ago. The comments were more or less useless. Like "duplicate" or "we are different". Now indeed, there are a lot of bugs about similar problems posted. With that philosophy you can't go far with applications that need to inter-operate.
Also, I may note, that OpenOffice clearly dips into MS Office footsteps. It is not a "different" office suite. It is a suite that wants to appeal the MS user. You see it in almost every detail of the user interface. Also, the compatibility is actually high, but not enough. There are no excuses.
Heck, OpenOffice has that small office assistant even! But corrupts diagrams?
Yet some of the compatibility bugs are there since months, years even. I do not care in this case on how much I can do "within" OpenOffice itself: I am not making a slide presentation for FOSDEM, I am making one for someone else, that someone else will be using MS Office or, in any case, expects that as an exchange format.

I released today a first version of Neos, a new theme for GNUstep. It is not yet a definitive release, but perfectly usable. More subtle, with less contrast. Yet I intend to retain the NeXT spirit to the maximum.
I will try to make minor releases which each change I implement, up to a first official release.
The theme is done inside Thematic and also illustrates the progress done on that front, the current Neos version is code-less and consists only in new pixmaps and other point-and-click configurations.
The Neos theme is part of the GAP project and there I created an extra section to collect themes, wallpapers, color schemes to offer an easy way to adapt and customize the GNUstep interface, something which gets often criticized.
In the screenshot, the Gorm document and palette with the new theme.

DataBasin is now able to create records in SalesForce.com starting from a CSV file.
First, as shown in the screenshot, the already implemented method describeGlobal retrieves the available objects to insert into. Once the user selects them the CSV file is read and the objects get created. There is no provision yet for mapping the fields, the first line is assumed to contain the field names.
The API implemented by DBSoap is now getting a little more complete step after step. The basic operations of creation and query are already possible.
I implemented describeGlobal in the DBSoap layer of DataBasin which communicates with salesforce.com. Thus a list of all objects in the system can be queried, standard and custom objects. The return is just an array of strings.
Step after step I am recreating a simple API interface to the salesforce.com Web services in pure Objective-C.

wmaker&That will make the session dependent on GWorkspace and not WindowMaker, this way the "Logout" command does indeed log the user out.
exec openapp GWorkspace
The Letux 400 has a wide-VGA screen, 800x480 pixels. Bright, crisp and well readable, but sure an uncommon format. 800x600 was common for laptops for a long time.
Then we have the AddressManager showing up in all its glory. Fits tight but fits. A really useful application on a Netbook!
The last image shows the Vespucci browser on the Letux. Works fine.




Bookmarks are maybe the most valuable personal value that gets created by a user with a browser. Bookmarks are what you miss if you use somebody else's computer or you loose your data for whatever reason.
The developers departed, the lights have been shut down: OrobienStep has ended. We had a nice developer meeting in Italy, near Bergamo. We started Friday evening and went on to Sunday afternoon. Staying at Hotel Quarti, we had a convenient meeting room equipped with LAN, WLAN, Beamer, flip-chart... Attendees were Fred, Nikolaus, Gerold and of course myself, Riccardo. Gregory was able to communicate through skype and webcamera.
Friday was more a warm-up day. Windows work was a bit halted since the new make from svn busted both my gnustep installations. That overcome, work started well.
We tackled several areas and poor Fred was a bit overbooked since a lot came down to gui and back.
A lot of information was exchanged, ideas discussed... I think everything was quite interesting and if an actual implementation follows it will be great.
We demoed some cool stuff to each other too:
All in all, everything was packed and productive. Nice trips to Italian restaurants were in, but unfortunately due to the tight schedule and the cold weather, no sightseeing was possible.


Finally, after months of delays and tweaks, FTP 0.2 is out! FTP is the FTP application in GAP for GNUstep and Macintosh.
Externally, few changes can be noticed: a new icon, the correct fixed pitch font in the log window and little more.
Internally, several changes happened though. Two are the main news.
First, the socket core was rewritten not to use file operations: on non-Unix systems sockets may not be files. This change allows, after some additional effort, to run FTP on windows. Thus FTP now runs natively on the Macintosh, runs on GNUstep on unix systems like BSD, Solaris or Linux and now on Windows too.
Second, the data connections are handled in a separate thread, which talks back to the main thread using DO (Distributed Objects). This allows the UI to remain responsive during list and download operations: this wasn't a real issue on the Macintosh, but on GNUstep windows wouldn't even redraw their contents during download, making the progress bar pretty useless. I still do not allow concurrent downloads, since the FTP protocol is not designed for that and it needs some workarounds.
Enjoy! Be sure to have the latest version of GNUstep base, since the DO system contains some fixes which are needed for FTP to work correctly.