From time to time, I wander into very different directions. Last week, on a whim, I decided to buy myself a Raspberry Pi Zero W with the pins soldered in (because while I technically have the capability of soldering the pins, my practice with soldering is practically nil).
Also got a case, the joy bonnet (makes it like a game controller), and an mini HDMI adapter.
And in the last few days, I have done things that I never generally do. I’ve burned images onto SD cards, I’ve dinked with config files. I’ve puTTY’d and sudo’d.
In other words, I’d say I’ve been having a Flintstonian “gay old time.”
Originally, I had been thinking python, and indeed I had been learning python and pygame. After the number of languages I’ve learned and used over the years, I give python the following summation: “it’s a module based language about scope and indentation level(really, the two things are identical in python), and a rather useful ‘in’ operator”, and I’m certain I will be glad I familiarized myself with it.
But ultimately, I said to myself, “Why don’t I just use C?”
With a few brief tutorials, the syntax for gcc is elementary, and after employing a well chosen makefile template unnecessary.
So I now ssh over the network to the pi with puTTY, work in VIM with my .c files in tabs. It works fine, with an occasional :!make. I’ve got tmux on my list of things to get more familiar with.
Mostly, I’m reminded of when I was using Turbo Pascal 5.5 in High School in 1991. No intellisense. No real debugger except printf statements.
I even took a brief look at framebuffer coding. I cleared the screen white and gray.
Normally, especially with my day job, I’m looking for a simple high level library that does all of my work for me.
When I’m doing Pi stuff, I’m the exact opposite. I’ll certainly use a library. Heck, <stdio.h> is a high level of abstraction above the metal. But I like the low level stuff I get to do with ioctl. It dusts off a part of my brain that used to NEED to do these things.
And it’s fun. Plus, I’m not afraid of gcc or VIM or gpio pins or debouncing.
My coworker mentioned that I have all of the skills necessary to come up with a completely new arcade cabinet. I have woodworking tools. I have the ability to write code. I can wire up a breadboard to attach to joysticks and buttons to gpio pins.
I don’t know where this is heading me, but I know I won’t be any worse off for doing these things.