Homelab

In my spare time, I’m often working on some section of my home lab setup. A headless server has the Proxmox hypervisor installed with a virtual machine running a dozen or so containerized services, and another running the TrueNAS OS . Monitoring of the machine and services is accomplished through Portainer and using an ELK stack to collect and display log data on a dashboard. Publicly accessibly IP’s are protected using Cloudflare DNS, TLS/SSL encryption, firewall rules. A sample screen capture from one of my dashboards is visible HERE LINK.


Particle Simulation

As part of my final project for the Advanced Computational Physics course at RIT, I developed a python program that simulates the random walk of uninhibited particles for N particles. A full write up and discussion of the project is available at the link below. Notably, the animation portrays particles starting in a 20×20 grid and performing a series of random steps; the particles expand past the original grid as expected. The simulated motion is visually similar to actual particle motion observed through a microscope, as shown in the background video on this website’s homepage. 


Decoding NOAA APT Satellite Broadcast

At all times there are at least several satellites flying above your head. Some of these satellites are weather satellites taking photos of the earth. In particular some NOAA satellites are using Automatic Picture Transmit (APT) which means they are constantly snapping photos and beaming them down to earth. These broadcasts are encoded, not encrypted, meaning anyone can receive them and decode them with the proper tools. I used a free satellite tracking software, an RTL-SDR, and a free decoding program to track satellites, receive broadcasts, and decode them into an image.


Automated Twitter Profile

The Twitter API allows developers to interact with Twitter using code rather than the standard website or app. Using the Twitter API and Node.js, I programmed a twitter account that would consecutively tweet out 140 characters from the Star Wars: Episode IV script. To accomplish this I copied the movie script from IMDb. Then I used a combination of bash commands to remove excess white spaces and escape special characters like % `) “ / ,. I used another command to convert this wall of characters into an array by inserting the proper punctuation after 140 characters. Then using this new array as a list of tweets, looped through them and sent one tweet per hour.

Morse Code Laser Encoding

photo from lightcommands.com

For the final project in my Physical Optics course I built a system that would receive user input from a keyboard and emit laser pulses corresponding to Morse Code letters. This project could easily be expanded on, and with two devices a messaging system could be set up. Additionally a similar set up could be adapted to make a “universal tv-remote”. A much more complex but similar technique has been developed under a DARPA Project called “Light Commands” to activate microphones on IoT devices like Amazon Alexa and Google Home. The project was built using an Arduino and breadboard. The code and other visuals are available HERE.