Karush Logo

Summer 2021

Chips, Travel, Books, and Bots

Another busy summer is drawing to a close. It's good be on what so far appears be the other side of the COVID pandemic. It was great to be able to spend time with the family and explore some activities. Here are this summer's highlights.

Chips

As I continue some university coursework, I started the summer by taking "Digital Design" during May and June. The course covered boolean algebra, logic gates, and circuit design. It discussed in depth many of the topics from one of my favorite books "Code" by Charles Petzold.

I've explored the Raspberry Pi (which uses a full microprocessor) but this course inspired me to learn about the Arduino (which uses a microcontroller). I picked up an Arduino Starter Kit and I'm working through the various projects as well as some of those by an engineer named Ben Eater on YouTube.

I'm amazed for example by the 555 integrated circuit. This chip can be used in a circuit to create a "digital pulse" (clock cycle) that turns a voltage on/off in regular intervals based on the connected resistors/capacitors. Again this is readily achieved using a Raspberry Pi and software, however it's neat to be able to do it using just low-level circuits.

I'm planning to take another course this fall - Software Specification and Design.

Travel

It was good to travel a bit more this summer. Last summer we drove up to Valentine and canoed the Niobrara.

This summer we made it up to Okoboji for the annual CYSL soccer tournament. Josh's team didn't win but they made it pretty far up the ladder. They were ultimately eliminated by the overall winner. The boys had a lot of fun at Arnold's Park and out boating/tubing on the lake.

We also made a trip out to Breckenridge. We spent a day hiking and enjoying the summer activities up on Peak 8. We also spent a day in Buena Vista rafting the Arkansas river with our raft guide Gattlin and Wilderness Aware Rafting. Very fun!

It was nice to be able to travel more freely during this "post-COVID" summer, however vacationing was challenged by the combination of the staffing shortage and the number of people out traveling.

Books

I started the summer by reading "The Gods Themselves" by Asimov from 1972. It received both a Nebula and a Hugo award. That being said, I've enjoyed his other books such as the Foundation series more.

I also read "Mercury Rising" by Jeff Shesol (not to be confused with the 1998 movie with Bruce Willis). This book covered the start of the US space program, the space race with Russia, John Glenn, John Kennedy, and the Mercury space program. I was most affected by realizing how much uncertainty there was in those early years of the space program. I would definitely recommend this book.

I'm currently reading "Project Hail Mary" by Andy Weir (author of The Martian). It's quite good, and I can definitely see it being made into a movie as well.

Bots

My soon-to-be college sophomore Jack has been working part-time with me as my "intern" this summer. One of the more fun projects is using the Starcraft II API.

In summary, Starcraft II is a real-time strategy game where players build up armies and then compete to control the territory on a map. The Starcraft II API allows you to programmatically play the game using "bots". Instead of playing the computer game manually like you normally would, you create code in Python that executes your play strategy. You can then upload your code to a website that will automatically pair and compete your code against code submitted by other players.

Back in 1990, there was a game similar to this called "Omega" that I played on my Amiga 500 computer. I've always wished someone would create an updated version of this, and the Startcraft II API is pretty much that!

I've known about the API since it was released back in 2017, but getting started at the time was fairly complicated. Fortunately Jack was able to invest the time to get it figured out this summer. The most straight-forward entry point to using the API is here at sc2ai.net and the "Getting Started" guide the website references. From there you can learn to use a Python library named "python-sc2" which wraps the low-level Blizzard SC2 API.

My basic bot is competitive but far from expert. Jack's bot has been doing quite well in basic competition. You can read about his project here.

This is been a great exercise for both of us to level-up our Python programming skills!