Vive VR

I finished Penny de Byl’s ‘Beginner’s Guide to Artificial Intelligence in Unity’ course from Udemy. Actually, I’ve begun about a dozen 3D/Animation/Game Udemy courses, but Penny’s was spectacular and I’ve learned the most and enjoyed hers immensely. I will get the rest of her courses. I’ve adapted her tutorials to run in VR, which really brings them alive!

Penny’s first chapters teaches the basics of animation, as you manually calculate trajectories, and tweak parameters to get turning speeds and realistic movement, manually set up waypoints, etc. Then she teaches Unity’s built-in Waypoints and NavMesh which calculates paths for you automatically as you simply set destinations.

The crowds and flocking behavior logic were the most amazing ones in my VR world, as I gaze around my schools of fish as they flee an upcoming shark, or walk around in a crowd of Mixamo characters who politely walk around me, except for the one I put Capoeira animation on after he runs up to me!

Penny also covers behavior trees and goal-oriented action planning. Oh, and she covered how to import external models and animations, and how to get them to interact with the NavMesh animation, which was extremely useful. And the basis for what I want to learn next.

There are two other courses that I’ve spent significant time with. One is ‘The complete Unity Masterclass: Build 2d, 3d, and VR games.’ The sheer volume of material here is impressive, and the tutorials are great for people who have zero experience with Unity’s C# programming, but it wasn’t remotely VR related, so its misleading but still well done. The other is ‘Fast Animation and Rigging Techniques Using Maya 2017.’ I’m finding this one a bit laborious, but that may just be the nature of Maya.


Unity and Vive!

Ahh, I am having so much fun with Vive! I can now create little games and animations in Unity and view and control them with my Vive VR. I can take 360 photos and teleport around to different scenes made from these photos in Vive. This is so much cooler than plain old 3D modeling.



June 4, 2018

WWDC! I love this time of year. All the dev conferences, but especially this one! And the pool and ocean get warm and inviting, but for the most part, it’s nice to just program and look at the beauty of our hot, humid summers from indoors.

I have just updated my Estimate maker app with a few minor enhancements, but mostly to implement an uncaught exception handler. I have big plans for this app once I’m sure it’s stable. I have one field report that I cannot duplicate and do not have a sense of how common it is.  Now that I have the error handling framework, I will put it in all my apps.

I am also enjoying Udemy courses, of which I bought an embarrassing number of during a sale they had a few months back. I’m getting proficient with Unity, and have the beginnings of a good VR game in my head.

The difficult part, as usual, is not to go off in too many directions. The Estimate app is doing well without any promotion on my part, so I think it warrants enhancing. But I am going to spend a lot of time with VR this year.

Live long and prosper!


Posted in iOS

2017 in Review

Wow, again it’s been a year since my last blog post.  So I’ll make this post a synopsis of my year.  I did update all of my apps with the latest SDK, and some improvements all around.  I’m 95% done with my estimation app.  My goal is to publish it by Christmas, so I can focus totally on the exciting new stuff I can do with my new iPhoneX!  I’ve played around quite a bit with Maya and Unity this year, trying to get prepared for AR/VR opportunities, but I have to admit, I took off quite a few weekends to dive, read, dance, take cooking classes, and otherwise unwind.    

Now I have to decide if I want to buy an external GPU so I can do a VR app.  I think it’s brilliant that Apple has standardized the NN models.  There is so much potential here.  The problem with VR is it’s still at a stage where it’s just as much about optimizing the performance to get all those pixels to the screen within 10ms, and it’s pretty low level stuff.  Even with the computer graphics class that I taught last year, that level of detail is outside of my expertise.  I know I need to understand enough of it to program it efficiently, but I don’t really have the desire to learn the low-level gpu performance tweaks necessary to get 90 fps.  So I’m leaning towards developing an AR app as I think it will provide some crucial foundation skills.  

