at Microsoft.VisualStudio.TeamFoundation.PCW.ProjectCreationEngine.RunTask(Object taskObj)

A noteworthy piece of background is that I was actually re-creating a deleted project on our test TFS box. Essentially we’re running migrations which requires iterative creation, testing and deletion of projects. So the project I was trying to create (fictitiously called TestProject above) used to exist on the box, but was recently deleted. I was creating a project with the same name. Apparently project details are being cached locally (it stands to reason), so once I deleted the TFS project on our test box and tried to recreate it from Visual Studio, Visual Studio got confused.

Friday, March 21, 2014

The Douglas Crockford JavaScript Master Class is a 14 part video series (running almost 6 hours in length) recorded in 2009. In the series, Mr. Crockford, long-time JavaScript developer/speaker/writer, the creator of JSLint and commonly recognized as the father of JSON, provides a deep-dive into the JavaScript language. Along the way he often leverages his insight to provide relevant historical references, explaining how language features evolved, where W3C members took divergent routes and why so often we end up writing different code for different browsers. While it’s a matter of taste, and some people prefer only technical content, I found the historical annotations to be deeply interesting and beneficial when arguing for or against the use of a specific language feature or construct.

The series begins with an overview of the language, before moving onto inheritance (pseudoclassical, prototypal and functional), the DOM, security, JSON and other and other higher level mechanisms.The technical content is excellent and I probably know more about the JavaScript language (warts and all) than I ever wanted to. Mr. Crockford is clearly an expert in his field and, unlike many other authors on the subject, he is often prescriptive in his approach. Throughout the series he is explicit in his guidance, telling the viewer which language constructs should be preferred and which should be completely avoided. In an industry where “it depends” is a common refrain, I found this very refreshing. It is also very beneficial to hear definitive instruction for a change and he even identified a few bad habits that I’ve picked up over the years that need attention. While the content could easily have been dry and boring the speaker possesses a sardonic wit, dishing out admonishments when required. To his credit, he never falls into the trap of becoming a Microsoft-basher. He’s pretty even-handed throughout and doesn’t pull punches when talking about any browser vendor, language designer, W3C or even himself.

There isn’t much negative I can say about this video set. The videos were recorded in 2009, therefore some content is a little outdated. That said, the videos focus on core language concepts, not breakthrough technologies so, for the most part, they are no less relevant today than 5 years ago. Because the videos aren’t as recent the quality of video is not as crisp or clear as more recent O’Reilly offerings. You won’t miss anything, but the difference is noticeable if you’re a fan of O’Reilly’s products.

I’d recommend this series to just about anyone developing web-based applications. Novices will learn quite a bit about JavaScript fundamentals and pitfalls to avoid throughout their careers (the more I think about it, the better a foundation this course seems). More advanced developers will undoubtedly learn some new tricks or, more likely, fix some bad habits.