TWIL – 2016 Week 19

This is the first post in a series of posts called “This Week I Learned”. I’ve enjoyed reading the weekly summaries from local East Tennessee developers such as Geoff Mazeroff, Cameron Presley, and Avdi Grimm that I thought I’d start posting my own version. If I run across something I find interesting, I’m going to make a note and post it in this series. The plan is to do these weekly-ish. These are more for my own benefit than anything else, but with any luck, you’ll see something interesting as well.

Technology

Codestock 2016 Sessions
I’m excited to see the lineup for Codestock 2016. Lots of great talks about all kinds of topics. I was one of the conference organizers for the past few years, but this year I’m excited to be a regular attendee so I can actually attend all the great sessions. I’m sure this year’s conference will be the best one yet. If you’re in or around Knoxville, TN, you should definitely check it out.

Getting Ready for ASP.NET Core RC2
I’m trying to follow along with the progress on .NET Core and looking forward to using the new ASP.NET on Linux. Shawn has been staying on the bleeding edge, so it’s a nice preview of what things are changing at the code level before RC2 is officially released.

Create a Desktop App With Angular 2 and Electron
Learning a bit about building an Electron app with Typescript + Angular2. For what it’s worth, this article is pretty out of date and does require changes to get it working with the latest Angular2/Electron. I’m sure there are some better pre-packaged getting started samples, but this one got me what I needed to play around.

Service Fabric Party Clusters
I’ve held off on trying out Service Fabric since I didn’t want to spent too much just to build out a sandbox environemtn. It turns out, Microsoft actually has a sandbox you can use for free. I haven’t actually deployed anything to it just yet, but this is definitely on my todo list.

.NET Rocks! – Show 1293 – The Evolution of Services with Juval Lowy
I can’t say I total grok everything Juval was talking about since it was very fast paced and at a very high level, but it peaked my interest. It’s something I’d like to dive into a bit more. The idea is that quite literally everything should be a service (e.g. he mentions things as low level as an Integer service). Lots to digest.

.NET Rocks! – Show 1294 – Thinking Android with Joshua Vergara
As an iOS user, it was interesting to hear the perspective of someone immersed in Android, but not an Android developer. Nothing too Earth shattering in this one, but entertaining.

Hanselminutes – Practical Containers for Developers with Aja Hammerly
Really interesting hearing more about the benefits of containers and Kubernetes in particular. Kubernetes is definitely on my list of things to research more & maybe spin up in a test environment. I’ve thought about using Docker on some of my hobby projects, but I’ve been looking for a way to manage multiple Docker containers. It sounds like Kubernetes is a good candidate for that task.

Health

2 Keto Dudes – Show 10 – Alcohol
I’ve been on a low carb diet for about a year and a half now. I haven’t been doing keto and I don’t really drink either, but I found the show to be really interesting.

2 Keto Dudes – Show 11 – Newbies
In this show, they talk to Carl’s daughter who recently started on a keto diet. It’s interesting to hear her experience just starting out.

Life

Being a parent sucks (but not the way you think)
As the parent of a toddler, I think this article does a nice job of articulating what it feels like to be a parent. I can totally relate to this even this early on in my parenting experience. I’d say this would be a great read for expectant parents, but I don’t think I would have been able to appreciate this prior to actually becoming a parent.

Fun

Kaggle – State Farm Distracted Driver Detection
I’ve wanted to mess around with machine learning for a while, but couldn’t find a good project that needed it. This past week, I discovered Kaggle which is basically lots of challenges (some for money, some for fun) that all need machine learning. The nice thing about this site is that it gives you training data, test data, and a way to actually rate how well your algorithm worked. This particular challenge is one where State Farm took lots of driver facing dash cam photos and they want you to classify them. The idea is to detect if the driver is distracted and if so, what caused the distraction (e.g. phone, drink, talking to passengers, etc). I don’t know that I’ll actually be able to solve this one, but it’s something that’ll give me a real world problem to try to solve (with the data needed to solve it).

Birth of the almost-fully 3d printed Automatic Cat Feeder
My cat has had an automated feeder for many years, but it’s starting to have enough issues that I’m thinking about a replacement. I’m toying with the idea of building my own 3D printed, cloud connected cat feeder. Lots of the projects use laser cutters and/or PVC to build a cat feeder, but this one is all 3D printed (except the wooden enclosure). It’s giving me some ideas that I could prototype on my Lulzbot TAZ.

Why I’m Excited About VR

Virtual Reality (VR) is something I’ve dreamt about for a very long time. If I had to pinpoint when I started getting interested in it, it was when I first saw the Holodeck1 on Star Trek: The Next Generation. It’s one thing to read about some fantastical world in a book and another to see that world come to life in a movie or even a traditional video game. It’s an entirely different experience to experience that same world yourself in VR.

