XOOPSDEM Brussels 2005 - Rowd's Report
Category : XOOPS
Published by rowdie on 02-Mar-2005 15:45
XOOPSDEM 2005 was fantastic! It was really great to be able to put names to faces, and to see that people's enthusiasm for XOOPS isn't just an online phenomenom.

When I finally returned home Monday night I found that I'd made pages and pages of notes of the meeting - well, indecipherable scribble really. I've tried to piece it all together here, for the benefit of those poor souls who couldn't make it to Brussels

[...]

Remember, this is taken from scribbled notes made 3 days ago... don't take anything in this report as absolute truth, it's really just my impressions. Wait till the presenters publish their own notes to get the full story

I've posted this report over several pages (hope it works), don't forget to look at the other pages too...

Organising the XOOPS Project and Community (Herko)
Very interesting, I learned a lot about xoops.org - the organisation, as opposed to XOOPS - the product.

Herko had an excellent slide presentation, and all the information we received can be read from these slides (hurry up and publish them Herko )

Some of the highlights of his talk for me were:
1. XOOPS Foundation is a legal entity, with a board of directors.
2. XOOPS.org is a registered not for profit organization.
3. Mod developers are protected from legal challenges by the XOOPS Foundation. This relies on the co-operation of developers. If the developer has a project at dev.xoops.org and uses CVS consistently and correctly, xoops.org has a record of exactly when changes were made, why and by whom. This can be very important if a situation arises where a developer is accused of stealing code, for example.
[pagebreak]
The New Frontier: Next generation XOOPS (Skalpa)
A very tired Skalpa gave an excellent presentation on the next generation of XOOPS, which has been built from scratch and is simply awesome.

When Skalpa started designing this new system, which as yet has no version number, he went right back to basics and looked at XOOPS in the context of its environment. This meant that XOOPS:
1. has to be HTTP aware
2. has to become fully standards compliant, not just with existing commonly supported standards, but also with standards that are presently only proposals
3. must become more integrated with its environment, and make use of the resources of the environment when available. i.e. if native pdf file generation is available on a server, then use it. If not, then provide an alternative. Don't ignore native solutions because they might not be available on all systems, just provide an alternative as a fallback.
4. must have backward compatibility for XOOPS 2.0.x modules and themes.

The next XOOPS has a component-based architecture and will provide services to modules, something like the way an OS works. For example, the authentication layer can be changed to your prefered type of authentication, by simply configuring which component to use when XOOPS authenticates a user.

Implementation example...
$inst = $xoops->create('xoops.db');

Which database to use depends on the site configuration - you don't need to know exactly which class it uses, you are only interested in creating a database object.

The structure of XOOPS will be 3 tier:
- OS layer
- Application layer
- Portal System

OS layer
There are two modes - a "Developer" mode and "Production" mode. In developer mode all config settings and theme/templates are read on each page request, so it will always load your latest changes. This mode is reactive, which makes developing your site easier, but is slow. Production mode only reads the config settings it needs, and from a compiled version (something like the Smarty compile solution), therefore doesn't always need database queries. This makes it very fast, though less reactive to changes. A site in production rarely needs config changes, which is the reasoning behind the production mode.

The new XOOPS architecture has more modular code, which basically means that there are a limitless amount of features/components that could be made available. The core team have yet to decide where to stop.

A few components that will definitely be included are:
XoopsAuth
- LDAP is the default
- Project Liberty will also be an option. This is an open source solution for a syndicated site i.e. log in on one site means the person will be automatically authenticated for all sites - something like a M$ passport idea.

XoopsDB
- MySQLi (released with PHP5)
- MySQL, the default database used
- postgre

Application layer
Basically everything related to CMS (this XOOPS will be a true CMS!) - utility classes, controllers, creating objects, managing tables in DB...

Stores Manager
Able to determine where the content is taken from. It can be stored on different servers, have different prefixes, the users could also be stored in a different location... all this can be organised here and delivered to one site, or shared between subsites. It could also be useful for presenting content in several languages.

There is also a versioning layer. This means content has a temporal dimension, so you are able to follow the evolution of a document.

Output
The separation that currently exists between themes and templates is gone! A theme now becomes a generic resources container, so any resources (images, flash file, module templates, etc) used for theme-related output should be included in the theme folder.

