[TOS] Some Thoughts about a "How to Get Started Contributing to (and Using) FOSS" essay

Shlomi Fish shlomif at iglu.org.il
Sat Apr 3 20:38:46 UTC 2010


Hi all!

For the past few days I've been intending to write a document about "How to 
Get Started Contributing to (and to a lesser extent, Using) Open Source 
Software". Here are some of my random thoughts about my plans for it.

#. ESR's "How to become a Hacker"
---------------------------------

Eric S. Raymond (of the Cathedral and the Bazaar fame) has written this 
document:

http://catb.org/~esr/faqs/hacker-howto.html

It is a recommend read even if you're an experienced FOSS developer, and it's 
not too bad. However:

1. The license is not specified anywhere in the document. ("Copyright © 2001 
Eric S. Raymond")
 
2. The original DocBook/XML appears to be missing. (Which we could remedy 
manually or automatically, so it's not critical).

3. I feel it is too condescending. Raymond kinda says "So you're a noobie and 
wants to be as l33t as us?" (not in these exact words).

4. It suffers from some ESR dogmas - Python vs. Perl (or Ruby) ; Ubuntu vs. 
other distributions ; BASIC is evil and will forever cripple a budding mind. 
etc.

5. The discussion about the hacker mindset with its ideology and philosophy 
may be taking itself too seriously and intimidating. I agree with most of it 
(being a Randian Objectivist and all) but I think people can just contribute 
to open-source because they will enjoy it, and the ideals or spiritual 
enlightenment will follow later if at all.

As a result, I think we should start something of our own.

#. "Don't give up"
------------------

One thing that we need to prepare newcomers to is that they may run into 
problems, both technical, but also especially social or psychological. A lot 
of people may conclude that you need to have "thick skin" or that you need to 
be tactful or sharp-tongued, but then I read what Lawrence Lessig wrote in 
"Remix" ( http://remix.lessig.org/ ). Quoting from the CC-by-nc text:

<<<<<<<<<<<<
    I find it insanely difficult to read these comments. Not because
they’re bad or mistaken, but mainly because I have very thin skin.
There’s a direct correlation between what I read and pain in my
gut. Even unfair and mistaken criticism cuts me in ways that are
just silly. If I read a bad comment before bed, I don’t sleep. If I trip
upon one when I’m trying to write, I can be distracted for hours. I
fantasize about creating an alter ego who responds on my behalf.
But I don’t have the courage for even that deception. So instead,
my weakness manifests itself through the practice (extraordinarily
unfair to the comment writer) of sometimes not reading what oth-
ers have said.
>>>>>>>>>>>>

He continues to explain why he does it because he learned from one of his 
mentors (a judge) that negative criticism is much better than praise, and that 
one should prefer it because it may highlight problems with your reasoning. 
Like they say "A wiseman can learn from a fool much more than a fool can learn 
from a wiseman."

In any case, we should tell the newcomers that they are likely to feel 
offended or discouraged at a point, but that doesn't mean they should 
completely quit. I do not encourage offending or discouraging newcomers (or 
experienced contributors for that matter) but it's a fact a life that it has 
happened and will continue to happen. As I learnt in a psychotherapy session, 
sometimes you are not content with something, and what you should do is: 1. 
Acknowledge that you are not content. 2. Accept the fact that you are not 
content with it. 3. Accept the fact that this is life - it is not perfect - 
and find a way to mentally and practically deal with it. This book is also 
recommended:

http://www.shlomifish.org/philosophy/books-recommends/#feeling_good

(There's a torrent of its text in .djvu format hanging around the Net, but 
it's a bit hard to find because there's also a song by that name and other 
stuff. The book is proprietary, so downloading it is likely legally iffy, 
despite the fact that it sold millions of copies world-wide and that I hope it 
is more important for the author (Dr. David Burns) to have helped people than 
to profit from selling copies.)

What this book says is that the only person that can make you angry or 
frustrated (or worse - clinically depressed) is yourself, based on how you 
interpret a bad situation (using your cognitive thoughts), and that it's never 
necessary that you will become frustrated or that you will remain in such a 
state for long.

So we need to prepare people for the fact that they may get discouraged, 
offended or frustrated, but that it's important not to completely give up, 
jump into conclusions that "Linux sucks" or "open source sucks" or "the FOSS 
community sucks", or that "I'll never make it." 

#. "Linux is only for programmers / geeks / etc."
-------------------------------------------------

This is a myth that has been going on for a long time and we need to dispel 
it. 

#. "There is no King's Road to Mathematics"
-------------------------------------------

see:

http://en.wikipedia.org/wiki/Royal_Road#Cultural_references_to_the_Royal_Road

One thing we should make clear is that it will take a lot of learning, running 
into dead ends, falling and getting up to become a proficient FOSS developer 
(and to a lesser extent user). That does not mean it will necessary involve 
suffering, because learning and hard work (despite common myths) can be a lot 
of fun. But it still means one should be willing to invest some time and 
mental effort in going over it, and that it's an ongoing process, as no one 
can possibly know all of GNU/Linux/Open-source.

I believe Gabor Szabo has made the "Royal Road" mistake when he decided to 
teach PHP to his son instead of Perl (Gabor is incredibly active in the Perl 
community):

http://szabgab.com/blog/2009/09/1253517244.html

See my Disqus (JS) comment there.

#. Installing in a Virtual Machine / Live CD 
--------------------------------------------

One advantage the current generation of newcomers have over previous one is 
the wide prevalence of http://www.virtualbox.org/ and other virtualisation 
solutions. We can easily recommend people to download VBox and install it and 
then install Linux on the virtual machine, or even install a pre-made ready-
to-go-virtual machine instance. A virtual machine also solves the hardware 
compatibility problem.

We should also mention a Live CD/DVD as the second step towards a dedicated 
Linux partition. 

#. Recommended Distributions
----------------------------

I suggest recommend people to try one of the following distributions with some 
summary about each one of them:

1. Ubuntu (naturally - suitable for the desktop).
	- We can also mention Linux Mint.

2. Fedora.

3. Mandriva.

4. SimplyMEPIS. (Note - I'm basing it on its reputation - I never tried it.)

I don't expect people to know their way around Debian, and Archlinux and 
Gentoo are considerably worse than that. PC-BSD gladly installed much more 
software than my VirtualBox VM's hard drive could handle, and refused to 
install without the third CD (optional software) and left the VM's hard-disk 
in an unusable state. It's not ready for prime time.

If anyone wants to recommend anything else, feel free to do so, but I think we 
should not mention too many options or more obscure ones.

#. Avoid technology hopping
---------------------------

One of the best pieces of advice that Zohar Snir has given in his "The Linux 
Installation Process" presentation of the Tel Aviv Open Source Club "Welcome 
to Linux" series was to avoid the "distribution hopping syndrome". I.e: trying 
one distribution; running into a problem; concluding this distribution sucks; 
trying another distribution; and back to the beginning. Instead, one should 
choose a distribution, and stick with it.

Naturally this applies to other types of software. I've once interacted with a 
C++-loving programmer and Technion student who worked for the lab where I did 
my projects, who tried Perl (5), Python, PHP and Ruby and after a short while 
concluded that they all suck. If he had given one of them a chance, he may 
have grown to like it, but he didn't. 

#. Hardware Problems
--------------------

"The bad thing about hardware is that it sometimes work and it sometimes 
doesn't." In the writers at mit.edu mailing list, one of the active members said 
that "Linux stinks" because the Knoppix Live CD only worked properly only on 
the oldest of his HP laptops. Linux tends to need to catch up with newer 
hardware from various reasons, so people may be discouraged by it.

I believe using Virtual Box can mitigate most of this, because an MS Windows 
system running Virtual Box can run any type of Linux regardless of the 
underlying hardware. So we should recommend that.

#. Please don't aspire for "Sainthood".
---------------------------------------

I think we should tell people that the FOSS world as a whole does not 
encourage people to switch from Linux to Windows completely, and that it is 
encouraged to make sure one's code runs on Windows, prepare Windows packages, 
test it under Windows and diagnose the problems that its Windows users 
encounter, etc. So don't get rid of your Windows partition just yet, even if 
you really hate Microsoft.

-----------------------------------------

I have other stuff I'd like to mention, but I need to go to sleep now. 
Hopefully I'll write them in a reply. In the meanwhile - comments are welcome.

Regards,

	Shlomi Fish

-- 
-----------------------------------------------------------------
Shlomi Fish       http://www.shlomifish.org/
"Star Trek: We, the Living Dead" - http://shlom.in/st-wtld

Deletionists delete Wikipedia articles that they consider lame.
Chuck Norris deletes deletionists whom he considers lame.

Please reply to list if it's a mailing list post - http://shlom.in/reply .



More information about the tos mailing list