Panzer General Portable: Redux

(Part 1 of the Panzer General Portable Project)

I recently had the need to come up to speed on build a phone app targeting both iOS and Android.  Since I have limited experience with Cordova and I much prefer writing F# over javascript, it made sense to take a look at what Xamarin has to offer.  Coincidently, I went to a meet up where Don Syme and Jim Bennett were presenting a new F# framework based on Elm called fabulous.  So what the heck – what not take Xamarin and fabulous out for a spin?  I decided to revisit the game I wrote for Windows Phone 7 called Panzer General Portable.  I was especially curious how the code would compare from the original C# + XML to F# + Xamarin Forms + fabulous.

Over the coming weeks, I plan to post my journey into this endeavor.  Hopefully, I can learn some things, contribute to the F#/fabulous community, and have some fun.

Elevator App: Part 0

When I was young, I used to have window races with my siblings in the car. In those days, windows would be manual with a crank like this:


Each kid would get a door and on “go”, we would crank, crank, crank the window all the way up and all the way down. These were great time passers on a long trip – until dad noticed that it was getting alternately windy and calm in the car and put an end to it. With the advent of electric motors for the windows in the car, the races became much closer – we honestly thought that harder you pushed on the button would cause the window move up and down faster. It was good fun until dad caught me pouring Crisco down the back left window of the Buick Skylark.  Greasing the wheels, if you will.

Fast forward 15 years when I was just out of school at my 1st job in San Francisco. One of the things we did when we didn’t have any money (often) on a Friday night was to ride elevators. Find a nice building, walk in like you knew what you were doing, and ride to the top and back down. Hotels were the best – ideally you could get free food in the bar for happy hour too – it was dinner theatre. Sometimes, if there were two elevators in the bank, we would turn it into a competition – pick your elevator wisely. If someone got on your elevator while you were racing, you were out of luck. This added a good deal of tension to the race. You were in the lead on the way back down but then someone stopped you on floor 2 to go down to G. “UGHHHHH. Take the stairs fat-ass!”

(BTW: how great would this be for a plot of a movie? The main characters pick different building to race until one night, they picked the wrong one….)

The biggest problem with elevator races (outside of getting caught and spending a night in jail), was that if the building only had 1 elevator, you really couldn’t race. Even if you had a stopwatch, you really didn’t know if the person made it to the top. Also, the chance of other people who were waiting stopping your elevator was now 100%.  Plus, do you really trust your competition with the stop-watch?  Maybe your friends, but not mine…

Fast forward 20 more years and I started working with open data. One of the data sets that TRINUG wanted to look at was elevator inspection data. When I went to the website where you can do reporting and there was a column called…. speed. Holy smokes, we can see the speed of the different elevators in town! I then thought about a phone app that could measure the speed of the elevator versus the reported speed. Also, we finally have a solution to the 1-elevator race problem! I then thought about how to tie this into coming up to speed with the latest javascript technologies (I am trying to get my MCSD in Web too).  Thus, I am going to create an elevator speed app using Angular and Phonegap.  Let’s see how it goes…