Programming and writing about it.

echo $RANDOM

Tag: ruby

Book Review: Computer Science Programming Basics in Ruby

I received a review copy of the book as part of the blogger review program.

I review for the O'Reilly Blogger Review Program

Title:  “Computer Science Programming Basics in Ruby” by Ophir Frieder, Gideon Frieder, David Grossman; O’Reilly Media.

Summary: In the book “Computer Science Programming Basics in Ruby”, the authors aim to introduce concepts from computer science to its readers. Instead of pseudo code, the authors use the programming language, Ruby (a small subset of it) to demonstrate the concepts. At the very outset, the authors make it clear that they will not go into the details of the programming language itself and instead focus on the computer science/algorithmic aspects. The book is quite brief and has an interesting objective.

Reactions: I think the book fails to achieve its objective. As far as introducing computer science concepts go, there is a chapter on computer hardware, bits and bytes, memory and a chapter on sorting algorithms. The rest of the chapters fall somewhere in between talking about purely programming constructs and computer science concepts.

Verdict: Overall, the book could do with treatment of more computer science focused topics, as it happens to be the objective of the book. This could be done with an “example” computer science focused topic at the end of each chapter which makes use of the programming concept introduced in that chapter.

Product Page(s):


Book Review: Working with Unix Processes

I am subscribed to PragPub’s mailing list and that’s where I came to know of this book: Working with Unix Processes [1], by Jesse Storimer. While working on some major projects, I was looking for a light reading and hence finally bought the book. I finished it quite fast (in a couple of days) and hence thought would write a review (also gives me an excuse to write a post on something other than my Google Summer of Code work).

Book Cover

Why you should read this book?

You should read this book, if you are an application developer (Ruby or any other language) and have absolutely no idea about what a process ID is, or what a fork() is. This book attempts to fill the gap that you may feel deep inside if you learnt programming in say, Ruby or Python. There is just so much going on in a Unix/Linux system that you owe yourself to know atleast as much as is introduced in this book. It even tells you about man pages on Linux! It talks about Inter-process communication, pre-forking, copy-on-write, and some of the really fascinating things that is just so cool to know.

But beware, it just touches the surface, this book can be used as an entry point into the fascinating world of knowing Linux internals. You may even be spurred to pick up a book on Linux system adminstration or one of the Richard Stevens books [2] to know that little more that makes Linux programming so awesome.


To cut it short, considering my experience and background in working on Linux systems and being conversant with system calls, fork, exec and C programming and some experience with Network programming, I didn’t consider the 27$ very wisely spent. However, the author didn’t make any false promises and my expectations was clear: I was just looking for smome light reading. So, it was a good read overall. I did not try out the code examples, since I am not really very conversant with Ruby, so can’t comment on them.

If you have any familiarity with working with Linux systems and have some system adminstration/programming experience, buy this book if you are interested in getting an overview of things you may already know. However, if you don’t have any idea of what we talked in the earlier part of this blog post, then go buy it.

Congratulations to the author [3] for writing a short, to the point book which should serve its niche well.



[3] Author:

Some Projects full of Awesomeness

I recently explored some of these projects and found them to be really awesome (but haven’t yet talked about them on my blog). Here are some of my tweets about them:

Go check them out!