Sorry to say that there are currently no specifics of Meteor 1.3 covered. Should we do a second revision we'll certainly include those.
Thanks for the feedback. Unfortunately we cannot change the book content, but if we do a second revision we'll make sure to find something longer lasting.
You can also do pull requests for the book code on GitHub and we can incorporate this, that way you also get credit (if you want smilie
There are some code lines left out for brevity in the book. Have a look at the code in the github repo to understand how it works.
I removed _id from the validFields array to avoid confusion.
Caught it. Will fix.
We'll fix this. Now it is darker and lighter boxes.
Thanks, will take care of the fix.
Thanks, good catch! Also the productlist is in fact supermarket. I'll try and squeeze it into the final pages.
You are right, watered makes more sense. status is a relict from an earlier draft.
Granted, what goes where is one of the most confusing aspects of Meteor. It's tough to decide what to introduce when without overwhelming the reader. I guess in your case we could have improved with some clear callouts that clearly refer to the part of the book where we discuss structure. I'll see whether we can still get any updates into the prints - we're getting really close to finish now.

Either way, thanks a ton for your feedback!
Thanks, we got this fixed in the upcoming graphics. All images have been re-drawn for the upcoming release.
Thanks for bringing this up. Let me check what options we have to make this clearer. As you may know the book is already in the production stages, but smaller changes can still be squeezed in smilie
it's pseudo code. We should probably mention this more clearly.
339213 wrote:Can you please refer someone who I can contact and get it done?

Hi Siva,

I have no particular person I could contact for that - the best option is to use the support contact form at

Let me know if it works for you!
Hi andersr,

first off, thanks a lot for your feedback - it is really helpful!
To me it sounds as if the general issues lie only with chapter 4 and 5, do you find the later chapters better again? I know you stopped reading at section 5.5 but perhaps you can peek ahead smilie

I partly agree that it seems odd to start out with editing and then having two chapters on similar things. Our intent is to gradually increase complexity and separate the CRUD from the actual usage to take the reader on a learning curve. Apparently we need to communicate this better.

I'll see how we can best apply your feedback into the book.
Thanks again for telling us!
andersr wrote:Toward the end of the section, you talk about how there is “no more need for a compound ID mashed up of house ID and plant color as you did previously” which is all good and well, but only show adding data-index="{{index}} to plantFieldSet while still using data-id="{{../_id}}-{{color}}" in plantDetails.

I hope
will come (see this PR)and make the indexing superfluous, but probably it will not be available before we go into print smilie

The index must have slipped through when we rewrote the chapter, I will check that the plantDetails index is correct.

I'll revisit this section.
Personally, I am not an expert in e-commerce. But Sara Hicks and Aaron Judd are, and they see Meteor as the perfect fit for building a modern e-commerce platform. They started Ongoworks and Reaction Commerce (see and published several packages for Meteor. That said, they are even quoted in chapter 1 of Meteor in Action smilie

Anyway - for building shopping carts and doing promotions and target individual customer needs proactively, the reactive nature of Meteor appears to be a major benefit. Try out your own shop at Best of all, Reaction Commerce is an open source product, so you can even look at its code.
Short answer:yes. This book is based on the latest version of meteor as of today.
yoonghm wrote:Page 29

All products their current location will be stored in a MongoDB database, so we need to define a database connection.

Fixed in the latest run.

293486 wrote:There is a error message in 4.3.1 just above Listing 4.5 (probably a render process error)

Hopefully fixed with the next MEAP - at the latest with the print version (more eyes proof read it smilie
Did you add all the CSS to your application?

As you can see with the live version it should place things inside (and not on top) of the fridge.
Spoiler alert - We will not get an entire chapter on testing into Meteor in Action. The contents are now fixed and production preparations have been kicked off. I have reworked the testing section in chapter 12 a bit, Velocity with Jasmine and Cucumber would be my suggestions.

Cucumber and Jasmine are fortunately not Meteor-specific, so you can use the generic documentation to get started. Unfortunately I am not aware of any books that teach those JS testing frameworks in more depth. I know that Sam Hatoum gives a good overview (and sufficient depth) in his testing meteor book.
Passenger will not make it into this book, but it certainly looks interesting from the first experiments I did with it. Since personally I am going down a Docker/Meteor cluster/HAProxy workflow for the next project it will be a while before I can take a closer look at Passenger.
Perhaps Manning is interested in a book on Passenger - or possibly even a broader scope of devops related options for going into production. I think such a general book is sorely missing from the shelves today, but I am not sure if there is enough demand for a book that covers various deployment options and compares them. Seems more targeted at CTOs than most developers...
Glad you like it smilie
We already noticed and fixed this graphic - figure 1-8 will include step 2 in the next update!
All GitHub repositories are updated now, the previous ones are renamed as deprecated-*. Please note that several repos have been enhanced in terms of functionality. For the time being MEAPv9 and the repos will be out of sync, but all chapter texts and listings have been aligned with the code present. I expect the next MEAP version to restore balance to the universe by aligning the book contents with the repos.
It's selectedHouseId in chapter 4 now as well.
Just a quick note - since we are content complete now and only polish things as we get closer to the final production stages we are cleaning up the GitHub repos. That means the existing ones will be marked as deprecated and deleted in a couple of days when the freshly set up repos are done.
This means all your issues, stars, bookmarks and what else will be gone.

The new GitHub repos will also not use branches to structure code by chapter sections, they will only use tags for the beginning of a chapter and each listing. See chapter 8 as an example:
Puuh, as much as I'd love to bring this topic into Meteor in Action I think it would go beyond what we can fit into it. This is quite an advanced technique but I am certain this could be handled in a blog post in the not-so-distant future smilie
Actually I intend chapter 5 to illustrate the mind change required to think about reactive editing interfaces. Most devs I have met that came into contact with Meteor still try to put their DOM-skills into action when working with UIs. While it certainly works it is not the easiest way and rather cumbersome. The fact that Meteor does reactive wiring for you and the old-thinking will conflict with each other and - from my experience - developers need to be made aware of how little they should actually do smilie

In chapter 4 you learn how CRUD works and it aims for quickest results and a simple scenario. Chapter 5 takes it a step further and readers will not only need it for high-volume scenarios but for all.

That said - do not ignore chapter 5, it is there for a reason smilie
Thanks a lot for your kind words, we are very happy about it smilie
I am no sure we will be able to squeeze in a modal for one of the examples in the book. I will try and at least have one in the code samples, but it is not very complicated.
I assume an example using Bootstrap modals is what you are looking for, right?
I checked and apparently upsert works as designed:
Either way, thanks for the report and code, I have updated chapter 5 with the working code and an explanation.
Thanks for reporting it, that one looks nasty indeed. Apparently something wrong with getting the proper value from the select object. Give me a bit to look deeper into it.

Also I'm happy you enjoy the book so far smilie

UPDATE: Just saw your update. I think this may call for a feature request(?) on Meteor to update the behavior of upsert smilie
I'll consider this...
Thanks for reporting this. I just checked and our amazing copy editor has already squatted this bug in the latest edition, so be assured this will be fixed soon smilie
We will not cover any deployment options on Windows hosts, if that is what you mean. Meteor is still based on Node.js and it is a very rare use case to deploy Node.js to Windows machines.
The installation appendix will probably get some love to mention the new 1.1 installation procedure, but that's about all we plan until we go into production.

PS: Did you change title and entry for this because I got a forum notification about grammar and found Windows smilie
The entire chapter 5 was changed so that all related to ReactiveVar is gone now. Also the bad language you mentioned is a thing of the past smilie

My mistake, this is chapter 4 and you are right. Will be fixed soon smilie
Section 9.3 explains how to use NPM with either meteorhacks:npm or creating a package.

There are basically two ways to add a NPM package to a project. The first is to wrap the NPM package into a Meteor package, which is usually the better approach. [...] The second approach is to use the meteorhacks:npm package that allows you to use a packages.json similar to plain Node.js projects.

I think we covered part of the topic you bring up already. Is the issue perhaps when using meteorhacks:npm with demeteorizer? I need to try this out, I have to admit.
Do you mean the result what the template renders to? Otherwise the missing JavaScript is in Listing 3-3, so a reference that these two go together could be helpful enough already. What do you think?
Thanks so much for your kind words, I am so glad you like the book smilie
Also the second step will be added to be graphic, I promise!
Hey meonkeys,

funny thing, but this is actually not a typo smilie

See this link

By default, meteor uses both inotify/kqueue and stat polling, with a polling interval of 5 seconds; if it detects that inotify/kqueue isn't working, it uses a polling interval of 0.5 seconds.

Would you suggest we change the wording so that it is clearer?
I lied, it's fixed in MEAP v8 smilie
MEAP v9 will have an updated chapter 12 that mentions a bit more about Velocity in 12.1.2, but not a whole lot. This is because the entire testing chapter would else be much bigger and the frameworks used for testing Meteor are mostly useable for anything JavaScript (like Cucumber, Mocha, etc.).
It didn't make it into v8, which was published yesterday but will be available with the next update.
Changed in MEAP v8, but it is actually 2.5.2 now.
Fixed in MEAP v8.
MEAP v8 has all the changes mentioned. You can download it from your account page.
Good point. I'll see if we can still get it into chapter 4 or if we get it into 10 somehow. But I agree, this is a topic worth mentioning.
I hear ye - we already have something in place. Alas it is so complicated we need to document it. (plus we will restructure the code repos once we finalize the contents).

Each repo has several branches that correspond with the sections of a chapter. So if you're in chapter 7 and start section 2 you will want to start with the outcome of section 1. That can be found in the s01 branch:

Currently some of the repos are a bit more messy than others because of changes to the code (and having the branch structure is more work and we don't want to redo it with every change).

So, bottom line, we have something in place for you and we're open to all suggestions to make it more accessible. Using branches for starting points and intermediate results is not really self-explanatory, so there will be an appendix on how we thought it should work.
Glad you find the book helpful smilie

Regarding chapter 5 - there is a whole rewrite coming that removes Reactive-Var altogether. We have factored out a (short) explanation of ReactiveVar to chapter 4 and rely on local collections in the new chapter 5.

The difference between Session and ReactiveVar is rather quick to explain. Let me know if the next MEAP update with a revised chapter 4 helps you understand or if it is still lacking.
Right, that's what we meant - updated the manuscript.
Thanks for mentioning it!
You are not missing anything - both variants work well. We decided to use the slightly more verbose approach to indicate that we're dealing with jQuery functionality here.
Added a remark in the chapter to be included in the next MEAP update.

Edit After sleeping on it we will use your code instead - it's much shorter and less confusing. Thanks again for bringing it up! It's much appreciated
You are right - I mixed things up.
Thanks - I am not sure about the performance aspect, but certainly when we originally wrote the code
wasn't around.

We will revisit all source code shortly and make sure to take advantage of the latest features of Meteor. In the meantime we are more than thankful for these kinds of reports. I think it indeed helps to make the code more approachable and show the Meteor way.
Good point! That should make it into the upcoming v8 release of the MEAP smilie
Today we published v7 of the MEAP which includes a chapter on Isobuild. It covers Meteor's build process, debugging and using the server side shell, and creating mobile applications using Cordova.
With MEAP v7 that was published today all reported errata have been fixed except these two (will follow in v9):
63656 wrote:In section 1.1.2, change "even if it is goes beyond" to "even if it goes beyond"

Figure 1-1, change "MondoDB" to "MongoDB"
V7 of the book was published today with an update to the USING SQL AND ALTERNATIVE DATABASES section that mentions community packages as a solution to interact with SQL databased. However, we still list it as a disadvantage.
Version 7 of the MEAP was published today with a remark on using
in the server environment.
We just published v7 of the book.
Changed the example (now using a sidebar widget instead of a purple box). That hopefully clears things up.
v7 is available and copy-paste-relicts have been cleaned up.
We just published v7 of the MEAP with a chapter called Isobuild (chapter 11). It contains a section on creating mobile applications using Cordova.
I believe it has enough content to get you started, otherwise the Cordova in Action book (also currently in MEAP) seems like a great companion book.
No worries - you made an absolutely valid point.
We need to be more obvious about what a reader has to do in order to follow the examples. If it confuses you it may confuse others as well.
In version 6 this is gone. Let me know if you spot it anywhere still. All copy-pasting sloppery should be cleaned up now.
Hope this doesn't sound too strange, but it's a feature, not a bug smilie
Check page 109, just before 5.3 Enhancing the houseForm...
  {{> houseForm selectedHouse }}

We are including the template and pass selectedHouse as the data context, so no need to use with.
Both work, however, so you can do it either way.
Thanks for bringing this up - we are actually in the process of wrapping our heads around some coding standards and jshint'ing the entire book's code for better consistency.
I suspect if other books behave well that this might be fixed in the final production stages. If that does not work, we must get some technical Manning folks on board, I know only Meteor smilie
The new helper name is now
to indicate it holds a variety of houses and their name and Id attributes. Plus a footnote explains that it will become more efficient a bit later in the chapter smilie
Thanks, I will look a bit more into this and rephrase the section.
You are right, it's not optimal yet.
As said here there will be some major rework to this chapter.
I admit I am not happy with the overall tone of chapter 5, trying to somehow re-work the entire bit, plus adding your remarks. It just feels a bit clumsy compared to the previous chapter.
Glad you found it was a useful name smilie
Excellent suggestion, will add a note.
Thanks for the suggestion, I'll try and fit this into the chapter.
You spotted one of our copy/paste errors. While re-arranging content this got duplicated. Will be fixed in the next update
Well spotted, we need to clean this up. Will be fixed in revision 7
We are covering Cordova apps in the chapter on Isobuild, but we do not go into all details and only focus on main packages. There will be no grounddb for example.
Anything you are looking for in particular?
Good point!
I am still hoping that MDG will get their Windows port finished before we finalize the book, so eventually we can probably get rid of the vagrant aspects in their entirety. For now I will see how to best add it. Thanks!
Glad you like the book smilie
The intent is to actually have two independent instances - editObject and reactiveHouseObject. Changing editObject should not affect reactiveHouseObject unless you explicitly store it back into the reactive var.

I will revisit the chapter and make things clearer in one of the next updates.
Thanks for bringing this up!!

I must admit I am not 100% sure what the contexts are you refer to. MiniMongo is actually something inside the browser. At the end of the day the mini database runs inside the browser and memory is allocated to the browser, so technically it is inside the browser memory that runs on the client computer.

C is not clear to me - can you re-word what is the mistyping perhaps?
Regarding what runs where and browser internals. I have put it in the latest draft of chapter 1, so it will be in the book.
Generally speaking, your Meteor app is always inside the browser context. For security purposes it may not escape the browser and go wild in your system. Hence, every aspect of Meteor lives inside its own dedicated "prison cell". This includes the minimongo database.

We do not address different browser types and internals or what effect it has on a Meteor app. We stop when we say you need a browser to display the client part of an application. Unfortunately I know too little about Dart to make useful comparisons.
You are right - a typo smilie
Fun fact: we have hidden 528 typos throughout the entire book to keep readers and editors busy for a special easter egg challenge smilie

Just kidding, but I am sure there are several typos still. Once we get the content complete and ironed out all bugs the final and finishing touch will be an insanely thorough spell check.
Thanks for bringing this up, will fix this, but there will certainly be many more until the final round of proof-reading.
Absolutely - keep annoying me with your questions. Eventually the book can only get better that way. And we aim to deliver the best possible learning book resource on Meteor smilie
Chapter 1 was completely rewritten to (hopefully) address all your questions. Minimongo is similar to a key-value store. It is like a JavaScript program executed inside your browser. Effectively it is part of the application.

Blaze is the essential UI library for Meteor. There are ways to exchange it for something like e.g. Angular or combine it, but why would you? smilie
Blaze takes care of the entire UI for you.

I hope the new chapter gets released soon, probably before Dec 15th if we're lucky.
Thank you, I have added this to my list for the next update to chapter 2.
Just put the finishing touches on chapter 4 - working with data. You can already find the code on github:

Probably we need to take section 4.5 and make it a dedicated chapter about using full reactivity and two-way data binding with core Meteor. Let me know what you think.

I hope we will be able to update the book for Meteor day.
Hi Ralf,

thanks for your feedback. We will revise the entire first chapter, but I am not sure we will actually get rid of a real world example to explain the blocking concept. The cloud concept is probably a bit misleading, but distributed computing (our contender) is also already taken smilie
The idea to use the word cloud actually comes directly from the creators of Meteor.
Hi Ken,

thanks for listening to the podcast and for purchasing the book smilie

Eventually you will find all code as a download from the manning page but also on github for better usability (tags for various stages)
We should make this a bit more visible I guess.

We'll also streamline and adjust code and writing as we refine chapters. The first drafts are a bit rough and may differ slightly from the actual code sometimes, but we try to stay on top of it and fix everything with the next release of the MEAP.

I'm gonna check the fridge chapter, the intent is that you actually have the collection defined so browser inserts should work already. We aim for step-by-step instructions.

Thanks again, Ill head back to the next drafts smilie
Made lots of improvements to chapter 3 (and 2) this weekend. Also I made sure all code examples in the book and the repo align properly. You can find the code today on github and the updated PDF with the next MEAP update on or before Meteor Day (6th of November 2014).
Hi Jwjb,

first off, thanks a lot for your kind words and your feedback. Indeed I think most of the book production issues you mention will be resolved once we get closer to the actual release (links working, etc).

Re 4.: using /bin/sh vs sh is that one expects the sh command in a very specific location ( in the /bin folder) whereas the other expects sh to be available from the command line with automatic resolving which is the right sh by using the contents of the PATH env variable. Functionally, there should be no difference.

5. We will need to rework several paragraphs when 1.0 materializes. Until then we can only play catch-up and we'd like to only do the updates once, so 1.0 will be the baseline and expect every part of the book to be updated to reflect the actual behavior of Meteor then.

6. Great suggestion, I'll see how we can include it in one of the next drafts.

Now I gotta get back to work on the reactive data chapter smilie
I'm thinking about a better term than "cloud platform", but without success so far. You are right that "the cloud" is already associated with certain characteristics and most people don't think about a multi-node environment.
I'm open to any suggestions how to make this more clear, perhaps I'll find something on my own. I am confident it'll be less confusing after the next draft.
All reported issues have been fixed, will be in the next MEAP update.
All codes were revisited, those pesky characters word inserted instead of proper quotation marks and much more was fixed. Until you get the updated PDF you can find the code on Github:
At a later time I have planned an overhaul of chapter 1 - there are some optimizations on my list already. Getting Yoda-speak-passges re-phrased just made the top of my list smilie
Agree. However, the entire topic of testing is really not as stable as it should be for us to write a dedicated chapter about it. Perhaps we add something later, but I do not want to make any promises we cannot keep.

As of today (9/9/2014) Meteor is using Velocity as its official testing framework and it is not yet ready for Meteor 0.9:

We will definitely include some information about testing in the book, especially in the context of the packages chapter, but whether we want to dedicate more room to this topic depends on timing and availability of Velocity. We do not want to stall the book due to the testing topic which is in flux quite a bit (and no one benefits from outdated content in the book).
I'll keep you posted on how much we will eventually include.
Looks like Meteor 0.9.4 will bring official support for testing with Velocity from the command line tool. I think we will find a way to get it into the book smilie
Hey rmeister,

you can easily see which chapters are available from the book page. In the table of contents all chapters that are already available have a blue AVAILABLE added to their name.

As of today we have only the first (free) chapter and the second chapter online. Chapter 3 is under review as we speak and will follow next.