In what has been a very good week, I’m happy to say that I have some successes.
First, I got to play around with the programming language Julia. This is part of the ongoing work I’m doing with 7 More languages in 7 weeks. Julia is a nifty little language that excels in technical computing. It was real simple to pick up the basics, and I could see where math-heavy programs can utilize it. The examples head you playing with multi-dimensional arrays and transforming them. Had I remembered any linear algebra, I could see why this would be so attractive. I’m interested in seeing what’s next in this language.
Second, I made some good success on Project Euler. I was working on problem # 100 (hooray a round number), which involved probabilities (blech). I don’t want to give away too many secrets, but I went about it all wrong to begin with. My Clojure Program took at least 4 days to run, but I was happy to get a right answer after that. I’ve done some problems that ran for days, only to be wrong. I knew that the code I was running was fast, but the problem was I was just checking too many numbers. My problem domain was too large. More often than not, its an algorithmic optimization that buys you the most, not the small stuff (which is a very tough thing to convince when working with embedded engineers used to optimizing assembly). I was able to see a much faster solution after I solved the problem, and I can tell you that it only had to make 8 or 9 iterations of a computation, rather than a couple hundred billion.
Lastly, I’m happy to say that I got my elixir starter bot for Warlight2 interfacing with the server : https://github.com/pviafore/warlight2-starter-bot-elixir. I sent if off to the ai games to try and get elixir installed as a supported language on their systems, so time will tell if that works or not. I liked this project so far in Elixir, because the whole actor model makes it very, very easy to keep things isolated, which makes testability a snap. I want to get better at Elixir macros, so that I can better understand metaprogramming, and I’m hoping my next few iterations will do just that.