In VR, there is the notion of “presence” – the sense that you’re actually there existing as part of that virtual world. It’s hard to describe until you experience it yourself, but one tiny, but powerful example is the Oculus Henry trailer.

In this trailer, you meet the star of the movie Henry, a little hedgehog. He comes out of the shadows and stands in front of you and puts our his arms for a hug. This trailer is interesting because of two reasons. First, Henry certainly looks like he’s standing right there in front of you due to the quality of the 3D rendering. Second, and more importantly, Henry knows where you’re looking2 so he actually makes and maintains eye contact with you as you look around. That makes it feel much more “real” than any other 3D I’ve seen.

You’ll see people compare VR to 3D TVs and 3D movies. While VR and older 3D content such as that certainly share a few things in common, most notably, the notion of depth, that’s about the only thing they have in common. With older 3D content, everything you saw was from a fixed viewpoint…you couldn’t move your head to see around an object or look in a direction the director didn’t intend. When you add in the freedom VR hardware gives you, it’s such a different experience.

The first VR experiences will be mostly games and entertainment experiences, which will certainly be great, but I’m most excited to see what other industries adopt VR. In particular, I think there is a ton of potential in the education space. One of the demos I tried put me in a classroom talking about dinosaurs and then it took me back in time so I could see the dinosaurs as I learned about them. Content like that will be amazingly powerful once VR becomes much more accessible & cheap.

I’ve experienced a ton of 3D content in my life and I can honestly say, nothing compares to the experience of VR. The VR that exists today is the first major step into the future. I can’t wait to start experiencing the amazing new content that is now possible and I’m even more excited to see what comes next.


  1. Yes, yes, I realize the Holodeck isn’t VR, nor is it augmented reality (AR). It’s practically a universe simulator in many ways and that’s quite a few steps from where today’s technology stands. 
  2. Technically, the consumer technology out there now doesn’t know exactly where you’re looking, it only knows where your head is pointing. If you keep your head pointing straight ahead, but look all the way to the left or right with your eyes alone, today’s VR hardware doesn’t know you’re not actually looking straight ahead. This will change in future hardware versions, but for all practical purposes, it’s a pretty safe bet that you’re looking straight ahead so the effect works really well even without this detailed eye tracking. 

My Thoughts on the Surface Pro

Now that I’ve had a week and a half of real world use with the Surface Pro, I thought I’d share my observations.

The TL;DR version is that I feel like The Verge’s review was spot on and at the end of the day, the device had too many compromises for me to justify the price tag. It’s a well made device with lots of potential, but that potential isn’t realized today.

My Priorities

I had (and loved) my Acer convertible TabletPC back in 2004/2005. It was perfect for college when combined with OneNote. I really want something just as useful today for taking notes, doing some diagraming/whiteboarding, basic sketching, and photo editing. The pen was great back then, but multi touch was missing. A pen combined with multi touch technology seems like it would make an excellent note taking device and that was my main driver with the Surface Pro.

As a secondary benefit, it would be nice to have a Windows development machine that is portable, yet powerful enough to handle any tasks I need. I have a Windows 8 desktop and I have a 17” MacBook Pro that has a Windows 8 boot camp partition, but neither of those are really as portable as I would want. I’m mostly an iOS developer these days, so this feature isn’t critical, but it’s certainly a nice to have.

Finally, it would be great if I could play most of my Steam games (even on low settings). I’m not usually at my Windows desktop most of the day, but it’d be nice to be able to pop in and play a little Borderlands or Diablo 3 without having to be tied to my office machine. This is a very low priority, but I’d be another nice to have.

Initial Impression

The Surface Pro looks and feels really nice. The build quality is excellent. The pen is the only component that feels a little cheaper, but it’s a light tube of shiny black plastic compared to the solid slab of metal and glass. The screen is bright, vibrant, and clear. I’m not a fan of the 16:9 aspect ratio, but most people don’t seem to mind it. The out of the box setup is fast and simple – I think it actually had less setup steps than my iPad which is impressive from Microsoft.

The kickstand is solid and the USB 3.0 port is blazing fast (if you have a good USB drive). The kickstand is nice and works excellently when propping the device on the counter to watch Netflix while cooking. It works great in laptop mode on a solid surface, but it’s hit or miss when using it as a laptop on your lap. It works, but I had to keep fiddling with it to get it to balance properly and to get the screen at a good viewing angle.

Overall, the Surface Pro is a very impressive package.

Type Cover

