You should move the purchase button higher on the page or put multiple buttons. My immediate assumption was it was not ready yet until I scrooooled way down to find the purchase link.
Hey pat, how do you understand the internal code so well ? I read your free chapter on Ruby's Hash table and I loved every bit of it. It would be great if you can share the process you go through when you read the source code, so maybe I can apply it in the future. By the way, congrats for the release !
The code for MRI is.. idiomatic, but actually pretty easy to read. I last did C full time in the 90s and so am mostly just a 'reader' now but it's not hard to follow, although some of the reasoning behind doing things a certain way in MRI is unfathomable.. ;-)
Exactly, Peter. It's not tremendously hard to read the C code and understand what it is doing (usually), if you're familiar with C syntax. But it was tremendously difficult at times understanding _why_ it was doing what it was doing.
Hey thanks for asking - and yes, in the preface to the book I do explain how I figure this stuff out. But basically I:
- study the C code for a long time
- step through it in GDB a lot
- add printf statements and recompile it to print out debug/trace info
- actually change it to see what would happen if things were written differently.
A lot of hard work! I do the hard work so you don't have to :)
What is the purpose of this book? Is Ruby internal workings not widely known or understood, or is this more about how to reverse engineer a software stack? Did you discover anything that is not documented in Ruby docs?
Yes - Ruby's internal workings are very mysterious to most people. While the C source code behind Ruby is open source, it's hard to read and understand for most people. In Ruby Under a Microscope, I explain how Ruby works internally… without assuming you know anything about C programming.
Why study Ruby internals in the first place? Here are my reasons (from the book's preface):
- By studying how Ruby works internally, you'll get a deeper understanding of the language and become a better Ruby developer.
- You can learn a lot from the Ruby core team. There is some amazing stuff inside of Ruby, and Ruby's implementation might help you while solving your own coding problems.
- It's fun! It's just super-fascinating stuff!
I learned a lot of stuff about Ruby usage that is not documented. You can read more in the book… :)