On the professional side, in addition to learning some Kotlin for Android, I created VUI apps for Amazon Alexa and Google Home.  I used JNode on their respective servers to provide the dialog and collect the necessary information, and submitted the design document for our ColdFusion experts to implement on our own servers.   I suggested it be done on our servers since VUI is going to be ubiquitous shortly, and even web browsers will eventually be more voice activated than not, so it makes sense.  And even though the free service sounds like a lot of at 100k requests a month before they start billing you, my company gets more hits than that in a day, by far, so it could get unnecessarily expensive quickly if we have to pay for Amazon and Google server usage.   I really enjoyed working with JNode, and with the Voice assistants in general.  You can throw up little private apps quickly that are only meaningful for you and your family.   To talk to a server, though, I need a secure site, and I’m not quite willing to spring for that yet.   

I am officially my company’s ‘AI Expert.’  I know because I’ve heard them refer to me as that on several occasions, not that I’ve been given any kind of title or official recognition.  Plus they gave me the VUI project to design, so that’s a benefit in itself.  New things are always more fun than old things.   There are quite a few companies touting themselves as bringing AI to the travel industry, so I have another goal of trying to understand the value that they offer.   This is primarily because it will benefit Hotelplanner, and I want to provide as much value as I can to my employer, and I am the most qualified to do it.  Unfortunately, it consists of listening to marketing types overhype and sensationalize what they can do, and I don’t relish those types of conversations.  I suspect VR will transform our industry faster than AI will.   But it will be interesting to find out what really is available underneath all the BS.  

Computer Graphics using WebGL

Wow, it’s been almost a year. But in my defense, I took on too many projects, and had no spare time this past year. I taught a class in Computer Graphics, using WebGL at Nova Southeastern University. Since I work full-time at Hotelplanner during the week, most of my weekend was spent preparing for classes, and grading assignments. It was quite the learning experience, but not one I’d choose to repeat. I enjoy programming 100 times more than I enjoy teaching. But still, it was motivation to become immersed in WebGL and learn more than I ever would have casually with the three.js libraries and javascript. Creating graphics is rewarding in and of itself.  And being able to say I was an adjunct professor helps me remember what a bad-ass I actually am!

So here it is, my first totally free weekend in a very long time. No duties or obligations forcing the path ahead. I feel torn in several directions. I’d love to create something in VR. I’d love to create some 3D models in three.js and Maya or Autodesk. I’d love to dabble in some AI tech. I’d love to revamp my aging apps that are in desperate need of updating to remain current. I’d love to develop some server skills so I can have some cool things on the web. So many exciting tangential things to all of these. It’s difficult to decide where to go. And most of it involves deciding on new platforms and new languages or frameworks to learn. All of which takes time.

New stuff is always more fun than old stuff. But I probably will at least update my RhythmID app since its my oldest and most popular.

I just signed up for the Safari Books Online update. I think it’s a really great deal at $199 a year and unlimited access. What a world we live in, where so much information is available!



Android Volley Framework

I’m close to finishing the multiple feeds to get hotel quotes on the Android app for HotelPlanner. I’m using the volley messaging framework, which is quite nice at handling the lower levels of message transport. In both the hotel list and the room rate list, I request rates from multiple vendors and merge them into the native UI as they arrive. In the end, I was very sorry that I used wkWebViews in the iOS app. It was quite expensive in terms of both memory and performance, and not as reliable as I would like. But the json feeds are lightening fast and I am very happy with them. I am keeping the webview for the checkout page only since I don’t have a good api for that, and it’s difficult to test thoroughly. And quite important when you’re taking people’s money that you don’t make mistakes!

Fun with WKWebviews and Javascript

Forgive me, o God of Blogs. It has been 3 months since my last posting.

I’ve been working with WKWebviews in my Actually, I’m using the Sencha javascript and datastores to populate the native UI elements. One of my top goals this year was to incorporate hotel rates from all of our feeds, and start pulling reviews from a different site than I’d been using. Since the browser already has this logic, I just keep the browser hidden and use its logic, which is powered by javascript. Just as relevant for the app as it is for the browser. I just never show the browser, except for check-out. This gives me the ability to add a lot of functionality to the check-out page, which is difficult to test without actually booking rooms. All in all, I’m very happy with how easily it all ties together. With the speed of Nitro js in the iOS browser, HTML5 is becoming faster on the phones.

