|
|
How to Contribute to this Website and its Contents
Status: Finished except for info on the mailing list bit which will arrive in September 2009.
Pagecode: T->1 A->SAml H->trsa[t,a,si,di]d[t,a,si,di] C->SA[ccceji]
Last changed: Friday 2010-09-03 [15:24 UTC]
Abstract:
This page provides information how to contribute to this website. This website provides access to all of its contents to anybody without any limitations for free (libre). This website has come to life because of the idealism and for practical purposes the author shares with many other open minded humans around the globe. Therefore, anybody should be able to add and/or correct the knowledge this website provides. The goal of this page is to explain how to do so for various kinds of persons (for those with deep inside computer knowledge and technical skills as well as for folks which have other talents, skills and knowledge e.g. philosophers, photographers, linguists, etc.) in a (and that is a crucial point) robust and time efficient way without imposing big amounts of management overhead for anyone actively involved in improving the website and its contents.
|
Table of Contents
|
Random Minds
This page is in place because I find it extraordinary important that
authors stay in contact and interact with their readership. I am not
referring to bookfairs and the typical situation that goes on there
— the author being praised by the crowd. I am not a king nor am I
different from anybody else who visits my page so there should be no
such king and crowd thing here. What I am referring to, is that the
contact between some author and its readership is vital even if work
is still in progress as with this platform/website — it is like with
software — this platform will never be finished because there is
always space for improvements.
Whenever folks have some constructive dialog with each another, the
result reflects a dozen opinions and chances are quite big those might
reflect the real truth of the matter (whatever that might be).
-
On a marginal note — that is exactly why I like my involvement with
FOSS (Free and Open Source Software) so much. At its core, it is all
about the community — together we have a multi-perspective view on
the world which is superior one and a lot better one than any
individual opinion/view could ever be.

