Thursday, July 11, 2013

FTP: new features, some polish

I added some long-due functions to FTP, handled by a request dialog
  • Local and Remote Rename
  • Local and Remote New Folder



Furthermore, currently it is boring that after each operation the file lists are not updated.

I thus changed the core representation, fileTable, to be a mutable array and added basic manipultation methods. I will the progressively add provision to update dynamically the list after operations. Right now I worked on delete. The first impact is that the contents of the selection need always be copied before launching an operation, otherwise operations with selections larger than one element may fail or behave wrongly after the first element got processed.

Also, I noticed that FTP lacks a refresh function. Sometimes after years you notice the most basic things! I'll need to implement that.

Friday, June 28, 2013

Graphos: text alignment and other fixes

I finally fixed text alignment in Graphos! It was broken since a long time, perhaps since Graphos 0.1, probably due to the conversion made from GDraw. You had the controls in the editor, but then it didn't draw correctly!





Another long-standing bug was the manipulation of handles of a closed bezier path: the handles inside the path could not be touched. I think this bug existed even in GDraw!


A lot of work then went into restructuring the whole architecture that handles the zooming of the view. previously, everything was recomputed, there was no notion of original size, everything was transformed back and forth on the fly. While quick and easy, this provided serious problems when saving! Furthermore it means that there is data corruption when performing zooms!

Now, the original information is stored inside each object and everything is then calculated for representation. Some zoomed data is pre-calculated, other not. Probably there can be quite some optimization, but first everything needs to be debugged, since this is a quite consistent change. No new format is necessary since previosuly saving with a zooom different from 100% resulted in a broken file anyway.

Thursday, June 27, 2013

Graphos: new path editing

I changed the way selection and editing of paths and objects work in Graphos.

Previously, the program attempted to be smart: the "white" arrow tool would auto-select an object and start editing it. Clicking outside would deselect it.

This behaviour seems smart, but with many objects, with control poitns close together, it could drive you crazy. I thus changed the behaviour, by differentiating the black arrow and the white arrow tools  more:
  • the Black Arrow selects and unselects the whole object
  • the White Arrow selects and modifies control points, but does not change the object selection
  • the White Arrow only selects control points within the current selected object
  • missing a control point with the White Arrow does not deselect the object

This arrangement makes the two tools more orthogonal. It looks perhaps a bit more cumbersome for basic operation, but it ends to be much easier when objects overlap. Especially when using a graphics tabled this makes a huge improvement in my opinion.

And to close, just a drawing to show the current capabilities of Graphos. Making different shades is very easy with the new


Thursday, April 25, 2013

DataBasin: advanced SObject describe

I enhanced DataBasin object's describe. First, I do parse the RecordTypeInfo now, but that was the easy part.  Salesforce.com returns only the record type ID and name, but programmatically, this is not very useful. The important bit would be the Developer Name of each record type.

I enhanced the results by querying automatically the RecordType table, extracting the Developer Name, matching it through the RT Id and merging back the results, so that the resulting DBSObject has a complete Record Type information, totally transparent.

Sunday, April 21, 2013

Simplifying GWorkspace

I am streamlining GNUstep's Workspace. For many years it had a mode for spatial navigation, inspired essentially from Mac's finder and by GNOME. I personally never felt that it fits well in OpenStep's paradigm. MacOS X incorporated it for legacy reasons of Mac Classic, becasue Apple (sadly) wrote a new Finder instead of using OS's Workspace.
Spatial is good, but I think having a manager which incorporates both philosophies not.

Thus I removed spatial navigation from GWorkspace. Some loyal users perhaps will mourn it, but I want to remember that GWorkspace is just one possible application to implement NSWorkspace, anybody can write a replacement. In fact, I have already plans to write an alternative version, but this will be material for other blog posts.

Monday, April 08, 2013

FTP 0.4

FTP 0.4, the ftp client of the GNUstep Application project, has been released.