Since I knew I’d be using it as a laptop whenever I wasn’t taking notes, I picked up a Type Cover. The Type Cover is one of the best tablet keyboards I’ve used. It took about an hour for me to adjust to it, but after that, it felt great. The magnetic connector is very secure and I had no concerns about it sliding off in my backpack like my iPad’s Logitech Ultra-thin Keyboard does. The trackpad area is very responsive, but it’s so small, it’s unusable unless you’re in a pinch.

The big downside is that the keyboard has some serious responsiveness issues if you use it on your lap or any other non-solid surface. I would randomly experience ignored key-presses – not just once or twice, but nearly half the time. I’d have to press the key 3 or 4 times to get it to register the key press. The keyboard was barely flexed, but I never experienced this when using it on a solid surface.

At $130 on top of the Surface Pro’s price, it’s not a cheap cover at all, but to me, this is a must have if you buy a Surface or Surface Pro and expect to do any decent amount of typing.

The Pen

The pen is really well done. It’s Wacom tech, which means it’s very accurate and there is zero noticeable lag between pen movement and when the “ink” shows up on the screen. It has great pressure sensitivity and feels like a ballpoint pen in your hand. I really wish Microsoft included a slot for the pen.

The pen magnetically connects to the device via the power port. That means you have to leave your pen on the table while you charge the Surface Pro. I was constantly checking the pen when I was carrying the tablet to meetings – the connector magnets are strong, but depending on how you hold the tablet, it’s really easy to knock the pen off and never notice it’s lost. This was particularly a problem for me when I would pick the tablet up. The pen never detached while it my backpack, but it would nearly always detach when I picked up the tablet from the side (usually when I was pulling it out of my backpack).

In use, the pen worked great – particularly with OneNote 2013. I wish there was a little texture on the screen of the Surface Pro so there was a little bit of resistance, but I’m sure that would impact the quality of the display in other ways. The pen is every bit as good as I was expecting.

Tablet Mode

I know it’s not a big surprise to anyone, but there is still no ecosystem of Windows 8 touch interface apps. I found a few third party apps (Stacks for Instapaper & Nextgen Reader come to mind) that were nice. The Netflix app was excellent – it’s probably the best implementation of Netflix I’ve seen on any device. Outside of that, I found the app selection to be really, really lacking.

Microsoft has plenty of their own apps for calendaring, email, address book, etc. All of these apps work, but they are about as basic as you can get. I’m actually OK with basic for the most part, but Microsoft decided not to support CardDAV and CalDAV protocols in the contacts app and calendar app respectively. That essentially means I can’t access any of my Google contact or calendar data out of the box. It turns out, you can go to live.com and in an obscure mean, you can link your Google contacts to your live.com account and gain access that way. For calendaring, you can import an iCal feed from the live.com site, but it’s a one way, one time import which is pretty much pointless for me since I can’t see my current Google calendar let alone update it.

When I was using the tablet mode apps, the charms and multitouch gestures work well for the most part. The charms make a heck of a lot more sense when using them with touch vs a mouse on my Windows 8 desktop. I love the share charm. It makes a ton of sense when apps implement it properly and I genuinely hope something like this is implemented on iOS and Android in the future. I had some trouble moving tiles on the desktop – sometimes it would think I’m was trying to scroll, sometimes it would select the tile, and sometimes it would move the tile. Overall, the experience using the touch interface was very positive, but there just aren’t any apps to use there and Microsoft needs to step up their game with their built-in apps – both in features and interoperability with other services (specifically Google accounts).

One day in the future, the tablet experience on a Windows 8 device may be excellent. The hardware is very responsive overall, but the software needs polish. The biggest deal breaker though is that beyond Kindle, Netflix, and a few other apps, you simply can’t find any apps worth using in tablet mode.

Desktop Mode

The desktop runs extremely smoothly and everything is very snappy thanks to the SSD. I loaded Visual Studio, SQL Server, Resharper, Lightroom, Sketchbook Pro, Chrome, and several other apps that are essential for me. I also installed the Office 365 trial – mainly because I wanted OneNote 2013.

Since Windows doesn’t natively support high density displays and the Surface Pro has a high density display, Windows is set by default to scale the desktop by 150%. The impact of this is that everything on the screen is magnified so icons are reasonably touchable and most system text (menu bars, etc) is readable. In this mode, all of the Microsoft developed apps run great and look really sharp.

Third party apps, (Chrome most notably), were a blur fest. Text was muddy looking and touch detection seemed really flaky. Links wouldn’t activate when I tapped them and Chrome generally acted funny. Sketchbook Pro worked well, particularly with the pen, but it doesn’t support pinch to zoom – you still have to get a zoom tool from the menu bar if you want to pan & zoom and that’s unfortunate. Lightroom ran fine, but it was almost impossible to use the interface via touch. Using a mouse or the Type Cover’s touchpad generally worked fine with these apps even with scaling turned on. I know the Surface Pro is new, but Windows 8’s touch features have been available to developers for quite a while – so I’m curious if third party support will improve.

