Tech in the 603, The Granite State Hacker

Looking into Continuous Delivery / Lean Enterprise

After a conversation with my boss I just downloaded Continuous Delivery to my Kindle reader (Windows 8 / Windows Phone app). 

On first brush, I can see it’s akin to the next phase of a process I’m somewhat familiar with.  I’ve referred to it as Software Factory in the past, and even have a label for it in this blog.  I designed and delivered a “Software Factory” solution around some of these concepts at one of the few product based companies I worked at in my career…  

“Software Factory” took Continuous Integration (CI) up a  few notches by automating not just builds, but code generation, deployment packaging, and then an early stab at what might now be called a private cloud, where we automated spinning up an instance of target test systems, deployed the fresh baked product, ran smoke tests, and (if smoke tests looked good) notified the folks in QA for more complete testing of a solid candidate.   


I’ve been a fan of Domain Specific Language (DSL) for the purpose of custom build & automation ever since. 

For that company our solution was an on-premises deployment, so it was still a matter of convincing customers to deploy the updates…  but our automation produced both full install kits as well as patches that would upgrade a running system from a known build to a target build.    


That company was preparing to take the product into the SaaS model which was very new at the time, and this would have been a part of that, as well.   

I’ve worked with TFS to integrate smoke testing and build automation, as well.  That could easily extend to this sort of thing. 

That company suffered from lack of customers, unfortunately, but it was a process I’ve been looking forward to getting back to, and expected we’d get back to in the consulting world some day.    It’s interesting that Software Factory (as Continuous Delivery) is working it’s way back to top of mind relevance through the cloud…  I’m looking forward to reading what the authors of this book have to say about it.
Tech in the 603, The Granite State Hacker

Winds of Change

If you hadn’t heard yet, Jornata merged with BlueMetal.  As part of the merger, BlueMetal organized a session of “BlueMetal Academy” to help transition the team.  In spirit of a true merger, Jornata members participated as trainers, as well, showing that Jornata’s culture is really being assimilated, not purged.  (The merger is a solid marriage, rather than simple annexing of resources, both sides bring common values but distinct strength to the partnership). 

At the end of the training, we were asked to come up with one word to reflect what we’d learned over the course of it.  Just one…  on a moment’s notice.  Responses were things like “Integrity”, “Consistency”, “Connection”, “Inspiration”, “Committed”, “Legit” and a few other words of similarly positive connotation.

I had the advantage of being among the last in line to respond, so I considered each of them as they were spoken.   In my head, I responded to each word as it was spoken.  “Yes”, “True”, “Good one”… those all fit.  “What says all of that?”, I thought.  Digging deep, I could only think of one word that conveyed all those qualities… everything we learned.  there’s only one word that says it all, and I didn’t say it to play Captain Obvious…  “BlueMetal”  

Ok…  the cool-aid is either totally Stepford, or totally legit.

Given my experience with BlueMetal teammates in both the SharePoint AND Windows Phone Dev communities, before I ever had the opportunity to join… it’s not Stepford.

That said, I think the expected answer was “Mahan”, as in Mahan Khalsa, author of “Helping Clients Succeed” which plays an over-arching theme across the company.  Someone may have even said that, but I didn’t catch it. I still like my original answer.

This past spring I joined Jornata, mostly to shake up my career.  Jornata was/is a fantastic team to be a part of in its own right.  My prior experience with them in the SharePoint community was also first rate. 

I might have pursued a job at BlueMetal years ago on my own were it not for the daunting commute.

The winds of change clearly had more in store.

Now, I find myself thinking that BlueMetal really looks like the company I always had in mind to work for when I was teaching myself programming as a kid.. and I mean everything..  from its respected thought leaders to its community involvement to its extremely purposeful corporate structure…  being employee-owned…  I realize this team is top to bottom, front to back, enterprise ready, industrial strength, yet premium consumer quality… and they have my back. It will be my honor to have this team’s back.

I’m very much looking forward to settling into the new team, and really looking forward to digging in on a nice juicy app development project.  Duty to the customer has pulled me quite a bit toward infrastructure build outs… Being successful at those things has had the curse of being asked to do more of it. The further away from C# I get, the further I am from my true passion & real value add, and that doesn’t really cut it for me or my team, longer term.

so…  the commute sucks… but if that’s all I can think of to “complain” about…  I guess that’s what it takes to be “The Granite State Hacker”, for keeps.  (I’ll secretly blame NH politicians for making it so hard to find a sufficiently legit tech offices in NH, and work at home every chance I get.)