This is release has a couple of new features which should make usage a bit cleaner as well as many bug fixes and portability issues. I would recommend the upgrade. Among the many small changes:

  • Reopening connections without restarting FTP is fixed, there were corner cases where this didn't work
  • Better progress report, also for file listings. Indeterminate progress if size is unknown.
  • 64bit and portability fixes. Smaller fixes about corner cases with empty selections and empty files and interface locking.
  • When disconnecting, the remote connection gets cleared.
  • More minor but annoying bugs, like problems with large selections on Cocoa. 


FTP running on NetBSD, Sleek theme applied

Thursday, April 04, 2013

Graphos 0.4

Graphos 0.4 is out!

  • The Text editor now uses the standard font panel 
  • selection improved
  • mouse constraints for boxes and circles
  • undo for pasteboard operations
  • many bug fixes
  • 64bit fixes
Some shapes fun


Tuesday, March 26, 2013

GWorkspace 0.9.2

 pleased to announce the new release of the GNUstep Workspace application.
This is mainly a bug fix, stability and improvement release.
  • updated to current APIs and changes to NSUInteger, NSInteger and CGFloat
  • thanks to the above, improved 64bit support
  • improved BSD support
  • improved localizations and capability to localize better in the future
  • Fix logout timer
  • improved handling of Recycler and other daemons on logout
  • MDKit and MDFinder improvements, although problems on some setups remain
  • TabbedShelf crash fixes
  • memory leaks fixed as detected by the clang static analyzer
Thanks to the many who tested and contributed fixes, first of all Sebastian Reitenbach.


GWorkspace with the Sleek theme



Sunday, March 24, 2013

DataBasin 0.6

DataBasin 0.6 released!
  • Support "." as Semi-Join
  • Select Identify works now with multiple columns (all in AND as condition)
  • Support LIMIT clause in Select Identify
  • Improved Exception catching and display for Select Identify
  • Object Inspector supports selection of items
  • Log window with selectable log level
  • Progress and estimated completion time displayed in Log
  • Remember logins
  • internal API improvement
  • vast 64bit and portability improvements
  • Support count and aggregate queries
Select Identify is now vastly improved. Supporting multiple columns and LIMIT, coupled together with the other improvements of this release, makes it an invaluable tool during support and maintenance of a Salesforce org. How else could you check the status of a lot of objects, say Cases or Accounts?
The object inspector is always handy too.

DataBasin allows you to work with SalesForce.com much easier and also from your favourite free OS  using GNUstep like any BSD or GNU/Linux or at need on Solaris or Macintosh.

Many thanks to my colleagues, Claudio and Paolo amongst them, for finding bugs and testing the 9 internal beta releases!

BatMon 0.7

Battery Monitor 0.7 is now available from GAP.
Improved BSD support has been improved, Support for linux on powermac has been added.

Tuesday, March 12, 2013

Cynthiune 1.0.0

Cynthiune 1.0.0 has been released, the Music Player for GNUstep. This is the first of GAP after Wolfgang handed over the source code.

Improved stability, portability, support for big-endian processors. Ported to Windows and Macintosh. Memory leaks and bug fixes. This is definitely a recommended upgrade. Thanks to Wolfgang for the code and Sebastian and Philippe for the long hacking sessions!



Tuesday, March 05, 2013

GNUstep on FreeBSD

I thought it would be fun to share how well GNUstep runs these days. FreeBSD now is a first-quality platform! Stable and not second to Linux at all. NetBSD is close to it too. I try hard that all application maintained by me are not "Linux centric" as most of today's desktops are!

Workspace

 First a clean desktop. Just the workspace and a terminal. Icon display in a viewer, miller column browser (my favourite) in the other. Transparent dock on the right, showing some running apps and some not.
Battery Monitor in the background and as AppIcon! Now perfectly running on FreeBSD!


