Sunday, January 25, 2009

OrobienStep '09

The developers departed, the lights have been shut down: OrobienStep has ended. We had a nice developer meeting in Italy, near Bergamo. We started Friday evening and went on to Sunday afternoon. Staying at Hotel Quarti, we had a convenient meeting room equipped with LAN, WLAN, Beamer, flip-chart... Attendees were Fred, Nikolaus, Gerold and of course myself, Riccardo. Gregory was able to communicate through skype and webcamera.

Friday was more a warm-up day. Windows work was a bit halted since the new make from svn busted both my gnustep installations. That overcome, work started well.

We tackled several areas and poor Fred was a bit overbooked since a lot came down to gui and back.

  • SimpleWebKit made great strides. Existing bugs with redirect were squashed by Nikolaus, which allows now to visit sites like google or yahoo. Nikolaus worked on Form support too, which got to a reasonable state on Cocoa (sending the data is still buggy) but it still doesn't work on GNUstep
  • both SWKBrowser and Vespucci saw work on Bookmarks support
  • both SWKBrowser and Vespucci got document editor/viewer type problems fixed on GNUstep and can now correctly do new document and open files from disk
  • art backend can now display 16bit images (both on little and big endian machines)
  • sparse bugs were fixed which impeded Windows compilation
  • several bugs were discovered or analyzed (windows problems with display and keycodes, missing features which cause Bean not to save files correctly, focus problems with gnome

A lot of information was exchanged, ideas discussed... I think everything was quite interesting and if an actual implementation follows it will be great.

We demoed some cool stuff to each other too:

  • Nikolaus showed us the evolution on his Macintosh software for the bluetooth Paperium pen+block system
  • we played on the Letux 400 system, an extremely small MIPS based netbook
  • I demoed DataBasin

All in all, everything was packed and productive. Nice trips to Italian restaurants were in, but unfortunately due to the tight schedule and the cold weather, no sightseeing was possible.

Tuesday, January 20, 2009

DataBasin, or how to access salesforce.com from Objective-C


After several weeks of work, I can announce my first concrete success: the download of the contact list from the CRM to a CSV file.

On supported platforms, like Java or C#, salesforce.com offers libraries for a convenient access to their APIs (webservice interfaces). For Objective-C and GNUstep of course there is nothing of the kind. Thus I started writing a layer to access the webservices directly using SOAP calls. To be able to write those, I use GNUstep's WebServices framework, which I discovered was still quite rough and incomplete. Richard Frith-MacDonald though promptly debugged it and extended it. Until the first login was possible, a lot of debugging and investigation on the calls was necessary, I was patiently supported by my colleague Andrea Rosa.

Currently the donload means that the Login method completes correctly and returns a valid session, which is then reused to perform the query request and interpret its response. It is a demonstration that the whole concept can work

My intention is to develop DataBasin to be a free Open Source alternative to the DataLoader tool supplied by salesforce.com. Once I reach that goal, I alreayd have further ideas on how to extend it.

DataBasin is part of the GNUstep Application Project and will be released there once ready for prime time.

Tuesday, December 02, 2008

FTP 0.2 released


Finally, after months of delays and tweaks, FTP 0.2 is out! FTP is the FTP application in GAP for GNUstep and Macintosh.

Externally, few changes can be noticed: a new icon, the correct fixed pitch font in the log window and little more.

Internally, several changes happened though. Two are the main news.

First, the socket core was rewritten not to use file operations: on non-Unix systems sockets may not be files. This change allows, after some additional effort, to run FTP on windows. Thus FTP now runs natively on the Macintosh, runs on GNUstep on unix systems like BSD, Solaris or Linux and now on Windows too.

Second, the data connections are handled in a separate thread, which talks back to the main thread using DO (Distributed Objects). This allows the UI to remain responsive during list and download operations: this wasn't a real issue on the Macintosh, but on GNUstep windows wouldn't even redraw their contents during download, making the progress bar pretty useless. I still do not allow concurrent downloads, since the FTP protocol is not designed for that and it needs some workarounds.

Enjoy! Be sure to have the latest version of GNUstep base, since the DO system contains some fixes which are needed for FTP to work correctly.

Wednesday, October 22, 2008

The GNU Workspace

Thanks to the continuous improvement by the HURD team and thanks to a nice hacking evening with Matt Rice, quite some improvement was done on GNUstep with HURD. I was already able to have some rough results years ago, but then for a long time everything was unusably broken.

The only major thing to do was to set the global default NSPortIsMessagePort to NO.

In the screenshot we can see a GNU Workspace: done with GNUstep on GNU/Hurd.
GWorkspace is running, the upcoming FTP 0.2 can be seen too and it works well, meanign that distributed objects do work. Terminal.app works pretty fine as does the Rich text editor Ink. Not seen here, but ProjectCenter and Gorm do work too.

Cool is the front most application: Vespucci, the GAP browser which has at its core SimpleWebKit, runs too and loads an URL. This means that sockets, port, and rendering do work on Hurd well enough! Although still quite primitive, a browser on Hurd...

I have noticed some instabilities, with some applications starting up twice or closing and I suspect it is due to the applications not correctly registering with the daemons or with their ports dying.

Thursday, October 09, 2008

On Air!

I right finished a Radio talk with Gregory. Leo Laporte and Randal Schwartz interviewed us. It was a fun talk, many points got out and both the strengths of the project came out as well as the areas where we need help...

FlossWeekly #44 ! It got taped! Twit.TV FLOSS: watch for it on coming Friday.

Oh, as a side note, it means that GNUstep is still alive! Dead people don't usually speak.

Friday, September 19, 2008

Filing and refining

Few news here lately.
I have been busy looking and fixing several bugs inside FTP and GWorkspace, to make them ready for release. Today I was able to compile GWorkspace on Windows, a first after I updated the build system.
I collaborated also with Gregory and Fred to search and fix small bugs and issues withing base and gui, related to the applications mentioned above. So essentially, "polish" here and there and I would expect a release of the mentioned programs soon. Stay tuned.

Sunday, August 24, 2008

PRICE 0.8.3

Finally, after several months, PRICE 0.8.3 is out. Mainly it is a bug-fix and performance improvement release compared to 0.8.2. Chasing a memory leak which appeared only on GNUstep, Gregory found a piece of inefficient code which let to morememory usage and slower performance, but no solution to the hideous leak. Fred fixed it recently in GNUstep, this means that the PRICE code was good and that it was ready for release and that if you don't want to leak, you need the next gnustep-gui release.
Another issue is the License, the past GNUstep release was GPLv3 and this caused incompatibility to GPLv2; under Debian's maintainer suggestion I added an exception, but this is an unsatisfactory solution, thus I decided to relicense PRICE with GPLv2 and the "and later" option. Now GNUstep got relicensed back due to all the trouble; but my decision stands, also to avoid any more trouble in the future.

Monday, July 21, 2008

FTP news: Threads and Windows


After a long silent hiatus, now some good news!
Development proceeded, but I did not announce anything since the code was too buggy. Two were the areas of change since the ancient 0.1 release: threads and socket core.
I want FTP to have a worker thread during file transfers, else the user interface is unresponsive, which is barely acceptable on the Macintosh and unusable on GNUstep, where there wasn't even a progress refresh. My first attempts called the gui from the worker threads which gave problems on GNUstep. Now with DO, the controller separation is need and works very well.
I rewrote the core data transfer mechanism, which previously was in typical BSD style where sockets where used as standard files, which a more portable recv() approach. Together with some tweaks and macros this means that socket operations work on Windows!
FTP is thus now able to work on windows too, I attach a screenshot.

Sunday, July 13, 2008

Sunday Evening (AlemanniaStep)


Thus it came to an end, AlemanniaStep, that is. Thanks to a prepared schedule of topics, the short time was exploited well. We had an interesting demo of the development of various handheld devices by Nikolaus and we had some discussion about how to market ourselv better, how to improve the SoftwareIndex and our problems with packaging in distributions.

The rest was dedicated to hacking (as we see in the Picture, Fred fixing weird Font stuff that SWK triggered). Fred and I fixed the backend and Terminal bugs, Nikolaus hacked on SWK and I tested it on both Mac and GNUstep providing continuous feedback and it indeed improved.
Another session was dedicated to porting and checking of FlexiSheet, which we got finally compiling on the Mac, although with some compromises. Although not ready, it is foreseeable to adapt some pieces so it will run under GNUstep. Gerold found some issues with PCH on debian and made a good proposal in improving FTP after testing it.
These activities consumed quite some time, thus there was little time for windows. Also because one of the bugs didn't reproduce as expected.

I'll write about results in the next future, when they get a bit more finalized.

Friday, July 11, 2008

AlemanniaStep

Here we are in Freiburg, with Fred, at AlemanniaStep. Few people came, but those that came are good. Let's hope in a lot of new ideas, bug fixes and development.

Fred, Gerold, Nikolaus and Riccardo

Tuesday, April 08, 2008

New LapisPuzzle


LapisPuzzle 1.1.0 is out! The work of Banlu badly needed some updating since it was no longer usable. Matt Rice hinted me about what was wrong and I took the time to complete a better key event handling [NSEvent characters] instead of codes.
I also updated the Makefiles and now LapisPuzzle works on Windows, like the screenshot proves! Our Windows backend and port is actually in better shape than some people say.

Saturday, January 19, 2008

SystemPreferences 1.0.2


Finally SystemPreferences got released. Long due it contains a series of minor corrections since the past release of 2006: Updated makefiles against gnustep make 2 series, warning fixes and compilations on older platforms like gcc 2.95.

But maybe of more impact is the new Color Schemes module, written by me, which allows the setting of the color accent of GNUstep. It can select against ready made schemes and has a simple built-in editor. The schemes are compatible with backbones Preferences' application.

Included is for example the "GNUstep lighter" scheme which is visually very similar to the standard NeXT style colors but they are brighter: it is thought for people running their monitor with a different gamma than NeXT computers. It appears to be the majority since there were a lot of complaints about GNUstep being too dark!
If you run GNUstep applications on Windows I bet you will welcome this small new detail.

Monday, January 07, 2008

Browser and WebKit progress


Thanks to the continuous dedication of Nikolaus who worked and works on SimpleWebKit, a new, pure Objective-C WWW implementation compatible with Apple's WebKit implementation. It shows once again the real power of Objective-C and the Foundation and AppKit frameworks (and also shows what kind of unnecessary kludge Apple did).

Thanks to the efforts of Fred, Nikolaus himself, Gregory and me, SimpleWebKit and GNUstep AppKit evolved enough so that SWK can now display pages pretty decently, close to what the first screenshots from a mac showed.

Images, links, font size, rudimentary Header and list support is there. Horizontal rules. Bakcground and Font colors.

Also the DOM tree is pretty complete, so parsing is even more advanced than the display itself.

Thanks to the power of OpenStep Vespuccci already supports easily multi-window browsing. And scrolling inside the pages thanks to the scrolling of text views which Fred fixed.

The way to something usable is still long. No history, no tables, many small quirks even in basic 1.0 HTML when doing formatting.

But what counts is I think that an extremely big step was done. I was amazed when I saw everything working so smooth.

Monday, December 03, 2007

Watch your CPU


TimeMon, the CPU monitoring application popular on OpenStep runs now on NetBSD too. I added the necessary code to the GNUstep port, which is found inside the GAP project .
Porting involved using the correct sysctl calls (in true BSD philosophy, as opposed to the Linux mess which involves reading and parsing files!)

No, I didn't add myself to the list of the porters. Not yet.

Sunday, September 02, 2007

Live from AlpenStep '07


We are enjoying a nice time in Les Marecottes where we are holding our first AlpenStep meeting. On topic are hacking, discussions and presentations about the various projects. Bug fixing was great, but the highlight was the GSCake. Please check the attached photo with Gerold Rupprecht, patient organizer of the whole event, and the excellent instance of [GSCake initWithFun]. Subclasses of the GSCake object are allowed, but please send us the instance for compliance certification.

We had a presentation from the Etoile and their frameworks, simplewebkit bug smashing. Extremely geek was the new OpenMoko Neo which Nikolaus brought.

Members present were the busy organizer Gerold, gui maintainer Fred, etoile developers Quentin and Nicolas. GAP was represented by me. Lars was present too, GĂĽrkan felt unwell unfortunately and left earlier.

Monday, July 02, 2007

Spin, spider, spin

Hard work in the past month of a couple of programmers brought a rendering engine and a browser for GNUstep a step closer! Currently most of the limitations SimpleWebKit had compared to myStep are solved! Quite a bit of debugging went into Vespucci too as it is being refactored in a document-based application capable of displaying multiple pages at the same time. Equally merit has to go to Richard who patiently helped to improve GNUstep's core to handle URLs and the HTTP streams. Thus the text you seen in the screenshot is actually downloaded from the Web, not just a mere static string. Although several problems still remain, you may notice that there is lready some font rendering and that the Horizontal Rule is rendered correctly!

The keenest of you may have noticed another detail! The whole application is running on Microsoft Windows! The build process needs to be manually tweaked, but a working executable is possible. It works worse than on Unix though: images represent a problem.

I was really eager to display our progress, but held it back a bit until some details were solved.

Friday, March 16, 2007

The spinning spider


Some interesting activities cook inside GNUstep and GAP projects! Dr. Schaller is working actively in a WebKit implementation for myStep. Now I and Peter Cooper are helping him to bring the Framework into GNUstep, it already compiles! Although a lot needs to be done and SimpleWebKit may never reach the completeness of Apple's implementation I still think it is an interesting task and a total objetive-c approach should not only prove the power of the language but also give us advantages in the future regarding efficiency and customization.
As soon as the framework compiled I started the development of Vespucci, the program that will be GAP's Browser. The screenshot shows the debug output of the Current WebKit, interpreted really from a simple HTML string.
Maybe after the failure of the original port attempt of the WebKit by means of wrappers, this is the first screenshot of a GNUstep Browser? Stay tuned!

Tuesday, February 27, 2007

The double-face of GNUstep

Yesterday I had a long call with Gregory and we smoothed out many details about what GNUstep is, where it is and where it should go.

I noticed really a lot of confusion about what GNUstep is, everybody seems to have his own ideas, some of them are indeed correct but just a part of the whole pictures, others are just plain wrong. This ambiguity doesn't help us as a project, it confuses the prospective end-users, it confuses potential developers and also stirs up quarrels and useless polemics inside the group.

Thus I may sum up what I consider GNUstep is: essentially I see a double use of GNUstep: the base for an environment, a workspace inspired by OPENSTEP and a cross-platform, portable framework that enables developer the deployment of their application on Unix (Linux, BSD, Solaris...), MacOS X and Windows. I consider these goals absolutely not conflicting and they should be both taken care of; furthermore one reinforces the other.

As an environment GNUstep needs to offer a working framework which is solid and well working on most of the major Unix systems. Features that some people could find useful refer mostly to the look and feel, a comprehensive set of applications and utilities (either provided by the GNUstep project, or, more aptly, by affiliated projects like GAP, Backbone or Etoilé) and their integration.
People who see in GNUstep an OS should find what is needed by this environment and supply the remaining by themselves.

A framework that enables portability needs to work on more operating systems and needs to be even more flexible: it needs to be able to blend in to the Look and Feel of the host OS (as an option of course) but it also needs good ways to deploy the application; for example if the installation of more GNUstep-based applications is intended, the installation of the framework plus the different binaries should be an option, while if GNUstep is used just for one single application, everything should be self-contained and GNUstep itself should be unnoticed by the end-user.
If a Desktop Application of a certain project can be considered useful standalone, it shall prove interesting to support it both as part of the Workspace as well as a single application ported, say, to Windows or Mac.

I feel positive about the GNUstep project offering a set of applications, like it does now, which could be considered as a reference implementation. What should be taken in account by the developers is never ever to take the existence of these applications as granted: this would make a real portable core impossible. These application should be considered an option and other projects shall be able to replace one or any of them. Still, their sheer existence should prove the point that GNUstep is more than a mere toolkit.
At the current state of things, there should be no official appointed "Desktop Project" and the end-user shall be granted the freedom of choice

Friday, September 22, 2006

Your distant desktop



Need to access your remode desktop on windows? rdesktop is your tool. Since it is tedious to remember every time all the command line options to specify the server and username, a small interface is a nifty think. Xfce and Debian isntalled me a working one, but I do not like the look of it, it has several bugs and quirks.... and it is GTK2.

So, let's objective-C, Gorm and in GNUstep and a small working app popped out. It is usable already and I wills oon release a 0.1 release, in GAP, I hope other people will like it too. The CVS is already public.

Of course, several features are needed to make it top-notch, but they will follow, stay tuned.

Thursday, May 04, 2006

more native xlib awt stuff


Woah! I hacked in kaffe awt up to deep in the night. The rendering of strings inside textfields was broken since a long time! The cursor and the typing was wrong, once enter was hit it worked.
I didn't have big hopes to fix this and I just tried to have a quick look. I discovered that the java part considered the fonts fixed width even if it wasn't and thus returned the wrong charWidth. Without much understanding and even lesser hope I messed inside the native methods!

I was able to understand the faulty logic and implement a new one by accessing the XFontSets and font structures. I queried my first X Atoms!


Although my implementation now is not very robust I think it is definitively correct and now the character width is computed correctly.

The lack of robustness is due that I take the first font struct of a fontset, from a XOC.


in the compulsory screenshot our AWT is running happily on Darwin X11 on MacosX 10.2.8... you may notice how nice the text fields and the file dialogs are!