Monday, July 18, 2011

GMastermind running on Macintosh


During the weekend, I rewrote the whole graphics core of GMastermind to use NSBezierPaths instead of PS operations. Furthermore it uses a gorm file to create the menus and instantiate the application Controller.

With these changes, a port of the code to Cocoa is possible! The screenshot shows the game running on my iBook with 100% the same code base of GNUstep.

Friday, July 15, 2011

GMastermind, LapisPuzzle, Sudoku, GMines released

Some of the applications given by Marko Riedel to the care of the GNUstep Application Project were released today:
GMastermind
Sudoku
GMines

Furthermore, LapisPuzzle was released too.

These are maintenace releases which make the application work on current gnustep, fix bugs, improve memory handling and improve porting to different platforms, including windows.

Many thanks to the original author Marko Riedel who helped the code not fall into oblivion and Sebastian Reitenbach whose idea was to import the apps and who helped fix them.

Monday, July 11, 2011

GNUstep on PowerPC


I got a first-generation iBook, those cute tangerine clamshells. Already owning a clamshell iBook, the lime SE version, which runs MacOS Panther, this one had to run GNUstep. I installed Debian/ppc, installed GNUstep and about everything seems to work quite smoothly, I see no extra problems compared to x86.
You can see a busy desktop exported to a bigger display.

GMines 0.2

GMines 0.2, the GNUstep version of the mine field / minesweeper game, got released. It is the first of several applications written by Marko Riedel that were salvaged and subsequently updated and bug-fixed by the GNUstep Application Project.

GMines on GAP.

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.