Book review: Three.js Essentials

This time I’m going to write about another little book I’ve been reading last weeks, Three.js: Essentials.

ThreeJS Frontcover

The book is an introduction or a wide getting starting guide to several features of Three.js Javascript library. Three.js is a high level WebGL wrapper, that tries to make easier to work with WebGL on the browser, so you will be able to render 2D/3D objects using Javascript/HTML5.

The book is aimed to people who want to learn a bit about Three.js. The author says you must know Javascript but not WebGL, maths or 3D rendering. I agree with him about you don’t need to know WebGL or 3D rendering, but you should have knowledge about geometry at least, if not, some of the concepts of the book will be hard to understand. It’s obvious to me that if you’re interested in a 3D library means that you know a bit of geometry (x-y-z axies, vectors, matrix algebra, planes, etc.). If you don’t you can follow the book and the samples, but as I’ve already said, it’ll be harder.

Three.js: Essentials is like a big tutorial where you will find lot of code examples of everything explained along the book. The code is very easy to read and modify, so you’ll be able to do experiments and learn how Three.js works. The book has seven chapters where you’ll learn how to draw 3D objects, animate them, do collision detection, apply light, materials and textures, make 3D random mazes, control objects with mouse or keyboard, generate particle systems, combine HTML5 with Three.js or learning how to use Blender along Three.js.

If you want to start working with 3D in the browser this book is really helpful, but you’ll need to combine it with a complete reference of Three.js, because as the author says, there are a lot of features that are not covered and will give you lots of possibilities to do interesting things.

The good
Really helpful introduction to Three.js. Lot of easy to follow code samples.
Not too long and easy to read.

The bad
Several complex concepts (mesh, textures, materials, matrix algebra, etc.) can be hard to understand for people new to 3D.

If you want to learn about Three.js and already know a bit about 3D buy this book because it teachs a lot of concepts of the library and is a cheap book.


Book review: Redmine Plugin Extension and Development

Wow, a while ago since I don’t write here… It could seems that I haven’t facing any problems up to date. Although I did, I’ve thought they weren’t too interesting to write about.

I’m just arrived from my month of holidays where apart of playing with my daughter and laying down in the beach I’ve been reading an interesting book: Redmine Plugin Extension and Development. I’m the creator of Redmine SpentTime plugin for Redmine along other private plugins I’ve written for the company I work at, so I know a bit about Redmine’s plugins.


The book is very easy and fast to read, with a plain and direct language that tries to explain every aspect of Redmine’s plugin development. The book is short, so you shouldn’t expect most of it, so don’t expect learning anthing about Redmine or Ruby on Rails because it isn’t the goal of the book. It seems obvious but this is not a book for novices on Ruby on Rails applications, you must know how this apps works to develop extensions for Redmine because you’ll have to know how Redmine works as well.

The good things of the book
There are several good things in this book, first of all the direct and plain language. The book is thought as a large tutorial from the beginning to the end. You could do a new plugin step by step. And it explains the most important parts of Redmine’s plugins as hooks, permissions & security or how to do new models searchables. The explanation of hooks is the most important part of the book, very worthwhile to read.

Also I like the permissions & security section and the importance the author gives to the testing side of the development. In this last section you’ll find valuables ideas about testing and continuous integration (CI) tools like Travis.

The bad parts of the book
Also this book have some bad things… although not too bad. First of all it tries to explain the development of plugins using as example another plugin (KnowledgeBase), but you must refer to GitHub repository to see the code examples, so you need a browser if you want to see the code. That is not very important for all people, but I think sometimes is good to have the code in the book so you don’t need to browse any page.

Another missing aspect about plugins is the internazionalization. The book covers basic aspects of the development like Bundle that are common to every Ruby on Rails application, so treating things as internazionalization is a must too… I know it because most of the contributions to my public plugin has been translations… although it’s very easy to do, it should have been covered in the book.

Redmine Plugin Extension and Development is a very good book for everyone that wants to write extensions for Redmine. After reading this book I planned some changes on the plugins I’ve wrote because I’ve learned very interesting things from it. You can read it in less than a week in your spare time, so it isn’t a lost time.