https://wiki.diasporafoundation.org/api.php?action=feedcontributions&user=DeadSuperHero&feedformat=atomdiaspora* project wiki - User contributions [en]2024-03-28T10:08:47ZUser contributionsMediaWiki 1.39.3https://wiki.diasporafoundation.org/wiki/index.php?title=User:DeadSuperHero/Proposal:User_Directories_in_Diaspora&diff=3989User:DeadSuperHero/Proposal:User Directories in Diaspora2015-03-23T17:37:27Z<p>DeadSuperHero: /* Implementation Specs */</p>
<hr />
<div>This proposal is a work-in-progress. The purpose is to revisit some of the core ideas in how user discovery is currently done within Diaspora as well as the wider free web.<br />
<br />
== Current Implementation ==<br />
At the moment, Diaspora has three pieces of the puzzle regarding user discovery. These three methods have historically played a part in how Diaspora users end up connecting on the network.<br />
<br />
# '''Tagged Searches''' - Searching for tagged posts brings up profiles of anyone that has those tags associated with their profiles. <br />
# '''Community Spotlight''' - Pods can feature a handful of its members on a special page for other people to discover and follow. <br />
# '''Search Lookup''' - Members on a pod can be searched for by their username or handle.<br />
<br />
<br />
=== Limitations ===<br />
<br />
# '''Tagged Searches''' - User profiles can only have 5 tags, and not all search results for tags are necessarily shared between pods.<br />
# '''Community Spotlight''' - Although it works well as a feature, community spotlight primarily just features a few profiles that are given a community spotlight user role. This mostly exists as a minimal local directory for pods; results are neither shared nor federated between pods.<br />
# '''Search Lookup''' - Although a webfinger request usually works well enough for adding a contact, newcomers may not be sure of how to do this, and might find it difficult to find their friends who might be on any given pod at any given time.<br />
<br />
== RedMatrix-inspired Implementation ==<br />
<br />
[[File:RedMatrix Directory.png|800px|thumb|left|A directory for a RedMatrix hub.]]<br />
<br />
For Red users, the directory is mirrored between directory server sites, and any of these mirrors can provide directory services to smaller sites or those that don’t wish to take on the directory role themselves. <br />
<br />
Within the Red ecosystem, there are currently 9 mirrored directory servers out of about 300 sites. Additionally there are 7 “standalone” directory servers which are essentially private directory domains that are running disconnected from the overall matrix. (Clusters of sites can also participate in directory “realms” which can be hierarchical or clustered, much like Active Directory). <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
=== Implementation Specs ===<br />
<br />
Current details found from [https://github.com/friendica/red/wiki/red_directory|The Red Wiki]; this section is subject to updates.<br />
<br />
# '''Directory Structure''' - Perhaps the easiest way to describe the Red Directory at a high level is to provide a comparison to the current Friendica Global Directory. The Friendica Global Directory consists of two levels - a site directory, and a single Global Directory. Permissions are granted by members to appear in either or both. The Global Directory is a single instance running at dir.friendica.com, and communicates by xml messages and scraping profiles to obtain information. The Red Directory does not have two levels. It is a single, replicated global directory which can be mirrored anywhere.<br />
# '''Censorship''' - The most problematic aspect of a global directory is the ability to flag indecent/adult profile information. The Red Directory will attempt some novel solutions in this regard by providing a web of trust. Anybody may censor a profile entry using facilities with the Red Directory search interface. This will unconditionally block the entry from their view on a personal level and without question. This information will also be sent to the nearest mirror. An accumulation of block messages will lead to the entry being blocked at the directory level. The number required cannot be a fixed number, as this would make the system open to manipulation. Additionally, a mirror may indicate a trust level with other directories, and only block an entry if there is consensus amongst its peer group. Finally, a "block" does not remove or even block an entry from being displayed in the directory. It adds an "offensive" weighting to the entry. Individuals can set a weighting on a personal level of entries that they are comfortable viewing. The more peers which flag an entry, the higher the weighting.<br />
# '''Zot Directory Update Messages''' - There are still some communication details to be worked out, but the best model at the moment is to provide a single zot_uid to be used for directory information. The zot_uid is the exact string "Directory". Being a zot_uid means it can be initiated from any location. Since the directory contains only public information, the messages will not use encryption and not require key verification.<br />
<br />
=== Benefits ===<br />
<br />
# Users would be easier to find across pods, regardless of what pod they're on. This could help connect people on "island" pods connect with people on the wider free network.<br />
# Profiles could be filtered through based on whether they were local to a pod, or part of the wider net.<br />
#<br />
<br />
== Loomio Discussion ==<br />
The Loomio discussion about this can be found here: https://www.loomio.org/d/LJaVegpr/user-directories-in-diaspora<br />
<br />
[[Category: Proposals]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=User:DeadSuperHero/Proposal:User_Directories_in_Diaspora&diff=3988User:DeadSuperHero/Proposal:User Directories in Diaspora2015-03-23T17:29:58Z<p>DeadSuperHero: /* Implementation Specs */</p>
<hr />
<div>This proposal is a work-in-progress. The purpose is to revisit some of the core ideas in how user discovery is currently done within Diaspora as well as the wider free web.<br />
<br />
== Current Implementation ==<br />
At the moment, Diaspora has three pieces of the puzzle regarding user discovery. These three methods have historically played a part in how Diaspora users end up connecting on the network.<br />
<br />
# '''Tagged Searches''' - Searching for tagged posts brings up profiles of anyone that has those tags associated with their profiles. <br />
# '''Community Spotlight''' - Pods can feature a handful of its members on a special page for other people to discover and follow. <br />
# '''Search Lookup''' - Members on a pod can be searched for by their username or handle.<br />
<br />
<br />
=== Limitations ===<br />
<br />
# '''Tagged Searches''' - User profiles can only have 5 tags, and not all search results for tags are necessarily shared between pods.<br />
# '''Community Spotlight''' - Although it works well as a feature, community spotlight primarily just features a few profiles that are given a community spotlight user role. This mostly exists as a minimal local directory for pods; results are neither shared nor federated between pods.<br />
# '''Search Lookup''' - Although a webfinger request usually works well enough for adding a contact, newcomers may not be sure of how to do this, and might find it difficult to find their friends who might be on any given pod at any given time.<br />
<br />
== RedMatrix-inspired Implementation ==<br />
<br />
[[File:RedMatrix Directory.png|800px|thumb|left|A directory for a RedMatrix hub.]]<br />
<br />
For Red users, the directory is mirrored between directory server sites, and any of these mirrors can provide directory services to smaller sites or those that don’t wish to take on the directory role themselves. <br />
<br />
Within the Red ecosystem, there are currently 9 mirrored directory servers out of about 300 sites. Additionally there are 7 “standalone” directory servers which are essentially private directory domains that are running disconnected from the overall matrix. (Clusters of sites can also participate in directory “realms” which can be hierarchical or clustered, much like Active Directory). <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
=== Implementation Specs ===<br />
<br />
Current details found from [https://github.com/friendica/red/wiki/red_directory|The Red Wiki]<br />
<br />
# '''Directory Structure''' - Perhaps the easiest way to describe the Red Directory at a high level is to provide a comparison to the current Friendica Global Directory. The Friendica Global Directory consists of two levels - a site directory, and a single Global Directory. Permissions are granted by members to appear in either or both. The Global Directory is a single instance running at dir.friendica.com, and communicates by xml messages and scraping profiles to obtain information. The Red Directory does not have two levels. It is a single, replicated global directory which can be mirrored anywhere.<br />
# '''Censorship''' - The most problematic aspect of a global directory is the ability to flag indecent/adult profile information. The Red Directory will attempt some novel solutions in this regard by providing a web of trust. Anybody may censor a profile entry using facilities with the Red Directory search interface. This will unconditionally block the entry from their view on a personal level and without question. This information will also be sent to the nearest mirror. An accumulation of block messages will lead to the entry being blocked at the directory level. The number required cannot be a fixed number, as this would make the system open to manipulation. Additionally, a mirror may indicate a trust level with other directories, and only block an entry if there is consensus amongst its peer group. Finally, a "block" does not remove or even block an entry from being displayed in the directory. It adds an "offensive" weighting to the entry. Individuals can set a weighting on a personal level of entries that they are comfortable viewing. The more peers which flag an entry, the higher the weighting.<br />
<br />
=== Benefits ===<br />
<br />
# Users would be easier to find across pods, regardless of what pod they're on. This could help connect people on "island" pods connect with people on the wider free network.<br />
# Profiles could be filtered through based on whether they were local to a pod, or part of the wider net.<br />
#<br />
<br />
== Loomio Discussion ==<br />
The Loomio discussion about this can be found here: https://www.loomio.org/d/LJaVegpr/user-directories-in-diaspora<br />
<br />
[[Category: Proposals]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=User:DeadSuperHero/Proposal:User_Directories_in_Diaspora&diff=3987User:DeadSuperHero/Proposal:User Directories in Diaspora2015-03-23T16:58:55Z<p>DeadSuperHero: /* RedMatrix-inspired Implementation */</p>
<hr />
<div>This proposal is a work-in-progress. The purpose is to revisit some of the core ideas in how user discovery is currently done within Diaspora as well as the wider free web.<br />
<br />
== Current Implementation ==<br />
At the moment, Diaspora has three pieces of the puzzle regarding user discovery. These three methods have historically played a part in how Diaspora users end up connecting on the network.<br />
<br />
# '''Tagged Searches''' - Searching for tagged posts brings up profiles of anyone that has those tags associated with their profiles. <br />
# '''Community Spotlight''' - Pods can feature a handful of its members on a special page for other people to discover and follow. <br />
# '''Search Lookup''' - Members on a pod can be searched for by their username or handle.<br />
<br />
<br />
=== Limitations ===<br />
<br />
# '''Tagged Searches''' - User profiles can only have 5 tags, and not all search results for tags are necessarily shared between pods.<br />
# '''Community Spotlight''' - Although it works well as a feature, community spotlight primarily just features a few profiles that are given a community spotlight user role. This mostly exists as a minimal local directory for pods; results are neither shared nor federated between pods.<br />
# '''Search Lookup''' - Although a webfinger request usually works well enough for adding a contact, newcomers may not be sure of how to do this, and might find it difficult to find their friends who might be on any given pod at any given time.<br />
<br />
== RedMatrix-inspired Implementation ==<br />
<br />
[[File:RedMatrix Directory.png|800px|thumb|left|A directory for a RedMatrix hub.]]<br />
<br />
For Red users, the directory is mirrored between directory server sites, and any of these mirrors can provide directory services to smaller sites or those that don’t wish to take on the directory role themselves. <br />
<br />
Within the Red ecosystem, there are currently 9 mirrored directory servers out of about 300 sites. Additionally there are 7 “standalone” directory servers which are essentially private directory domains that are running disconnected from the overall matrix. (Clusters of sites can also participate in directory “realms” which can be hierarchical or clustered, much like Active Directory). <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
=== Implementation Specs ===<br />
<br />
[wip]<br />
<br />
=== Benefits ===<br />
<br />
# Users would be easier to find across pods, regardless of what pod they're on. This could help connect people on "island" pods connect with people on the wider free network.<br />
# Profiles could be filtered through based on whether they were local to a pod, or part of the wider net.<br />
#<br />
<br />
== Loomio Discussion ==<br />
The Loomio discussion about this can be found here: https://www.loomio.org/d/LJaVegpr/user-directories-in-diaspora<br />
<br />
[[Category: Proposals]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=User:DeadSuperHero/Proposal:User_Directories_in_Diaspora&diff=3986User:DeadSuperHero/Proposal:User Directories in Diaspora2015-03-23T16:57:15Z<p>DeadSuperHero: /* Current Implementation */</p>
<hr />
<div>This proposal is a work-in-progress. The purpose is to revisit some of the core ideas in how user discovery is currently done within Diaspora as well as the wider free web.<br />
<br />
== Current Implementation ==<br />
At the moment, Diaspora has three pieces of the puzzle regarding user discovery. These three methods have historically played a part in how Diaspora users end up connecting on the network.<br />
<br />
# '''Tagged Searches''' - Searching for tagged posts brings up profiles of anyone that has those tags associated with their profiles. <br />
# '''Community Spotlight''' - Pods can feature a handful of its members on a special page for other people to discover and follow. <br />
# '''Search Lookup''' - Members on a pod can be searched for by their username or handle.<br />
<br />
<br />
=== Limitations ===<br />
<br />
# '''Tagged Searches''' - User profiles can only have 5 tags, and not all search results for tags are necessarily shared between pods.<br />
# '''Community Spotlight''' - Although it works well as a feature, community spotlight primarily just features a few profiles that are given a community spotlight user role. This mostly exists as a minimal local directory for pods; results are neither shared nor federated between pods.<br />
# '''Search Lookup''' - Although a webfinger request usually works well enough for adding a contact, newcomers may not be sure of how to do this, and might find it difficult to find their friends who might be on any given pod at any given time.<br />
<br />
== RedMatrix-inspired Implementation ==<br />
<br />
[[File:RedMatrix Directory.png|800px|thumb|left|A directory for a RedMatrix hub.]]<br />
<br />
For Red users, the directory is mirrored between directory server sites, and any of these mirrors can provide directory services to smaller sites or those that don’t wish to take on the directory role themselves. <br />
<br />
Within the Red ecosystem, there are currently 9 mirrored directory servers out of about 300 sites. Additionally there are 7 “standalone” directory servers which are essentially private directory domains that are running disconnected from the overall matrix. (Clusters of sites can also participate in directory “realms” which can be hierarchical or clustered, much like Active Directory). <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
=== Benefits ===<br />
<br />
# Users would be easier to find across pods, regardless of what pod they're on. This could help connect people on "island" pods connect with people on the wider free network.<br />
# Profiles could be filtered through based on whether they were local to a pod, or part of the wider net.<br />
# <br />
<br />
<br />
== Loomio Discussion ==<br />
The Loomio discussion about this can be found here: https://www.loomio.org/d/LJaVegpr/user-directories-in-diaspora<br />
<br />
[[Category: Proposals]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=User:DeadSuperHero/Proposal:User_Directories_in_Diaspora&diff=3985User:DeadSuperHero/Proposal:User Directories in Diaspora2015-03-23T16:56:06Z<p>DeadSuperHero: /* Limitations */</p>
<hr />
<div>This proposal is a work-in-progress. The purpose is to revisit some of the core ideas in how user discovery is currently done within Diaspora as well as the wider free web.<br />
<br />
== Current Implementation ==<br />
At the moment, Diaspora has three pieces of the puzzle regarding user discovery.<br />
<br />
# '''Tagged Searches''' - Searching for tagged posts brings up profiles of anyone that has those tags associated with their profiles. <br />
# '''Community Spotlight''' - Pods can feature a handful of its members on a special page for other people to discover and follow. <br />
# '''Search Lookup''' - Members on a pod can be searched for by their username or handle.<br />
<br />
<br />
=== Limitations ===<br />
<br />
# '''Tagged Searches''' - User profiles can only have 5 tags, and not all search results for tags are necessarily shared between pods.<br />
# '''Community Spotlight''' - Although it works well as a feature, community spotlight primarily just features a few profiles that are given a community spotlight user role. This mostly exists as a minimal local directory for pods; results are neither shared nor federated between pods.<br />
# '''Search Lookup''' - Although a webfinger request usually works well enough for adding a contact, newcomers may not be sure of how to do this, and might find it difficult to find their friends who might be on any given pod at any given time.<br />
<br />
== RedMatrix-inspired Implementation ==<br />
<br />
[[File:RedMatrix Directory.png|800px|thumb|left|A directory for a RedMatrix hub.]]<br />
<br />
For Red users, the directory is mirrored between directory server sites, and any of these mirrors can provide directory services to smaller sites or those that don’t wish to take on the directory role themselves. <br />
<br />
Within the Red ecosystem, there are currently 9 mirrored directory servers out of about 300 sites. Additionally there are 7 “standalone” directory servers which are essentially private directory domains that are running disconnected from the overall matrix. (Clusters of sites can also participate in directory “realms” which can be hierarchical or clustered, much like Active Directory). <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
=== Benefits ===<br />
<br />
# Users would be easier to find across pods, regardless of what pod they're on. This could help connect people on "island" pods connect with people on the wider free network.<br />
# Profiles could be filtered through based on whether they were local to a pod, or part of the wider net.<br />
# <br />
<br />
<br />
== Loomio Discussion ==<br />
The Loomio discussion about this can be found here: https://www.loomio.org/d/LJaVegpr/user-directories-in-diaspora<br />
<br />
[[Category: Proposals]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=User:DeadSuperHero/Proposal:User_Directories_in_Diaspora&diff=3984User:DeadSuperHero/Proposal:User Directories in Diaspora2015-03-23T01:04:14Z<p>DeadSuperHero: Created page with "This proposal is a work-in-progress. The purpose is to revisit some of the core ideas in how user discovery is currently done within Diaspora as well as the wider free web. =..."</p>
<hr />
<div>This proposal is a work-in-progress. The purpose is to revisit some of the core ideas in how user discovery is currently done within Diaspora as well as the wider free web.<br />
<br />
== Current Implementation ==<br />
At the moment, Diaspora has three pieces of the puzzle regarding user discovery.<br />
<br />
# '''Tagged Searches''' - Searching for tagged posts brings up profiles of anyone that has those tags associated with their profiles. <br />
# '''Community Spotlight''' - Pods can feature a handful of its members on a special page for other people to discover and follow. <br />
# '''Search Lookup''' - Members on a pod can be searched for by their username or handle.<br />
<br />
<br />
=== Limitations ===<br />
[wip]<br />
<br />
== RedMatrix-inspired Implementation ==<br />
<br />
[[File:RedMatrix Directory.png|800px|thumb|left|A directory for a RedMatrix hub.]]<br />
<br />
For Red users, the directory is mirrored between directory server sites, and any of these mirrors can provide directory services to smaller sites or those that don’t wish to take on the directory role themselves. <br />
<br />
Within the Red ecosystem, there are currently 9 mirrored directory servers out of about 300 sites. Additionally there are 7 “standalone” directory servers which are essentially private directory domains that are running disconnected from the overall matrix. (Clusters of sites can also participate in directory “realms” which can be hierarchical or clustered, much like Active Directory). <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
=== Benefits ===<br />
<br />
# Users would be easier to find across pods, regardless of what pod they're on. This could help connect people on "island" pods connect with people on the wider free network.<br />
# Profiles could be filtered through based on whether they were local to a pod, or part of the wider net.<br />
# <br />
<br />
<br />
== Loomio Discussion ==<br />
The Loomio discussion about this can be found here: https://www.loomio.org/d/LJaVegpr/user-directories-in-diaspora<br />
<br />
[[Category: Proposals]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=File:RedMatrix_Directory.png&diff=3983File:RedMatrix Directory.png2015-03-23T00:59:52Z<p>DeadSuperHero: A demonstration of directories in RedMatrix.</p>
<hr />
<div>== Summary ==<br />
A demonstration of directories in RedMatrix.<br />
== Licensing ==<br />
{{self|Cc-zero}}</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=User:DenSchub/Diaspora_API_proposal&diff=1903User:DenSchub/Diaspora API proposal2013-09-07T17:33:27Z<p>DeadSuperHero: /* Federation API */</p>
<hr />
<div>{{Speculative}}<br />
<br />
This is merely a work-in-progress document to put some ideas together about a set of APIs for Diaspora and how they would work. Keep in mind, this article at this point is a stub. It will be polished up several times over before a vote is put forward.<br />
<br />
If you're a developer interested in working with Diaspora's API, please give feedback on the APIs detailed below.<br />
<br />
=== Authentication model ===<br />
<br />
The hard part is to provide a proper authentication layer suitable for all sorts of clients, be it other webservices, desktop clients, home servers or mobile devices. Since this isn't solved yet everything else in this document is highly speculative. Getting a proper authentication model is the one important step, once that's done everything else is mostly defining the routes and JSON structures and some boilerplate code to implement them.<br />
<br />
=== Federation API ===<br />
A better overview is available [http://rdoc.info/github/Raven24/diaspora-federation/master/frames here]. It is possible in the future, with the gemification of our federation protocol, that we might be able to explore alternative federation API protocols such as Friendica Red and Tent.<br />
<br />
=== Third Party Client API ===<br />
We need to establish an official client API for Diaspora apps. Many users would love to have native mobile clients, for example. A comprehensive list of functionalities will need to be addressed:<br />
<br />
* Streams<br />
* Posts<br />
* Re-Shares<br />
* Likes<br />
* Comments<br />
* Aspects<br />
* Identity (for Authentication)<br />
* ACL (app access permissions)<br />
* Messages<br />
* Photos<br />
* Profiles<br />
* Tags<br />
* Cross-posting<br />
* Ignoring<br />
* Location<br />
* Application Name<br />
<br />
Another interesting question worth asking would be whether or not to share content from a webapp onto Diaspora itself, and how to do it. If a user shares a video from a MediaGoblin installation with some kind of Diaspora cross-posting button, should any link to the content be hiddden, should oEmbed content be rendered in posts and on the stream? At what level can apps be leveraged as part of a good user experience?<br />
<br />
=== Migration API ===<br />
This is an API not specifically made for clients; but rather, for transfer of user data. A Migration request would work like so:<br />
# User registers on the target pod that they want to transfer to.<br />
# User makes two-way OAuth connection between accounts on both pods.<br />
# User clicks "Export" on old pod in User Settings panel, data is transfered securely to their account on the target pod.<br />
# All likes, messages, status updates, photos, and contacts are moved over<br />
# As a final act, the original account closes down, all federated content from user is now attributed to new account on different pod.<br />
=== PodStatus API ===<br />
Create an API dedicated specifically for reporting the following variables:<br />
* Is the pod up and running?<br />
* Is it federating with the network?<br />
* What version is it running?<br />
* How many publicly registered active users are on the pod?<br />
* Is the pod open for registrations?<br />
=== TOS;DR API ===<br />
[http://tosdr.org/ Terms of Service, Didn't Read] is an initiative to provide accurate reporting of the Terms of Service from many different web applications. One common complaint about Diaspora is that not all pods have readily-available Privacy Policies or Terms of Service. What's worse, many podmins end up having to hack in extra pages to make such things readily available to end users.<br />
<br />
With TOS;DR, a podmin could easily edit a tos.yml file with calls for different labels, and they would be displayed graphically on a user registration form, and Pod Uptime could be able to pick up the different service terms varying from pod to pod. Any time the tos.yml gets updated, users could be provided a form to approve the new usage terms, or be guided to export their profile and user data to a pod more suited to their needs.</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=User:DenSchub/Diaspora_API_proposal&diff=1893User:DenSchub/Diaspora API proposal2013-09-07T04:35:03Z<p>DeadSuperHero: /* Third Party Client API */</p>
<hr />
<div>This is merely a work-in-progress document to put some ideas together about a set of APIs for Diaspora and how they would work. Keep in mind, this article at this point is a stub. It will be polished up several times over before a vote is put forward.<br />
<br />
If you're a developer interested in working with Diaspora's API, please give feedback on the APIs detailed below.<br />
<br />
=== Federation API ===<br />
A better overview is available here. It is possible in the future, with the gemification of our federation protocol, that we might be able to explore alternative federation API protocols such as Friendica Red and Tent.<br />
<br />
=== Third Party Client API ===<br />
We need to establish an official client API for Diaspora apps. Many users would love to have native mobile clients, for example. A comprehensive list of functionalities will need to be addressed:<br />
<br />
* Streams<br />
* Posts<br />
* Re-Shares<br />
* Likes<br />
* Comments<br />
* Aspects<br />
* Identity (for Authentication)<br />
* ACL (app access permissions)<br />
* Messages<br />
* Photos<br />
* Profiles<br />
* Tags<br />
* Cross-posting<br />
* Ignoring<br />
* Location<br />
* Application Name<br />
<br />
Another interesting question worth asking would be whether or not to share content from a webapp onto Diaspora itself, and how to do it. If a user shares a video from a MediaGoblin installation with some kind of Diaspora cross-posting button, should any link to the content be hiddden, should oEmbed content be rendered in posts and on the stream? At what level can apps be leveraged as part of a good user experience?<br />
<br />
=== Migration API ===<br />
This is an API not specifically made for clients; but rather, for transfer of user data. A Migration request would work like so:<br />
# User registers on the target pod that they want to transfer to.<br />
# User makes two-way OAuth connection between accounts on both pods.<br />
# User clicks "Export" on old pod in User Settings panel, data is transfered securely to their account on the target pod.<br />
# All likes, messages, status updates, photos, and contacts are moved over<br />
# As a final act, the original account closes down, all federated content from user is now attributed to new account on different pod.<br />
=== PodStatus API ===<br />
Create an API dedicated specifically for reporting the following variables:<br />
* Is the pod up and running?<br />
* Is it federating with the network?<br />
* What version is it running?<br />
* How many publicly registered active users are on the pod?<br />
* Is the pod open for registrations?<br />
=== TOS;DR API ===<br />
[http://tosdr.org/ Terms of Service, Didn't Read] is an initiative to provide accurate reporting of the Terms of Service from many different web applications. One common complaint about Diaspora is that not all pods have readily-available Privacy Policies or Terms of Service. What's worse, many podmins end up having to hack in extra pages to make such things readily available to end users.<br />
<br />
With TOS;DR, a podmin could easily edit a tos.yml file with calls for different labels, and they would be displayed graphically on a user registration form, and Pod Uptime could be able to pick up the different service terms varying from pod to pod. Any time the tos.yml gets updated, users could be provided a form to approve the new usage terms, or be guided to export their profile and user data to a pod more suited to their needs.</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=User:DenSchub/Diaspora_API_proposal&diff=1892User:DenSchub/Diaspora API proposal2013-09-07T04:30:27Z<p>DeadSuperHero: /* Third Party Client API */</p>
<hr />
<div>This is merely a work-in-progress document to put some ideas together about a set of APIs for Diaspora and how they would work. Keep in mind, this article at this point is a stub. It will be polished up several times over before a vote is put forward.<br />
<br />
If you're a developer interested in working with Diaspora's API, please give feedback on the APIs detailed below.<br />
<br />
=== Federation API ===<br />
A better overview is available here. It is possible in the future, with the gemification of our federation protocol, that we might be able to explore alternative federation API protocols such as Friendica Red and Tent.<br />
<br />
=== Third Party Client API ===<br />
We need to establish an official client API for Diaspora apps. Many users would love to have native mobile clients, for example. A comprehensive list of functionalities will need to be addressed:<br />
<br />
* Streams<br />
* Posts<br />
* Aspects<br />
* Identity (for Authentication)<br />
* ACL (app access permissions)<br />
* Messages<br />
* Comments<br />
* Likes<br />
* Photos<br />
* Profiles<br />
* Tags<br />
* Cross-posting<br />
* Ignoring<br />
* Location<br />
* Application Name<br />
<br />
Another interesting question worth asking would be whether or not to share content from a webapp onto Diaspora itself, and how to do it. If a user shares a video from a MediaGoblin installation with some kind of Diaspora cross-posting button, should any link to the content be hiddden, should oEmbed content be rendered in posts and on the stream? At what level can apps be leveraged as part of a good user experience?<br />
<br />
=== Migration API ===<br />
This is an API not specifically made for clients; but rather, for transfer of user data. A Migration request would work like so:<br />
# User registers on the target pod that they want to transfer to.<br />
# User makes two-way OAuth connection between accounts on both pods.<br />
# User clicks "Export" on old pod in User Settings panel, data is transfered securely to their account on the target pod.<br />
# All likes, messages, status updates, photos, and contacts are moved over<br />
# As a final act, the original account closes down, all federated content from user is now attributed to new account on different pod.<br />
=== PodStatus API ===<br />
Create an API dedicated specifically for reporting the following variables:<br />
* Is the pod up and running?<br />
* Is it federating with the network?<br />
* What version is it running?<br />
* How many publicly registered active users are on the pod?<br />
* Is the pod open for registrations?<br />
=== TOS;DR API ===<br />
[http://tosdr.org/ Terms of Service, Didn't Read] is an initiative to provide accurate reporting of the Terms of Service from many different web applications. One common complaint about Diaspora is that not all pods have readily-available Privacy Policies or Terms of Service. What's worse, many podmins end up having to hack in extra pages to make such things readily available to end users.<br />
<br />
With TOS;DR, a podmin could easily edit a tos.yml file with calls for different labels, and they would be displayed graphically on a user registration form, and Pod Uptime could be able to pick up the different service terms varying from pod to pod. Any time the tos.yml gets updated, users could be provided a form to approve the new usage terms, or be guided to export their profile and user data to a pod more suited to their needs.</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=User:DenSchub/Diaspora_API_proposal&diff=1891User:DenSchub/Diaspora API proposal2013-09-07T04:29:49Z<p>DeadSuperHero: Created page with "This is merely a work-in-progress document to put some ideas together about a set of APIs for Diaspora and how they would work. Keep in mind, this article at this point is a s..."</p>
<hr />
<div>This is merely a work-in-progress document to put some ideas together about a set of APIs for Diaspora and how they would work. Keep in mind, this article at this point is a stub. It will be polished up several times over before a vote is put forward.<br />
<br />
If you're a developer interested in working with Diaspora's API, please give feedback on the APIs detailed below.<br />
<br />
=== Federation API ===<br />
A better overview is available here. It is possible in the future, with the gemification of our federation protocol, that we might be able to explore alternative federation API protocols such as Friendica Red and Tent.<br />
<br />
=== Third Party Client API ===<br />
We need to establish an official client API for Diaspora apps. Many users would love to have native mobile clients, for example. A comprehensive list of functionalities will need to be addressed:<br />
<br />
* Streams<br />
* Posts<br />
* Aspects<br />
* Identity (for Authentication)<br />
* Messages<br />
* Comments<br />
* Likes<br />
* Photos<br />
* Profiles<br />
* Tags<br />
* Cross-posting<br />
* Ignoring<br />
* Location<br />
* Application Name<br />
<br />
Another interesting question worth asking would be whether or not to share content from a webapp onto Diaspora itself, and how to do it. If a user shares a video from a MediaGoblin installation with some kind of Diaspora cross-posting button, should any link to the content be hiddden, should oEmbed content be rendered in posts and on the stream? At what level can apps be leveraged as part of a good user experience?<br />
<br />
=== Migration API ===<br />
This is an API not specifically made for clients; but rather, for transfer of user data. A Migration request would work like so:<br />
# User registers on the target pod that they want to transfer to.<br />
# User makes two-way OAuth connection between accounts on both pods.<br />
# User clicks "Export" on old pod in User Settings panel, data is transfered securely to their account on the target pod.<br />
# All likes, messages, status updates, photos, and contacts are moved over<br />
# As a final act, the original account closes down, all federated content from user is now attributed to new account on different pod.<br />
=== PodStatus API ===<br />
Create an API dedicated specifically for reporting the following variables:<br />
* Is the pod up and running?<br />
* Is it federating with the network?<br />
* What version is it running?<br />
* How many publicly registered active users are on the pod?<br />
* Is the pod open for registrations?<br />
=== TOS;DR API ===<br />
[http://tosdr.org/ Terms of Service, Didn't Read] is an initiative to provide accurate reporting of the Terms of Service from many different web applications. One common complaint about Diaspora is that not all pods have readily-available Privacy Policies or Terms of Service. What's worse, many podmins end up having to hack in extra pages to make such things readily available to end users.<br />
<br />
With TOS;DR, a podmin could easily edit a tos.yml file with calls for different labels, and they would be displayed graphically on a user registration form, and Pod Uptime could be able to pick up the different service terms varying from pod to pod. Any time the tos.yml gets updated, users could be provided a form to approve the new usage terms, or be guided to export their profile and user data to a pod more suited to their needs.</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Current_and_future_development&diff=808Current and future development2013-06-18T04:25:13Z<p>DeadSuperHero: </p>
<hr />
<div>{{Speculative}}<br />
<br />
=Current and future development of Diaspora=<br />
<br />
I thought it would be useful write a bit about what's going on with Diaspora development, as a major update, version 0.1.0.0, has recently been released and warmly welcomed. This release included a couple of features, such as post previews, that people have been asking about for ages. It's easy to feel that nothing is happening even when there's a lot going on in the background, as development in a large project such as this can take a long time. However, we're trying to improve communication within the community, so that everyone is better informed about what's going on and what progress there is on certain elements of the development.<br />
<br />
Needless to say, if you think you can help in any way with the development of Diaspora, please make yourself known on [Github](https://github.com/diaspora/diaspora/issues?page=1&state=open). There is a specific 'newcomer' tag which marks projects suitable for someone who's new to Diaspora's code; these can be found [here](https://github.com/diaspora/diaspora/issues?labels=newcomer&page=1&state=open).<br />
<br />
[Sean Tilley](deadsuperhero@joindiaspora.com) started [this thread](https://www.joindiaspora.com/posts/2636466) recently asking people what they would like to see Diaspora be like in a year's time. There were many suggestions, and this post is an attempt to address as many of them as possible.<br />
<br />
First there are the fundamental parts of the software that make the Diaspora network operate.<br />
<br />
== Fundamental code ==<br />
<br />
=== Sort out federation ===<br />
If you don't yet know what 'federation' refers to, it's the sharing of data between pods in a decentralised network. It worked pretty well when Diaspora launched, but as the network grew in size (both the number of pods, and also large numbers of users on certain pods) flaws in the design became apparent and more problematic. Since then a lot of work has gone into trying to solve these problems so that data stored on one pod are successfully and instantly shared with all other pods which need to receive them, but this has been without doubt the most complex problem facing Diaspora's developers, and as yet the issues have not been fully solved. Even though it may seem that very little has happened, an awful lot of work has been going on behind the scenes to improve Diaspora's federation. If you think you can help us with this, we'd love to hear from you. (federation link).<br />
<br />
=== Make the code-base modular ===<br />
One of the things which has held up creation of features is that the fundamental aspects of the software, such as federation, are not yet stable. And if they have to be changed significantly in the future to improve network performance, this can cause features to suddenly stop working, which means that all the effort to create them has been wasted. This happened once already, and it set back Diaspora development by a long way, and it's something that we're keen will not happen again. Therefore, another important task that developers are working on is to make the code-base 'modular': that is, with each element of the code-base in its own discrete 'package'. Once this has been done, and elements such as federation have been separated into their own layers, making big changes to those fundamental parts of the code won't have knock-on effects on other elements such as features. If you think you can help us with this, please go here (modularity link).<br />
<br />
=== Create an API ===<br />
API stands for 'application programming interface'. It gives a structure and language for apps to work on the network. Once this has been created, it will be far easier to create and implement apps for Diaspora. But like all of the fundamental parts of the code, it's crucial that this be absolutely right first time, and so it is taking a long time to achieve this. If you think you can help us with this, please go here (API link).<br />
<br />
=== Data import/export – account migration ===<br />
Along with respecting individuals' privacy, having the ability to choose where your personal data are stored was one of Diaspora's founding principles. Two years down the line, it has yet to be implemented. There is an ongoing discussion about how best to implement proper migration of data so that people can easily move from one pod to another. This again is an extremely complex issue, and important to get it absolutely right. There are important considerations regarding identity theft, and how to make absolutely sure that it is impossible for a person to 'spoof' someone else's identity and thus get all their private data migrated to the spoofer's pod under false pretenses. If you think you can help us create this feature, please go here (migration link).<br />
<br />
=== Make it simple to set up a pod ===<br />
Although the installation and maintenance of a Diaspora pod has been made a lot simpler over the past two years, it is still quite a technical challenge for the average user. However, teams have been working on 'packaging' the software so that the process of installation becomes more or less 'point-and-click'. Progress has been made on this for a number of operating systems, including some on free web space, such as Heroku, but there are many other operating systems to go. If you think you can help us with this, please go here (packaging link).<br />
<br />
=== Make Diaspora compatible with other open networks ===<br />
At the moment Diaspora is run by bespoke software, written from the ground up with elements taken from other open-source projects, with its own communication protocols. The idea of making Diaspora compatible with other open-source, privacy-respecting networks has been raised a number of times, and this has also been the subject of a long-running discussion. However, the main problem with this is that as yet there is no obvious contender as a 'standard' protocol among open-source networks. If we chose one before this happens, Diaspora could end up the loser when another standard emerges (being the Betamax of open-source networks). Recently, a few protocols, such as Tent, have emerged which may meet these needs, and as soon as one of these emerges as a likely standard, it may well be adopted by Diaspora, along with other networks. Sean Tilley and others have been in discussion with the people behind Tent and some of the other emerging protocols, and also with other free networks, to try to establish which of the protocols is going to meet the needs of the most networks and therefore which should be adopted. If you think you can help us with this, please go here (protocol link).<br />
<br />
== Features ==<br />
<br />
Once the federation code has been stabilised and put into a separate 'layer', and an API has been created, it will be a lot easier to create features and apps for Diaspora. It doesn't make sense to put lots of effort into creating slick features until the funcdamental code is more stable, as changes to this code in the future could break all the features. If you'd like to help create a particular feature, go to [Github](https://github.com/diaspora/diaspora/issues?labels=feature)<br />
<br />
Features which are frequently requested include:<br />
<br />
=== Photo albums ===<br />
The plan will be to create photos albums, which may include features such as:<br />
* Tagging users in photos<br />
* Comments/likes on individual photos or complete album<br />
* Slideshow/full-screen view<br />
* Hi-res uploads<br />
* Editing of photos/albums<br />
<br />
=== Groups / Events ===<br />
Groups and events are both important means of organising communication. We certainly plan to implement them in the future, but both will only be useful if federation of data between pods is reliable and instantaneous, and this hasn't been achieved yet. See 'Federation' above.<br />
<br />
=== Shared calendars ===<br />
Again, an important feature which relies utterly on federation, and so can't be introduced yet.<br />
<br />
=== Instant messaging ===<br />
Discussions are currently taking place on the best protocols to use for instant messaging, and the best means of implementing this feature within Diaspora. See https://www.loomio.org/discussions/3678 for more details.<br />
<br />
=== Video conferencing ===<br />
It may also be possible to implement video conferencing as part of or alongside instant messaging.<br />
<br />
=== Apps for iOS and Android ===<br />
Much energy went into creating apps for mobile devices in the early days of the project, and some alpha-version apps for Android still exist. However, it was decided that it would be better to create a mobile version of Diaspora which worked really well and was easy to use on mobile devices. We think our mobile site is good enough that there isn't a need for an app for each mobile device, and hope you agree.<br />
<br />
== Privacy ==<br />
<br />
Privacy is at the heart of Diaspora, and as such we always want to make it possible for users to be as private as they like, and to know that their personal data are secure.<br />
<br />
===Encryption===<br />
One means of ensuring privacy is through the encryption of data. This includes encryption of data stored by pods, encryption between peer and server (i.e. between user and pod), and encryption of notification emails. There are complex technical issues to sort out in order to make this work, especially in a decentralised system<br />
<br />
===Have separate public and private bios in profile===<br />
Some users have requested separate biographies in their profile, one to be shown to people in their aspects, and the other to be shown to others.<br />
<br />
==='Public to Diaspora' / pod-only posting===<br />
This is a much-requested feature, which actually is a pretty complex issue to solve technically. If a way can be found to do this, it could certainly be implemented, but as yet no one has found a workable way of achieving this end.<br />
<br />
<br />
==Functionality==<br />
<br />
===Comment likes===<br />
One of the most common questions in Diaspora is 'Why can't I like comments?' Comment likes were available for a long time, but had to be removed as Diaspora started increasing in size, because for some reason on larger pods they were massively increasing the size of the databases and causing the larger pods to slow down. It's definitely part of Diaspora's plans to have comment likes again, but it can only be done once this database problem has been solved.<br />
<br />
===More connected services (G+, Libertree etc.)===<br />
We'd like to enabled our community members to connect with more services. When Google+ launched, its API was read-only, which meant it was not possible for external apps to connect with it [NB: is this still the case?]. However, as and when it is possible to link Diaspora with other services and networks, and as and when developer time is available, we'll hook up with more services. If you'd like to help us make this happen with any particular service or network, drop in to Github. [link]<br />
<br />
===OpenGraph image thumbnails===<br />
This would be a nice thing to implement, and is something we'll look into.<br />
<br />
===Single-post view===<br />
The current single-post view is going to disappear some time soon. The vase majority of people hated it when it was introduced and, even though I think it's a good idea in principle, it was never completed (the work on it became [Makr.io](https://www.makr.io/) and it's not really fit for purpose as it is - for example if there's a lot of text and a photo the text obliterates the photo. It has no way of reacting to different types of post.<br />
At the moment a number of options for single-post view are being designed, and it shouldn't be too long before one or more are introduced. It's possible the current single-post view will be retained as an option, but as reaction to it was so overwhelmingly negative and it's never been perfected, I suspect it will be dropped completely. (Discussion on Loomio https://www.loomio.org/discussions/2110)<br />
<br />
===Aggregation of reshares===<br />
It would be great if we could find a way to aggregate multiple reshares in the stream, and perhaps the comments made on those reshares. However, this would need to work from the query which generates the stream, and this is not currently an easy thing to do. A feature like this might have to wait until various elements of the stream generation have been rewritten.<br />
<br />
===Preview of comments and private messages===<br />
Our post preview feature, introduced in version 0.1.0.0, has been one of the most popular features. It would be great to introduce a similar preview feature for comments and private messages, and we hope this will happen in the future.<br />
<br />
===UI toolbar to format text===<br />
Along with being able to see a WYSIWYG preview of your post, some people have asked for a formatting toolbar so that formatting can be added at the touch of a button rather than having to manually use Markdown code. <br />
<br />
===Allowing use of HTML in posts===<br />
Some people have requested that it be made possible to use full HTML markup in posts rather than the more limited Markdown. There are dangers in this – for example, some people might go completely over-board and your stream could end up being a vile mess of colours, fonts and images. At the moment, Markdown works well for most purposes. We might consider introducing HTML support at some point in the future, but currently it is not a priority and no decision has been made on whether it would be desirable.<br />
<br />
===Customisation of stream===<br />
There have been requests to be able to customise the stream, so that it can be viewed, for example, chronologically by time of posting (the current view), or chronologically by latest activity on each post (the view used in My Activity), and that it would be possible to 'pin' certain posts to keep them at the top of the stream. Another feature sometimes requested is to be able to colour-code posts. Each of these are things we'd like to introduce,<br />
<br />
===Filtering stream by tag===<br />
At the moment, you can show a stream filtered to show only posts containing a certain tag, by clicking '#Followed tags' in the side-bar and then on the tag you want to see. However, there is no way of filtering *out* certain tags. This would be good to have, but is not a critical feature and not likely to make it to the top of the list of priorities any time soon. However, if you'd like to work on it, let us know.<br />
<br />
===Filtering stream by language===<br />
There's no real technically feasible means of filtering automatically by language. Language recognition by software is not an easy thing to achieve – and tends to be expensive. Suggestions have been made that people should include a tag for the language they're posting in. However, there's no way of making people do this, and it wouldn't really be a desirable thing to do in any case.<br />
It has been discussed before, but there doesn't seem to be any way of achieving it which is within the means of Diaspora. If you're really bothered when people post in languages you don't speak, you can block those posters.<br />
<br />
===Editing posts===<br />
This is another very frequently requested feature. However, there are some good reasons not to allow editing of posts once the post has been made. One of these is that if someone comments on a post and it is then changed, that is unfair on the commenter, as it may make their comment look irrelevant, ridiculous or offensive. Another is that, in a decentralised network, it can lead to different versions of a post existing on different pods. [NB: is this true? I didn't think this was how federation worked, but I've heard it said by reliable sources] For these reasons, it's unlikely that editing of posts will be allowed in Diaspora. Especially now with the preview function, it's easy to edit and perfect your post, including formatting, *before* you post it. If you really need to change it once you have posted it, copy the text of your post, delete the post, and then correct and repost it.<br />
A related thing which is often requested is to be able to change the visibility of a post from aspects only to public. However, here there are important privacy considerations: anyone who has commented on the post when it was limited will suddenly find that their comment, made to a limited audience, is now visible to the entire internet without their knowledge or approval. For this reason, it isn't desirable to add this option. Again, if you want to make a limited post public, copy/delete/repost as public.<br />
<br />
===Being able to reshare non-public posts===<br />
Just as above with changing a post from limited to public, there are important privacy considerations in this: if someone made a post limited, they did it because they only wanted the people they have placed into their aspects to see the post. They don't want all your contacts to be able to see it as well – if they did, they'd have made it public. This is why it is not possible to reshare a non-public post. It is possible, of course, to copy the text and post it yourself, but this isn't really in the spirit of respecting each community member's privacy.<br />
<br />
===@-mention members in comments===<br />
This is something that we really want to introduce. However, first we need to decide who can be @-mentioned in a comment. Can you mention anyone in your contacts list? Or anyone who has taken part in the conversation? Or both? There are technical considerations for each of these options. We're trying to work out the best way forward, and what will work best for our community.<br />
<br />
===Subscribe/unsubscribe button===<br />
It would be great to introduce something like this so users can follow a discussion without posting on it, or stop receiving notifications after posting on discussion. Hopefully we'll be able to introduce it in the future.<br />
<br />
===Improve search===<br />
There are two elements to this issue: be able easily to identify the person you're looking for, and getting all possible results to a search from all pods. <br />
On the first, there have been calls to be able for example to search for people by real name, but part of respecting privacy is allowing each person to reveal exactly as much or as little about themselves as they want. Each person can use whatever name they want, whether this is their real name or simply 'X'. If you know someone and want to connect with them on Diaspora but can't find them using a search, one thing you could do is to give them your Diapsora handle so that they can find you easily.<br />
On the second point, this is a federation issue and should improve as we sort out the remaining problems with federation between pods.<br />
<br />
==Don't know enough about these/not sure what to say==<br />
===RSA keys needed===<br />
===Ability to run pods as Tor hidden services===<br />
===Consistent UI and terminology across all areas===<br />
===Threaded comments===<br />
===Customizable UI themes===<br />
===Unmasking of shortened URLs, replacing with full, actual link===<br />
===Using audio/video tags for embedding media===<br />
===The option to receive plain text email notifications===<br />
===Non-JS website version===<br />
<br />
[[Category:Drafts]]<br />
[[Category:Outreach]]<br />
[[Category:Proposals]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Current_and_future_development&diff=807Current and future development2013-06-18T04:24:41Z<p>DeadSuperHero: </p>
<hr />
<div>{{Speculative}}<br />
<br />
''Draft blog post''<br />
<br />
=Current and future development of Diaspora=<br />
<br />
I thought it would be useful write a bit about what's going on with Diaspora development, as a major update, version 0.1.0.0, has recently been released and warmly welcomed. This release included a couple of features, such as post previews, that people have been asking about for ages. It's easy to feel that nothing is happening even when there's a lot going on in the background, as development in a large project such as this can take a long time. However, we're trying to improve communication within the community, so that everyone is better informed about what's going on and what progress there is on certain elements of the development.<br />
<br />
Needless to say, if you think you can help in any way with the development of Diaspora, please make yourself known on [Github](https://github.com/diaspora/diaspora/issues?page=1&state=open). There is a specific 'newcomer' tag which marks projects suitable for someone who's new to Diaspora's code; these can be found [here](https://github.com/diaspora/diaspora/issues?labels=newcomer&page=1&state=open).<br />
<br />
[Sean Tilley](deadsuperhero@joindiaspora.com) started [this thread](https://www.joindiaspora.com/posts/2636466) recently asking people what they would like to see Diaspora be like in a year's time. There were many suggestions, and this post is an attempt to address as many of them as possible.<br />
<br />
First there are the fundamental parts of the software that make the Diaspora network operate.<br />
<br />
== Fundamental code ==<br />
<br />
=== Sort out federation ===<br />
If you don't yet know what 'federation' refers to, it's the sharing of data between pods in a decentralised network. It worked pretty well when Diaspora launched, but as the network grew in size (both the number of pods, and also large numbers of users on certain pods) flaws in the design became apparent and more problematic. Since then a lot of work has gone into trying to solve these problems so that data stored on one pod are successfully and instantly shared with all other pods which need to receive them, but this has been without doubt the most complex problem facing Diaspora's developers, and as yet the issues have not been fully solved. Even though it may seem that very little has happened, an awful lot of work has been going on behind the scenes to improve Diaspora's federation. If you think you can help us with this, we'd love to hear from you. (federation link).<br />
<br />
=== Make the code-base modular ===<br />
One of the things which has held up creation of features is that the fundamental aspects of the software, such as federation, are not yet stable. And if they have to be changed significantly in the future to improve network performance, this can cause features to suddenly stop working, which means that all the effort to create them has been wasted. This happened once already, and it set back Diaspora development by a long way, and it's something that we're keen will not happen again. Therefore, another important task that developers are working on is to make the code-base 'modular': that is, with each element of the code-base in its own discrete 'package'. Once this has been done, and elements such as federation have been separated into their own layers, making big changes to those fundamental parts of the code won't have knock-on effects on other elements such as features. If you think you can help us with this, please go here (modularity link).<br />
<br />
=== Create an API ===<br />
API stands for 'application programming interface'. It gives a structure and language for apps to work on the network. Once this has been created, it will be far easier to create and implement apps for Diaspora. But like all of the fundamental parts of the code, it's crucial that this be absolutely right first time, and so it is taking a long time to achieve this. If you think you can help us with this, please go here (API link).<br />
<br />
=== Data import/export – account migration ===<br />
Along with respecting individuals' privacy, having the ability to choose where your personal data are stored was one of Diaspora's founding principles. Two years down the line, it has yet to be implemented. There is an ongoing discussion about how best to implement proper migration of data so that people can easily move from one pod to another. This again is an extremely complex issue, and important to get it absolutely right. There are important considerations regarding identity theft, and how to make absolutely sure that it is impossible for a person to 'spoof' someone else's identity and thus get all their private data migrated to the spoofer's pod under false pretenses. If you think you can help us create this feature, please go here (migration link).<br />
<br />
=== Make it simple to set up a pod ===<br />
Although the installation and maintenance of a Diaspora pod has been made a lot simpler over the past two years, it is still quite a technical challenge for the average user. However, teams have been working on 'packaging' the software so that the process of installation becomes more or less 'point-and-click'. Progress has been made on this for a number of operating systems, including some on free web space, such as Heroku, but there are many other operating systems to go. If you think you can help us with this, please go here (packaging link).<br />
<br />
=== Make Diaspora compatible with other open networks ===<br />
At the moment Diaspora is run by bespoke software, written from the ground up with elements taken from other open-source projects, with its own communication protocols. The idea of making Diaspora compatible with other open-source, privacy-respecting networks has been raised a number of times, and this has also been the subject of a long-running discussion. However, the main problem with this is that as yet there is no obvious contender as a 'standard' protocol among open-source networks. If we chose one before this happens, Diaspora could end up the loser when another standard emerges (being the Betamax of open-source networks). Recently, a few protocols, such as Tent, have emerged which may meet these needs, and as soon as one of these emerges as a likely standard, it may well be adopted by Diaspora, along with other networks. Sean Tilley and others have been in discussion with the people behind Tent and some of the other emerging protocols, and also with other free networks, to try to establish which of the protocols is going to meet the needs of the most networks and therefore which should be adopted. If you think you can help us with this, please go here (protocol link).<br />
<br />
== Features ==<br />
<br />
Once the federation code has been stabilised and put into a separate 'layer', and an API has been created, it will be a lot easier to create features and apps for Diaspora. It doesn't make sense to put lots of effort into creating slick features until the funcdamental code is more stable, as changes to this code in the future could break all the features. If you'd like to help create a particular feature, go to [Github](https://github.com/diaspora/diaspora/issues?labels=feature)<br />
<br />
Features which are frequently requested include:<br />
<br />
=== Photo albums ===<br />
The plan will be to create photos albums, which may include features such as:<br />
* Tagging users in photos<br />
* Comments/likes on individual photos or complete album<br />
* Slideshow/full-screen view<br />
* Hi-res uploads<br />
* Editing of photos/albums<br />
<br />
=== Groups / Events ===<br />
Groups and events are both important means of organising communication. We certainly plan to implement them in the future, but both will only be useful if federation of data between pods is reliable and instantaneous, and this hasn't been achieved yet. See 'Federation' above.<br />
<br />
=== Shared calendars ===<br />
Again, an important feature which relies utterly on federation, and so can't be introduced yet.<br />
<br />
=== Instant messaging ===<br />
Discussions are currently taking place on the best protocols to use for instant messaging, and the best means of implementing this feature within Diaspora. See https://www.loomio.org/discussions/3678 for more details.<br />
<br />
=== Video conferencing ===<br />
It may also be possible to implement video conferencing as part of or alongside instant messaging.<br />
<br />
=== Apps for iOS and Android ===<br />
Much energy went into creating apps for mobile devices in the early days of the project, and some alpha-version apps for Android still exist. However, it was decided that it would be better to create a mobile version of Diaspora which worked really well and was easy to use on mobile devices. We think our mobile site is good enough that there isn't a need for an app for each mobile device, and hope you agree.<br />
<br />
== Privacy ==<br />
<br />
Privacy is at the heart of Diaspora, and as such we always want to make it possible for users to be as private as they like, and to know that their personal data are secure.<br />
<br />
===Encryption===<br />
One means of ensuring privacy is through the encryption of data. This includes encryption of data stored by pods, encryption between peer and server (i.e. between user and pod), and encryption of notification emails. There are complex technical issues to sort out in order to make this work, especially in a decentralised system<br />
<br />
===Have separate public and private bios in profile===<br />
Some users have requested separate biographies in their profile, one to be shown to people in their aspects, and the other to be shown to others.<br />
<br />
==='Public to Diaspora' / pod-only posting===<br />
This is a much-requested feature, which actually is a pretty complex issue to solve technically. If a way can be found to do this, it could certainly be implemented, but as yet no one has found a workable way of achieving this end.<br />
<br />
<br />
==Functionality==<br />
<br />
===Comment likes===<br />
One of the most common questions in Diaspora is 'Why can't I like comments?' Comment likes were available for a long time, but had to be removed as Diaspora started increasing in size, because for some reason on larger pods they were massively increasing the size of the databases and causing the larger pods to slow down. It's definitely part of Diaspora's plans to have comment likes again, but it can only be done once this database problem has been solved.<br />
<br />
===More connected services (G+, Libertree etc.)===<br />
We'd like to enabled our community members to connect with more services. When Google+ launched, its API was read-only, which meant it was not possible for external apps to connect with it [NB: is this still the case?]. However, as and when it is possible to link Diaspora with other services and networks, and as and when developer time is available, we'll hook up with more services. If you'd like to help us make this happen with any particular service or network, drop in to Github. [link]<br />
<br />
===OpenGraph image thumbnails===<br />
This would be a nice thing to implement, and is something we'll look into.<br />
<br />
===Single-post view===<br />
The current single-post view is going to disappear some time soon. The vase majority of people hated it when it was introduced and, even though I think it's a good idea in principle, it was never completed (the work on it became [Makr.io](https://www.makr.io/) and it's not really fit for purpose as it is - for example if there's a lot of text and a photo the text obliterates the photo. It has no way of reacting to different types of post.<br />
At the moment a number of options for single-post view are being designed, and it shouldn't be too long before one or more are introduced. It's possible the current single-post view will be retained as an option, but as reaction to it was so overwhelmingly negative and it's never been perfected, I suspect it will be dropped completely. (Discussion on Loomio https://www.loomio.org/discussions/2110)<br />
<br />
===Aggregation of reshares===<br />
It would be great if we could find a way to aggregate multiple reshares in the stream, and perhaps the comments made on those reshares. However, this would need to work from the query which generates the stream, and this is not currently an easy thing to do. A feature like this might have to wait until various elements of the stream generation have been rewritten.<br />
<br />
===Preview of comments and private messages===<br />
Our post preview feature, introduced in version 0.1.0.0, has been one of the most popular features. It would be great to introduce a similar preview feature for comments and private messages, and we hope this will happen in the future.<br />
<br />
===UI toolbar to format text===<br />
Along with being able to see a WYSIWYG preview of your post, some people have asked for a formatting toolbar so that formatting can be added at the touch of a button rather than having to manually use Markdown code. <br />
<br />
===Allowing use of HTML in posts===<br />
Some people have requested that it be made possible to use full HTML markup in posts rather than the more limited Markdown. There are dangers in this – for example, some people might go completely over-board and your stream could end up being a vile mess of colours, fonts and images. At the moment, Markdown works well for most purposes. We might consider introducing HTML support at some point in the future, but currently it is not a priority and no decision has been made on whether it would be desirable.<br />
<br />
===Customisation of stream===<br />
There have been requests to be able to customise the stream, so that it can be viewed, for example, chronologically by time of posting (the current view), or chronologically by latest activity on each post (the view used in My Activity), and that it would be possible to 'pin' certain posts to keep them at the top of the stream. Another feature sometimes requested is to be able to colour-code posts. Each of these are things we'd like to introduce,<br />
<br />
===Filtering stream by tag===<br />
At the moment, you can show a stream filtered to show only posts containing a certain tag, by clicking '#Followed tags' in the side-bar and then on the tag you want to see. However, there is no way of filtering *out* certain tags. This would be good to have, but is not a critical feature and not likely to make it to the top of the list of priorities any time soon. However, if you'd like to work on it, let us know.<br />
<br />
===Filtering stream by language===<br />
There's no real technically feasible means of filtering automatically by language. Language recognition by software is not an easy thing to achieve – and tends to be expensive. Suggestions have been made that people should include a tag for the language they're posting in. However, there's no way of making people do this, and it wouldn't really be a desirable thing to do in any case.<br />
It has been discussed before, but there doesn't seem to be any way of achieving it which is within the means of Diaspora. If you're really bothered when people post in languages you don't speak, you can block those posters.<br />
<br />
===Editing posts===<br />
This is another very frequently requested feature. However, there are some good reasons not to allow editing of posts once the post has been made. One of these is that if someone comments on a post and it is then changed, that is unfair on the commenter, as it may make their comment look irrelevant, ridiculous or offensive. Another is that, in a decentralised network, it can lead to different versions of a post existing on different pods. [NB: is this true? I didn't think this was how federation worked, but I've heard it said by reliable sources] For these reasons, it's unlikely that editing of posts will be allowed in Diaspora. Especially now with the preview function, it's easy to edit and perfect your post, including formatting, *before* you post it. If you really need to change it once you have posted it, copy the text of your post, delete the post, and then correct and repost it.<br />
A related thing which is often requested is to be able to change the visibility of a post from aspects only to public. However, here there are important privacy considerations: anyone who has commented on the post when it was limited will suddenly find that their comment, made to a limited audience, is now visible to the entire internet without their knowledge or approval. For this reason, it isn't desirable to add this option. Again, if you want to make a limited post public, copy/delete/repost as public.<br />
<br />
===Being able to reshare non-public posts===<br />
Just as above with changing a post from limited to public, there are important privacy considerations in this: if someone made a post limited, they did it because they only wanted the people they have placed into their aspects to see the post. They don't want all your contacts to be able to see it as well – if they did, they'd have made it public. This is why it is not possible to reshare a non-public post. It is possible, of course, to copy the text and post it yourself, but this isn't really in the spirit of respecting each community member's privacy.<br />
<br />
===@-mention members in comments===<br />
This is something that we really want to introduce. However, first we need to decide who can be @-mentioned in a comment. Can you mention anyone in your contacts list? Or anyone who has taken part in the conversation? Or both? There are technical considerations for each of these options. We're trying to work out the best way forward, and what will work best for our community.<br />
<br />
===Subscribe/unsubscribe button===<br />
It would be great to introduce something like this so users can follow a discussion without posting on it, or stop receiving notifications after posting on discussion. Hopefully we'll be able to introduce it in the future.<br />
<br />
===Improve search===<br />
There are two elements to this issue: be able easily to identify the person you're looking for, and getting all possible results to a search from all pods. <br />
On the first, there have been calls to be able for example to search for people by real name, but part of respecting privacy is allowing each person to reveal exactly as much or as little about themselves as they want. Each person can use whatever name they want, whether this is their real name or simply 'X'. If you know someone and want to connect with them on Diaspora but can't find them using a search, one thing you could do is to give them your Diapsora handle so that they can find you easily.<br />
On the second point, this is a federation issue and should improve as we sort out the remaining problems with federation between pods.<br />
<br />
==Don't know enough about these/not sure what to say==<br />
===RSA keys needed===<br />
===Ability to run pods as Tor hidden services===<br />
===Consistent UI and terminology across all areas===<br />
===Threaded comments===<br />
===Customizable UI themes===<br />
===Unmasking of shortened URLs, replacing with full, actual link===<br />
===Using audio/video tags for embedding media===<br />
===The option to receive plain text email notifications===<br />
===Non-JS website version===<br />
<br />
[[Category:Drafts]]<br />
[[Category:Outreach]]<br />
[[Category:Proposals]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=User:DeadSuperHero&diff=806User:DeadSuperHero2013-06-18T04:19:51Z<p>DeadSuperHero: Created page with "* '''Name:''' Sean Tilley * '''Diaspora Handle:''' DeadSuperHero@joindiaspora.com * '''Site:''' [http://www.deadsuperhero.com DeadSuperHero] == Social Media other than Diaspo..."</p>
<hr />
<div>* '''Name:''' Sean Tilley<br />
* '''Diaspora Handle:''' DeadSuperHero@joindiaspora.com<br />
* '''Site:''' [http://www.deadsuperhero.com DeadSuperHero]<br />
<br />
== Social Media other than Diaspora ==<br />
<br />
* [https://deadsuperhero.tent.is Tent]<br />
* [https://identi.ca/DeadSuperHero Identi.ca]<br />
* [https://pumpity.net/DeadSuperHero Pump.io]<br />
* [https://twitter.com/DeadSuperHero Twitter]<br />
* [https://plus.google.com/103059148050465760088/posts Google+]<br />
* [https://facebook.com/DeadSuperHero Facebook]<br />
* [https://deadsuperhero.deviantart.com DeviantArt]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Talk:TODO-list&diff=805Talk:TODO-list2013-06-18T04:08:55Z<p>DeadSuperHero: Created page with "I really like this. What do you think about adding the Application Features to a dedicated, simple roadmap to showcase what we're officially doing as far as community work is ..."</p>
<hr />
<div>I really like this. What do you think about adding the Application Features to a dedicated, simple roadmap to showcase what we're officially doing as far as community work is concerned in the future?<br />
--[[User:DeadSuperHero|DeadSuperHero]] ([[User talk:DeadSuperHero|talk]]) 21:08, 17 June 2013 (PDT)</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Template:Speculative&diff=804Template:Speculative2013-06-18T04:07:39Z<p>DeadSuperHero: </p>
<hr />
<div><!--{{Speculative}} begin--><br />
{{ #msgbox: name=Speculative <br />
| type=warn <br />
| date={{{date|}}}<br />
| image=Ambox outdated content.svg <br />
| cat=Proposals<br />
| sub=This article is currently a speculative draft based on user feedback and developer needs. As such, it should not be interpreted as a canonical source of future information until the details are more further refined. [{{fullurl:{{FULLPAGENAME}}|action=edit}} improve the {{{space|article}}}] by updating it. There may be additional information on the [[:{{NAMESPACE}} talk:{{PAGENAME}}|talk page]]. <br />
| This {{{part|article}}} '''is a work-in-progress.'''. ''. <br />
}}<br />
<!--{{Speculative}} end--><noinclude><br />
For documentation, see: [[Help:Diaspora* MediaWiki Extension/Messageboxes]]<br />
<br />
==== Possible template arguments ====<br />
<br />
* '''date'''<br>Insert a date, specifying when the message was inserted into the page. (Will be displayed in a smaller font after the main message.) Can be anything like "July 2012" or "2012-11-10" (as long as people know what it means). Default is to show no date.<br />
* '''space'''<br>specifies the superordinate labeling of the page this template is included in. (The part where it says ''"...help improve the'' [article] '' by updating..."'' Default is "article", but could be "image" or "help page" or something.<br />
* '''part'''<br>denominate the context which the template message is referring to. E.g. the whole article or just a section of one. (Will be used in ''"This'' [article] ''<nowiki>'</nowiki>s accuracy may be..."''.) Default: "article", could be "section" or anything else that makes sense in that sentence.<br />
</noinclude></div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Talk:Current_and_future_development&diff=803Talk:Current and future development2013-06-18T04:06:25Z<p>DeadSuperHero: </p>
<hr />
<div>I feel that while we have established consensus on many of these features, they are not currently part of an officially sanctioned community "plan". I think that we need to do several things for a proper roadmap:<br />
<br />
1. Break things down into bite-size bits. It's one things to say that refactoring federation is a single thing we want to do, but it's a monumental task. What kinds of small steps would need to be taken to get to the bigger ones?<br />
<br />
2. We cannot make gigantic promises for features if we don't have developers to code them. I believe our roadmap should be shaped by the tasks our volunteers want to work on, and in accordance with point one, we ought to think about scaling things down. Solve the smaller problems first, in order to solve bigger problems.<br />
<br />
I'm also not entirely sure this should in-and-of-itself be a blogpost, but rather a proper coordinated roadmap. I think a much more sane starting point for a future roadmap could be put together based on [[TODO-list]].<br />
<br />
--[[User:DeadSuperHero|DeadSuperHero]] ([[User talk:DeadSuperHero|talk]]) 20:55, 17 June 2013 (PDT)</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Template:Speculative&diff=802Template:Speculative2013-06-18T04:03:59Z<p>DeadSuperHero: </p>
<hr />
<div><!--{{Speculative}} begin--><br />
{{ #msgbox: name=Speculative <br />
| type=warn <br />
| date={{{date|}}}<br />
| image=Ambox outdated content.svg <br />
| cat=Proposals<br />
| sub=This article is currently a speculative draft based on user feedback and developer needs. [{{fullurl:{{FULLPAGENAME}}|action=edit}} improve the {{{space|article}}}] by updating it. There may be additional information on the [[:{{NAMESPACE}} talk:{{PAGENAME}}|talk page]]. <br />
| This {{{part|article}}} '''is a work-in-progress.'''. ''. <br />
}}<br />
<!--{{Speculative}} end--><noinclude><br />
For documentation, see: [[Help:Diaspora* MediaWiki Extension/Messageboxes]]<br />
<br />
==== Possible template arguments ====<br />
<br />
* '''date'''<br>Insert a date, specifying when the message was inserted into the page. (Will be displayed in a smaller font after the main message.) Can be anything like "July 2012" or "2012-11-10" (as long as people know what it means). Default is to show no date.<br />
* '''space'''<br>specifies the superordinate labeling of the page this template is included in. (The part where it says ''"...help improve the'' [article] '' by updating..."'' Default is "article", but could be "image" or "help page" or something.<br />
* '''part'''<br>denominate the context which the template message is referring to. E.g. the whole article or just a section of one. (Will be used in ''"This'' [article] ''<nowiki>'</nowiki>s accuracy may be..."''.) Default: "article", could be "section" or anything else that makes sense in that sentence.<br />
</noinclude></div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Template:Speculative&diff=801Template:Speculative2013-06-18T04:03:01Z<p>DeadSuperHero: </p>
<hr />
<div><!--{{Speculative}} begin--><br />
{{ #msgbox: name=Speculative <br />
| type=warn <br />
| date={{{date|}}}<br />
| image=Ambox outdated content.svg <br />
| cat=Proposals<br />
| sub=This article is currently a speculative draft based on user feedback and developer needs. It is currently a work-in-progress. [{{fullurl:{{FULLPAGENAME}}|action=edit}} improve the {{{space|article}}}] by updating it. There may be additional information on the [[:{{NAMESPACE}} talk:{{PAGENAME}}|talk page]]. <br />
| This {{{part|article}}} '''is a work-in-progress.'''. ''. <br />
}}<br />
<!--{{Speculative}} end--><noinclude><br />
For documentation, see: [[Help:Diaspora* MediaWiki Extension/Messageboxes]]<br />
<br />
==== Possible template arguments ====<br />
<br />
* '''date'''<br>Insert a date, specifying when the message was inserted into the page. (Will be displayed in a smaller font after the main message.) Can be anything like "July 2012" or "2012-11-10" (as long as people know what it means). Default is to show no date.<br />
* '''space'''<br>specifies the superordinate labeling of the page this template is included in. (The part where it says ''"...help improve the'' [article] '' by updating..."'' Default is "article", but could be "image" or "help page" or something.<br />
* '''part'''<br>denominate the context which the template message is referring to. E.g. the whole article or just a section of one. (Will be used in ''"This'' [article] ''<nowiki>'</nowiki>s accuracy may be..."''.) Default: "article", could be "section" or anything else that makes sense in that sentence.<br />
</noinclude></div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Template:Speculative&diff=800Template:Speculative2013-06-18T04:02:48Z<p>DeadSuperHero: </p>
<hr />
<div><!--{{Speculative}} begin--><br />
{{ #msgbox: name=Speculative <br />
| type=warn <br />
| date={{{date|}}}<br />
| image=Ambox outdated content.svg <br />
| cat=Proposals<br />
| sub=This article is currently a speculative draft based on user feedback and developer needs. It is currently a work-in-progress. [{{fullurl:{{FULLPAGENAME}}|action=edit}} improve the {{{space|article}}}] by updating it. There may be additional information on the [[:{{NAMESPACE}} talk:{{PAGENAME}}|talk page]]. <br />
| This {{{part|article}}}'s '''is a work-in-progress.'''. ''. <br />
}}<br />
<!--{{Speculative}} end--><noinclude><br />
For documentation, see: [[Help:Diaspora* MediaWiki Extension/Messageboxes]]<br />
<br />
==== Possible template arguments ====<br />
<br />
* '''date'''<br>Insert a date, specifying when the message was inserted into the page. (Will be displayed in a smaller font after the main message.) Can be anything like "July 2012" or "2012-11-10" (as long as people know what it means). Default is to show no date.<br />
* '''space'''<br>specifies the superordinate labeling of the page this template is included in. (The part where it says ''"...help improve the'' [article] '' by updating..."'' Default is "article", but could be "image" or "help page" or something.<br />
* '''part'''<br>denominate the context which the template message is referring to. E.g. the whole article or just a section of one. (Will be used in ''"This'' [article] ''<nowiki>'</nowiki>s accuracy may be..."''.) Default: "article", could be "section" or anything else that makes sense in that sentence.<br />
</noinclude></div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Template:Out_of_date&diff=799Template:Out of date2013-06-18T04:02:21Z<p>DeadSuperHero: Undo revision 798 by DeadSuperHero (talk)</p>
<hr />
<div><!--{{Out of date}} begin--><br />
{{ #msgbox: name=Out of date <br />
| type=warn <br />
| date={{{date|}}}<br />
| image=Ambox outdated content.svg <br />
| cat=Out of date, Maintenance<br />
| sub=Please help [{{fullurl:{{FULLPAGENAME}}|action=edit}} improve the {{{space|article}}}] by updating it. There may be additional information on the [[:{{NAMESPACE}} talk:{{PAGENAME}}|talk page]]. <br />
| This {{{part|article}}}'s '''accuracy may be compromised due to out-of-date information'''. <br />
}}<br />
<!--{{Out of date}} end--><noinclude><br />
For documentation, see: [[Help:Diaspora* MediaWiki Extension/Messageboxes]]<br />
<br />
==== Possible template arguments ====<br />
<br />
* '''date'''<br>Insert a date, specifying when the message was inserted into the page. (Will be displayed in a smaller font after the main message.) Can be anything like "July 2012" or "2012-11-10" (as long as people know what it means). Default is to show no date.<br />
* '''space'''<br>specifies the superordinate labeling of the page this template is included in. (The part where it says ''"...help improve the'' [article] '' by updating..."'' Default is "article", but could be "image" or "help page" or something.<br />
* '''part'''<br>denominate the context which the template message is referring to. E.g. the whole article or just a section of one. (Will be used in ''"This'' [article] ''<nowiki>'</nowiki>s accuracy may be..."''.) Default: "article", could be "section" or anything else that makes sense in that sentence.<br />
</noinclude></div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Template:Out_of_date&diff=798Template:Out of date2013-06-18T04:00:54Z<p>DeadSuperHero: </p>
<hr />
<div><!--{{Out of date}} begin--><br />
{{ #msgbox: name=Out of date <br />
| type=warn <br />
| date={{{date|}}}<br />
| image=Ambox outdated content.svg <br />
| cat=Out of date, Maintenance<br />
| sub=Please help [{{fullurl:{{FULLPAGENAME}}|action=edit}} improve the {{{space|article}}}] by updating it. There may be additional information on the [[:{{NAMESPACE}} talk:{{PAGENAME}}|talk page]]. <br />
| This {{{part|article}}}'s '''is a work-in-progress.'''. <br />
}}<br />
<!--{{Out of date}} end--><noinclude><br />
For documentation, see: [[Help:Diaspora* MediaWiki Extension/Messageboxes]]<br />
<br />
==== Possible template arguments ====<br />
<br />
* '''date'''<br>Insert a date, specifying when the message was inserted into the page. (Will be displayed in a smaller font after the main message.) Can be anything like "July 2012" or "2012-11-10" (as long as people know what it means). Default is to show no date.<br />
* '''space'''<br>specifies the superordinate labeling of the page this template is included in. (The part where it says ''"...help improve the'' [article] '' by updating..."'' Default is "article", but could be "image" or "help page" or something.<br />
* '''part'''<br>denominate the context which the template message is referring to. E.g. the whole article or just a section of one. (Will be used in ''"This'' [article] ''<nowiki>'</nowiki>s accuracy may be..."''.) Default: "article", could be "section" or anything else that makes sense in that sentence.<br />
</noinclude></div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Current_and_future_development&diff=797Current and future development2013-06-18T04:00:10Z<p>DeadSuperHero: </p>
<hr />
<div>{{Speculative}}<br />
<br />
''Draft blog post''<br />
<br />
=Current and future development of Diaspora=<br />
<br />
I thought it would be useful write a bit about what's going on with Diaspora development, as a major update, version 0.1.0.0, has recently been released and warmly welcomed. This release included a couple of features, such as post previews, that people have been asking about for ages. It's easy to feel that nothing is happening even when there's a lot going on in the background, as development in a large project such as this can take a long time. However, we're trying to improve communication within the community, so that everyone is better informed about what's going on and what progress there is on certain elements of the development.<br />
<br />
Needless to say, if you think you can help in any way with the development of Diaspora, please make yourself known on [Github](https://github.com/diaspora/diaspora/issues?page=1&state=open). There is a specific 'newcomer' tag which marks projects suitable for someone who's new to Diaspora's code; these can be found [here](https://github.com/diaspora/diaspora/issues?labels=newcomer&page=1&state=open).<br />
<br />
[Sean Tilley](deadsuperhero@joindiaspora.com) started [this thread](https://www.joindiaspora.com/posts/2636466) recently asking people what they would like to see Diaspora be like in a year's time. There were many suggestions, and this post is an attempt to address as many of them as possible.<br />
<br />
First there are the fundamental parts of the software that make the Diaspora network operate.<br />
<br />
== Fundamental code ==<br />
<br />
=== Sort out federation ===<br />
If you don't yet know what 'federation' refers to, it's the sharing of data between pods in a decentralised network. It worked pretty well when Diaspora launched, but as the network grew in size (both the number of pods, and also large numbers of users on certain pods) flaws in the design became apparent and more problematic. Since then a lot of work has gone into trying to solve these problems so that data stored on one pod are successfully and instantly shared with all other pods which need to receive them, but this has been without doubt the most complex problem facing Diaspora's developers, and as yet the issues have not been fully solved. Even though it may seem that very little has happened, an awful lot of work has been going on behind the scenes to improve Diaspora's federation. If you think you can help us with this, we'd love to hear from you. (federation link).<br />
<br />
=== Make the code-base modular ===<br />
One of the things which has held up creation of features is that the fundamental aspects of the software, such as federation, are not yet stable. And if they have to be changed significantly in the future to improve network performance, this can cause features to suddenly stop working, which means that all the effort to create them has been wasted. This happened once already, and it set back Diaspora development by a long way, and it's something that we're keen will not happen again. Therefore, another important task that developers are working on is to make the code-base 'modular': that is, with each element of the code-base in its own discrete 'package'. Once this has been done, and elements such as federation have been separated into their own layers, making big changes to those fundamental parts of the code won't have knock-on effects on other elements such as features. If you think you can help us with this, please go here (modularity link).<br />
<br />
=== Create an API ===<br />
API stands for 'application programming interface'. It gives a structure and language for apps to work on the network. Once this has been created, it will be far easier to create and implement apps for Diaspora. But like all of the fundamental parts of the code, it's crucial that this be absolutely right first time, and so it is taking a long time to achieve this. If you think you can help us with this, please go here (API link).<br />
<br />
=== Data import/export – account migration ===<br />
Along with respecting individuals' privacy, having the ability to choose where your personal data are stored was one of Diaspora's founding principles. Two years down the line, it has yet to be implemented. There is an ongoing discussion about how best to implement proper migration of data so that people can easily move from one pod to another. This again is an extremely complex issue, and important to get it absolutely right. There are important considerations regarding identity theft, and how to make absolutely sure that it is impossible for a person to 'spoof' someone else's identity and thus get all their private data migrated to the spoofer's pod under false pretenses. If you think you can help us create this feature, please go here (migration link).<br />
<br />
=== Make it simple to set up a pod ===<br />
Although the installation and maintenance of a Diaspora pod has been made a lot simpler over the past two years, it is still quite a technical challenge for the average user. However, teams have been working on 'packaging' the software so that the process of installation becomes more or less 'point-and-click'. Progress has been made on this for a number of operating systems, including some on free web space, such as Heroku, but there are many other operating systems to go. If you think you can help us with this, please go here (packaging link).<br />
<br />
=== Make Diaspora compatible with other open networks ===<br />
At the moment Diaspora is run by bespoke software, written from the ground up with elements taken from other open-source projects, with its own communication protocols. The idea of making Diaspora compatible with other open-source, privacy-respecting networks has been raised a number of times, and this has also been the subject of a long-running discussion. However, the main problem with this is that as yet there is no obvious contender as a 'standard' protocol among open-source networks. If we chose one before this happens, Diaspora could end up the loser when another standard emerges (being the Betamax of open-source networks). Recently, a few protocols, such as Tent, have emerged which may meet these needs, and as soon as one of these emerges as a likely standard, it may well be adopted by Diaspora, along with other networks. Sean Tilley and others have been in discussion with the people behind Tent and some of the other emerging protocols, and also with other free networks, to try to establish which of the protocols is going to meet the needs of the most networks and therefore which should be adopted. If you think you can help us with this, please go here (protocol link).<br />
<br />
== Features ==<br />
<br />
Once the federation code has been stabilised and put into a separate 'layer', and an API has been created, it will be a lot easier to create features and apps for Diaspora. It doesn't make sense to put lots of effort into creating slick features until the funcdamental code is more stable, as changes to this code in the future could break all the features. If you'd like to help create a particular feature, go to [Github](https://github.com/diaspora/diaspora/issues?labels=feature)<br />
<br />
Features which are frequently requested include:<br />
<br />
=== Photo albums ===<br />
The plan will be to create photos albums, which may include features such as:<br />
* Tagging users in photos<br />
* Comments/likes on individual photos or complete album<br />
* Slideshow/full-screen view<br />
* Hi-res uploads<br />
* Editing of photos/albums<br />
<br />
=== Groups / Events ===<br />
Groups and events are both important means of organising communication. We certainly plan to implement them in the future, but both will only be useful if federation of data between pods is reliable and instantaneous, and this hasn't been achieved yet. See 'Federation' above.<br />
<br />
=== Shared calendars ===<br />
Again, an important feature which relies utterly on federation, and so can't be introduced yet.<br />
<br />
=== Instant messaging ===<br />
Discussions are currently taking place on the best protocols to use for instant messaging, and the best means of implementing this feature within Diaspora. See https://www.loomio.org/discussions/3678 for more details.<br />
<br />
=== Video conferencing ===<br />
It may also be possible to implement video conferencing as part of or alongside instant messaging.<br />
<br />
=== Apps for iOS and Android ===<br />
Much energy went into creating apps for mobile devices in the early days of the project, and some alpha-version apps for Android still exist. However, it was decided that it would be better to create a mobile version of Diaspora which worked really well and was easy to use on mobile devices. We think our mobile site is good enough that there isn't a need for an app for each mobile device, and hope you agree.<br />
<br />
== Privacy ==<br />
<br />
Privacy is at the heart of Diaspora, and as such we always want to make it possible for users to be as private as they like, and to know that their personal data are secure.<br />
<br />
===Encryption===<br />
One means of ensuring privacy is through the encryption of data. This includes encryption of data stored by pods, encryption between peer and server (i.e. between user and pod), and encryption of notification emails. There are complex technical issues to sort out in order to make this work, especially in a decentralised system<br />
<br />
===Have separate public and private bios in profile===<br />
Some users have requested separate biographies in their profile, one to be shown to people in their aspects, and the other to be shown to others.<br />
<br />
==='Public to Diaspora' / pod-only posting===<br />
This is a much-requested feature, which actually is a pretty complex issue to solve technically. If a way can be found to do this, it could certainly be implemented, but as yet no one has found a workable way of achieving this end.<br />
<br />
<br />
==Functionality==<br />
<br />
===Comment likes===<br />
One of the most common questions in Diaspora is 'Why can't I like comments?' Comment likes were available for a long time, but had to be removed as Diaspora started increasing in size, because for some reason on larger pods they were massively increasing the size of the databases and causing the larger pods to slow down. It's definitely part of Diaspora's plans to have comment likes again, but it can only be done once this database problem has been solved.<br />
<br />
===More connected services (G+, Libertree etc.)===<br />
We'd like to enabled our community members to connect with more services. When Google+ launched, its API was read-only, which meant it was not possible for external apps to connect with it [NB: is this still the case?]. However, as and when it is possible to link Diaspora with other services and networks, and as and when developer time is available, we'll hook up with more services. If you'd like to help us make this happen with any particular service or network, drop in to Github. [link]<br />
<br />
===OpenGraph image thumbnails===<br />
This would be a nice thing to implement, and is something we'll look into.<br />
<br />
===Single-post view===<br />
The current single-post view is going to disappear some time soon. The vase majority of people hated it when it was introduced and, even though I think it's a good idea in principle, it was never completed (the work on it became [Makr.io](https://www.makr.io/) and it's not really fit for purpose as it is - for example if there's a lot of text and a photo the text obliterates the photo. It has no way of reacting to different types of post.<br />
At the moment a number of options for single-post view are being designed, and it shouldn't be too long before one or more are introduced. It's possible the current single-post view will be retained as an option, but as reaction to it was so overwhelmingly negative and it's never been perfected, I suspect it will be dropped completely. (Discussion on Loomio https://www.loomio.org/discussions/2110)<br />
<br />
===Aggregation of reshares===<br />
It would be great if we could find a way to aggregate multiple reshares in the stream, and perhaps the comments made on those reshares. However, this would need to work from the query which generates the stream, and this is not currently an easy thing to do. A feature like this might have to wait until various elements of the stream generation have been rewritten.<br />
<br />
===Preview of comments and private messages===<br />
Our post preview feature, introduced in version 0.1.0.0, has been one of the most popular features. It would be great to introduce a similar preview feature for comments and private messages, and we hope this will happen in the future.<br />
<br />
===UI toolbar to format text===<br />
Along with being able to see a WYSIWYG preview of your post, some people have asked for a formatting toolbar so that formatting can be added at the touch of a button rather than having to manually use Markdown code. <br />
<br />
===Allowing use of HTML in posts===<br />
Some people have requested that it be made possible to use full HTML markup in posts rather than the more limited Markdown. There are dangers in this – for example, some people might go completely over-board and your stream could end up being a vile mess of colours, fonts and images. At the moment, Markdown works well for most purposes. We might consider introducing HTML support at some point in the future, but currently it is not a priority and no decision has been made on whether it would be desirable.<br />
<br />
===Customisation of stream===<br />
There have been requests to be able to customise the stream, so that it can be viewed, for example, chronologically by time of posting (the current view), or chronologically by latest activity on each post (the view used in My Activity), and that it would be possible to 'pin' certain posts to keep them at the top of the stream. Another feature sometimes requested is to be able to colour-code posts. Each of these are things we'd like to introduce,<br />
<br />
===Filtering stream by tag===<br />
At the moment, you can show a stream filtered to show only posts containing a certain tag, by clicking '#Followed tags' in the side-bar and then on the tag you want to see. However, there is no way of filtering *out* certain tags. This would be good to have, but is not a critical feature and not likely to make it to the top of the list of priorities any time soon. However, if you'd like to work on it, let us know.<br />
<br />
===Filtering stream by language===<br />
There's no real technically feasible means of filtering automatically by language. Language recognition by software is not an easy thing to achieve – and tends to be expensive. Suggestions have been made that people should include a tag for the language they're posting in. However, there's no way of making people do this, and it wouldn't really be a desirable thing to do in any case.<br />
It has been discussed before, but there doesn't seem to be any way of achieving it which is within the means of Diaspora. If you're really bothered when people post in languages you don't speak, you can block those posters.<br />
<br />
===Editing posts===<br />
This is another very frequently requested feature. However, there are some good reasons not to allow editing of posts once the post has been made. One of these is that if someone comments on a post and it is then changed, that is unfair on the commenter, as it may make their comment look irrelevant, ridiculous or offensive. Another is that, in a decentralised network, it can lead to different versions of a post existing on different pods. [NB: is this true? I didn't think this was how federation worked, but I've heard it said by reliable sources] For these reasons, it's unlikely that editing of posts will be allowed in Diaspora. Especially now with the preview function, it's easy to edit and perfect your post, including formatting, *before* you post it. If you really need to change it once you have posted it, copy the text of your post, delete the post, and then correct and repost it.<br />
A related thing which is often requested is to be able to change the visibility of a post from aspects only to public. However, here there are important privacy considerations: anyone who has commented on the post when it was limited will suddenly find that their comment, made to a limited audience, is now visible to the entire internet without their knowledge or approval. For this reason, it isn't desirable to add this option. Again, if you want to make a limited post public, copy/delete/repost as public.<br />
<br />
===Being able to reshare non-public posts===<br />
Just as above with changing a post from limited to public, there are important privacy considerations in this: if someone made a post limited, they did it because they only wanted the people they have placed into their aspects to see the post. They don't want all your contacts to be able to see it as well – if they did, they'd have made it public. This is why it is not possible to reshare a non-public post. It is possible, of course, to copy the text and post it yourself, but this isn't really in the spirit of respecting each community member's privacy.<br />
<br />
===@-mention members in comments===<br />
This is something that we really want to introduce. However, first we need to decide who can be @-mentioned in a comment. Can you mention anyone in your contacts list? Or anyone who has taken part in the conversation? Or both? There are technical considerations for each of these options. We're trying to work out the best way forward, and what will work best for our community.<br />
<br />
===Subscribe/unsubscribe button===<br />
It would be great to introduce something like this so users can follow a discussion without posting on it, or stop receiving notifications after posting on discussion. Hopefully we'll be able to introduce it in the future.<br />
<br />
===Improve search===<br />
There are two elements to this issue: be able easily to identify the person you're looking for, and getting all possible results to a search from all pods. <br />
On the first, there have been calls to be able for example to search for people by real name, but part of respecting privacy is allowing each person to reveal exactly as much or as little about themselves as they want. Each person can use whatever name they want, whether this is their real name or simply 'X'. If you know someone and want to connect with them on Diaspora but can't find them using a search, one thing you could do is to give them your Diapsora handle so that they can find you easily.<br />
On the second point, this is a federation issue and should improve as we sort out the remaining problems with federation between pods.<br />
<br />
==Don't know enough about these/not sure what to say==<br />
===RSA keys needed===<br />
===Ability to run pods as Tor hidden services===<br />
===Consistent UI and terminology across all areas===<br />
===Threaded comments===<br />
===Customizable UI themes===<br />
===Unmasking of shortened URLs, replacing with full, actual link===<br />
===Using audio/video tags for embedding media===<br />
===The option to receive plain text email notifications===<br />
===Non-JS website version===<br />
<br />
[[Category:Drafts]]<br />
[[Category:Outreach]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Template:Speculative&diff=796Template:Speculative2013-06-18T03:59:47Z<p>DeadSuperHero: Created page with "<!--{{Speculative}} begin--> {{ #msgbox: name=Speculative | type=warn | date={{{date|}}} | image=Ambox outdated content.svg | cat=Proposals | sub=This article is currently ..."</p>
<hr />
<div><!--{{Speculative}} begin--><br />
{{ #msgbox: name=Speculative <br />
| type=warn <br />
| date={{{date|}}}<br />
| image=Ambox outdated content.svg <br />
| cat=Proposals<br />
| sub=This article is currently a speculative draft based on user feedback and developer needs. It is currently a work-in-progress. [{{fullurl:{{FULLPAGENAME}}|action=edit}} improve the {{{space|article}}}] by updating it. There may be additional information on the [[:{{NAMESPACE}} talk:{{PAGENAME}}|talk page]]. <br />
| This {{{part|article}}}'s '''accuracy may be compromised due to out-of-date information'''. <br />
}}<br />
<!--{{Speculative}} end--><noinclude><br />
For documentation, see: [[Help:Diaspora* MediaWiki Extension/Messageboxes]]<br />
<br />
==== Possible template arguments ====<br />
<br />
* '''date'''<br>Insert a date, specifying when the message was inserted into the page. (Will be displayed in a smaller font after the main message.) Can be anything like "July 2012" or "2012-11-10" (as long as people know what it means). Default is to show no date.<br />
* '''space'''<br>specifies the superordinate labeling of the page this template is included in. (The part where it says ''"...help improve the'' [article] '' by updating..."'' Default is "article", but could be "image" or "help page" or something.<br />
* '''part'''<br>denominate the context which the template message is referring to. E.g. the whole article or just a section of one. (Will be used in ''"This'' [article] ''<nowiki>'</nowiki>s accuracy may be..."''.) Default: "article", could be "section" or anything else that makes sense in that sentence.<br />
</noinclude></div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Talk:Current_and_future_development&diff=795Talk:Current and future development2013-06-18T03:55:38Z<p>DeadSuperHero: Created page with "I feel that while we have established consensus on many of these features, they are not currently part of an officially sanctioned community "plan". I think that we need to do..."</p>
<hr />
<div>I feel that while we have established consensus on many of these features, they are not currently part of an officially sanctioned community "plan". I think that we need to do several things for a proper roadmap:<br />
<br />
1. Break things down into bite-size bits. It's one things to say that refactoring federation is a single thing we want to do, but it's a monumental task. What kinds of small steps would need to be taken to get to the bigger ones?<br />
<br />
2. We cannot make gigantic promises for features if we don't have developers to code them. I believe our roadmap should be shaped by the tasks our volunteers want to work on, and in accordance with point one, we ought to think about scaling things down. Solve the smaller problems first, in order to solve bigger problems.<br />
<br />
I'm also not entirely sure this should in-and-of-itself be a blogpost, but rather a proper coordinated roadmap.<br />
<br />
--[[User:DeadSuperHero|DeadSuperHero]] ([[User talk:DeadSuperHero|talk]]) 20:55, 17 June 2013 (PDT)</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=File:Facebook1.png&diff=794File:Facebook1.png2013-06-18T03:45:41Z<p>DeadSuperHero: DeadSuperHero uploaded a new version of &quot;File:Facebook1.png&quot;</p>
<hr />
<div>== Licensing ==<br />
{{self|Cc-zero}}</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Talk:Media_coverage&diff=790Talk:Media coverage2013-06-17T17:57:33Z<p>DeadSuperHero: Created page with "This needs updating. If no one else wants to do it, I would be more than happy to scour the web and update this list this week. --~~~~"</p>
<hr />
<div>This needs updating. If no one else wants to do it, I would be more than happy to scour the web and update this list this week. --[[User:DeadSuperHero|DeadSuperHero]] ([[User talk:DeadSuperHero|talk]]) 10:57, 17 June 2013 (PDT)</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=FAQ_for_pod_maintainers&diff=690FAQ for pod maintainers2013-06-15T02:46:20Z<p>DeadSuperHero: /* Installation */</p>
<hr />
<div>{{Out of date}}<br />
<br />
We've started adding questions that we see a lot to this page, but it doesn't cover everything.<br />
If you have other questions, the best way to get an answer quickly is to visit us in IRC. <br />
You might think, "IRC? For real? Is this 1994 again?" <br />
<br />
Yes. I mean, '''no'''! Just think of IRC as the open-source equivalent of a Campfire room. **Links<br />
to IRC channels and mailing lists are at the bottom of this page.**<br />
<br />
== Installation ==<br />
<br />
'''Do you have a detailed install guide?'''<br />
<br />
Yes. [[Notes On Installing and Running Diaspora|Check it out!]] It will probably be more up-to-date than<br />
this page, in general. Also, feel free to look at the [https://github.com/diaspora/diaspora/wiki/Installation-Guides collected guides] page for OS-specific/service-specific help.<br />
<br />
'''What ports does Diaspora need open for communication?'''<br />
<br />
Your webserver must be on port 443 for HTTPS. You must forward that port to 3000 or configure Apache or Nginx to do reverse-proxying. Otherwise friend requests may cause lockups on other servers. See the command-line switches below.<br />
<br />
'''Can I use Apache to run Diaspora?'''<br />
<br />
Yes, but that's quite uncommon and thus you might not have as many people being able to support you in case of need. See this [http://blog.fejes.ca/?p=41 Unofficial Diaspora with Apache2] guide.<br />
<br />
'''How do I install on various linux distros or Mac?'''<br />
<br />
See the [[Installation guides]] for a list of supported distros/OSs and what to do in each case.<br />
<br />
'''I installed Diaspora on my machine, went to http://localhost:3000 and signed up. But my friends can't add me!'''<br />
<br />
You signed up with "localhost" which is not a valid external address. You first need an<br />
externally-accessible address - either a domain name or an IP address. Once you have that<br />
working, you need to clear your database (`$ bundle exec rake db:migrate:reset`) and re-register coming in on the outside URL.<br />
<br />
'''bundle install >>> command not found ?'''<br />
<br />
sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle<br />
though the best solution is ./ubuntu-setup.bash<br />
<br />
'''How do I get past the sign in page to create a new account?'''<br />
<br />
To create a new account, go to http://yourdiasporainstance.com/users/sign_up <br />
(replacing *yourdiasporainstance.com* with the the host name of your pod).<br />
<br />
'''I installed Diaspora on my machine, but when I load the site there are no images and the layout looks horrible!'''<br />
<br />
If you're missing your images in the production environment, change serve_static_assets in config/environments/production.rb to true and restart Diaspora. Or set up a reverse proxy to serve the files directly under public/.<br />
<br />
'''There are no images on my pod'''<br />
<br />
You are most likely in production mode and/or your apache/nginx is not serving static assets. If you just want to run your server directly from thin on port 3000, you can set ruby to servce static assets by changing `environment.assets.serve` to `true` in your `config/diaspora.yml`. Please note, that it is faster if apache/nginx is set up to serve the files from the `public/` directory, since that's what it's build to do - serve files over http. <br />
<br />
'''Webfinger does not seem to be working'''<br />
<br />
Is your _resque_ worker running? Can you see the error in resque web? Does your SSL cert check out? (try a [ssl cert checker][ssl-check]). <br />
We do not support self signed certs, but you can get a free one [https://www.startssl.com/ from StartSSL].<br />
<br />
'''I am receiving posts, but nobody is receiving mine...'''<br />
<br />
[https://www.sslshopper.com/ssl-checker.html Check your ssl certs]!<br />
<br />
'''I'm getting the warning "... in production without Resque workers"''''<br />
<br />
[https://github.com/defunkt/resque Resque] is the backend we use for processing background jobs. Normally, resque is spawned as a separate process, but in this case you have configured Diaspora to run the jobs in the same process as the application. This is normally used for development or testing purposes, but if used in production, it can bring major performance penalties. Thus you should always run resque in its own process, by setting `environment.single_process_mode` to `false` in your `config/diaspora.yml` and starting the resque process with<br />
<br />
RAILS_ENV=production DB=mysql QUEUE=* bundle exec rake resque:work # or<br />
RAILS_ENV=production DB=postgres QUEUE=* bundle exec rake resque:work<br />
<br />
(In case you are using `script/server` to start Diapora, then you don't have to manually start the workers. This is already done by the script.)<br />
<br />
=== Upgrading ===<br />
<br />
'''Is there anything I should do before upgrading my installation?'''<br />
<br />
We have a service (Travis) that builds all our code for each ruby version/database combination that we support. Before you update your Diaspora installation, you should check here to see if your combination is green: http://travis-ci.org/diaspora/diaspora If it's not green, wait to do the update. (Note: Travis is having issues with their SSL cert, so you may get a warning, but it is safe to proceed.)<br />
<br />
'''How do I roll back my installation if an update breaks it?'''<br />
<br />
Just do: `git checkout [ref]` Where [ref] is the identifier of the commit to go back to. It's a long guid-like string of letters and numbers. You can find the ref by doing a git log, eyeballing the commit dates, and figuring out where you were before you pulled. Of course it's best if you keep track of that ref before you update. :)<br />
<br />
'''What if there were database migrations in the code I am rolling back?'''<br />
<br />
Then you also need to roll those back separately. You need to do this BEFORE you roll back the code. Look in the db/migrate directory and figure out which files are new since the last time you pulled - i.e., which migration your db should be on. They are in timestamp order in that directory. Then do:<br />
`rake db:rollback` And look at the output. It will tell you which migration you are now on. It rolls back one each time you run it. Run it until you're on the right migration and then roll back the code as described above.<br />
<br />
Also be aware that database rollbacks can fail - they depend on the migration author writing the correct code to roll back. And if they didn't right the correct code to roll forward... :) So really, the best thing you can do to avoid this is check [http://travis-ci.org/diaspora/diaspora Travis] (as described above) before doing an update.<br />
<br />
== General ==<br />
<br />
'''Will a pod eventually receive federated posts that it misses while being offline/down?'''<br />
<br />
Currently no, there are no retries, though we'd like to add that at some point. <br />
<br />
'''What do I do about all these PGErrors, like disconnects and SSL problems?'''<br />
<br />
If you are running Diaspora with PostgreSQL, beware that having [http://www.postgresql.org/docs/9.1/interactive/runtime-config-connection.html#GUC-SSL the ssl setting] turned on in the PostgreSQL config has been causing problems for several people. We recommend turning it off unless you know what you're doing.<br />
<br />
'''I've got my pod running. How do I disable outside logins?'''<br />
<br />
Change <code>registrations_closed</code> in <tt>config/application.yml</tt> from <code>false</code> to <code>true</code>, and then<br />
restart the server.<br />
<br />
'''How do I back up the database?'''<br />
<br />
From the command line type:<br />
<br />
<syntaxhighlight lang="bash"><br />
mysqldump -u <mysql username> -p diaspora_development > backup.sql<br />
</syntaxhighlight><br />
<br />
Enter your mysql password when prompted for it.<br />
Replace <code>_development</code> with <code>_production</code> if you're running the production environment.<br />
<br />
'''What's up with assets/jammit/js-runtime?'''<br />
<br />
The recent update to Rails 3.1 made it possible for us to use the included asset compilation mechanism and therefore drop the requirement for jammit and a Java environment. The new method requires a JavaScript runtime like [http://nodejs.org/ Node.js] or [https://github.com/cowboyd/therubyracer TheRubyRacer] to be installed, though. See the [Installation-Guides specific distribution guides] for how to install them. After one of them has been installed, you can compile the assets by running <tt>bundle exec rake assets:precompile</tt><br />
<br />
See the [[ Notes On Installing and Running Diaspora|installation guide]] for more detailed instructions on how to handle assets.<br />
<br />
'''I am on PPC (e.g. old iMac) and want to use it for serving Diaspora, but there is no ExecJS compatible JS runtime'''<br />
<br />
One thing you could do, assuming you have another PC that will run Node. Precompile your assets on that machine (using <code>bundle exec rake assets:precompile</code>) and then check them into git before you deploy to the PPC box. The Javascript runtime is only really needed for precompiling assets and shouldn't be loaded at all in the actual production environment. You may need to use <code>git add public/assets -f</code> to force git to check them in, since I think that directory is in .gitignore. <br />
(''from [https://github.com/diaspora/diaspora/issues/3429 #3429]'')<br />
<br />
'''What are roles and how do I use them?'''<br />
<br />
We switched from statically configured 'special' user accounts in the config file to a role system, which lets us change role assignments without having to restart the server. <br />
In order to convert your current config to the new roles you can import them by going to the rails console in the production environment by running the following command in your diaspora directory:<br />
<br />
<syntaxhighlight lang="bash"><br />
RAILS_ENV=production rails c<br />
</syntaxhighlight><br />
<br />
In case you want to assign roles to other users, you can do so by running these commands:<br />
<br />
<syntaxhighlight lang="ruby"><br />
u = User.find_by_email("user@email.com")<br />
Role.add_admin(u.person) # to add as admin, or<br />
Role.add_spotlight(u.person) # to add as 'community spotlight'<br />
<br />
# NOTE: the 'beta' role has been removed<br />
Role.add_beta(u.person) # to add as 'beta' user<br />
</syntaxhighlight><br />
<br />
When you are done, you can exit the console with<br />
<br />
<syntaxhighlight lang="ruby"><br />
quit<br />
</syntaxhighlight><br />
<br />
== What if my question isn't answered here? ==<br />
<br />
=== IRC Channels ===<br />
<br />
IRC is the best way to get an answer quickly. Click the link to the join the channel in a new <br />
browser window. You can also download and use an IRC client such as <br />
[http://colloquy.info/ Colloquy] for OS X or <br />
[http://www.mirc.com/ mIRC] for Windows.<br />
<br />
* [http://webchat.freenode.net/?channels=diaspora #diaspora on irc.freenode.net] - general discussion and help for folks installing Diaspora<br />
* [http://webchat.freenode.net/?channels=diaspora-dev #diaspora-dev on irc.freenode.net] - discussion of the source code and help for new developer contributors<br />
* [http://webchat.freenode.net/?channels=diaspora-de #diaspora-de on irc.freenode.net] - discussion in German.<br />
<br />
=== Mailing lists ===<br />
<br />
We have two mailing lists, both Google groups. They tend to have a slightly different audience than<br />
the IRC channels, so if you can't get your question answered in IRC, you can try here.<br />
<br />
* [http://groups.google.com/group/diaspora-discuss Discussion list] - Google group for discussion of non-technical topics<br />
* [http://groups.google.com/group/diaspora-dev Development discussion list] - Google group for discussion of installation, source code, and other technical topics<br />
<br />
[[Category:Podmin]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=FAQ_for_pod_maintainers&diff=689FAQ for pod maintainers2013-06-15T02:45:22Z<p>DeadSuperHero: /* Installation */</p>
<hr />
<div>{{Out of date}}<br />
<br />
We've started adding questions that we see a lot to this page, but it doesn't cover everything.<br />
If you have other questions, the best way to get an answer quickly is to visit us in IRC. <br />
You might think, "IRC? For real? Is this 1994 again?" <br />
<br />
Yes. I mean, '''no'''! Just think of IRC as the open-source equivalent of a Campfire room. **Links<br />
to IRC channels and mailing lists are at the bottom of this page.**<br />
<br />
== Installation ==<br />
<br />
'''Do you have a detailed install guide?'''<br />
<br />
Yes. [[Notes On Installing and Running Diaspora|Check it out!]] It will probably be more up-to-date than<br />
this page, in general. Also, feel free to look at the [https://github.com/diaspora/diaspora/wiki/Installation-Guides collected guides] page for OS-specific/service-specific help.<br />
<br />
'''What ports does Diaspora need open for communication?'''<br />
<br />
Your webserver must be on port 443 for HTTPS. You must forward that port to 3000 or configure Apache or Nginx to do reverse-proxying. Otherwise friend requests may cause lockups on other servers. See the command-line switches below.<br />
<br />
'''Can I use Apache to run Diaspora?'''<br />
<br />
Yes, but that's quite uncommon and thus you might not have as many people being able to support you in case of need. See this [http://blog.fejes.ca/?p=41 Unofficial Diaspora with Apache2] guide.<br />
<br />
'''How do I install on various linux distros or Mac?'''<br />
<br />
See the [[Installation guides]] for a list of supported distros/OSs and what to do in each case.<br />
<br />
'''I installed Diaspora on my machine, went to http://localhost:3000 and signed up. But my friends can't add me!'''<br />
<br />
You signed up with "localhost" which is not a valid external address. You first need an<br />
externally-accessible address - either a domain name or an IP address. Once you have that<br />
working, you need to clear your database (`$ bundle exec rake db:migrate:reset`) and re-register coming in on the outside URL.<br />
<br />
'''bundle install >>> command not found ?'''<br />
<br />
sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle<br />
though the best solution is ./ubuntu-setup.bash<br />
<br />
'''How do I get past the sign in page to create a new account?'''<br />
<br />
To create a new account, go to http://yourdiasporainstance.com/users/sign_up <br />
(replacing *yourdiasporainstance.com* with the the host name of your pod).<br />
<br />
'''I installed Diaspora on my machine, but when I load the site there are no images and the layout looks horrible!'''<br />
<br />
If you're missing your images in the production environment, change serve_static_assets in config/environments/production.rb to true and restart Diaspora. Or set up a reverse proxy to serve the files directly under public/.<br />
<br />
'''There are no images on my pod'''<br />
<br />
You are most likely in production mode and/or your apache/nginx is not serving static assets. If you just want to run your server directly from thin on port 3000, you can set ruby to servce static assets by changing `environment.assets.serve` to `true` in your `config/diaspora.yml`. Please note, that it is faster if apache/nginx is set up to serve the files from the `public/` directory, since that's what it's build to do - serve files over http. <br />
<br />
'''Webfinger does not seem to be working'''<br />
<br />
Is your _resque_ worker running? Can you see the error in resque web? Does your SSL cert check out? (try a [ssl cert checker][ssl-check]). <br />
We do not support self signed certs, but you can get a free one [https://www.startssl.com/ from StartSSL].<br />
<br />
'''I am receiving posts, but nobody is receiving mine...'''<br />
<br />
[Check your ssl certs][ssl-check]!<br />
<br />
'''I'm getting the warning "... in production without Resque workers"''''<br />
<br />
[https://github.com/defunkt/resque Resque] is the backend we use for processing background jobs. Normally, resque is spawned as a separate process, but in this case you have configured Diaspora to run the jobs in the same process as the application. This is normally used for development or testing purposes, but if used in production, it can bring major performance penalties. Thus you should always run resque in its own process, by setting `environment.single_process_mode` to `false` in your `config/diaspora.yml` and starting the resque process with<br />
<br />
RAILS_ENV=production DB=mysql QUEUE=* bundle exec rake resque:work # or<br />
RAILS_ENV=production DB=postgres QUEUE=* bundle exec rake resque:work<br />
<br />
(In case you are using `script/server` to start Diapora, then you don't have to manually start the workers. This is already done by the script.)<br />
<br />
[ssl-check]: https://www.sslshopper.com/ssl-checker.html<br />
<br />
=== Upgrading ===<br />
<br />
'''Is there anything I should do before upgrading my installation?'''<br />
<br />
We have a service (Travis) that builds all our code for each ruby version/database combination that we support. Before you update your Diaspora installation, you should check here to see if your combination is green: http://travis-ci.org/diaspora/diaspora If it's not green, wait to do the update. (Note: Travis is having issues with their SSL cert, so you may get a warning, but it is safe to proceed.)<br />
<br />
'''How do I roll back my installation if an update breaks it?'''<br />
<br />
Just do: `git checkout [ref]` Where [ref] is the identifier of the commit to go back to. It's a long guid-like string of letters and numbers. You can find the ref by doing a git log, eyeballing the commit dates, and figuring out where you were before you pulled. Of course it's best if you keep track of that ref before you update. :)<br />
<br />
'''What if there were database migrations in the code I am rolling back?'''<br />
<br />
Then you also need to roll those back separately. You need to do this BEFORE you roll back the code. Look in the db/migrate directory and figure out which files are new since the last time you pulled - i.e., which migration your db should be on. They are in timestamp order in that directory. Then do:<br />
`rake db:rollback` And look at the output. It will tell you which migration you are now on. It rolls back one each time you run it. Run it until you're on the right migration and then roll back the code as described above.<br />
<br />
Also be aware that database rollbacks can fail - they depend on the migration author writing the correct code to roll back. And if they didn't right the correct code to roll forward... :) So really, the best thing you can do to avoid this is check [http://travis-ci.org/diaspora/diaspora Travis] (as described above) before doing an update.<br />
<br />
== General ==<br />
<br />
'''Will a pod eventually receive federated posts that it misses while being offline/down?'''<br />
<br />
Currently no, there are no retries, though we'd like to add that at some point. <br />
<br />
'''What do I do about all these PGErrors, like disconnects and SSL problems?'''<br />
<br />
If you are running Diaspora with PostgreSQL, beware that having [http://www.postgresql.org/docs/9.1/interactive/runtime-config-connection.html#GUC-SSL the ssl setting] turned on in the PostgreSQL config has been causing problems for several people. We recommend turning it off unless you know what you're doing.<br />
<br />
'''I've got my pod running. How do I disable outside logins?'''<br />
<br />
Change <code>registrations_closed</code> in <tt>config/application.yml</tt> from <code>false</code> to <code>true</code>, and then<br />
restart the server.<br />
<br />
'''How do I back up the database?'''<br />
<br />
From the command line type:<br />
<br />
<syntaxhighlight lang="bash"><br />
mysqldump -u <mysql username> -p diaspora_development > backup.sql<br />
</syntaxhighlight><br />
<br />
Enter your mysql password when prompted for it.<br />
Replace <code>_development</code> with <code>_production</code> if you're running the production environment.<br />
<br />
'''What's up with assets/jammit/js-runtime?'''<br />
<br />
The recent update to Rails 3.1 made it possible for us to use the included asset compilation mechanism and therefore drop the requirement for jammit and a Java environment. The new method requires a JavaScript runtime like [http://nodejs.org/ Node.js] or [https://github.com/cowboyd/therubyracer TheRubyRacer] to be installed, though. See the [Installation-Guides specific distribution guides] for how to install them. After one of them has been installed, you can compile the assets by running <tt>bundle exec rake assets:precompile</tt><br />
<br />
See the [[ Notes On Installing and Running Diaspora|installation guide]] for more detailed instructions on how to handle assets.<br />
<br />
'''I am on PPC (e.g. old iMac) and want to use it for serving Diaspora, but there is no ExecJS compatible JS runtime'''<br />
<br />
One thing you could do, assuming you have another PC that will run Node. Precompile your assets on that machine (using <code>bundle exec rake assets:precompile</code>) and then check them into git before you deploy to the PPC box. The Javascript runtime is only really needed for precompiling assets and shouldn't be loaded at all in the actual production environment. You may need to use <code>git add public/assets -f</code> to force git to check them in, since I think that directory is in .gitignore. <br />
(''from [https://github.com/diaspora/diaspora/issues/3429 #3429]'')<br />
<br />
'''What are roles and how do I use them?'''<br />
<br />
We switched from statically configured 'special' user accounts in the config file to a role system, which lets us change role assignments without having to restart the server. <br />
In order to convert your current config to the new roles you can import them by going to the rails console in the production environment by running the following command in your diaspora directory:<br />
<br />
<syntaxhighlight lang="bash"><br />
RAILS_ENV=production rails c<br />
</syntaxhighlight><br />
<br />
In case you want to assign roles to other users, you can do so by running these commands:<br />
<br />
<syntaxhighlight lang="ruby"><br />
u = User.find_by_email("user@email.com")<br />
Role.add_admin(u.person) # to add as admin, or<br />
Role.add_spotlight(u.person) # to add as 'community spotlight'<br />
<br />
# NOTE: the 'beta' role has been removed<br />
Role.add_beta(u.person) # to add as 'beta' user<br />
</syntaxhighlight><br />
<br />
When you are done, you can exit the console with<br />
<br />
<syntaxhighlight lang="ruby"><br />
quit<br />
</syntaxhighlight><br />
<br />
== What if my question isn't answered here? ==<br />
<br />
=== IRC Channels ===<br />
<br />
IRC is the best way to get an answer quickly. Click the link to the join the channel in a new <br />
browser window. You can also download and use an IRC client such as <br />
[http://colloquy.info/ Colloquy] for OS X or <br />
[http://www.mirc.com/ mIRC] for Windows.<br />
<br />
* [http://webchat.freenode.net/?channels=diaspora #diaspora on irc.freenode.net] - general discussion and help for folks installing Diaspora<br />
* [http://webchat.freenode.net/?channels=diaspora-dev #diaspora-dev on irc.freenode.net] - discussion of the source code and help for new developer contributors<br />
* [http://webchat.freenode.net/?channels=diaspora-de #diaspora-de on irc.freenode.net] - discussion in German.<br />
<br />
=== Mailing lists ===<br />
<br />
We have two mailing lists, both Google groups. They tend to have a slightly different audience than<br />
the IRC channels, so if you can't get your question answered in IRC, you can try here.<br />
<br />
* [http://groups.google.com/group/diaspora-discuss Discussion list] - Google group for discussion of non-technical topics<br />
* [http://groups.google.com/group/diaspora-dev Development discussion list] - Google group for discussion of installation, source code, and other technical topics<br />
<br />
[[Category:Podmin]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=FAQ_for_pod_maintainers&diff=688FAQ for pod maintainers2013-06-15T02:45:02Z<p>DeadSuperHero: /* Installation */</p>
<hr />
<div>{{Out of date}}<br />
<br />
We've started adding questions that we see a lot to this page, but it doesn't cover everything.<br />
If you have other questions, the best way to get an answer quickly is to visit us in IRC. <br />
You might think, "IRC? For real? Is this 1994 again?" <br />
<br />
Yes. I mean, '''no'''! Just think of IRC as the open-source equivalent of a Campfire room. **Links<br />
to IRC channels and mailing lists are at the bottom of this page.**<br />
<br />
== Installation ==<br />
<br />
'''Do you have a detailed install guide?'''<br />
<br />
Yes. [[Notes On Installing and Running Diaspora|Check it out!]] It will probably be more up-to-date than<br />
this page, in general. Also, feel free to look at the [https://github.com/diaspora/diaspora/wiki/Installation-Guides collected guides] page for OS-specific/service-specific help.<br />
<br />
'''What ports does Diaspora need open for communication?'''<br />
<br />
Your webserver must be on port 443 for HTTPS. You must forward that port to 3000 or configure Apache or Nginx to do reverse-proxying. Otherwise friend requests may cause lockups on other servers. See the command-line switches below.<br />
<br />
'''Can I use Apache to run Diaspora?'''<br />
<br />
Yes, but that's quite uncommon and thus you might not have as many people being able to support you in case of need. See this [http://blog.fejes.ca/?p=41 Unofficial Diaspora with Apache2] guide.<br />
<br />
'''How do I install on various linux distros or Mac?'''<br />
<br />
See the [[Installation Guides]] for a list of supported distros/OSs and what to do in each case.<br />
<br />
'''I installed Diaspora on my machine, went to http://localhost:3000 and signed up. But my friends can't add me!'''<br />
<br />
You signed up with "localhost" which is not a valid external address. You first need an<br />
externally-accessible address - either a domain name or an IP address. Once you have that<br />
working, you need to clear your database (`$ bundle exec rake db:migrate:reset`) and re-register coming in on the outside URL.<br />
<br />
'''bundle install >>> command not found ?'''<br />
<br />
sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle<br />
though the best solution is ./ubuntu-setup.bash<br />
<br />
'''How do I get past the sign in page to create a new account?'''<br />
<br />
To create a new account, go to http://yourdiasporainstance.com/users/sign_up <br />
(replacing *yourdiasporainstance.com* with the the host name of your pod).<br />
<br />
'''I installed Diaspora on my machine, but when I load the site there are no images and the layout looks horrible!'''<br />
<br />
If you're missing your images in the production environment, change serve_static_assets in config/environments/production.rb to true and restart Diaspora. Or set up a reverse proxy to serve the files directly under public/.<br />
<br />
'''There are no images on my pod'''<br />
<br />
You are most likely in production mode and/or your apache/nginx is not serving static assets. If you just want to run your server directly from thin on port 3000, you can set ruby to servce static assets by changing `environment.assets.serve` to `true` in your `config/diaspora.yml`. Please note, that it is faster if apache/nginx is set up to serve the files from the `public/` directory, since that's what it's build to do - serve files over http. <br />
<br />
'''Webfinger does not seem to be working'''<br />
<br />
Is your _resque_ worker running? Can you see the error in resque web? Does your SSL cert check out? (try a [ssl cert checker][ssl-check]). <br />
We do not support self signed certs, but you can get a free one [https://www.startssl.com/ from StartSSL].<br />
<br />
'''I am receiving posts, but nobody is receiving mine...'''<br />
<br />
[Check your ssl certs][ssl-check]!<br />
<br />
'''I'm getting the warning "... in production without Resque workers"''''<br />
<br />
[https://github.com/defunkt/resque Resque] is the backend we use for processing background jobs. Normally, resque is spawned as a separate process, but in this case you have configured Diaspora to run the jobs in the same process as the application. This is normally used for development or testing purposes, but if used in production, it can bring major performance penalties. Thus you should always run resque in its own process, by setting `environment.single_process_mode` to `false` in your `config/diaspora.yml` and starting the resque process with<br />
<br />
RAILS_ENV=production DB=mysql QUEUE=* bundle exec rake resque:work # or<br />
RAILS_ENV=production DB=postgres QUEUE=* bundle exec rake resque:work<br />
<br />
(In case you are using `script/server` to start Diapora, then you don't have to manually start the workers. This is already done by the script.)<br />
<br />
[ssl-check]: https://www.sslshopper.com/ssl-checker.html<br />
<br />
=== Upgrading ===<br />
<br />
'''Is there anything I should do before upgrading my installation?'''<br />
<br />
We have a service (Travis) that builds all our code for each ruby version/database combination that we support. Before you update your Diaspora installation, you should check here to see if your combination is green: http://travis-ci.org/diaspora/diaspora If it's not green, wait to do the update. (Note: Travis is having issues with their SSL cert, so you may get a warning, but it is safe to proceed.)<br />
<br />
'''How do I roll back my installation if an update breaks it?'''<br />
<br />
Just do: `git checkout [ref]` Where [ref] is the identifier of the commit to go back to. It's a long guid-like string of letters and numbers. You can find the ref by doing a git log, eyeballing the commit dates, and figuring out where you were before you pulled. Of course it's best if you keep track of that ref before you update. :)<br />
<br />
'''What if there were database migrations in the code I am rolling back?'''<br />
<br />
Then you also need to roll those back separately. You need to do this BEFORE you roll back the code. Look in the db/migrate directory and figure out which files are new since the last time you pulled - i.e., which migration your db should be on. They are in timestamp order in that directory. Then do:<br />
`rake db:rollback` And look at the output. It will tell you which migration you are now on. It rolls back one each time you run it. Run it until you're on the right migration and then roll back the code as described above.<br />
<br />
Also be aware that database rollbacks can fail - they depend on the migration author writing the correct code to roll back. And if they didn't right the correct code to roll forward... :) So really, the best thing you can do to avoid this is check [http://travis-ci.org/diaspora/diaspora Travis] (as described above) before doing an update.<br />
<br />
== General ==<br />
<br />
'''Will a pod eventually receive federated posts that it misses while being offline/down?'''<br />
<br />
Currently no, there are no retries, though we'd like to add that at some point. <br />
<br />
'''What do I do about all these PGErrors, like disconnects and SSL problems?'''<br />
<br />
If you are running Diaspora with PostgreSQL, beware that having [http://www.postgresql.org/docs/9.1/interactive/runtime-config-connection.html#GUC-SSL the ssl setting] turned on in the PostgreSQL config has been causing problems for several people. We recommend turning it off unless you know what you're doing.<br />
<br />
'''I've got my pod running. How do I disable outside logins?'''<br />
<br />
Change <code>registrations_closed</code> in <tt>config/application.yml</tt> from <code>false</code> to <code>true</code>, and then<br />
restart the server.<br />
<br />
'''How do I back up the database?'''<br />
<br />
From the command line type:<br />
<br />
<syntaxhighlight lang="bash"><br />
mysqldump -u <mysql username> -p diaspora_development > backup.sql<br />
</syntaxhighlight><br />
<br />
Enter your mysql password when prompted for it.<br />
Replace <code>_development</code> with <code>_production</code> if you're running the production environment.<br />
<br />
'''What's up with assets/jammit/js-runtime?'''<br />
<br />
The recent update to Rails 3.1 made it possible for us to use the included asset compilation mechanism and therefore drop the requirement for jammit and a Java environment. The new method requires a JavaScript runtime like [http://nodejs.org/ Node.js] or [https://github.com/cowboyd/therubyracer TheRubyRacer] to be installed, though. See the [Installation-Guides specific distribution guides] for how to install them. After one of them has been installed, you can compile the assets by running <tt>bundle exec rake assets:precompile</tt><br />
<br />
See the [[ Notes On Installing and Running Diaspora|installation guide]] for more detailed instructions on how to handle assets.<br />
<br />
'''I am on PPC (e.g. old iMac) and want to use it for serving Diaspora, but there is no ExecJS compatible JS runtime'''<br />
<br />
One thing you could do, assuming you have another PC that will run Node. Precompile your assets on that machine (using <code>bundle exec rake assets:precompile</code>) and then check them into git before you deploy to the PPC box. The Javascript runtime is only really needed for precompiling assets and shouldn't be loaded at all in the actual production environment. You may need to use <code>git add public/assets -f</code> to force git to check them in, since I think that directory is in .gitignore. <br />
(''from [https://github.com/diaspora/diaspora/issues/3429 #3429]'')<br />
<br />
'''What are roles and how do I use them?'''<br />
<br />
We switched from statically configured 'special' user accounts in the config file to a role system, which lets us change role assignments without having to restart the server. <br />
In order to convert your current config to the new roles you can import them by going to the rails console in the production environment by running the following command in your diaspora directory:<br />
<br />
<syntaxhighlight lang="bash"><br />
RAILS_ENV=production rails c<br />
</syntaxhighlight><br />
<br />
In case you want to assign roles to other users, you can do so by running these commands:<br />
<br />
<syntaxhighlight lang="ruby"><br />
u = User.find_by_email("user@email.com")<br />
Role.add_admin(u.person) # to add as admin, or<br />
Role.add_spotlight(u.person) # to add as 'community spotlight'<br />
<br />
# NOTE: the 'beta' role has been removed<br />
Role.add_beta(u.person) # to add as 'beta' user<br />
</syntaxhighlight><br />
<br />
When you are done, you can exit the console with<br />
<br />
<syntaxhighlight lang="ruby"><br />
quit<br />
</syntaxhighlight><br />
<br />
== What if my question isn't answered here? ==<br />
<br />
=== IRC Channels ===<br />
<br />
IRC is the best way to get an answer quickly. Click the link to the join the channel in a new <br />
browser window. You can also download and use an IRC client such as <br />
[http://colloquy.info/ Colloquy] for OS X or <br />
[http://www.mirc.com/ mIRC] for Windows.<br />
<br />
* [http://webchat.freenode.net/?channels=diaspora #diaspora on irc.freenode.net] - general discussion and help for folks installing Diaspora<br />
* [http://webchat.freenode.net/?channels=diaspora-dev #diaspora-dev on irc.freenode.net] - discussion of the source code and help for new developer contributors<br />
* [http://webchat.freenode.net/?channels=diaspora-de #diaspora-de on irc.freenode.net] - discussion in German.<br />
<br />
=== Mailing lists ===<br />
<br />
We have two mailing lists, both Google groups. They tend to have a slightly different audience than<br />
the IRC channels, so if you can't get your question answered in IRC, you can try here.<br />
<br />
* [http://groups.google.com/group/diaspora-discuss Discussion list] - Google group for discussion of non-technical topics<br />
* [http://groups.google.com/group/diaspora-dev Development discussion list] - Google group for discussion of installation, source code, and other technical topics<br />
<br />
[[Category:Podmin]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=FAQ_for_pod_maintainers&diff=687FAQ for pod maintainers2013-06-15T02:40:52Z<p>DeadSuperHero: /* Installation */</p>
<hr />
<div>{{Out of date}}<br />
<br />
We've started adding questions that we see a lot to this page, but it doesn't cover everything.<br />
If you have other questions, the best way to get an answer quickly is to visit us in IRC. <br />
You might think, "IRC? For real? Is this 1994 again?" <br />
<br />
Yes. I mean, '''no'''! Just think of IRC as the open-source equivalent of a Campfire room. **Links<br />
to IRC channels and mailing lists are at the bottom of this page.**<br />
<br />
== Installation ==<br />
<br />
'''Do you have a detailed install guide?'''<br />
<br />
Yes. [[Notes On Installing and Running Diaspora|Check it out!]] It will probably be more up-to-date than<br />
this page, in general. Also, feel free to look at the [https://github.com/diaspora/diaspora/wiki/Installation-Guides collected guides] page for OS-specific/service-specific help.<br />
<br />
'''What ports does Diaspora need open for communication?'''<br />
<br />
Your webserver must be on port 443 for HTTPS. You must forward that port to 3000 or configure Apache or Nginx to do reverse-proxying. Otherwise friend requests may cause lockups on other servers. See the command-line switches below.<br />
<br />
'''Can I use Apache to run Diaspora?'''<br />
<br />
Yes, but that's quite uncommon and thus you might not have as many people being able to support you in case of need. See [[Installing on Ubuntu Apache]] or the [http://blog.fejes.ca/?p=41 Unofficial Diaspora with Apache2] guide.<br />
<br />
'''How do I install on various linux distros or Mac?'''<br />
<br />
See the [https://github.com/diaspora/diaspora/wiki/Installation-Guides Installation Guides] for a list of supported distros/OSs and what to do in each case.<br />
<br />
'''I installed Diaspora on my machine, went to http://localhost:3000 and signed up. But my friends can't add me!'''<br />
<br />
You signed up with "localhost" which is not a valid external address. You first need an<br />
externally-accessible address - either a domain name or an IP address. Once you have that<br />
working, you need to clear your database (`$ bundle exec rake db:migrate:reset`) and re-register coming in on the outside URL.<br />
<br />
'''bundle install >>> command not found ?'''<br />
<br />
sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle<br />
though the best solution is ./ubuntu-setup.bash<br />
<br />
'''How do I get past the sign in page to create a new account?'''<br />
<br />
To create a new account, go to http://yourdiasporainstance.com/users/sign_up <br />
(replacing *yourdiasporainstance.com* with the the host name of your pod).<br />
<br />
'''I installed Diaspora on my machine, but when I load the site there are no images and the layout looks horrible!'''<br />
<br />
If you're missing your images in the production environment, change serve_static_assets in config/environments/production.rb to true and restart Diaspora. Or set up a reverse proxy to serve the files directly under public/.<br />
<br />
'''There are no images on my pod'''<br />
<br />
You are most likely in production mode and/or your apache/nginx is not serving static assets. If you just want to run your server directly from thin on port 3000, you can set ruby to servce static assets by changing `environment.assets.serve` to `true` in your `config/diaspora.yml`. Please note, that it is faster if apache/nginx is set up to serve the files from the `public/` directory, since that's what it's build to do - serve files over http. <br />
<br />
'''Webfinger does not seem to be working'''<br />
<br />
Is your _resque_ worker running? Can you see the error in resque web? Does your SSL cert check out? (try a [ssl cert checker][ssl-check]). <br />
We do not support self signed certs, but you can get a free one [https://www.startssl.com/ from StartSSL].<br />
<br />
'''I am receiving posts, but nobody is receiving mine...'''<br />
<br />
[Check your ssl certs][ssl-check]!<br />
<br />
'''I'm getting the warning "... in production without Resque workers"''''<br />
<br />
[https://github.com/defunkt/resque Resque] is the backend we use for processing background jobs. Normally, resque is spawned as a separate process, but in this case you have configured Diaspora to run the jobs in the same process as the application. This is normally used for development or testing purposes, but if used in production, it can bring major performance penalties. Thus you should always run resque in its own process, by setting `environment.single_process_mode` to `false` in your `config/diaspora.yml` and starting the resque process with<br />
<br />
RAILS_ENV=production DB=mysql QUEUE=* bundle exec rake resque:work # or<br />
RAILS_ENV=production DB=postgres QUEUE=* bundle exec rake resque:work<br />
<br />
(In case you are using `script/server` to start Diapora, then you don't have to manually start the workers. This is already done by the script.)<br />
<br />
[ssl-check]: https://www.sslshopper.com/ssl-checker.html<br />
<br />
=== Upgrading ===<br />
<br />
'''Is there anything I should do before upgrading my installation?'''<br />
<br />
We have a service (Travis) that builds all our code for each ruby version/database combination that we support. Before you update your Diaspora installation, you should check here to see if your combination is green: http://travis-ci.org/diaspora/diaspora If it's not green, wait to do the update. (Note: Travis is having issues with their SSL cert, so you may get a warning, but it is safe to proceed.)<br />
<br />
'''How do I roll back my installation if an update breaks it?'''<br />
<br />
Just do: `git checkout [ref]` Where [ref] is the identifier of the commit to go back to. It's a long guid-like string of letters and numbers. You can find the ref by doing a git log, eyeballing the commit dates, and figuring out where you were before you pulled. Of course it's best if you keep track of that ref before you update. :)<br />
<br />
'''What if there were database migrations in the code I am rolling back?'''<br />
<br />
Then you also need to roll those back separately. You need to do this BEFORE you roll back the code. Look in the db/migrate directory and figure out which files are new since the last time you pulled - i.e., which migration your db should be on. They are in timestamp order in that directory. Then do:<br />
`rake db:rollback` And look at the output. It will tell you which migration you are now on. It rolls back one each time you run it. Run it until you're on the right migration and then roll back the code as described above.<br />
<br />
Also be aware that database rollbacks can fail - they depend on the migration author writing the correct code to roll back. And if they didn't right the correct code to roll forward... :) So really, the best thing you can do to avoid this is check [http://travis-ci.org/diaspora/diaspora Travis] (as described above) before doing an update.<br />
<br />
== General ==<br />
<br />
'''Will a pod eventually receive federated posts that it misses while being offline/down?'''<br />
<br />
Currently no, there are no retries, though we'd like to add that at some point. <br />
<br />
'''What do I do about all these PGErrors, like disconnects and SSL problems?'''<br />
<br />
If you are running Diaspora with PostgreSQL, beware that having [http://www.postgresql.org/docs/9.1/interactive/runtime-config-connection.html#GUC-SSL the ssl setting] turned on in the PostgreSQL config has been causing problems for several people. We recommend turning it off unless you know what you're doing.<br />
<br />
'''I've got my pod running. How do I disable outside logins?'''<br />
<br />
Change <code>registrations_closed</code> in <tt>config/application.yml</tt> from <code>false</code> to <code>true</code>, and then<br />
restart the server.<br />
<br />
'''How do I back up the database?'''<br />
<br />
From the command line type:<br />
<br />
<syntaxhighlight lang="bash"><br />
mysqldump -u <mysql username> -p diaspora_development > backup.sql<br />
</syntaxhighlight><br />
<br />
Enter your mysql password when prompted for it.<br />
Replace <code>_development</code> with <code>_production</code> if you're running the production environment.<br />
<br />
'''What's up with assets/jammit/js-runtime?'''<br />
<br />
The recent update to Rails 3.1 made it possible for us to use the included asset compilation mechanism and therefore drop the requirement for jammit and a Java environment. The new method requires a JavaScript runtime like [http://nodejs.org/ Node.js] or [https://github.com/cowboyd/therubyracer TheRubyRacer] to be installed, though. See the [Installation-Guides specific distribution guides] for how to install them. After one of them has been installed, you can compile the assets by running <tt>bundle exec rake assets:precompile</tt><br />
<br />
See the [[ Notes On Installing and Running Diaspora|installation guide]] for more detailed instructions on how to handle assets.<br />
<br />
'''I am on PPC (e.g. old iMac) and want to use it for serving Diaspora, but there is no ExecJS compatible JS runtime'''<br />
<br />
One thing you could do, assuming you have another PC that will run Node. Precompile your assets on that machine (using <code>bundle exec rake assets:precompile</code>) and then check them into git before you deploy to the PPC box. The Javascript runtime is only really needed for precompiling assets and shouldn't be loaded at all in the actual production environment. You may need to use <code>git add public/assets -f</code> to force git to check them in, since I think that directory is in .gitignore. <br />
(''from [https://github.com/diaspora/diaspora/issues/3429 #3429]'')<br />
<br />
'''What are roles and how do I use them?'''<br />
<br />
We switched from statically configured 'special' user accounts in the config file to a role system, which lets us change role assignments without having to restart the server. <br />
In order to convert your current config to the new roles you can import them by going to the rails console in the production environment by running the following command in your diaspora directory:<br />
<br />
<syntaxhighlight lang="bash"><br />
RAILS_ENV=production rails c<br />
</syntaxhighlight><br />
<br />
In case you want to assign roles to other users, you can do so by running these commands:<br />
<br />
<syntaxhighlight lang="ruby"><br />
u = User.find_by_email("user@email.com")<br />
Role.add_admin(u.person) # to add as admin, or<br />
Role.add_spotlight(u.person) # to add as 'community spotlight'<br />
<br />
# NOTE: the 'beta' role has been removed<br />
Role.add_beta(u.person) # to add as 'beta' user<br />
</syntaxhighlight><br />
<br />
When you are done, you can exit the console with<br />
<br />
<syntaxhighlight lang="ruby"><br />
quit<br />
</syntaxhighlight><br />
<br />
== What if my question isn't answered here? ==<br />
<br />
=== IRC Channels ===<br />
<br />
IRC is the best way to get an answer quickly. Click the link to the join the channel in a new <br />
browser window. You can also download and use an IRC client such as <br />
[http://colloquy.info/ Colloquy] for OS X or <br />
[http://www.mirc.com/ mIRC] for Windows.<br />
<br />
* [http://webchat.freenode.net/?channels=diaspora #diaspora on irc.freenode.net] - general discussion and help for folks installing Diaspora<br />
* [http://webchat.freenode.net/?channels=diaspora-dev #diaspora-dev on irc.freenode.net] - discussion of the source code and help for new developer contributors<br />
* [http://webchat.freenode.net/?channels=diaspora-de #diaspora-de on irc.freenode.net] - discussion in German.<br />
<br />
=== Mailing lists ===<br />
<br />
We have two mailing lists, both Google groups. They tend to have a slightly different audience than<br />
the IRC channels, so if you can't get your question answered in IRC, you can try here.<br />
<br />
* [http://groups.google.com/group/diaspora-discuss Discussion list] - Google group for discussion of non-technical topics<br />
* [http://groups.google.com/group/diaspora-dev Development discussion list] - Google group for discussion of installation, source code, and other technical topics<br />
<br />
[[Category:Podmin]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Project_assets&diff=686Project assets2013-06-15T02:39:21Z<p>DeadSuperHero: /* Domains */</p>
<hr />
<div>By project assets we mean anything officially belonging to the Diaspora Project. This should not be confused with being owned in a legally binding way, but something that is recognized as being used officially by and for the project. These kind of assets should be recognized and documented, including the names of the key community persons who hold the keys. If possible, keys to project assets should be distributed to several key project members.<br />
<br />
The purpose of this page is to keep information on who to contact in the event that some administrative things need to be done to a critical asset for the project.<br />
<br />
== List of assets ==<br />
<br />
Please help keep this list up to date. Note however that pods are not project assets, they are run by individuals community members or organizations. Also it should be kept in mind that this page should only contain ''officially recognized'' assets that can be said to "belong" to the community. So if someone is running a blog, statistics or service that doesn't fall under Diaspora Project governance - it is not a project resource.<br />
<br />
=== Domains ===<br />
<br />
; diasporafoundation.org<br />
: Future project site.<br />
: Owned by: Maxwell Salzberg<br />
<br />
; diaspora-project.org<br />
: Temporary project site.<br />
: Owned by: [http://dia.so/go/?deadsuperhero@joindiaspora.com Sean Tilley]<br />
<br />
=== Code repositories ===<br />
<br />
; Github (http://github.com/diaspora)<br />
: Diaspora* organization and repositories under that<br />
: Owned by: [http://diaspora-project.org/supporters/maxwell-salzberg Maxwell Salzberg]?<br />
: Collaborator rights: [https://github.com/diaspora?tab=members Github organization members]<br />
<br />
=== Tools ===<br />
<br />
; Loomio group (http://www.loomio.org/groups/194)<br />
: Owned by: [http://diaspora-project.org/supporters/sean-tilley Sean Tilley]<br />
<br />
; Diaspora-Dev mailing list (http://groups.google.com/group/diaspora-dev)<br />
: Owned by: [http://diaspora-project.org/supporters/maxwell-salzberg Maxwell Salzberg], [http://diaspora-project.org/supporters/daniel-grippi Daniel Grippi]<br />
: Admin rights: [[User:MrZYX|Jonne Haß]]<br />
<br />
; Diaspora-Discuss mailing list (http://groups.google.com/group/diaspora-discuss)<br />
: Owned by: [http://diaspora-project.org/supporters/maxwell-salzberg Maxwell Salzberg], [http://diaspora-project.org/supporters/daniel-grippi Daniel Grippi]<br />
: Admin rights: [[User:MrZYX|Jonne Haß]]<br />
<br />
; WebTranslateIt project (https://webtranslateit.com/en/projects/3020-Diaspora)<br />
: Owned by: [[User:MrZYX|Jonne Haß]]<br />
<br />
=== Social Media ===<br />
<br />
; Diaspora* - [https://joindiaspora.com/u/diasporahq DiasporaHQ] (diasporahq@joindiaspora.com)<br />
: Access: Sean Tilley, Flaburgan, Goob<br />
<br />
; [https://www.facebook.com/joindiaspora Facebook]<br />
: Access: Sean Tilley<br />
<br />
; [https://twitter.com/joindiaspora Twitter]<br />
: Access: Sean Tilley<br />
<br />
; [http://identi.ca/joindiaspora Identi.ca]<br />
: Access: Sean Tilley<br />
<br />
; [https://alpha.app.net/diaspora App.net]<br />
: Access: ?<br />
<br />
; [https://plus.google.com/u/0/b/115328962471049657723 Google+]<br />
: Access: Jason Robinson, Sean Tilley<br />
<br />
Social media team has a [https://www.loomio.org/groups/307 subgroup on Loomio] to govern these resources.<br />
<br />
[[Category:Governance]]<br />
[[Category:Community]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Project_assets&diff=685Project assets2013-06-15T02:37:51Z<p>DeadSuperHero: /* Domains */</p>
<hr />
<div>By project assets we mean anything officially belonging to the Diaspora Project. This should not be confused with being owned in a legally binding way, but something that is recognized as being used officially by and for the project. These kind of assets should be recognized and documented, including the names of the key community persons who hold the keys. If possible, keys to project assets should be distributed to several key project members.<br />
<br />
The purpose of this page is to keep information on who to contact in the event that some administrative things need to be done to a critical asset for the project.<br />
<br />
== List of assets ==<br />
<br />
Please help keep this list up to date. Note however that pods are not project assets, they are run by individuals community members or organizations. Also it should be kept in mind that this page should only contain ''officially recognized'' assets that can be said to "belong" to the community. So if someone is running a blog, statistics or service that doesn't fall under Diaspora Project governance - it is not a project resource.<br />
<br />
=== Domains ===<br />
<br />
; diasporafoundation.org<br />
: Future project site.<br />
: Owned by: Maxwell Salzberg<br />
<br />
; diaspora-project.org<br />
: Temporary project site.<br />
: Owned by: [http://diaspora-project.org/supporters/sean-tilley Sean Tilley]<br />
<br />
=== Code repositories ===<br />
<br />
; Github (http://github.com/diaspora)<br />
: Diaspora* organization and repositories under that<br />
: Owned by: [http://diaspora-project.org/supporters/maxwell-salzberg Maxwell Salzberg]?<br />
: Collaborator rights: [https://github.com/diaspora?tab=members Github organization members]<br />
<br />
=== Tools ===<br />
<br />
; Loomio group (http://www.loomio.org/groups/194)<br />
: Owned by: [http://diaspora-project.org/supporters/sean-tilley Sean Tilley]<br />
<br />
; Diaspora-Dev mailing list (http://groups.google.com/group/diaspora-dev)<br />
: Owned by: [http://diaspora-project.org/supporters/maxwell-salzberg Maxwell Salzberg], [http://diaspora-project.org/supporters/daniel-grippi Daniel Grippi]<br />
: Admin rights: [[User:MrZYX|Jonne Haß]]<br />
<br />
; Diaspora-Discuss mailing list (http://groups.google.com/group/diaspora-discuss)<br />
: Owned by: [http://diaspora-project.org/supporters/maxwell-salzberg Maxwell Salzberg], [http://diaspora-project.org/supporters/daniel-grippi Daniel Grippi]<br />
: Admin rights: [[User:MrZYX|Jonne Haß]]<br />
<br />
; WebTranslateIt project (https://webtranslateit.com/en/projects/3020-Diaspora)<br />
: Owned by: [[User:MrZYX|Jonne Haß]]<br />
<br />
=== Social Media ===<br />
<br />
; Diaspora* - [https://joindiaspora.com/u/diasporahq DiasporaHQ] (diasporahq@joindiaspora.com)<br />
: Access: Sean Tilley, Flaburgan, Goob<br />
<br />
; [https://www.facebook.com/joindiaspora Facebook]<br />
: Access: Sean Tilley<br />
<br />
; [https://twitter.com/joindiaspora Twitter]<br />
: Access: Sean Tilley<br />
<br />
; [http://identi.ca/joindiaspora Identi.ca]<br />
: Access: Sean Tilley<br />
<br />
; [https://alpha.app.net/diaspora App.net]<br />
: Access: ?<br />
<br />
; [https://plus.google.com/u/0/b/115328962471049657723 Google+]<br />
: Access: Jason Robinson, Sean Tilley<br />
<br />
Social media team has a [https://www.loomio.org/groups/307 subgroup on Loomio] to govern these resources.<br />
<br />
[[Category:Governance]]<br />
[[Category:Community]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Installation/DreamHost&diff=609Installation/DreamHost2013-06-13T01:39:32Z<p>DeadSuperHero: </p>
<hr />
<div>Dreamhost runs Debian GNU/Linux lenny 5.0.8. You will need to create a new domain or subdomain with Ruby on Rails enabled.<br />
<br />
'''Per Dreamhost policy you are not permitted to run persistent processes on shared hosting plans. This has been verified with Dreamhost Support staff. Persistent processes are only permitted on Dreamhost PS plans.'''<br />
<br />
This means especially network daemons (redis-server) are against the Terms of Service. (DreamHost Policy Bot on 16/09/11)<br />
<br />
"Firstly, we reserve the right to kill any user process on a shared server without warning or prior notification at our discretion." We don't just do this capriciously though! We do this if the process is in any way adversely affecting the smooth functioning of your shared server.<br />
<br />
[http://wiki.dreamhost.com/Cron_Jobs_%26_Persistent_Processes#What_is_your_persistent_.28background.29_process_policy.3F Dreamhost Wiki]<br />
<br />
* I'm going to ask them if these 3 specific processes (redis-server, resque, websocket_server) can be run (j4v4m4n)<br />
* We can still do it asynchronously, whenever you want to sync, ssh into your shell and run redis-server and resque, login to your pod, do your things, kill those processes and logout from shell. Yeah, not a great way to run, but you get to keep your data.<br />
* There is an option in config/application.yml to run in single process mode, that way we don't have to depend on resque<br />
<br />
== MySQL ==<br />
<br />
You need to create a new database for diaspora from dreamhost panel.<br />
Bundler<br />
<br />
To install Bundler, run the following:<br />
<br />
$ gem install bundler <br />
<br />
Redis<br />
<br />
To install Redis follow these steps (you can skip this step if you are going to use single_process_mode):<br />
<br />
$ wget http://redis.googlecode.com/files/redis-2.4.5.tar.gz<br />
$ tar -zxvf redis-2.4.5.tar.gz<br />
$ cd redis-2.4.5<br />
$ cd src; make PREFIX=$HOME/redis<br />
$ make PREFIX=$HOME/redis install<br />
$ nohup $HOME/redis/bin/redis-server &<br />
<br />
Follow remaining steps from main installation article. Just check the notes below for dreamhost specific quirks.<br />
Notes<br />
<br />
Run these commands from diapsora code directory - $HOME/<br />
<br />
To run bundle use ~/.gems/bin/bundle<br />
<br />
Note: sqlite3 gem won't work if you don't provide '--without development' option. Also you have to remove lines containing sqlite3 from Gemfile and Gemfile.lock.<br />
<br />
$ ~/.gems/bin/bundle install --path vendor/bundle_gems --without development <br />
<br />
There is an old version of rack installed by default which conflicts with diapsora<br />
<br />
Hack: You have to change rack version to 1.2.1 in Gemfile.lock to make it work, but then it does not work properly.<br />
<br />
Change ca_file in config/application.yml (remember dreamhost runs debian)<br />
<br />
Invoke all rake commands via budle exec<br />
<br />
$ RAILS_ENV=production ~/.gems/bin/bundle exec rake db:migrate<br />
<br />
Passenger equivalent to restart is<br />
<br />
$ touch tmp/restart.txt<br />
<br />
Starting resque (you can skip this step if you are going to use single_process_mode)<br />
<br />
$ RAILS_ENV=production QUEUE=* nohup ~/.gems/bin/bundle exec rake resque:work &<br />
<br />
Script for starting basic services (script/dreamhost)<br />
<br />
Note: See top of this page about restrictions about running background processes. Edit config/application.yml and under production change single_process_mode: true<br />
<br />
production:<br />
<<: *defaults<br />
single_process_mode: true<br />
<br />
or if you still want to go with background processes, create script/dreamhost and make it executable (chmod +x script/dreamhost)<br />
<br />
nohup ~/.gems/bin/bundle exec ~/redis/bin/redis-server &<br />
sleep 10<br />
RAILS_ENV=production QUEUE=* nohup ~/.gems/bin/bundle exec rake resque:work &<br />
sleep 10<br />
<br />
Note: Currently we get an internal server error if we have websocket_server running, so don't run it. I don't know if it has something to do with older rack version (j4v4m4n)</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Installation/DreamHost&diff=608Installation/DreamHost2013-06-13T01:38:48Z<p>DeadSuperHero: Created page with "Dreamhost runs Debian GNU/Linux lenny 5.0.8. You will need to create a new domain or subdomain with Ruby on Rails enabled. '''Per Dreamhost policy you are not permitted to ru..."</p>
<hr />
<div>Dreamhost runs Debian GNU/Linux lenny 5.0.8. You will need to create a new domain or subdomain with Ruby on Rails enabled.<br />
<br />
'''Per Dreamhost policy you are not permitted to run persistent processes on shared hosting plans. This has been verified with Dreamhost Support staff. Persistent processes are only permitted on Dreamhost PS plans.'''<br />
<br />
This means especially network daemons (redis-server) are against the Terms of Service. (DreamHost Policy Bot on 16/09/11)<br />
<br />
"Firstly, we reserve the right to kill any user process on a shared server without warning or prior notification at our discretion." We don't just do this capriciously though! We do this if the process is in any way adversely affecting the smooth functioning of your shared server.<br />
<br />
Link: Dreamhost Wiki<br />
<br />
* I'm going to ask them if these 3 specific processes (redis-server, resque, websocket_server) can be run (j4v4m4n)<br />
* We can still do it asynchronously, whenever you want to sync, ssh into your shell and run redis-server and resque, login to your pod, do your things, kill those processes and logout from shell. Yeah, not a great way to run, but you get to keep your data.<br />
* There is an option in config/application.yml to run in single process mode, that way we don't have to depend on resque<br />
<br />
== MySQL ==<br />
<br />
You need to create a new database for diaspora from dreamhost panel.<br />
Bundler<br />
<br />
To install Bundler, run the following:<br />
<br />
$ gem install bundler <br />
<br />
Redis<br />
<br />
To install Redis follow these steps (you can skip this step if you are going to use single_process_mode):<br />
<br />
$ wget http://redis.googlecode.com/files/redis-2.4.5.tar.gz<br />
$ tar -zxvf redis-2.4.5.tar.gz<br />
$ cd redis-2.4.5<br />
$ cd src; make PREFIX=$HOME/redis<br />
$ make PREFIX=$HOME/redis install<br />
$ nohup $HOME/redis/bin/redis-server &<br />
<br />
Follow remaining steps from main installation article. Just check the notes below for dreamhost specific quirks.<br />
Notes<br />
<br />
Run these commands from diapsora code directory - $HOME/<br />
<br />
To run bundle use ~/.gems/bin/bundle<br />
<br />
Note: sqlite3 gem won't work if you don't provide '--without development' option. Also you have to remove lines containing sqlite3 from Gemfile and Gemfile.lock.<br />
<br />
$ ~/.gems/bin/bundle install --path vendor/bundle_gems --without development <br />
<br />
There is an old version of rack installed by default which conflicts with diapsora<br />
<br />
Hack: You have to change rack version to 1.2.1 in Gemfile.lock to make it work, but then it does not work properly.<br />
<br />
Change ca_file in config/application.yml (remember dreamhost runs debian)<br />
<br />
Invoke all rake commands via budle exec<br />
<br />
$ RAILS_ENV=production ~/.gems/bin/bundle exec rake db:migrate<br />
<br />
Passenger equivalent to restart is<br />
<br />
$ touch tmp/restart.txt<br />
<br />
Starting resque (you can skip this step if you are going to use single_process_mode)<br />
<br />
$ RAILS_ENV=production QUEUE=* nohup ~/.gems/bin/bundle exec rake resque:work &<br />
<br />
Script for starting basic services (script/dreamhost)<br />
<br />
Note: See top of this page about restrictions about running background processes. Edit config/application.yml and under production change single_process_mode: true<br />
<br />
production:<br />
<<: *defaults<br />
single_process_mode: true<br />
<br />
or if you still want to go with background processes, create script/dreamhost and make it executable (chmod +x script/dreamhost)<br />
<br />
nohup ~/.gems/bin/bundle exec ~/redis/bin/redis-server &<br />
sleep 10<br />
RAILS_ENV=production QUEUE=* nohup ~/.gems/bin/bundle exec rake resque:work &<br />
sleep 10<br />
<br />
Note: Currently we get an internal server error if we have websocket_server running, so don't run it. I don't know if it has something to do with older rack version (j4v4m4n)</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Installation_guides&diff=607Installation guides2013-06-13T01:35:56Z<p>DeadSuperHero: /* DreamHost */</p>
<hr />
<div>So, you’ve decided to take the plunge and install Diaspora yourself. Great! Here are some must-have resources dealing with how to set things up and get everything going.<br />
<br />
If you don’t see your system on here, don’t give up. It should work similarly on most distributions. If you figure it out we’d love it when you add a guide here, even a “do the same as for xy” would help.<br />
<br />
== [[Notes_On_Installing_and_Running_Diaspora|Notes On Installing and Running Diaspora]] ==<br />
<br />
A useful generic comprehensive guide to getting Diaspora up and running.<br />
<br />
== Service Specific guides ==<br />
<br />
=== [[OpenShift|OpenShift]] ===<br />
<br />
=== [[Installing on DreamHost]] ===<br />
<br />
How to set Diaspora up with a DreamHost Private Server.<br />
<br />
=== [[Installing_on_Heroku|Heroku]] ===<br />
<br />
How to set up Diaspora on a single Heroku dyno. Useful for running a personal pod for free (or nearly free), or scaling up and running a public pod.<br />
<br />
=== [[Pagekite|PageKite]] ===<br />
<br />
In case you’re a [http://pagekite.net/ PageKite] user, you can set up the service to point to your own locally-hosted pod.<br />
<br />
=== [[EngineYard|EngineYard]] ===<br />
<br />
Deploy Diaspora to EngineYard using a Windows PC. This wiki explains using “Git for Windows” to deploy your Diaspora test “fork” to EngineYard.<br />
<br />
== OS/Distribution Specific ==<br />
<br />
Below are some existing guides to getting a Diaspora pod set up on your system of choice. This is particularly useful for setting up a testing environment.<br />
<br />
=== [[Diaspora_on_Windows|Windows]] ===<br />
<br />
=== [[Diaspora_on_MacOSX|MacOSX]] ===<br />
<br />
=== [https://github.com/diaspora/diaspora/wiki/Installing-on-Gentoo Gentoo] ===<br />
<br />
=== [[Installing_on_Ubuntu|Ubuntu]] ===<br />
<br />
=== [[Installing_on_Debian|Debian]] ===<br />
<br />
=== [[Installing_on_Fedora|Fedora]] ===<br />
<br />
=== [[Installing_on_FreeBSD|FreeBSD]] ===<br />
<br />
=== [[Installing_on_Arch|Arch]] ===<br />
<br />
[[Category:Developers]]<br />
[[Category:Podmin]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=FAQ_for_users&diff=606FAQ for users2013-06-13T01:27:34Z<p>DeadSuperHero: /* Pods */</p>
<hr />
<div>== Getting Help ==<br />
<br />
'''What if my question is not answered below? Where else can I get support?'''<br />
<br />
* [http://diasporial.com/tutorials Diasporial] (blog, tutorials, tips)<br />
* [http://wiki.diaspora-project.org/wiki/Special:Search search this wiki]<br />
<br />
Or ask your specific question:<br />
<br />
* In a public post on Diaspora using the [http://dia.so/question #question] hashtag.<br />
* On the [http://fora.org.uk/diaspora Diaspora Forum]<br />
* On [[How We Communicate#IRC|IRC]] (Live chat)<br />
<br />
For more technical questions about maintaining pods or development/coding see the [[FAQ for Pod Maintainers]] and the [[FAQ for Developers]].<br />
<br />
== Pods ==<br />
<br />
'''What is a pod?'''<br />
<br />
A pod is a server where Diaspora is running. There are lots of different pods. You can add friends from other pods and communicate with them. (You can think of a Diaspora pod as similar to an email provider: there are public pods, private pods, and with some effort you can even run your own.) "Pod" is a metaphor referring to pods on plants which contain seeds.<br />
<br />
'''Is there a directory that lists public pods (servers) that I can join?'''<br />
<br />
Yes. For a list of unofficial, community-driven pods/servers, see [http://podupti.me/ podupti.me].<br />
<br />
'''How can i join diaspora?'''<br />
<br />
You can freely sign up on any of the pod in the [http://podupti.me/ podupti.me list]. You can choose your pod basing on the data on podupti.me, you can also check the pod nearest to you [http://www.findapod.com/ here]. <br />
If you don't know where to sign up, [https://diasp.org/ diasp.org] is usually known as a good pod, anyway any pod on that list works fine (check ratings too). <br />
All the servers communicate with each others, so no matter where you sign up, you will always be able to communicate with anyone from any pod. <br />
If once you've signed up you've got any question, just make a public post and tag it as #question.<br />
<br />
'''I just joined a pod, how can I find people to share with?'''<br />
<br />
Invite your friends. Follow #tags to discover others who share your interests. Meet new contacts on this [http://www.diasporaforum.org/forum/showthread.php?233-Just-joined-a-Diaspora-pod-Looking-for-people-to-share-with Diaspora Forum thread]. <br />
<br />
'''How do I use the search box to find particular people to share with?'''<br />
<br />
Search for their full Diaspora handle (e.g. `username@podname.org`). If you are on the same pod you can search for just their username. If a search does not work the first time, try it again. Once you have added someone to one of your aspects, you can search for them using just their username. (The person you are searching for will need to have "allow people to search for you within Diaspora" checked on the "edit profile" page.)<br />
<br />
== Aspects ==<br />
<br />
'''What is an aspect?'''<br />
<br />
Aspects are the way you group your contacts on Diaspora. An aspect is one of the faces you show to the world. It might be who you are at work, or who you are to your family, or who you are to your college friends. <br />
<br />
'''When I post to an aspect, who sees it?'''<br />
<br />
Only the people you have put in that aspect. Contacts you have that aren't in the aspect have no way of seeing the post, unless you've made it *public*. <br />
<br />
'''Can I restrict the posts I see to just those from certain aspects?'''<br />
<br />
Yes. Click on the aspects in the list on the left side of the main page to select or deselect them. Only the posts by people in the selected aspects will appear in your stream. <br />
<br />
'''Do my contacts know what aspects I have put them in?'''<br />
<br />
No. They cannot see the name of the aspect under any circumstances. <br />
<br />
'''What does "make contacts in this aspect visible to each other" mean?'''<br />
<br />
If you check this option then contacts from that aspect will be able to see who else joins it in "similar contacts", on your profile page under your pic. They still won't be able to see what the aspect is called.<br />
<br />
'''If I remove someone from an aspect, or all of my aspects, are they notified of this?'''<br />
<br />
No. <br />
<br />
'''Can I rename an aspect?'''<br />
<br />
Yes. In your list of aspects on the left side of the main page, point your mouse at the aspect you want to rename. Click the little 'edit' pencil that appears to the right. Click *rename* in the box that appears. <br />
<br />
'''Once I have posted something, can I change the aspect(s) that can see it?'''<br />
<br />
No, but you can always make a new post with the same content and post it to a different aspect.<br />
<br />
'''Can I post content to multiple aspects at once?'''<br />
<br />
Yes. When you are making a post, use the aspects menu to select or deselect aspects. Your post will be visible to all the selected aspects. Also, the aspect(s) that you have selected in the list on the left will automatically be selected in the aspects menu when you start to make a new post. <br />
<br />
'''Can I add a person to multiple aspects?'''<br />
<br />
Yes. Go to your *contacts* page and click *my contacts*. For each contact you can use the menu on the right to add them to (or remove them from) as many aspects as you want. <br />
<br />
'''How do I delete an aspect?'''<br />
<br />
In your list of aspects on the left side of the main page, point your mouse at the aspect you want to delete. Click the little 'edit' pencil that appears on the right. Click the *delete* button in the box that appears. <br />
<br />
== Public Posts ==<br />
<br />
'''When I post something publicly, who can see it?'''<br />
<br />
Both logged-in Diaspora users and the Internet at large can see a post you mark public.<br />
<br />
'''How can other people find my public post?'''<br />
<br />
Public posts are visible to anyone on your pod's tag pages and your profile page. Every public post also has a special public URL that anyone can view, even if they're not logged in - thus public posts may be linked to directly from twitter, hn, etc. Public posts may also be indexed by search engines.<br />
<br />
'''Who can comment on, reshare, or like my public post?'''<br />
<br />
Any logged-in Diaspora user can comment on, reshare, or like your public post.<br />
<br />
'''When I comment on, reshare, or like a public post, who can see it?'''<br />
<br />
Any logged-in Diaspora user and anyone else on the internet. Comments, likes, and reshares of public posts are also public. <br />
<br />
'''What happens when I deselect one or more aspects when making a public post?'''<br />
<br />
Deselecting aspects does not affect a public post. It will still appear in the streams of all of your contacts. <br />
<br />
'''How do I like, reshare, or comment on the public posts shown on the tag pages?'''<br />
<br />
Currently you can click on the time stamp ("_about an hour ago_") to go to the post's page to like, reshare, or comment on it.<br />
<br />
== Private Posts ==<br />
<br />
'''When I post a message to an aspect (i.e., a private post), who can see it?'''<br />
<br />
Only logged-in Diaspora users you have placed in that aspect can see your private post.<br />
<br />
'''Who can comment on or like my private post?'''<br />
<br />
Only logged-in Diaspora users you have placed in that aspect can comment on or like your private post.<br />
<br />
'''Who can reshare my private post?'''<br />
<br />
Nobody. Private posts are not resharable. Logged-in Diaspora users in that aspect can always copy & paste it, though...<br />
<br />
'''When I comment on or like a private post, who can see it?''' <br />
<br />
Only the people that the post was shared with can see its comments and likes (the people who are in the aspects that were selected by the original poster). <br />
<br />
== Public Profiles == <br />
<br />
'''Who sees my public profile?''' <br />
<br />
Any logged-in Diaspora user, as well as the wider Internet, can see it. Each profile has a direct URL, so it may be linked to directly from outside sites. It may be indexed by search engines.<br />
<br />
'''What's in my public profile?''' <br />
<br />
Your name, your 5 tags, and your photo. It's the stuff in the top section of the edit profile page. Your profile page also shows any public posts you have made.<br />
<br />
'''Who sees updates to my public profile?''' <br />
<br />
Anyone can see changes if they visit your profile page on your pod. Public profile updates also propagate to the pods of people you are following, and the pods of people who are following you. <br />
<br />
'''What do the tags on my public profile do?''' <br />
They help people get to know you. Your profile picture will also appear on the left hand side of those particular tag pages, along with anyone else who has them in their public profile. <br />
<br />
== Private Profiles ==<br />
<br />
'''Who sees my private profile?'''<br />
Any logged-in user that you are following (meaning, you have added them to one of your aspects). However, people following you, but whom you do **NOT** follow, will see only your public information.<br />
<br />
'''What's in my private profile?''' <br />
Bio, location, gender, and birthday. It's the stuff in the bottom section of the edit profile page. Logged-in users who can see your private profile will also see the private posts that they are allowed to see, mixed in with your public posts, when they visit your profile page.<br />
<br />
'''Who sees updates to my private profile?''' <br />
Any logged-in user that you are following sees changes to your private profile. Changes are propagated to the pods of everyone you follow.<br />
<br />
== Sharing ==<br />
<br />
'''What happens when I add someone to one of my aspects? Or when someone adds me to one of their aspects?'''<br />
<br />
Let's say that Amy adds Ben to an aspect, but Ben has not (yet) added Amy to an aspect:<br />
<br />
- Ben will receive a notification that Amy has "started sharing" with Ben.<br />
<br />
- Amy will start to see Ben's *public* posts in her stream. <br />
<br />
- Amy will *not* see any of Ben's *private* posts.<br />
<br />
- Ben will *not* see Amy's *public* or *private* posts in his stream.<br />
<br />
- But if Ben goes to Amy's profile page, then he will see Amy's *private* posts that she makes to her aspect that has him in it (as well as her *public* posts which anyone can see there).<br />
<br />
- Ben will be able to see Amy's private profile (bio, location, gender, birthday).<br />
<br />
- Amy will appear under "*Only sharing with me*" on Ben's contacts page. <br />
<br />
This is known as asymmetrical sharing. If and when Ben also adds Amy to an aspect then it would become symmetrical, bi-directional sharing, with both Amy's and Ben's public posts and relevant private posts appearing in each other's streams, etc. <br />
<br />
'''Who are the people listed in "Only sharing with me" on my contacts page?'''<br />
<br />
These are people that have added you to one of their aspects, but whom you have not (yet) added to one of your aspects. In other words, they are sharing with you, but you are not sharing with them (asymmetrical sharing). If you add them to an aspect, they will then appear under that aspect and not under "only sharing with you". See above.<br />
<br />
'''Is there a list of people whom I have added to one of my aspects, but who have not added me to one of theirs?'''<br />
<br />
No, in the interest of helping to keep each person's own aspects private to them. However, you should get a one-time notification that someone has started sharing with you when they add you to an aspect.<br />
<br />
'''When I add someone to an aspect, can they see older posts that I have already posted to that aspect?'''<br />
<br />
No. They will only be able to see new posts to that aspect. They (and everyone else) can see your older *public* posts on your profile page, but they *may* also see them in their stream if you are both on the same pod, or if you are on different pods but someone on their pod is already following you. (Posts from the past are not shared between pods retroactively, but they may have already been shared between them when they were first posted.) <br />
<br />
== Posts and Posting ==<br />
<br />
'''How do I hide a post?''' <br />
'''How do I stop getting notifications about a post that I commented on?'''<br />
<br />
If you point your mouse at the top of a post, an X appears on the right. Click it to hide the post and mute notifications about it. There is a temporary "undo" option, and you can still see the post if you visit the profile page of the person who posted it. <br />
<br />
'''How can I format the text in my posts (bold, italics, etc.)?'''<br />
<br />
By using [http://diasporial.com/tutorials/formatting-text Markdown]. [http://daringfireball.net/projects/markdown/dingus Give it a try], or check out the full-blown [http://daringfireball.net/projects/markdown/syntax Markdown Syntax]. <br />
<br />
'''How do I insert images into posts?'''<br />
<br />
Click the little photo icon to insert an image into a post. Press the photo icon again to add another photo, or you can press the control key to select multiple photos to upload. <br />
<br />
'''Can I insert images into comments?'''<br />
<br />
The following Markdown code <pre>![image text](image url)</pre> can be used to insert images into comments as well as posts. It also allows more control over embedding images into the text of posts. <br />
<br />
'''Can I customize the size of images in posts or comments?'''<br />
<br />
No. Images are resized automatically to fit the stream. (And MarkDown does not allow specifying the size of an image.)<br />
<br />
'''How do I embed a video, audio, or other multimedia content into a post?'''<br />
<br />
You can usually just paste the URL (e.g. http://www.youtube.com/watch?v=dQw4w9WgXcQ ) into your post and the video or audio will be embedded automatically. These are some websites that are supported: [http://youtube.com YouTube], [http://vimeo.com/ Vimeo], [http://soundcloud.com/ SoundCloud], [http://www.flickr.com/ Flickr], [http://cubbi.es/ Cubbi.es]. (Diaspora uses [http://www.oembed.com oEmbed] for this feature.) <br />
Remember to always post simple, full links: no shortened links, no https; and give it a little time before you refresh the page after posting for seeing the preview.<br />
<br />
'''What is the character limit for posts?''' <br />
<br />
10,000 characters. That's 9,860 more characters than you get on Twitter! ;) <br />
<br />
'''What is the character limit for posts shared through a connected service (Twitter, Facebook, Tumblr) with a smaller character count?''' <br />
In that case your post is limited to the smaller character count, and the number of characters you have left to use is displayed. You can still post to these services if your post is longer than their limit, but the text is truncated on those services.<br />
<br />
'''My stream is full of posts from people I don't know and I don't share with -- why are they in my stream? How can I remove them?'''<br />
<br />
Your stream is made up of 3 types of posts:<br />
<br />
# Posts by people you are sharing with, which come in two types: public posts and limited posts to an aspect that have been shared with you<br>To remove them from your stream, simply stop sharing with the person. <br />
# Public posts containing one of the tags that you follow.<br>To remove these, stop following the tag.<br />
# Public posts by people listed in the Community Spotlight.<br>These can be removed by unchecking the “Show Community Spotlight in Stream?” option listed under “Stream Preferences” in the Account tab of your Settings.<br />
<br />
== Tags ==<br />
<br />
'''What are tags for?'''<br />
<br />
Tags are a way to categorize a post, usually by topic. Searching for a tag shows all posts with that tag that you can see (both public and private posts). This lets people who are interested in a given topic find public posts about it. <br />
<br />
'''Can I put tags in comments or just in posts?'''<br />
<br />
A tag added to a comment will still appear as a link to that tag's page, but it will not make that post (or comment) appear on that tag page. This only works for tags in posts.<br />
<br />
'''What are "Followed Tags" and how do I follow a tag?'''<br />
<br />
After searching for a tag you can click the button at the top of the tag's page to "follow" that tag. It will then appear in your list of "Followed Tags" on the left. Clicking on one of your followed tags takes you to that tag's page so you can see recent posts containing that tag. Click on "Followed Tags" to see a stream that contains posts that contain one of any of your followed tags. <br />
<br />
'''Who are the people on the left hand side of a tag page?'''<br />
<br />
They are people who have listed that tag in their public profile. <br />
<br />
'''How can I filter/exclude some tags (eg #newhere or #nsfw) from my stream?''' <br />
This is not (yet) available directly through Dispora, but some [[Tools-to-use-with-Diaspora|third-party tools]] have been written that might provide this.<br />
<br />
== Mentions == <br />
<br />
'''What is a "mention"?''' <br />
A mention is a link to a person's profile page that appears in a post. When someone is mentioned they receive a notification that calls their attention to the post. <br />
<br />
'''How do I mention someone when making a post?'''<br />
<br />
Type the "@" sign and start typing their name. A drop down menu should appear to let you select them more easily. <br />
However, adding mentions only works for people you have added to an aspect. <br />
<br />
'''Can I mention someone in a comment?'''<br />
<br />
No, not currently, but there is no harm in using the "@username" convention in comments anyway.<br />
<br />
'''Is there a way to see the posts in which I have been mentioned?'''<br />
<br />
Yes, click "_Mentions_" in the left hand column on your home page. <br />
<br />
== Resharing Posts ==<br />
<br />
'''Can I reshare a public post with only certain aspects?'''<br />
<br />
No, when you reshare a public post it automatically becomes one of your public posts. To share it with certain aspects, copy and paste the contents of the post into a new post.<br />
<br />
'''Can I reshare a private post with only certain aspects?'''<br />
<br />
No, it is not possible to reshare a private post. This is to respect the intentions of the original poster who only shared it with a particular group of people. <br />
<br />
== Account and Data Management ==<br />
<br />
'''How do I move my seed (account) from one pod to another?'''<br />
<br />
In the future you will be able to export your seed from a pod and import it on another, but this is not currently possible. You could always open a new account and ask your contacts to search for it and add you again. <br />
<br />
'''Can I download a copy of all of my data contained in my seed (account)?'''<br />
<br />
Yes. At the bottom of your settings page there are two buttons for downloading your data. <br />
<br />
'''How do I delete my seed (account)?'''<br />
<br />
Go to the bottom of your settings page and click the close account button. <br />
<br />
'''How much of my information can my pod administrator see?'''<br />
<br />
Communication *between* pods is always encrypted (using [https://en.wikipedia.org/wiki/Transport_Layer_Security SSL]), but the storage of data on pods is not encrypted. If they wanted to, the database administrator for your pod (usually the person running the pod) could access all your profile data and everything that you post (as is the case for most every website that stores user data). Running your own pod provides more privacy since you would control access to the database. <br />
<br />
'''Can the administrators of other pods see my information?'''<br />
<br />
Once you are sharing with someone on another pod, any posts you share with them and a copy of your profile data are stored (cached) on their pod, and are accessible to that pod's database administrator. (There are plans to implement a system of privacy badges for pods so that you can easily understand to what degree the policies of someone else's pod would safeguard the privacy of your information, before you add them to one of your aspects.) When you delete a post or profile data it is deleted from your pod and any other pods where it had previously been stored.<br />
<br />
== Miscellaneous ==<br />
<br />
'''Is there a quick way to go back to the top of a page after I scroll down?'''<br />
<br />
Yes. After scrolling down a page, click on the grey arrow that appears in the bottom right corner of your browser window.<br />
<br />
'''Are there photo or video albums?'''<br />
<br />
No, not currently. However by clicking a users picture on their "profile" or "user page" you can view a stream of their uploaded pictures. <br />
<br />
'''Can I subscribe to someone's public posts with a feed reader?'''<br />
<br />
Yes, but this is still not a polished feature and the formatting of the results is still pretty rough. If you want to try it anyway, go to someone's profile page and click the feed button in your browser, or you can copy the profile URL (i.e. https://joindiaspora.com/people/somenumber), and paste it into a feed reader. The resulting feed address looks like this: https://joindiaspora.com/public/username.atom Diaspora uses Atom rather than RSS. <br />
<br />
'''Is there a Diaspora Android-app?'''<br />
<br />
You can find an alpha version of it [https://market.android.com/details?id=com.voidcode.diasporawebclient here]. It still under development, you can find [https://groups.google.com/group/diaspora-android/ here] some infos about it and [https://github.com/geraspora/diaspora-android here] the code. You can help developing it simply joining the google group.<br />
<br />
'''Is it possible to connect my identi.ca account to diaspora and post my diaspora posts automatically on identi.ca?'''<br />
<br />
Yes, you can make your public diaspora posts to be automatically posted on identi.ca. There are two methods: <br />
*Add your profile atom feed ( https://''yourpod''/public/''yournickname''.atom) to identica.<br>You can subscribe to a feed on identi.ca going to http://identi.ca/settings/mirror and set the infos <br />
*Follow this french (anyway clear) [http://ubunblox.servhome.org/diaspora-et-identi-ca.html tutorial]<br />
<br />
<br />
[[Category:Community]] [[Category:Github transfer done]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=FAQ_for_users&diff=605FAQ for users2013-06-13T01:27:15Z<p>DeadSuperHero: /* Pods and Seeds */</p>
<hr />
<div>== Getting Help ==<br />
<br />
'''What if my question is not answered below? Where else can I get support?'''<br />
<br />
* [http://diasporial.com/tutorials Diasporial] (blog, tutorials, tips)<br />
* [http://wiki.diaspora-project.org/wiki/Special:Search search this wiki]<br />
<br />
Or ask your specific question:<br />
<br />
* In a public post on Diaspora using the [http://dia.so/question #question] hashtag.<br />
* On the [http://fora.org.uk/diaspora Diaspora Forum]<br />
* On [[How We Communicate#IRC|IRC]] (Live chat)<br />
<br />
For more technical questions about maintaining pods or development/coding see the [[FAQ for Pod Maintainers]] and the [[FAQ for Developers]].<br />
<br />
== Pods ==<br />
<br />
'''What is a pod?'''<br />
<br />
A pod is a server where Diaspora is running. There are lots of different pods. You can add friends from other pods and communicate with them. (You can think of a Diaspora pod as similar to an email provider: there are public pods, private pods, and with some effort you can even run your own.) "Pod" is a metaphor referring to pods on plants which contain seeds.<br />
<br />
'''Is there a directory that lists public pods (servers) that I can join?'''<br />
<br />
Yes. For a list of unofficial, community-driven pods/servers, see [http://podupti.me/ podupti.me].<br />
<br />
'''What is a seed?'''<br />
<br />
A seed is a profile or an account, and contains all the data of a specific user. Your seed interacts with the seeds of your friends to keep each other up to date. You can see it as a package of personal data...which is all yours! Seeds are hosted on servers running the Diaspora software, which are called 'pods'. In the future you will be able to move your seed between pods. For now, you can export a file containing all your information. "Seed" is a metaphor referring to seeds from a plant, which are contained in pods.<br />
<br />
'''How can i join diaspora?'''<br />
<br />
You can freely sign up on any of the pod in the [http://podupti.me/ podupti.me list]. You can choose your pod basing on the data on podupti.me, you can also check the pod nearest to you [http://www.findapod.com/ here]. <br />
If you don't know where to sign up, [https://diasp.org/ diasp.org] is usually known as a good pod, anyway any pod on that list works fine (check ratings too). <br />
All the servers communicate with each others, so no matter where you sign up, you will always be able to communicate with anyone from any pod. <br />
If once you've signed up you've got any question, just make a public post and tag it as #question.<br />
<br />
'''I just joined a pod, how can I find people to share with?'''<br />
<br />
Invite your friends. Follow #tags to discover others who share your interests. Meet new contacts on this [http://www.diasporaforum.org/forum/showthread.php?233-Just-joined-a-Diaspora-pod-Looking-for-people-to-share-with Diaspora Forum thread]. <br />
<br />
'''How do I use the search box to find particular people to share with?'''<br />
<br />
Search for their full Diaspora handle (e.g. `username@podname.org`). If you are on the same pod you can search for just their username. If a search does not work the first time, try it again. Once you have added someone to one of your aspects, you can search for them using just their username. (The person you are searching for will need to have "allow people to search for you within Diaspora" checked on the "edit profile" page.)<br />
<br />
== Aspects ==<br />
<br />
'''What is an aspect?'''<br />
<br />
Aspects are the way you group your contacts on Diaspora. An aspect is one of the faces you show to the world. It might be who you are at work, or who you are to your family, or who you are to your college friends. <br />
<br />
'''When I post to an aspect, who sees it?'''<br />
<br />
Only the people you have put in that aspect. Contacts you have that aren't in the aspect have no way of seeing the post, unless you've made it *public*. <br />
<br />
'''Can I restrict the posts I see to just those from certain aspects?'''<br />
<br />
Yes. Click on the aspects in the list on the left side of the main page to select or deselect them. Only the posts by people in the selected aspects will appear in your stream. <br />
<br />
'''Do my contacts know what aspects I have put them in?'''<br />
<br />
No. They cannot see the name of the aspect under any circumstances. <br />
<br />
'''What does "make contacts in this aspect visible to each other" mean?'''<br />
<br />
If you check this option then contacts from that aspect will be able to see who else joins it in "similar contacts", on your profile page under your pic. They still won't be able to see what the aspect is called.<br />
<br />
'''If I remove someone from an aspect, or all of my aspects, are they notified of this?'''<br />
<br />
No. <br />
<br />
'''Can I rename an aspect?'''<br />
<br />
Yes. In your list of aspects on the left side of the main page, point your mouse at the aspect you want to rename. Click the little 'edit' pencil that appears to the right. Click *rename* in the box that appears. <br />
<br />
'''Once I have posted something, can I change the aspect(s) that can see it?'''<br />
<br />
No, but you can always make a new post with the same content and post it to a different aspect.<br />
<br />
'''Can I post content to multiple aspects at once?'''<br />
<br />
Yes. When you are making a post, use the aspects menu to select or deselect aspects. Your post will be visible to all the selected aspects. Also, the aspect(s) that you have selected in the list on the left will automatically be selected in the aspects menu when you start to make a new post. <br />
<br />
'''Can I add a person to multiple aspects?'''<br />
<br />
Yes. Go to your *contacts* page and click *my contacts*. For each contact you can use the menu on the right to add them to (or remove them from) as many aspects as you want. <br />
<br />
'''How do I delete an aspect?'''<br />
<br />
In your list of aspects on the left side of the main page, point your mouse at the aspect you want to delete. Click the little 'edit' pencil that appears on the right. Click the *delete* button in the box that appears. <br />
<br />
== Public Posts ==<br />
<br />
'''When I post something publicly, who can see it?'''<br />
<br />
Both logged-in Diaspora users and the Internet at large can see a post you mark public.<br />
<br />
'''How can other people find my public post?'''<br />
<br />
Public posts are visible to anyone on your pod's tag pages and your profile page. Every public post also has a special public URL that anyone can view, even if they're not logged in - thus public posts may be linked to directly from twitter, hn, etc. Public posts may also be indexed by search engines.<br />
<br />
'''Who can comment on, reshare, or like my public post?'''<br />
<br />
Any logged-in Diaspora user can comment on, reshare, or like your public post.<br />
<br />
'''When I comment on, reshare, or like a public post, who can see it?'''<br />
<br />
Any logged-in Diaspora user and anyone else on the internet. Comments, likes, and reshares of public posts are also public. <br />
<br />
'''What happens when I deselect one or more aspects when making a public post?'''<br />
<br />
Deselecting aspects does not affect a public post. It will still appear in the streams of all of your contacts. <br />
<br />
'''How do I like, reshare, or comment on the public posts shown on the tag pages?'''<br />
<br />
Currently you can click on the time stamp ("_about an hour ago_") to go to the post's page to like, reshare, or comment on it.<br />
<br />
== Private Posts ==<br />
<br />
'''When I post a message to an aspect (i.e., a private post), who can see it?'''<br />
<br />
Only logged-in Diaspora users you have placed in that aspect can see your private post.<br />
<br />
'''Who can comment on or like my private post?'''<br />
<br />
Only logged-in Diaspora users you have placed in that aspect can comment on or like your private post.<br />
<br />
'''Who can reshare my private post?'''<br />
<br />
Nobody. Private posts are not resharable. Logged-in Diaspora users in that aspect can always copy & paste it, though...<br />
<br />
'''When I comment on or like a private post, who can see it?''' <br />
<br />
Only the people that the post was shared with can see its comments and likes (the people who are in the aspects that were selected by the original poster). <br />
<br />
== Public Profiles == <br />
<br />
'''Who sees my public profile?''' <br />
<br />
Any logged-in Diaspora user, as well as the wider Internet, can see it. Each profile has a direct URL, so it may be linked to directly from outside sites. It may be indexed by search engines.<br />
<br />
'''What's in my public profile?''' <br />
<br />
Your name, your 5 tags, and your photo. It's the stuff in the top section of the edit profile page. Your profile page also shows any public posts you have made.<br />
<br />
'''Who sees updates to my public profile?''' <br />
<br />
Anyone can see changes if they visit your profile page on your pod. Public profile updates also propagate to the pods of people you are following, and the pods of people who are following you. <br />
<br />
'''What do the tags on my public profile do?''' <br />
They help people get to know you. Your profile picture will also appear on the left hand side of those particular tag pages, along with anyone else who has them in their public profile. <br />
<br />
== Private Profiles ==<br />
<br />
'''Who sees my private profile?'''<br />
Any logged-in user that you are following (meaning, you have added them to one of your aspects). However, people following you, but whom you do **NOT** follow, will see only your public information.<br />
<br />
'''What's in my private profile?''' <br />
Bio, location, gender, and birthday. It's the stuff in the bottom section of the edit profile page. Logged-in users who can see your private profile will also see the private posts that they are allowed to see, mixed in with your public posts, when they visit your profile page.<br />
<br />
'''Who sees updates to my private profile?''' <br />
Any logged-in user that you are following sees changes to your private profile. Changes are propagated to the pods of everyone you follow.<br />
<br />
== Sharing ==<br />
<br />
'''What happens when I add someone to one of my aspects? Or when someone adds me to one of their aspects?'''<br />
<br />
Let's say that Amy adds Ben to an aspect, but Ben has not (yet) added Amy to an aspect:<br />
<br />
- Ben will receive a notification that Amy has "started sharing" with Ben.<br />
<br />
- Amy will start to see Ben's *public* posts in her stream. <br />
<br />
- Amy will *not* see any of Ben's *private* posts.<br />
<br />
- Ben will *not* see Amy's *public* or *private* posts in his stream.<br />
<br />
- But if Ben goes to Amy's profile page, then he will see Amy's *private* posts that she makes to her aspect that has him in it (as well as her *public* posts which anyone can see there).<br />
<br />
- Ben will be able to see Amy's private profile (bio, location, gender, birthday).<br />
<br />
- Amy will appear under "*Only sharing with me*" on Ben's contacts page. <br />
<br />
This is known as asymmetrical sharing. If and when Ben also adds Amy to an aspect then it would become symmetrical, bi-directional sharing, with both Amy's and Ben's public posts and relevant private posts appearing in each other's streams, etc. <br />
<br />
'''Who are the people listed in "Only sharing with me" on my contacts page?'''<br />
<br />
These are people that have added you to one of their aspects, but whom you have not (yet) added to one of your aspects. In other words, they are sharing with you, but you are not sharing with them (asymmetrical sharing). If you add them to an aspect, they will then appear under that aspect and not under "only sharing with you". See above.<br />
<br />
'''Is there a list of people whom I have added to one of my aspects, but who have not added me to one of theirs?'''<br />
<br />
No, in the interest of helping to keep each person's own aspects private to them. However, you should get a one-time notification that someone has started sharing with you when they add you to an aspect.<br />
<br />
'''When I add someone to an aspect, can they see older posts that I have already posted to that aspect?'''<br />
<br />
No. They will only be able to see new posts to that aspect. They (and everyone else) can see your older *public* posts on your profile page, but they *may* also see them in their stream if you are both on the same pod, or if you are on different pods but someone on their pod is already following you. (Posts from the past are not shared between pods retroactively, but they may have already been shared between them when they were first posted.) <br />
<br />
== Posts and Posting ==<br />
<br />
'''How do I hide a post?''' <br />
'''How do I stop getting notifications about a post that I commented on?'''<br />
<br />
If you point your mouse at the top of a post, an X appears on the right. Click it to hide the post and mute notifications about it. There is a temporary "undo" option, and you can still see the post if you visit the profile page of the person who posted it. <br />
<br />
'''How can I format the text in my posts (bold, italics, etc.)?'''<br />
<br />
By using [http://diasporial.com/tutorials/formatting-text Markdown]. [http://daringfireball.net/projects/markdown/dingus Give it a try], or check out the full-blown [http://daringfireball.net/projects/markdown/syntax Markdown Syntax]. <br />
<br />
'''How do I insert images into posts?'''<br />
<br />
Click the little photo icon to insert an image into a post. Press the photo icon again to add another photo, or you can press the control key to select multiple photos to upload. <br />
<br />
'''Can I insert images into comments?'''<br />
<br />
The following Markdown code <pre>![image text](image url)</pre> can be used to insert images into comments as well as posts. It also allows more control over embedding images into the text of posts. <br />
<br />
'''Can I customize the size of images in posts or comments?'''<br />
<br />
No. Images are resized automatically to fit the stream. (And MarkDown does not allow specifying the size of an image.)<br />
<br />
'''How do I embed a video, audio, or other multimedia content into a post?'''<br />
<br />
You can usually just paste the URL (e.g. http://www.youtube.com/watch?v=dQw4w9WgXcQ ) into your post and the video or audio will be embedded automatically. These are some websites that are supported: [http://youtube.com YouTube], [http://vimeo.com/ Vimeo], [http://soundcloud.com/ SoundCloud], [http://www.flickr.com/ Flickr], [http://cubbi.es/ Cubbi.es]. (Diaspora uses [http://www.oembed.com oEmbed] for this feature.) <br />
Remember to always post simple, full links: no shortened links, no https; and give it a little time before you refresh the page after posting for seeing the preview.<br />
<br />
'''What is the character limit for posts?''' <br />
<br />
10,000 characters. That's 9,860 more characters than you get on Twitter! ;) <br />
<br />
'''What is the character limit for posts shared through a connected service (Twitter, Facebook, Tumblr) with a smaller character count?''' <br />
In that case your post is limited to the smaller character count, and the number of characters you have left to use is displayed. You can still post to these services if your post is longer than their limit, but the text is truncated on those services.<br />
<br />
'''My stream is full of posts from people I don't know and I don't share with -- why are they in my stream? How can I remove them?'''<br />
<br />
Your stream is made up of 3 types of posts:<br />
<br />
# Posts by people you are sharing with, which come in two types: public posts and limited posts to an aspect that have been shared with you<br>To remove them from your stream, simply stop sharing with the person. <br />
# Public posts containing one of the tags that you follow.<br>To remove these, stop following the tag.<br />
# Public posts by people listed in the Community Spotlight.<br>These can be removed by unchecking the “Show Community Spotlight in Stream?” option listed under “Stream Preferences” in the Account tab of your Settings.<br />
<br />
== Tags ==<br />
<br />
'''What are tags for?'''<br />
<br />
Tags are a way to categorize a post, usually by topic. Searching for a tag shows all posts with that tag that you can see (both public and private posts). This lets people who are interested in a given topic find public posts about it. <br />
<br />
'''Can I put tags in comments or just in posts?'''<br />
<br />
A tag added to a comment will still appear as a link to that tag's page, but it will not make that post (or comment) appear on that tag page. This only works for tags in posts.<br />
<br />
'''What are "Followed Tags" and how do I follow a tag?'''<br />
<br />
After searching for a tag you can click the button at the top of the tag's page to "follow" that tag. It will then appear in your list of "Followed Tags" on the left. Clicking on one of your followed tags takes you to that tag's page so you can see recent posts containing that tag. Click on "Followed Tags" to see a stream that contains posts that contain one of any of your followed tags. <br />
<br />
'''Who are the people on the left hand side of a tag page?'''<br />
<br />
They are people who have listed that tag in their public profile. <br />
<br />
'''How can I filter/exclude some tags (eg #newhere or #nsfw) from my stream?''' <br />
This is not (yet) available directly through Dispora, but some [[Tools-to-use-with-Diaspora|third-party tools]] have been written that might provide this.<br />
<br />
== Mentions == <br />
<br />
'''What is a "mention"?''' <br />
A mention is a link to a person's profile page that appears in a post. When someone is mentioned they receive a notification that calls their attention to the post. <br />
<br />
'''How do I mention someone when making a post?'''<br />
<br />
Type the "@" sign and start typing their name. A drop down menu should appear to let you select them more easily. <br />
However, adding mentions only works for people you have added to an aspect. <br />
<br />
'''Can I mention someone in a comment?'''<br />
<br />
No, not currently, but there is no harm in using the "@username" convention in comments anyway.<br />
<br />
'''Is there a way to see the posts in which I have been mentioned?'''<br />
<br />
Yes, click "_Mentions_" in the left hand column on your home page. <br />
<br />
== Resharing Posts ==<br />
<br />
'''Can I reshare a public post with only certain aspects?'''<br />
<br />
No, when you reshare a public post it automatically becomes one of your public posts. To share it with certain aspects, copy and paste the contents of the post into a new post.<br />
<br />
'''Can I reshare a private post with only certain aspects?'''<br />
<br />
No, it is not possible to reshare a private post. This is to respect the intentions of the original poster who only shared it with a particular group of people. <br />
<br />
== Account and Data Management ==<br />
<br />
'''How do I move my seed (account) from one pod to another?'''<br />
<br />
In the future you will be able to export your seed from a pod and import it on another, but this is not currently possible. You could always open a new account and ask your contacts to search for it and add you again. <br />
<br />
'''Can I download a copy of all of my data contained in my seed (account)?'''<br />
<br />
Yes. At the bottom of your settings page there are two buttons for downloading your data. <br />
<br />
'''How do I delete my seed (account)?'''<br />
<br />
Go to the bottom of your settings page and click the close account button. <br />
<br />
'''How much of my information can my pod administrator see?'''<br />
<br />
Communication *between* pods is always encrypted (using [https://en.wikipedia.org/wiki/Transport_Layer_Security SSL]), but the storage of data on pods is not encrypted. If they wanted to, the database administrator for your pod (usually the person running the pod) could access all your profile data and everything that you post (as is the case for most every website that stores user data). Running your own pod provides more privacy since you would control access to the database. <br />
<br />
'''Can the administrators of other pods see my information?'''<br />
<br />
Once you are sharing with someone on another pod, any posts you share with them and a copy of your profile data are stored (cached) on their pod, and are accessible to that pod's database administrator. (There are plans to implement a system of privacy badges for pods so that you can easily understand to what degree the policies of someone else's pod would safeguard the privacy of your information, before you add them to one of your aspects.) When you delete a post or profile data it is deleted from your pod and any other pods where it had previously been stored.<br />
<br />
== Miscellaneous ==<br />
<br />
'''Is there a quick way to go back to the top of a page after I scroll down?'''<br />
<br />
Yes. After scrolling down a page, click on the grey arrow that appears in the bottom right corner of your browser window.<br />
<br />
'''Are there photo or video albums?'''<br />
<br />
No, not currently. However by clicking a users picture on their "profile" or "user page" you can view a stream of their uploaded pictures. <br />
<br />
'''Can I subscribe to someone's public posts with a feed reader?'''<br />
<br />
Yes, but this is still not a polished feature and the formatting of the results is still pretty rough. If you want to try it anyway, go to someone's profile page and click the feed button in your browser, or you can copy the profile URL (i.e. https://joindiaspora.com/people/somenumber), and paste it into a feed reader. The resulting feed address looks like this: https://joindiaspora.com/public/username.atom Diaspora uses Atom rather than RSS. <br />
<br />
'''Is there a Diaspora Android-app?'''<br />
<br />
You can find an alpha version of it [https://market.android.com/details?id=com.voidcode.diasporawebclient here]. It still under development, you can find [https://groups.google.com/group/diaspora-android/ here] some infos about it and [https://github.com/geraspora/diaspora-android here] the code. You can help developing it simply joining the google group.<br />
<br />
'''Is it possible to connect my identi.ca account to diaspora and post my diaspora posts automatically on identi.ca?'''<br />
<br />
Yes, you can make your public diaspora posts to be automatically posted on identi.ca. There are two methods: <br />
*Add your profile atom feed ( https://''yourpod''/public/''yournickname''.atom) to identica.<br>You can subscribe to a feed on identi.ca going to http://identi.ca/settings/mirror and set the infos <br />
*Follow this french (anyway clear) [http://ubunblox.servhome.org/diaspora-et-identi-ca.html tutorial]<br />
<br />
<br />
[[Category:Community]] [[Category:Github transfer done]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Website_copy_editing&diff=604Website copy editing2013-06-13T01:19:13Z<p>DeadSuperHero: /* Sidebar */</p>
<hr />
<div>__NOTOC__<br />
This page briefly demonstrates the possibility of editing the text in some of the existing templates for Diaspora's interface.<br />
<br />
== Sidebar ==<br />
For changing the sidebar, you first need to set up your diaspora development enviroment. Check the [[Notes On Installing and Running Diaspora|notes on getting started]].<br />
<br />
Note: You '''don't''' need nginx or apache, or even redis and sidekiq to debug front end styles. Once you can bundle, running 'bundle exec thin start' should give you a proper app server that will recompile the templates.<br />
<br />
The right sidebar is located in: app/views/shared/_right_sections.html.haml<br />
<br />
This is a slightly more complicated file. The structure of the html is represented here, but all of the 'strings' are actually located in the translation file, which is found at config/locals/diaspora/en.yml. This is just a big hash so if you see keys seperated with '.', that is just a different namespace. ctrl-f is your friend. :) Feel free to hop in IRC if this file gets confusing, there are people there with rails translation background.<br />
<br />
Once you are done, just add and push back to GitHub as described above, and you should be good to go.<br />
<br />
[[Category:Podmin]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Website_copy_editing&diff=603Website copy editing2013-06-13T01:18:43Z<p>DeadSuperHero: </p>
<hr />
<div>__NOTOC__<br />
This page briefly demonstrates the possibility of editing the text in some of the existing templates for Diaspora's interface.<br />
<br />
== Sidebar ==<br />
For changing the sidebar, you first need to set up your diaspora development enviroment. Check the [[Notes On Installing and Running Diaspora|decent docs here.]]<br />
<br />
Note: You '''don't''' need nginx or apache, or even redis and sidekiq to debug front end styles. Once you can bundle, running 'bundle exec thin start' should give you a proper app server that will recompile the templates.<br />
<br />
The right sidebar is located in: app/views/shared/_right_sections.html.haml<br />
<br />
This is a slightly more complicated file. The structure of the html is represented here, but all of the 'strings' are actually located in the translation file, which is found at config/locals/diaspora/en.yml. This is just a big hash so if you see keys seperated with '.', that is just a different namespace. ctrl-f is your friend. :) Feel free to hop in IRC if this file gets confusing, there are people there with rails translation background.<br />
<br />
Once you are done, just add and push back to GitHub as described above, and you should be good to go.<br />
<br />
[[Category:Podmin]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Talk:Website_copy_editing&diff=602Talk:Website copy editing2013-06-13T01:18:28Z<p>DeadSuperHero: Created page with "Might be a good idea to add a subsection concerning adding additional pages. --~~~~"</p>
<hr />
<div>Might be a good idea to add a subsection concerning adding additional pages. --[[User:DeadSuperHero|DeadSuperHero]] ([[User talk:DeadSuperHero|talk]]) 18:18, 12 June 2013 (PDT)</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Website_copy_editing&diff=601Website copy editing2013-06-13T01:18:05Z<p>DeadSuperHero: </p>
<hr />
<div>__NOTOC__<br />
<br />
This page briefly demonstrates the possibility of editing the text in some of the existing templates for Diaspora's interface.<br />
<br />
== Sidebar ==<br />
For changing the sidebar, you first need to set up your diaspora development enviroment. Check the [[Notes On Installing and Running Diaspora|decent docs here.]]<br />
<br />
Note: You '''don't''' need nginx or apache, or even redis and sidekiq to debug front end styles. Once you can bundle, running 'bundle exec thin start' should give you a proper app server that will recompile the templates.<br />
<br />
The right sidebar is located in: app/views/shared/_right_sections.html.haml<br />
<br />
This is a slightly more complicated file. The structure of the html is represented here, but all of the 'strings' are actually located in the translation file, which is found at config/locals/diaspora/en.yml. This is just a big hash so if you see keys seperated with '.', that is just a different namespace. ctrl-f is your friend. :) Feel free to hop in IRC if this file gets confusing, there are people there with rails translation background.<br />
<br />
Once you are done, just add and push back to GitHub as described above, and you should be good to go.<br />
<br />
[[Category:Podmin]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Website_copy_editing&diff=600Website copy editing2013-06-13T01:14:28Z<p>DeadSuperHero: /* Outdated information now */</p>
<hr />
<div>__NOTOC__<br />
<br />
How to get things set up to copy edit the websites (diaspora-project.org and joindiaspora.com)<br />
<br />
== JoinDiaspora.com ==<br />
For changing the sidebar on joindiaspora.com, you first need to set up your diaspora development enviroment. This is kinda complicated, but there are [[Notes On Installing and Running Diaspora|decent docs here.]]<br />
<br />
Note: You '''don't''' need nginx or apache, or the websocket server, or even redis and resque to debug front end styles. Once you can bundle, running 'bundle exec thin start' should give you a proper app server that will recompile the templates.<br />
<br />
The right sidebar is located in: app/views/shared/_right_sections.html.haml<br />
<br />
This is a slightly more complicated file. The structure of the html is represented here, but all of the 'strings' are actually located in the translation file, which is found at config/locals/diaspora/en.yml. This is just a big hash so if you see keys seperated with '.', that is just a different namespace. ctrl-f is your friend. :) Feel free to hop in IRC if this file gets confusing, there are people there with rails translation background.<br />
<br />
Once you are done, just add and push back to GitHub as described above, and you should be good to go.<br />
<br />
For the first couple of times with joindiaspora.com you should fork the code and submit a pull request with the changes.<br />
<br />
[[Category:Podmin]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=An_introduction_to_the_Diaspora_source&diff=597An introduction to the Diaspora source2013-06-12T23:55:15Z<p>DeadSuperHero: /* Testing: */</p>
<hr />
<div>== Framework and Tools: ==<br />
<br />
Diaspora is written in '''[http://rubyonrails.org/ Ruby on Rails]''', a web framework for the [http://www.ruby-lang.org Ruby programming language].<br /><br />
If you’ve never looked at a Rails project, you may want to check out a [http://guides.rubyonrails.org/getting_started.html Rails guide like this one].<br />
<br />
There are a few tools we’re using that aren’t in every rails project:<br />
<br />
* '''Haml'''<br /><br />
Our view templates are written in HAML (a templating language) instead of the default ERB (HTML with inline Ruby code).<br /><br />
The HAML docs can be found [http://haml-lang.com/docs.html here]. The corresponding files under <tt>app/views</tt>.<br />
* '''Sass'''<br /><br />
Our CSS is written in [http://sass-lang.com/docs.html SASS] (specifically, the ‘scss’ dialect), which generates the actual CSS via the [http://guides.rubyonrails.org/asset_pipeline.html Rails asset pipeline]. The syntax is inspired by CSS, and quite similar, but it offers some additional features like nesting and variables. If you want to edit the stylesheets, have a look in <tt>app/assets/stylesheets/</tt>.<br /><br />
'''''Note:''''' Both HAML and SASS are whitespace sensitive.<br />
* '''Backbone.js &amp; Handlebars.js'''<br /><br />
The client-side functionality and rendering is mostly coordinated with [http://documentcloud.github.com/backbone/ Backbone.js], which communicates [https://en.wikipedia.org/wiki/Representational_state_transfer REST]-fully with the server with JSON and triggers the rendering of the [http://handlebarsjs.com/ Handlebars.js] templates. The logic is found in <tt>app/assets/javascripts/app</tt> and the Handlebars templates are located in <tt>app/assets/templates</tt><br />
<br />
== Testing: ==<br />
<br />
Our goal is to test ''everything''. If you find a bug, you first expose it by writing a tests that fails because of the bug. Only then you start fixing the actual code. This is called [https://en.wikipedia.org/wiki/Test-driven_development Test Driven Delopment] (TDD).<br /><br />
We write our unit tests for ruby code in [http://blog.davidchelimsky.net/2007/05/14/an-introduction-to-rspec-part-i/ Rspec], the JavaScript test are in [http://pivotal.github.com/jasmine/ Jasmine] and integration tests in [http://rubylearning.com/blog/2010/10/05/outside-in-development/ Cucumber]. Specs are in <tt>spec</tt>, and Cucumber features are in <tt>features</tt>. For more details see our page on [[Testing Workflow]].<br />
<br />
== The Models: ==<br />
<br />
Our Models can be found in the <tt>app/models</tt> folder:<br />
<br />
[[User]] – Users, of course, come first. A User object represents the private information and capabilities of a user on that server. The user object is able to friend people, post updates, and update his profile. A User has a Person.<br />
<br />
[[Contact]] – Is a “proxy” object for every person a User is friends with.<br />
<br />
[[Person]] – A Person is a User viewed from the outside. When a user friends another user, they friend that user’s Person object. Person objects are replicated across servers, and they are where a User’s public key lives. A Person has many Posts. A Person has a Profile.<br />
<br />
[[Profile]] – This contains information about the person. Currently, a profile looks the same to anyone looking at it.<br />
<br />
[[Request]] – This is a friend request object that gets sent to another person.<br />
<br />
[[Aspect]] – This contains a list of people, and posts which are for that aspect. Aspects are private to Users, and we might embed the Aspect documents in the User document.<br />
<br />
[[Post]] – A Post belongs to a Person. This is a parent class for different types of posts, it contains comment ids and a few other attributes common to all Posts.<br />
<br />
* Status Message inherits from Post<br />
* Album inherits from Post<br />
* Photo inherits from Post<br />
<br />
Comment – a comment belongs to a Post<br />
<br />
Retraction – this is an object that gets sent out when a post creator deletes a post. It is not a model, but it serializes for dispatch to other Diaspora servers the same way our models do.<br />
<br />
<br />
==== Posting something (app/models/user): ====<br />
<br />
# When a user posts anything, he/she posts it to an aspect or all aspects<br />
# Assuming the post is valid, the post created and its id is stored in raw_visible_posts for that user<br />
# The html for that post is rendered on the server and is pushed to the user through the websocket<br />
# The post is then serialized to xml, wrapped in an encrypted and signed salmon envelope and POSTed to the receive urls(“http://pod.location/receive/users/:id[person_id]”) for the recipient people.<br />
<br />
==== Receiving a post (app/controllers/publics_controller.rb &amp; lib/diaspora/user/receiving.rb ): ====<br />
<br />
# The user receives the salmon, decrypts the headers.<br />
# If the signature on the salmon data is from the person who claims to have sent the post is marshaled into an object and saved into the database.<br />
# That post id is stored in the visible posts for the receiving user as well as posts for the aspect the sender is in.<br />
<br />
Here’s the autogenerated documentation http://rubydoc.info/github/diaspora/diaspora/master<br />
<br />
[[Category:Developers]]<br />
[[Category:Technical]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Barriers_for_adoption&diff=564Barriers for adoption2013-05-19T22:10:59Z<p>DeadSuperHero: /* Arguments Specific to Decentralized Social Networks */</p>
<hr />
<div>This document focuses on some reasons why users haven't yet adopted Diaspora. There are several barriers that can prevent a person from migrating to a different social network, as such they are divided up into different sections.<br />
<br />
<br />
== Arguments not specific to decentralized social networks ==<br />
=== Switching is inconvenient ===<br />
Although many users voice complaints over their existing social networks of choice, a majority of users are comfortable in being right where they are. Google+ alone is a testament to the reality that building a feature-for-feature clone of Facebook doesn't automatically give users a reason to switch.<br />
<br />
=== All of my friends are on Social Network X ===<br />
Another common convenience of large networks such as Twitter or Facebook are that they are ubiquitous. Many people use those networks, and therefore they can entrench themselves in active social circles of friends. Moving to a new service leaves those friends behind, and effectively cuts off communication.<br />
<br />
=== Social Network X has more features than Social Network Y ===<br />
Facebook is a prime example of this situation in that it is laden with features. <br />
Facebook alone has the following features: <br />
* status updates <br />
* photo albums <br />
* check-ins <br />
* groups <br />
* pages <br />
* authentication for websites <br />
* image previews and styling for links <br />
* the ability to like comments<br />
* Private messages that also double as instant messages.<br />
* video chat for Windows, MacOS, and mobile platforms<br />
* emoticons<br />
* polls<br />
* user profiles<br />
* timeline (semantic social web objects intertwined with user posts)<br />
* many more features<br />
<br />
The point is, a platform such has Facebook has a relatively high list of features that users of the service may expect, and leaving Facebook may seem comparable to sacrificing some features that a user may enjoy.<br />
<br />
=== All of my posts are on Network X ===<br />
Some users value their social content, and are frustrated with the idea that moving to a new network is effectively "starting over".<br />
<br />
== Arguments Specific to Decentralized Social Networks ==<br />
<br />
=== Difficult to Install ===<br />
Diaspora runs on [http://rubyonrails.org/ Ruby on Rails]. and as such is a little trickier than, say, setting up your own [http://wordpress.org/ Wordpress] blog on a server. Rails apps operate outside the traditional LAMP stack that some people are familiar with using for setting up websites. However, the rise in [http://en.wikipedia.org/wiki/Platform_as_a_service PAAS] (Platform as a Service) has allowed users to host applications through places such as [https://www.openshift.com/ OpenShift] and [https://www.heroku.com/ Heroku] in lieu of traditional hosting. That being said, it is still totally possible to host a Rails application either locally, or on a server. Check out our [[Installation guides]] for specific operating systems and configurations.<br />
<br />
=== User Discovery ===<br />
Finding friends can be something of a daunting task when you're part of a decentralized social network. Sure, finding anyone that's opted into the public pod search is easy, but finding friends from Facebook is compounded on due to the possibility that the friends you are looking for may have in fact signed up on different pods than you. A pod can't automatically know about people that aren't on it, instead a webfinger request must be made to your friend's Diaspora handle for user discovery to happen. <br />
<br />
=== Difficult to Maintain ===<br />
As it stands, Diaspora has no auto-update feature that is commonly seen in applications such as Wordpress or Drupal, in which admins are notified immediately of the latest release and given an "easy button" to upgrade. Diaspora instead must be [http://wiki.diaspora-project.org/wiki/Notes_On_Installing_and_Running_Diaspora#Updating_Diaspora updated manually]. Incidentally, there are also technically two admin interfaces, one being [https://github.com/sferik/rails_admin Rails Admin], the other being the built-in admin panel.<br />
<br />
=== Decentralized Social Networks are hard to use ===<br />
For some, the nature of Diaspora and other projects such as Friendica may make use of some unfamiliar nuances in how users connect to one another. Every user has a handle, and handles are treated like email addresses, but for social. This can be different than being on a social network like Facebook in which searching by a person's name almost always guarantees that you'll find the person you're looking for, in decentralized systems it isn't that simple. For pods, the directory pretty much only searches for those that are on the pod, plus the content of people you follow. If you follow lots of people from different pods, any of the hashtags you follow will also be affected because those users are now tagging those indexes.<br />
=== Lack of understanding around concepts of decentralization ===<br />
For many, the very idea of a decentralized social network is not fully understood. It can be defined as an idea about how social networking should work. Instead of having everyone on one gigantic server, users could instead host their own social site for themselves or a group of people, and other people on similar sites could interact with that user. Maybe they could subscribe to the user, read their posts, like their photos, and send messages to one another. There wouldn't be a need for a giant social server, users can add each other simply by adding one another's addresses.<br />
<br />
Further explanations of the importance of decentralized social networking can be read about [http://deadsuperhero.com/blog/we-distribute-part-1-understanding-decentralized-social here].<br />
<br />
=== Lack of standard protocol ===<br />
Diaspora is built largely on pieces of [http://www.w3.org/community/ostatus/wiki/Main_Page OStatus], although it does not use a full implementation. [http://friendica.com/ Friendica] makes use of the [https://github.com/friendica/red/wiki/zot Zot] protocol, and [https://tent.io Tent] applications such as [https://tent.is TentStatus] make use of a different protocol entirely. Some apps, such as [https://buddycloud.org Buddycloud] make use of [http://activitystrea.ms/ ActivityStreams] and [http://en.wikipedia.org/wiki/XMPP XMPP]<br />
<br />
The point is, there are a number of standards and implementations in the works to choose from in the future. Some applications like Friendica try to maintain multiple connectors for social networks that don't make use of Zot, so that users can communicate seamlessly from different applications. Many of these projects exist as active experiments on ideas of how best decentralized social networking can be done, but as a side effect, there is no "official" standard for decentralized social applications to use across the board. The rapid nature of the development of some standards can make feature development for federation a little tricky, as changes in standards can affect how future versions of social applications need to work.<br />
<br />
=== Pod Downtime caveat ===<br />
If a pod goes down, when it comes back up again, it will miss posts that weren't received while it was down. This can be a cause for lost posts, comments, and messages between pods.<br />
<br />
== Arguments specific to Diaspora itself ==<br />
=== The Single-Post View ===<br />
As it stands, the current Single Post View is a highly stylized visual post in which a little bit of text is typically shown over an attached photo for a post. Comments and interactions scroll out from the bottom, and notifications are generally not visible from the post. Initially, it was used as part of the "Beta" designs for Diaspora, but as such are in the process of being removed due to community feedback. As such, currently some posts can look a little ugly in the full view, and the post UI lacks some functionality. Currently, a redesign is underway, with a discussion that can be found [https://www.loomio.org/discussions/2110 here].<br />
<br />
[[Category: Outreach]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Barriers_for_adoption&diff=563Barriers for adoption2013-05-19T22:07:31Z<p>DeadSuperHero: </p>
<hr />
<div>This document focuses on some reasons why users haven't yet adopted Diaspora. There are several barriers that can prevent a person from migrating to a different social network, as such they are divided up into different sections.<br />
<br />
<br />
== Arguments not specific to decentralized social networks ==<br />
=== Switching is inconvenient ===<br />
Although many users voice complaints over their existing social networks of choice, a majority of users are comfortable in being right where they are. Google+ alone is a testament to the reality that building a feature-for-feature clone of Facebook doesn't automatically give users a reason to switch.<br />
<br />
=== All of my friends are on Social Network X ===<br />
Another common convenience of large networks such as Twitter or Facebook are that they are ubiquitous. Many people use those networks, and therefore they can entrench themselves in active social circles of friends. Moving to a new service leaves those friends behind, and effectively cuts off communication.<br />
<br />
=== Social Network X has more features than Social Network Y ===<br />
Facebook is a prime example of this situation in that it is laden with features. <br />
Facebook alone has the following features: <br />
* status updates <br />
* photo albums <br />
* check-ins <br />
* groups <br />
* pages <br />
* authentication for websites <br />
* image previews and styling for links <br />
* the ability to like comments<br />
* Private messages that also double as instant messages.<br />
* video chat for Windows, MacOS, and mobile platforms<br />
* emoticons<br />
* polls<br />
* user profiles<br />
* timeline (semantic social web objects intertwined with user posts)<br />
* many more features<br />
<br />
The point is, a platform such has Facebook has a relatively high list of features that users of the service may expect, and leaving Facebook may seem comparable to sacrificing some features that a user may enjoy.<br />
<br />
=== All of my posts are on Network X ===<br />
Some users value their social content, and are frustrated with the idea that moving to a new network is effectively "starting over".<br />
<br />
== Arguments Specific to Decentralized Social Networks ==<br />
<br />
=== Difficult to Install ===<br />
Diaspora runs on [http://rubyonrails.org/ Ruby on Rails]. and as such is a little trickier than, say, setting up your own [http://wordpress.org/ Wordpress] blog on a server. Rails apps operate outside the traditional LAMP stack that some people are familiar with using for setting up websites. However, the rise in [http://en.wikipedia.org/wiki/Platform_as_a_service PAAS] (Platform as a Service) has allowed users to host applications through places such as [https://www.openshift.com/ OpenShift] and [https://www.heroku.com/ Heroku] in lieu of traditional hosting. That being said, it is still totally possible to host a Rails application either locally, or on a server. Check out our [[Installation guides]] for specific operating systems and configurations.<br />
<br />
=== Difficult to Maintain ===<br />
As it stands, Diaspora has no auto-update feature that is commonly seen in applications such as Wordpress or Drupal, in which admins are notified immediately of the latest release and given an "easy button" to upgrade. Diaspora instead must be [http://wiki.diaspora-project.org/wiki/Notes_On_Installing_and_Running_Diaspora#Updating_Diaspora updated manually]. Incidentally, there are also technically two admin interfaces, one being [https://github.com/sferik/rails_admin Rails Admin], the other being the built-in admin panel.<br />
<br />
=== Decentralized Social Networks are hard to use ===<br />
For some, the nature of Diaspora and other projects such as Friendica may make use of some unfamiliar nuances in how users connect to one another. Every user has a handle, and handles are treated like email addresses, but for social. This can be different than being on a social network like Facebook in which searching by a person's name almost always guarantees that you'll find the person you're looking for, in decentralized systems it isn't that simple. For pods, the directory pretty much only searches for those that are on the pod, plus the content of people you follow. If you follow lots of people from different pods, any of the hashtags you follow will also be affected because those users are now tagging those indexes.<br />
=== Lack of understanding around concepts of decentralization ===<br />
For many, the very idea of a decentralized social network is not fully understood. It can be defined as an idea about how social networking should work. Instead of having everyone on one gigantic server, users could instead host their own social site for themselves or a group of people, and other people on similar sites could interact with that user. Maybe they could subscribe to the user, read their posts, like their photos, and send messages to one another. There wouldn't be a need for a giant social server, users can add each other simply by adding one another's addresses.<br />
<br />
Further explanations of the importance of decentralized social networking can be read about [http://deadsuperhero.com/blog/we-distribute-part-1-understanding-decentralized-social here].<br />
<br />
=== Lack of standard protocol ===<br />
Diaspora is built largely on pieces of [http://www.w3.org/community/ostatus/wiki/Main_Page OStatus], although it does not use a full implementation. [http://friendica.com/ Friendica] makes use of the [https://github.com/friendica/red/wiki/zot Zot] protocol, and [https://tent.io Tent] applications such as [https://tent.is TentStatus] make use of a different protocol entirely. Some apps, such as [https://buddycloud.org Buddycloud] make use of [http://activitystrea.ms/ ActivityStreams] and [http://en.wikipedia.org/wiki/XMPP XMPP]<br />
<br />
The point is, there are a number of standards and implementations in the works to choose from in the future. Some applications like Friendica try to maintain multiple connectors for social networks that don't make use of Zot, so that users can communicate seamlessly from different applications. Many of these projects exist as active experiments on ideas of how best decentralized social networking can be done, but as a side effect, there is no "official" standard for decentralized social applications to use across the board. The rapid nature of the development of some standards can make feature development for federation a little tricky, as changes in standards can affect how future versions of social applications need to work.<br />
<br />
=== Pod Downtime caveat ===<br />
If a pod goes down, when it comes back up again, it will miss posts that weren't received while it was down. This can be a cause for lost posts, comments, and messages between pods.<br />
<br />
== Arguments specific to Diaspora itself ==<br />
=== The Single-Post View ===<br />
As it stands, the current Single Post View is a highly stylized visual post in which a little bit of text is typically shown over an attached photo for a post. Comments and interactions scroll out from the bottom, and notifications are generally not visible from the post. Initially, it was used as part of the "Beta" designs for Diaspora, but as such are in the process of being removed due to community feedback. As such, currently some posts can look a little ugly in the full view, and the post UI lacks some functionality. Currently, a redesign is underway, with a discussion that can be found [https://www.loomio.org/discussions/2110 here].<br />
<br />
[[Category: Outreach]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Barriers_for_adoption&diff=562Barriers for adoption2013-05-19T22:01:41Z<p>DeadSuperHero: /* Difficult to Install */</p>
<hr />
<div>This document focuses on some reasons why users haven't yet adopted Diaspora. There are several barriers that can prevent a person from migrating to a different social network, as such they are divided up into different sections.<br />
<br />
<br />
== Arguments not specific to decentralized social networks ==<br />
=== Switching is inconvenient ===<br />
Although many users voice complaints over their existing social networks of choice, a majority of users are comfortable in being right where they are. Google+ alone is a testament to the reality that building a feature-for-feature clone of Facebook doesn't automatically give users a reason to switch.<br />
<br />
=== All of my friends are on Social Network X ===<br />
Another common convenience of large networks such as Twitter or Facebook are that they are ubiquitous. Many people use those networks, and therefore they can entrench themselves in active social circles of friends. Moving to a new service leaves those friends behind, and effectively cuts off communication.<br />
<br />
=== Social Network X has more features than Social Network Y ===<br />
Facebook is a prime example of this situation in that it is laden with features. <br />
Facebook alone has the following features: <br />
* status updates <br />
* photo albums <br />
* check-ins <br />
* groups <br />
* pages <br />
* authentication for websites <br />
* image previews and styling for links <br />
* the ability to like comments<br />
* Private messages that also double as instant messages.<br />
* video chat for Windows, MacOS, and mobile platforms<br />
* emoticons<br />
* polls<br />
* user profiles<br />
* timeline (semantic social web objects intertwined with user posts)<br />
* many more features<br />
<br />
The point is, a platform such has Facebook has a relatively high list of features that users of the service may expect, and leaving Facebook may seem comparable to sacrificing some features that a user may enjoy.<br />
<br />
=== All of my posts are on Network X ===<br />
Some users value their social content, and are frustrated with the idea that moving to a new network is effectively "starting over".<br />
<br />
== Arguments Specific to Decentralized Social Networks ==<br />
<br />
=== Difficult to Install ===<br />
Diaspora runs on [http://rubyonrails.org/ Ruby on Rails]. and as such is a little trickier than, say, setting up your own [http://wordpress.org/ Wordpress] blog on a server. Rails apps operate outside the traditional LAMP stack that some people are familiar with using for setting up websites. However, the rise in [http://en.wikipedia.org/wiki/Platform_as_a_service PAAS] (Platform as a Service) has allowed users to host applications through places such as [https://www.openshift.com/ OpenShift] and [https://www.heroku.com/ Heroku] in lieu of traditional hosting. That being said, it is still totally possible to host a Rails application either locally, or on a server. Check out our [[Installation guides]] for specific operating systems and configurations.<br />
<br />
=== Difficult to Maintain ===<br />
As it stands, Diaspora has no auto-update feature that is commonly seen in applications such as Wordpress or Drupal, in which admins are notified immediately of the latest release and given an "easy button" to upgrade. Diaspora instead must be [http://wiki.diaspora-project.org/wiki/Notes_On_Installing_and_Running_Diaspora#Updating_Diaspora updated manually]. Incidentally, there are also technically two admin interfaces, one being [https://github.com/sferik/rails_admin Rails Admin], the other being the built-in admin panel.<br />
<br />
=== Decentralized Social Networks are hard to use ===<br />
For some, the nature of Diaspora and other projects such as Friendica may make use of some unfamiliar nuances in how users connect to one another. Every user has a handle, and handles are treated like email addresses, but for social. This can be different than being on a social network like Facebook in which searching by a person's name almost always guarantees that you'll find the person you're looking for, in decentralized systems it isn't that simple. For pods, the directory pretty much only searches for those that are on the pod, plus the content of people you follow. If you follow lots of people from different pods, any of the hashtags you follow will also be affected because those users are now tagging those indexes.<br />
=== Lack of understanding around concepts of decentralization ===<br />
For many, the very idea of a decentralized social network is not fully understood. It can be defined as an idea about how social networking should work. Instead of having everyone on one gigantic server, users could instead host their own social site for themselves or a group of people, and other people on similar sites could interact with that user. Maybe they could subscribe to the user, read their posts, like their photos, and send messages to one another. There wouldn't be a need for a giant social server, users can add each other simply by adding one another's addresses.<br />
<br />
Further explanations of the importance of decentralized social networking can be read about [http://deadsuperhero.com/blog/we-distribute-part-1-understanding-decentralized-social here].<br />
<br />
=== Lack of standard protocol ===<br />
Diaspora is built largely on pieces of [http://www.w3.org/community/ostatus/wiki/Main_Page OStatus], although it does not use a full implementation. [http://friendica.com/ Friendica] makes use of the [https://github.com/friendica/red/wiki/zot Zot] protocol, and [https://tent.io Tent] applications such as [https://tent.is TentStatus] make use of a different protocol entirely. Some apps, such as [https://buddycloud.org Buddycloud] make use of [http://activitystrea.ms/ ActivityStreams] and [http://en.wikipedia.org/wiki/XMPP XMPP]<br />
<br />
The point is, there are a number of standards and implementations in the works to choose from in the future. Some applications like Friendica try to maintain multiple connectors for social networks that don't make use of Zot, so that users can communicate seamlessly from different applications. Many of these projects exist as active experiments on ideas of how best decentralized social networking can be done, but as a side effect, there is no "official" standard for decentralized social applications to use across the board. The rapid nature of the development of some standards can make feature development for federation a little tricky, as changes in standards can affect how future versions of social applications need to work.<br />
<br />
=== Pod Downtime caveat ===<br />
If a pod goes down, when it comes back up again, it will miss posts that weren't received while it was down. This can be a cause for lost posts, comments, and messages between pods.<br />
<br />
[[Category: Outreach]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Barriers_for_adoption&diff=561Barriers for adoption2013-05-19T21:59:26Z<p>DeadSuperHero: /* Pod Downtime caveat */</p>
<hr />
<div>This document focuses on some reasons why users haven't yet adopted Diaspora. There are several barriers that can prevent a person from migrating to a different social network, as such they are divided up into different sections.<br />
<br />
<br />
== Arguments not specific to decentralized social networks ==<br />
=== Switching is inconvenient ===<br />
Although many users voice complaints over their existing social networks of choice, a majority of users are comfortable in being right where they are. Google+ alone is a testament to the reality that building a feature-for-feature clone of Facebook doesn't automatically give users a reason to switch.<br />
<br />
=== All of my friends are on Social Network X ===<br />
Another common convenience of large networks such as Twitter or Facebook are that they are ubiquitous. Many people use those networks, and therefore they can entrench themselves in active social circles of friends. Moving to a new service leaves those friends behind, and effectively cuts off communication.<br />
<br />
=== Social Network X has more features than Social Network Y ===<br />
Facebook is a prime example of this situation in that it is laden with features. <br />
Facebook alone has the following features: <br />
* status updates <br />
* photo albums <br />
* check-ins <br />
* groups <br />
* pages <br />
* authentication for websites <br />
* image previews and styling for links <br />
* the ability to like comments<br />
* Private messages that also double as instant messages.<br />
* video chat for Windows, MacOS, and mobile platforms<br />
* emoticons<br />
* polls<br />
* user profiles<br />
* timeline (semantic social web objects intertwined with user posts)<br />
* many more features<br />
<br />
The point is, a platform such has Facebook has a relatively high list of features that users of the service may expect, and leaving Facebook may seem comparable to sacrificing some features that a user may enjoy.<br />
<br />
=== All of my posts are on Network X ===<br />
Some users value their social content, and are frustrated with the idea that moving to a new network is effectively "starting over".<br />
<br />
== Arguments Specific to Decentralized Social Networks ==<br />
<br />
=== Difficult to Install ===<br />
Diaspora runs on [http://rubyonrails.org/ Ruby on Rails]. and as such is a little trickier than, say, setting up your own [http://wordpress.org/ Wordpress] blog on a server. Rails apps operate outside the traditional LAMP stack that some people are familiar with using for setting up websites. However, the rise in [http://en.wikipedia.org/wiki/Platform_as_a_service PAAS] (Platform as a Service) has allowed users to host applications through places such as [https://www.openshift.com/ OpenShift] and [https://www.heroku.com/ Heroku] in lieu of traditional hosting. That being said, it is still totally possible to host a Rails application either locally, or on a server. Check out our [[Installation Guides]] for specific operating systems and configurations.<br />
<br />
=== Difficult to Maintain ===<br />
As it stands, Diaspora has no auto-update feature that is commonly seen in applications such as Wordpress or Drupal, in which admins are notified immediately of the latest release and given an "easy button" to upgrade. Diaspora instead must be [http://wiki.diaspora-project.org/wiki/Notes_On_Installing_and_Running_Diaspora#Updating_Diaspora updated manually]. Incidentally, there are also technically two admin interfaces, one being [https://github.com/sferik/rails_admin Rails Admin], the other being the built-in admin panel.<br />
<br />
=== Decentralized Social Networks are hard to use ===<br />
For some, the nature of Diaspora and other projects such as Friendica may make use of some unfamiliar nuances in how users connect to one another. Every user has a handle, and handles are treated like email addresses, but for social. This can be different than being on a social network like Facebook in which searching by a person's name almost always guarantees that you'll find the person you're looking for, in decentralized systems it isn't that simple. For pods, the directory pretty much only searches for those that are on the pod, plus the content of people you follow. If you follow lots of people from different pods, any of the hashtags you follow will also be affected because those users are now tagging those indexes.<br />
=== Lack of understanding around concepts of decentralization ===<br />
For many, the very idea of a decentralized social network is not fully understood. It can be defined as an idea about how social networking should work. Instead of having everyone on one gigantic server, users could instead host their own social site for themselves or a group of people, and other people on similar sites could interact with that user. Maybe they could subscribe to the user, read their posts, like their photos, and send messages to one another. There wouldn't be a need for a giant social server, users can add each other simply by adding one another's addresses.<br />
<br />
Further explanations of the importance of decentralized social networking can be read about [http://deadsuperhero.com/blog/we-distribute-part-1-understanding-decentralized-social here].<br />
<br />
=== Lack of standard protocol ===<br />
Diaspora is built largely on pieces of [http://www.w3.org/community/ostatus/wiki/Main_Page OStatus], although it does not use a full implementation. [http://friendica.com/ Friendica] makes use of the [https://github.com/friendica/red/wiki/zot Zot] protocol, and [https://tent.io Tent] applications such as [https://tent.is TentStatus] make use of a different protocol entirely. Some apps, such as [https://buddycloud.org Buddycloud] make use of [http://activitystrea.ms/ ActivityStreams] and [http://en.wikipedia.org/wiki/XMPP XMPP]<br />
<br />
The point is, there are a number of standards and implementations in the works to choose from in the future. Some applications like Friendica try to maintain multiple connectors for social networks that don't make use of Zot, so that users can communicate seamlessly from different applications. Many of these projects exist as active experiments on ideas of how best decentralized social networking can be done, but as a side effect, there is no "official" standard for decentralized social applications to use across the board. The rapid nature of the development of some standards can make feature development for federation a little tricky, as changes in standards can affect how future versions of social applications need to work.<br />
<br />
=== Pod Downtime caveat ===<br />
If a pod goes down, when it comes back up again, it will miss posts that weren't received while it was down. This can be a cause for lost posts, comments, and messages between pods.<br />
<br />
[[Category: Outreach]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Barriers_for_adoption&diff=560Barriers for adoption2013-05-19T21:58:59Z<p>DeadSuperHero: /* Arguments Specific to Decentralized Social Networks */</p>
<hr />
<div>This document focuses on some reasons why users haven't yet adopted Diaspora. There are several barriers that can prevent a person from migrating to a different social network, as such they are divided up into different sections.<br />
<br />
<br />
== Arguments not specific to decentralized social networks ==<br />
=== Switching is inconvenient ===<br />
Although many users voice complaints over their existing social networks of choice, a majority of users are comfortable in being right where they are. Google+ alone is a testament to the reality that building a feature-for-feature clone of Facebook doesn't automatically give users a reason to switch.<br />
<br />
=== All of my friends are on Social Network X ===<br />
Another common convenience of large networks such as Twitter or Facebook are that they are ubiquitous. Many people use those networks, and therefore they can entrench themselves in active social circles of friends. Moving to a new service leaves those friends behind, and effectively cuts off communication.<br />
<br />
=== Social Network X has more features than Social Network Y ===<br />
Facebook is a prime example of this situation in that it is laden with features. <br />
Facebook alone has the following features: <br />
* status updates <br />
* photo albums <br />
* check-ins <br />
* groups <br />
* pages <br />
* authentication for websites <br />
* image previews and styling for links <br />
* the ability to like comments<br />
* Private messages that also double as instant messages.<br />
* video chat for Windows, MacOS, and mobile platforms<br />
* emoticons<br />
* polls<br />
* user profiles<br />
* timeline (semantic social web objects intertwined with user posts)<br />
* many more features<br />
<br />
The point is, a platform such has Facebook has a relatively high list of features that users of the service may expect, and leaving Facebook may seem comparable to sacrificing some features that a user may enjoy.<br />
<br />
=== All of my posts are on Network X ===<br />
Some users value their social content, and are frustrated with the idea that moving to a new network is effectively "starting over".<br />
<br />
== Arguments Specific to Decentralized Social Networks ==<br />
<br />
=== Difficult to Install ===<br />
Diaspora runs on [http://rubyonrails.org/ Ruby on Rails]. and as such is a little trickier than, say, setting up your own [http://wordpress.org/ Wordpress] blog on a server. Rails apps operate outside the traditional LAMP stack that some people are familiar with using for setting up websites. However, the rise in [http://en.wikipedia.org/wiki/Platform_as_a_service PAAS] (Platform as a Service) has allowed users to host applications through places such as [https://www.openshift.com/ OpenShift] and [https://www.heroku.com/ Heroku] in lieu of traditional hosting. That being said, it is still totally possible to host a Rails application either locally, or on a server. Check out our [[Installation Guides]] for specific operating systems and configurations.<br />
<br />
=== Difficult to Maintain ===<br />
As it stands, Diaspora has no auto-update feature that is commonly seen in applications such as Wordpress or Drupal, in which admins are notified immediately of the latest release and given an "easy button" to upgrade. Diaspora instead must be [http://wiki.diaspora-project.org/wiki/Notes_On_Installing_and_Running_Diaspora#Updating_Diaspora updated manually]. Incidentally, there are also technically two admin interfaces, one being [https://github.com/sferik/rails_admin Rails Admin], the other being the built-in admin panel.<br />
<br />
=== Decentralized Social Networks are hard to use ===<br />
For some, the nature of Diaspora and other projects such as Friendica may make use of some unfamiliar nuances in how users connect to one another. Every user has a handle, and handles are treated like email addresses, but for social. This can be different than being on a social network like Facebook in which searching by a person's name almost always guarantees that you'll find the person you're looking for, in decentralized systems it isn't that simple. For pods, the directory pretty much only searches for those that are on the pod, plus the content of people you follow. If you follow lots of people from different pods, any of the hashtags you follow will also be affected because those users are now tagging those indexes.<br />
=== Lack of understanding around concepts of decentralization ===<br />
For many, the very idea of a decentralized social network is not fully understood. It can be defined as an idea about how social networking should work. Instead of having everyone on one gigantic server, users could instead host their own social site for themselves or a group of people, and other people on similar sites could interact with that user. Maybe they could subscribe to the user, read their posts, like their photos, and send messages to one another. There wouldn't be a need for a giant social server, users can add each other simply by adding one another's addresses.<br />
<br />
Further explanations of the importance of decentralized social networking can be read about [http://deadsuperhero.com/blog/we-distribute-part-1-understanding-decentralized-social here].<br />
<br />
=== Lack of standard protocol ===<br />
Diaspora is built largely on pieces of [http://www.w3.org/community/ostatus/wiki/Main_Page OStatus], although it does not use a full implementation. [http://friendica.com/ Friendica] makes use of the [https://github.com/friendica/red/wiki/zot Zot] protocol, and [https://tent.io Tent] applications such as [https://tent.is TentStatus] make use of a different protocol entirely. Some apps, such as [https://buddycloud.org Buddycloud] make use of [http://activitystrea.ms/ ActivityStreams] and [http://en.wikipedia.org/wiki/XMPP XMPP]<br />
<br />
The point is, there are a number of standards and implementations in the works to choose from in the future. Some applications like Friendica try to maintain multiple connectors for social networks that don't make use of Zot, so that users can communicate seamlessly from different applications. Many of these projects exist as active experiments on ideas of how best decentralized social networking can be done, but as a side effect, there is no "official" standard for decentralized social applications to use across the board. The rapid nature of the development of some standards can make feature development for federation a little tricky, as changes in standards can affect how future versions of social applications need to work.<br />
<br />
=== Pod Downtime caveat ===<br />
If a pod goes down, when it comes back up again, it will miss posts that weren't received while it was down. This can be a cause for lost posts, comments, and messages between pods.<br />
<br />
[[Category: Outreach]]</div>DeadSuperHerohttps://wiki.diasporafoundation.org/wiki/index.php?title=Barriers_for_adoption&diff=559Barriers for adoption2013-05-19T20:37:57Z<p>DeadSuperHero: /* Lack of standard protocol */</p>
<hr />
<div>This document focuses on some reasons why users haven't yet adopted Diaspora. There are several barriers that can prevent a person from migrating to a different social network, as such they are divided up into different sections.<br />
<br />
<br />
== Arguments not specific to decentralized social networks ==<br />
=== Switching is inconvenient ===<br />
Although many users voice complaints over their existing social networks of choice, a majority of users are comfortable in being right where they are. Google+ alone is a testament to the reality that building a feature-for-feature clone of Facebook doesn't automatically give users a reason to switch.<br />
<br />
=== All of my friends are on Social Network X ===<br />
Another common convenience of large networks such as Twitter or Facebook are that they are ubiquitous. Many people use those networks, and therefore they can entrench themselves in active social circles of friends. Moving to a new service leaves those friends behind, and effectively cuts off communication.<br />
<br />
=== Social Network X has more features than Social Network Y ===<br />
Facebook is a prime example of this situation in that it is laden with features. <br />
Facebook alone has the following features: <br />
* status updates <br />
* photo albums <br />
* check-ins <br />
* groups <br />
* pages <br />
* authentication for websites <br />
* image previews and styling for links <br />
* the ability to like comments<br />
* Private messages that also double as instant messages.<br />
* video chat for Windows, MacOS, and mobile platforms<br />
* emoticons<br />
* polls<br />
* user profiles<br />
* timeline (semantic social web objects intertwined with user posts)<br />
* many more features<br />
<br />
The point is, a platform such has Facebook has a relatively high list of features that users of the service may expect, and leaving Facebook may seem comparable to sacrificing some features that a user may enjoy.<br />
<br />
=== All of my posts are on Network X ===<br />
Some users value their social content, and are frustrated with the idea that moving to a new network is effectively "starting over".<br />
<br />
== Arguments Specific to Decentralized Social Networks ==<br />
<br />
=== Difficult to Install ===<br />
Diaspora runs on [http://rubyonrails.org/ Ruby on Rails]. and as such is a little trickier than, say, setting up your own [http://wordpress.org/ Wordpress] blog on a server. Rails apps operate outside the traditional LAMP stack that some people are familiar with using for setting up websites. However, the rise in [http://en.wikipedia.org/wiki/Platform_as_a_service PAAS] (Platform as a Service) has allowed users to host applications through places such as [https://www.openshift.com/ OpenShift] and [https://www.heroku.com/ Heroku] in lieu of traditional hosting. That being said, it is still totally possible to host a Rails application either locally, or on a server. Check out our [[Installation Guides]] for specific operating systems and configurations.<br />
<br />
=== Difficult to Maintain ===<br />
As it stands, Diaspora has no auto-update feature that is commonly seen in applications such as Wordpress or Drupal, in which admins are notified immediately of the latest release and given an "easy button" to upgrade. Diaspora instead must be [http://wiki.diaspora-project.org/wiki/Notes_On_Installing_and_Running_Diaspora#Updating_Diaspora updated manually]. Incidentally, there are also technically two admin interfaces, one being [https://github.com/sferik/rails_admin Rails Admin], the other being the built-in admin panel.<br />
<br />
=== Decentralized Social Networks are hard to use ===<br />
For some, the nature of Diaspora and other projects such as Friendica may make use of some unfamiliar nuances in how users connect to one another. Every user has a handle, and handles are treated like email addresses, but for social. This can be different than being on a social network like Facebook in which searching by a person's name almost always guarantees that you'll find the person you're looking for, in decentralized systems it isn't that simple. For pods, the directory pretty much only searches for those that are on the pod, plus the content of people you follow. If you follow lots of people from different pods, any of the hashtags you follow will also be affected because those users are now tagging those indexes.<br />
=== Lack of understanding around concepts of decentralization ===<br />
For many, the very idea of a decentralized social network is not fully understood. It can be defined as an idea about how social networking should work. Instead of having everyone on one gigantic server, users could instead host their own social site for themselves or a group of people, and other people on similar sites could interact with that user. Maybe they could subscribe to the user, read their posts, like their photos, and send messages to one another. There wouldn't be a need for a giant social server, users can add each other simply by adding one another's addresses.<br />
<br />
Further explanations of the importance of decentralized social networking can be read about [http://deadsuperhero.com/blog/we-distribute-part-1-understanding-decentralized-social here].<br />
<br />
=== Lack of standard protocol ===<br />
Diaspora is built largely on pieces of [http://www.w3.org/community/ostatus/wiki/Main_Page OStatus], although it does not use a full implementation. [http://friendica.com/ Friendica] makes use of the [https://github.com/friendica/red/wiki/zot Zot] protocol, and [https://tent.io Tent] applications such as [https://tent.is TentStatus] make use of a different protocol entirely. Some apps, such as [https://buddycloud.org Buddycloud] make use of [http://activitystrea.ms/ ActivityStreams] and [http://en.wikipedia.org/wiki/XMPP XMPP]<br />
<br />
The point is, there are a number of standards and implementations in the works to choose from in the future. Some applications like Friendica try to maintain multiple connectors for social networks that don't make use of Zot, so that users can communicate seamlessly from different applications. Many of these projects exist as active experiments on ideas of how best decentralized social networking can be done, but as a side effect, there is no "official" standard for decentralized social applications to use across the board. The rapid nature of the development of some standards can make feature development for federation a little tricky, as changes in standards can affect how future versions of social applications need to work. <br />
<br />
[[Category: Outreach]]</div>DeadSuperHero