Tech in the 603, The Granite State Hacker

Intro to Rx.NET (Reactive Extensions)

Thanks to the gang for joining me at the Microsoft Store in Salem NH for my preso on “Intro to Rx.NET”   Being that it’s a toolkit I’ve been digging a lot at work lately, I had a feeling folks might appreciate a broad brush into to it.

Please check out the Granite State (NH) Windows Platform App Devs (#WPDevNH) on meetup.com to connect with the group and maybe even participate, yourself.  In addition to the core presentation topic, we had a great debate in speculation on how Microsoft’s purchase of Xamarin might settle out.  Also, I’ll be attending Build 2016, so we’re talking about having a special meeting early in April to recap and consider future presentations. (stay tuned!)

Rx reminds me a lot of other declarative language elements (XSL, XAML) in that it seems really natural, then you start looking at more advanced stuff and the complexity becomes boggling… then you start to really understand the abstractions and it feels natural again.

Without further ado, here’s my slides for the presentation:

[office src=”https://onedrive.live.com/embed?cid=90A564D76FC99F8F&resid=90A564D76FC99F8F%21824879&authkey=AC01r6jwJX5ng5M&em=2″ width=”402″ height=”327″]
I’d like to thank the folks at http://IntroToRx.com, I referenced them more than any other source putting this together.
Finally, for the code I demoed, please check out the post I mentioned, here:
Hope to see you soon!
-Jim Wilcox
The Granite State Hacker
Tech in the 603, The Granite State Hacker

Retirement of the Corporate PC

Remember the company car?  Neither do I.   There’s a good chance the company-provided PC that most information workers are issued is trending toward extinction as well.

The net result could be a boon for PC retailers.  Policy agreements become SLA’s with the employee, and the budget moves out of IT and into HR.

Posted on Linked In:  Retirement of the Corporate PC

https://www.linkedin.com/pulse/retirement-corporate-pc-jim-wilcox

Tech in the 603, The Granite State Hacker

Live Process Migration

For years now, I’ve been watching Microsoft Windows evolve.  From a bit of a distance I’ve been watching the bigger picture unfold, and a number of details have led me to speculate on a particular feature that I think could be the next big thing in technology….   Live process migration.  

This is not the first time I’ve mused about the possibility… [A big feature I’d love to see in Windows 11] it’s just that as I work with tools across the spectrum of Microsoft’s tool chest, I’ve realized there are a few pieces I hadn’t really connected before, but they’re definitely a part of it.

What is live process migration?  Folks who work with virtual machines on a regular basis are often familiar with a fancy feature / operation known as live virtual machine migration….  VMWare’s vSphere product refers to the capability as vMotion.  It’s the ability to re-target a virtual machine instance, while it’s running… to move it from one host to another.

In sci-fi pseudo psycho-babble meta physio-medical terms, this might be akin to transitioning a person’s consciousness from one body to another, while they’re awake…  kinda wild stuff.

As you can imagine, live VM migration is a heavy duty operation… the guest machine must stay in sync across two host computers during the transition in order to seamlessly operate. For the average user, it’s hard to imagine practical applications. 

That said, live process migration is no small feat either.  A lot of things have to be put in place in order for it to work… but the practical applications are much easier to spot. 

Imagine watching a movie on Netflix on your Xbox (or maybe even your Hololens), but it’s time to roll.   No problem, with a simple flick gesture, and without missing a beat, the running Netflix app transitions to your tablet (or your phone), and you’re off.   Then you get to your vehicle, and your vehicle has a smart technology based media system in it that your tablet hands off the process to.   It could work for any process, but live streaming media is an easy scenario.

From a technical perspective, there’s a bunch of things required to make this work, especially across whole different classes of hardware…  but these problems are rapidly being solved by the universal nature of Windows 10 and Azure.

Commonality required:

  • Global Identity (e.g. Windows Live)
  • Centralized Application Configuration
    • Windows 10 apps natively and seamlessly store configuration data in the cloud
  • Binary compatibility
    • Universal apps are one deployable package that runs on everything from embedded devices to large desktops and everything in between.
  • Inter-nodal process synchronization
    • Nothing exemplifies this better than the 1st class remote debugging operation  in Visual Studio.  You can run an app on a phone or device from your laptop, hit breakpoints, and manipulate runtime state (local variables) from the laptop and watch the device react in real time.
  • Handoff protocol
    • I’m sure it exists, but I don’t have a good word to describe this, but it’s probably based on something like SIP
  • Runtime device capability checking (the part that sparked this blog post).
Over the years, there have been a lot of “write once, run anywhere” coding schemes.  Most involve writing a program and having the compiler sort out what works on each type of hardware…. what you get is a different flavor of the program for different kinds of hardware.  In Windows 10, it’s different.  In Windows 10, the developer codes for different device capabilities, and the application checks for the required hardware at run time.  
While the UWP does an amazing job of abstracting away the details, it puts some burden on the hardware at runtime…  the app developer has to write code to check, anyway: hey, is there a hardware camera shutter button in this machine?  If yes, don’t put a soft camera shutter button on the screen, but now the app has to check the hardware every time it runs.
I struggled a bit trying to understand this latter point…  why would Microsoft want it to work that way?  Except for a few plug & play scenarios, it could be optimized away at application install time…  unless your process can move to a different host computer/phone/console/tablet/VR gear.
While I am (more recently) a Microsoft V/TSP working for BlueMetal, an Insight company, I have no inside information on this topic.  I’m just looking at what’s on the table right now.   We’re almost there already.  Yesterday, I showed my son how to save a document to OneDrive, and within moments, pick up his Windows 10 phone and start editing the same document on it.
In my mind, there’s little doubt that Microsoft has been working its way up to this since Windows Phone 7… the only question in my mind is how many of these tri-annual Windows 10 updates will it be before “App-V Motion”-style live process migration is a practical reality.
Tech in the 603, The Granite State Hacker

Time to Extend Your Brand to Windows 10

Marketers, if you’re looking for fresh, fertile ground to extend your brand into, jump now on Windows 10.

The Windows 10 app store is a clear path to:

  • Bump up your online store shopper counts
  • Extend ever-available services directly to your Windows customers (which is about 90% of them)
  • Connect with your brand’s demographic in a way that helps you better understand their needs
  • Build brand value by connecting with partners
  • Build brand value by connecting with social media
  • Escape web browser inconsistency that threatens to pull brand value down
  • Escape security/stability issues in popular platforms (e.g. Android) that threatens brand value.
  • Reach more device form factors with a single, less specialized (less expensive) codebase (desktop, tablet, phone, even game consoles and devices)

AND…

Windows 10 is attracting Microsoft’s (and, by extension, arguably) consumer tech’s most valuable territory,

To wrap one’s head around this, it helps to understand recent history a bit. 

Being a “convicted monopoly” put a lot of costly restrictions on Microsoft, and especially Windows, making every OS release from XP to Vista to Windows 7 less than it could have been.  Despite the fact that Windows is still king in the desktop arena by far, Microsoft has done a great job of digging out from under the perception that it has a monopoly in that space.  It dug itself out by connecting Windows to the both to the cloud and to the broader computing device market, including tablets, smartphones, consoles and devices.

Being out from under those restrictions has enabled Microsoft to really make Windows 10 come together in ways that even the incumbent Windows 7 couldn’t.   All indications are that Windows 10 is a hit and will de-throne Windows 7 as the de-facto desktop OS within a couple years. Between re-claimed freedom to innovate, lessons learned, and other market conditions, it’s a no-brainer that Windows 10 has legs.

[Here’s a number to associate with Windows 10:  1 Billion UPGRADES.  (not counting the number of devices that will be sold with Windows 10 on them.)]

What about Social Media?  According to folks like @fondalo:

With nearly 62% of consumers stating that social media has “no influence at all” on their purchasing decisions (Gallup), marketers are faced with substantial hurdles in an ever-increasingly noisy digital landscape. This challenge is further amplified by a CMO Council study showing that only 5 percent of brands feel they are extremely effective at creating experiences that resonate with target audiences.

In fact, most marketers are currently forced to put more resources toward their digital and social efforts, just to maintain their current returns. I believe this gap will continue to widen for larger brands, but smaller more nimble retailers that get creative and deploy proper resources could end up being the big winner.

Finally, it goes without saying that it no longer matters that you’ve extended your brand to iOS (iPhone/iPad) and/or Android.  The app marketplace for those devices, in your space, is saturated… even super-saturated.  You’ve extended your brand to those app stores, and so has every other brand in the world, including all your competitors.   Of course, saturation will occur in the Windows 10 app marketplace, but getting in ahead of the crowd has its advantages.

Never mind the upside potential on phones and tablets (which remains huge, and far more addressable from Windows 10).  The pendulum is swinging back to the desktop/laptop again (for now).

Being a Microsoft appointed Technical Solutions Professional, I can help.  Let me know how I can bring my (and my team, BlueMetal‘s) expertise to bear for you in your goal to make the jump.
In any case, talk to me.  If you’re a marketing technology manager, what do you see as the pros and cons of jumping into the Windows app pool?  
Tech in the 603, The Granite State Hacker

KB3035583 – Where is the Windows 10 Invitation to Upgrade?

I’ve had a lot of folks express confusion over Windows 10…  It is FREE for the vast majority of existing Windows users. (Only some corporate PCs may run into a cash register.)  It’s also very easy to install for the vast majority of users.  I’m so confident with the upgrade process that I’ve handed off one of the URLs below to my folks, and told them to call me if they have a problem… 

The invitation to reserve Windows 10 is triggered from an update that rolls out over WSUS, described by Knowledge Base article KB3035583.  The reservation is essentially passed since the software is officially released, but here’s some detail on it if you’re curious…

The following URL is the KB article, which describes update that triggers the invitation to reserve Windows 10, mentioning that Enterprise machines do not apply:
https://support.microsoft.com/en-us/kb/3035583


The following article indicates that once installed, the KB3035583 update will also exclude itself from being applied Domain Joined machines:
http://rainesy.com/what-is-the-update-kb3035583-you-might-ask/


But the most important question to answer at this point… 
HOW TO UPGRADE TO WINDOWS 10 NOW:

I’ve had a couple links at the ready since I’ve been answering questions like this a lot lately across both business and personal connections…  here’s a post on how to download & install Windows 10 immediately for an individual system: 
www.microsoft.com/en-us/software-download/windows10

If you’re looking for more information on how to roll Windows 10 out across a company infrastructure, there’s a high level set of options, outlined in the following post:
https://technet.microsoft.com/en-us/library/mt158221%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

There’s a ton of great reasons for a company to deploy Windows 10, including

  • Universal Apps that enable you to extend your code base and/or future code effort across the entire Windows spectrum
  • A host of attractive, industrial-strength BYOD options for more than just tablets and smartphones
  • The most efficient and consistent use of latest generation hardware including touchscreen and security measures

Microsoft is preparing to *upgrade* over a billion Windows devices to Windows 10.   We’re proud to be a part of that, and very happy to help in any capacity we can getting the bits pushed out to all your machines. 


As a developer, I’m very happy to promote the platform I most want to work on… I really feel that Windows 10’s success is the foundation of a lot of others’ success, including my own.

Tech in the 603, The Granite State Hacker

Windows 10, Industrial-strength BYOD

“Bring Your Own Device” (BYOD) is not new. It’s the term companies use to describe company policies that enable an employee to connect employee-owned devices (typically a smartphone or tablet) to company resources… resources such as email or company document repositories.

In order for BYOD to work, a device must meet criteria for security and manageability minimally agreed upon by the company and the employee.

Mock-up of a woman using a Razer laptop in a classic work setting.

One of the things I love about Windows 10 is the multitude of security and manageability features that really make “BYOD” attractive to both employees and employers.

Being the tablet and smartphone platform that Windows 10 is, there’s been a lot of attention to making Windows 10 able to address many of the objections Enterprise IT has with IOS (iPhone and iPad) and Android devices. (In light of recent issues like #StageFright on Android, I find it hard to figure out how Android is supportable in BYOD scenarios.)

Windows 10 comes stock with not just one, but several viable BYOD solutions that present industrial-strength solutions to these BYOD objections.

Also, being the Universal OS that Windows 10 is, these objection busters apply to traditional laptops and even PCs. The magic here is that you can intentionally & willfully enroll your computer, laptop, tablet, phone, what have you with your company’s computing device policy, and be sure that your device will comply with company policy to the extent that the company requires.

If only for this reason, the fusion of work and play in one machine, Windows 10 makes the PC personal again, as promised.

As a Microsoft Partner-Technical Solutions Professional (P-TSP) with BlueMetal, I’ve been issued an awesome company laptop… but for a number of reasons, I found myself wanting to explore Satya Nadella’s vision for one device that co-mingles business and pleasure.

Having heard Nadella’s call for one device for work and personal use, I selected a laptop that could meet the needs of a higher-end gamer as well as meeting the needs of my role as a Senior Software Engineer in the Devices & Mobility group at BlueMetal.

What I ended up with is a rocket ship of a laptop, (a Razer Blade 14 laptop).

After taking a few precautions like Bitlocker-encrypting my laptop and upgrading to the Pro edition of Windows 10, I was comfortable enrolling my laptop with the company Intune policy. What I get is a stand-out kick ass trophy machine with enough display resolution to make 2k-display smartphone emulators seem quaint, that kicks ass developing apps, which I can then take home and kick ass in Azeroth & Draenor… without skipping a beat.

Imagine allowing employees to opt some portion of their personal hardware into your compute and/or sensor fabric in a way that does not interfere with that employee’s personal computing.

The possibilities add up to a win-win-win.

Employees win because they aren’t stuck with cheap, sub-standard-issue equipment at work.

Employers win, because 1) employees are happier with their better performing equipment, 2) employers aren’t in the hardware maintenance business anymore, and 3) can potentially leverage some of that hardware as an extension of human resources.

