Tagged: api RSS

  • Rastin Mehr 6:16 pm on November 3, 2011 Permalink
    Tags: , api,   

    Anahita 1.6 Alpha is ready 

    That’s right yesterday we officially welcomed the Alpha girl in the social networking universe and we are now aiming for the Embryo release. Anahita 1.6 is a transitional release which means as soon as the code base is stable it will be the 1.7 Birth release. Anahita 1.6 is not the 1.5 release with more features, in fact we have made changes and improvements at the DNA level where each improvement provide a world of new opportunities to the Anahita developers.

    A summary of the changes are as following:

    1. Entirely rewritten domain libraries: the domain libraries are where all the database communication for the Anahita Nodes-Graphs-Stories architecture happen.  This has resulted into significant speed improvement in the system. For those of you who are new to this project, Anahita is developed using a Domain Driven Design (DDD) approach.

    2. Improved API for developing social apps: using the new API and framework libraries we now require writing less code to develop custom social applications. In fact our existing social apps written for the Anahita 1.6 codebase contain about 36~46% less code in them.

    3. Shared Ownership of Media Nodes: in the Anahita 1.5, a medium node (topic, blog post, page, photo, album, story node, etc. ) can only have one owner who is either a person (Person Actor) or a group of people (Group Actor). Anahita 1.6 provides the option for a medium node to have more than one owners. This can be useful in many context and case scenarios. For example if a person has uploaded a photo or written a blog post, she can submit them to other groups, events, projects. Shared ownership can also be used for developing all types of public and private messaging features where a group of people involved in a conversation will have shared ownership of the original message.

    4. Improved API to handle custom profile fields: we have taken out all the existing opensocial fields from the people profiles (except some of the basics such as name, description, and gender) and then provided a new API which allows social apps and plugins to inject custom profile fields.

    5. Comments are now nodes too: comments are no longer meta information added to a node. This concept has further simplified our design. For example before we had to conduct search on medium nodes (topics, pages, etc. ) and their comments separately because finding a way to merge the search results was a painful task. Now we can conduct search on a single nodes table. Comments can also adopt nodes behaviour for example they can be voted up (Like, +1, Digg), tagged, or be associated with other nodes using graphs.

    6. Voting API: so a node can be voted up or down. That is how features such as +1 or LIKE are developed. The API also provides the option to vote down. We aren’t using the vote down feature ourselves but the option is available for developers who’d like to use it for their own custom social apps.

    Less Code is Better

    Less code means ability to change, pivot, or adapt your business logic to keep up with the changes in the business ecosystem. It means ability to build forward faster than … you know … the other fellow!

    Anahita provides simple that handles complexity. Social Networks are complex and developing social networks using conventional software development methods means spending days writing complex queries and dealing with all kinds of complex relationships that could happen between rows and tables. In Anahita you can save lots of time on writing and debugging queries the old fashion way.

    For example:

    Give me all the photos that I’ve left at least a comment on them within this social network

    repos('site::com.photos.model.photo')->getQuery()->where('comments.author','=', $viwer);

    or give me all my photos that at least one of my leaders have commented on

    $viewer->photos->where('comments.author', 'IN', $viewer->leaders);

    Or you can rewrite the same domain query as following

    $viewer->photos->where(‘comments.author.followers.id’, ‘CONTAINS’, $viewer->id);

    Which automagically constructs the following database query:

    SELECT DISTINCT photo.mimetype , photo.id , photo.component , photo.filename , photo.hits , photo.vote_up_count , photo.vote_down_count , photo.voter_up_ids , photo.voter_down_ids , photo.access , photo.permissions , photo.shared_owner_ids , photo.shared_owner_count , photo.owner_id , photo.owner_type , photo.comment_status , photo.comment_count , photo.last_comment_on , photo.last_comment_by , photo.meta , photo.created_on , photo.modified_on , photo.created_by , photo.modified_by , photo.subscriber_count , photo.subscriber_ids , photo.name , photo.body , photo.alias , photo.type FROM jos_anahita_nodes AS `photo` INNER JOIN jos_anahita_nodes AS comments ON photo.id = comments.parent_id AND comments.type LIKE '|AnSeNode|AnSeComment|%' INNER JOIN jos_anahita_nodes AS author ON comments.created_by = author.id AND author.type LIKE '|AnSeNode|AnSeActor|AnSePerson|%' INNER JOIN jos_anahita_edges AS person_followers ON author.id = person_followers.node_b_id AND person_followers.type LIKE '|AnSeEdge|AnSeGraph|AnSeGraphFollow|%' WHERE (photo.type LIKE '|AnSeNode|AnSeMedium|ComPhotosModelPhoto|%') AND ( ( photo.owner_id = 1 AND photo.owner_type = 'lib.anahita.se.person') AND person_followers.node_a_id IN ( 1 ) )

    We have been busy rewriting all the existing Anahita social apps using the 1.6 codebase and it has been a quite fun process because the new Anahita framework enables us to write way less code and the API is a lot more programmer friendly. The following numbers can give you an idea about number of lines of code which we didn’t have to write for the new release:

    Anahita Libraries (16% less)

    • Total: 20,764 down to 17,440
    • Number of Files: 337 down to 332

    Anahita Pages (42% less)

    • Total: 1090 down to 634
    • Number of Files: 40 down to 31
    • Total (without the views): 405 down to 140
    • Number of Files (without the views): 9 down to 4

    Anahita Todos (46% less)

    • Total: 1910 down to 1033
    • Number of files: 63 down to 53
    • Total (without the views): 738 down to 197
    • Number of Files (without the views): 15 down to 7

    Anahita Photos (36% less)

    • Total: 2006 down to 1277
    • Number of Files: 63 down to 47
    • Total (without the views): 777 to 471
    • Number of Files (without the views): 13 to 10

    Here is a graphical presentation:

    • RED is 1.6 codebase
    • BLUE is 1.5 codebase

    Comparing the size of Anahita 1.5 and 1.6 code size

    Comparing the size of Anahita apps 1.5 and 1.6 code size

    The Path to the Anahita 1.7 Birth Release

    The goal of the Anahita 1.6 release is to rebuild the existing features of the Anahita 1.5 using the new codebase. That means all the existing social apps should also be rewritten for the 1.6 codebase. We have already done that for the Anahita Groups, Discussions, Photos, Pages, and Todos.

    Once the 1.6 code reaches the Embryo release, we will be using it to power Anahitapolis for while to further polish the code and fix all the remaining issues. The stable code will be the Anahita 1.7 Birth release. From that point we will be delivering our new set of features and functionalities in multiple 1.7 Birth releases. To stay consistent with our Build First Brag Later approach we will be telling you more about the 1.7 new features once they are ready.

    Receive more Anahita Love

    If you are tired of using the wrong technology for your social world liberation plan:

    and share this blog post with your other hackerpreneur friends

     
    • Robin Grant 7:01 am on November 7, 2011 Permalink

      Hello Rastin,
      Earlier on, you were talking about having Nooku server in Anahita 1.6. Is this a reality yet?

    • Rastin Mehr 6:22 pm on November 7, 2011 Permalink

      @Robin yes we will be dropping Joomla and use a modified version of NookuServer to build Anahita. It will probably happen in Anahita 1.7 or later. We don’t know when it will happen yet.

  • Rastin Mehr 11:18 pm on August 10, 2010 Permalink
    Tags: , api, , ,   

    Anahita Social ™ Tweets now available to the Tribe of Partners 

    The Anahita – Twitter integration is the first social app that is available for the Anahita Social Engine 1.0 alpha3 codebase.


    David Joly

    Anahita Social ™ Tweets codename David Joly from DavidJoly.com has been named after the super awesome Anahita partner who has funded half of the development hours for this social app and agreed that we release the code under the GPL2 to all the Anahita Partners and continue maintaining the codebase in Anahitapolis.

    Anahita Social ™ Tweets

    Anahita Social ™ Tweets provides all the necessary APIs for the following features:

    • Reading incoming tweets from an existing Twitter @account and displaying them either in a Gadget or the Story Feed.
    • Signing up a user through twitter if they don’t have a registered account. In this case they still have to register through the site but their account gets linked after registration.
    • Mapping an authenticated Twitter user to an Anahita user.
    • Quick Sign-in using an existing Twitter @account credentials
    • Handling multiple Twitter accounts for an actor node (Person, Group, Event, Project, etc. )
    • Posting a story update, custom message, or system notification from Anahita Social Engine ™ to one or many Twitter Accounts belonging to an Actor node.

    The API is quite fun and simple to use. To give you an idea here is an example:

    $actor->twitterAccounts->postUpdate($update);

    Speaking of Twitter you, can follow us @anahitapolis and hashtag #anahita to receive updates about the Anahita project.

     
  • Rastin Mehr 3:12 pm on August 1, 2010 Permalink
    Tags: , , api, , , ,   

    Anahita Social Networking Engine ™ alpha2 is now available to the tribe of partners 

    Working on Anahita Social Engine alpha2

    We are excited to announce that Anahita Social Engine ™ alpha2 has been released to the Anahita tribe of partners last night. This is a transition release to the alpha 3 and is not available to the public.

    This release took about 67 days to build since the release of Anahita alpha1 and about half of that time was spent on upgrading the Anahita code to use the most recent Nooku Framework 0.7 code. We are hoping as we build more API and improve the Anahita framework we can reduce the time between each release.

    I would like to thank my best friend and business partner Ash Sanieyan who did most of the work on this release. He is the genius behind implementation of Anahita ™ framework and platform. I like to think of him as the Harry Potter of programming. This project couldn’t have been possible to this degree of quality without him. The Anahita team would also like to thank Mr. Johan Janssens and the rest of the Nooku team who have worked with us to make this release possible.

    What’s new in this release?

    • Significant performance improvement due to the changes both in the framework and database model.
    • Anahita Social Engine is now using the most recent version of Nooku Framework 0.7
    • Implementation of Person Profile privacy settings and Privacy API which can be used within the Anahita Social Apps
    • Improved implementation of the Social Graphs and also ability for people to block other unwanted people.
    • Implementation of APIs that facilitate development of all kinds of Groups social apps for a social network such as: Groups, Events, Projects, Organization pages, Fan pages, etc.
    • Implementation of Node Subscriptions API. This API allows Anahita Social ™ Applications to subscribe a person to a node and notify them later when a change occurs for the node. By default the notifications are handled via Emails, however, in the future Applications can customize this by adding their own notification handler such as SMS, iPhone Push Notification and etc.

    (More …)

     
    • Peter Armenti 3:24 pm on August 1, 2010 Permalink

      Congrats.. Eager here.. trying to resist using socialengine.net for some products. Can we fast forward like a year? :)

    • Rastin Mehr 3:34 pm on August 1, 2010 Permalink

      @Peter I really think you should try any other option that you have in mind first. If they did the job you have found your match, if not you will have a good list of reasons to come and use Anahita.

    • Peter Armenti 1:48 am on August 2, 2010 Permalink

      Over the last 5+ years I’ve tried them ALL. That’s why I’m here.. and I’m a fan :) . I’m excited that anahita understands what a social network truly is and I love that joomla makes it more extensible than any other options. The forwardness of Nooku framework adds further confidence in it’s future. I’m looking for long-term projects, therefore a long term solution. I apologize if at times I may seem inpatient. It’s hard to crouch when you want to pounce :)

    • Rastin Mehr 1:40 pm on August 4, 2010 Permalink

      @peter thank you so much we are thrilled to know that you are so Interested in the Anahita project. In general our strategy is not try to convince people but rather show them all the options and opportunities that Anahita provides. From my experience our partners each have had their own list of valid reasons to use Anahita as their platform of choice, and hopefully you will find your platform of choice soon as a result of your research. You don’t have to apologize, we really enjoy reading your comments and answer them as best as we can. Thank you for all your contributions so far on the people.anahitapolis.com :)

  • 1:51 am on June 17, 2009 Permalink
    Tags: api,   

    Developing the Anahita Social ™ Discussions Application 

    A social website often needs to have a discussion board either as a stand alone social app or as a part of other social hubs such as Groups, Events, Organizations and such.

    In the quest for finding a simple and organic design inspiration for developing a discussion board for the Anahita Social Engine I have been snooping around in different projects.

    There are some existing forum extensions available for Joomla. In fact we did try ccBoard and realized that with some modifications to make it work with the Anahita Social Engine user profiles, it would work perfectly. So here is one good candidate.

    We have also been using PHPBB3 for Tazzu Community and it seems like a complete forum out of the box and the UI is pretty good although I’ve found it to be a little too bulky for our purpose. We want something much more nimble and lighter. Besides, the user management in phpbb3 and the way it has been coded is not really our style so we’re not too sure about this one!

    I must admit I have been fascinated with BBPress for quite some time. This is the discussion board app developed by the same folks who developed WordPress and these guys have a nice touch when it gets to getting the usability right.

    (More …)

     
    • Gergő Erdősi 7:09 am on June 17, 2009 Permalink

      In the last few weeks I was looking for a wiki and forum solution for my new site and it seems I don’t need to search any more, because I found the perfect solution: Anahita Social Discussions! :) I’m so excited, can’t wait to install the first public release. Keep up the good work guys!

    • Rastin Mehr 8:47 am on June 17, 2009 Permalink

      Sounds good :)

      Just would like to add that this application requires Anahita Social Engine to be installed. All the Social applications such as Discussions and Photos will be available through the Anahitapolis support and distribution website under GPL license to the members.

    • Tomisin Akindele 9:00 am on June 20, 2009 Permalink

      I look forward to this extension, you guys should bear in mind that some of your to-be-customers would want a migrator in place. Something that can help migrate users from either Jomsocial/Community Builder/Joomunity.

      Keep the good work progressing.

    • FidelGonzales 1:32 am on June 23, 2009 Permalink

      Outstanding progress. Beyond the migration from social/community components, a forum migration tool from Kunena/phpBB/SMF2 to the native Anahitapolis would also be very much appreciated.

    • Rastin Mehr 1:44 am on June 23, 2009 Permalink

      @Tomisin, @FidelGonzales,

      Thank you! yes migration scripts will be developed too once we get to the further stages of the project.

  • peerglobe 4:37 pm on May 15, 2009 Permalink
    Tags: api   

    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.

     
    • Aaron Handford 12:32 am on May 16, 2009 Permalink

      Wow it looks like you have designed Anahita for great scalability.

    • Rastin Mehr 9:02 am on May 16, 2009 Permalink

      Developing social web involves a whole new set of challenges that are different with Content Management Systems. Primarily because everybody is constantly writing into the database and file system.

    • peerglobe 1:27 pm on May 16, 2009 Permalink

      In dealing with Social Network type projects, there is a lot more challenges than just building a software. To find the best reads regarding dealing with common scalability issues check out facebook engineering blog.

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

c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
esc
cancel