Wednesday, October 10, 2018

What I've been up to

It's been almost a year since my last post..... hmpfff, crap, didn't mean for that to happen.

It's been a busy year. My consulting business has been humming along quite well, kicking my ass at times in fact. My retail web site business, on the other hand, is basically a perfectly preserved mummy. You can still go to the store and buy something, and I'll ship it to you, but I've not seen any activity in a long time, and I have not kept my inventory up to date with the latest cool stuff. It is a little sad, I really wanted to be in the Maker Electronics game, but resale is so much work, for minuscule returns.

I missed the opportunity to blog on a few personal projects over the past year, but I have a few more in the pipeline.

It's still on my to-do list to become an "expert" in the D programming language. It's still one of the more intriguing programming languages out there. I have been doing some professional work in Go this year. Go is "eh, OK", I'll leave it at that, it's not bad, but it's not a particularly exciting language for language geeks. I still have some D language blog posts in draft. I still plan to publish them one day.

One of my side projects this year was to acquaint myself better with the Xamarin platform. Xamarin is a platform for writing cross platform applications, typically in C#. Originally targeting Android and iOS devices, support for other platforms is rapidly expanding.

I wrote a board/puzzle game in Xamarin. I have a Android and UWP (Universal Windows Platform) published now. I also have an iOS version, though I don't have an Apple developer account to publish it.

I might get into a little more details in future posts, but Xamarin was pretty fun to develop in, though C# has a special place in my heart, so I'm a little biased. Xamarin's is a rapidly developing platform, the company was acquired by Microsoft, and they seems to be bringing it into the fold of their .Net platform family.

About 95% of the app's code is common to all three platforms, One of the coolest parts of the game is that it supports head-to-head multiplayer across platforms on the same local network. Two android devices can also play head to head using "Android Nearby" which uses Wifi/Bluetooth, and even ultrasonic audio to communicate device-to-device without needing to be connected to an access point. There is also single player against different AI algorithms, and that was super-fun to code. The AI makes a pretty tough opponent too without cheating (it only has access to the same game information that a human player would).

The UWP version runs on Windows 10, but technically it runs on the Xbox One as well. I was not able to get the game approved in Microsoft's marketplace for Xbox games, they are more strict about some of the rules for what games should and shouldn't do such as using Xbox Live for networking, so I gave up trying for that.

At any rate, I think it's a fun game, even though my primary goal was to have a learning experience:

Check it out for Android:

And for Windows 10, you can get it here:
(Or search for "KnockBack" in the Microsoft Store app.)

Last but not least, I have a new personal project in the works to make some radical modifications to the open source Numworks Graphing Calculator. Among other things, I will be upgrading the CPU to a much faster than the already respectable one that ships in the stock model. More to follow later.