Tuesday, May 20, 2014

Thoughts on the Surface Pro 3: One Device To Rule Them All

I never got in on the GPS craze... or pagers...  or the portable media player craze...  or the netbook thing...  or the ebook readers...  or even the tablet thing.  My first cell phone was the only non-smartphone I ever suffered.

As a technologist, I saw the serious value in combining devices... to the point where I decided that I would only ever carry one electronic device... a sufficiently powered, hand held computer for which I would have development tools.  My current oversized smartphone even suffices as a tablet, reader, and semi-connected third display for my PC.  

I now carry all of those individual fad items (and far more) as one unit.  Watches, GPS's, pagers, portable media players, ebook readers... all fully redundant to the power of my contemporary smartphone... and I can (and do) write apps for it.   I will never waste resources buying smart watches or smart glasses... my smartphone offers just the right amount of accessibility and utility without needing yet more.

I have a similar relationship with my computer.  I have long struggled to find value in a game console.  Sure, there's a nice Xbox One in my home now, but I definitely don't log any significant time on it;  it really more or less belongs to my kids.  I have a PC...  The one and only thing it lacks for function is the ability to fold it up and take it with me... which is what I have a smartphone for.  (Yes, work provides me with a laptop, so as the some-time code warrior, I have a laptop that suffices as a desktop... but it's definitely no tablet.)

I don't feel I need the best in every technology, but a few things are very important to me in a PC.  I've long said I need visual bandwidth...  multiple displays are a must, and not just any.  The displays must have at least 1200 lines of height resolution... width only depends on aspect ration from there, and 4x3 and 16x9 describe the pair I have on my desk as I write this.   Touch would be nice for this, but I don't have touch now...  I can survive without it.  As a software developer, having a display dedicated to my development tools and another dedicated to alternate info (communications, email, technical documentation, work queues, server desktops, or debug UIs) is a must.  The more I can see on the surface of a monitor, the less time I have to waste hunting for the window that has the info I need in it...  my PC is a content creation station.  I can still take advantage of my oversized smartphone to offload communications (email, video/teleconf/chat, music playlists, etc)  I could easily make use of more displays...  I just don't physically have room for more on my desk.

My PC is more than just a PC... it's a workstation.  A laptop won't even suffice for it...  whenever I am reduced to working on my laptop alone, I feel constricted... like being forced to do detail level work while wearing a diver's mask and welders gloves.  Work goes much better when I connect a full size keyboard, mouse and displays to the laptop in one form or another.

Of course, my workstation being my own actual personal computer, I also like to play games on it, and so it's yet more than just a workstation... it's also a game console.

Needless to say, it's the things that a tablet can't do that make a normal tablet superfluous to me.  Most importantly, I can't fully replace my workstation/gamer console/PC with it...  If I can't do that, it's just another display that doesn't fit on my desk... and I already have a phablet that satisfies my  portable computing needs.... anything more than that would only leave me wanting to just take my workstation with me everywhere.

When I go into Best Buy, or Staples or shop on Dell, I'm asking for a device that bridges the gap between the portability of a tablet, the creation-centricity of a workstation, and the gamer power of a console.  Worse, I get way more bang for the buck out of a desktop system than anything that even claims to be mobile, so replacing it with a mobile system that has close to the performance will be pricey. 

With the release of the Surface Pro 3, it's very clear that Microsoft is hearing me, and fighting hard to do something about it.   I'm not sure it fully balances cost with my requirements, yet, but the Surface Pro 2 was tempting...   The 3 may get me to bite.   The ability to convert a tablet into a workstation and/or gamer console is definitely on track, plus it has some nice features that make it a better tablet than an iPad.  To match my current set of requirements, I would have to go with at least a mid-range (i5) unit.  The docking station would be a must.  If I kept my current non-touch, 2k display, using the tablet's 2k display as well, it could finally be the tablet to bite on.  If I could find a good 4k touch enabled display for a reasonable price, that may be the clincher.

Is Surface Pro 3 a breakthrough product for you, or are you already rocking a more complete range of hardware?


Tuesday, March 25, 2014

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.

Saturday, February 15, 2014

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.


Thursday, February 6, 2014

Jimmy Sudoku 5, Orange Edition


Please don't think of it as a hundred dollar app.  Think of it as a free app with the option to support an important cause.

Sometimes when things get "comfortable", it becomes necessary to shake things up.

Such is the case with my hobby/charity project, Jimmy Sudoku.  

Previously, Jimmy Sudoku had two listings in the Windows Phone app marketplace... one as a free international listing, and once as a paid, US-only listing.  Both were the same exact binaries.

I've deprecated the paid US listing, and, in its place set up the single remaining international listing as free trial with the option to buy.  

Expecting to raise more awareness for the cause than direct proceeds, I've set the price to... something that will raise eyebrows.   This will take effect as soon as the WP App Marketplace approves the change.

There is no functional difference between the free trial and the paid mode... the app does not even check to see if you bought it, at this point.

Again, 100% of the proceeds from Jimmy Sudoku 5 purchases will continue to go to #NoKidHungry...  again, the app itself is free.  If you choose to pay what I'm asking, the proceeds will be donated. 

If you decide to go directly to the charity and donate to them, I've still accomplished what I'm hoping to do with the app.

http://www.windowsphone.com/en-us/store/app/jimmy-sudoku-5/92251d32-ad5f-44e6-8f5c-43e834c5c28c

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.



Friday, January 31, 2014

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.