Lance Larsen - .NET Architect Madison Wisconsin

IMG-8123Awesome – so you now own the best VR headset in the market – one of the Microsoft Mixed Reality Headset (MRH)…!!!  (or are looking to get one) 

Best in class hardware + no external sensors (“Inside-out-tracking”) + more and more applications being released every day.

And of course you want to share it…

Take it to your friend’s house…

Take it to community developer groups and show off all the awesome stuff you’re creating… 

But it didn’t come with a case… and if you search for a case online, no specific cases (or very very few) come up.

So… I bought 4 different cases from Amazon that were marketed for either the Sony PlayStation VR, HTC Vive or Oculus Rift  – and here are the results for both the HP and Samsung Mixed Reality Headsets.  Noting that the Samsung has build in headphones and is therefore larger than the HP.

(1) Hard EVA Travel Case for Sony PSVR by Hermitshell ($32.99)  [Left case in picture]
  PROS:  Best case of the group – fits both Samsung and HP – space for controllers – very sturdy case.
  CONS:  NA
  Recommended for both Samsung and HP – with controllers.

(2) Hard Travel Case for PSVR Virtual Reality Headset by co2CREA ($29.99)  [2nd case from left]
  CONS: Does NOT fit Samsung.  Very flimsy.  Overwhelmingly very strong plastic smell.  Not recommended.

(3) Khanka Hard Case Travel Bag for Sony PSVR ($26.99) [3rd case from left]
  CONS:  Does NOT fit Samsung.  Overwhelmingly very strong plastic smell.  Not recommended.

(4) Storage Case for PlayStation VR ($13.99)  [Last case in picture]
  PROS:  Fits the HP headset – sturdy case. 
  CONS:  Does NOT fit Samsung.  No space for controllers.
  Recommended for HP without space for controllers.

IMG-8114IMG-8121IMG-8122IMG-8120

imageMixed Reality: Building the Age of Experiences

Slides (without Video) from one of the several Hololens / Mixed Reality presentations.  Truly exciting times to be in tech.

imageShowing off the new Microsoft Mixed Reality devices at a lot of awesome events lately…

If you love VR (Virtual Reality) / MR (Mixed Reality) and now XR (eXtended Reality) as much as I do – don’t miss this upcoming event … on Tuesday 12/5

I’ll be there with the latest and greatest from Microsoft – including the new Samsung Odyssey MR Headsets –and- of course the Hololens :)

And sign up for the Madison XR Meetup Group for future awesome events!

312

Opened up the HOLOSOFT office to the local High school and community to experience Mixed Reality and VR… 

Amazing to thing about what this technology will look like in a very short amount of time, and by the time these kids are our age – it’ll be something that we can’t even imagine today.  Truly the stuff of Science Fiction…

imageMadison Area Technical CollegeCan’t help but smile when students of any age get excited about technology! 

Spoke to the Computer Science department at MATC (Madison Are Technical College)!

Presented and demoed the latest in Mixed Reality – and as you can see in this picture, they were immersed… :)

Always willing to come talk to students or colleges to help them see what’s possible – just reach out to me!

imageIMG_6052Actively engaged in the organization and planning of the Harry Potter Festival in Jefferson, Wisconsin!  Great event!

Setup a free Mixed Reality / Virtual Reality experience for children of all ages :)

We setup and ran…
- 1 Microsoft Mixed Reality Headset (with just arrived controllers!)
- 4 Hololens
- 3 Oculus Rifts
- 1 HTC Vive

The event had in excess of 40,000 attendees!  Wow…  

We ran all of our systems for two days straight – and almost always had lines waiting for each station.

Was all worth it seeing the amazement and joy on so many faces that had never tried anything like these devices – especially love the Hololens “WOW” response from so many.

Best compliment of all – from more than one – was “…that was the most magical experience we’ve had… thank you!”

Wait until you see what we have next year!

22688394_10212325482231134_765790824387149877_nIMG_6039IMG_6048IMG_6091

MadisonVR_2017.10.25Awesome talk at one of my favorite meetup groups, the Madison XR Meetup!

Fantastic audience for “Imagining New Realities for XR/AR/VR – the Next Generation Human Machine Interface (Unity + .NET)

Went through current and future XR/AR/VR devices – with a focus on the Hololens and the brand new Microsoft Mixed Reality headsets! 

With my latest talk “Mixed Reality: Building the Age of Experiences with Lance Larsen (Microsoft MVP)” (now on LinkedIn SlideShare! – sans videos)

So many exciting releases of both hardware and software. :)

Looking to get the latest Microsoft Mixed Reality devices? check these out…

Needed to add MP4 video support to an ASP.NET website project. 

Found that adding the following made that work great when I deployed to Azure.

<!-- ====================================================================== -->
<!-- Required to have Videos show up when deployed to Azure  -->
<!-- ====================================================================== -->
<staticContent>
  <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
</staticContent>

Alas, when I refreshed the cache on my browser – all of my CSS and Javascript files would not load, with the dreaded 500 errors.

