diff options
-rw-r--r-- | doc/history.md | 18 | ||||
-rw-r--r-- | include/zot.php | 12 | ||||
-rw-r--r-- | mod/import.php | 51 | ||||
-rw-r--r-- | version.inc | 2 |
4 files changed, 72 insertions, 11 deletions
diff --git a/doc/history.md b/doc/history.md index 614696435..32917712f 100644 --- a/doc/history.md +++ b/doc/history.md @@ -1,7 +1,7 @@ -$Projectname History -==================== +Redmatrix History +================= -$Projectname is a collaborative effort by the $Projectname community and based on work introduced in Friendica by the Friendica community. The core design, the project mission, and software base itself were created/written primarily by Mike Macgirvin and represent the culmination of over a decade of software design using variations of this platform and an evolving vision of the role of communication software in our lives. Many others have contributed to this work, both conceptually and in terms of actual code (way too many to list individually). +Redmatrix is a collaborative effort by the Redmatrix community and based on work introduced in Friendica by the Friendica community. The core design, the project mission, and software base itself were created/written primarily by Mike Macgirvin and represent the culmination of over a decade of software design using variations of this platform and an evolving vision of the role of communication software in our lives. Many others have contributed to this work, both conceptually and in terms of actual code (way too many to list individually). ##Mike Macgirvin -- Biography @@ -10,9 +10,9 @@ Mike Macgirvin is an American software engineer now living in Australia. He spen During a layoff round, Mike was let go from America Online in August 2001 and purchased a music store in Mountain View, California later to be known as "Sonica Music Company". Opening a retail store for non-essential goods at the beginning of a prolonged economic downturn was in retrospect probably not the wisest career move. Sonica eventually folded; in late 2006. Mike returned to working on software and systems support full-time and was employed briefly at Symantec before moving to Australia in early 2007. He currently lives on a farm "out in the middle of nowhere" and is employed as a Computer Systems Officer at the University of Wollongong. -##$Projectname - The Early Years +##Redmatrix - The Early Years -The software which went into creating $Projectname has been through three distinct historical phases. It began in 2003 when Mike Macgirvin was looking for a content management system to power the website for his music store and found the available solutions to be lacking in various respects. The project was born as the "PurpleHaze weblog" under the nom de plume "Nerdware Communications". It was a multi-user PHP/MySQL CMS which provided blogs, forums, photo albums, events and more. Initially it provided the basis for a social community and shopping for customers of the store, but was also linked to Mike's personal weblog running on another domain. The distinguishing characteristic of this software was the ability for so-called "normal users" to re-assemble the components and choose different content feeds - and in essence create their own personal "multi-user CMS" as a view. Their custom view was able to communicate with anybody else that used the system, but could be partitioned so that adult sites and motorcycle enthusiast sites would not be visible to each other and not clash (or in this case Mike's personal website and the music store website). This software was developed primarily from 2003 until 2008. +The software which went into creating Redmatrix has been through three distinct historical phases. It began in 2003 when Mike Macgirvin was looking for a content management system to power the website for his music store and found the available solutions to be lacking in various respects. The project was born as the "PurpleHaze weblog" under the nom de plume "Nerdware Communications". It was a multi-user PHP/MySQL CMS which provided blogs, forums, photo albums, events and more. Initially it provided the basis for a social community and shopping for customers of the store, but was also linked to Mike's personal weblog running on another domain. The distinguishing characteristic of this software was the ability for so-called "normal users" to re-assemble the components and choose different content feeds - and in essence create their own personal "multi-user CMS" as a view. Their custom view was able to communicate with anybody else that used the system, but could be partitioned so that adult sites and motorcycle enthusiast sites would not be visible to each other and not clash (or in this case Mike's personal website and the music store website). This software was developed primarily from 2003 until 2008. In 2006 this software was used as the prototype for Symantec's "safeweb" reputation and community site. It was developed and enhanced until about 2008. A rewrite took place in 2008 named "Reflection" but work stagnated as the community dwindled. The need for content management systems and communications software dropped dramatically during this time as humans flocked to the new social aggregrators - Facebook and Twitter. @@ -32,19 +32,19 @@ Mike realised he did not want to be held hostage to the decisions that other pro Mike had been working on this project for some time and there were a number of things which needed re-writing, including the base communication protocol which Friendica used (DFRN or the "Distributed Friends and Relations Network" protocol). These ideas were starting to emerge as a different method of communication he called "zot". Zot began as a way to create a common language for federated websites, but there was no interest in this ability and as mentioned, the federated web was crumbling. The first version was soon scrapped and zot was re-designed and re-ignited as a streamlined communication protocol which was location-independent; e.g. not tied to any website. This would allow people to carry on unaffected if their website operator shut down temporarily or permanently. They wouldn't have to make friends all over again, and permissions of everything on the system wouldn't have to be changed to allow bob@site1 to see something that was private to him, even though he was now bob@site2. This was a serious problem with decentralisation. People moved and their online identities were lost and had to be re-created from scratch and existing relationships destroyed and had to be created all over again. -##$Projectname +##Redmatrix In July 2012, Mike left the Friendica project and began development of "zot" and a new base project called "red" in his somewhat elusive *spare time*. Red is Spanish for "network". It wasn't really a "social network" and especially not a "federated social network". It was just Red (technically "la red"), or "the network". Work began by removing all the "federation" components and going back to basics - communication and remote authentication. It was a major re-write and took roughly six months before even basic communication was re-established. It was also no longer compatible with Friendica - which had been given to the "Friendica community" and by this time (December 2012) was developing separately on its own track. It became clear during this time that the single most compelling feature of the project wasn't the social network at all, but the authentication layer and decentralised access control mechanisms. Combined with zot's location independence it created a new model for software which had never existed previously - decentralised identity-aware web publishing and single sign-on to any compatible provider across the web. These weren't *evolutionary*, they were **revolutionary**. One of the biggest flaws of the modern web is the reliance on different passwords for every service you use, or reliance on a single provider if you were to tie them to - say your Facebook login. Facebook can remove your account at any time. Gone. If you rely on their authentication for all your websites, your entire online identity - now gone. This is also what was missing from Friendica - a compelling software feature which could stand on its own, without requiring a social network and especially without requiring a federated social network with all the mentioned external dependencies. -An early visitor to the project noted that he had some difficulty finding the project on Google because of the choice of name - "red". Yes, this was a poor decision in retrospect. We were buried on page 23,712 of the search results. The concept that was emerging around this identity-aware publishing was that of "a matrix of inter-connected thought streams", since we didn't have a concept of "people" and "friends". All were just connected "channels" with different ways to connect. So "$Projectname" was chosen to give it a searchable name. It had nothing to do with the Matrix film and red and blue pills, though that is frequently cited (erronously); and in fact isn't a bad analogy. +An early visitor to the project noted that he had some difficulty finding the project on Google because of the choice of name - "red". Yes, this was a poor decision in retrospect. We were buried on page 23,712 of the search results. The concept that was emerging around this identity-aware publishing was that of "a matrix of inter-connected thought streams", since we didn't have a concept of "people" and "friends". All were just connected "channels" with different ways to connect. So "Redmatrix" was chosen to give it a searchable name. It had nothing to do with the Matrix film and red and blue pills, though that is frequently cited (erronously); and in fact isn't a bad analogy. The concept of identity-aware content was alien to anything that existed previously on the web, so to make it useful we had to provide the ability to use it for content. It needed content publishing tools. This brought back concepts from the old "Content Management System" on which the software was originally based. To get it up and running quickly we created a markup language for webpages called "Comanche" which let you describe a page in high-level terms based on bbcode tags. We also added WebDAV so you could put decentralised access control on files and drag/drop from your operating system. So now you could have private photos, webpages, files, events, conversations, chatrooms - and they are visible to those you choose - no matter what site they use. All they need is zot. And your viewers could move to another site or just pop up at a different site any time they want and we don't care. And it **also** had a built-in social network; with lots of additional privacy and encryption features which were added even before the Snowden revelations gave them added urgency. -Over time a few federation components re-emerged. The ability to view RSS feeds was important to many people. Diaspora never really managed to re-write their protocol, so that was re-implemented and allowed $Projectname to connect with Diaspora and Friendica again (Friendica still had their Diaspora protocol intact, so this was the most common language now remaining on the free web - despite its faults). Diaspora communications aren't able to make use of the advanced identity features, but they work for basic communications. +Over time a few federation components re-emerged. The ability to view RSS feeds was important to many people. Diaspora never really managed to re-write their protocol, so that was re-implemented and allowed Redmatrix to connect with Diaspora and Friendica again (Friendica still had their Diaspora protocol intact, so this was the most common language now remaining on the free web - despite its faults). Diaspora communications aren't able to make use of the advanced identity features, but they work for basic communications. +Mike stepped down as active coordinator for the project in early 2015. -Mike resigned from the project as an active coordinator in early 2015. #include doc/macros/main_footer.bb; diff --git a/include/zot.php b/include/zot.php index 0cb3ab9ed..bb1ccc46a 100644 --- a/include/zot.php +++ b/include/zot.php @@ -1537,7 +1537,17 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $ $tag_delivery = tgroup_check($channel['channel_id'],$arr); - $perm = (($arr['mid'] == $arr['parent_mid']) ? 'send_stream' : 'post_comments'); + if ($arr['mid'] == $arr['parent_mid']){ + $perm = 'send_stream'; + } + else{ + $r = q("select item_owner from item where item.mid == '%s' limit 1", + dbesc($arr['parent_mid'])); + if($channel['channel_hash'] == $r[0]['item_owner']) + $perm = 'post_comments'; + else + $perm = 'send_stream'; + } // This is our own post, possibly coming from a channel clone diff --git a/mod/import.php b/mod/import.php index 92de33059..2b1bdb138 100644 --- a/mod/import.php +++ b/mod/import.php @@ -437,10 +437,61 @@ function import_post(&$a) { // FIXME - ensure we have an xchan if somebody is trying to pull a fast one +<<<<<<< HEAD if($completed < 8) { $friends = 0; $feeds = 0; +======= + + $friends = 0; + $feeds = 0; + + // import contacts + $abooks = $data['abook']; + if($abooks) { + foreach($abooks as $abook) { + if(array_key_exists('abook_blocked',$abook) && intval($abook['abook_blocked'])) { + $abook['abook_flags'] |= ABOOK_FLAG_BLOCKED; + } + if(array_key_exists('abook_ignored',$abook) && intval($abook['abook_ignored'])) { + $abook['abook_flags'] |= ABOOK_FLAG_IGNORED; + } + if(array_key_exists('abook_hidden',$abook) && intval($abook['abook_hidden'])) { + $abook['abook_flags'] |= ABOOK_FLAG_HIDDEN; + } + if(array_key_exists('abook_archived',$abook) && intval($abook['abook_archived'])) { + $abook['abook_flags'] |= ABOOK_FLAG_ARCHIVED; + } + if(array_key_exists('abook_pending',$abook) && intval($abook['abook_pending'])) { + $abook['abook_flags'] |= ABOOK_FLAG_PENDING; + } + if(array_key_exists('abook_unconnected',$abook) && intval($abook['abook_unconnected'])) { + $abook['abook_flags'] |= ABOOK_FLAG_UNCONNECTED; + } + if(array_key_exists('abook_self',$abook) && intval($abook['abook_self'])) { + $abook['abook_flags'] |= ABOOK_FLAG_SELF; + } + if(array_key_exists('abook_feed',$abook) && intval($abook['abook_feed'])) { + $abook['abook_flags'] |= ABOOK_FLAG_FEED; + } + + if(! ( $abook['abook_flags'] & ABOOK_FLAG_SELF)) { + if($max_friends !== false && $friends > $max_friends) + continue; + if($max_feeds !== false && ($abook['abook_flags'] & ABOOK_FLAG_FEED) && $feeds > $max_feeds) + continue; + } + unset($abook['abook_id']); + $abook['abook_account'] = get_account_id(); + $abook['abook_channel'] = $channel['channel_id']; + dbesc_array($abook); + $r = dbq("INSERT INTO abook (`" + . implode("`, `", array_keys($abook)) + . "`) VALUES ('" + . implode("', '", array_values($abook)) + . "')" ); +>>>>>>> d882b3274bd3b2479b924683b75b03c7854ad453 // import contacts $abooks = $data['abook']; diff --git a/version.inc b/version.inc index 699013c51..3eb040d29 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-08-08.1118 +2015-08-11.1121 |