1<!doctype html> 2<!-- 3 Minimal Mistakes Jekyll Theme 4.26.2 by Michael Rose 4 Copyright 2013-2024 Michael Rose - mademistakes.com | @mmistakes 5 Free for personal and commercial use under the MIT license 6 https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE 7--> 8 9<html lang="en" class="no-js"> 10 <head> 11 <meta charset="utf-8"> 12 13<!-- begin _includes/seo.html --><title>About - DotNetByExample - The Next Generation</title> 14<meta name="description" content="Code samples and how-toâs, mostly in the Microsoft stack, currently concentrating on Mixed Reality"> 15 16 17 <meta name="author" content="Joost van Schaik ('LocalJoost')"> 18 19 20 21<meta property="og:type" content="website"> 22<meta property="og:locale" content="en_US"> 23<meta property="og:site_name" content="DotNetByExample - The Next Generation"> 24<meta property="og:title" content="About"> 25<meta property="og:url" content="https://localjoost.github.io/about/"> 26 27 28 <meta property="og:description" content="Code samples and how-toâs, mostly in the Microsoft stack, currently concentrating on Mixed Reality"> 29 30 31 32 33 34 35 36 37 38 39 40 41<link rel="canonical" href="https://localjoost.github.io/about/"> 42 43 44 45 46 47 48 49 50 51 52 53 54<!-- end _includes/seo.html --> 55 56 57 58 <link href="/feed.xml" type="application/atom+xml" rel="alternate" title="DotNetByExample - The Next Generation Feed"> 59<meta name="viewport" content="width=device-width, initial-scale=1.0"> 60
61<script type="text/javascript"> 62 document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js '; 63 64</script>
64 65 66<!-- For all browsers --> 67<link rel="stylesheet" href="/assets/css/main.css"> 68<link rel="preload" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@latest/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 69<noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@latest/css/all.min.css"></noscript> 70 71 72 73 <!-- start custom head snippets --> 74<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 74-75
74 75<script async src="https://www.googletagmanager.com/gtag/js?id=
75G-RNNVSDBKZ1
vendor: 12 bytes, line 75
75"></script>
76<script> 77
vendor: 134 bytes, lines 77-81
77window.dataLayer = window.dataLayer || []; 78 function gtag(){dataLayer.push(arguments);} 79 gtag('js', new Date()); 80 81 gtag('config', '
81G-RNNVSDBKZ1
vendor: 4 bytes, line 81
81');
82</script>
82 83<!-- insert favicons. use https://realfavicongenerator.net/ --> 84 85<!-- end custom head snippets --> 86 87 </head> 88 89 <body class="layout--single"> 90 <nav class="skip-links"> 91 <ul> 92 <li><a href="#site-nav" class="screen-reader-shortcut">Skip to primary navigation</a></li> 93 <li><a href="#main" class="screen-reader-shortcut">Skip to content</a></li> 94 <li><a href="#footer" class="screen-reader-shortcut">Skip to footer</a></li> 95 </ul> 96</nav> 97 98 99 100<div class="masthead"> 101 <div class="masthead__inner-wrap"> 102 <div class="masthead__menu"> 103 <nav id="site-nav" class="greedy-nav"> 104 105 <a class="custom_site-logo" href="/"><img src="/assets/images/site-logo.png" alt=""></a> 106 107 <a class="custom_site_title" href="/"> 108 DotNetByExample - The Next Generation 109 <span class="site-subtitle">"Talk is cheap, show me the code"</span> 110 </a> 111 <ul class="visible-links"><li class="masthead__menu-item"> 112 <a href="/posts/">Posts</a> 113 </li><li class="masthead__menu-item"> 114 <a href="/tags/">Tags</a> 115 </li><li class="masthead__menu-item"> 116 <a href="/about/">About</a> 117 </li></ul> 118 119 <button class="search__toggle" type="button"> 120 <span class="visually-hidden">Toggle search</span> 121 <svg class="icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.99 16"> 122 <path d="M15.5,13.12L13.19,10.8a1.69,1.69,0,0,0-1.28-.55l-0.06-.06A6.5,6.5,0,0,0,5.77,0,6.5,6.5,0,0,0,2.46,11.59a6.47,6.47,0,0,0,7.74.26l0.05,0.05a1.65,1.65,0,0,0,.5,1.24l2.38,2.38A1.68,1.68,0,0,0,15.5,13.12ZM6.4,2A4.41,4.41,0,1,1,2,6.4,4.43,4.43,0,0,1,6.4,2Z" transform="translate(-.01)"></path> 123 </svg> 124 </button> 125 126 <button class="greedy-nav__toggle hidden" type="button"> 127 <span class="visually-hidden">Toggle menu</span> 128 <div class="navicon"></div> 129 </button> 130 <ul class="hidden-links hidden"></ul> 131 </nav> 132 </div> 133 </div> 134</div> 135 136 137 <div class="initial-content"> 138 139 140 141 142 143 144<div id="main" role="main"> 145 146 <div class="sidebar sticky"> 147 148 149 150<div itemscope itemtype="https://schema.org/Person" class="h-card"> 151 152 153 <div class="author__avatar"> 154 <a href="https://localjoost.github.io/"> 155 <img src="/assets/images/bio-photo.jpg" alt="Joost van Schaik ('LocalJoost')" itemprop="image" class="u-photo"> 156 </a> 157 </div> 158 159 160 <div class="author__content"> 161 <h3 class="author__name p-name" itemprop="name"> 162 <a class="u-url" rel="me" href="https://localjoost.github.io/" itemprop="url">Joost van Schaik ('LocalJoost')</a> 163 </h3> 164 165 <div class="author__bio p-note" itemprop="description"> 166 <p>Senior Mixed Reality Software Architect, Windows Development MVP. Talks about Mixed/Augmented Reality Cross platform MR development, HoloLens 2, Magic Leap 2, Quest, Unity, Snap Spectacles, Lens Studio, MetaLense 2, .NET, Azure</p> 167 168 </div> 169 170 </div> 171 172 <div class="author__urls-wrapper"> 173 <button class="btn btn--inverse">Follow</button> 174 <ul class="author__urls social-icons"> 175 176 <li itemprop="homeLocation" itemscope itemtype="https://schema.org/Place"> 177 <i class="fas fa-fw fa-map-marker-alt" aria-hidden="true"></i> <span itemprop="name" class="p-locality">Amersfoort, the Netherlands</span> 178 </li> 179 180 181 182 183 184 <li><a href="https://github.com/LocalJoost" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">GitHub</span></a></li> 185 186 187 188 <li><a href="https://linkedin.com/in/joostvanschaik" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span class="label">LinkedIn</span></a></li> 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 <li> 242 <a href="https://mvp.microsoft.com/PublicProfile/4034925" rel="nofollow noopener noreferrer" > 243 <img class="custom_link_image_title" src ="/assets/images/mvp.png"/> MVP Profile
244 </a> 245 246 <div class="downloadheader customlink"> 247 <div><img class="custom_link_image_title" src ="/assets/images/holoatc.png"/> <b>Try my app HoloATC!</b> </div> 248 <div class="downloaditems"> 249 <a href="/holoatchl2/" rel="nofollow noopener noreferrer" class="customlink" > 250 <img class="custom_link_image_title" src ="/assets/images/hololens2.png"/> HoloLens 2 251 </a> 252 <a href="/holoatcml2/" rel="nofollow noopener noreferrer" class="customlink" > 253 <img class="custom_link_image_title" src ="/assets/images/magicleap.png"/> Magic Leap 2 254 </a> 255 <a href="https://www.meta.com/en-gb/experiences/holoatc/5904301386352830" rel="nofollow noopener noreferrer" class="customlink" > 256 <img class="custom_link_image_title" src ="/assets/images/meta-logo.png"/> Meta Quest 257 </a> 258 <a href="https://play.google.com/store/apps/details?id=com.LocalJoost.HoloATC2" rel="nofollow noopener noreferrer" class="customlink" > 259 <img class="custom_link_image_title" src ="/assets/images/googleplaystore.png"/> Android phones 260 </a> 261 <a href="https://www.spectacles.com/lens/1e9933cbc6df44ceb936b154b0cb7b78?type=SNAPCODE&metadata=01" rel="nofollow noopener noreferrer" class="customlink" > 262 <img class="custom_link_image_title" src ="/assets/images/snap.png"/> Snap Spectacles 263 </a> 264 <a href="/holoatcmtl2/" rel="nofollow noopener noreferrer" class="customlink" > 265 <img class="custom_link_image_title" src ="/assets/images/mtl2.png"/> MetaLense 2 266 </a> 267 </div> 268 </div> 269 270 <!-- <div class="downloadheader customlink"> --> 271 <!-- <div><img class="custom_link_image_title" src ="/assets/images/walktheworld.png"/><b>Try my app Walk the World!</b> </div> --> 272 <!-- <div class="downloaditems"> --> 273 <!-- <a href="/wtwhl2/" rel="nofollow noopener noreferrer" class="customlink" > --> 274 <!-- <img class="custom_link_image_title" src ="/assets/images/hololens2.png"/> HoloLens 2 --> 275 <!-- </a> --> 276 <!-- <a href="/wtwml2/" rel="nofollow noopener noreferrer" class="customlink" > --> 277 <!-- <img class="custom_link_image_title" src ="/assets/images/magicleap.png"/> Magic Leap 2 --> 278 <!-- </a> --> 279 <!-- </div> --> 280 <!-- </div> --> 281 282 <a href="https://www.paypal.com/paypalme/localjoost" rel="nofollow noopener noreferrer" class="customlink" > 283 <img class="custom_link_image_title" src ="/assets/images/PP.png"/> <b>Buy me a drink ;)</b> 284 </a> 285 <a href="https://bsky.app/profile/localjoost.bsky.social" rel="nofollow noopener noreferrer" class="customlink" > 286 <img class="custom_link_image_title" src ="/assets/images/bluesky.png"/> BlueSky 287 </a> 288 <a href="https://mstdn.social/@localjoost" rel="nofollow noopener noreferrer" class="customlink" > 289 <img class="custom_link_image_title" src ="/assets/images/mastodon.png"/> Mastodon 290 </a> 291 <div class="customlink"> 292 <img class="custom_link_image_title" src ="/assets/images/discord-mark-blue.png"/> Discord: LocalJoost#3562 293 </div> 294 <!-- <a href="https://www.augmedit.com/" rel="nofollow noopener noreferrer" class="customlink" > --> 295 <!-- <img class="custom_link_image_title" src ="/assets/images/augmedit.jpg"/> Augmedit (employer) --> 296 <!-- </a> --> 297 298 299 <a rel="me" href="https://mstdn.social/@localjoost" style="visibility:hidden">Mastodon</a> 300</li> 301 302 </ul> 303 </div> 304</div> 305 306 307 </div> 308 309 310 311 <article class="page" itemscope itemtype="https://schema.org/CreativeWork"> 312 <meta itemprop="headline" content="About"> 313 314 315 316 317 <div class="page__inner-wrap"> 318 319 <header> 320 <h1 id="page-title" class="page__title" itemprop="headline"> 321 <a href="https://localjoost.github.io/about/" itemprop="url">About 322</a> 323 </h1> 324 325 326 327 </header> 328 329 330 <section class="page__content" itemprop="text"> 331 332 <h2 id="about-this-blog">About this blog</h2> 333<p>This blog attempts to be a collection of how-to examples - things that may take forever to find out, especially for the beginner. I see it as my way to return something to the developer community in exchange for what I learned from it. I continue the journey here that I started on <a href="https://dotnetbyexample.blogspot.com">DotNetByExample on Blogger</a>. All content has been migrated to this new blog.</p> 334 335<h2 id="about-me">About me</h2> 336<ul> 337 <li>Joost van Schaik, pronounced <a href="http://www.schaikweb.net/dotnetbyexample/jvs.wma">like this</a>.</li> 338 <li>Senior Lead Mixed Reality Developer & technical software architect.</li> 339 <li>Microsoft Windows Development MVP, former Windows Insider MVP.</li> 340 <li>Mixed Reality, Snap Spectacles, Magic Leap 2, Quest, HoloLens 2, P&C MetaLense 2, Unity, C#, .NET, TypeScript</li> 341 <li>Rogue R&D hacker.</li> 342 <li>Gardener, Lover of Nature, Amateur philosopher.</li> 343 <li>Most likely place to find me: in front of a keyboard.</li> 344 <li>Most likely place for me to die: in front of a keyboard.</li> 345</ul> 346 347<p>A.k.a. <em>LocalJoost</em>.</p> 348<h2 id="about-getting-support">About getting support</h2> 349<ul> 350 <li>Yes, I am more than willing to answer your questions</li> 351 <li>Yes, I always read all comments and respond to them if they make sense</li> 352 <li>Yes, I am always willing to help you out if you are stuck</li> 353</ul> 354 355<p>Butâ¦</p> 356 357<ul> 358 <li>I am not clairvoyant</li> 359 <li>I wonât write the complete app for your assignment due in three days ;)</li> 360 <li>I cannot deduce from a few lines of code or short description how your 1000+ lines project looks like, what you try to do and where things go wrong.</li> 361 <li>I am just a simple developer like you who needs to look at code, GoogleBing stuff and use the debugger</li> 362 <li>I am just a regular guy with a job and my time is limited so it wonât be always today. Sometimes not even tomorrow.</li> 363 <li>English is not my first language either</li> 364</ul> 365 366<p>Yet, if something does not work and you really need help and you do this:</p> 367 368<ul> 369 <li>Make a simple solution that shows your problem with as little other stuff in it as possible</li> 370 <li>Put it on GitHub, OneDrive or some other place where I can download it from</li> 371 <li>Explain as clearly as possible what your problem is</li> 372</ul> 373 374<p>I will help you to the best of my abilities. Deal?</p> 375 376<h2 id="disclaimer-and-legal-stuff">Disclaimer and legal stuff</h2> 377<p>Although I take great care in providing quality samples, all postings, articles and/or files on this site are provided âAS ISâ with no warranties, and confer no rights. The views expressed on this blog are strictly my own and do not necessarily reflect the views of my employer, or anyone else on the planet for that matter.</p> 378 379<p>I usually make original content, sometimes building upon other peopleâs work. Sometimes I explain things that can be found elsewhere because I felt what I read was not clear enough for my limited mind so I explain it the way it finally clicked with me. In all cases I take great pains to be sure to link to people or articles who deserve the credit. If you think I have shortchanged you on the credits please let me know.</p> 380 381<p>Please note, I do not work for Microsoft and while I proudly wear the title of âMicrosoft Most Valuable Professionalâ, my opinions, files offered, etc. do not represent, are approved of, endorsed by or paid for by Microsoft.</p> 382 383 384 385 </section> 386 387 <footer class="page__meta"> 388 389 390 391 392 393 394 </footer> 395 396 397 398 399 </div> 400 401 402 </article> 403 404 405 406</div> 407 408 409 </div> 410 411 412 <div class="search-content"> 413 <div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';" role="search"> 414 <label class="sr-only" for="search"> 415 Enter your search term... 416 </label> 417 <input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." /> 418 </form> 419 <div id="results" class="results"></div></div> 420 421 </div> 422 423 424 <div id="footer" class="page__footer"> 425 <footer> 426 <!-- start custom footer snippets --> 427 428<!-- end custom footer snippets --> 429 <div class="page__footer-follow"> 430 <ul class="social-icons"> 431 432 433 434 435 436 <li><a href="https://github.com/LocalJoost" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li> 437 438 439 440 <li><a href="https://linkedin.com/in/joostvanschaik" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i> LinkedIn</a></li> 441 442 443 444 445 446 <li><a href="/feed.xml"><i class="fas fa-fw fa-rss-square" aria-hidden="true"></i> Feed</a></li> 447 448 </ul> 449</div> 450 451<div class="page__footer-copyright">© 2026 <a href="https://localjoost.github.io">DotNetByExample - The Next Generation</a>. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> &
451 <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div> 452 453 </footer> 454 </div> 455 456 457
457<script src="/assets/js/main.min.js"></script>
457 458 459 460 461
462<script src="/assets/js/lunr/lunr.min.js"></script>
vendor: 1 bytes, line 462
462
463<script src="/assets/js/lunr/lunr-store.js"></script>
vendor: 1 bytes, line 463
463
464<script src="/assets/js/lunr/lunr-en.js"></script>
464 465 466 467 468 469
469<script> 470 var _gaq = _gaq || []; 471 _gaq.push(['_setAccount', 'UA-1201995-13']); 472 473 _gaq.push(['_trackPageview']); 474 475 (function() { 476 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 477 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 478 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 479 })(); 480</script>
480 481 482 483 484 485 486 487 488 489 </body> 490</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.