Hi! If you haven't guessed from the website title, you are on the blog of John "Jeffrey" Westhoff.
First, here are some random links: TIL, Bookmarklets, Interactable posts
Now that that's out of the way, below you'll find my random blog posts in newest-first order - enjoy!
The language is coming along nicely. I refactored the evaluation function, moving out all of the function call logic into more digestible functions. This led to a few nice advances.Continue reading ↦
I’ve spent a few days now planning out more of my project. I worked on the language some more, and brainstormed ideas for blocks I would like to have in the program. I also decided to use phaser as the game engine for the building and simulation of robots. This decision was based off the presence of a physics engine and the ability to specify constraints on sprites, which will take off the heavy lifting of “constructing” robots.Continue reading ↦
For a little while now I’ve wanted to make a game to teach AI programming and robotics. Between school and my summer internship I was able to start it, and here I’ll outline some of my progress. The Project Idea What I want to build is a game in which robots are assembled by snapping together components. The robots are then programmed. The programs must define a run function, which is run every tick of the game.Continue reading ↦
Another semester is over, one that happened to be my first semester where I was allowed to take only Computer Science courses. So, I took Paradigms, Operating System Principles, CSE Service Projects, Hackers of the Bazaar, and Mobile Computing, and I did undergraduate research. The projects in Operating System Principles were all fairly straightforward, but the last one involved writing a file system of sorts which was cool, but there was no room to do what I wanted, so I will only discuss the other courses.Continue reading ↦
I am currently taking a course titled “Hackers in the Bazaar”, which is, by all acounts, the greatest class ever. Anyway, we spent class today playing classic video games brought in by students. I brought in a SNES and a copy of Mortal Kombat). Additionally, I spent about an hour and a half yesterday creating something a bit special for the occasion. My dad keeps his old Atari 2600 up in my closet, along with a chest full of games.Continue reading ↦
For the past five months, I’ve had an old IBM Model M sitting on my desk. Specifically, a 1390572, a 122-key monstrosity. Ever since spending the summer typing on one of these old keyboards I have wanted to get this keyboard working, because it is very loud and very fun to type on. I found a converter for about $40 online, but that doesn’t seem worth it. The keyboard has this weird DIN-5 connector, where the pins sweep 240 degrees; I’ve never seen any connector quite like it.Continue reading ↦
About a year ago my dad suggested that in the future, it will be very common to see virtual actors. That is, there will be actors who exist only as the product of CGI and speech synthesis. Additionally, he believes that very famous actors will be preserved in this way - replications of famous actors will be able to fill in for actors at any age and at any point. We are already beginning to see this, and as the technology begins more advanced I believe it will become more acceptable to replace actors with CGI.Continue reading ↦
For a while now, I’ve been wanting to create a set of foam armor that can keep track of hits and their locations. As a kid I used to like fighting with foam swords, but there wasn’t an easy way to stop people from lying about being hit. It would have been nice to have something like what I describe below: The basic idea for hit detection I came up with is shown in the image below.Continue reading ↦
For fun, I decided Wolfrat Bot needed a bit more, err, personality. So, I set off to make him one. After training an RNN for a few hours on my desktop’s GPU, I had interesting results but ultimately failed at achieving quite what I wanted. Anyway, I encountered some huge hurdles I found out AFTER training for ~8 hours that the way I was encoding the characters for the network input (and thus, the way I was decoding the network output) behaved non-deterministically between Python 3.5 runtimes!Continue reading ↦
The content of this website is on GitHub here. A nifty feature about GitHub are its Webhooks. I wanted to be able to add content here without having to SSH into my server, cd-ing into the www directory, git pulling, and makeing, as those steps are tedious. So, I set up a GitHub webhook to POST to a PHP page on the server. The basic form of this PHP page is just: <?php passthru("MYSCRIPT.sh"); ?> Where MYSCRIPT.sh is just a script that pulls and makes the site.Continue reading ↦