Monday, October 25, 2010

Internet module for SystemPreferences

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.


Saturday, October 23, 2010

Browsing GNUstep documentation


A quick update! Vespucci and SWK are now able to display our GNUstep documentation. Links and frames do work now much better now. This required an patient debugging in URL management.
This is a milestone in the usage of SWK and shows that it can be already very useful as an embedded view.

Saturday, October 16, 2010

Vespucci and SWK news update


It has been quite some time since the last post here. My coding efforts were and are scattered among the various GAP applications. Vespucci has lately received most of the attention. The window and document controllers were rewritten to follow more the NSDocument and NSDocumentController philosophy. The major benefit is that some smaller features that worked only on Mac now work well also on GNUstep.
The recent Document list now works, which is handy for local files. Opening URLs fron NSWorkspace works more reliably.
During the restructuring, I added the classic back and forward buttons. Thanks to suggestions of Wolfgang Lux now both the buttons and the menu entries are validating and disable/enable themselves.

Incidentally, the screenshot of Vespucci running on GNUstep is also on HURD! The mac screenshot shows the portability and shows that on Cocoa SWK has rough table support through NSTextTable.

Wednesday, July 14, 2010

Native Print Preview in GNUstep


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.

Thursday, July 01, 2010

GWorkspace 0.8.8 released


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 GWMetadata subproject is now controlled by a configure option. This means
    that sqlite is no longer a hard dependency if live folders and search
    functionality is not desired. It also means that if selected, it will be really
    configured, built and installed (up to now it was manual).
  • portability issues fixed (SPARC crashes, HURD constants)
  • builds on Windows (MinGW)
  • clean-ups and updates in the build system
  • extensive warning fixing and code clean-up (like header imports)
  • use standard classes and functions (NSProgressIndicator, info panel...)
  • improved terminal services interface and interaction
  • improvements with the detection of optional PDFkit for the PDF contents inspector

The compulsory screenshot shows GWorkspace running with the Neos theme from GAP.

Friday, June 25, 2010

First release of DataBasin


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.




Tuesday, June 08, 2010

Graphos released

Today is my birthday and I am pleased to finally release Graphos 0.1!

Graphos is a new version of GDraw I was working over the past few years, read past blog entries about it. It is a vector drawing application for GNUstep.

Graphos is available from the GNUstep Application Project.

Thursday, June 03, 2010

ProjectCenter has now Undo

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.

Battery Monitor 0.5

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.


Tuesday, May 25, 2010

Terminal 0.9.7

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.

Tuesday, May 18, 2010

Sleek is back


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.


Thursday, March 25, 2010

DataBasin gets Update and a new inspector


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

Monday, February 08, 2010

Grr working on windows


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...




Thursday, January 28, 2010

Graphos has undo...

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!

Tuesday, January 26, 2010

LaternaMagica v0.2


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.

LaternaMagica home page


Friday, January 08, 2010

Native theming on Windows progress


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.

Monday, December 28, 2009

Graphos: vector Drawing application for GNUstep


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.




Monday, November 02, 2009

Theme module for SystemPreferences


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.



Tuesday, October 20, 2009

DataBasin and deletion of Salesforce records


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.



Wednesday, October 14, 2009

Grr: RSS to go on GNUstep


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!