Ruby Best Practices

Author Gregory Brown
Format online HTML, PDF
Price free

How do you write truly elegant code with Ruby? Ruby Best Practices is for programmers who want to use Ruby as experienced Rubyists do. Written by the developer of the Ruby project Prawn, this concise book explains how to design beautiful APIs and domain-specific languages with Ruby, as well as how to work with functional programming ideas and techniques that can simplify your code and make you more productive. You’ll learn how to write code that’s readable, expressive, and much more.

Continue reading

Ruby Programming

Author Wikibooks
Format online HTML, PDF
Price free

The book is currently broken down into several sections and is intended to be read sequentially. Getting started will show how to install and get started with Ruby in your environment. Basic Ruby demonstrates the main features of the language syntax. The Ruby language section is organized like a reference to the language. Available modules covers some of the standard library. Intermediate Ruby covers a selection of slightly more advanced topics. Each section is designed to be self contained. The book is a work in progress and is subject to change.

Continue reading

Just Enough Ruby to Get By

Author Jason Kim
Format online HTML
Price free

The book has two main objectives.

Introduce important topics in Ruby as quickly as possible
Ramp up problem solving skills to tackle real world problems
The book has two kinds of audiences in mind.

Absolute beginners who do not have any programming experience
Experienced programmers who have programmed in other languages such as C, C++ and Java
The book isn’t aimed at seasoned Ruby programmers. Most of the topics covered by the book will be familiar to programmers who work primarily with Ruby. It might serve a different purpose for Ruby programmers as a refresher.

While the book will cover wide varieties of topics in Ruby language and its ecosystem, it should not be considered as an exhaustive reference.

The book is still in the beta stage. It contains errors and the structure of the book will change over time.

Continue reading

The Ruby Style Guide

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.

Continue reading

Ruby Hacking Guide

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.

Continue reading

Data Structures and Algorithms with Object-Oriented Design Patterns in Ruby

Author Bruno R. Preiss
Format online HTML
Price free

Create sound software designs with data structures that use modern object-oriented design patterns!

Author Bruno Preiss presents the fundamentals of data structures and algorithms from a modern, object-oriented perspective.

The text promotes object-oriented design using Ruby and illustrates the use of the latest object-oriented design patterns. Virtually all the data structures are discussed in the context of a single class hierarchy.

This framework clearly shows the relationships between data structures and illustrates how polymorphism and inheritance can be used effectively.

Continue reading

Objects on Rails

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. Using the development of a blog app as its example, the focus is on pragmatic solutions which tread a “middle way” between the expedience of the Rails “golden path”, and rigid OO purity.

Continue reading

Clever Algorithms: Nature-Inspired Programming Recipes

Author Jason Brownlee PhD
Format online HTML
Price free

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.

Continue reading

Learning Ruby

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.

Continue reading

Ruby Cookbook and Language Reference

Author Ryan Davis
Format online HTML
Price free

A language guide and reference, by Ryan Davis, The Language Freak. This was a work in progress and not fully completed. The author has since abandoned the project, but there may still be merit in listing this as an available free book, since some of his completed chapters may be of help to someone.

Continue reading

PLEAC-Ruby

Author PLEAC Project
Format online HTML
Price free

Following the Perl Cookbook spirit, the PLEAC Project aims to gather fans of programming, in order to implement the solutions in other programming languages.

In this book, you’ll find an implementation of the Solutions of the Perl Cookbook in the Ruby language.

Continue reading

Beginning Ruby: From Novice to Professional, Second Edition

Author Peter Cooper
Format PDF (NOTE: Please read author’s full page before downloading)
Price free

Beginning Ruby is a Ruby programming book aimed at newcomers to the language. It’s written in an instructional format and walks through basic programming concepts through to building Web apps, database apps, networking daemons, and GUI based apps. It’s well suited for someone new to programming as well as experienced developers who are just new to dynamic languages.

Continue reading

Programming Ruby: The Pragmatic Programmer’s Guide

Author David Thomas and Andrew Hunt
Format online HTML
Price free

Ruby is an increasingly popular, fully object-oriented dynamic programming language, hailed by many practitioners as the finest and most useful language available today. When Ruby first burst onto the scene in the Western world, the Pragmatic Programmers were there with the definitive reference manual, Programming Ruby: The Pragmatic Programmer’s Guide.

In the Ruby community, this book is commonly known as “The PickAxe” because of the pickaxe on the cover.