When I connected my external monitor via mini DisplayPort, everything was blurry – scaling was applied to it as well even though it didn’t need the scaling. I disabled desktop scaling and that solved the external monitor issues and made Chrome look & act normal, but that caused all system text and icons to become super tiny. Using desktop mode with scaling turned off was quite a challenge – ideally, third party apps will be updated to properly work with scaling turned on and to incorporate the new touch API, but I didn’t find a single non-Microsoft app that I use which did that today.

Gaming

For my purposes, this wasn’t critical at all, but I wanted to give it a try so I installed Borderlands 2 and Diablo 3. Borderlands 2 never really ran properly for me. I couldn’t actually select any of the menu items once I got to the game’s main menu. I think this had to do with the desktop scaling, but I didn’t try again after I disabled scaling. The main menu was having trouble rendering at a reasonable rate, so I didn’t have high hopes.

Diablo 3 actually ran nicely. I used a Microsoft Wedge Touch mouse instead of the trackpad on the Type Cover and it was definitely playable. At 1080p, the game stuttered quite a bit even with no enemies on the screen, but dropping the resolution to 720p made things run smoothly. The Surface Pro definitely got very, very warm to the touch (particularly on the top of the unit) and the fans kicked into high gear, but they were still much more quiet than my MacBook Pro’s fans. Diablo looked really nice on the display even though it wasn’t running at full resolution.

Overall Thoughts

My main use case was taking notes and sketches. When doing that, the tablet works well. Navigating OneNote 2013 could be much better though. It’s still a desktop interface designed for a mouse (e.g. you still open up the ribbon menu to get different pen colors, line widths, etc), but once you’re just writing (and not creating a new page, changing pen color, etc) things are good.

The most disappointing thing is that OneNote 2013 feels very much like the original version of OneNote I used on my original TabletPC. As far as ink support and handwriting recognition, that’s a good thing, but it’s very disappointing to see the interface wasn’t updated for touch use. It’s also worth noting that the OneNote app for iOS can’t display ink – it just displays “[ink]” anywhere you wrote with the pen…making my notes useless there. The OneNote web interface does display ink, but my ink was almost unreadable on the web. Ink that was totally readable and regular size on the tablet looked 2x as large on the web and there was no way to zoom out.

I’m really disappointed with the support for 3rd party apps. Specifically Sketchbook Pro 6 and Lightroom 4. Sketchbook handles the pen just fine, but I was really expecting to be able to use pan & zoom via touch since that’s available on every other platform. Lightroom was disappointing – it ran very fast, but without a mouse, it just wasn’t usable on the Surface Pro’s screen. I realize these issues aren’t within Microsoft’s control, but they they definitely impact the value I received from Microsoft’s platform.

My biggest worry is the battery life. I get 3-4 hours with reasonably light use. The battery connector is proprietary and needs to be plugged into the wall – you won’t be charging this off of another PC’s USB port. The power brick is smallish, but it’s something that has to stay in my backpack constantly. If I forget to charge the tablet overnight, there is a good chance I’ll have to plug it up as soon as I get to the office to make sure I have enough juice to make it through a few hour long meetings. I’m used to having my iPad battery last days without worrying about it and for something I need regularly, I really wish I had more than 3-4 hours of power…or at the very least, I wish I could trickle charge it off other nearby computers.

The tablet mode has tons of potential and was a nice experience, but until there are many, many more quality apps, it’s an experience that no one will see. The desktop mode is functional, but I don’t understand why the device has a high density display when Windows clearly isn’t meant to run on one and it’s extremely obvious as soon as any non-Microsoft app is launched.

At the end of the day, I can’t see myself reaching for the Surface Pro instead of my iPad when I have tablet type tasks to do. I also can’t see myself reaching for it over my MacBook Pro when I’m at home and need to do more desktop type tasks. It’s definitely the best device I have for note taking, but due to the really limited battery and several smaller issues, I don’t feel that I can count on it always being ready to go when I need it for note taking.

I’m not set on having one single device that can support all three of these scenarios, so I’m ok using three different devices. The catch is my iPad is really great at being a tablet, my MacBook Pro is really great at being a Mac/PC, but my Surface Pro is only moderately good at being a note taking device outside of the excellent pen support – it’s just a very clunky, disjointed experience and I’m not sure I want to deal with that. There are many good ideas spread across the hardware and software of the Surface Pro, but I don’t feel Microsoft has found a way to combine those pockets of good ideas into a compellingly useful product just yet.