Anahita Project

The #Anahita #project management group. Visit https://github.com/anahitasocial for more information about Anahita code and how to get started.

Stories

Rastin Mehr

Rastin Mehr published a new Article

Where Is Anahita Heading To? The Action Plan

Where is Anahita heading to? The Action Plan

I started an article reflecting on Anahita's history and goals. It was supposed to be just a paragraph, but it grew to become an independent blog post. Apparently, I like to ramble on when it gets ...

Read More

I started an article reflecting on Anahita's history and goals. It was supposed to be just a paragraph, but it grew to become an independent blog post. Apparently, I like to ramble on when it gets to talking about Anahita. You can find the published article here:

TL;DR after building a learning management system for an old-school education company, I was inspired to build a more democratic and distributed online learning and knowledge sharing platform. I left my job, focused on my new company, grew a team, got down to coding. At the time we thought social networking was the solution to all humanity's ailments, but then alternative facts, click-bait content, and extremist ideas started spreading around on mega giant social media. After some reflection, we decided to focus on building tools for open science and data. Our goal is to make Anahita the lightest viable unit required to set up a knowledge sharing and collaboration platform. We want brutal minimalism to be at the core of our design philosophy. 

So as for the action plan, here is what's happening:

Nooku/Koowa Code Refactor

We are still using some code from Nooku Framework, named Koowa. We're going to merge them all with Anahita framework and take out every bit that isn't being used. We've been doing this quietly in every maintenance release. We expect this refactor to be done in the next couple of maintenance releases.

Separating Client and Server apps

We are developing an Anahita React app which will be the web-based user interface for Anahita. We are also using the React Material UI to build the user interfaces primarily for mobile users while accommodating desktop users too.  A lot of concepts and code used in this app can later be reused in custom mobile or desktop apps for Anahita. Through this process, we are also improving Anahita's RESTful API. The development will continue until we have most of the existing features in the React App, plus some improvements. 

Reducing the server side to APIs only

In the current codebase, Anahita renders most of the user interfaces in the server side and then it uses JQuery to fetch or post data or animate the user interface elements. JQuery is like stick and stone technology in comparison to React or mobile application development frameworks. We are going to get rid of server-side rendering altogether and remove every bit of library and code in Anahita responsible for rendering HTML pages. The Anahita PHP codebase will only provide a RESTful API to a graph architecture on top of a relational database. This API can be extended by installing Anahita apps. This will further reduce the size of the Anahita code base which is currently around 11MB, but we estimate to be cut to half.  

Specialization

Anahita is a platform and framework. We want it to be specialized enough to function as a graph architecture for developing knowledge sharing apps and services. Meanwhile, we refuse to turn it into a specific product for a specific case scenario and specific target audience. Productization may result in a short-term gain, but it'll take away Anahita's ability to evolve and adapt in an ever-changing environment. With that in mind, we want to build apps and tools that are commonly used by researchers, scientists, and collaborators. For example: 

  1. A Kanban board in the Todo app. 
  2. Publishing tools for Articles. 
  3. Native support for Video files either in the Photos app or an independent Videos app. 
  4. Native support for web links with previews.
  5. Ability to upload and share documents
  6. Integration with Google Drive, Dropbox, Github, and data visualization services
  7. OAuth consumer and supplier
  8. Private Messaging
  9. Integration with chat and video streaming services such as https://tokbox.com
  10. user onboarding workflows
  11. LMS apps for creating and managing courses, classrooms, and learning objects
  12. Data visualization tools

Devops and Release Engineering 

I think there is no need to explain why we need to start using Docker and Kubernetes technologies as well as other continuous integration and deployment tools. Having proper release engineering tools in place will make Anahita deployment easier on cloud computing platforms such as AWS, Azure, or BlueOcean. 

Questions, comments, feedback? Let me know in the comments please.

#Anahita #ActionPlan #RoadMap #Vision

Read Less
Unknown Person liked this
Nick Swinford

