After I left working with the U.S.A.F (U.S. Air Force) in September 2013 I didn’t have an exact plan but I knew I would have to devote time to learning something new. My biggest challenge was that I had no idea how to code. I still had the dream for a J.A.R.V.I.S (Link) and realized that if I wanted a program to learn from me that it would require a machine-learning algorithm analyzing my work in real time.
I began with a month-long task of studying data mining, pattern recognition and reading as many PHD papers of algorithms related to real time event recognition as I could. That ended up totaling around 30 papers that I could understand (to a certain degree). I resolved to use an algorithm described in the paper “Discovery of Frequent Episodes in Event Sequences” from the University of Helsinki (Heikki Mannila, Hannu Toivonen, A. Inkeri Verkamo). There was pseudo-code in the paper explaining the algorithm (i.e. it wasn’t in any computer language, but more just an approximation), so I set about trying to translate the algorithm into a language.
This meant choosing a language. I knew I’d be working in Windows and .Net so that limited the number of languages I could choose from- C++, VB.net, C#... Visual Basic.Net looked the most approachable from a syntax perspective and I thought it would work well.
From my own plans, I envisaged a timeline from development to a real program should be around eight months. I can hear you chuckle at your screens. I spent a few more months tweaking the algorithm for my uses, excited about what I was creating. There were fits and starts but I felt I was getting there.
When it was finally translated, I ran some tests.
And the results were not what I was expecting.
Was it back to square one? Not at all, but it felt like a setback.
I was reading continuously, trying to soak up as much knowledge as possible and I’d also been getting more involved in the programming blog-sphere. Some friends were great in giving advice too and I came to the realization that while VB.net is accessible and bears many similarities to C# - if I kept up with it, there would be difficultly later in getting other programmers involved, as very few people want to work in VB.net anymore.
During my research I discovered another .net language that had been getting rave reviews. It also seemed to have a great following with a supportive community. It also appeared to have more possibility and capability mathematically – something that I required. This was F#.
Could it produce the results I wanted?
I’ll let you know in the next blog post. In the meantime, please subscribe to www.officeAutomata.com for updates and follow us on Twitter and LinkedIn - @officeAutomata. If you have any feedback for us, please get in touch!