Friday, March 16, 2018

Graphos printing fix

Important Graphos fix.

Graphos had issues when printing and the view was not 100%: to speed up drawRect, all objects were represented scaled, so that they had not to be scaled each time, which especially for Bezier Paths is expensive with all the associated handles.

Thie issue is finally fixed by either caching both original and zoomed values for each object and conditionally drawing them depending on the drawingContext.

Here the proof with GSPdf showing the generated PDF!



Soon a new release then!

Wednesday, August 23, 2017

LaternaMagica 0.5

LaternaMagica is the image viewing and exporting tool of the GNUstep Application Project.
Quickly create a list of images and export it by converting the file type and resizing the images to a uniform size, to prepare your next slide show, a folder of thumbnails or the folder to give your local printer and print out pictures.

The new 0.5 version comes with a lot of fixes and improvements.
  • Improved drag&drop support
  • Improved recursion of folders, including drag&drop of folders
  • Rotation has key shortcuts
  • Image rotation is remembered for export
  • Code cleanup, optimization and minor bug fixes 
  • Exporting (including Scaling and Rotation) have many fixes:
    • Better support of Alpha images
    • Resolution and Size are better interpreted and preserved. 
    • better scaling algorithm imported from PRICE



Monday, August 21, 2017

GNUMail and Pantomime 1.2.3


New releases which combine many improvements collected in the past three years!

GNUMail and Pantomime found a home in the past years in the "GNUstep non-FSF" project on GNA. However, GNA shut down and the project was moved to https://savannah.nongnu.org/projects/gnustep-nonfsf. This move was time consuming, left the repository unavailable for weeks, but we were able to recover the repository with full history. The code is on savannah.nongnu.org on SVN.

During the move, Copyrights, Headers and Licenses were cleaned up. The X-Face code had no clear license and was removed. It is quite an obsolete feature anyway, I haven't seen it used since long time.

The MacOS version works quite well and we provide now both a PPC and an Intel binary. The PowerPC version works well on vintage Macs so you can use GNUMail on your trusty iBook or iMac!

GNUMail
  • Thanks to improved Pantomime, more names and addresses appear correct and not quoted
  • bug fixes in quoting and re-flow, which could lead to mails have missing text portions
  • Allow creation of mail filters from To and Cc addresses
  • Continued to reduce GNUstep specific code: EditWindow, Console, AboutPanel;
  • Improved mail header view when resizing windows
  • Version check fixed and re-instantiated to work against nongnu.org
  • Fixed display of in-line attachment icons on GS
  • code clean-up, memory leak fixes, improved portability (FreeBSD, OpenBSD, NetBSD)

Pantomime
  • improved header parsing, recognizes better address formats, on the TODO list since many years
  • bug fixes in header and subject parsing which could lead to some mails not to load fully
  • speed improvements
  • code portability improvements
  • misc fixes

Wednesday, August 09, 2017

NetBSD source build and crosscompile notes

An update on my notes to compile NetBSD kernels and userland.


Build / update the tools:

-U : for unprivilged building
-u : to update
-m : to specify architecture

./build.sh -U -u tools

To cross compile, this is would enough:
./build.sh -U -m i386 -u tools
However, since I do want to build on the same computer and the build script would be confused, we add -T /usr/tools-${HOST_ARCH}-${TARGET_ARCH} and also separate the object dir with -O!

./build.sh -U -m i386 -u -O /usr/obj-amd64-i386 -T /usr/tools-amd64-i386 tools


Then we build the kernel

./build.sh -U kernel=CONFNAME

or for cross compilation:
./build.sh -U -O /usr/obj-amd64-i386 -T /usr/tools-amd64-i386 -m i386 -u kernel=GENERIC

The modules:
./build.sh -U -u modules installmodules=/

Now to build userland, including X11. I did not attempt to cross-build userland yet.

./build.sh -U -x -u distribution

./build.sh -U -x -u distribution install=/

Sunday, April 23, 2017

GNUstep Graphos 0.6

After (too) many years, finally a new release of Graphos.

This release has two new important features: cusps and images.

Splines support now cusps, that is left and right asymmetrical tangents to a control point.

A new image item object exists. This allows you to paste a preferably small image and move it around like it were a box, resizing it at will.
This is quite useful to be able to manually overlay lines and trace images.
Since the image is directly encoded in the file and not saved as a separate image it is not very efficient and using large images is not advisable. In the future a new bundle file format needs to be implemented.



The screenshot shows an example of tracing the GNUstep logo imported as a bitmap, using the cusp point in the upper right.

Many bug fixes and improvements in these past years, some major:
  •  Text improvements (editor display, reading/&saving, Mac support)
  •  Circles/Ovals save/read fix
  •  Properties inspector fixes
  •  Portability fixes
To support cusps, the file format changed again, reading of old formats is still supported.

Wednesday, December 21, 2016

GNUstep PDFKit update to xpdf 3.04

After many years, I was finally able to update PDFKit, GNUstep's PDF Framework which is based on xpdf. The update to 3.03 and 3.04 required updates to the internal APIs.

This brings a lot of  improvements (and also all the security fixes) of the newer xpdf.

Important new fixes are flowing in too, compared to the last release.

CropSize instead of MediaSize is now used to determine the NSSize of the image, thus fixing a strange scale issue that affected certain PDFs (The view was allocated for the MediaSize, but the rendering was done on the CropSize).

Furthermore, several static instances of classes were removed, so that multiple PDF documents can be opened in an application, this was a long undiscovered issue!

Workspace Content Inspector and ViewPDF

To all steppers who use PDFKit, please test... and report issues, especially new ones, a release is due soon! No regression known at the moment.

Saturday, June 25, 2016

