Thursday, June 23, 2011

BatteryMonitor supports NetBSD


BatteryMonitor for GNUstep now has support for NetBSD acpi too now! Support languished because decent acpi support in NetBSD is relatively recent and reading it requires checking a property list (which is of course more complex, but at least consistent and clean compared to the maze of files linux provides). To manipulate it libprop sports handy functions, yet I always had some problems here and there, until I realized something very cool. Property lists are familiar to GNUstep and Cocoa users.
char * prop_dictionary_externalize(prop_dictionary_t dict);
Exports fully-fledged XML property list compatible with GNUstep plists, not just something similar. Thus it is a matter of using
-[NSString propertyList]
to get a dictionary and manipulate it with obj-c iterators, which is much more convenient than the equivalent C function provided by libprop.

Support is still quite rough and, for example, only the first battery is checked. I have only one NetBSD laptop and I don't know how NetBSD shields the results from BIOS idiosyncrasies I experienced on Linux (watt-hour and ampere-hour usage and orthogonality for example). But it is already very nice!

Tuesday, June 21, 2011

Battery Monitor now on OpenBSD


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)




Thursday, June 09, 2011

Marko Riedel's apps now in GAP


Some applications recently lost their home, thus Sebasitan Reitenbach, of OpenBSD packages fame, asked if GAP could find a new place for them.
Marko Riedel published several small applications in the past year: games, preview utilities... these need patches to continue working with newer GNUstep versions and to fix bugs. For a packager, it is more convenient to have a stable place from where to retrieve everything.

Mr. Riedel gave us the authorisation to import the applications.

Sudoku and GMines are already part of the repository and have been brought up-to-date and work again smoothly.

Jigsaw puzzle is on its way.

I wonder what we should do with Yap, the a2ps front-end. The image viewing capabilities are well covered by PRICE and LaternaMagica, the PDF viewing is handled by GSPdf in the same way through ghostscript. The only value added would be the pretty printing through a2ps. Does anybody use this and is it worth investing time to fix YAP ?

Wednesday, March 16, 2011

DataBasin Object Inspector sorting


The fields are now sortable by Label and Developer Name. A little feature that was sorely needed within orgs with almost 500 fields per object!

This feature is currently not available in GNUstep.

DataBasin, Objective-C portable data access tool.

Thursday, March 10, 2011

DataBasin: object inspection


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.

Friday, January 28, 2011

GWorkspace and BSDs

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.

Tuesday, December 14, 2010

GNUstep's Desktop


Who says we don't have a desktop? ;)
Look at the screenshot. NSWorkspace now identifies the Desktop as a special folder and associates it with an icon. The icon is new too.

Also the Music folder is now recognized as a special folder and has its cool new icon too.

Maybe that wasn't a blog post you all expected about a complete GNUstep desktop :)

With this last additions, the addition of special folders to NSWorkspace is quite complete. Images, Documents, Downloads, Music and Desktop are recognized as special folders in the user home. The user home itself had already a special icon since a long time. Regarding system-wide folders, the "System" and the "Library" folder have its icons, if they applicable for the used file system layout.

These icons are all theme-able too, each Theme can customize them.

Monday, December 13, 2010

ProjectCenter 0.6.0

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

  • New project format, bundle-based, user information is separated from project information: this makes collaboration of different people easier with CVS/SVN/etc
  • Editor undo support
  • Support for setting the project Installation domain
  • Improved gnustep-make 2.x support in both the project itself as in the project generation
  • integrated debugger
  • first integration between ProjectCenter and Gorm regarding
  • improved usage and run on Windows
  • uncountable bug fixes (in syntax highlighting, detachable editors, portability...)

Happy coding!

ProjectCenter page.

Sunday, November 28, 2010

DataBasin 0.2

DataBasin v 0.2 was released, the free software, open source tool for working with Salesforce.com.

The core library was enhanced and new features were added.

Read more and download it from the DataBasin homepage.

Monday, November 15, 2010

New Workspace icons


NSWorkspace handles now a new set of icons reserved for special folders, similar to what Apples Finder always did or what Windows does. Up to now the root icon and the user home were special.
I designed and added a new cache-based handling to NSWorkspace for the icons depicting the user's Documents, Images and Downloads. For the the System folder a new icon is associated where applicable, since it doesn't make sense in certain Layout. The Library icon will associated with the Library folder in all Domains (System, Network, Local).

GWorkspace has been adapted to display these icons and it is the primary goal. Check the screenshot and spot them! However since the Icons and the Code are supplied by GNUstep core they will be available for alternative Workspace and File Managers or for any application which asks the Workspace for the icons to display.

If you want to try them out, you need the SVN trunk version of GWorkspace, gui and base. The latter is needed because NSPathUtilities needed some tweaking.

The icons are for the default theme currently. I plan to update other themes soon.

Thursday, November 11, 2010

bilinear filtering


Finally PRICE got proper Bilinear filtering.

This was surely long due! The previous linear h+v filter was little more than a quick hack.

Bilinear filtering is quick, good and quite sharp and works well with scaling between the 50% and the 150% range. It is quite good when downscaling while upscaling beyond a certain range surely has better algorithms.

LaternaMagica and its export tool with automatic constraining will benefit from this new filter too.

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.