Back To Anahitapolis

Archive for the 'Ash Sanieyan' Category

Anahita 0.9.4 Is Now Available To The Partners’ Tribe

Ash and I celebrating Anahita 0.9.4 release at 5:18 AM

We would like to announce the release of Anahita Social Engine ™ version 0.9.4 to Anahita tribe of partners. We have already started working on the 0.9.5 release which will be a polished version of existing release and suitable for launching live websites. Anahita 0.9.4 has been a complete overhaul of the previous release, since we had decided in October 2009 to rewrite the entire code base from ground up. The significant aspects of the new release are:

  • Nodes+Graphs+Stories Architecture: we have successfully implemented the NGS architecture which follows the mathematical model that social networks are structured, scale and grow.
  • Updating Nooku Framework: Anahita code has been rewritten to work with the most recent release of Nooku Framework which is version 0.7
  • Anahita ™ Framework  : Anahita now offers a rich framework and design philosophy  for building all kinds of social applications as well as a platform for installing and hosting them.

I was going to write a list of new features for you here, but it would have been a very long list, because EVERY THING has been rebuilt in this release. You can consider 0.9.4 the regeneration of Anahita. We have updated the information on Anahitapolis to better reflect the changes in the new release. You can click here to learn more about the Anahita architecture overview.

Continue reading ‘Anahita 0.9.4 Is Now Available To The Partners’ Tribe’

Anahita 0.9.3 Now Available To Our Partners

We would like to announce the release of Anahita 0.9.3 (Code Catmint) to our partners and the immediate start of the version 0.9.4 development following the Anahita roadmap

Anahita Social Engine ™ Person's Profile

The focus of version 0.9.3 has been to improve the Anahita templating, revise a standard CSS tag structure, and refactor all the Views so the core team and partners could start developing and configuring their project sites. We have also put in just about good enough basic tools for those who wish start developing social apps by using the Anahita Social ™ Discussions and Photos as the first blue prints for developing social apps.

Developing templates for Anahita is now not much different than developing templates for Joomla, the only issue that we are still dealing with is that Anahita is using the Mootools 1.2.3 and Joomla 1.5 is still using Mootools 1.1 so if there are modules that are developed for the old version of Mootools they may not work in the Anahita environment.

All the template outputs, social engine and social apps CSS code are over-writable at the template level. We are also looking into ways so even the Javascript libraries will become re-writable so those who wish to write their own custom javascript code for a particular social web project be able to do so.

We will be writing a blog post about template customization for Anahita, and thanks to the Joomla’s superb template engine and Nooku Framework, Anahita is now powered with one of the finest template engines available today.

Continue reading ‘Anahita 0.9.3 Now Available To Our Partners’

Presenting Anahita Social ™ Engine at Vancouver DemoCamp 7

We have been presenting Anahita Social Engine ™ at the Vancouver Demo Camp 7 hosted in WorkSpace last Tuesday (July 7th). We would like to thank our wonderful friends Boris Mann, Sonia Ryan, and Roland Tanglao from the Bootup Entrepreneurial Society who provided this great opportunity for us to present our project to a crowd of 60~80 people and have the opportunity to hear the BuddyPress presentation at the same place by the great folks from the Automattic.Thank you Roland for the great video that you’ve made.

Continue reading ‘Presenting Anahita Social ™ Engine at Vancouver DemoCamp 7′

Nooku Framework is out

After months of development the folks at JoomlaTools have finally  announced the Nooku Framework project publicly. Nooku Framework is an Object-Oriented, full-stack but very lightweight web development framework for Joomla 1.5. Anahita Social Engine is built using Nooku Framework.

Nooku Framework is installed as system plugin on Joomla. On the system initialization it replaces the core Joomla elements such as database, application, document with its own enhanced version.

It also offers it’s own Factory Class called KFactory that would let the developers to virtually extend or modify any part of Joomla without editing the core files.

For application development, Nooku Framework offers a far better implementation of MVC (Model-View-Controller) design pattern that what currently Joomla has. RESTful controllers, enhanced view classes with ability to inject custom template rules and models that recognize  their own tables are the few to name.

Being a Ruby on Rails developer, what most attracted me the most to  Nooku Framework is its own implementation of Table Gateway and Row Gateway Pattern. This implementation sort of works the same as the Active Record. It uses naming convention to map your table objects to the actual tables and it encapsulates the database access, and adds domain logic on that data.

Here’s an example of how it works

Even though Nooku is quite young and still taking its shape, it has enabled development of many high profile open source projects. Bundled with Joomla platform, Nooku Framework undoubtedly provides all the tools a developer needs to start the next generation web applications.

To learn more about Nooku Framework please visit their website at http://www.nooku.org/en/framework.html

Scalability in Social Networks

Building a software that one, two or even 100 people use at one time concurrently requires different set of skills than building a software that thousands or even millions of people use at one time. No disrespect to the Desktop software developers :) , but building web applications especially in the nature of social network, requires focusing on scaling the applications to handle thousands concurrent requests at once. This is one the biggest challenges we are trying to deal with. Build a software that’s robust, well-designed but at the same time is scalable to handle large number of requests.

If you check out the Facebook engineering blog, you can find great tips regarding how to build software than can handle millions of concurrent requests.

http://www.facebook.com/notes.php?id=9445547199

Also facebook has open sourced a lot of tools they use that are great for scalability – check their open source home page at

http://developers.facebook.com/opensource.php

Anahita Virtual Storage – How does it work ?

By nature social networks grows in storage size exponentially. For a community of just 250,000 people the total size of only the avatars are about 20 Gigabyte. That’s a lot of space but thanks to the services like Amazon S3, Box.net and other cloud storage, it’s a lot cheaper and safer to store users assets (images, videos, documents and etc) somewhere on the cloud rather than storing locally where your server is being hosted.

This approach however imposes a challenge for the third party extension developers. They have to hard-code the storage API they want to target and build their application in a way that works flawlessly only with that storage. On the other hand, this forces the users of the extensions (the people who download the extension to use it on their Joomla installation) to use only the intended storage service by the developer.

We’ve solved this problem in Anahita by introducing the Virtual Storage concept. Developers can use Anahita Virtual Storage library to read/write data without a need to know about the final storage destination.  cloud

The storage destination is configured by the admin through the Anahita System Plugin in the Joomla administrative back-end.

picture-5

There are two ways of writing data using Anahita storage library, publicly or privately. If it’s public then everyone has read access to the data. This is good for static data like avatar and albums images. If it’s private only the application has access to read the data. In both cases the data is only writable by the application.

Soon we are adding the ability for the other developers to implement their own storage system. This is specially useful for the corporate intranets who have in-house distributed storage that’s not accessible from the outside of the network.