Saturday, January 19, 2008

The 10 reasons why you should touch XOOPS Cube

3S Concept
XOOPS Cube has the "3S" concept --- Simple, Secure and Scalable. Cube is very simple core, because Cube is a platform to enjoy using/creating CMS environment. In addition, Cube has some policies and features to keep security. One of policies is TYPE-SAFE emulator. Another one is Action-Form that detects always valid values like peripheral driver. Lastly, Cube is really scalable. Cube has the special architecture to realize "construction platform".

You may enjoy Cube like the MOD culture. In Cube, most things are handled as re-usable materials. Managers, ADD-ONs (modules), Preloads and Themes are materials for end-users. Delegates, Virtual Services and Tasks of the Task System(*) are materials for programers. You may collect materials to realize your site or your program. Preload is the most minimum ADD-ONs for minimum customizing to tweak your site. By that, you don't need to change source code directly in the most case. After that you may release your materials. Cube is really flexible and release you from fights with a CMS spec.

Your Cube's spec is decided by you. You can assemble your Cube by writing INI file. Cube consists of the plural managers. Each manager does each special mission. You decide what managers you use, install ADD-ONs (modules) and add preload files for light customizing. In addition, some distribution packages have been released. Those packages already have good INI file, best modules and preload files so that you can construct your site soon. You may begin your site with your configuration or begin from the package as the base point.

Most objects are exchangable. It's possible to change CMS layer (BASE), not only managers. By using Legacy BASE, your Cube emulates XOOPS2 JP and runs many modules of XOOPS2 JP. You can change BASE or write BASE from a scratch, and release those. Anyone can do anything anytime anywhere, except changing the core that realizes "exchangable". Not only BASEs, you can exchange many parts. Even if you change source code directly to kill some spec, it arises like zombie when you do update. Exchangability is a good solution for scalability, flexiblity and freedom.

Alien Mechanisms
To complete special missions of XOOPS Cube, we took traditional mechanisms from another world different from the web, not unique mechanisms designed by us. In other words, those alien mechanisms --- Preload, Delegate, Task System(*), Generic Render-Sequence(*) and so on --- are trusty enough. These mechanism came from .NET, video game programing and scene graph to implement ideal spec of XOOPS Cube. If you know essences of them, it's easy to use those. Even if you don't know it, you may enjoy learning those.

Virtual Service(*)
XOOPS Cube provides the server/client model for site communication and module communication. The virtual service abstracts the actual of program, so the client can connect with both of other module and other site. XOOPS Cube can connect with the service of the existing site you have and can provide the service to other site, so you may migrate to XOOPS Cube or from XOOPS Cube, easily.

Multi Render-System
XOOPS Cube doesn't have the fixed spec of themes and doesn't force the format that you don't agree. Generic Render-Sequence(*) tries to render final output with switching render-system. By this spec, you may keep your favorite site design or your favorite spec of the site theme. In the case which you develop your render-system for your site, you may release the render-system to share.

XOOPS Cube is simple and recommends to use tool for automatic complex work. Even if XOOPS Cube has many features, tools can help users and developers. There is a certain spec called Manifesto(*). Manifesto is a special document for tools that work about XOOPS Cube automatically. Our world has already Cubson. Cubson is a code generator for Legacy BASE and works on extoolsD.dll that makes it possible to develop a code generator easily.

Perfect Freedom
XOOPS Cube is an open source project and developed by citizen. It has free license and hates the project governance to control other citizens. Our world is Anarchy and Freedom. Communities in each countries are not controled by the project. You can choose freely the community you like. And, XOOPS Cube is licensed under new BSD license that is one of the most lax licenses. So you can use XOOPS Cube freely with a few easy promises of the new BSD license.

(Note that Legacy BASE is licensed under GPL)

Various Developers
The biggest impact is that there are many kinds of contributors in XOOPS Cube. By that, XOOPS Cube keeps a balance between hobby and business naturally. Developers like the ability for actions and hate lip service. XOOPS Cube is essential world. Each developer learn from each developer.

In addition, the programing language of the PHP environment has standard grammar like C++/Java. And XOOPS Cube is strict code like compiled language programing without flexibility of LL language. So most programers can start development without special learning. Even if your experience is academical, windows application, *nux console application, embedded, computer graphics, video game, software plug-in, programable shader and MOD, those are useful enough. So you can write program with a few learning about security and get fun in XOOPS Cube world.

(*)These features will be completed at 1.00.

Where do you start from?
XOOPS Cube is development status now, you get the latest condition from or And if you want to touch a part of XOOPS Cube, it's good idea to downlaod the Package_Legacy and Hodajuku Distribution Package. Those package works with Legacy BASE, so you can get a part of XOOPS Cube.


Anonymous said...

I've just found your post by google. It's very interesting really. It made me to buy a Xoops Cube Legacy book (by Marijuana & Chatnoir). I want to learn XCL even though I don't write PHP codes. (I am a hardware designer).

Thank you for great contributions. Your works make XC best of the best. Folk still do not know how greate XC is. What's a pity...

(sorry for my poor english...)

Anonymous said...

Nice work.

What software did you use for the slides?

minahito said...

I used KEY NOTE of iWork'08 for the slide.