Mastering Web Application Development with AngularJS Book Review

My journey to using AngularJS (NG) was quite raw, relying entirely on the online
documentation, API documentation, blog posts, Google group, and stackoverflow
links. Surely, not unique, but definitely lacking in some ways since the NG
documentation is notoriously brief when you get to the “rich” (aka hard) parts.
After 6 months hacking on NG apps, I got really curious about what “the experts”
had to say and this book seemed to fit the bill.
The first thing that struck me is that the book is not meant to be your first
introduction to web application development of any kind SPA or not. All dev
topics are given some coverage, but it is pretty clear that the authors are
master NG users, so be aware before purchasing it. Topics about how to utilize
NG functionality, debug performance issues, and also optimize them reveal a
solid and in-depth understanding. Although they are at the learning-arc where
they grok it, they are still on that path, and the result is copious amounts of
code in some areas in an attempt to “make the point”, when teaching the point
would have saved a lot of time and space. At times there is a lot of fluff
and over-speak, seemingly meant to blow up the page count, and I blame the
editors for that.
There are many lovable things about this book but I’ll focus on the top two.
First, the book covers real world issues. The build process, authentication,
authorization, build and deploy, artifact management, dependency management,
project structure, and testing are covered in depth. If you want to maintain
your sanity, this book is priceless for the topic alone (experienced developers
will already know all this, but listing the best of breed tools is still
helpful). Second, the authors have a passion for the technology, and that comes
through as they get into relatively under-taught topics like the engine that
powers NG and what you need to know to keep your apps performant. That is
really one of the most interesting things that this book reveals: NG makes
simple apps easy and impossible apps possible, but with a price, you must grok
the engine. Dev teams that laze-out and “wait until we need to” learn how the
guts work will suffer accordingly due to the non-obvious interdependencies of
the event structure inherent to the technology. Their explanation of
transclusion warrants purchasing the book, seriously, no one else seems to truly
understand how to explain the feature (or I’m too dumb to grok the API docs).
The formatting on the Kindle is super. The book is oddly overly simplistic
offering poor coding styles in some parts and extremely amazingly over technical
in others. The coverage on forms is better than everything else out there, and
yet at the same time doesn’t seem to cover reusability of validation and data
models across the enterprise. The chapters on directives are quite nice, and
helps you to “think different” about what it means to serve your client, and
your team using the tech. Pages and pages of code samples could be summarized
with eloquent teaching, but everybody has deadlines so I get it.
_Mastering Web Application Development with AngularJS_ is a delightful book. It
tackles what you will eventually learn on your own. It is kind of like being
able to sit with a NG master and brainstorm with them and listen to their war
stories turned lessons. It is for developers who have been around the block a
few times though, so start elsewhere to learn HTTP, CSS, JavaScript, Async
programming, multi-threaded programming GUI programming, and architecture before
diving into this book. If you grok a functional programming language like
Scheme, and a declarative programming language like CLIPS, then you will
appreciate the amazing and awesome power of AngularJS even more. Thanks for the
great book. 5/5

Angular Unstable will be in Bower Soon

Tried to install AngularJS unstable today via bower and followed this trail:

to find that Bower currently doesn’t support unstable releases due to a versioning issue, but, they will soon.
In the meantime, Michael Ahlers went above and beyond to provide an alternative here.

Flow Control in Selenium IDE Scripting

Adding to the Selenium IDE’s already awesome “save your behind in every kind of situation possible” behavior, here is a plugin that adds the flow control constructs that are so sorely missed from the base language. This is a powerful, powerful addition that makes some horrible tasks… bearable.

Whalesong: a Racket to JavaScript compiler

Whalesong is a compiler from Racket to JavaScript; it takes Racket programs and translates them so that they can run stand-alone on a user’s web browser. It should allow Racket programs to run with (hopefully!) little modification, and provide access through the foreign-function interface to native JavaScript APIs. The included runtime library supports the numeric tower, an image library, and a framework to program the web in functional event-driven style.

Javathcript

kybernetikos shared with me a link to his Lispy language implementation on Javascript:

Javathcript allows you to script your web pages in a simple lisp variant. Once you include Javathcript.js, any script tags in your document with type=”text/lisp” will be evaluated. It will also download lisp files (only from the original server), if you have a script tag that has a src attribute. Finally, you can also evaluate lisp code from javascript using Javathcript.eval(lispString).
While it is not an exact implementation of any pre-existing variant of lisp, if you know lisp most of it should be familiar. If you don’t you might find it useful to follow a tutorial, e.g. this one. There will be differences between this implementation and others, but there is also much that is common.

It has more features than are shared in the blurb.
Looks pretty neat; check it out!