Sept 5, 2022
I have recently built a small robot as a test platform for an advanced robotics project. Huh? Let’s put the advanced robotics project aside and talk about what I actually have. I have a working robot that can detect hard collisions and the code is 120 lines of CircuitPython (not counting the libraries used to be clear). I can write a lot more code, but there’s no point to make it overly complicated until certain goals are met. Those goals: detect soft collisions, detect false-positive accelerations that are not collisions, and store information. While these may seem pretty easy to overcome, the thesis of this blog post is that they are not.
Let’s start at the very start. When I was young I wanted a robot. I didn’t know why very well, but I knew that I did. I bought Handbook of Advanced Robotics from a used bookstore, a bunch of motors, balsa, wheels, and other RC stuff from my local hobby shop, and started building. After building quite a few uncontrolled cars, I realized that a lot of the robot lies in control. It did not occur to me until I reached university how much. I tried to build an ornithopter and after propulsion failed on that project, I went off to university and gave up on robots. As time went on I worked on electronics and realized that while I was better than average at soldering, I was particularly bad at finishing projects. Each project had an obstacle. Not only did I lack experience as a young person, I lacked the necessary support to complete projects of even modest difficulty.Read more »
July 28, 2022
TetrisGYM is a wildly popular mod of Tetris for the Nintendo Entertainment System. It has recently been made into a cartridge by one of the highest scoring players, EricICX. Released in 1989, Tetris has come a long way as a result of high score competition, a fanatical community, and quirks that make it an incredibly difficult game to master. If it was just difficult to master, it might have earned a community. But its quirks have earned a mod that turns the game into a learning experience. The current list of features for TetrisGYM:Read more »
July 10, 2022
I’m playing a lot of NES Tetris recently and I won my first match. What happened? Well, I played well and my strategy turned out to work in this case. I learned about Tetrisfish, which uses the tetris engine StackRabbit to analyze games from video and I ran it on the first game. Since it was fairly slow and didn’t give me anything but tips on how to improve my stacking (thanks by the way), I wrote a simple modification to make it possible to avoid those analysis calls. Instead with my version, I can just output a file that showed what happened during the game: piece sequence, drought for each piece, and tetris rate. Tetris rate ignores pushdown points so the value is not accurate to the actual score, but is good enough since most games are won on scoring points with lines not pushdown.Read more »
Today I release a simple Sunday script building on the distant past. How do you sort a list of words in a language you're learning? The easiest order is the order you originally wrote them down in. The second easiest (and probably one of the best orderings) is random. Random ordering removes biases that a human put in and biases the list to another order. If you order your list randomly each time you read from it, you can remove bias.
This is how I ended up trying to learn kanji last year. It didn't go so well. What's wrong with random ordering of a list of words? It provides a test of one's memory. As my memory is not great, the random ordering does not actually solve the problem of memorization. So how does one memorize words? I had quite a bit of success with WaniKani this winter. I learned 85 kanji (that I had already learned on my own) and 184 words based on those kanji in a few months. What does WaniKani do that I didn't do? 1) WaniKani is an SRS. 2) WaniKani has experts to come up with a good set of data about kanji and vocabulary to cement the meaning and readings.Read more »