Tech in the 603, The Granite State Hacker

Is Your Solution Delivery Strategy About to get Avalanched by Windows 10?

HoloLens took the spotlight when //build/ 2015 announced it had sold out in under an hour, but I can’t help but think at least as big a chunk of the excitement is around Windows 10 (or as we developers like to think of it, Windows Unified). As cool as HoloLens is, Windows 10 will most likely be landing in your lap long before HoloLens has images dancing in your living room. 

If you’re not already preparing for Windows 10, your solution delivery stack could be in for a shock from the client up. Microsoft is in the process of launching a re-boot of itself, and Windows 10 is the fulcrum of that effort. As usual, many of its changes are aimed at pulling developers in. If solution development has a place in your organization, this will likely impact you as well. 

“Mobile First / Cloud First” is, as always, the key phrase, and for a client OS… if it’s not for cloud devices…. give it a moment…  let that sink in…   Yes.  Windows 10 is an OS for mobile devices. Even if your device is a big heavy block of a workstation sitting near your monitor.  It will have the same mobile app store as phones and tablets, and it can be managed by the same Enterprise Mobile Device Manager (MDM).

Windows 8 was an introductory / transitional OS. With Windows 10, the transition matures.  Windows 10’s maturity is likely to make it far more palatable than Windows 8 was. (Keep in mind that Windows 8 is only a “failure” in terms of Microsoft’s other OS releases… Windows 8/8.1 has a bigger install base than some of the most “successful” of its non-Microsoft competitors. If Windows 10 becomes the hit many foresee it to be, it has potential to become the de facto standard platform to truly de-throne XP and even Windows 7.)

Windows 10 also adds a bit of a surprise, especially around browser technology.  Microsoft is tossing in to Windows 10 a whole new web browser (in addition to Internet Explorer) currently code-named Spartan. This new browser is intended to go after the consumer browser market, which IE has lost considerable ground in. I speculate that Spartan will be a breath of fresh air for consumers who feel IE’s bloat-related flaws collectively compels them to download Chrome or Firefox.

If you’re a web application developer who does more than a little HTML, on the other hand, you’re probably already groaning. You know what a pain browser compatibility is. (The browser was never intended to be a homogenous cross-everything platform, but that’s how a lot of web designers treat it, and they’ve shaped culture to expect it. Despite the best efforts of tools like jQuery and others to try homogenize, and trends like responsive to try to change the culture of presentation homogeny, web application developers get severely burned in the crossfire.  I’ve got more than a few scars to prove this, but you don’t have to look further than jQuery’s failed mechanisms for helping developers with these issues.    (First there was $.browser and $.browser.version, then $.support… then, “awe… heck… we give up, use Modernizr“.) /rant )

Spartan is a move that makes total sense, but it can’t help but add complexity to web application developers’ lives.  

In fact, in my mind, the long term net message is… there’s only one way to end browser pain… by getting out of web as a client platform. (Web services are the only part of the web worth salvaging.)

Microsoft has seen what platform diversification has done to its core OS business, and it’s not good. Developers need a consistent platform to deliver consistent solutions on, and that’s been a bigger part of Microsoft’s success over the years than even they seem to have realize.

So if web application development is becoming ever more complex in an already over complicated domain, how should one produce and deploy apps?

In a word:  native (aka mobile).

