The Ruby Style Guide

My image
  • Author: Bozhidar Batsov
  • Format: online HTML, archived HTML
  • Price: free

This Ruby style guide recommends best practices so that real-world Ruby programmers can write code that can be maintained by other real-world Ruby programmers. A style guide that reflects real-world usage gets used, and a style guide that holds to an ideal that has been rejected by the people it is supposed to help risks not getting used at all – no matter how good it is.

Chapters include:

  • Source Code Layout
  • Syntax
  • Naming
  • Comments
  • Classes
  • Exceptions
  • Collections
  • Strings
  • Regular Expressions
  • Percent Literals
  • Metaprogramming
  • Misc
  • Tools

Ruby Hacking Guide

My image
  • Author: Minero Aoki, Translated by Vincent Isambart and Clifford Escobar Caoile
  • Format: online HTML
  • Price: free

This book explores several themes with the following goals in mind: To have knowledge of the structure of ruby, To gain knowledge about language processing systems in general, To acquire skills in reading source code.

Ruby is an object-oriented language developed by Yukihiro Matsumoto. The official implementation of the Ruby language is called ruby. It is actively developed and maintained by the open source community. Our first goal is to understand the inner-workings of the ruby implementation. This book is going to investigate ruby as a whole.

Secondly, by knowing about the implementation of Ruby, we will be able to know about other language processing systems. This book tries to cover all topics necessary for implementing a language, such as hash table, scanner and parser, evaluation procedure, and many others. Because this book is not intended as a text book, going through entire areas and ideas without any lack was not reasonable. However the parts relating to the essential structures of a language implementation are adequately explained. And a brief summary of Ruby language itself is also included so that readers who don’t know about Ruby can read this book.

Chapters include:

  • A Minimal Introduction to Ruby
  • Objects
  • Names and name tables
  • Classes and modules
  • Garbage collection
  • Variables and constants
  • Security
  • Ruby Language Details
  • yacc crash course
  • Parser
  • Finite-state scanner
  • Syntax tree construction
  • Structure of the evaluator
  • Context
  • Methods
  • Blocks
  • Dynamic evaluation
  • Loading
  • Threads

Objects on Rails

My image
  • Author: Avdi Grimm
  • Format: online HTML
  • Price: free

This is not a Rails tutorial. This is the complete text of Objects on Rails, a “developer’s notebook” documenting some guidelines, techniques, and ideas for applying classic object-oriented thought to Ruby on Rails applications. This book is aimed at the working Rails developer who is looking to grow and evolve Rails projects while keeping them flexible, maintainable, and robust. The focus is on pragmatic solutions which tread a “middle way” between the expedience of the Rails “golden path”, and rigid OO purity.

Chapters include:

  • What this is not
  • About the approach
  • About the Code
  • A note on scale
  • Why OOP?

Clever Algorithms: Nature-Inspired Programming Recipes

My image
  • Author: Jason Brownlee PhD
  • Format: online HTML
  • Price: free (hard copy available on Amazon)

The book describes 45 algorithms from the field of Artificial Intelligence. All algorithm descriptions are complete and consistent to ensure that they are accessible, usable and understandable by a wide audience.

This book provides a handbook of algorithmic recipes from the fields of Metaheuristics, Biologically Inspired Computation and Computational Intelligence that have been described in a complete, consistent, and centralized manner. These standardized descriptions were carefully designed to be accessible, usable, and understandable. Most of the algorithms described in this book were originally inspired by biological and natural systems, such as the adaptive capabilities of genetic evolution and the acquired immune system, and the foraging behaviors of birds, bees, ants and bacteria. An encyclopedic algorithm reference, this book is intended for research scientists, engineers, students, and interested amateurs. Each algorithm description provides a working code example in the Ruby Programming Language.

Chapters include:

  • What is AI
  • Problem Domains
  • Unconventional Optimization
  • Random Search
  • Adaptive Random Search
  • Stochastic Hill Climbing
  • Iterated Local Search
  • Guided Local Search
  • Variable Neighborhood Search
  • Greedy Randomized Adaptive Search
  • Scatter Search
  • Tabu Search
  • Reactive Tabu Search
  • Genetic Algorithm
  • Genetic Programming
  • Evolution Strategies
  • Differential Evolution
  • Evolutionary Programming
  • Grammatical Evolution
  • Gene Expression Programming
  • Learning Classifier System
  • Non-dominated Sorting Genetic Algorithm
  • Strength Pareto Evolutionary Algorithm
  • Simulated Annealing
  • Extremal Optimization
  • Harmony Search
  • Cultural Algorithm
  • Memetic Algorithm
  • Population-Based Incremental Learning
  • Univariate Marginal Distribution Algorithm
  • Compact Genetic Algorithm
  • Bayesian Optimization Algorithm
  • Cross-Entropy Method
  • Particle Swarm Optimization
  • Ant System
  • Ant Colony System
  • Bees Algorithm
  • Bacterial Foraging Optimization Algorithm
  • Clonal Selection Algorithm
  • Negative Selection Algorithm
  • Artificial Immune Recognition System
  • Immune Network Algorithm
  • Dendritic Cell Algorithm
  • Perceptron
  • Back-propagation
  • Hopfield Network
  • Learning Vector Quantization
  • Self-Organizing Map
  • Programming Paradigms
  • Devising New Algorithms
  • Testing Algorithms
  • Visualizing Algorithms
  • Problem Solving Strategies
  • Benchmarking Algorithms

Learning Ruby

My image
  • Author: Daniel Carrera
  • Format: online HTML, archived HTML
  • Price: free

This beginner book on Ruby covers the fundamentals of writing a program and the fundamental concepts needed to perform any task.

Chapters include:

  • First Steps
  • Strings
  • New names for old things
  • Variables
  • Your first program
  • Writing good programs
  • Loops
  • Getting user input
  • Conditionals
  • While loops
  • Arrays
  • What can arrays do?
  • Iterators
  • Hashes
  • Example: Addressbook
  • Printing the addressbook
  • Sorting the addressbook
  • Functions
  • Classes and methods
  • More on classes
  • Implementing AddressBook
  • Writing iterators
  • More features