And, since I’m getting involved with javascript, I thought it might be nice to learn some Node.js, so I’m working through a book on that. I may power my website using js rather than coldFusion. I haven’t decided yet. The advantage of js is it is growing more popular by the day, which is the disadvantage of coldFusion. But Hotelplanner uses coldfusion, so it would be quite useful to become more proficient in that language. Not to mention I have lots of examples on how to do things!  Life is full of trade offs.


Who’s Who: Remembering Names and Faces

Forgive me of God of Blogs, it’s been over two months since my last posting.  Which is appalling when you consider that I have actual news!

I launched a new app on March 24th called ‘Who’s Who: Remembering Names and Faces.’ This app gives you several ways of adding photos, and several ways of drilling and recalling the names associated with them. Originally, I had the ability to share groups of photos with others through CloudKit, but Apple kept rejecting it, saying it’s against their privacy policy to share people’s photos. It was the killer feature of my app, as you could have all kinds of use cases for group leaders to collect and share group members photos. It’s still a cool app, but not the potential blockbuster I had envisioned.

As part of my marketing initiative, I did a press release through PRWeb since all the marketing books and blogs agree that is essential. It costs $159. I got 2 downloads from it.  But maybe it’ll drive SEO links for future searches for an app like mine.

I launched a Google Adwords campaign a week later. Since my app sells for $1.99, I put the max bid at $1 for a pay-per-click ad. The ad takes them directly to the itunes store for downloading the app. After a week, I have had 120 impressions, and 0 clicks. It has cost me nothing to be seen by people who are searching for my ‘long tail’ keyword phrases. I have had one download this last week.  Probably worthwhile but not the overwhelming success I was hoping for.

Meanwhile, I’ve been contacted by several companies wanting to promote my app for me. At this point, I’m reluctant to pour any more money into marketing, and will look for free ways to promote it.

My Rhythm ID app is downloading between 5-10 every day, but as an ad-supported app, it’s only generating about $10 a month in income. I’ve never done anything to promote it other than a Facebook and Google+ page that I post Memes to every month or so. It is discovered by people searching for the keywords in the app store. Although I’ve had several thousand downloads, and several dozen positive feedback emails, I have had exactly 0 reviews which I suspect would help it. I’m wondering if I shouldn’t focus more on this app, and see if I can get the ad-generated income up. Although it’s hard not to just start a new app!  I must learn some marketing that works if this app writing hobby that I love is ever going to be more than a hobby.


Shiresmith Publishing

Forgive me, o God of Blogs, it has been four months since my last post. I had been waiting to post good news, but Apple keeps rejecting my latest app. There is just no way around the rule of not being allowed to upload people’s photos to iCloud. I thought I was really onto something. sigh. I have to take out a bunch of the functionality and make it a much less useful app now. Live and learn. It’s not like the cloud kit skills will disappear.

I am having a great time with the Hotelplanner app. First, a total redesign by our phenomenal graphic designer Ray. Now, he’s given me animations to go along with the design. Beautiful and challenging. I learned quite a bit about animation from my sister’s children’s book that I did, so this will be very enjoyable. At least on the Apple side. It’s square one for Android.

I keep planning to focus on marketing, and yet here I am, still drawn more to creating than selling. Apple took a lot of wind out of my sails. I actually spent a day writing a press release for my rejected app. I know I shouldn’t give up. There is still functionality to be salvaged. After all, my original idea didn’t have sharing. It was just such a killer idea once I had it that it’s hard to get excited over the scaled down version.

I created an LLC called Shiresmith Publishing that I plan to change my Apple ID to use since it seems more professional to sell from a company than from an individual.  It cost a little under $200 in Florida where I live, but it’s a yearly fee.  Taxes get a bit more complicated, but with any luck, I’ll make an app that makes taxes complicated anyway!  There are worse problems to have.


Trials and Tribulations of Autolayout

Sigh. I learned the hard way that if you uncheck autolayout, it applies to every viewcontroller and you lose EVERYTHING that you’ve done. So I am redoing autolayout for my HotelPlanner scenes. I am enjoying the storyboard and segue implementation that I’ve converted the app to. And I’ve started changing the animations to animating constraints rather than frames. It’s all quite intuitive once you get it, and the visual aspect makes it quite fun. I am still missing a basic concept on autolayout’s root frame size though, as I am currently struggling with getting the detail views of my splitviewcontroller to show up with the correct widths.