The book is now in its fourth edition, and the complete first edition of this book is freely available under the Open Publication License v1.0,

Continue reading

Ruby on Rails Tutorial: Learn Web Development with Rails

Author Michael Hartl
Format online HTML
Price free

Best-selling author and leading Rails developer Michael Hartl teaches Rails by guiding you through the development of your own complete sample application using the latest techniques in Rails web development. The updates to this edition include all-new site design using Twitter’s Bootstrap; coverage of the new asset pipeline, including Sprockets and Sass; behavior-driven development (BDD) with Capybara and RSpec; better automated testing with Guard and Spork; roll your own authentication with has_secure_password; and an introduction to Gherkin and Cucumber.

You’ll find integrated tutorials not only for Rails, but also for the essential Ruby, HTML, CSS, JavaScript, and SQL skills you’ll need when developing web applications. Hartl explains how each new technique solves a real-world problem, and he demonstrates this with bite-sized code that’s simple enough to understand, yet novel enough to be useful. Whatever your previous web development experience, this book will guide you to true Rails mastery.

Continue reading

Schematics Scheme Cookbook

Author (multiple)
Format online HTML
Price free

The Scheme Cookbook’s primary aim is show how common programming problems can be solved in Scheme via short programming “recipes”. Parts of the Cookbook are specific to PLT Scheme but we aim to provide portable solutions when possible.

Given the current lack of practical documentation for Scheme we also aim to cover areas of practical programming that fall outside the strict Cookbook remit. This includes topics such as Scheme idioms, Programming pearls, and Scheme code libraries.

Continue reading

A Little Smalltalk

Author Timothy Budd
Format PDF
Price free

This book is divided into two parts. The first section describes the language of the Little Smalltalk system. Although most readers probably will have had some prior exposure to at least one other programming language before encountering Smalltalk, the text makes no assumptions about background. Most upper division undergraduate or graduate level students should be able to understand the material in this first section. This first part of the text can be used alone.

The second part of the book describes the actual implementation of the Little Smalltalk system. This section requires the reader to have a much greater background in computer science. Since Little Smalltalk is written in C, at least a rudimentary knowledge of that language is required. A good background in data structures is also valuable. The reader will find it desirable, although not strictly necessary, to have had some introduction to compiler construction for a conventional language, such as Pascal.

Continue reading

Beej’s Guide to Unix Interprocess Communication

Author Brian “Beej Jorgensen” Hall
Format Online HTML, Archived HTML, PDF
Price free

You know what’s easy? fork() is easy. You can fork off new processes all day and have them deal with individual chunks of a problem in parallel. Of course, its easiest if the processes don’t have to communicate with one another while they’re running and can just sit there doing their own thing.

However, when you start fork()’ing processes, you immediately start to think of the neat multi-user things you could do if the processes could talk to each other easily. So you try making a global array and then fork()’ing to see if it is shared. (That is, see if both the child and parent process use the same array.) Soon, of course, you find that the child process has its own copy of the array and the parent is oblivious to whatever changes the child makes to it.

How do you get these guys to talk to one another, share data structures, and be generally amicable? This document discusses several methods of Interprocess Communication (IPC) that can accomplish this, some of which are better suited to certain tasks than others.

As long as you know some C or C++, this guide should springboard you into the realm of Unix IPC with hopefully as little hassle as humanly possible!

Continue reading

The Java Tutorials Bundle

Author Raymond Gallardo, Scott Hommel, Sowmya Kannan, Joni Gordon, Sharon Biocca Zakhour
Format archived HTML
Price free

The Java Tutorial, Sixth Edition, is based on Java Platform, Standard Edition (Java SE) 8. This revised and updated edition introduces the new features added to the platform, including lambda expressions, default methods, aggregate operations, and more. An accessible and practical guide for programmers of any level, this book focuses on how to use the rich environment provided by Java to build applications, applets, and components.

Expanded coverage includes a chapter on the Date-Time API and a new chapter on annotations, with sections on type annotations and pluggable type systems as well as repeating annotations.

In addition, the updated sections “Security in Rich Internet Applications” and “Guidelines for Securing Rich Internet Applications” address key security topics. The latest deployment best practices are described in the chapter “Deployment in Depth.”

If you plan to take one of the Java SE 8 certification exams, this book can help. A special appendix, “Preparing for Java Programming Language Certification,” details the items covered on the available exams. Check online for updates.

Continue reading