The Book of OpenLayers 3, completed !!!

It was a long road but finally it comes true: The Book of OpenLayers 3 is finished.

The chapter Controls and Interactions concludes the exploration of the main concepts related with OpenLayers version 3. This chapter is focused on showing how to work with the two main tools necessary to interact with the maps and its contents.

New samples have been created. Remember the source code can be found at and a running demo is available at

I must admit finished is not the best word to apply, OpenLayers3 is big, complex and awesome enough to write tons of chapters, but I must put a final dot and leave the typewriter… for a while :)

Some of you have contact to me notifying spelling errors. I have given priority to the release of the final chapter.

Please don’t hesitate to contact me to notify me more error (or anything), my next release will be a maintenance version fixing all that errors.

Many of you has suggested me many ideas on features to write about, so I think I will come back with a “There is more” really final chapter some day.

Thanks for your confidence.

Things to know when writing a book

Everyday is not the best day to write

It is fact, a law of universe. You could desire write but some days your brain is not clear enough, agile enough, fresh enough to write as you like.

Don’t force yourself. Don’t hate yourself to be unable to write as you would like. Relax. Disconnect. Put your head in another tasks. Do some sport.

The best thing to do when today isn’t the best day to write is not to write.

Markdown notation is great

Yes, markdown syntax is great. It is simple, clear and powerful.

At the beginning, if you come from a complex word processor like Word, Pages, LibreOffice or similar, you feel nude, but later you will appreciate that nudity.

Markdown separates your raw writes from the final visualisation.

A text editor is enough

People tend to drown looking for the perfect tool to make the work. My advice is don’t bother you, a simple text editor is enough to write any kind of book (otherwise ask to the hundreds of people that have written using a typewriter). Personally, I prefer a simple text editor over a word processor, because the first isolates the content from the way to visualise it.

Of course technology can improve the way we work. We have tons of text editor, classics like vim or emacs text editors, the new ones like SublimeTextTextMate or the Ulysses application, and also, many online text editors, like or StackEdit.

Keep cross references organised

Some kind of books, like technical books, arre plenty of cross references pointing to other sections, chapters or samples. It is vital for the author to maintain these references updated and organised.

When using markdown a tend to organise the book as follows:

  • Each chapter in a separate file named
  • Put a reference on each chapter title like: 1- Introduction {#ch1-introduction}
  • Put a reference on each section title as 1.1- Some section {#sc1-some-section}

These simple tips help you organise the whole book references and simplifying the process to create cross references.



New Overlays chapter on The Book of OpenLayers3

The Book of OpenLayers 3 has been updated !!!

This book is self-published, no great editorial is behind it neither a marketing campaign, so I appreciate any shares you can make through social networks and any other media.

What you can find in this new update?

  • A new Overlays chapter. This is a short but necessary chapter that explains how we can work with overlays to place any kind of HTML located within the map. As I comment, it is a short chapter but I prefer to leave it as an independent chapter.
  • A new sample on the Events, listeners and properties chapter, named Styling features under the pointer. Once we know about feature styling and events, the sample demonstrates how we can change the style of the features under the pointer.

The book has now 6 chapters and is 80% complete. Currently I continue working on a more extensive chapter called Controls and Interactions, which I hope to have finished in approximately a month.

Please, don’t hesitate to contact me with comments and suggestions. Your feedback is really valuable for me.

Thanks for your confidence in The Book of OpenLayers 3.

7 reasons to use Yeoman’s angular-fullstack generator

For my next project and, after looking for candidates and reading some hundreds of lines of documentation, I finally choose to work with the so called MEAN stack: mongodb, express, angular and node.

As with any other technology ecosystem, the great number of frameworks, libraries and tools can make our choice a challenge, and JavaScript is not an exception. But for JavaScript projects we have lot of help and I decide to use the awesome Yeoman tool. Yeoman combines the power of grunt, bower, npm and adds its own salt: the generators.

Yeoman generators are tasks responsible to build the initial project scaffolding.

Yeoman offers an extensive set of official generators oriented to create: webapps, backbone app, chrome extension, etc but we can also found a myriad of non oficial generators (yes, because anyone can create a new generator to satisfy his/her needs).

Within all the generators I chose angular-fullstack to create my MEAN project structure and next are my reasons:

1. Easy to install

You require to have node and npm installed on your system. Once you have them installYeoman and the angular-fullstack is as easy as:

Once installed the generator you simply need to create a new folder and initialise your project:

2. Creates both client and server scaffoldings

The generator generates the full stack of your project, both the client and server code. Your project will start well organised and prepared to create an awesome RIA application.

3. Introduces good practices in the generated code

Because the generated is made by experienced developers, they applies good practices in code organisation and style programming (like the environment configuration on the server side using node).

For me, this is one of the most important reasons to use this generator. Anybody knows starting with a new technology is always hard, but it is nothing when you start with four new technologies :)

4. Server side API prepared to use authentication

Following best practices the code is prepared so you can easily add security to you API via a node middleware so each request requires authentication of the client side.

5. Support HTML or jade templating on client side

You can use any template engine for client side but by default the generator works with HTML and Jade. I don’t really like Jade too much so I always try to use EJS or similar (Warning this last sentence is the author’s opinion).

6. Support for different CSS preprocessors

For different opinions there are different alternatives. This way angular-fullstack has support for plain CSS, Stylus, Sass or LESS pre-processors. Choose your preferred.

7. Commands to scaffold anything

With theangular-fullstack you can create new end points for the server side or client side components (like routes, controllers, services, filters, directives, …) with a sentences. So, next command:

will produce:


In my opnion, angular-fullstack is a really powerful tool that simplifies our day to day work.

As always it is not the panacea, it is simply a generic tool to automatize many common tasks. Because of this we can found situations it lacks some feature.