IN the development screenshot, we can just admire ProjectCenter with the build panel and a detached editor window. In the background, a GWorkspace file viewer in "details" mode.
Development

Friday, March 01, 2013

BatMon on FreeBSD

I just have improved GNUstep's Battery Monitor support for FreeBSD. It now handles the High state, that is the state where the battery is present and charged and not charging. Furthermore the cases of Missing batteries or a battery in Critical low state are now handled much better.
Check out CVS or wait for the upcoming release!


Wednesday, December 26, 2012

PRICE 1.2.0

After 10 Years with PRICE a Christmas Anniversary release! 1.2.0 is out!

This new version sports JPEG saving along with TIFF! Thus PRICE rgisters itself as editor both for TIFF and JPEG files. Compression factor is of course user selectable.

Along with many bugfixes, the Curves function is now improved in usability: the transformed histogram is drawn specular on top instead of right. Furthermore bug fixes should make the display more reliable and faster.

Of course, for GNUstep and Macintosh.





Monday, October 29, 2012

Pie Charts in OresmeKit

OresmeKit, GAP's charting framework for GNUstep and Cocoa, got its first rudimental Pie Chart implementation.

Data colors, background and edges are customizable already, as a real OKChart implementation. The dataset is represented as the set of each first element of the series, so that for each the color can be specified, being the series color.

Thursday, July 12, 2012

DataBasin development: logger and semi-joins

I am working on two long-needed features of DataBasin, the open source application to extract and inspect data from salesforce.com

The first feature is rather simple: a log window which shows some informative or debug output usually thrown to the console. While on standard Unix we always have the terminal emulator open and all debugging is very convenient there, on mac and especially on windows it is inconvenient: DataBasin logged every output as an Event in the windows log. Quite painful.

A much more complex, interesting and long awaited feature is that DataBasin now supports semi-joins! In other words, one can reference a field of a referenced object with the dot notation (like: Case.Account.Name) exactly as in the Salesforce.com Data Loader. The objects are recursively scanned and flattened so that they can be written to the CSV file. The column names are generated through the descent of the object tree.
This feature required a much more flexible approach in the CVS writer core. This means that some regression bugs could appear... hopefully not.

This feature applies to all queries, including the Select Identify query tool.

As the parser was being rewritten and the supported API bumped to 25, it is now improved to handle Aggregate Objects, thus one can now issue the following SOQL query:

select count(id), status from case group by status

and get the expected result:
"Status","expr0"
"New","16"
"Closed","31"

I hope these features make DataBasin much more useful!

Wednesday, July 11, 2012

NetBSD quick update guide

Since I always tend to forget and the documentation on the website is a bit incomplete, I sum up the procedure I use to update from source the kernel and userland:

Update /usr with cvs, create /usr/obj and /usr/tools (or clean its content).

As per documentation, build the tools. Inside /usr/src:
$ ./build.sh -O /usr/obj -T /usr/tools -U -u tools
Now build the kernel:
$ cd /usr/src
$ ./build.sh -O ../obj -T ../tools kernel=
Install it:
# mv /netbsd /netbsd.old
# mv /usr/obj/sys/arch/i386/compile//netbsd /
And now, important, build and install the modules:

# ./build.sh -O /usr/obj -T /usr/tools -U -u modules installmodules=/

Reboot and check that the kernel works. Then build and install userland:
$ ./build.sh -O ../obj -T ../tools -U -x distribution
# ./build.sh -O ../obj -T ../tools -U -u -x install=/ 
 Cross your fingers and happy BSD!

Monday, July 02, 2012

Grr 1.0 and RSSkit released

Grr 1.0, the RSS Reaseder, and its compantion framework RSSKit 0.4.0 were released on Friday.

Thursday, June 21, 2012

PDFKit 0.9.2

PDFKit 0.9.2 released. Still based on xpdf 3.0.2, it solves several build problems. It now builds with clang and with current GNUstep. Portability to BSD's improved.