Nick Swinford commented on the note

I just tagged the Anahita 4.3.13 Birth Release. Could you please do a test install and report any issues that you might encounter? Thank you! #Anahita #BirthRelease
Yup, 5.7.21.
Rastin Mehr liked this
Nick Swinford

Nick Swinford and Rastin Mehr commented on the note

I just tagged the Anahita 4.3.13 Birth Release. Could you please do a test install and report any issues that you might encounter? Thank you! #Anahita #BirthRelease
I installed Anahita, created an account, logged out and logged back in without any issue. Thanks for the new release Rastin!
Rastin Mehr liked this
Thank you, I just noticed an issue in the video player styling. Need to fix that. It could be the number 13 in the version number.
Oh by the way, did you test on MySQL 5.7?
Rastin Mehr

Rastin Mehr shared a note

I just tagged the Anahita 4.3.13 Birth Release. Could you please do a test install and report any issues that you might encounter? Thank you! #Anahita #BirthRelease
Rastin Mehr

Rastin Mehr commented on the topic

ONLY_FULL_GROUP_BY sql mode causes error

As of MySQL 5.7.5, the ONLY_FULL_GROUP_BY sql mode is default and that causes issues with some errors in Anahita. #bug

Exception in ComStoriesControllerStory : Expression #8 of SELECT list is not ...

Read More

As of MySQL 5.7.5, the ONLY_FULL_GROUP_BY sql mode is default and that causes issues with some errors in Anahita. #bug

Exception in ComStoriesControllerStory : Expression #8 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'demo.story.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by of the following query : SELECT DISTINCT IF (story.body '' AND story.body IS NOT NULL,story.id,IF(story.story_comment_id IS NOT NULL AND story.story_object_id IS NOT NULL , CONCAT_WS(',',story.name,story.component,DATE(story.created_on), story.story_object_id), CONCAT_WS(',',story.name,story.component,DATE(story.created_on),CASE TRUE WHEN CONCAT(story.name,story.component) LIKE 'cover_editcom_people' THEN CONCAT(story.story_target_id) WHEN CONCAT(story.name,story.component) LIKE 'avatar_editcom_people' THEN CONCAT(story.story_target_id) WHEN story.name LIKE "avatar_edit" THEN IF(story.story_subject_id = story.story_target_id, "", story.id) WHEN story.name LIKE "actor_follow" THEN story.story_subject_id ELSE CONCAT(story.story_target_id,story in /var/www/demo/vendor/anahita/anahita/src/libraries/default/base/controller/resource.php on line 210 The new server comes with an upgraded version of MySQL, 5.7.19, which has the ONLY_FULL_GROUP_BY sql_mode on by default (https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by) and seems to be causing some issues.

Read Less
@NicholasJohn16 I treated the ONLY_FULL_GROUP_BY issue the same way Wordpress is doing. Removing it per database session.

https://github.com/anahitasocial/anahita/blob/889581806fac594ccadd34f82cb449add1ac04f4/src/... Read More
@NicholasJohn16 I treated the ONLY_FULL_GROUP_BY issue the same way Wordpress is doing. Removing it per database session.

https://github.com/anahitasocial/anahita/blob/889581806fac594ccadd34f82cb449add1ac04f4/src/libraries/anahita/database/adapter/mysqli.php#L193

Out of all the strict MySql 5.7 requirements, this is the only one we are leaving out which I think is a reasonable compromise. The performance overhead seems minimal. In fact there is a bit of performance boost in the Anahita 4.3.13 release. Read Less
Nick Swinford liked this
Rastin Mehr

Rastin Mehr shared a note

Master branch is updated with 4.3.13 code. Could you please try installing #Anahita from master branch and test everything? Thank you!
Rastin Mehr

Rastin Mehr shared a note

Do you notice a speed boost? The 4.3.13 may be a tad bit faster
Rastin Mehr

Rastin Mehr shared a note