This marks a new chapter for my career, without a doubt, and I’m sure I’ll be inspired to blog deeper than what had become all too common Microsoft cheerleading posts.  (Now I can be a BlueMetal cheerleader, too!   ok…  I’ll try to refrain from geeking out about my team too much.) 

Tech in the 603, The Granite State Hacker

SharePoint 2013 Distributed Cache error “cachehostinfo is null”

Doing a fresh SharePoint 2013 SP1 deployment, I ran into a couple things I want to remember.

1)  SharePoint 2013 RTM won’t install on Windows Server 2012 R2.  You must install using SharePoint 2013 WITH SP1.

2)  Somehow after configuring things, the distributed cache service wouldn’t run on one of the hosts.  The error was “cachehostinfo is null”.   Advice I got was to remove the service instance and re-add it, but even trying to run “Remove-SPDistributedCacheServiceInstance” came back with that.  The following powershell script allows you to remove the service instance on the machine you’re on, which then frees you up to run add-spdistributedcacheserviceinstance.

Originally from StackExchange:
http://sharepoint.stackexchange.com/questions/58326/sharepoint-2013-distributed-cache-cachehostinfo-is-null-with-remove-spdistrib

$SPFarm = Get-SPFarm
$cacheClusterName = "SPDistributedCacheCluster_" + $SPFarm.Id.ToString()
$cacheClusterManager = [Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheClusterInfoManager]::Local
$cacheClusterInfo = $cacheClusterManager.GetSPDistributedCacheClusterInfo($cacheClusterName);
$instanceName ="SPDistributedCacheService Name=AppFabricCachingService"
$serviceInstance = Get-SPServiceInstance | ? {($_.Service.Tostring()) -eq $instanceName -and ($_.Server.Name) -eq $env:computername}
$serviceInstance.Delete() #You may have to issue the Delete command a couple of times.

Tech in the 603, The Granite State Hacker

Net Neutrality and the Return of AOL

For cable TV customers, there’s something oddly familiar about the idea of channel providers.  Trading off television channels by switching cable TV providers has long been commonplace in regions where there’s more than one cable TV provider, and long been the envy of those who don’t live in such regions.  If Time-Warner wants to cut off CBS over contract issues, and you live in a place where you only have Time-Warner, you don’t get your NCIS fix.

Flashback to a couple decades ago…  America Online, GEnie, and CompuServe WERE the “Internet”.  If you wanted IN on the “online craze” you had to go to one or more of these companies and buy your seat at their table.  Companies didn’t advertise their web URLs.  They advertised their AOL keywords.  CompuServe had great educational content providers, but AOL was king of chat at a time when chat was king.  Most companies flocked to AOL as a result, and so AOL wasn’t just an ISP, it was THE digital content channel provider.

The channel model died with the rise in popularity of the Internet.   Suddenly, all you needed to connect content to customers was the same thing that everyone needed.  A connection.  Thanks to a convention called “Net Neutrality”, the channel model built by services such as AOL & CompuServe were walls that were knocked down.  Your connection was every “channel”, simultaneously, all the time, with no bundling.  As a business, wanting to publish and contribute your content as a channel, you had only to invest in your own connection, and a little technical infrastructure, and you were in.

Facebook has taken serious shots at bringing the channel model back.  If you want to play certain online games or see some online content, you must join Facebook… and content/gaming providers who want to participate in that must come to agreements with Facebook, of course. 

Yet, with the breakdown of Net Neutrality, the pendulum is swinging solidly back to the channel provider model.  Your ISP now has the right to decide what traffic they carry over their networks and/or throttle performance from different content significantly…  if they want to cut back on Netflix… they can.  If they want to nix Google services, whatever.

Clearly this happened almost instantly with recent judicial rulings…  The jinni is already out of the bottle.  Verizon has decided to effectively drop the “Netflix channel” by cutting Netflix’ bandwidth down to reportedly unusable levels.  This means if you’re on Verizon and were using Netflix, you either have to find a new video streaming service, or you have to find a new channel service provider. 

How long will it be before this impacts every Internet service provider (and even cellular network providers, since VOIP services are reducing them to ISPs as well)?  