Monday, June 04, 2012

GWorkspace 0.9.1

I'm pleased to announce that GWorkspace 0.9.1 is out.


Some release highlights:

Enhancements / new features

  • New Modern vs Classic style which control:
    • classic vs. alpha-blended selection
    • transparent dock vs classic dock style
  • new "scale" attribute for the desktop, for uniform scaling
  • Browser icons (Eric W.)

Fixes & Maintenance

  • PDF Content Inspector fixed and updated
  • NSUInteger updates for new APIs
  • crash fix on exit when Grayscale background images were selected
  • updates for integer positions and resolutions to avoid blurring of elements
  • NSDragOperation updates
This release is highly recommended when compiling and running GWorkspace against the current GNUstep core release.

Terminal 0.9.8

Terminal 0.9.8 was released by the GNUstep Application Project. It is mainly a maintenance release to tix bugs, enhance portability to more platforms (including GNU/HURD and OpenBSD) and current GS core libraries.

GSPdf 0.5 released

GSPdf 0.5, the ghostscript front-end for GNUstep, suitable for PDF and PS viewing (and thus also as GS print preview application) was released on June 3rd.

Friday, May 25, 2012

DataBasin 0.5

I'm pleased to release DataBasin 0.5.

  • quoted CVS support in reading
  • support for reading DOS/UNIX/MAC file formats
  • improved exception trapping and display
  • fixed bugs in create and updates
  • various fixes

Sunday, May 20, 2012

Cynthiune running on Macintosh

Cynthiune is working again on the Mac! I was able to compile a limited set of bundles on Mac again! This is good because it also confirms that some of the latest playlist changes work fine!
I am unable to compile the ID3 Tag bundle for some weird compiler errors I don't get on any GNUstep machine, so I won't prepare a binary release.

Friday, May 11, 2012

Zipper 1.4

I'm happy to announce that yesterday the GNUstep Application Project released version 1.4 of Zipper. It was adopted by GAP in accordance with the original author and the license changed to GPL v2.
Zipper is an archive tool which allow viewing of various formats and creation of tarball (with GWorkspace Service).
What's new in this 1.4 release
  • First version released by GAP
  • Interface redone in Gorm
  • Extensive fixes to BSD tar support
  • Bug fixes in the handling of archiver outputs, options and dates
  • Portability fixes and crash fixes
  • Updated infrastructure to current GNUstep make and runtime
  • Macintosh port (to prove portability)
Where to find it?
Many thanks to Sebastian Reitenbach who contacted the original Author, Dirk Olmes, to make the move and who with Philippe Roussel helped during tested and debugging sessions

Wednesday, May 02, 2012

Cynthiune on Windows

During the revamp we of GAP are giving to Cynthiune, I revived today also the Windows port, look at how it is running on Windows 7... and yes, it plays really (something I am yet unabel to achieve on NetBSD...)


Monday, April 23, 2012

PRICE 1.1.0

PRICE 1.1.0 is out!

It has been a long hiatus, I essentially skipped a release and made two in one. What's new?

Curves: this was a lot of work (and will need more). Smooth way to correct highlights and shadows with an S-curve. Source and resulting histograms are displayed.

Bilinear filtering: scaling will now look better!

Minor tweaks to the interface, like the filters that on cancel while previewing or on GNUstep the convolve matrix reacting on end editing.

Furthermore a plethora of bug fixes and portability enhancements.

Get it here from SourceForce, in form of sources for all platforms (GNUstep or Cocoa) or as Macintosh binary.

It has been 10 years I've been working on PRICE. This is kind of an anniversary release. It has been a long time and it has been fun and I hope it will continue! But it is an amazing long time. There have been ups and downs, and some melancholy creeps in! I think I will blog more about some past and future ideas about GNUstep.

Thursday, April 19, 2012

LaternaMagica 0.4


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.

Friday, April 06, 2012

FTP 0.3 Released