OEMs win because employees will gravitate toward hardware that gives them a leg up at work, rather than settling for the sub-standard-issue machine.

The most notable NEW ways to present BYOD in the enterprise are these:

1) Mobile Device Management and Mobile Application Management (App-V) with VPN isolation, making it so that devices have an encrypted sandbox for company applications and data, as well as a dedicated, isolated channel for VPN connectivity that 3rd party apps on the device can’t touch.
2)  Bitlocker-encrypted Hyper-V Virtual Machines with virtual Trusted Platform Module managed by the enterprise, typically where the guest OS is Active Directory-Domain joined.

Tech in the 603, The Granite State Hacker

Visual Studio 2015: An Insider’s Review

I apologize I’ve been pretty wrapped up in a little bit of everything, but I wanted to share a piece my colleague, Dave Davis, Architect at BlueMetal Architects wrote for SD Times:

https://www.bluemetal.com/News/Dave-Davis-Published-in-SDTimes

Well worth the read.

Tech in the 603, The Granite State Hacker

The Edge Browser in Windows 10

Today, I was mildly (but pleasantly) surprised when I logged into my laptop and discovered it had updated itself over night to the latest build of the Windows 10 Insider Preview (10158).  I shouldn’t have been surprised, in retrospect… I knew a build was coming, and I left my laptop on overnight…

