I’ve reconnected the HTC Vive in my otherwise mostly empty office as the flooring hasn’t arrived yet. I’m realizing that the office is a bit small even with almost everything out of the way. I had been planning to put together a downstairs (basement) computer for use with the headset at some point. I’m not seriously considering accelerating the process to get a more usable setup for working with room scale VR.
I’m looking at Unity as well as more direct OpenGL/OpenVR at this point. I think that the OpenGL approach is likely more interesting in the long run as I’m not currently thinking of things that look particularly like classic video games. I do want to get some initial development traction quickly though and Unity seems to promise a faster on-ramp in C#. My C# may be a little rusty, but it will come up to speed fast enough (and it is a useful environment in any case).
Continue reading VR Headset is back online for the moment
Currently my home office has been largely taken apart so that I can lay hardwood in the room so my vive is packed away. I’m running through the other things I want to come up to speed on as I move forwards and the list is getting large.
Lots and lots of hopping around on my end. At the moment I don’t have anything here that I HAVE to do so I’m just hitting things as they catch my attention. In the long run I’d love to capture some of the interesting complexity of the board wargames I played in college and play with 3D immersive environments (not sure these two exactly mix). Add in the real world bits from 3D printing and such and that’s about where I’m at… Continue reading So many different bits of tech to dig into…
According to Verizon, today is the day that my local store will have less flammable Note 7 phones to exchange for my current more flammable version. Looking forward to it as I really like the phone (stylus, large screen and micro-SD card meet most of my wants). I’m guessing that Samsung is regretting skipping the last item on my list, the removable (and thus replaceable) battery.
My existing Note 7 has been of limited usefulness for the last couple of weeks as I inadvertently did a factory reset on it when I removed it from its case to take the SD card out in anticipation of getting it replaced. It hasn’t made sense to go through the work of fully re-configuring it since then as it was scheduled to be replaced in short order. Continue reading Looking forward to getting a less explosive Note 7 today
I find myself more and more adapting my C++ style to what makes code edits simpler. I’ve gone from:
void foo(int a, double b);
/** One important argument */
/** Another important argument */
to make DOxygen documentation cleaner to write and read.
Now I find myself considering this:
/** stuff */
/** more stuff */
, double b
as when I temporarily
#if (0) out an argument during development or create a targeted overload, the comma really does generally bind to the second argument. Not sure I’ll ever warm up to this, but I’ve become used to other changes that looked really ugly when I first made them.
From this article in the LA Times it sounds as if Disney is further slimming down its tecghnology are with 250 people being laid off in Glendale. I’d think that they would be looking to staff up on interactive media as Disney has had difficulties with the digital and software world yet that is where much of the growth in the entertainment sector is happening. Hoping this is just an adjustment and that they’ll work on growing their strengths in the technology oriented tech side of things…
After starting a dive into C++ metaprogramming, I decided to satisfy my curiosity about .NET generics. I’ve used them, very much as I’ve used C++ templates, to create generic functions and classes. As with C++ I’ve never yet found reason to try the more complex things that metaprogramming pursues.
I was very unimpressed with the java implementation of Generics. Their ‘type erasure’ approach favors backward compatibility with pre-generics code but breaks things that you’d expect to work. The worst issue I’ve encountered relates to method overloading…since type erasure changes <code>ArrayList<Foo></code> to a list of objects in compiled form the VM has no way to distinguish between <code>Process(ArrayList<CReceipts>)</code> and <code>Process(ArrayList<CClaims>)</code>. This tends to force the type into the method name and breaks things that in C++ would be easy to do with templates (in addition to cluttering up code and causing short term consternation as otherwise reasonable overloads generate strange compile time errors).
The C# approach seems to be closer to the C++ template facility. Some of the more preprocessor-like stuff is missing (template arguments as numeric values for example) but the basics for metaprogramming seem to be mostly there. The language definitely seems to support overloading on generic types and with the availability of delegates I’d expect it to support generic methods operating on items with compatible signatures (as with the Process function proposed above). I’ll see what the book on .NET metaprogramming has to say when it comes in, but as with most things .NET (compared to the java equivalent) I’m finding this to be well designed with an eye towards expressiveness and future value.
I’ve tried to dig into C++ template metaprogramming a number of times in the past. In general I’ve found that the techniques were clever but I haven’t found any places where I felt they’d be an improvement over the things I’m already doing.
Given there is quite a bit going on in this area and the standard library and boost both use metaprogramming techniques extensively, I’m diving in again. I’m back in the C++ world and working in a C++ 2011 compliant environment so I’m going to put a bit more energy into this dive and see if I can come away with useful techniques in addition to the curious but seemingly over-complex bits I’ve seen in the past.
Continue reading …and a quick jag into metaprogramming…
The BIO code is a reasonably nice design. I have been putting together some simple hashing and encode/decode functionality on a system that supports OpenSSL. The chained filters approach seems reasonably straightforward to use and a decently clean way to implement the sorts of things that an encryption library would need to implement. C++ would allow for a more elegant design, but given the amount of C code out there, the OpenSSL approach seems reasonable.
Over the weekend I got the base stations mounted on a pair of light stands (stole ball heads from two tripods to make this happen…dedicated ball heads are coming). I swapped my primary monitor from HDMI to DisplayPort and then connected up the junction box. Successfully updated the various parts of the system firmware (I couldn’t get the controllers to sync until I did this). Once everything was up to date the process went smoothly. I stuck the ear buds that came with the head-set somewhere so no sound, but still made for a very cool experience.
Now comes the hard part as I need to get programming (I’ll grab the free software included in the package and play with it, but…). If I can simply walk around a cube I created, hovering in the air in front of me, I’ll consider that a win on the next step.
My headset has arrived. I’ve unpacked the box. I’m in the process of converting two of my lighting stands temporarily into base station stands. The base stations want to look over the center of the room and see each other while being six and a half feet up. My lighting stands can put them where they need to be and the two ball heads I stole from my photographic tripods will let them angle down as needed. I still need to clean up the office enough to have a prayer of getting these located and pointing in the right direction.
Once all of that is set up properly I can move on to getting the headset plugged into its interface box and connected to the computer. I’m figuring that I can have this together sometime this weekend, at least enough to start getting a feel for it. Tonight I’m tired and more than a little grumpy and I’m clearly not up to putting everything together.
Looking forward to seeing this critter do its thing, but not going to push it and make a mess of something, sigh.