The theme system uses the principle of inheritance.

If you want to change one template of one module, you only need to put that new template in a sub-directory of your theme for it to be used. Not more cloning template sets, and generating files for all templates just to make one small change.
e.g.
xoops-root/theme/example_theme/
xoops-root/theme/example_theme/modules/module_index.html

This will use the main templates for everything, except your new module_index.html will be used instead of the one that came with the module.

In developer mode the theme directory is checked each time a page loads to see if it contains any sub-directories with new templates/resources. Production mode works with a generated listing of the resources, which is much less resource-intensive and therefore quicker.

XOOPS will come with a html theme as default. There will also be an xhtml theme (still to be made). But the future of the web, and therefore also XOOPS, is with XML (and XSL). So although simply using xhtml is possible, you can also create templates which could include something like this:
<table xoops:sortable="true">
  <
tr>
    <
td xoops:sort_type="state">content</td>
  </
tr>
</
table>


The transformation logic of XML will be contained in an XSL file.
[pagebreak]
XOOPS 2.0.x modules
There will be a component built which emulates the functions of XOOPS 2.0.x. This will allow 2.0.x modules to continue working, though they will not be able to access new features of this new version of XOOPS.

A separate aim of the core developers is to make the transition from a 2.0.x module to the next version as easy as possible. The hope is that it will simply be a matter of search and replacing old function names with new ones, and maybe removing an include line, admin side. This has yet to be finalized though.

Documentation
Every single line of the XOOPS core code will be documented. "Open Source" in Skalpa's view is not just opening the source files, but also documenting it all.

Roadmaps
Roadmaps are being prepared as we read

The first releases of this next generation XOOPS will be developer releases, for testing purposes of core features. It will not include the XOOPS 2.0.x emulator (for 2.0.x modules), which will be released once the core features are stabilized. Developer releases should begin happening quite soon

We ran out of time so we didn't hear anything about the third tier, "Portal System". All I had in my notes was that it includes a block management layer, and windows management (for popups/opening new windows and the like, I think).
[pagebreak]
The French Connection (Solo71 + support from other xoopsfr members)
The French XOOPs team gave a great presentation outlining the history of French XOOPS and the merger of all their support sites to one location. They also raised some very important points about XOOPS core releases/news announcements and the local support sites.

Current Situation
An announcement is made on XOOPS.org of a new core release, french community members see it and go to their local support site for questions and help. The team there haven't had any time to explore it for themselves, so their support is at first just guesses. An unsatisfactory situation for the users, but also for the support team who are suddenly innundated with posts requiring answers, while at the same time trying to test the release and search the xoops.org forums for answers.

2 possible solutions discussed
1. Make the current release protocal for modules also apply to core releases. This will mean that a release is announced at dev.xoops.org one week before it becomes a public release at xoops.org. This gives developers, but also local support teams, time to become acquainted with the module/core release before it is presented to the general public.
2. Make official core news available to local support teams before the general public. This would also give local support teams time to prepare their own news announcement, which could be posted simultaneously with xoops.org.
[pagebreak]

Freeform Solutions (jegelstaff)
jengelstaff gave a very interesting talk about how his company uses XOOPS, and about his module, Formulize. I didn't take notes, but I believe he will be posting some notes about his talk himself.

Conclusion
The day was a great success! There was a lot of information exchanged, and meeting other XOOPsers was terrific Brussels was a good location for us, as most of us were either French- or Dutch/Flemish-native speakers, with just a few who have English as their first language.

I dropped in at FOSDEM 2005 on Sunday, and I'm glad the XOOPS day wasn't with them. The meeting would have been completely different, more a marketing pitch to draw new users, rather than a fun and informative day with XOOPS converts.

I'm very pleased I went to XOOPSDEM, I had a great time, met some very interesting people and learned a lot. Including the fact that the XOOPS core members are a very professional, competent and likeable group of people, and their vision for the future of XOOPS is very focused. With them in control, XOOPS has a very bright future indeed!

Now I'll have to start saving so I can attend the next XOOPS meeting....

Rowd

p.s. Herko, this is the condensed version of my report - asking me to write a report of only a few lines sounded good, but had little chance of success....