Book in Review: “Instant Dependency Management with RequireJS How-to” by Greg Franko


Instant Dependency Management with RequireJS How-to, by Greg Franko, Cover picture
I recently had the pleasure of reading “Instant Dependency Management with RequireJS How-to“, a book written by Greg Franko and published by Packt Publishing, in the “Instant” series (short, focused, practical booklets).
You can have a look to the book at http://www.packtpub.com/dependency-management-with-requirejs-how-to/book

I got a copy of the book by courtesy of the publisher and, I’ve to say, to my full satisfaction!

The book is really a quick read (under 50 pages); It’s exactly what it takes to grasp the meaning and advantage of using requirejs to improve your development workflow. The entire “Instant” series has been designed to concise, precise information in a short timeframe: something you can start applying now to your dev workflow, without having to dig through hundred of theoretical knowledge of hypothetical examples.

The book is well written and go through the basics of what RequireJS is, how to get it and put it into your application and how to benefit from things like asynchronous module loading, module dependencies resolution and using the fantastic RequireJS optimizer tool to get compressed and minified code ready to be deployed in production environment.

The book, albeit short, offers also hidden gems like how to integrate RequireJS with frameworks like Backbone with Lodash and how to add external templates loading with the additional “text!” plugin.

This book is an absolute requirement on the shelf of the serious Front End Developer. You should just stop reading this post and order the book right now :)

Review for “Getting Started with Meteor.js” by Isaac Strack



Nowadays there are plenty of powerful tools and frameworks for building robust Rich Internet Web Applications. On the client side we’ve Angular, Ember, Knockout, Backbone, Kendo, Sencha etc… On the Backend we’ve all the frameworks built on top of Node.js. In this plethora of products and tools that never grow old and renew continuously there is, though, one contestant that is slowly but steadily gaining momentum as it stands, uniquely, as the only solution that seems to bring to the table a product that bridges Back-End and Front-End together in an unprecedented way: Meteor.js

Meteor is a platform that let you write in one single codebase code that runs both in the client and on the server.

I had the pleasure to read the last book from Isaak Strack “Getting Started with Meteor.js”, from Packt Publishing.
You can find more info on the book on the publisher’s site, here and on sale on Amazon here.

I’ve not yet finished reading the book but so far it’s been a pleasure to read and a very strong introductory guide to this fantastic framework.

The book is based on version 0.5.0; not the very latest one (we’re at 0.6.1 at the moment of writing) but no compatibility problems so far (and being before version 1.0 it’s pretty normal to see the version number changing quite often and quickly).

The book is not very long (around 131 pages) but it’s the perfect format for an introductory guide whose purpose is getting you up to speed in not time. It’s impossible not being impressed with the easyness of creating and running an application with a single codebase, front-to-back and you’ll be hooked up in no time since the book throws you into the code since the first chapter (and that’s obviously very good!)

In the book you’ll find everything you need: from practical instructions on how to setup and run the framework, to quick birds eye views on MVC and MV*, how to use templates, deal with a NoSQL Database (Mongo), how to structure your application and publish it on the Meteor.com hosting platform.

Great price tag, great hands-on format and good additional overview on MongoDB as an added bonus.
Highly recommended.

Is Italy the third world of IT ? totally, IMHO


Are you Italian ?
Are you ‘living the dream‘ abroad (I’m in London but I guess it’s not that different in other countries) ?
Are you amongst the ones that never had a passport (because they likely never traveled outside Europe – yes, it’s incredible but it can happen) ?

Well, if you fall inside this selective bunch of heroes then you’re standing with me in this boat.
Today, annoyed by the poor looking outfit of my National ID card, I decided to have a go with the Italian Consulate here in London and finally apply for a Passport (btw, I renewed my ID card only 2 years ago but you know, Italian ID cards are made with what seem to be the most rare, sensitive and perishable material on the planet…)

topmost border of my ID card

topmost border of my ID

