What is Flooha?
While cleaning up some files, I ran across this introduction to Flooha that I had written a few years ago. My intention was to flesh out the concepts and I never had any plan to show it to anyone. Hopefully, it will be interesting enough to generate some conversation. I’m guessing a high percentage of responses would be tl;dr. LOL
What is Flooha.com?
Flooha.com is a communally driven website where users can download open source software in which the source code has been automatically generated, according to the user’s choice of addons and modules submitted by other users. Flooha Inc. is also a web hosting company. Customers of Flooha have the option to have this generated software installed automatically to their website. The user can add or remove addons at any time and will also receive automatic updates when their software can be updated with newer versions of the addons which contain new functionality or bug fixes. Anyone can build and download software for free from Flooha.com, but users who are not Flooha customers must download and install the software themselves or they also have the option to pay a Flooha technician to install the software on their server. Flooha.com provides forums for users to discuss issues and request help with problems.
Why do we need this?
The power of open source code lies in the user’s ability to modify and share the code with others. Most open source projects have a user base which contributes modifications to the original source code. These “modules” or “addons” add new functionality or change the current functionality to suit the user’s needs.
The easiest addons to install are typically called “modules”, plugins, addons, or extensions because of their modular nature. Modules are simply additions which can be installed with a few clicks and do not modify the original source code, known as the “core source code”. The most difficult to install are normally referred to as “contributions” and they often change the core source code dramatically. The installation process for these addons can be extremely difficult because the user must search for a specific section of the code and change it according to the instructions in the addon. The possibility of making mistakes when modifying the source code is very high and non-programmers often find this process impossible to complete successfully. The smallest mistake can break the application completely, at worst, and at best it could cause unexpected errors. Installing a hand full of addons which change the source code can require days or weeks of code editing and testing depending on the user’s skill. Clearly it would be best if all addons could be modular, but this is not practical for many reasons, not the least of which is the fact that some programmers just don’t think about modularity when writing the core source code. This doesn’t make their code “bad” per se because their application could be the best in it’s class, but in no way modular.
Even if all open source projects where modular in nature, the open source community’s addons would still suffer from lack of organization. It is the nature of such a collaborative environment to be loosely organized and this facilitates greater freedom and flexibility but also creates a sometimes frustratingly complex environment where even experienced developers can become lost in the jungle of changes. It is common for the core developers to offer web space to upload and download addons but it is basically a “User Beware” mentality and very rare for the core developers to offer any support, certification or organization of these addons. User’s can spend inordinate amounts of time searching for the module they need, trying to determine which version of the module would be best for them and then installing, testing and checking for conflicts with other addons. The core developers also commonly provide a forum to discuss modules but the threads for specific modules are often not tied to the addon in any way and multiple threads are created which rehash the same issues. Also, it is not uncommon for a addon to be updated and changed on a weekly or even daily basis and the work to maintain an application can increase exponentially with each addon added. The problems associated with addons that change the core source code become painfully evident when a new version is submitted by the core developers. If the user has made significant modification to the core, upgrading to the new version can be a nightmare and sometimes completely impossible. This is a major drawback because often the new version includes critical security updates and bug fixes which will cause problems for the user in the future if they are not installed.
The goal of Flooha.com is to eliminate or minimize these problems as well as the work involved in creating and installing addons.
How is this achieved?
The main concept of Flooha.com is to create addons where the user uploads the necessary files for the addon in zip format. The Flooha system analyzes the code and makes it available to be installed. After the addon is created, any user can then select it as part of their download package and it will be installed automatically along with any other selected addons. While this concept seems simple, you have to realize what is really happening here. Instead of spending hours, days, weeks or even months searching for, downloading, unzipping, reading the instructions, installing, testing and checking each addon for conflicts, the user has simply clicked a few boxes and received a completed package with everything already installed. In most cases the user will still have to perform some addon specific setup during or after the installation of the package, such as configuring the addon according to their preferences, but this is not something that can be avoided. Documentation for each addon is provided with each package as well as post installation instructions.
In some cases, addons will conflict or appear to conflict and the Flooha “builder” can detect these possible conflicts between addons. For instance, if two addons edit the same line of code in the same file, it is probable that this will cause errors. Before building the package, the builder will check all of the addons against each other to identify possible conflicts and it will then give the user the option to remove any of the conflicting addons or to ignore these conflicts and log the warnings and errors. The builder then builds the package one addon at a time and if a change is not possible it is logged, specifying the addon and the code that could not be changed because of a conflict. The user can then evaluate the code manually and merge the code that could not be installed automatically. It is actually quite amazing how a source code file can be changed by many addons without causing any conflicts. Also, the user can then submit a “glue” addon which is actually two addons in one package that have been fixed so that they do not conflict. If these two conflicting addons are selected in the future for installation by another user, the “glue” addon will be used, thus preventing a future conflict.
Well, there it is. I’d love to hear what you think!