Windows 10 is a unifying platform, a “pentecostal” event to counter the “tower of babel” event of Windows platforms that have fractured into existence since the end of the .NET Compact Framework era. Where before development was requiring more and more effort to support PC, tablet, smartphone, wearable and even Xbox, Windows 10 has a unified SDK across all those platforms. For the first time ever, a .NET developer can build a single solution that runs in all those devices. There may be runtime differences between platforms that have to be ironed out, still, but not compile-time  (if(system.capability.phone) {} rather than #ifdef WINDOWS_PHONE_APP)

And think about it… what are the big reasons for web deployment?   Centralized management and centralized deployment.  Think back to MDMs and mobile app stores.

(Xamarin plays a roll in all this as well. Between Windows 10 and Xamarin, developers will be able to leverage a good chunk of their code base across all hardware, even non Microsoft platforms such as IOS and Android. This, too, is a breath of fresh air, because the cost of maintaining multiple code bases (and talent pools) is ever climbing. Xamarin will likely never be the 110% development experience that the latest .NET framework is, but neither was Silverlight for Windows Phone 7, yet one could do some fairly heavy lifting with it.)

Because Windows 10 is one platform that runs across form factors, it essentially means that any app written for Windows 10 is a mobile app. In that light, it means that Windows 10 is most likely to vault Windows into the top spot for mobile platforms by its projected install base. 

This on top of Microsoft’s recent “trickle up” theory of mobile market share growth, where Microsoft has been grabbing market share by targeting the feature phone market.  (This tactic has little effect in the US, where carrier subsidies nullify the low end to “$0”)  At some point Windows Phone will hit critical mass outside the US. Once that happens, even US developers will no longer be able to afford to ignore it.

Even if Microsoft is not contributing directly to your solution stack, Windows 10 and its biases have potential to culturally influence your solutions and solution delivery over the next decade.

Tech in the 603, The Granite State Hacker

Trading iPhone for Windows Phone – What You Give Up

As Jornata continues to integrate with BlueMetal, lots of things internally are coming together.  One of the things I’m loving is the internal dialog with the team that I’m now a part of at BlueMetal.  Our “geek chat” messaging reminds me of the best dialogs I’d been a part of at other companies, except amped. This isn’t coming from just any technology architect. These folks are well-known technology thought leaders, evangelists, and MVP’s. With sincere respect, I’ll try to avoid getting myself in trouble with them and BlueMetal, but I’m feeling a bit like a kid in a candy store.

Being the C#/mobile (and therefore Windows Phone) junkie that I am, I always watch what’s going on in the space. 

While the Windows Phone market share at BlueMetal is significantly higher than the general population, BlueMetal’s not just some extension of Microsoft.  There’s a lot of the team internally that are Apple and Android fans.   Naturally, when the news of Apple Watch broke, the conversation really picked up, and it was all fantastic stuff to consider.

One bit that came up that I wanted to write this post about, however, was a number of misconceptions that Apple fans had about Apple vs. “not Apple” in the smartphone area.  I can’t resist. There are good reasons to not consider Windows Phone, but some are just misunderstandings.

Here was a viewpoint:
————-
The things I would be giving up by switching [from iPhone] to Android or Windows Phone:

  1. iMessage 
  2. Photostream
  3. Find My iPhone
  4. My apps – the ones which I’ve already bought and the free ones which all work so well.  Windows phone doesn’t have the volume of Apps and Android doesn’t have the stability and polish
  5. iCloud backup
  6. iTunes – songs  I purchase are automatically downloaded to other iPhones and Macs
  7. Apple Watch
————-
 
The response was quick and, interestingly slanted in defense of Windows Phone… here’s a synopsis, including my own viewpoint:
  1. iMessage is platform specific, locking out non Apple users.   Consider Skype, Lync, or even Facebook Messenger instead.
  2. Photostream – Windows Phone has this functionality built into the OS, uploading photos to OneDrive.  (and OneDrive has working multi-factor authentication, so you won’t have to worry so much about selfies unexpectedly going viral.
  3. Find my Phone – yes, built into the Windows Phone OS… just a check box, and yes, it’s saved several of my family members more than once.
  4. Apps –  I have to admit, there’s no recovery for the investment made on iPhone/iPad apps, but there is this saving grace…  with Windows Unified apps, the app purchases you make on phone apps often entitle you to the same app for tablet and PC as well.   The marketplace is improving daily, so the general marketplace app gap is narrowing.  The Windows Phone app marketplace has better technical governance than Android’s, but not as mature as Apple’s, yet.
  5. iCloud backup – Windows Phone has OneDrive backups with much easier access to the content.
  6. iTunes – consider Xbox Music. With a low priced subscription, you can stream music to your phone, PC, tablet, and Xbox, and if you purchase or rip music, it makes it available thru the cloud to ask your devices… No need to sync your phone with a PC. Content just shows up.
  7.  Apple Watch?   Hard to say on this one… but I consciously traded my watch for a good smartphone long before iPhone came out.
Still others piped up and noted how well integrated Windows 8 & Windows Phone 8 (and I would add Xbox)…  All of them work independently, but put them together, and you have a ton of really great ways to do things like manage your home network, participate in entertainment, and even keep your kids safe while browsing the ‘net.
 
In my opinion, Apple serves a few purposes…  they change folks’ minds about what technology is socially acceptable.  The industry needs them for their competition and for their tech fashion sense.
 
It seems clear to me that the net result is that by trading in an iPhone for Windows Phone, you give up some investment in Apple, but you gain quite a bit of functionality and security for doing so, especially if you’re also a Windows and/or Xbox user already.
Tech in the 603, The Granite State Hacker

Cloud or Windows 8 Killing the PC Market?

Everyone’s busy scratching their heads as of late, and then pointing.  Who’s killing the PC market?  

Slashdotters are loving the idea that it’s Windows 8 ( http://tech.slashdot.org/story/13/04/11/002200/windows-8-killing-pc-sales ).

…but I fully call BS on that.  (Thankfully, Slashdot corrected itself to some extent.)

Then I came across this article by ZD Net blaming the cloud:
http://www.zdnet.com/whos-killing-the-pc-blame-the-cloud-7000013954/#postComment

The CLOUD?

That’s kind of like saying the Boeing 787 is killing the auto industry.

The cloud may be killing the server market, but that’s not the PC market…  the server market is busy supporting the cloud providers, though, so I don’t think they’re too bad off. 

If Windows 8 is holding the PC market back, it’s this:   I have upgraded every PC I touch (and then some) to the latest Windows 8 Pro, with no need for additional hardware, (because you were ill advised (or unadvised) if you’re a Windows user who didn’t take advantage of the $40 PRO edition upgrade offer from MS while you could.)

What’s killing the PC market is rooted in applications… especially games, on a couple levels:

1)  the fact that there’s only ever been one reason to have heavy iron at home:  games.  Games have gotten to the point that spending a few thousand dollars on a new machine won’t significantly improve your desktop gaming experience… so… unless you have that kind of scratch to waste, why bother?

2)  The games people want to play are on mobile devices.  As much as I love my desktop games, there actually have been a few mobile titles that have been engaging enough that I have taken time off from raiding to play them.

There is also the fact that the economy in general sucks, and while older PCs can continue to function, newer PCs are discretionary purchases that can (or must) wait.  

I can say from example, I’m aware of someone who has a laptop that, through what appears to be planned obsolescence, has broken in a couple of “expensive” ways… the display and keyboard are both dead.   Rather than pay a grand or more for repairs that would cost more than a new machine, or even pay the money for the new machine, the solution was to pick up a USB keyboard, and a cheap monitor… it now serves quite adequately as a desktop…  (and it was also upgraded to Windows 8).  (In any case, I’ll never waste money on that brand of laptop again.  🙂  )

If the hardware market wants me to spend, they’ve got to do something that will get me to feel like I’m not burning bucks for 10 additional frames per second, or… change their model… radically. 

Or… show me my favorite desktop title with an improved experience through touch screen…  but even this can be overcome with something like a LEAP Motion sensor for less than $100.

Bottom line… I think what we’re seeing is, for the first time, honest to goodness inflation hitting the PC market, and it’s choking on it.

Tech in the 603, The Granite State Hacker

Windows 8 Hyper-V Advanced Tips For ESATA

Here’s a couple tips for a perhaps not so unique situation when using Hyper-V hosted in Windows 8 Pro with an ESATA spindle involved. 

1)  Moving a snapshot file to a different drive for performance reasons.