The first thing I did was run smack into the Edge browser, which is far more polished in this build.  More importantly, this new browser has many features built in… especially Web Notes. 

Web Notes is a feature which, with a touch (or click if you don’t have touch) you can graphically deface (ok, “annotate” or “mark up”) web content.  Even more fun, you can  touch again, and post it to your favorite social media site or even to OneNote.

This one feature really differentiates the browser, in my mind, from just about anything else out there, and makes it much more clear why a replacement for IE is justified.   I’d heard about the feature, but the experience is far cooler than just seeing it. 

Frankly, in the past, I’ve panned Spartan/Edge as nothing more than browser platform fragmentation… a new wedge in the browser market designed to make the browser a harder platform to build viable apps for. After experiencing the WebNotes feature, I find myself wondering if it won’t a)  end Internet Explorer, and b) make the web cool again.

Given the way the Edge browser integrates with OneNote, I also find myself wondering if Edge shouldn’t be considered a part of the Office suite rather than a part of Windows.  That said, I’m aware of the fact that Microsoft has no plans to bring Edge to IOS or Android.

Aside from the myriad of practical content research and sharing applications, I can easily imagine Edge Web Notes being a social media hit, especially.  Who wouldn’t love to draw moustaches on all their friends & family’s profile pictures?

I have not heard if Edge on Windows 10 Mobile will have Web Notes, but I will be fully disappointed if it doesn’t.  It’d definitely make the web more versatile in a mobile form factor.  My Lumia 1520 with build 10149 has Edge on it, but no Web Notes…  yet.  As a colleague of mine points out, Edge is a Universal Platform app, meaning the code should be baked in, even if it’s not exposed in the UI.  I’ll keep ya posted.

