Sunday, March 31, 2013

Review: Strata Conference New York + Hadoop World 2012: Complete Video Compilation

March 31, 2013 Posted by Jason Irwin , No comments

Disclosure: I received a review copy of this title from O’Reilly

Strata Conference New York + Hadoop World 2012: Complete Video Compilation

This set is without doubt my favorite set of O’Reilly videos to date. If you’ve read my earlier reviews you’ll know that I’m a big fan of O’Reilly’s videos and conferences. What differentiates this set is that combines the usual diversity of topics from a good tech conference with numerous deep dives - groups of videos with 4 or 5 titles in the set that dig deeper into a specific subject.  As with previous O'Reilly content that I have reviewed, the production quality of this set is amazing. Video is high definition, sound is crystal clear and, while not cheap, at a whopping 107 hours the set is very reasonably priced at $400.

So far some of my favorite talks have been:

 An Introduction to Hadoop – Mark Fei

This talk demonstrates everything that is great about this conference and video set. In this 4 part introduction to Hadoop Mark Fei does a great job of introducing MapReduce, core Hadoop and hdfs and providing a high level overview of the many acronyms of the Hadoop ecosystem. This was my first real exposure to Hadoop and Mr. Fei provided enough information to get me excited about the technology as well as the requisite knowledge to get me started. The speaker did a great job, clearly and thoroughly covering the content and it was quite an enjoyable watch. The down side of this series of videos is that the speaker is constantly interrupted with questions. To his credit he did his best to defer these questions until the end, but at times the content became a little disjointed as the in-person audience fired their questions at the speaker. Questions are to be expected at a large tech event and in this case the quantity of questions only serves to highlight the current popularity of Hadoop.  This really isn’t a big complaint but it was the one negative in a really good video series.

Moneyball for New York City – Michael Flowers

I loved this talk. It’s completely different from most talks I’ve seen.  In summary it’s a very quick non technical talk about a skunk work in New York City’s mayor’s office. Mr. Flowers provides a fascinating look at a real world scenario where the Office of Policy and Strategic Planning’s Analytics Unit successfully leveraged disparate real world data to more efficiently deal with illegal building conversions (typically a building owner illegally modifying a building to house more tenants despite zoning restrictions). Michael Flowers is a former prosecutor and is very passionate about the problems his office is trying to solve. He breaks down the problem, how it was previously approached and how it is now being approached by his office.  This is a very enjoyable talk – perhaps more so because the problem takes a front seat to the technology used to solve it - and I’ll be looking for more talks by Mr. Flowers!

Designing Data Visualizations Workshop - Noah Iliinsky

Big data is as much about disseminating information as it is capturing it. In this 4 part talk Noah Iliinsky of IBM provides an extremely accessible overview of what is a complicated topic.  He provides many real world examples of common pitfalls of data visualization and goes at length to explain the issues and provide appropriate alternatives. I found 3 of the 4 videos to be very useful. The third session was lab based and required the attendee to walk through their own real world visualization problem. Since I’m not working on any specific data visualization tasks at the moment I didn’t get too much out of this session but I will no doubt walk through this content next time I undertake such a visualization task.  I really feel the content in these videos is useful to everyone working in the IT industry – we all disseminate information – through application UIs, reports, Powerpoint presentations, targeting end users, internal teams and project stakeholders, etc. The ability to share this information in a correct and meaningful way seems foundational. Even if it even only explicitly articulates and reinforces design concepts already in your subconscious, I highly recommend this video series.

Summary (tl;dr;)

The combination of diverse topics and in-depth deep dives sets this title apart from others I have viewed. At 107 hours the cost is reasonable and is much less expensive than the various costs of attending a conference in person. If you’re interested in Hadoop or Big Data

Tuesday, March 26, 2013

Exception: Method 'MS.Internal.Interop.PROPVARIANT..

March 26, 2013 Posted by Jason Irwin , , No comments

I’ve used NopCommerce for years and have had very few issues. For the last few days a project which had been working without issue broke down due to a runtime error on my development machine. The error was an unhandled ReflectionTypeLoadException exception but the LoadException properties showed something more obscure – the following error when attempting to load an assembly:

[Exception: Method 'MS.Internal.Interop.PROPVARIANT..ctor(Int32, Int32, Int32, 
Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, 
Int32, Int32, Int32, Int32, Int32, Int32)' is security transparent, but is 
a member of a security critical type.]

What threw me off the scent was the fact that I received the same error on my desktop PC and my recently formatted laptop environment. This led me to believe the issue was with the code but, having gone back through GIT and failing to build numerous commits previously deployed to production, I realized that code was not the problem. I validated this by getting the latest version of NopCommerce source from Codeplex, receiving the same issue.


The Real Issue


The issue, then, was environmental. My laptop setup was brand new, so  the issue could have been just about anything. Thus I debugged on my desktop. I keep up to date with my development tools and the most recent modification I could remember was an update to Typemock Isolator – a tool that I also installed on my laptop during the refresh. Disabling the Isolator extension in Visual Studio allowed me to run the project successfully. Enabling it again allowed the issue to be replicated. I’ve used Isolator successfully with other projects recently so I don’t think there is an inherent flaw with the product – just a weird edge case worth investigating. I’m off to log a bug report. If you see this message at runtime, try disabling Isolator and see if that helps…

Sunday, March 17, 2013

Installing Couchbase on Windows 8

March 17, 2013 Posted by Jason Irwin , , No comments

This weekend I played around with Couchbase’s caching infrastructure on my Windows 8 box. Getting things set up was a bit of a nightmare, but thanks to some perseverance and much Googling, I got things up and running.

You’re likely to run into two issues post install:

  1. Post install: Navigating to localhost:8091 resulted in an error page
  2. Upon successful login: the Active Servers count is 0 and the Servers Down count is 1

The following guide should address both issues

Installation Guide

  1. Install Couchbase as usual
  2. Fix IP Address issue. For some reason the registration process generated a strange IP address on my box. Looking at the registration script it became obvious that the IP was saved and subsequently read from an ipaddr.out file
    • Copy the file C:\Program Files\Couchbase\Server\bin\ipaddr.out to your desktop and replace the IP with 127.0.0.1
    • Copy the modified version back to C:\Program Files\Couchbase\Server\bin\
  3. Replace tcmalloc binary (glad somebody smarter figured this out!)
    1. Grab a copy of libtcmalloc_minimal-4 from the relevant link in the following issue log
    2. Overwrite the existing binary in C:\Program Files\Couchbase\Server\bin with this one
  4. Reregister service
    • C:\Program Files\Couchbase\Server\bin\service_reregister.bat

 

I hope this saves somebody else some time!