Hyper-V does not support keeping shapshot difference disks in folders separate from the base disk.  If you’re like me, and store the main VHD on an E-SATA disk, performance isn’t bad, but could be much better if you could move the AVHDx file to a different physical drive, preferably a full speed drive.  This issue is minimized with solid state drives, but if you don’t have one, the best bet is to create your snapshot, remove the disk from your guest VM, move the AVHD file to an accessible location, and then re-attach it.  (Don’t take my word for it:  back stuff up first!)  Once you re-attach, it should run your read/write activities in the avhd, and pull data from the vhd file as needed.

[Edit:  The trick to this part is figuring out where the config files are so you can modify them.  They live at C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\, but the files themselves are XML files with GUID names. 

I typically find the correct one by simply looking at the modified date… it’s probably the one you most recently used. 

Before you can edit these files, you must shutdown the Hyper-V Virtual Machine Management service, and before you start it back up, you’ll have to make sure that the account this service runs with has read/write access to the .avhd, wherever you put it.]

2)  If your E-SATA drive is hardware encrypted, shut off power management.

One issue I was running into that was hosing the host and beating on the guest OS…  My ESATA disk has a keypad that you have to tap out a PIN on in order for the disk to function.  Power management was shutting down that drive at about 20 minutes by default, causing the disk to reset and disconnect, even with a VM running off of it…  this is the computer equivalent of crossing the streams… suffice it to say it’s Bad™.  So using advanced power management, I was able to tell the system to stop spinning down the drives while the power cord was plugged in.  (If I’m on battery, I typically won’t be running my VMs on it.)

