22 Aug


Last night, I spent four hours chatting with Conor MacAoidh.

We’re both the authors of CMSes, and both need file managers.

I’m the original creator of KFM, but recently, I’ve been getting annoyed at it. The project has grown too large to be easily managed, and it’s slow to start up because of the amount of database configuration involved.

We discussed this, and came up with a plan, which coincides with what I wanted to do for KFM2, but is probably much better.

We are going to reboot the whole thing – write a complete new file manager from scratch. It will only use code from the original KFM2 if the code is demonstrably better than any alternative we come up with.

The project will be properly documented, will have 100% test coverage, and will be completely free.

It will come in a number of separate parts, but only one, the core, will be absolutely needed.

The core of the engine is the bit which handles the actual file management. It will be designed to load in only two or three files for the most part, and as fast as possible.

Communication with the core will be done by either including the core as part of your own CMS, or by interacting with it via RPC.

The RPC will be very important – you send a command such as /rpc.php?action=move&from=/my-files/test1.jpg&to=/images/me.jpg, and results will be returned as JSON.

We decided on the name SaorFM. While this may be slightly confusing for non-Irish-speakers (“Saor”, pronounced half-way between “sair” and “seer”, means “Free”), we feel this is not very important. After all, Ubuntu is a household name, and that’s Bantu.

The main site will be SaorFM.org, the blog will be here, and downloads, issue tracker and SVN can be found here.

We’re still deciding on how to go about things, so there are no downloads yet. The decision to do this was made literally last night.

Having a co-developer on board from the absolute start will encourage me to get my arse in gear on this – if Conor does something cool, I have to beat that. And vice-versa, hopefully!

I’m starting the project off at the moment by working on a description of what it’s all about, and then will start writing some starter tests. This will use “test-driven development”, so every single line of code in this project will be repeatedly tested throughout the development.

We’re planning a load of features, such as desktop-/system- integration for Linux, Mac and Windows, and having totally external UI systems. We even considered going mad and creating a bump-top-like UI for it.

It’s taken me almost a year since planning KFM2 and getting to this.

Part of the reason for the delay is that this is so far removed from the current KFM, that I really didn’t know how to bring KFM1 up to the specification I wanted to reach.

Starting from absolute scratch with a brand new name is the right thing to do, I think.

3 thoughts on “SaorFM

  1. Pingback: SaorFM, first few commits « Kae Verens

  2. I am using KFM 1.4.7. I like it a lot but I have some problems and cannot find the forum to ask them. I built an image management system in php which is considerably larger. (not better) I do have one feature that I see lacking in KFM and that is md5 checking and logging to prevent uploading of duplicate images. I’d like to see that in KFM. I also am having trouble understanding the databases that KFM uses. They seem quite simple but I wanted to import my gallery’s images to KFM. They are visible but I have no admin privileges over the images. I cannot delete any. I uploaded an image and can delete that one but I can’t find in the databases why this is so. I also see the thumbs as very small. I would like to be able to control the thumb’s size. The one other difference I see is that I can change the order that the thumbs are displayed on the page in my system. Please feel free to contact me.

  3. hi Robert – I’m afraid I stopped development on KFM at about the 1.4.7 mark myself.

    There /was/ a plan to rebuild it all, but it was a huge undertaking and I simply didn’t have the time. The SaorFM project that this blog article was about was meant to overtake KFM in functionality. Again – no time!

    The databases are very simple. I don’t have a schema drawn up, but there are only a few tables, so it should be easy to trace the relationships.

    Permissions in the system are very basic – it’s not a full role-based system.

    Feel free to enhance KFM all you want, and even to fork it if you feel like releasing your own version. I won’t be working on it anymore. If I get back into working on a file manager, it will be SaorFM.

Leave a Reply