Next to the social aspect, there are lots and lots of practical
reasons why having good contact with each another is a good thing. For
example, most authors focus on their writing i.e. content and not so
much on 100% correct grammar, style or spelling when they initially
write something down — quite likely there are typos and weird
verbalization issues involved at that point. That stuff can be fixed
later on by proofreading and the like.
Just take this platform for example. I am sure, I make a lot of typos
even though I use pretty smart spelling software. Also, grammar ... I
am sure there are sentences that might turn somebodies stomach etc.
etc. But as I said, whenever some author suffers a mind explosion he
does not care about spelling — he is busy++ with typing his minds
into the computer before they vanish.
So, generally, whenever some author fosters good dialog with his
readership and maybe the readership among itself — some call that a
community — it certainly is a good thing.
The kind of dialog I am planning to have goes far beyond just meeting
in some MUC (Multi User Chat) room or being an active member on a
mailing list — in the end, if something has to be fixed (e.g. typo)
someone has to do it. This takes time which is something which at
least I am very spare/short with. In fact, being just me who has the
powers to do changes to the website/platform would make me a
single point of failure — those are bad bad bad. In case I got hit by
a bus and have to stay at the hospital for 4 months or so, no typo
could be fixed, no rephrasing could take place etc. Clearly, not
acceptable (at least not to me).
-
The easier to understand Single Point of Failure version for the
laymen: Using one device or communications line to perform a function.
In order to ensure continuous operation, two or more devices or lines
are used. Any computer or communications system that contains only one
component to do a job creates a single point of failure. If that
single component fails, there is no alternate one to take its place.
(The Free Dictionary)
The Solution
Connector, geek, tech evangelist, business enabler and funny finch as
I consider myself, I am going to provide means to avoid the nasty
single point of failure thing. I am going to put technology in place
that allows a bunch of people to work together on some project no
matter where they are, who they are, what time it is and what I am
busy with i.e. this is going to be a machine authority that oversees
management of the platform development but acts by human applied
rules. Wow! Sounds pretty much like some overlord-high-end
Well, actually, it is not ... Programmers use such things on a daily
basis. Guess what? Yes, I am talking about an SCM (Software
Configuration Management) system that I am going to put in place in
order to gain all the nice benefits that its usage provides us with.
A successful [software] tool is one that was used to do something
undreamed of by its author.
— S. C. Johnson
However, for the reader who reads that and does not have any clue (not
even the slightest idea) what I am talking about, there is no need to
worry or be scared. I am very well aware of the fact, that maybe
ordinary people might visit my platform as well. Do I wish them to
contribute as well? Of course! Here is why:
Specialization is for Insects.
— Robert A. Heinlein
Coming together is a beginning;
keeping together is progress;
working together is success.
— Unknown
Those two are enough good reasons. This platform of course, like a
satellite circulates around his master (IT (Information Technology))
but I do not want to loose focus on general things and matters in life
which might not be necessarily connected to technology or IT at all —
life is simply so much more than electrical circuits, bits and bytes
...
Something good simply needs a lot of different people with different
backgrounds and different opinions otherwise it is not worth putting
time and effort into it since it might not be able to gain attention
from anybody else than its creator. My experience is, that if you just
let folks do, put some decent tools into place, let the process pick
up self-reinforcing tendencies and provide a good legal and business
framework, the outcome is almost anytime good if not overwhelmingly
good. Because of that, what I want to avoid, even when the following
verse focuses on programmers, is this:
Why are programmers non-productive?
Because their time is wasted in meetings.
Why are programmers rebellious?
Because the management interferes too much.
Why are the programmers resigning one by one?
Because they are burnt out.
Having worked for poor management, they no longer value their jobs.
— Geoffrey James, "The Tao of Programming"
We do not want any burnout here nor do we want depressed folks. This
platform is freedom and peace because I want so and because I have the
powers (me/we, free software, own hardware, independent hosting
location and last put not least financial independence) to guarantee
it.
Contribute
Ok, so I want to allow folks to contribute since it is a desirable
thing for both sides as we figured above. In fact it should almost
work as if we would have a Wiki in place. The reason why I haven not
chosen a Wiki can be read here.
The only question is, how can the laymen contribute? It is not going
to be a problem for experienced folks since we are simply going to use
GIT (= a random three-letter combination) as our SCM (Software
Configuration Management) system.
Contributors Communication Channels
The channels are needed to foster contact amongst all contributors as
well as between contributors and the readership.
IRC Channel
We have an IRC channel (#sunoano) at irc.freenode.net. Visit us there
for real-time conversations. Those who need help with joining the IRC
network, please go here to see how it is done.
Mailing List
For now, there is only the IRC channel and direct contact with me
available. I will setup a mailing list in September 2009 — it will be
for the sole purpose of collaboratoin amongst contributors and general
knowledge exchange amongst and with the readership.
WRITEME
non-SCM Folks i.e. non Technicians
Well, the easiest thing to do is to stick to habits and technology
anybody knows/possesses and is comfortable with. In fact, I am talking
about plain and simple email. I think the assumption that anybody who
can visit this platform is also able to use email is all right.
Normal folks (i.e. non technicians, non-programmers etc.) can simply
copy paste some text from this website into their editor (even if it
is super stupid Microsoft Word) alter the text (e.g. fix typos,
rephrase) or they can write some new paragraphs or even whole sections
or more. All they have to do when finished, is to get into touch with
one of the SCM folks which might then put that improvements into the
SCM system.
Yes, I know ... not ideal but since I have chosen not to use some Wiki
but this setup and since no one can demand that usual folks do the
uphill battle and learn the whole SCM thingy (although it certainly is
possible — all it takes is a good online tutorial) it appears to be
the simples and thus best solution to go with email.
-
Marginal Note: The funny thing is, I do have a bit experience here. I
put a Wiki into place for some firms. Guess what happened? A few
normal folks (non technicians) were actually editing the Wiki after a
while and after they were trained how to do so, but ~70% where sending
Please change this ... see Attachment to the other 30% via email ...
Go figure ... ;-]
-
Bottom line is, normal folks are that much comfortable with email that
they use it for anything (odd) even if you provide them with a
decent/better tool for a particular task. Because of that, I think the
email thingy is going to work just great for all great folks out there
with skills and knowledge other than we hackers have. We need those
skills and knowledge and am saying thanks in advance to any non-hacker
out there who takes the burden to help with this website!
However, what is mandatory for anybody to know about who wants to
contribute is what the pagecode line determines — no matter if he is
a hacker, attorney, submarine captain, nurse, explorer, fashion model,
news speaker, bartender, dentist, CEO (Chief Executive Officer),
stripper, biologist, cap driver or pilot — he needs to know.
Everybody is welcome! It does not matter who you are or what you look
like and such things. What matters is what you say. There is equality
here since we want to focus on progress ...
SCM Folks
There is an SCM (Software Configuration Management) system in place.
In fact, the source code for the whole platform/website is kept in a
GIT repository ... I think I do not need to mention what that means.
Anybody who wants to contribute can clone the repository, work on his
local branch and when done, push back changes to the official public
branch.
How to use GIT for Contributing to this Platform
This is not about a person starting to host a project on GIThub,
rather, it is about how people can use this infrastructure after it
has been set up by the project founder already.
Basically, contributing to some project hosted at GIThub can be done
in two ways
- One can fork the project and edit it locally on his machine using
his favorite editor (any editor will do), or
- one can edit it online on GIThub, using the web interface
Start Contributing
Outlined below are the steps one should take in order to start contributing:
- Create an account on GIThub. It is necessary to provide a public
SSH key to GIThub in order to do so. Go here to see how it is
done.
- Fork my project (the source code for this website/platform that
is) by clicking the fork button.
- Make your contributions/changes i.e. use one of the two outlined
methods from above (edit locally or online).
- Send me a pull request by using the pull request button on your
forked project. I will then review the changes and pull them into
my local master branch and finally push them to GIThub again so
the changes are available to anybody. This will also update the
website/platform itself.
Here is a screencast in .ogg format that will show how it is done.
The Pagecode Line
The pagecode line is part of the functional concept for this platform.
I conceived it because of the need for something that is
- easy to use
- easy to understand
- individual to a particular page
- easy and quick to edit/manage
- extensible
- in the right spot i.e. part of the Page Information Corner
- naturally integrates into the page (at source code as well as at
user level)
- optional to use (just because all my pages have one, that does not
mean it is mandatory; it can be omitted)
The remainder is now going to explain the encoding of the pagecode
line in detail by providing a few examples at the end.
Tech Level
If we take a look at T->1 A->SAml H->trsa[t,a,si,di]d[t,a,si,di]
C->SA[eji], we can see that there is a T->1 at the beginning. The T is
short for Tech Level. There are four possible tech levels starting
with 0 and going up to 3 which is also the highest (most complex) one.
0 determines that there is no tech speech at this page so it can
be understood by anybody i.e. no formal or informal tech education
necessary.
1 determines that there is a little tech speech at this page but
anybody should be able to understand what the pages takes about
from either the context or by gleaning at some other place or
talking to folks which are considered experts on the matter.
2 is the next higher level and tells the reader that this page
might not be understood in detail by non-programmers or non
long-term users of Unix-like OSs (Operating Systems). However, a
page marked T->2 might contain enough information that might be
classified as T->0 or T->1 as well — it is just, since a page
gets calssified by the most complex parts it covers it had been
classified T->2. Bottom line is, anybody should try a T->2
classified page and see how far he gets.
3 is the highest possible tech level. It determines, that even
technicians might not be able to understand the page contents if
it is not their area of expertise the page talks about. Again, a
T->3 classified page might as well contain content which by itself
might classify as T->2 or even T->1 or lower — the highest level
within a page determines the tech level that is given for the
whole page.
The reason why this encoding is in place is because I wanted that
folks know immediately with what they are dealing with so they can
make instant decisions and do not waste their precious time. However,
in the end it still is just an indicator and one can only be
completely sure after he read the page.
Author(s)
This subsection explains how the transition from reader to contributor
and further on to become an author works. Next to NAP (New Authors
Process), it also explains the meaning of the Authors tag (A->).
NAP - New Authors Process
Folks need to become substantial contributors in the long-term in
order to be become authors or I need to know them for their
contributions to other FLOSS (Free/Libre Open Source Software)
projects to be listed from the beginning.
If I do not know them, they first become contributors and then after a
while the might become authors if they tend to contribute on a regular
basis — I would like to handle this pretty much the same as the
Debian NM (New Maintainers) process works.
Meaning of the Authors Tag
Again, we take a look at some random pagecode line e.g. T->1 A->SAml
H->trsa[t,a,si,di]d[t,a,si,di]C->SA[eji]. We can see that there is a
A->SAml. The A is short for Author respectively Authors since there
may be more than one. The Authors tag (A->) does not just list the
page author(s) but also their function with regards to the current
page
| m |
main author of a particular page |
| c |
co author (substantial contributions) to a particular page |
| l |
someone who takes over long-term maintenance for a particular page |
Authors and their Initials
This subsection maps the initials from the author tag within the
pagecode line (i.e. A->) to their full names. This table will get
filled as more folks join the group of authors — you are welcome! If
interested, just get in touch with me/us.
| Initials |
Full Name |
| SA |
Suno Ano |
Help / Contribute
The pagecode line T->1 A->SAml
H->trsa[t,a,si,di]d[t,a,si,di]C->SA[eji] also has an H-> tag. This
one is short for Help respectively Contribute tag. The tag code then
goes like this:
| Contribution Abbreviation |
Meaning |
Action |
| t |
typo |
fix typos |
| r |
rephrase |
rephrase (e.g. fix bad grammar) page contents i.e. sentences, paragraphs etc. No changes to original information/content itself! |
| s |
structure |
restructure a page e.g. swap/move around sections, paragraphs etc. |
| a |
add |
add some content type to the page (different types; see below) |
| d |
delete |
same as above but delete content |
a and d have some additional extra meaning. It must be clear what kind
of content one might add and/or delete.
| Content Abbreviation |
Meaning |
| t |
text |
| a |
audio |
| si |
static image i.e. digital photography or sceenshot etc. |
| di |
dynamic image i.e. videos e.g. some some Last.fm or YouTube web widgets and the like |
As an example
| Pagecode |
Meaning |
| a[t] |
add text |
| d[a] |
delete audio |
| a[si,di] |
add static images and add dynamic images |
| d[t,a,si,di] |
delete text, audio, static images and dynamic images |
If we also add typos, rephrasing and structuring in order to make it
look like a real-world Help/Contribute tag (H->), it might look like this
| Pagecode |
Meaning |
| tra[t]d[t] |
typo, rephrase, add [text], delete[text] |
| trsa[t,a,si]d[t] |
typo, rephrase, structure, add [text,audio,static images], delete[text] |
It is simple, per default, anything is prohibited and only the pagecode
which is explicitly listed in the pagecode line may allow the afore
mentioned actions on a particular page thus the pagecode line T->1
A->SAml C->SA[eji] tells that no one should touch the page since there
is no Help/Contribute tag (H->) in the pagecode line. However, it is
unlikely for a page to be tagged this way since at least fixing typos
should be permitted. This approach is generally known as whitelisting
although more common with email/firewall setups and the like.
Contact
This sort of contact does not provide information about how
contributors communicate with each another (they do this via CCC
(Contributors Communication Channels) or ccc for short) but to tell
the random reader, with regards to a particular page, if and how an
author wants to be contacted by readers about the particular page.
While the simple fact that an author has its Contact tag (C->) in the
pagecode line tells the reader he can get in touch with the author,
the Contact tag also tells which sort of communication the author
prefers and in which particular order.
For example, C->SA[ccc,e,j] determines the author Suno Ano wants to be
contacted through contributor communication channels at first, second
to ccc one might send email directly to Suno Ano or thirdly contact
him via Jabber. If the reader chooses ccc, he would be talking to the
whole contributor group (which is the best thing to do), e and j would
be only directed to one particular author which might cause huge
delays since the particular author might be on a journey for a long
time period.
In other words, the order in which the communication are types listed
are not random but determine the priority — starting with the highest
at the left-hand side and ending at the lowest priority one at the
outermost right.
The prerequisite for an author to put his Contact tag in the pagecode
line and state more than just ccc is, he is listed at the contact page
with all the information he puts in the tag i.e. for C->SA[ccc,e,j]
the author Suno Ano must have his email address and Jabber ID on the
contact page — no problem if he puts more than the things in the
Contact tag onto the contact page e.g. also his Skype ID etc.
-
So, a Contact tag not just tells if some authors wants to be contacted
but also in which way and what kind of communication he favors over
others respectively he thinks might suit the matter best.
There can be no Contact tag code for someone if he does not have an
Authors tag (A->) tag belonging to a particular page as well i.e. only
authors can have their contact tag in the pagecode line.
As stated above, only folks who really care and contribute might
become authors.
If not listed for a particular page with his Contact tag he does not
want to get contacted even if he has his Authors tag in the pagecode
line of a particular page. If he however decided that it might be a
good idea to get inputs to a particular page from random readers
directed to himself as well (since he is the author or one of the
authors, he has the powers to do changes on the page) he might decide
to put his Contact tag in the pagecode line. The following table shows
some examples:
| Pagecode Line |
Valid |
Comment |
| T->1 A->SAml,LNc H->trsa[t,a,si,di]d[t,a,si,di] C->SA[eji] |
yes |
Two authors, one decided to have a Contact tag as well. |
| T->1 A->SAml H->trsa[t,a,si,di]d[t,a,si,di] C->SA[eji],LN[e] |
no |
One author but two Contact tags. |
| T->1 A->SAm,LNcl,HBcl H->trsa[t,a,si,di]d[t,a,si,di] |
yes |
Three authors of which none decided he would like to be contacted by random readers (only within contributors group itself). |
Examples and their Explanations
- Example 1
-
T->1 A->SAml H->trsa[t,a,si,di]d[t,a,si] C->SA[ccceji]
-
This page has a tech level of
1 which means it contains a little tech
speech. There is only one author to this page. His name is Suno Ano
which can be determined from his initials (SA). Suno is main author
and has taken over long-term maintenance of this page (see Author(s)
section above).
-
The author wants contributions to the page happen since there is a
Contribute tag in place (
H->). The contributions are as follows:
contributors might fix typos, rephrase page contents, make changes to
the structure, add text, add audio, add static images, add dynamic
images. The author also thinks folks might delete things. Contributors
might delete text and delete static images.
-
The author Suno Ano states he might be contacted by readers since his
Contact tag is part of the pagecode line. He prefers to be contacted
through contributors communication channels at first. If the reader
does not feel comfortable with ccc he might try to contact Suno Ano
via email at next. If for some reason email does not work or the
reader feels not just uncomfortable with ccc but also with email he
might try to contact Suno via Jabber at next. The last possibility if
everything else fails/is no option to the reader, is to contact Suno
via IRC.
- Example 2
-
T->0 A->JIm,SAl H->tr C->SA[ccc],JI[ccc]
-
This page contains content with a tech level of
0 which is the lowest
complexity possible i.e. the contents will be understood by anyone.
-
The page has two authors. John Ingmar (I just made up the name) is the
main author. The second author is Suno Ano who has taken over
long-term maintenance for the page but did not take part in major
writings since he is no co-author as can be seen.
-
The authors agreed they would allow contributions to the page since
they put the Contribute tag in place. Contributors are allowed to fix
typos and rephrase the contents of the page but nothing more than
that.
-
Both authors decided readers might contact them with regards to the
particular page. In this case both have chosen to be contacted via
contributors communication channels only.
-
Order of Appearance: The order of appearance of any tag or its tag
code is without any meaning except for the order within the Contact
tag which determines what kind of communication a particular author
favors over others.
-
However, is makes life easier if all authors and contributors stick
the current convention to start with the Tech Level tag followed by
the Authors tag and so on. Same goes for stuff inside tags i.e. the
tags code itself.
- Example 3
-
T->3 A->SAml,TRc C->SA[e]
-
The page has a tech level of
3 which is considered highest possible
complexity.
-
There are two authors. Suno Ano which is the main author and has also
taken over long-term maintenance for the page. The second author has
the initials TR (at this point one might look up the full name in the
table above) and contributed to the page with substantial parts of
content. TR has not taken over long-term maintenance for the
particular page.
-
For whatever reason, the authors seem to have decided that they do not
want folks to contribute to the page (no Contribute tag (
H->) present
).
-
Only one of two authors (Suno Ano) would like to be contacted by
random readers with regards to the particular page. He wants to be
contacted via email.
|