Sam Moffatt

Home arrow Blogs arrow Stepping Back
Stepping Back
Written by Sam Moffatt   
Monday, 12 December 2005
Most of the Joomla! community hasn't heard me, or seen what I've been doing, but a few people have seen my name around the place, attached to projects here and there (and most notably the 1.0.4 release). So I thought I'd look and see what I've actually done recently.

Well the beginning was in the Mambo days when I was accepted into the Summer of Code (SoC). Due to Miro's meddling, we all moved to Joomla! My work there was primarily with the Update System (providing a server and client) and basically prototyping how that could work (using XML-RPC). While I was doing that I added a few extra features to the installation system (such as using a URL to install elements).

After the Summer of Code ended, I was offered a position on the team as well as the three other guys who had been actively working on their projects and had visited IRC. I'm not sure about the other few guys, I didn't see them much. One guy declined the offered and the other two, Mateusz and Ric, accepted the offer.

 Since then I've been working on a few things within Joomla! The first was porting my library system across in its basic form. The library, which can be seen in the 1.1 SVN, attempts to seriously reorganize the way our includes directory is structured. After developing the concept Jinx or Johan sat down and refined the system and added a few new features and called it "jimport". Now that we have most of the 3rd Party Libraries and our own libraries in the structure, it makes life so much easier. Say you wish to extend the Installers, thats simple, just type "jimport('joomla.installers.installer")" and it includes the base installer class. Perhaps you want to install a component, you can just grab the component installer (requires the base installer first though!) by doing "jimport('joomla.installers.component')". So thats libraries, hopefully revolutionising the way you include files (its certainly changed our management procedures).

My next item was some installation system changes to add support for my web installer system. This resulted in a unified installer system which you will again see in 1.1; speaking of which, I have a whole heap of tests I need to do there...moving along!

 My current work is on JRegistry. JRegistry was a concept I originally developed around June 2004 with the then Mambo 4.6 CVS where I integrated a configuration system that supported defaults and user specific options. I was hoping to get to work on it as part of my SoC project, but I didn't get the time to complete it (and a few other things which you can see on the SoC wiki). I've revised it now and I am happy to say that its in the 1.1 SVN! I'll be writing some documentation about it for everyone, plus a few standards and guidelines. JRegistry is designed to be extensible for advanced developers, but easy to use for the more 'hobby' developers.

 JRegistry is comprised of three parts. The main interface, the storage engine (I/O and object manipulation) and the storage format. The main interface just runs calls straight through to the storage engine (minimal changes) which has the duty of managing the I/O and holding the Storage Format object. A Storage Format's job is simple: convert strings to objects and then convert objects to strings. The storage engine handles caching (if any) and all the 'basic' I/O operations. It also sets and returns the relevant configuration values.

Finally my most prevalent work has been with building the 1.0.4 package for distribution. Some people have noted that the name 'pasamio' is on the file listing of the packages. I built them on my Debian Sarge server using a few scripts which I am now using to test build the 1.0.5 packages. It is designed at streamlining this process even more than the complicated procedure at the moment.

So thats a brief run down of what I've been doing. Stay tuned for more information about JRegistry! 

 
< Prev   Next >
© 2017 Pasamio.Id.Au - Sam Moffatt
Joomla! is Free Software released under the GNU/GPL License.