Monday, September 28, 2015

Nasty DataBasin bug fixed

DataBasin's Select-Identify, an invaluable tool for many working with, showed erratic behaviour: extremely hard to reproduce even by sometimes re-running the same query on the same data set, the operation would just stop without any error in the console log, trapped exception or else.

After extensive debugging I found the problem in the queryMore method of the API implementation in DataBasinKit. If queryMore had to return just one record, it would malfunction.
Technically this happened because the size reported by in the queryMore is not the size of the objects of the queryMore, but of the original query.

The problem affects thus anything using queryMore: If you would select and had a batch size in download of 500, you would get a problem with 501, 1001, 1501 records and so on. 500 or 502 would just work fine. Combine this that the query size of the selectIdentify is dynamic and you get the idea on how difficult it was to reproduce.

Now it is fixed and the upcoming 0.9 version will have this fixed. All currently released DataBasin versions are affected by this bug.

Tuesday, April 07, 2015

IRC client TalkSoup 1.1 released

I am pleased to announce that after months of work a new release of GNUstep's IRC client, TalkSoup, is ready!
Being essentially abandoned the last released sources (alpha version)have been  imported some time ago in GAP with Andrew's consent. I also merged in some enhancements from the GIT repository code.

This new release was really started because the original code was not working at all anymore, it did not compile on certain platforms and elsewhere it crashed really often.

  • Very important Crash fixes due to Strings vs AttributedStrings
  • Native XCode port to Mac (both PPC and x86 do work), no GNUstep makefiles necessary
  • Memory leaks and fixes as recognized by clang's static analyzer
  • Tweaks to the user interface
  • Import and addition of the IGNORE plugin
  • Fixes to work on current GNUstep runtime and on MacOS
  • Preference fields send action on end editing, not enter
  • Install plugins locally inside Application resources with .bundle extension
  • Fixed myriads of crashes due to code using "id" instead of an explicit type and thus picking up the wrong methods
  • 64bit fixes with NSInteger/NSUInteger

Due to the change of plugin placement, you may need to delete your defaults.

Check more on it's GNUstep Appliction Project page, where you can download it or go to the savannah project page and learn how to check out the SVN sources.

Here the most classic and nostalgic setup: my iBook running Debian (without evil systemd) and the classic GNUstep theme and WindowMaker. Works fine!

Here instead on my other iBook, still running MacOS. Do you see some similarity? Although TalkSoup did run in the past on Mac, this is a native XCode build. Having it run on my ol' clamshell makes me feel cozy.

And something less common too, to prove the enhanced portability: GNU/Hurd on Debian, with the Sleek theme from GAP:

Friday, March 20, 2015

Extirpating systemd from Debian

I found out that all my debian machines switched to systemd without my consent, with just a standard apt-get ugrading.
I despise that decision.

I did not follow the latest discussion about it, I was left with the impression that it would have been installed only if needed, but evidently I was wrong.

Can you get back? Time to toss Debian? I hoped not, I know of other fellow developers who switched  distribution, but Debian is Debian.

Remove systemd and sysvinit (which is now a transitional package) and put back sysvinit-core back. I had the fear that I bricked my laptops, but it still works. For how long? I don't know.

I'm very very sad about this. If I think of GNU/Linux I think of Debian, it has been with me since 68k times, when potato was cool. Debian made a very bad decision.

Something newer than ol' sysvinit? Something modern, fast, capable of parallelism. Yes.
But something portable, light, secure, which is not a dependency hell, which does one thing. In other words, something in line with the Unix philosophy.

Not the enormous pile of rotting shit which is systemd. When I removed it, I freed almost 13Mbytes from my system. I am relieved, but it shows also how big that pile of crap is.

So, for now, Debian can stay with me, I hope it will be for a long while. Long enough that debian will revert or systemd will go away.

Wednesday, March 04, 2015

FTP 0.5 for GNUstep and Mac

I'm happy to announce a new release of FTP, the file transfer application of the GNUstep Application Project.