So, long story short, I go online, armed with a lot of patience (because I know how it works when you have something to do involving Italians bureaucracy), a huge mug of cappuccino (thank you Costa) and I land on the page of the Italian Consultate in London (http://www.conslondra.esteri.it/Consolato_Londra)

Mmmh.. let’s not even talk about the horrible and almost unusable website; let’s get for granted that I promptly spot the link that ask me to book an appointment for the application for a Passport.

Clicking the link (button) I get to a beautiful (I’m joking here, of course) page that asks me to login (if I’m already registered in the system) or register (if I’m not). I’m falling in the second category, so without further ado I fill in the registration form, the security captcha and click on “Confirm”.

First hiccup: after a page refresh a beautiful and lonely message, almost lost in the negative white space of the page, tells me that an error has occurred :(
C’mon, no reason to be pessimistic, errors happen and no software system is immune from errors. With the best positive attitude, I get back to the registration page and fill again all the info (and the security captcha). Time to have another go with the “Confirm” button and…

Second hiccup: a message tells me that I’m already registered!

already-registered

Already registered ??

Ok, I didn’t see this coming! Anyway, still trying to maintain a pristine innocence, I assume that the registration process didn’t probably go “that” bad as I was thinking. Maybe there was some problem in the complex, unimaginable workflow happening behind the surface but the registration of my data went OK (as this message seems to imply).

Ok then, it’s just a matter of getting back to the previous page again (where the registration form was located) and choose, this time, to fill the “Login” form (located above the registration form).
Super easy and It takes me just a sec: insert the email (the one I provided in the registration form and the one the system tells me is “already registered”), the password I chose when registering, the familiar security captcha (OMG how much I hate captchas!) and press the promising and full of expectations “Login” button and…

The conundrum: This message leaves me puzzled… “Unkown User”

not-registered

WTF ? User Not found ?!?

Wait, am I losing something here ? “Unknown User” ?? How can I be “registered” and “unknown” at the same time ?
It’s like being trapped into an impossible space-time paradox; it’s being existing and non-existing at the same time.. I cannot register because I’m “already” registered.. but I cannot login because I’m not registered….

Dear Italian Consulate, who writes the efficient and robust online software that you proudly exhibit on your website ? Do you really understand how old-fashioned, horrific, unusable and essentially useless is the so-called service you offer to your fellow citizens abroad ?

That brings me to the question on subject: “Is Italy the third world of IT ?”
I don’t even have to answer the question; the answer was already in my mind years and years ago and was one of the (many) reasons why I decided to leave that miserable country.
Sure, software systems like the one used in the Italian Consulate already speak by themselves ;)

Thank you Italy for reminding me, every single day of my life, how lucky I’m to be away from you.

Review for Javascript Unit Testing, by Hazem Saleh


Book CoverIn a world where Web Applications are moving away from a Backend centric page-refresh development model and more and more toward the development of full Rich Client Side applications, Unit Testing is becoming one of the pillars for developing robust and resilient code on the client side.

Not confined anymore only on the server, Unit Testing tools and techniques are becoming widespread and renown for the Client Side Javascript developer. Beside the world of Backend development, where Unit Testing has always been relatively straightforward to implement, tesing on the Client is definitely another ball game; there are a lot of libraries to choose from and a lot of complications and issues to face (testing asynchronously; testing UI interactions and flows etc..)

The book from Hazem Saleh, published by Packt Publishing (http://www.packtpub.com/javascript-unit-testing/book) doesn’t aim to answer all the questions of the developer facing JS Unit Testing but it helps in choosing the right library for the job.
The book is an overview of some of the Client side Unit Testing framework around. Sadly, It doesn’t provide you with a solid overview on how Unit Testing can fit into a broad Continuous Integration environment, nor help you understanding how to configure a development environment that can be “driven” by Unit Tests (on the contrary, the author writes the code and THEN the tests).
Another downside of the book is the presence of an heavy-weight Java Web Application Server to form the background of the application to test. That’s an unnecessary burden that could’ve been easily avoided mocking up the Backend (providing thus some hints on how to mockup dependencies on external systems) or using static JSON files (or a lightweight Node.js implementation).
The Chapter about JsTestDriver is quite useful; it could’ve been nice to review Testacular, that represent a more up-to-date and mature version of JsTestDriver (and is the de-facto testing framework for AngularJs application).

Despite those shortcomings, the book is still a decent resource to quickly get an overview of how popular Client side Unit testing frameworks work and how to quickly approach them.

In the overall, a nice and informative reading.

Review for Sencha MVC Architecture, by Ajit Kumar


In the last few days I’d the pleasure to read the last book by Ajit Kumar, “Sencha MVC Architecture“, published by Packt Publishing. It’s available on Amazon at a very affordable price.

Screen Shot 2012-12-03 at 19.51.45

It’s a short, dense fast-track to developing modern MVC applications with one of the most renowned MVC Frameworks around.

This book is not intended as a one-stop place to go to learn everything about such a complex and big Framework as Sencha; It’s more of a quick, step-by-step tutorial for who’s interested in delving for the first time into a complex framework; Differently from other beginners book on the subject (and that’s where the book shines), the books focuses on applying the MVC paradigm to development, right from the start; No unusable and unrealistic ‘example’ code that you won’t be able to apply to any real case scenario. In the overall it’s a great starting point, that will greatly help you delve into the huge API and complexities of a very powerful framework.

The book is a really well written, concise, and to the point explanation on how to approach development of complex applications with the powerful Sencha framework.

A good thing about this book is that it takes into consideration both the Sencha (ex Ext.js) Framework for Desktop applications and, at the same time, glances over Sencha Touch (the mobile-specific brother); in a bit more than 100 pages the Author is able to provide the reader with all the necessary informations to effectively build a complete application.

The first part of the book is devoted to the creation of a small CRUD MVC application; both the Desktop and the Mobile version are provided; just a few lines of code, well explained; a perfect teaser for what is to come.

The central part of the book is devoted to a thorough explanation of the core principles of an MVC architecture as implemented by Sencha; for each layer (Model, View, Controller) the differences between the desktop and the mobile version of the library are highlighted and explained.

The final part of the book covers briefly concepts of class-based development, lazy loading, modular architecture and build system; you’ll be delighted by the amazing amount of information crammed into a very small and easy to digest amount of pages.

If you plan to work with Sencha (Desktop or Touch), this book is an absolute must.