CODEM: Compile Once Debug on Many Using HoloLens and Visual Studio

I first published this post over on WinDevs .Net, but though I’d share it here too on my general blog. The full text is reproduced below.

Microsoft’s recently announced HoloLens, the world’s first augmented reality headset, to be powered by Windows 10, and some never-before-seen hardware technology, like an HPU (Holographic Processing Unit), offers completely new opportunities for software developers and computing in general. One such opportunity for software developers I have termed CODEM: Compile Once DEbug on Many software debugging and testing using HoloLens and Visual Studio.

Visual Studio is already a solid multi-platform, multi-device, integrated development environment (IDE). But currently when you compile a project you can’t target multiple platforms or devices simultaneously and run them side-by-side to see how things are coming along. With HoloLens, coupled with advanced Visual Studio emulators, this could indeed be the development environment of the future.

Imagine developing a Windows Universal App targeting desktops, tablets, and phones and being able to display their emulators side-by-side during testing. “Well, the phone and desktop look good, but the layout isn’t adjusting properly for 7″ to 8″ devices.” With HoloLens you’d be able to have say three emulators running side-by-side, visualized against a large whiteboard. You could reposition them, resize them, and interact with them as if they were physical devices running a release build. Something’s not quite right? Fix, recompile, retest and make sure all of your targets are working properly.

My ultimate vision is that at compile you’d be able to not only target multiple devices simultaneously, but also multiple platforms. Imagine having a Windows phone, Android, and iOS emulator running together, side-by-side, with different sized screens for each, targeting either specific phone models and/or general screen sizes, and being able to interact with all of them through HoloLens.

Conceptually, CODEM seems to be a simple and obvious idea, but certainly it would take quite a bit of development to make this vision a reality. Nevertheless, history has proven that if a possibility is technologically feasible, it’ll happen. And I’m looking forward to the day CODEM becomes the standard for software development.

Code well, code often!

The Socialization of Uber

On December 14, 2014, Australian time, a man took hostage several people in a downtown Sydney café. Initially few people in downtown new about the situation, but once it broke the news people began fleeing the city not knowing what was to come, possibly fearing it might be the start of a larger terrorist attack. For some, they escaped using Uber, a car ride-sharing service similar to a taxi service. People hail an Uber ride via an app on their computer or smartphone. Uber determines the price of a ride based on location, distance of the ride, traffic conditions, and simple supply and demand between its available drivers and people wanting or needing a ride.

In the case of this hostage incident, the demand for rides became very high, much higher than was expected. As a result, Uber effectively ran out of drivers. To encourage drivers to go to downtown Sydney and give people a ride, Uber increased the price of a ride to a rate much higher than normal. According to The Washington Post, the minimum cost was $100 Australian ($82 US). Since you pay upfront with a credit card, initially people didn’t care. They just wanted out of downtown, away from the hostage situation. But after everything settled down, they protested the price rise and demanded Uber give them a refund. It was unfair, they said, to take advantage of people in a time of crisis by raising prices.

I find this reaction incredibly odd. Not Uber’s reaction. Uber’s users’ reaction.

Anti-gouging laws are not uncommon. These laws prohibit businesses from raising prices exorbitantly, as determined by politicians (oh the irony), during times of crisis (i.e., natural disasters, terrorist attacks, etc.). The goal is to prevent businesses from taking advantage of consumers when they are most vulnerable. Ok, I’ll give you that.

What I find odd about this whole situation with Uber is that Uber wasn’t even available in Sydney until the end of 2012 (per Wikipedia). And yet because it has chosen to do business in Sydney, just two years later Uber has effectively become obligated to provide a service at a price that may or may not be reasonable, but rather politically palatable. In other words, Uber has become a social program, forever indebted to society for being given the privilege to operate.

The Future is Windows 10

In May of last year I wrote about how the PC wasn’t dying, as people were claiming, but rather that the forms of our computing devices are simply changing. I also talked about how one day we’ll all have just one computer, say a smartphone, that will power every computing use case we’ll demand. Well, today Microsoft announced that they also believe this is the future and they are paving the way with Windows 10. Absolutely brilliant!

Windows 10 in a very small nutshell is going to have a unified operating kernel that will work on all devices, from smartphones to tablets to laptops to desktops, from the smallest of screens to the largest of screens. The OS will detect the type of device it is running on and at the very least will modify the user interface to best take advantage of the form factor of the device. But perhaps it will also modify its own installation, so as not to install things that can’t be used by the device, but I’m not sure about this last part.

I’d like to say that I influenced Microsoft’s direction, but that’s incredibly naïve, as unifying Windows is a massive undertaking that has been in the works for years by thousands of people. It started with Windows 8, the Surface products, and Xbox One. And we’re seeing the next step with Windows 10. The possibilities are endless and I’m looking forward to seeing where this is going to take the computing world.