Here’s some fictitious quotes from a not so hard to see future (roughly within the next decade):

  • “I left Verizon for Time-Warner because Verizon charges too much for the Office 365 and Facebook channels.  Comcast is tempting, though, because they have Google Hangouts and enhanced YouTube in their HD package.” 
  • “I wish Verizon had the same educational channels as T-Mobile or Sprint, though, cause my kids could use that for school.”  
  • “Thankfully my channel provider and my folks across the country both have enhanced Skype.  I can’t Skype my sister at all, though.”
  • “I had to switch banks when I switched carriers.  AT&T hasn’t come to an agreement with my old bank, so I couldn’t use their online services.”
  • “Amazon’s gone bust since they failed to become a viable channel provider, and every other channel provider decided to compete against them.”
  • “Google is the new AOL.  Most folks can’t even get online except thru Google Fiber. Your business does not have an online presence unless it’s thru them.  It’s too bad your competitors already have exclusive agreements with them.”

ISPs love this, because as cable TV providers will tell you, there’s a lot of pricing power in being a channel provider, but not so much is being a connection provider. 

Businesses will struggle with this, however, because getting your website on the Internet will become a much more complicated proposition.  Sure, you’ll be able to get online the same, but your content won’t be carried the same.   Essentially, small business content will be at the whim of “local access channels” provided by each channel provider.  They’ll all have their own rules and regulations, and even more importantly, their own fees.  Is your audience growing?  You’ll have to hammer out deals with each channel provider to make sure your content gets to all your customers.

Further, how long will it be before we start having a resurgence in custom network interface hardware to the point of ending Wi-Fi and Ethernet as we know it?  We’ve already seen netbooks and tablets that have wireless Internet service tied to specific cellular carriers.  I’d be willing to bet that as channel providers gain hold and start to flex their newfound muscles, a breakdown in connectivity standards will take hold.

Tech in the 603, The Granite State Hacker

What’s Hiding Behind “Low Resolution” Metrics?

100 data points

I’m a software application developer, but I get this.  Metrics are the photographs of business. 

While I’m at it, here’s another classic cliché for ya…  “A picture’s worth a thousand words.” 

What if your picture has been reduced to a small number of data points? 

You get something like the image on the left…  there’s actually 100 data points in that image:  the resolution has been reduce to a very small number of pixels, each expressed as a block of color.  (The image it was originally reduced from is about 40,000 data points.)  

Anyway, this is what metrics are to a business… data points that, when taken collectively, become the model or picture of the state of the company.

Standard GAAP accounting is supposed to provide a meaningful definition of metrics for any company, of any size, and for some purposes this may be sufficient.

Problems generally come in with the specialization of a company… the metrics it measures its own processes and performance by. 

Too many metrics, and it can’t all be taken in… like getting a close up of the whisker I missed when I shaved.  (From the “be careful of what you wish for” department.)  Thankfully that doesn’t happen very often;  it’s hard to imagine justifying the expense of that kind of metric “resolution”. 

It’s far more likely there are too few metrics. 

Imagine what it would look like if we reduced the resolution of the picture further… say to one data point.

Imagine, for example, if you only considered the price of a share of common stock in trying to get an idea of how well a company is performing.   Indeed, that’s definitely a “single pixel” view, and it really won’t tell you anything about the stock or the company attached to it.

Now take this, again, to internal processes.  Let’s imagine a bank that measures its loan officers only by their average ROI on loans. 

Ok… so that’s a silly extreme, but let’s just run with it for a moment…

Imagine trying to provide a bonus-impacting performance review of a loan officer when the only metric you had was the ROI on their loans. The average interest rate of the loan may be a valuable metric, but only when taken with other metrics. 

It won’t be long before all the loan officers are writing a few extremely short term loans for a penny at hundreds to thousands of percent interest.  Hey, for $99.99, ROI on the penny just netted someone another $10k in bonuses, right?  Again, a goofy extreme example, but you get the point.

This is a problem that’s plagued more than just a few business units… more than a few businesses, corporations, conglomerates.  Really, it’s impacted more than just a region, and even the nation.  Poor metrics beget poor metrics. In the global economy, poor metrics, taken collectively, have hidden a great number of sins that contributed significantly to the global downturn referred to as “The Great Recession”.   (Who wants to know where they’re going when they don’t like the answer, I guess, huh?)

No one, from your boss, to world governing bodies, can point the ship in the right direction without a clear picture of where we’re at.

Tech in the 603, The Granite State Hacker

Publishing Content Separately from Presentation

Separating content from presentation is a very old “Best Practice”™. 

Publishing using web technology is not new anymore, either, but mobile puts a newish urgency in that best practice.  I’m seeing ignorance of the old best practice bite some in a potentially surprising way as the age of mobile apps become the preferred way to consume content.

