added to FAW, post, info type creation

This commit is contained in:
Daniel Siders 2012-09-20 10:29:16 -04:00
parent 698342fac0
commit 4a3bf5d514
12 changed files with 174 additions and 39 deletions

View file

@ -24,21 +24,24 @@ The social web is too important to leave in the hands of any one company or gove
Tent servers maintain relationships between users and manage apps. Users create and view content on apps. When a users creates new content, their Tent server sends it to the followers they chose. It also listens for and stores new messages and content from the people and organizations that user follows. Every user on Tent also has a profile that stores basic information about the user. Tent also lets users control which apps can access their data and what can be done with it.
### How is Tent different from centralized services?
With Tent, your relationships and data are all in one place that you control. on centralized services, your data and relationships are fragmented across multiple apps and networks. They can be difficult to export, and information about you is often sold. Like email, Tent lets you take your data and relationships with you when you change providers
#### How Tent Works
![diagram](/assets/images/tent_diagram.png)
#### How Other Services Work
![diagram](/assets/images/other_services.png)
### How can I use Tent?
First you need a Tent server. A Tent server sends new content to your followers
and listens for new content from people you follow. It stores all this content
safely so it's available for you to view later. You view and create content with
apps. Apps connect to your server to post new content you've created and ask for
content from people you follow. You can limit apps so they can't see all your
content. If you have private photos or messages, you might want only a few apps
to see them.
First you need a Tent server. You can use a hosted service like [Tent.is](http://tent.is), or host your own with [tentd](https://github.com/tent/tentd).
Soon you will be able to download and run Tent server on your own hardware or get started with
a hosted provider who runs the server for you. You could also write your own
server and apps from scratch using the [developer documentation](/docs).
Tent servers send new content to your followers and listens for new content from people you follow. It stores all this content
safely so it's available for you to view later.
You view and create content with apps. Apps connect to your server to post new content you have created and check for content from people you follow. You can limit apps so they can't see all your content. If you have private photos or messages, you might want only a few apps to see them.
### Can I switch Tent servers?

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View file

@ -0,0 +1,23 @@
---
title: Announcing Tent v0.1
kind: article
created_at: September 20, 2012 14:05 EDT
---
The [documentation](/docs) for Tent version 0.1 is now available along with a reference server, [tentd](https://github.com/tent/tentd).
This version of the Tent protocol, apps, and servers are still very young and are all under "heavy development". That means using the software is a lot like living in a building that's under construction. Loud, mysterious sounds are common and things you normally take for granted might be unreliable or not exist yet. At this stage, tentd should not be considered secure or reliable. This will change quickly, but for now so **please don't use it for anything you would not want public and/or lost.**
### What this means for you
**Developers** It's time to start writing apps for Tent and adding Tent support to existing projects based on the current specification. We've built a simple microblogging app and released it under the MIT license [here](https://github.com/tent/statuspro). Both the server and app are alpha releases. There are many bugs and vulnerabilities waiting to be found. Please report and/or repair any problems you find to the development team.
**Users** You need a Tent server to get started. There are two options:
1. If you have access to a server and are comfortable running your own server you can use [this repository](https://github.com/tent/tentd) to get up and running on your own hardware. Several PaaS providers are currently working on a simplified install option. We will publish a list when they are ready.
2. [Tent.is](https://www.Tent.is) offers single-click Tent hosting. [Tent.is](https://www.Tent.is) hosts your Tent server and some apps, so you can start posting right away. Right now it has the microblogging app pre-installed with many more on the way.
Next Steps
Tent will continue to evolve rapidly. Version 0.2 is under development and will offer several features we couldn't finish in time for v0.1. In the mean time, let's start posting, hosting, and developing!
We have also posted a [list](/contribute) of ways to help contribute to the Tent movement. We appreciate any help you can offer.

View file

@ -1,33 +1,54 @@
##How you can help Tent
## How you can help Tent
<span class="lead">Tent is still very young and needs your help. Everyone has different skills and interests that can help.</span>
###Everyone
####Start using Tent
Like all social services, the more people who use Tent, the more useful it is to everyone. Either by self-hosting or using a hosting provider, get your Tent server set up and keep it up to date with the most recent software version.
If you create or find out about any cool Tent projects, [let us know](mailto:contact@tent.is)!
####Promote Tent
Tell people you know about Tent! Put a link to Tent on your website, advertise your Tent server on your business card and email signature. Give a talk about Tent at your local tech or organization meetup. Email the developers behind your favorite services and ask them to support Tent!
### Everyone
#### Start using Tent
Like all social services, the more people who use Tent, the more useful it is to everyone. Either by self-hosting or using a hosting provider, get your Tent server set up and keep it up to date with the most recent software version. Like all new software, Tent has many bugs. Please report them [here](https://github.com/tent/tentd/issues) or [email us](mailto:contact@tent.io). *Remember, Tent is still in alpha, so it's not safe to use with information you would not want to be public and should not be considered reliable.*
#### Help newcomers
Tent empowers users, but like other distributed systems (the web, email, but torrent, DNS) it can be hard for new users to understand. Help by creating "Getting Started" guides, tutorials, articles, and blog posts. Diagrams, animations, and videos can go a long way towards helping non-technical users understand how Tent works and why it matters.
#### Promote Tent
Tell people you know about Tent any way you can!
- Put a link to Tent.io on your website, advertise your Tent server on your business card, email signature, and your HTTP headers.
- Give a talk about Tent at your local tech or organization meetup.
- Email the developers behind your favorite services and ask them to support Tent!
####Translate
The Tent.io and Tent Docs into your native language. Either fork the docs on [Github](https://github.com/tent/tent.io) or [email us](mailto:contact@tent.io).
#### Translate Tent
Help translate Tent.io website and Tent Docs into your native language. Either fork the docs on [Github](https://github.com/tent/tent.io) or [email us](mailto:contact@tent.io).
All languages are welcome, but our priorities are:
- Russian
- Arabic
- Chinese
- Japanese
- German
- French
- Spanish
###Designers
####Design for Tent apps and hosts
The world needs well designed Tent services. Great apps start with great design and UIs. Many apps and hosting providers also support "skins" or "themes" and would love your contribution and help!
### Designers
#### Design Tent apps and hosts
The world needs well designed Tent services. Great apps start with great design and UIs. Most Tent apps are still developers' weekend projects and could use your help! Many apps and hosting providers also support "skins" or "themes" and would welcome your contributions.
####Design for Core Tent Apps
The Admin and Status apps need your help. They are open source projects created by the Tent Team and community. Since there aren't any designers on the Team (yet!) those applications are ripe for a redesign. Both apps are on Tent's [github](http://github.com/tent) where you can share your submissions.
#### Design Core Tent Apps
The Admin and Status apps need your help. They are open source projects created by the Tent Team and community. Since there aren't any designers on the Team (yet!) those applications are ripe for a redesign. Both apps are on Tent's [github page](http://github.com/tent) where you can share your submissions.
####Design Tent.io
#### Design Tent.io
Tent.io could use a facelift. Our wishlist includes: diagrams clearly explaining tent to non-technical newcomers, a short (30 second-1.5 minute) Intro to Tent video, and official Tent logo (that users and apps can display and we can put on logo merch). Keep in mind that you must sign over ownership of anything official you create for http://Tent.io. Fan art is great, but official logos and design need to be the exclusive property of the organization running Tent.io for legal reasons.
###Developers
### Developers
####Develop Tent Apps
Tent enables new kinds of communication and sharing, developers can unlock that potential. Add Tent support to open and commercial apps or start from scratch. The protocol is still evolving, so stay in touch with the community as you develop.
#### Develop Tent Apps
Tent enables new kinds of communication and sharing, developers can unlock that potential. Add Tent support to open and commercial apps or start from scratch. The protocol is still evolving, so stay in touch with the community as you develop.
####Create Tent Libraries
Tent needs client libraries for
#### Create Tent Libraries
Your favorite language or framework needs a Tent library. Our top priorities are:
- C
- C++
- C#/.NET
@ -46,9 +67,9 @@ Tent needs client libraries for
Existing client libraries need regular maintenance to keep up with Tent as it evolves.
####Write Tutorials
#### Write Tutorials
Developers coming to Tent need a place to start. Blog articles, Tutorials, Getting Started guides, and code samples are still in short supply. Consider creating
####Contribute to the Tent Core
#### Contribute to the Tent Core
Tent has many open source elements that need your help and accept pull requests. Applications include tentd, the reference server implementation, TentStatus, a Tent microblogging app, and TentAdmin, a server administration app. Most of these apps were developed to demonstrate basic functionality and shipped with a limited feature set. Additions, changes, and forks are welcome. The documentation accompanying these projects and the Tent protocol are also community curated. All can be found on the [Tent github](http://github.com/tent/). Each has a list of TODO priorities in the readme.

View file

@ -78,7 +78,7 @@ know about new content updates. This includes new posts and profile changes. Not
https://cloudmir.com/ (Lindsay) and https://titanous.com (Jonathan) are both following https://daniel.tent.is (Daniel) and have requested all his status posts.
2. https://daniel.tent.is creates a `status` post on TentStatus in which he mentions another user, https://jesse.tent.is (Jesse).
2. https://daniel.tent.is creates a `status` post with TentStatus, a microblogging app, in which he mentions another user, https://jesse.tent.is (Jesse).
3. TentStatus sends this post to Daniel's server.

View file

@ -17,6 +17,31 @@ Every Tent user needs a profile with the `Core` info type. This block provides c
`https://tent.io/types/info/basic/v0.1.0`
`Basic` profile info helps humanize users. All fields are optional but help provide a context in which to place the user's posts.
`Basic` profile info helps humanize users. All fields are optional but help provide a context in which to place the user's s.
{info_basic schema}
## Creating New Profile Info Types
Tent highly extensible and allows developers to create new profile info types to support new kinds of user data, interactions, and functionality.
### Guidelines
#### Do
- **Use snake case for JSON key names.**
- **Use existing types when possible.** Consider whether a new type is really necessary. Would an existing type work? Contact the maintainer of the type to suggest changes for a future version. Type-creep makes everyone's lives worse. Avoid proliferation.
- **Fork existing types** Start with what already exists. Common types are familiar to both developers and users. They can more easily support your great new type if it is based of something familiar.
- **Version your profile info type.** The profile info type specification supports versions. When it comes time to change your type, create a new version of the same type with a different number. Do not overwrite the original or start with a new name. This could lead to confusion and your type being blocked as spam.
- **Document your type.** Eventually another developer or user will want to know how your type works. Create clear, concise documentation including your contact information.
- **Collaborate with other developers.** If you have encountered a challenge, it is likely many others have as well. Work with other developers who have similar goals. Create a single type that serves both your needs instead of two similar, competing types.
- **Keep it simple.** Users and developers alike benefit from a small set of simple types. With a small number of types, users can find apps that suit their specific needs and know their data is portable. Developers can build interoperable, compliant apps without reinventing the wheel. Avoid NIH (Not Invented Here) Syndrome and the desire to start from scratch.
- **Consider privacy settings.** Users will set whole sections to public or private. Do not combine fields that would be private with public ones in the same profile info type.
- **Publish your type.** If you have created a new type, publish it to a popular Tent community site (like this one) so other developers can add support for it into their apps.
#### Do Not
- **Create duplicate profile info types** Multiple types with the same purpose will create a fragmented ecosystem. Tent was designed to avoid this problem, please do not make it worse.
- **Create proprietary profile info types** Users and other developers expect to be able to view profiles in different applications. Limiting which apps can use a profile info type is against the spirit of Tent.
- **Create types with identical names.** Names should disambiguate profile info types, not confuse them. An entity may have many info types in its profile, duplicate names will cause errors. Choose a unique name for your type.
- **Use deeply nested data structures.** They make querying difficult.
- **Put too much data in a profile.** Profiles are transferred over the wire each time they are updated.

View file

@ -67,3 +67,28 @@ profile.
**Delete** informs followers that a post was deleted.
{post_delete schema}
## Creating New Post Types
Tent highly extensible and allows developers to create new post types to support new kinds of media, interactions, and functionality.
### Guidelines
#### Do
- **Use snake case for JSON key names.**
- **Use existing types when possible.** Consider whether a new type is really necessary. Would an existing type work? Contact the maintainer of the type to suggest changes for a future version. Type-creep makes everyone's lives worse. Avoid proliferation.
- **Fork existing types** Start with what already exists. Common types are familiar to both developers and users. They can more easily support your great new type if it is based of something familiar.
- **Version your type.** The post type specification supports versions. When it comes time to change your post type, create a new version of the same post type with a different number. Do not overwrite the original or start with a new name. This could lead to confusion and your post type being blocked as spam.
- **Document your type.** Eventually another developer or user will want to know how your post type works. Create clear, concise documentation including your contact information.
- **Collaborate with other developers.** If you have encountered a challenge, it is likely many others have as well. Work with other developers who have similar goals. Create a single post type that serves both your needs instead of two similar, competing types.
- **Keep it simple.** Users and developers alike benefit from a small set of simple post types. With a small number of types, users can find apps that suit their specific needs and know their data is portable. Developers can build interoperable, compliant apps without reinventing the wheel. Avoid NIH (Not Invented Here) Syndrome and the desire to start from scratch.
- **Publish your type.** If you have created a new type, publish it to a popular Tent community site (like this one) so other developers can add support for it into their apps.
#### Do Not
- **Create duplicate post types** Multiple post types with the same purpose will create a fragmented ecosystem. Tent was designed to avoid this problem
- **Create proprietary post types** Users and other developers expect to be able to view posts in different applications. Limiting which apps can use a post type is against the spirit of Tent.
- **Create post types with identical names.** Names should disambiguate post types, not confuse them. Choose a different name for your type when possible.
- **Use deeply nested data structures.** They make querying difficult.

View file

@ -1,4 +1,34 @@
#faq == render_child('/_faq/')
#main
h2 Tent is a protocol for social networking.
p Tent is open, decentralized, and built for the future. Tent changes everything.
h3 Getting Started
p Tent allows every user to run their own server, but like email and the web, most users will use a hosting service to handle it.
p
a href="https://tent.is" Tent.is
| is the first Tent hosting provider.
p
| Users who want to run their own server should look at
a href="https://github.com/tent/tentd" tentd
| , the current reference server implementation.
h3 How Tent Works
b Decentralized
p Email, the World Wide Web and the Internet itself are decentralized.
p Centralized services cannot meet the needs of all users because they limit developers and use closed and proprietary and APIs. Users are forced to use multiple service providers and fragment their relationships, messages, memories, and data. Users have to check in regularly with multiple sites and apps just to see what is happening in their lives.
b Apps
p Anyone can write any kind of Tent app. The only person's permission a developer needs is the user's. Users use the apps they want and keep all their posts, relationships, and messages in one place.
p Tent is built for the future. Developers can create new kinds of posts and profile info to support new kinds of interaction and media, like streaming video, email, maps, and holograms.
b Lifecycle of a post
p
ol
li Alice goes to a restaurant.
li Alice writes a short message on TentStatus
li TentStatus sends the message to Alice's server
li Alice's server sends the status to two friends (Bob's and Carol's) servers.
li Bob's server sends the message to Bob's TentStatus
li Carol's server sends the message to Carol's TentStatus
li Bob and Carol each read the post.
p All this happens in just a few seconds and is completely decentralized.
#mailchimp-signup
h3 For updates on Tent, sign up here:
@ -8,3 +38,9 @@
input#mc-email.required.email type="email" name="EMAIL"
input.btn.btn-primary name="subscribe" type="submit" value="Subscribe"
#faq
h3 FAQ
== render_child('/_faq/')

View file

@ -1,3 +1,2 @@
footer
| © 2012 by Apollic Software, LLC. All rights reserved
No part of this document may be reproduced or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without prior written permission of Apollic Software, LLC.
| Copyright © 2012 by Apollic Software, LLC. All rights reserved

View file

@ -4,3 +4,4 @@
ul.nav
== nav_link_with_active 'Blog', '/blog', top: true
== nav_link_with_active 'Docs', '/docs', top: true
== nav_link_with_active 'Contribute', '/contribute', top: true

View file

@ -19,12 +19,14 @@ html lang='en'
.lead
p Tent is a protocol for decentralized social networking.
.alert.alert-block
h4 Alpha Documentation
p These docs are very rough, incorrect, and incomplete. They will be modified heavily over the next few weeks.
h4 Tent v0.1 Documentation
p
' Please contribute by making Pull Requests and Issues on the
== link_to 'GitHub repository', 'https://github.com/tent/tent.io'
| .
== yield
== render '_footer'
hr
p Copyright © 2012 by Apollic Software, LLC. All rights reserved
p This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Apollic Software, LLC or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
p This website and all and the documents and information contained herein is provided on an "AS IS" basis and Apollic Software, LLC DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.