DataBasin - object inspector and updates

First, the underlying DataBasinKit framework got an important update.
[DBSoap update] now supports setting fields to null. That was quite a major detail missing: you could reset to blank even string fields.
This required me to fiddle a bit to generate the fieldsToNull list. Every field passed with an empty string value is considered to null.

<update xmlns="...">
<sobject xsi:type="sf:Account">
<id>....</id>
<fieldsToNull>AccountNumber</fieldsToNull>
<fieldsToNull>OtherCity</fieldsToNull>
<Name>New Name</Name>
</sobject>
</update>


The Object Inspector, the handy tool which allows you to inspect all field values of a record and knowing immediately their developer name given the Object Salesforce Id, how got update powers!



As the Screenshot (here on MacOS) shows, changed values show in a different color (non-updatable fields show in italics and their Cell is not editable). The total number of fields to be changed is summed up in the status field. Only fields marked as changed are updated when the Update button is pressed, other are left as-is and not overwritten for safety.

Further work has been done in the Inspector and full search filtering is now available!
Just entering a a sting will filter out the relevant rows. Both the Field Name or Developer Name are matched, as well as the content! It is thus super-easy to look for all fields (also fields not at layout) which have a certain Value. All fields false? easy as in the screenshot:



Tuesday, May 17, 2016

DataBasin and DataBasinKit 0.9 released

After more than a year of work, finally a new release of DataBasin and its associated framework. This version features a Framework that can be used in threads and the application itself is capable of having concurrent connection classes to SalesForce.com.

On Windows

On OpenBSD


Countless bug fixes (thanks to the bug reports of my colleagues Diego, Moustapha, Matteo + Matteo).

Major new features are:
  • threadable DataBasinKit framework
  • concurrent, interruptible operations (e.g. select vs. update)
  • handle multiple errors as a result of update
  • filter new lines when writing CSVs
  • countless bugfixes, especially in select-identify corner cases

DataBasinKit allows you native connection to SalesForce.com, allowing your application to integrate SOQL queries (SELECT, UPDATE similar operations), be it on Mac (Cocoa) or NetBSD, FreeBSD, OpenBSD, Linux or Solaris as well as Windows (MinGW).
DataBasin itself allows you to perform standard operations in a quick and agile interface: Extract accounts on Linux without the need of Java. Use the unique select-identify feature.

I am proud that Free Software can connect from a Free Software Operating System to a proprietary system and bridge the two worlds, enabling to do administrative work without being constrained to Java on Windows (read: DataLoader). Thanks to the many developers who continue supporting me in the development and keep these fine Operating Systems and tools alive.

Wednesday, March 23, 2016

ProjectCenter debugger changes (now even on windows!)

Behold ProjectCenter running on Windows with the debugger module open and GDB running in it.
 

GNUstep's ProjectCenter debugger module - something which was initiated by Greg and has always been quite experimental and unfinished - was based on running GDB via a virtual terminal by using openpty(). Sadly openpty() is not very portable and also.
I restructuured the debugger module to have a separation between the view handling the visualization and a delegate which handles the actual execution of the debugger and sending commands and receiving output.
Instead of using a terminal I implemented a std-in and std-out mechanism.
While some interactive editing properties get lost when using GDB this way (e.g. ability to answer y/n questions) it is the right way to the a machine interface. For example a stacktrace doesn't get paged but printed out fully. Different data sources now get nicely colored too!

And last but not least, it runs on Windows.

Monday, September 28, 2015

Nasty DataBasin bug fixed

DataBasin's Select-Identify, an invaluable tool for many working with salesforce.com, 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 Salesforce.com 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 GNU.org 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.




Wednesday, January 14, 2015

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: https://sourceforge.net/projects/price/files/1.3.0/

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





Wednesday, December 31, 2014

GWorkspace 0.9.3

New Year's Eve Edition: GWorkspace 0.9.3 released!

GNUstep's workspace got plenty of attention, fixes and improvements, here a summary:


  • viewer preferences and status are now stored reliably (you may need to delete your old defaults)
  • file operation now work concurrently as they should
  • file operations can be paused/resumed more easily and reliably
    - many memory leaks related to file operations fixed! Less bloating during usage
    - fixes for clang/libobjc2 runtime
    - improved host-name setting (previously, on some machines localhost was used)
    - Recycler may unmount volumes now
    - Fixes and performance increases with browser drawing
    - improvements in File operations errors (permissions, etc)
    - fixes when renaming files without permissions
    - further 64bit and portability fixes


NOTE: you may need to delete your current defaults (type "defaults delete GWorkspace") for the new viewer status saving to work correctly

Monday, October 27, 2014

New GNUMail release 1.2.2

After Pantomime a GNUMail release had of course to follow.
The same words as for Pantomime apply.


Due to the inactivity of CollaborationWorld and Ludovic, we(*) decided to import the sources in gnustep-nonfsf at gna.org.

(*)German, Sebastian and myself with the contributions of others

The download is at:
http://download.gna.org/gnustep-nonfsf/GNUMail-1.2.2.tar.gz

This release contains updates and some important, long-needed fixes:
* critical fixes on GNUstep which finally make SMTP usable again (including security detection in preferences)
* use the corresponding Pantomime to finally run on NetBSD
* Many 64bit fixes
* port to MacOS re-instantiated (10.3/10.4 tested)
* Memory problem fixes
* General code cleanup to compile on modern compilers (gcc4 and clang) and on modern obj-c runtimes
* works slightly better on small displays
* crash fixes

There is still quite some stuff to do, but at least GNUMail can be compiled, run and used again and I hope other will enjoy it!


GNUMail on MacOS


GNUMail on GNUstep