Apr 24, 2012
Bob: Welcome to the 51st “The Bob Bloom Show”. My name is Bob Bloom from Toronto, Canada. Today is Thursday, April 26th, 2012.
As I’m going heads down getting LaSalleMart 1.0 out, this is my last podcast before June. Although I’ll probably have one podcast about LaSalleMart in May.
My intention was to record a two part interview without actually splitting up our interview into two podcasts. Better to keep things flowing than to interrupt, when I have Ash and Rastin here.
However, I was so caught off-guard by our topic toward the end of our interview, that I am showcasing that discussion in aseparate podcast
Every three months or so, Arash Sanieyan and Rastin Mehr join me. I always look forward to our shows. How are you today?
Ash/Rastin: Pretty good thank you, how about you Bob?
Bob: Oh, I’m just swell thanks.
Ash/Rastin: That’s good.
Bob: Rastin and Ash are the core architects of the Anahita Social Engine which is available at their site, Anahitapolis.com.
In January, I wrote a blog post called “Critical Lessons Learned from 2011“. My featured image is the Anahitapolis logo.
Ash, Rastin, you’ve taught me a lot, thank you! I want to talk about what you’ve taught me. Some of it we’ve talked about in previous podcasts, but I wouldn’t mind reviewing, because they are important lessons and I wanted to get your impressions of it.
Things that Ash & Rastin have taught me:
Open source software must be intermediated — that is open source software is raw material.
Rastin: Yes. Well I can’t imagine it not be and open source software is in our case we use open source software as raw material. We have a project and we do use other open source projects in our code, but a lot of the time we only take what we need rather than just including everything that they provide and in some rare cases we do, let’s say if we need everything they built, we do include them. But to build a light and lean system for us it worked a lot better to just only take what we need and also feel free to change it, to make it suit your needs.
Bob: I think intermediation is important because the risk of using open source software is on the user and so it’s an extreme risk but it’s offset by the reward of controlling the code; and, you always demonstrate that you take in code and you change it for your purposes, fix things up and then you put it in – into Anahita.
Ash: Well, it’s true what you’re saying – there is a risk, but there again there is this battle between a really end product and what is basically a raw material for another project that you do. Most of the libraries that we use are sort of like intermediary libraries that we use for building Anahita. One special case of Anahita is that it can be viewed as both ways: [Anahita] can be used by you as something that is done as an end product; or, [Anahita] can be viewed as something that is in the middle of another end product.
Let’s say you’re trying to build a social network for yourself and you use Anahita and then you need to customize it. So for Anahita there is always that case that some people wanted as an end product that I just wanted everything to work and there are some people that want to be able to do some level of customization. So, it’s something that you always think about when you’re building any features for Anahita.
Bob: That’s a big thing – is it an end product or not? But open source software that is an end product – it’s still available to be massaged.
Rastin: Yes, it is. Those are the rights the GPL gives you, that you have the freedom to read and modify and redistribute the code which is essential. But as Ash said, it could be risky. You have to know what you’re doing when you change a code. In our case Anahita is provided as a platform and framework to people. We do have a consistent API for people if they want to build a project using Anahita, the best approach is that they follow the Anahita API rather than the API of let’s say, one of the technologies used in Anahita and that way we take care of a lot of the changes that we have to do but at the same time we try to be as consistent as possible when it gets into the Anahita API, so peoples’ projects don’t break. Ash do you want to add to that?
Ash: Well, yeah basically you just explained what I just said I don’t know what to say. [laughter] Basically the more you stick to the public API (if you want to call it), it depends on how advanced you are, you should be able to use anything you want, this is your own platform when you download it, you should be able to do anything you want. Sticking to the public API or the things that we use, for example between me and Rastin I have some API’s that only I use and I tell Rastin “don’t use these ones because I might change it in the near future”, so even in our apps we try to use as much of official API’s as possible and keep some of the ones that are so private and might change, I don’t use it as much. So, if you stick to those it’s easier to upgrade, obviously, but then again if you are a hacker that doesn’t matter, that’s the whole idea of being a hacker, you go there and you use whatever tools necessary that you want to do. So it really depends on how advanced you are in terms of being a hacker so you can start with the public API connection, dig in and use anything you want.
Rastin: I think the topic came, we better go back to the roots of the word what caused that line that you know, anytime you used a lot of open source projects as raw material. What we offer to people is Anahita and Anahita right now uses a little bit of Joomla code, uses Nooku framework, uses Bootstrap, uses Gantry and over time we add or remove different technologies to Anahita but what people get at the end is Anahita.
But when you add these building blocks and ingredients to people, we don’t just add them as they are. We maintain the freedom to make changes or only take what we need. The problem was that some people in the community they wanted full compatibility with the technology that is used as an ingredient and that is not we are necessarily interested or want because our goal is here to deliver Anahita as the best social networking platform or framework there is and not something else. Now, because let’s say Joomla is a CMS or Nooku Framework out there is a great wave application platform or Gantry is a template framework mainly built for Joomla CMS and for us to deliver Anahita sometimes we use ingredients from other projects but we don’t use them exactly as they are because they may not apply to our goal and that’s where the freedom of open source comes handy that you can take what you need, you can read the code, you can change, you can modify, you can redistribute.
Bob: I think this glides into the next thing you’ve taught me. Because since being able to change the code is important:
Users must be connected to the code by picking up technical skills; or, by associating with people who can do things with code.
You wrote that wonderful blog post and you stuck that right in the middle. I’ve got that link somewhere else on my site. Why users should be connected to the code.
Rastin: I believe if I remember that was about going back to whether you are building a point and click product or a product that is customizable by code – right?
Bob: You were actually describing… that was the myths of Anahita and right in the middle you described hackerpreneur which at first doesn’t seem like it has anything to do with the myths of Anahita but you said that the kinds of people who were attracted to use Anahita were hackerpreneurs, and hackerpreneurs either knew enough about technology or associated themselves with people who knew about the technology.
Bob: That’s a mouthful!
Rastin: I suppose, again, another approach we took, right now social networking is a really hot topic – everything on the web is becoming social and there are a lot of technologies out there that promise you a social networking out of the box and a lot of them are products that basically mimic the behaviour of Facebook and you can customize them using point and clicking tools. So essentially you get a product that comes loaded with so many features and then you switch off the ones that you don’t need and you only use what’s left.
The problem with that approach is that over time it gets really really bloated because they tried to build something that is for everybody, they tried to be everything to everybody, not to mention a lot of them are also built on a very network architecture. Our approach was to only provide the foundations and the basic building blocks and people were building projects – they only add what they need and so that’s one approach to make a light system and the other approach was sometimes it take really five lines of code or ten lines of code or 50 lines of code to get something done but if you want to do it the point and click way you have to write 3,000 lines of code or 1,000 lines of code. In that case it makes sense to actually sit down and write code rather than trying to build the whole system to customize using point and click approaches.
So, and for Anahita we took that approach. Anahita is customizable mainly by program, by code. It’s not point and click. So when people ask how can I make this change – we give them a snip of code and we don’t tell them that code they are click on that press save and so for that purpose a lot of the people who are attracted to Anahita, they like the customization using programming. And, the fact that they can actually see the code, they can play around with it and understand how it works and do their own customization. Especially that in Anahita and also it uses Nooku Framework. You can override every class, every html layout, every CSS, everything is overrideable which is probably one of the most customizable solutions available in the market today.
Bob: Did you want to add to that Ash?
Ash: No. Rastin got everything. [laughter]
Rastin: Am I being very thorough?
Ash: yes, that’s very good. Well we say that all the time. The best example is I put an example the other day for adding custom fields, I put it actually on our Anahita GitHub, we started a GitHub repository for code examples. I mean we are talking about, it wasn’t more than a few lines of code but it was about with the comments and everything it was about 40 lines of code and we added fields to groups and that was it. The thing is on a social network you don’t go change around things like that. If you add a field to a group it’s going to stay there for a while so if you do this once from performance perspective, from every part it’s much better. But of course it’s a lot harder for somebody who doesn’t understand coding to do that. So if people learn that it’s a lot more empowering because with 40 lines of code that we provided the code example they can actually add what they’ve been wanting for a while.
Rastin: One thing is interesting that happens quite often in the community, in Anahita you take less number of characters and words to write code than to complain about a lack of featureand we often see someone comes and write 5,000 words that they could have solved that problem in 200 words and we remind them that listen, you would have been a lot faster if you just asked us how can I add this feature? How do I write the code and we just give you the code and it would have been less writing than this lengthy complaint letter, “you know I’m ticked off because this feature that I write for my specific project doesn’t exist”.
Ash: One thing we’ve got so good, I think actually that’s a good thing is that, I became so comfortable to basically provide code examples and quickly build prototypes for people. Anahita itself provides a lot of infrastructure to be able to do those fast and also it is actually easier for me to write the code example than trying to explain how to do things. So I actually, if you notice on most of the topics, I ask people what is it and I quickly put a code example. It’s easier for me to write in code than to write in English.
Rastin: It’s very hacker of Ash.
Ash: It becomes your second nature actually, you’re trying to just show how it works and believe it or not when people actually start playing around with the code they actually feel a lot empowered, they feel good, they feel like they can control things and it’s not that difficult – everybody can do it.
Bob: Well you hit the nail on the head. There are a lot of people out there who won’t cross the bridge, they want to be consumers and they want to consume the software but that’s really not quite the nature of Open Source. Not that I’m going to change My SQL or Apache but for the other stuff that I use, you know sometimes the stuff comes incomplete. People who want it to be consumer anyways are always messing around or hiring people, so I just think it’s like the culture of Open Sourceis everybody is technical or has to know somebody to get it where they want to go. But like you said once they feel comfortable enough with the code, they feel connected which leads me to the next thing that you taught me! We talked about this in December:
Social networking environment to deliver services and support is better than conventional ticket systems and forums.
It’s just a better way of learning and feeling connected. Before I be quiet and give it over to you, you do something that’s quite remarkable in that Anahitopolis you make yourself incrediblyaccessible to the subscribers and it makes me feel very powerful with Anahita 1.6 Embryo that I’ve barely used but I know – no matter what I come across you’re going to be there and I’m going to be able to figure it out – so there! I’m actually open to the big vista out there of, I’ve barely used it but I don’t care because whatever comes up I know that I can overcome it.
Rastin: It could be because we use the code ourselves first before handing it out to people. That’s important to us. I don’t want to say we eat our own dog food because what we build is a lot better than dog food. [laughter] But I think it’s important we primarily build to meet our own needs and then we make that generic and we provide that to people and we focus on building foundations and yes, a social networking environment is far superior to the traditional ticketing system or discussion board for providing support because a social network environment puts communication on steroids, also it provides mechanism to filter out junk or unwanted content and so imagine when you can provide support or ask for help the same way that you communicate with your friends on Facebook or twitter or other social networks, it’s a lot easier and the communication is a lot more fluid so every morning I can just come have a look at my dashboard, quickly go through to get an idea about the personality of community at that moment and what’s going on and whether everyone is stressed or everyone is happy or I can quickly see the theme of the day and it’s a lot easier than the isolated one at a time environment of traditional help support system.
Ash: Well, that’s one and also I think it actually puts people out of the perspective that Anahitopolis is us vs communities – it’s more about everybody together. Whenever I’m on Anahitopolis I feel like just one of the people on there and there’s so many conversations that started happening without me being involved with so which is basically what we want is people to connect and try to share their experience regarding writing codes or anything. We’re just one of another people on the internet. I’m assuming this is how let’s say Mark Zukerbook feels when he uses Facebook, I don’t think he says “oh this is all mine”, he’s just one of the people using the Facebook. So that’s actually one of the aspects that I liked about Anahitopolis is exactly that – it’s a community of its own, everybody is doing what they want to do, well not what they want to do, but they’re still connecting the way they wanted to connect and there are conversations happening between people which is basically what we’re aiming for.
Bob: Things on your site, just one of these pet peeves that I have is people saying “you know that’s not what this thread is for”. That never happens on your site because a discussion leads to something else and then nobody says “you know, I have to enforce these rules of how these threads are”. It’s very casual, respectful, a little open like that for wherever the conversation goes because it’s incredible. It’s incredible what a help, I know I’m talking too much on the interview.
Rasin: No, I think that you’ve pointed out, that’s a very good point and I think on the traditional discussion boards. That’s the limitation of the medium because on the traditional discussion boards they define the categories and every topic is there and it’s supposed to serve a purpose. You basically define what you want to talk about in advance and then you start a thread or a topic and you have to stay on topic versus on a social network, in the Anahita environment we are against any form of tree structure hierarchy. A social network does not have hierarchy in it, we only have associations and relationships. So, you can pretty much anywhere start a conversation and the conversation can find its own path and once especially we add folksonomy you can tag as you go and the overall topic is known after the conversation is done or it changes as it evolves and the thread grows.
Ash: It’s very organic.
Rastin: That’s the nature of it, but in a social network you can do that and then the next step is to build tools to be able to find those, then configuration and search tools to find this information. In a traditional discussion board, because it’s a lot more rigid and it follows a tree structure categorization. You can’t go off topic or you can’t even change slightly a bit because everybody, you have to decide in advance what you’re going to talk about versus in the environment we are building for Anahita you start a topic and later as the topic grows it can belong to so many different categories. I can give an example.
Bob: You described it better than I did.
Rastin: Well, you did point out and it has been a difficulty for a lot of people coming from discussion boards or attaching a discussion board to a software that provides a user profile and in Anahita we don’t have something called discussion boards, we have an app called topics but discussions can happen anywhere, so the whole concept of discussion boards now evolve into social networks.
Bob: I wanted to get into the next thing about what you’ve taught me is:
communication is important; and, communication is not just shilling your wares.
You blog, you tweet, you produce your groundbreaking Hangout podcasts, you do it regularly but you’re not always selling what you’re doing and that’s your Hangouts, they’re almost not selling anything – it’s just the state of where it’s at. So you’ve taught me that that’s a good, that’s great. [laughter]
Rastin: I don’t think that the direct selling works and I don’t think we are particularly good at that. The Hangouts became a good opportunity for us to share with the world about what really goes on in the premium tribes and the spirit of people and the fact that they are spontaneous. When we start a Hangout we don’t know how it’s going to go, so that surprise element in it is pretty good and I think so far we’ve covered so many interesting projects and topics there, so we really have fun with the Hangouts ourselves, I hope it’s as interesting for people.
Bob: But you know, you don’t just get out there in front of people – you don’t just get out there when something good is happening, you know if somebody says you know, this is taking too long or whatever, I mean you talk about it! And there’s a lot of people who they only communicate when there’s something positive and they want to sell it. You’ve demonstrated that this is one way to do it, just keep communicating no matter what and be honest about it.
Rastin: It’s true, it’s a lot better to be honest about something realistic rather than trying to sugarcoat things, it especially never works in a medium such as ours. A social network is a very democratic environment and people can pretty much write everything they want on their profiles and as long as they are legal [laughter] so that part, yeah communication is definitely the key but we are not here to control people, we are here to nurture a community.
Ash & Rastin: Hello, hello are you there? I think we lost Bob. Can you hear me Ash?
Bob: Can you hear me?
Ash & Rastin: Yeah, hi Bob. I think we lost you for a moment.
Bob: Oh you lost me – I just knocked over my Blue microphone and it knocked out of Skype!
Ash/Rastin: Oh my goodness. I heard the bang and _____ working for you.
Bob: That’s a first.
Ash/Rastin: It happens to all great podcasters [sure! -Bob]. Was it Leo Laporte who the exercise ball exploded. The exercise ball just exploded. I think this is your Leo Laporte moment Bob.
Bob: Well you know, I’m honoured. Can you hear me now?
Ash/Rastin: Yes yes.
Bob: Thanks. I just loved that point – I swept my hand and my mike went – right on the floor.
Rastin: Those must be really good answers we are giving you.
Bob: Yeah [laughter] I’m turning red. You know I’ve got these pet peeves and one of them is I’m on all these lists and I only get people when they want to sell something and there’s a big gap and I go “so where were you for three months?” I’ll never know. They come out and you’re just showing so much leadership with these hangouts. On our December podcast we talk about honest communication and all that so I won’t repeat it but I wanted to shift gears. You can hear me right?
Ash/Rastin: Yes, yes we can.
A&R: Because it’s so easy to use and it provides so many new vitamins that are fabulous [laughs] and it has all you need in one spot for building web applications… to give you an example especially if you are coming from Drupal world and imagine having a web package apps and UI and building something. Building a template and maintaining it and building all the applicable GUI’s in a CMS environment is such difficult work – it’s very time consuming. And one of the things we wanted to do in Anahita is that this very applications oriented; it is not a CMS environment. Anahita needed a very powerful library to provide all the user interface elements everything that is outside the box. So Bootstrap did a marvelous job and it’s also it follows a pattern. Right now Anahita we just finished incorporating Bootstrap 2.0 and it follows an OO pattern. We have we have actors and we have mediums and they are being used in the entire site. If you want to build a new application you have a lot of new elements or styling that is provided either by Bootstrap or by Anahita and again it is written using existing code the Bootstrap provides. Anahita’s CSS is compressed into one file that is about 130kb, which leads to a nice download of the user interfaces and I’m telling you – you can’t build those user interfaces with traditional CSS code. It’s going to be too difficult to maintain.
Bob: Wow. Did you want to add to that Ash?
Ash: Well, I was just going to say that the whole idea of Bootstrap is just basically a UI framework. You will be using frameworks for building software. There is a new concept, well it’s not so new, but recently has been coming out since CSS3 and it’s not the only one, there are actually other ones, other UI frameworks, basically they took the approach of software frameworks and they applied to the UI and basically they give you a box, a lego box, a box of elements and tools and a mind set on how to build; and then that’s basically what the Bootstrap is and that’s why it takes less time to build UI’s because that’s the nature of the framework, just like any software framework it makes you get started really fast and do things really fast and then they also on top of this have a new way of doing CSS basically there are traditional CSS which is manually entering CSS and there is a new way of CSS uses some kind of object oriented-ness to write CSS. Less is one of them, there is SCSS, something like that, there are two different ones and Bootstrap uses a less which is very nice, very natural. But yeah, Bootstrap is basically like any other framework – it gets you started, it basically takes the thinking out of you and you can just focus on what you need to build.
Bob: We continue with Part 2 of our interview with Ash and Rastin of Anahitopoliss.com and the Bob Bloom Show Number 51. In the meantime this is Bob Bloom, signing off, wishing you a profitable week.
You have been listening to a SouthLaSalleMEDIA.com production. Opinions expressed are not necessarily those of SouthLaSalleMEDIA dot com, nor of the organizations represented. Links and materials discussed on air are available in the Show Notes for this show. Information contained herein have been obtained from sources believed to be reliable, but are not guaranteed. Podcasts are released under a creative commons licence. Some rights are reserved. Email correspondence to the attention of Bob Bloom at info at SouthLaSalleMedia dot com.