Last week we have made the alpha release of Anahita 0.9.4 available to the people and companies in the Anahita tribe of partners. This release did take a lot longer that we have estimated because this released wasn’t simply an overhaul of the previous release. We have rewritten the entire framework and platform from scratch based on a new design philosophy and that took us more than 400 hours of development hours.
We have also passed 3000 code commits to our repository (currently at revision 3077). That means over 1500 development hours since we have started coding together this project over a year ago. Anahita has gradually become the center piece and focus of our business as a commercial open source project that is enjoying a healthy organic growth.
(Right to left: Ash, Talia, and Myself) Many thanks to our friends at the Beyounic.com for making these shirts and presenting the Anahita project at the JoomlaDay, Rome, Italy
We didn’t get the chance to make a blog announcement last week (only tweeted here and here). After releasing the code packages to our tribe members, we all immediately started testing, debugging, and reviewing our task lists and planning for the stable release date. I was simply too distracted and excited to focus on writing a blog announcement.
We have been very quiet lately and why is that?
The reason for our big silence was the fact that we have been implementing a concept for the fist time and we were unsure of the results. We simply didn’t want to write about the concept publicly before we had a working example of the software written. Unlike many other social networking projects that are obsessively imitating the feature-sets of major social networking websites such as facebook or twitter we have been researching the mathematics behind the social networks and graph theories. Everything made sense on the paper, however there were no examples of Nodes+Graphs+Stories (NGS) architecture that we could find. We also needed to follow a Domain Driven Design (DDD) approach to do a decent job of implementing the NGS architecture and having a neat Data Access Layer were not sufficient for our purpose. As a result we had to implement all the Domain Driven libraries required to rebuild the Anahita framework and platform.
We were however sharing the project updates with Anahita partners during the past 4 months. Fortunately the results of our hard work paid off and we are quite pleased with the first implementation of our design concept.
I will be writing a blog post specifically about the Anahita NGS architecture in the next few days. To give you a short summary, the building blocks of a social network are: Nodes (people, groups, events, pages, media etc.), Graphs (friends, contacts, subscriptions, etc.), and Stories that propagate around through the network and are compiled as story feeds. All nodes are commentable and taggable. The idea is that you can build all kinds of social networks using these basic building blocks just like you can build an entire universe using electrons, neutrons, and protons!
What is Anahita Today
Anahita Social Engine ™ is now a framework for developing social apps as well as a platform for installing and hosting social apps. That is where the Joomla Framework comes in play since Anahita Social Engine and Social Applications are available as Joomla extensions. You can install Anahita framework as a Joomla Plugin and the Anahita Social Engine as a Joomla Component. In fact the pattern of distributing frameworks and libraries as Joomla Plugin and applications as Joomla Component is becoming a trend within the Nooku Framework.
We are mainly using 4 aspects of Joomla:
- Template Engine
- Extension Manager
- Menu Manager
- Basic User Management and Authentication
Unfortunately Joomla! has been heavily promoted as a CMS which has led many people to the confusing state that why on earth Anahita core team building a social networking technology on top of a CMS!!!
(Left to right: Ash, Talia, and Myself) Many thanks to our friends at the Beyounic.com for making these shirts and presenting the Anahita project at the JoomlaDay, Rome, Italy
The article manager on Joomla! is only a stock extension shipped with the rest of the framework. In reality Joomla is an excellent web application development framework which has been grossly unrecognized and in combination with the powerful Nooku Framework it can take your projects to many places. In fact the Joomla/framework has successfully closed the gap that existed between the software development and web development worlds since many existing CMS solutions such as WordPress or Drupal do not offer frameworks and many existing frameworks (symfony, cakePHP, Ruby on Rails, etc. ) do not offer finished template engine, extensions management, menu management and basic user management.
Anahita Social Engine ™ and Anahita Social ™ Applications are available as Joomla extensions however when you look inside them, 90% of the code is using the Nooku Framework and Anahita API calls. You can install them the same way that you will install any other Joomla extensions and Anahita is able to recognize and pick out the social apps from the other generic joomla extensions. No need to reinvent the wheel there!
So far we have developed the following building blocks:
- Anahita Soical Engine (plugin and com_socialengine component)
- Anahita Social Discussions (com_discussions)
- Anahita Social Photos (com_photos)
- Anahita Social Invites (com_invites)
Themes and Templates for an Anahita powered social network also behave much like a Joomla template except that we have further extended the abilities and opportunities that the basic template engine provides.
Less is more!
At every stage our main goals has been to keep the Anahita Social Engine as light and flexible as possible and not load it up with too many features. We think that the Anahita Social Engine should only provide the basic essential services and options. If you want Anahita to handle some custom behavior, follow some unique business logic, or peal potatoes you can always build and install them as social application and extensions.
The 5 day Partners’ Program Waiting List
For those of you who are applying to join the Anahita tribe of partners we really had no other option but increasing the number of days to write you back to 5 days. In January alone I have responded to over 100 emails and inquires and that has been a bit of a challenge since we also have to allocate development time and help our existing clients and partners who are experimenting and learning the Anahita framework and design philosophy.
The good news is that most of these emails have been filled with encouraging and inspiring words that are real energy boosters. A very small number of people seemed quite upset that why we haven’t been offering our 1500+ hours of work entirely for free to them. We decided to focus on the entertaining aspects of their attitude which again had an energy boosting effect.
We understand that charging people for a fee to access Anahita resources and knowledge base may seem quite unusual and unorthodox in the open source world where many people become used to obtaining everything for free (as free beer). In fact this makes total economic sense from their point of view!
However one reality remains unchanged that developing good software costs us time and resources. Anahita code will be accompanied with the GPL lisence once it gets to you, however there will be some payments involved for distributing the code and providing support and services. Not all GPL projects these days are run by pure hobbyist and volunteers. In fact as we move forward we will be seeing more and more open source projects are developed around some sort of business model to generate the profit and funds required to keep the projects in a healthy and productive state.