Wouldn’t it be cool, also, if MS updated the Apache Cordova platform to incorporate Edge as the web view, thereby enabling annotations in apps that use it?

For what it’s worth, I used Edge to compose & edit this post.  Blogger is definitely much happier with Edge than with IE 11.

Tech in the 603, The Granite State Hacker

Intro to Windows 10 Universal Devices and Raspberry Pi

I really enjoyed presenting “Intro to Windows 10 Universal with Raspberry Pi” to the Granite State Windows Platform App Devs (#WPDevNH) this past week. 

Here’s the slides which have a few decent links in them to get you started.

[office src=”https://onedrive.live.com/embed?cid=90A564D76FC99F8F&resid=90A564D76FC99F8F%21470743&authkey=AFGBvV7-jEFyGVA&em=2″ width=”402″ height=”327″]

I will try to get a presentation on the next part of this sometime over the next couple months, with a dive in on the GPIO libraries.

Check out the group’s Meetup site for stuff going on going forward.

http://www.meetup.com/Granite-State-NH-WPDev/

Tech in the 603, The Granite State Hacker

Windows 10 and the Near Zero Hardware Liability Enterprise

With Windows 10, Microsoft is re-defining the BYOD (bring your own device) game, and it’s a subtly aggressive move that many will probably appreciate.

No, really.  Like you, I have heard “BYOD game-changer” shticks before, and dismissed it as marketing hype.  Hear me out.  (And also keep in mind that folks once often said “never” with respect to the cloud… but “never” is a lot longer than folks tend to look.)

Let me start by describing what I mean by “near zero hardware liability”.

There are already smaller organizations out there that have completely moved their hardware behind the wizard’s curtain. That is, they own little to no IT hardware themselves (with little to no capital expense, depreciation, or hardware liability.) These companies are typically small, use the cloud to support their infrastructure & services hardware, and BYOD for their employees’ desktop machines.

While cloud services are making serious headway into the enterprise, BYOD has been an arguably harder sell. The whole concept of BYOD has been largely dismissed by most larger companies because BYOD in in the Windows 7 (and prior) world can’t be managed.  Policy can’t be addressed and applied.  Data can’t be protected on an “unmanaged” employee owned device.  Hardware depreciation, liability, and support is kinda small compared to the other liabilities involved.

Imagine a more classically European view of the world however.  In Europe, a user’s computer traditionally is considered to be only a step away from personal property.  Like the days of being given a company car, the days of being issued a PC by your employer may well be coming to an end. 

At the Windows 10 Pre-flight Summit in Redmond this week (6/1-2), it seems the word of the day isn’t so much about “upgrade”.  It is, but there’s a bigger word floating around. 

It’s “provisioning”, or enrolling a device in an enterprise.

In Windows 10, the word “upgrade” is going to die.  It’s not just one platform for multiple devices.  It’s not just one platform for now, until Windows 11.  It’s one platform for the coming decades.  Upgrade to Windows 10, sure.  Update Windows 10, yes.  Upgrade from Windows 10, not in the works.  It’s also one very personal platform in more ways than one.

The day may be coming when part of a hiring decision (both by employee and employer) may be that an employee has devices of their own to bring to the table.  The employee will have their own support network, their own personal liability, and in order to accept the job, the employee must be willing to provision their devices with their employer.

Provisioning a device means the device gets an enterprise managed workspace, as us developers would say, a sandbox where all managed apps and app data live.  Provisioning also sets a minimum acceptable standard policy on the device.  If the device can’t meet the provisioning policy requirements, it won’t be accepted…  (sorry Charlie, you need new hardware.)

I speculate on how much effort it would save companies if they could have the security & policy management without the hardware ownership overhead, but I bet, all told, it would be pretty significant. 

In many ways it will be similar to the car analogy…  you can’t expect to keep a job if you can’t manage your own transportation sufficiently to get you there when you need to be there.

This is also a very aggressive tactic. Imagine an enterprise deciding to implement BYOD, and it’s very successful… to the point where you can’t really get a job at that company without bringing a Windows 10 device.  Is that a labor issue? 

By kicking down as many objections to BYOD as possible, Microsoft may even be looking to drive adoption from the bottom up. Rather than the CIO/CTO decreeing and pushing Windows 10 down, the BYOD user will use Windows 10’s features to overcome the BYOD objections.  Tired of the “golf cart” class standard issue machine at work, a power user brings in their own “hot rod”, and harasses IT until IT realizes the objections can be sufficiently mitigated with Windows 10… and the floodgates open.

I also speculate on the ramifications of the job market.  I could easily envision a day when the mark of a more desirable employee would be the higher end hardware they bring with them.  Imagine how it might re-invigorate the PC market if employee competition drove sales.  Imagine the PC becoming more important than the automobile in terms of employability-driving hardware, as a competitive attribute of an employee.  (The mark of a good chef is their knife set.  The mark of a solid information worker may be their laptop.)

It won’t hit all at once on July 29th.  It all has a ways to go.  It is a very thought provoking possibility.  What do you think? Is this on the path to Tomorrowland?

Edit 6/3:  Day 2 of the conference points out that Hyper-V 6.2 included in some editions of Windows 10 will enable virtualized Trusted Platform Module (v-TPM).  This means that an employer could provide a secure, Bitlocker enabled VM to an employee (which may or may not be provisioned), rather than provisioning the employee’s device as a directly provisioned system.   Yet another way to make BYOD a more Enterprise friendly policy.