So apparently, as soon as you add any <staticContent> settings – you need to add all possible settings.  Counter intuitive, so wanted to share the a comprehensive non-trivial fix that worked for me.

If there’s a better way to do this – love to hear it…  Also may be a better way to do this in ASP.NET Core – but for now this is a pre-Core project.

Here’s the solution, hope it helps someone else.  Good coding :)

<!-- ====================================================================== -->
<!-- Required to have Videos show up when deployed to Azure  -->
<!-- ====================================================================== -->
<staticContent>
  <!-- Set expire headers to 30 days for static content-->
  <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00"/>
  <!-- use utf-8 encoding for anything served text/plain or text/html -->
  <remove fileExtension=".css" />
  <mimeMap fileExtension=".css" mimeType="text/css; charset=UTF-8" />
  <remove fileExtension=".js" />
  <mimeMap fileExtension=".js" mimeType="text/javascript; charset=UTF-8" />
  <remove fileExtension=".json" />
  <mimeMap fileExtension=".json" mimeType="application/json; charset=UTF-8" />
  <remove fileExtension=".rss" />
  <mimeMap fileExtension=".rss" mimeType="application/rss+xml; charset=UTF-8" />
  <remove fileExtension=".html" />
  <mimeMap fileExtension=".html" mimeType="text/html; charset=UTF-8" />
  <remove fileExtension=".xml" />
  <mimeMap fileExtension=".xml" mimeType="application/xml; charset=UTF-8" />
  <!-- HTML5 Audio/Video mime types-->
  <remove fileExtension=".mp3" />
  <mimeMap fileExtension=".mp3" mimeType="audio/mpeg" />
  <remove fileExtension=".mp4" />
  <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  <remove fileExtension=".ogg" />
  <mimeMap fileExtension=".ogg" mimeType="audio/ogg" />
  <remove fileExtension=".ogv" />
  <mimeMap fileExtension=".ogv" mimeType="video/ogg" />
  <remove fileExtension=".webm" />
  <mimeMap fileExtension=".webm" mimeType="video/webm" />
  <!-- Proper svg serving. Required for svg webfonts on iPad -->
  <remove fileExtension=".svg" />
  <mimeMap fileExtension=".svg" mimeType="images/svg+xml" />
  <remove fileExtension=".svgz" />
  <mimeMap fileExtension=".svgz" mimeType="images/svg+xml" />
  <!-- HTML4 Web font mime types -->
  <!-- Remove default IIS mime type for .eot which is application/octet-stream -->
  <remove fileExtension=".eot" />
  <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
  <remove fileExtension=".otf" />
  <mimeMap fileExtension=".otf" mimeType="font/otf" />
  <remove fileExtension=".woff" />
  <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
  <remove fileExtension=".crx" />
  <mimeMap fileExtension=".crx" mimeType="application/x-chrome-extension" />
  <remove fileExtension=".xpi" />
  <mimeMap fileExtension=".xpi" mimeType="application/x-xpinstall" />
  <remove fileExtension=".safariextz" />
  <mimeMap fileExtension=".safariextz" mimeType="application/octet-stream" />
  <!-- Flash Video mime types-->
  <remove fileExtension=".flv" />
  <mimeMap fileExtension=".flv" mimeType="video/x-flv" />
  <remove fileExtension=".f4v" />
  <mimeMap fileExtension=".f4v" mimeType="video/mp4" />
</staticContent>

imageWe live in AWESOME times… Hololens + new Mixed Reality Headsets, oh my!

To develop for each of those, you need to keep up with the latest and greatest Unity Betas – download them here…

Want to save my fellow Holonauts some time – if you come across the curious problem where when you go to build and run – you’ll now see that the “Unity C# Projects” checkbox is disabled?!?  That’s not right…

The solution to this is to…

1) Open “Player Settings”
2) Expand “Other Settings”
3) Find “Scripting Backend”
4) You’ll see that the default is now “IL2CPP”, change that to “.NET”

Now your “Unity C# Projects” is re-enabled!

Enjoy and go build some awesome Mixed Reality Apps!

image

imageGreetings my Geeks – we have a lot of awesome ASP.NET Core 2.0 news coming out lately…

As always, sharing is caring – so here you go.

Today – after publishing to Azure – ran the default “Register” user page – and got the error message…

Swapping to Development environment will display more detailed information about the error that occurred.

Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application.

imageSo did a search for “ASPNETCORE_ENVIRONMENT” – and found the only references in my project were already set to “Development”…  so that wasn’t it…

imageEventually found a clue that that mentioned Azure App Settings – and yup – that’s where this needs to be set.

So click on your Web App –> Applications Settings –> go down to the “App Settings” section and add the “ASPNETCORE_ENVIRONMENT” and “Development” as displayed in the screen shot.

Now you’ll get the error messages as if you were running it locally – and that should help you resolve your issues.

REMEMBER – before you go to use this in production – revert that change.  Don’t want the bad guys to be able to see any error details.

Good coding!

Note: Valid values for “ASPNETCORE_ENVIRONMENT” are “Development”, “Staging” and “Production” – if you have something that’s not one of those, you may get odd behaviors… :)