Google maps is now charging fees even for basic usage https://cloud.google.com/maps-platform/pricing/sheet/
Rastin Mehr

Rastin Mehr shared a note

Spend most day getting Anahita work in php 7.2 and MySql 5.7. We need to do a maintenance release for those requirements. Also upgrading Material UI in Anahita React App. #Anahita #Hackathon
Rastin Mehr

Rastin Mehr commented on the note

We're still working on devops and release engineering options for Anahita. We've been deploying two #kubernetes #cluster to #AWS during the last few weeks. All paving the way to build #Docker and #... Read More
We're still working on devops and release engineering options for Anahita. We've been deploying two #kubernetes #cluster to #AWS during the last few weeks. All paving the way to build #Docker and #k8s deployment tools for #Anahita. I appreciate your patience. Read Less
Rastin Mehr
Rastin Mehr
October 14 2018 Permalink
I don't know when it will be ready. Right now the focus is back on the React app, because it is behind. Most of last week was focused on technologies such as webpack and automating deployment of React apps for web and... Read More
I don't know when it will be ready. Right now the focus is back on the React app, because it is behind. Most of last week was focused on technologies such as webpack and automating deployment of React apps for web and electron. What I know that when Anahita becomes a client-server architecture, we will be using Docker and K8s for deployment. Read Less
Ildemaro  Martinez Jr

Ildemaro Martinez Jr commented on the note

We're still working on devops and release engineering options for Anahita. We've been deploying two #kubernetes #cluster to #AWS during the last few weeks. All paving the way to build #Docker and #... Read More
We're still working on devops and release engineering options for Anahita. We've been deploying two #kubernetes #cluster to #AWS during the last few weeks. All paving the way to build #Docker and #k8s deployment tools for #Anahita. I appreciate your patience. Read Less
Hello Rastin: will the official Anahita Docker-Kubernetes image be ready/available anytime soon? We want to deploy to GKE
Rastin Mehr

Rastin Mehr commented on the topic

Interested in helping out!

Hey! I'm interested in helping out with Anahita React. I'm wondering if there is any roadmap or issue tracker where I can see what needs to be done?

Rastin Mehr liked this
Rastin Mehr
Rastin Mehr
October 09 2018 Permalink
Hi Lucas, there isn't a roadmap for the Anahita React. The goal is to build the current UI features in a React app and then remove all the parts in the Anahita codebase that are responsible for rendering user interfac... Read More
Hi Lucas, there isn't a roadmap for the Anahita React. The goal is to build the current UI features in a React app and then remove all the parts in the Anahita codebase that are responsible for rendering user interfaces and html. This way Anahita will be a back-end API and the React App will be the client. We are building and learning as we go since we aren't building a product with a specific scope and feature set. We are exploring and refining the software design patterns that we think work best for Anahita architecture. Most React Apps out there follow a relational database model. Anahita is a graph architecture. We are also developing the React App for mobile devices first while accommodating larger screens too. I am also Studying a lot of implementations and design patterns that other React Redux Material UI projects have done and see if any of them can be used in Anahita. Once we pass this stage then our goals become more predictable and we can populate the issue tracker for specific implementations and assign them to different people. We can definitely get help from other React developers in our community. Read Less
Nick Swinford

Nick Swinford commented on the topic

Interested in helping out!

Hey! I'm interested in helping out with Anahita React. I'm wondering if there is any roadmap or issue tracker where I can see what needs to be done?

