Foreword from the author.
Why a hacker’s handbook?
Knowing how the tools you use work under the covers is a huge win for every
developer out there and Merb is small and clean enough for everyone to
understand it in a short period of time. You can learn a lot about HTTP,
web frameworks design and even hidden gems of Ruby web servers
(how many of you know that Thin can actually serve requests in
threads and not block the event loop?).
But what if I do not use Merb?
Understanding Merb helps a lot in understanding Ruby on Rails,
Django, TurboGears and (to some extent)
virtually any other framework out there. I encourage you read
this little handbook 10 times before you call yourself familiar
with Merb. I must confess I have no will to do so myself. But
you can do better.
Move on, and never stop.
Once you are done, dive into Django, Rails or whatever it may
be. Go to project tracker, find a ticket that relates to some
area you feel you know best and fix the problem. Contribute
a patch, make the tool that is freely available to you better,
understand what it takes to give your work away for free to the
community and why open source is such a wild fire the Internet
is built upon.
And, by the way, if you find this book useful, do me a favor.
I need no money from you, just take my advice seriously:
Read source code of projects that you rely on, whether it is
Django, Merb, Nginx, DataMapper, Twisted, PostgreSQL or Matz’s Ruby VM. Understand
how they work, get better, and maybe even do a small contribution.
But never stop exploring more and more. This is the only
exercise you need to become a better software engineer. At least,
this is what I learn again and again.
You may think this handbook sucks
You can always me email your feedback to michael.s.klishin at
Gmail domain, or PM michaelklishin at GitHub.
If you want to contribute, fork this repository and go ahead.
Pull requests on GitHub are more than welcome. If you use
patches, make sure you use git format-patch and your patch
has author name and email address on it.
Do keep in mind that the contributions to this book may consist of various
styles of English language.
I want to thank the following people:
- Matt Aimonetti: Contributed a lot of grammar and spelling fixes early on.
- Robert Evans: Contributed a lot of fixes related to formatting.
- Jack Dempsey: Did a quick read-through and pointed me where source
samples in the book needed update.
- Yehuda Katz: Spent unbelievable amount of time trying to polish my
English skills on IRC, always asking me to not take offense.
- Oleg Andreev: Does insanely cool stuff with Ruby on a daily basis
and helps me polish my arguing skills.
- Emacs contributors provided me with a blessed text editor I can
no longer work without.