Tech in the 603, The Granite State Hacker

My Windows 8 Adventure So Far

I had different reasons for doing each of the upgrades I’ve done so far… Here’s a list of the upgrades I’ve done so far, and why… maybe something I talk about will resonate:

My home PC (desktop):
I upgraded my computer initially to see what it was like. For $40, you don’t even have to go to the store to buy it.  That’s the Pro version, you can buy that to upgrade XP, Vista, and Windows 7 computers…  and it’s a way better price than the $200 upgrade from Windows Vista to Windows 7 for example.   It’s a relatively easy web-based upgrade. (I encountered some quirks with Symantec/Norton anti-virus, but Windows 8 includes security apps which make a good replacement.)  I’ve found it to be as solid as Windows 7, and once you get used to the mouse gestures and the way “Modern UI” works, navigation is easier than it was in Chicago-era UI’s (The UI we’ve basically had since Windows 95).

I also intend to explore app development with it. 

I’m also deciding my hardware upgrade path.  It’s an inexpensive way to get a grip on what devices I might want to invest in, going forward… for example, do I want to upgrade my current PC, which is great but has no touch screen support, lacking virtualization support, or do I want to bite the bullet and get something more current. 

I’m still deciding on a tablet, and it’ll either be “Surface Pro” or “Surface RT”…  I don’t want to invest in iPad or iPhone because they aren’t going to provide the level of integration I’m seeing and liking with the Windows 8 generation of devices.   Right now, I’m actually leaning toward maybe getting a Surface RT tablet, which are already available at Microsoft Stores at the mall…  the Surface Pro will be more fully featured, but cost more.  I’m thinking for what I want to do with a tablet, the RT will suffice, and if I need more horsepower from my tablet, I’ll just remote into a regular computer.
 
My wife’s PC (laptop):
I upgraded my wife’s computer because she & the kids loved the free games they saw me get from the app store… which works a lot like app stores on iPhone, Android and Windows Phone… they all mastered the “Modern UI” the first day, and found it to be an improvement, as well… so she got the “shiny new” experience on her older laptop.

That experience also enabled me to check out how Windows 8 devices (this includes computers, laptops, tablets, and phones) all communicate through the cloud…  I was easily able to transfer my profile from my desktop to my own login on my wife’s laptop.  This is something that Microsoft has been trying to make better for years, and used to only be available to Enterprise users, but now, thanks to the cloud, it’s something anyone can take advantage of.

My sister-in-law’s PC (laptop)
I upgraded my sister in law’s machine to get a less-involved, not quite so technical perspective on it. She picked up the new features right away, and is enjoying things like the free apps… Fresh Paint is one she mentioned as being a favorite, which is one my daughter is particularly fond of, as well.  She’s had an odd behavior with it that I have to fix next time I get the chance, but it’s just that startup takes longer than it should. 

My work machine (laptop)
I upgraded my work machine because I use Virtual Machines a lot, and Windows 8 has an updated version of Hyper-V in it… I was a bit nervous about this at first… my work depends on not screwing up my VMs, but after getting my first VM migrated from VirtualBox, I’m really glad I did it… Results so far are that performance seems better, and it’s just so much more flexible than VirtualBox was.  I’m hoping to see some bugs I encountered in my VirtualBox hosted machines go away too, haven’t tried that just yet…  (Stepping through code was a bit flaky in VirtualBox VMs)

To come…  My Mom’s machine (desktop)
I’m upgrading my mom’s machine for more practical reasons.   I think the UI will be easier for her to get around.  That said, it’s mostly the fact that Windows 8 has better apps included than what she’s using. (For example instant messaging, email, news… the web-based apps she’s using are limited in comparison.)  She’ll be able to toy with the apps from the app store, as well, which will be relatively a new technical freedom for her altogether.

Still…
If you want to see Windows 8 in action without risking a computer, I recommend stopping by a nearby Microsoft Store.  They have them set up so you can spend a bit of time playing with them, and plenty of people around to bounce questions off.