[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