Rastin Mehr liked this
Nick Swinford
Nick Swinford
October 08 2018 Permalink
Rastin is currently working on building a new UI using React. You can check on his progress here (https://github.com/anahitasocial/anahita-react).

Lucas Meijer started a topic

Interested in helping out!

Hey! I'm interested in helping out with Anahita React. I'm wondering if there is any roadmap or issue tracker where I can see what needs to be done?

Rastin Mehr liked this
Rastin Mehr

Rastin Mehr commented on the note

@rastin tiny fix cause the class is missing https://github.com/anahitasocial/anahita/pull/492
Rastin Mehr liked this
Rastin Mehr
Rastin Mehr
October 05 2018 Permalink
Thank you, much appreciated!
Nick Swinford

Nick Swinford shared a note

@rastin tiny fix cause the class is missing https://github.com/anahitasocial/anahita/pull/492
Rastin Mehr liked this
Rastin Mehr

Rastin Mehr commented on the note

This weekend worked on #MobileFirst aspects of Anahita React app. Cards and sidebar are now displaying well on mobile devices. Top app bar is next. Search, Stories, Comments, and Notifications will... Read More
This weekend worked on #MobileFirst aspects of Anahita React app. Cards and sidebar are now displaying well on mobile devices. Top app bar is next. Search, Stories, Comments, and Notifications will be next to be implemented. Read Less
Rastin Mehr
Rastin Mehr
September 17 2018 Permalink
Masonry layout is performance intensive.
Rastin Mehr

Rastin Mehr shared a note

This weekend worked on #MobileFirst aspects of Anahita React app. Cards and sidebar are now displaying well on mobile devices. Top app bar is next. Search, Stories, Comments, and Notifications will... Read More
This weekend worked on #MobileFirst aspects of Anahita React app. Cards and sidebar are now displaying well on mobile devices. Top app bar is next. Search, Stories, Comments, and Notifications will be next to be implemented. Read Less
Ildemaro  Martinez Jr

Ildemaro Martinez Jr and Rastin Mehr commented on the note

During the last 2 weeks our focus has been on ways to deploy #Anahita using #Docker and #Kubernetes on cloud platforms such as #AWS we're going to make this happen and it will be a great milestone ... Read More
During the last 2 weeks our focus has been on ways to deploy #Anahita using #Docker and #Kubernetes on cloud platforms such as #AWS we're going to make this happen and it will be a great milestone for Anahita. Read Less
What is the current status of Anahita Official DK8s image?

We want to deploy/test asap
Rastin Mehr
Rastin Mehr
September 12 2018 Permalink
We deployed 3 clusters in the past 2 months. From this week I'll allocate some time on building Anahita Docker/k8s integration. Based on what we've learned, it takes a while to build working images and a cluster. Also... Read More
We deployed 3 clusters in the past 2 months. From this week I'll allocate some time on building Anahita Docker/k8s integration. Based on what we've learned, it takes a while to build working images and a cluster. Also it most likely costs about $50-$100 more to host it in AWS than conventional hosting. All those virtual machines that run the cluster take up EC2 processing. Every time that we run the Makefile to build docker images and update the k8s cluster, it takes a few seconds. I wonder how we can use swarm or k8s for a development setup that doesn't take up time and space. Read Less
Rastin Mehr
Rastin Mehr
September 12 2018 Permalink
The client projects that we deployed are written in Golang not php. The Docker images are much lighter, because they only contain binary objects. It'd be different with a php app. We'll figure something out. I need to... Read More
The client projects that we deployed are written in Golang not php. The Docker images are much lighter, because they only contain binary objects. It'd be different with a php app. We'll figure something out. I need to look into it more. Read Less
excellent-keepus posted

we are deploying to GKE
checkout Gitlab’s Auto Devops tool which ‘auto-deploys’ K8s clusters to GKE https://docs.gitlab.com/ee/topics/autodevops/
Rastin Mehr liked this
Rastin Mehr

Rastin Mehr commented on the note

Focus will be shifted back on the #Anahita React app this week. The React App and Docker/Kubernetes deployment are 2 things that need to happen. #ReactJS #Docker #Kubernetes
Unknown Person liked this
Rastin Mehr
Rastin Mehr
August 27 2018 Permalink
Could you start a topic in the support group please? I'll be happy to answer it there for you.
Unknown Person liked this

Photos View All

Articles View All

Topics View All

To-dos View All

Powered by Anahita