FTP 0.3 got finally a release! Many small fixes in the build system, better portability and updates.

You can see it in the screenshot running on Windows 7 with the native windows theme!

Thursday, February 16, 2012

Wednesday, November 02, 2011

DataBasin 0.4

0.4 is out!

Select Identify: Execute iteratively selects with given Ids or Unique Identifiers (no more Excel connector for this chore)

Select Http or Https as a preference for your connection (and it even works... http had a workaround due to sfdc stubborness which is now enabled only when necessary)

DataBasin at GAP

Friday, October 21, 2011

Neos 0.1 theme for GNUstep


Finally, the first official 0.1 release of the Neos theme. The theme contains now all the icons for the new special folders handled by GWorkspace, following thus the enhancements of the standard theme. You need both the latest GWorkspace and Base for all of them to appear properly.

Use the GNUstep filesystem layout (with the standard /usr/GNUstep or even / as a prefix) for maximum enjoyment. FHS has no real reason in a full GNUstep environment, in my opinion it should not be the default, it should just exist to ease people wanting to install one or two application in another environment.

Name your folders Documents, Images, Music, Downloads.

To have in idea of the look, check my past blog posts and you will see its evolution.

Thursday, October 06, 2011

The end of an Aera

Jobs died. Now He was not only the father of the Macintosh, the iPod, iPhone and the iPad. he was also the father of NeXT and thus our guide too, our uncle or step-father.
He surely left a trace in computing. Let us keep his spirit alive in GNUstep

Friday, September 30, 2011

GWorkspace 0.9.0


GWorkspace 0.9.0 is out.

Custom icons for special folders (System, Library, Images, Music, Documents, Downloads, Desktop). Themable.

Volume recognition ported or improved on NetBSD, FreeBSD, OpenBSD.

Many fixes in the build system, crash & security fixes.

Wednesday, September 28, 2011

OresmeKit: plotting two functions


OresmeKit now is capable of plotting two function each against the other in its Cartesian view.

I ported OresmeKit and its examples to the Mac without any major effort, as expected.

Thursday, September 08, 2011

Oresme, plotting for GNUstep

Parabola
I started creating OresmeKit, a plotting and charting framework for Objective-C, GNUstep (and Cocoa/Mac). I had the idea since quite some time, but finally started working on it. I know others had sketches on the subject too, but at the end one does need to start somewhere. The Kit will offer custom Views to be embedded inside your application to plot data. The goal is to have simple setup possible. Plotting is a complex art which can be tweaked quite a bit and which can lead to interesting mathematical computations, but let's start with something simple and easily usable, or the design will never go beyond the drawing board.
sinc(x)
The first component is a Cartesian plotting: two X and Y array need to be provided for abscissa and ordinata values. The view can be set to display different X/Y ranges, the Quadrant can be selected and a "centered" mode is available to automatically set the Origo in the center. The View live-resizes and the plot colors can be set. Currently there are no optimizations of any kind, but for simple graphs it works quite well, as the example application shows. Along with the Framework I develop and release also examples which serve the dual-purpose of testing the Kit and providing a starting point for other developers who want to use OresmeKit.

In the screenshots, the example application plotting a parabola  and the plot of the sinc(x) function.


Why OresmeKit? In honour of Nicolas Oresme the antique philosopher who thought about coordinates long before Cartesius. Because Cartesius was too predictable as a name and too tied to X-Y plotting, while OresmeKit shall support more chart types in the future. What's next? I plan on adding some more features to the Cartesian drawing view first. Then typical charting views: bars, lines, pies... At some point some optimization and computation will be available, since otherwise plotting of large datasets will be unbearably slow.

OresmeKit and its examples are available in GAP and are yet unreleased, check the CVS repository.

Friday, August 19, 2011

DataBasin 0.3

DataBasin 0.3 released!

New object inspector, bug fixes, improved character encoding...

DataBasin at GAP

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.

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.