Here’s what I mean by publishing separate content and presentation… 

Take for example a menu from a restaurant.  I’m finding in many cases, restaurants have web sites that publish their menu.  Their menu items are content, and the web site presents it in a pleasant manner.  In many cases, the presentation and the content are published just in that web page.  (The menu items are “hard coded” as HTML into the page.)

If the restaurant’s menu items are “hard coded” into the page presentation, it’s very hard for anyone to re-use that information in any other presentation.  It’s not impossible.  It can be “scraped”, and some tools do a decent job of it.  It’s just not easy enough. 

The more technically correct path is to publish the content as a web service, and then publish the web site.  The web presentation layer should consume content it gets from the service. 

Why does this matter?

There’s lots of functionality that can be provided by a content service.  Users can consume portions of the content by filtering it, sorting it, or classifying it.

To expand on that, I’ll pick on Microsoft’s Windows Phone AppStudio a bit, since they’re the star in my circles right now.  Microsoft’s AppStudio is one of many ways to create apps for mobile devices.  (In this case, for Windows Phones, but that’s beside the point.)  AppStudio’s niche is making it easy for people to pull in content from various sources and present it in their own Windows Phone app.  LOTS of people are building apps for just about everything you can imagine…  members of the Granite State Windows Phone Users Group are producing a ton of apps based on it.  

Here’s some statistics to try to paint a picture of this.  The NH Windows Phone UG community publishes a list of apps produced by its members.  In the past three months since App Studio was released, I estimate that the number of apps in that catalog has doubled, and 95% of the new apps are AppStudio apps, consuming and re-presenting, making use of content provided by 3rd parties. 

What makes it easy to build AppStudio apps is that it has a simple presentation of its own… all folks need to do is find content that’s been formatted in one of a few very standard ways.

We have, for example, a grade-school aged member of the #NHWPUG community building and publishing apps with AppStudio.  His publisher name is YoungMaster, and his first app is called “Kids Zone”.  The cool part about Kids Zone is that he was able to add video content from YouTube.  His app merely queries YouTube for certain kinds of videos, and YouTube responds with a list (in a standard format) of items.  Users of the app simply tap the list for more information about it, or to watch the video.

Now, back to that restaurant…  if a patron/fan developer wants to make an app for a specific restaurant, it would be very hard to add that restaurant’s menu items if the menu item information is not published separate from the web site presentation.  

Another application might be to allow a person searching for a meal to browse menu items from a number of nearby restaurants.  Will your restaurant’s menu items be available in the list?

Lots of folks already understand this concept of separately published content and presentation, and apps pop up around the content all the time.  Movie theaters, travel agencies, transit authorities, social media updates, news agencies… all publish their content separate from their web site presentations. 

What’s rougher, for folks using a CMS (Content Management System), chances are, you have the ability to publish a Syndicated Feed or RSS Feed that would do the job… but if you’re not enabling and exposing it, you’re missing a chance for folks to help spread the word about your company in these new ways.

Tech in the 603, The Granite State Hacker

Windows Phone Email Sync Error Code 8500201F

A reminder to myself, and anyone else who may encounter this issue.  I have occasionally run across it and finally nailed down the symptom and work-around solution…   The problem is that in rare (maybe once in six months or so) I would get an error while syncing my mail in Windows Phone.  It’s an Exchange server, getting at the mail through OWA, and the fact that the error appeared & disappeared without warning, and only affected me, made it very mysterious. 

To make a long story short, sent a message to a fictitious address on my own email server trying to test something, and naturally got a administrator’s “non-deliverable address” message back.   This NDA message in my in-box was causing the error code 8500201F, making my phone fail to sync.  I discovered this by cleaning out my in-box, which got sync working again.  I then started putting messages back a few at a time until sync failed again.  I eventually narrowed it down to that NDA message.  Not sure why it’s a problem, but that’s what it was.

Tech in the 603, The Granite State Hacker

D11: What’s Wrong with Devices Everywhere?

Reports coming back from D11 indicate that most companies are focusing on (according to a report attributed to Mary Meeker)  “Wearables, Drivables, Flyables, Scannables”.

Simply put, I tend to disagree still. 

While all these brilliant minds are gathering, I think the feedback leaking out feels as out of touch as the iPhone…  I’m not sure it even sounds different anymore.

With respect to wearables, I believe the pre-backlash against Google Glass is telling, and has more to do with the fact that people are very comfortable with their smartphones… and not so comfortable with the Borg-like assimilation of them.  

