Deep Vision Ruby: Kinematics

Deep Vision Ruby: Kinematics

About the Book

Deep Vision Ruby: Kinematics is for those who wish to understand Ruby front to back, inside and out, syntax to implementation. Deep Vision Ruby: Kinematics explores the symbiosis between language and runtime - the impact that design decisions made in one have on the other and vice versa. This is the book the author wishes they had when they were first introduced to Ruby and its community. Implementation details relate to the Canonical MRI (Matz's Ruby Interpreter) version 2.1.0p0.

Once purchased, access to github source code (for the manuscript as well as the code samples) will be granted if desired. Additionally, contributions and corrections may be accepted by pull request with credit given via the contributors listing.

Structure

  • Introduction
  • Prerequisites
  • A Bird's Eye View
  • A Short History of The Ruby Language and its Runtimes
  • The Ruby Runtime
    • The Canvas
      • The C Programming Language
      • The File System Source Layout
    • The Build Pipeline
      • Autotools
      • Make
      • GCC (The GNU Compiler Collection)
      • Miniruby
    • The Runtime Proper
      • Startup
        • Booting Up
        • Implementing Types
        • Initialising The Interpreter Machinery
          • Dual Stack Machine
        • Keeping Things Tidy
      • Execution
        • Understanding Ruby Source Code
          • Parsing
            • Lexical Analysis
              • Tokenisation
              • Parsing
              • Error Handling
            • Syntactic Analysis
              • Error Handling
            • Parse Tree Compilation
          • Compilation
            • Input Data Structures
            • Transformation
              • YARV Byte Code
                • Optimisation
            • Error Handling
        • Normal Operation
          • Bytecode Execution
          • Interrupts
            • Signals
          • Garbage Collection
            • Generational GC
          • Input and Output
          • Extensions
            • The Global Interpreter Lock
          • Security and Safety
          • Multitasking
            • Pre-emption
        • Underlying Operating System Interactions
          • Interrupts and Signals
          • Input and Output Operations
            • Storage and Network IO
            • Memory Services
        • Exceptions to Normal Flow Control
      • Shutdown
        • Signals
        • Clean up
          • Hooks and Callbacks
    • Colloquialisms and Conventions
  • Expanding the Runtime with Ruby Syntax and Functionality
    • Declarations
      • Truthyness
      • Operators
        • Functional Operators
          • Arithmetic
          • Comparison
          • Bitwise
          • Logical
            • Aliases
          • Ternary
          • Range
        • Assignments
          • Operators
        • Stateful Operators
          • Definition Presence Inquiry
        • Precedence and disambiguation
      • Reserved Words (Keywords)
      • Variables
        • Sigils
      • Composition of Operators into a Declaration
      • Colloquialisms and Conventions
    • Functions
      • Definitions
      • Execution Context
        • Name scope resolution
        • Reflection
        • The Call Stack
      • Input and Output
        • Side Effects
      • Applications
        • Recursion and Optimisation
      • Colloquialisms and Conventions
    • Objects and Encapsulated State
      • Closures
        • Name scope resolution
        • References and Values
      • Classes
        • Organisation
        • Instantiation
        • Modules
          • Namespaces
      • Mutation, Dependency and Inheritance
        • Hierarchy
          • Name scope resolution
        • Overriding Functionality
          • Operators
          • Dynamic Modification
          • Mix-ins (extends, prepend and include)
          • Refinements
      • Defining an API
        • By Enforcement
          • Public, Protected, and Private
        • By Convention
          • Documentation
          • Nested Classes and Modules
      • Colloquialisms and Conventions
    • Security and Safety
      • Preventing Unwanted Data Modification
      • Protecting Against Malicious Input
      • Sandboxing
    • Behaviours You Might Find Surprising That Matz Does Not
  • The Machine: A Language and Runtime Combination
    • Ruby Project Organisation
      • Namespaces
        • In Relationship to the File System
      • Library API Structure
      • Binaries and Executable Commands
      • Tooling
        • Packaging
        • Dependency Management
        • Testing and Specification
      • Colloquialisms and Conventions
    • Utilities and Documentation
      • Rake
      • RDoc/YARD
      • Ruby-Toolbox
    • Execution Trace - A Practical Annotated Example From 'execve' to 'exit(0)'
  • Epilogue
  • Colophon

Structure Under Active Construction

  • Introduction
  • A Bird's Eye View
  • Ruby Syntax and Functionality
    • Declarations
  • The Ruby Runtime
    • The Canvas
    • The Runtime Proper
  • Colophon

Completed Structures

This space intentionally left blank

  • Share this book

About the Author

Justin 'J' Lynn
Justin 'J' Lynn

Justin Lynn, known to his friends and colleagues as 'J', is a Co-founder and the Princpal Engineer at Infrastructory with several years of professional experience and a lifetime of interest in the art of designing, building, implementing, and running large software systems. His current environment of choice is GNU/Linux, for both server and desktop use. His programming language and community of choice for the last eight years has been Ruby and its ecosystem. As for system configuration tools he prefers Opscode Chef. On any given day you can find him fixing broken electronics, doing IT work, planning for the next expansion of his client's systems, working on his or other people's various open source projects, or indulging in a good book.

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub