Skip to main content

Book review: Sproutcore Web Application Development

TL;DR: Sproutcore is a huge framework, and this book will save you a lot of time (and headaches). Buy it.
Disclaimer: this is a review of a free copy that Packt kindly sent me.
SproutCore Web Application Development cover

Win a free copy of this book, scroll down to know how to participate!

If only I had this book 3 years ago!

3 years ago I started developing a Sproutcore app as a learning experience and, in all honesty, the path has been rough. Sproutcore is a massive framework with lots of features: some are well documented, some mentioned casually in the guides, some others...well you don't know they are there until you start reading the code or chat with one of the more knowledgeable devs in IRC.
Documentation has always been an issue for Sproutcore but now, thankfully, there is a book. If I had this book 3 years ago I would have gotten much quicker up to speed and the code base would have been (much, in fact) cleaner (and smaller!).

Sproutcore Web Application Development covers all most important areas of Sproutcore: installation, concepts and getting started, key-value-observing, the model, view and the controller/states objects, styling, domain objects modeling and using a data source to fetch them from a server, and, last but not least, deployment.
Sometimes Tyler will highlight a specific feature when it can be generally useful. For instance in Chapter 2 there is a whole section dedicated to mixins and how they can improve code sharing and reduce duplication when classical object inheritance cannot be used.
In other cases he provides guidance on avoiding common pitfalls, as in the chapter on statecarts.

Code fragments are always clear, coincise and generally well-written. I have not tried following through an example but I am quite sure it would work on the first or second try. Tyler is a rather gifted coder and I suggest you check out his github account for more Sproutcore resources.

One thing I would like to suggest is that in the future the source for example apps was made available through github or another public repository for easier checking out. As of now the code for the Contacts app is only available from the PacktPub website as a ZIP archive.

The book does not cover: routes, outlets, theming and some lesser used views or, to avoid unnecessary duplication, topics already documented in the guides.

Straight from the source: the author is the current project lead, the reviewers are or were prominent members of the community.

Absolutely recommended for beginners and heartily recommended even for medium-advanced users (as I would define myself).

Win a free ecopy of the book!

Readers would be pleased to know that Packt Publishing graciously offered to organize a Giveaway of the SproutCore Web Application Development book and three lucky winners stand a chance to win a free ecopy. Keep reading to find out how you can be one of the Lucky Winners.

Book Overview:
• Use SproutCore’s object model to organize code into classes, subclasses, and mixins
• Observe and bind properties across the code for efficient updates and error-free consistency
• Structure code and separate responsibilities using client-side MVC
• Define and build the user interface of extremely complex applications using SproutCore’s view library
• Interact with remote data sources and model and store data in the client for immediate use
• Connect an application together without messy, bug-prone controller code using SproutCore’s statechart library
• Combine all of these skills in a repeatable process to create production-ready software
• Test and deploy SproutCore applications

How to Enter?

All you need to do is head on over to the book page (SproutCore Web Application Development) and look through the product description of the book and drop a line via the comments below this post to let us know what interests you the most about this book. It’s that simple.

Winners from the U.S. and Europe can either choose a physical copy of the book or the eBook. Users from other locales are limited to the eBook only.


The contest will close on Jan, 7 2014 PT. Winners will be contacted by email, so be sure to use your real disqus account when you comment!


Popular posts from this blog

Indexing Apache access logs with ELK (Elasticsearch+Logstash+Kibana)

Who said that grepping Apache logs has to be boring?

The truth is that, as Enteprise applications move to the browser too, Apache access logs are a gold mine, it does not matter what your role is: developer, support or sysadmin. If you are not mining them you are most likely missing out a ton of information and, probably, making the wrong decisions.
ELK (Elasticsearch, Logstash, Kibana) is a terrific, Open Source stack for visually analyzing Apache (or nginx) logs (but also any other timestamped data).

From 0 to ZFS replication in 5m with syncoid

The ZFS filesystem has many features that once you try them you can never go back. One of the lesser known is probably the support for replicating a zfs filesystem by sending the changes over the network with zfs send/receive.
Technically the filesystem changes don't even need to be sent over a network: you could as well dump them on a removable disk, then receive  from the same removable disk.

A not so short guide to ZFS on Linux

Updated Oct 16 2013: shadow copies, memory settings and links for further learning.
Updated Nov 15 2013: shadow copies example, samba tuning.

Unless you've been living under a rock you should have by now heard many stories about how awesome ZFS is and the many ways it can help with saving your bacon.

The downside is that ZFS is not available (natively) for Linux because the CDDL license under which it is released is incompatible with the GPL. Assuming you are not interested in converting to one of the many Illumos distributions or FreeBSD this guide might serve you as a starting point if you are attracted  by ZFS features but are reluctant to try it out on production systems.

Basically in this post I note down both the tought process and the actual commands for implementing a fileserver for a small office. The fileserver will run as a virtual machine in a large ESXi host and use ZFS as the filesystem for shared data.