It is designed for GNUstep and completely native on the Mac too, with version 0.5 being available as a binary for both for PPC and Intel, as well, of course, as the usual source tarball for Unix.
(Please wait for the mirrors to propagate the files or grab the sources from SVN)

There are some new features as well as bug fixes:
  • Creation of local and remote directories
  • Command to refresh the current directory listing, local and remote
  • File renaming, local and remote
  • Drag&Drop for uploading a file from GWorkspace/Finder to remote file panel
  • better handling of local and remote write errors
  • better parsing of File Sizes returned by FTP servers
  • better handling of file adding to the views, so that less "refresh" is needed
  • Bug fixes with multiple selection uploads
  • Code cleanup for better portability (gcc/clang, old and new runtime, Cocoa)

Saturday, February 28, 2015

Graphos bitmap image display

Graphos is the vector-drawing application for GNUstep (and MacOS) of the GNUstep Application Project.

While it is centered on drawing bezier paths and derived shapes, I added support for copy&pasting images. While these images cannot be saved (the format doesn't support it yet) they still can be useful: since they are layered as any other object (and transparency alpha channel is honoured too), one can do interesting things as in this example:

We paste in the original image for LaternaMagica's icon. We start tracing it with simple shapes, here shown in black.

One can easily fit curves over the image, essentially doing a hand-trace. Very important is the usage of cusps and symmetric handles in bezier-paths, which will be the new feature of the upcoming Graphos release.

After a quick work, this is the first rough result:

I still need to fix some details: the display at zoom rates different than 100% doesn't work correctly with images.

Wednesday, February 25, 2015

GNUMail and TalkSoup getting back to MacOS

In the effort of peppin up and removing bitrot from TalkSoup, the GNUstep IRC client, I am doing  a native build of it on MacOS.
Apparently there was a port in the past, but it was not an Xcode build and it uses may tricks.
I have already ported the application the core and the main bundles: this pointed out many weak parts of the code and many more warnings than I was getting on GNUstep.

Soon I will be able to make a new, updated release!

The application works now much better! x86 and PPC... so I can enjoy a chat on my iBook:

Also GNUMail has progress: before running only on ppc and 10.4, now the application runs fine also on x86!
During this process I am also trying to modernize GNUMail's code gradually: the application was written for GNUstep, but the Macintosh port was port with a lot of conditional code, 10  and years ago GNUstep was less complete. A lot of these exception can now be removed. I am going to investigate each of them and remove as many of them.

Friday, January 09, 2015

DataBasin 0.8

DataBasin 0.8 is out!

After several months of development and testing, many news:
  • DataBasin is now divided in its DataBasinKit framework which is LGPL'd and the application itself
  • (CSV writing) Support of empty fields in empty semi-joined objects through query parsing
  • (CSV writing) Support for writing fields in exact order as in user query, trough query parsing
  • Select Identify supports LIMIT
  • Customizable CSV file quoting and separator
  • Support for COUNT and aggregate queries
  • Object Inspector supports selection of values in cells
The most important news is the DataBasinKit separation.
The most important feature instead is DataBasin ability to parse the SOQL query and thus rearrange the output fields in CSV files not as Salesforce returns them but as the user requested them. The same feature allows related objects (. notation) to be null and retain the correct columns in the CSV file.

Thursday, January 08, 2015

PRICE 1.3.0

Finally a new release of PRICE!

Get it here:

This version improve Mac support quite a bit, Apple made several changes since 10.6 which caused malfunctions and weird symptoms (and which fix occasional stuff on 10.4 too). Both PowerPC and x86 work fine!

Many bug fixes, memory issues, bug in filters fixed.

  • Curves can now be manipulated with handles
  • Edge/tracing ignores the alpha channel
  • Preview supports scaling
  • Support by on-load conversion of alpha-first images
  • Greyscale and Inversion support 16bit images, highly experimental! The current approach looks unpractical to extend to all filters since the code-path needs to be doubled though.
Custom Edge Tracer, PRICE on GNUstep

Curves Editing, PRICE on MacOS