This article is a high level discussion on where you might use various Microsoft Technologies in the field of robotics. I will begin with a side pet project I’m kicking off to get more familiar with some cool tools and tech I’ve lately discovered so I can hopefully get assigned to some really cool projects at work, including drones.
This is a question that comes up frequently. How do I get an internship, a job or anything at Microsoft as a student? Well there is a great program, the Microsoft Student Partner program. This is the foot in the door position. Students who do well here are more likely to get a full time job at Microsoft, but also anywhere. I have students who have started their own companies, work at Google, Lockheed Martin as well as Microsoft among several others. It is fairly easy to get into, but once you get in, you better work and treat it like a full time job. You can apply here: www.aka.ms/applyMSP2016
Now beyond this, I have some notes on my experience being a mentor for this program for 2 years. Continue reading →
You can see from my blog that I have been increasing my adoption of F# and my love of the language is growing. I find the language very conducive to cloud computing. F# at its core seems to be built for distributed computing. If you program with F# in an idiomatic way, you are setting yourself up for success on the cloud, as the cloud is a variably sized distributed system that you are deploying production code to. That is what F# excels at.
As much as I have loved F#, it has not been all roses and sunshine. There have been issues. This article at its core is really an ask from the community to support me in building the case and evangelizing F# in such a way it can be recognized and adopted not only by the community, but by those who make the decisions to expend resources on additional tooling and support. I must iterate that the contents of this article are in no way the opinion of Microsoft, but merely my own observations. From these observations I have developed a strategy and action items that we the F# community must do to achieve these goals.
First, we must step outside of our normal mindset as F# developers and begin looking at the language from the outside perspective. We must also look at some trends.
I have created a newsletter due to popular request. I will start mailing once per Month. Please note that even though most of the content on my site is currently game development related, I will be kicking off new content in other areas of interest to start ups and indies as a whole! This is the Indie Dev Spot isn’t it?
So I wanted a really cool menu scene where I have actual characters from the game and a 3D world as the backdrop. You can see the image above for an example. When you click New Game, the camera zooms in on a single character with the others slightly out of view on either side but still visible. Swiping left or right takes you to the next character you can choose. While you are on a character, you can interact with the character via normal input, switch between attack and spell phases, create a minion etc. These characters are powered off of the same state management system that centrally controls the state of my game. This same system also includes my event management system, which is also persistent.
So you want to have constant explosions, hundreds of rockets, bullets flying all over the place and general insanity in your game. Great, so do I! But this insanity comes at a cost if you don’t manage your resources properly. When you instantiate and destroy an object, you have to allocate memory, it sits there for a while and eventually the garbage collector comes by and releases it, IF it meets all of the requirements. Well that’s the sliced down version anyways. If you are interested in more reading on the whys, here are some links to additional reading.
This article discusses one technique for helping manage those resources for objects that might quickly go through that cycle. The article is three sections, what is object pooling, what to pool and how to implement object pooling. Continue reading →