I think Apple will run into the same sorts of issues with the iWatch.  I’d rather put an iPhone on an arm- or wrist- band than have both an iPhone and an iWatch…  that makes two devices to manage the care & feeding of…  this goes directly against the premise of the SmartPhone… the idea that *one* device is your buddy and your complete “away-mission” kit.

The idea of drivables is similar.  Computers in cars is one thing.  I don’t want to have another computer interface in my car. 

Blame it on R2-D2 and the Borg.

No one wants to be assimilated. 

Further, why carry an X-Wing (or Y-Wing or B-Wing) fighter around when you can have your astromech (smartphone) follow you from fighter to fighter?

While I fully agree…  any company worth their salt should be looking at making everything have a well connected computer in it,  they should not, necessarily, be looking at having a human interface on those devices.  These should be control & reporting processors built into devices, not redundant smartphones built into devices.

Let the interface be our beloved astromech… I mean smartphone.

I love where some auto manufacturers are going with things like Ford SYNC.

The ten year cycle on the smartphone is only just beginning, and wearables, drivables, flyables and scannables probably won’t work as stand-alone products, but as extensions of the smartphone era.

Tech in the 603, The Granite State Hacker

No Kid Hungry, Resolution To Renew My Commitment

It’s New Years Day, 2013. 

My kids made a comment, this morning, about how commercials on the TV were the same today as they were yesterday.  Without thinking about it, I flatly told them that it doesn’t really work that way; that today isn’t really much different from yesterday. 

I realized right away, even without my wife’s reproving look, that I’d blundered a bit as a dad just then.  I remember being disappointed when I was a kid by how things failed to change over night between New Years Eve & New Years Day.  I had to explain to my kids that the real difference between 2012 and 2013 was not the messages in TV commercials, but what they, themselves, resolved to change…. and the work they put into making that happen.

That, of course, got me thinking about my resolutions for 2013..  I’d tweeted a couple cute ones last night, on New Years Eve…  but there’s one that I’ve been thinking about for a while now that I’ve only hinted at otherwise.

In 2012, I saw how much deeper problems seem to be running, economically….  how even some of my extended family would consider my immediate family’s lackluster financial situation to be a blessing compared to what they’re facing. 

Media news reports that the economy is improving.  That may be true on Wall Street, but it seems hollow on Main Street.  Indeed, the so-called improvements of 2012 feel like they’ve come at the expense of folks who have been on the brink of needing help.  Clearly trickle down economics have failed.  News of improvement only means that people are slower to give… because we’re not in such financial distress, anymore…  right?  Well… worse, with fiscal cliffs and inflation factors threatening to take hold in 2013, who can give?   Sadly, trickle up poverty seems to be in full effect.  

In the meantime, one thing that didn’t work out the way I’d hoped in 2012, was the results from my charity project. 

As a product, I’m very pleased with what I was able to publish in my spare time.  It’s an honest to goodness Sudoku puzzle game for Windows Phone…  no spyware, no malware, no ads, no personal information used or transmitted…   just the kind of game I wanted to play, and something I wanted to share.   I built it using tools that I wanted to work with.  I published it globally for free, and also for the U.S. for $5 with my own personal commitment to donate all proceeds to charity.  (Folks in the U.S. have a choice…  there’s no difference between the free and the paid editions of the app… it’s just if you want to donate to charity or not.)

As a tool for charity to raise funds and/or awareness…  well…  I’m hoping to change it’s past performance.  I understand that it looks bad that I can’t market the app with official cause logos & such from the charity I’ve committed to support…  I asked for permission for that, and for legitimate reasons, I couldn’t.  My hope was that the app would earn the privilege by the contributions it generated.  It’s been tempting to shoot first and apologize later, but in a world of “no good deed goes unpunished”, I didn’t want to take risks I couldn’t back up.

After an experimental social media campaign that mostly just annoyed friends & family on Facebook, I gave up.  There was too much real work that needed my attention.  I couldn’t let an effort that was getting nowhere cause me to fail at stuff like my job.  

I’ve decided to renew my efforts with the hope that it gains some traction at some point… I’m not fighting for the product; I have nothing to prove there. 

It’s the cause.  Helping hungry kids. 

I have yet to figure out exactly what this means… I don’t want to annoy friends & family… but the cause needs hands.

Even if you have no interest in my charity project as a fundraiser, please seriously consider contributing to the cause. Even if you can’t do that…  please help spread the word. 

This is their website:
No Kid Hungry