An update on development of Springy
Dragan, posted May 14th 2010 at 11:00AM
After a bit more than two months of silence, it’s time to give an update on current development of Springy. In short, it’s going fine. It’s moving forward slowly (for the reasons I’ve already mentioned here), but steadily and in the direction I want it to go.
The effort made in the past two months can be roughly divided in two parts.
The first one was about implementing robust and reliable, but still fast automatic archive type recognition. As is already the case now, Springy doesn’t assume a particular archive type based on any file metadata or file name part (extension, Type/Creator code, extended attributes…), but really tries to determine whether any file thrown onto it is an archive or not (examining its certain portions), and if it is, which exact type of archive it is. This doesn’t sound like a very difficult task to accomplish, and it really isn’t, but I was playing a lot with different implementations in order to find the best compromise between reliability/robustness and speed. And I think I’ve found one. In the meanwhile, the list of supported archive types and compression methods has grown. Apart from what Springy already supports, the list also includes some new formats (SITX, AR, XAR, MTREE...) and new compression methods (LZMA, XZ, RPM, UU,...). Some more will come along the way. Even multiple stacked compressions are supported, for example a direct peek into GZIP compressed TAR archive which is than again compressed with BZIP2, etc. This combinations are not very common in reality, but they still can occur, especially uuencoded variants like TAR.GZ.UU, TAR.BZIP2.UU and similar.
The second part of effort was about choosing the right data structures to represent a hierarchical list of files (and all their relevant attributes) in an archive, hence to define the archive model. Again, I was playing with different implementations in order to find (in my opinion) the best one which will be used to build upon. The goal is to make archive processing operations and contents displaying in the UI fast and flexible, but with usage of as less code as possible. The chosen implementation differs to a great extent from the one used in the latest version of Springy (1.6.1), but some preliminary testing of UI display operations shows it’s already a bit faster. It also will take advantage of some Apple technologies which were not present or not mature enough when the current model was set (like Cocoa bindings, for example).
With these things implemented, I can move to first implementations which will include view layer and start working on application UI and relevant details. I must admit I find this part a bit less interesting to develop, but I hope foundations I’ve already made will make it smooth and pleasurable. I also plan to make a practical use of the things already implemented and, like I’ve already promised here, they will find their way into Spotlight Importer and QuickLook plug-ins. These developments will go in parallel with the main application, so don’t expect them available immediately, but they will be available very soon.
This is also a good opportunity to mention that there will be one more update of the current version of Springy. It will be possible, as the (missing) source code is not required. I will only update help system consisting of HTML files. Essentially, the Springy Help system is still the old one, which appeared first in version 1.5. I wasn’t really thinking of updating it, but quite often I get questions about enabling and using System Services provided by the Springy application running under Snow Leopard. In my opinion, Apple hasn’t done a good job highlighting this and apparently a lot of people have no idea about many services available but not enabled by default on their systems. The updated Springy Help system should tackle that problem and also provide descriptions of all new features available in version 1.6 and 1.6.1. I expect to release this update by the end of this summer, as it is not urgent.
wow. this sounds very interesting! If you need help with beta testing I would like to volunteer any time!
Hi Michael,
Once there are enough concrete things to test, I’ll probably come up with a beta-test programme of some kind.
Hi Milke !
I’m sorry for what happened to you in relation to theft. There are things in life that happen that just do not feel justified but after a while we realized that these things have come to strengthen us. I’m rooting for you to succeed in the new version of Springy is already great today but will be even better. I put myself at your disposal if you need a beta tester!
I hope you’ll consider releasing the new version for linux as well :)
Hi Miloš,
I’m afraid that is not likely to happen, as I don’t develop for Linux, nor do I have any plans to.
Hi Dragan.
Could you tell us some news about the development of Springy 2.0?
Basically I hope that you are looking forward for it.
Thnaks a lot.
Regards,
Andreas S. (Germany)
Andreas,
There wasn’t much of a progress in development of Springy 2.0 in the past few months, but I’m still very determined to release it one day.
The reasons for slow progress will be explained in the blog post I’m preparing. The post will appear on-line during this coming weekend (November 20 – 21).