Notes On Etching PCBs

I've been etching more boards in the past 12 months than any time prior that I can remember. The projects however have been far enough apart that I've completely forgotten ratios and times for etching the boards. Rather than forgetting again, this seems like a good place to document some notes. All notes pertain to using MG Chemicals positive, pre-sensitized copper clad, which you can find on Mouser and Amazon. These boards have fallen into obsolesence on Digikey, except for one. Read more...



i3 & XF86MonBrightness

The i3 tiling manager reignited my interest in desktop environments. The ability to manipulate tiles with customizable key combinations was a clear productivity win. The eye candy from /r/unixporn and the ricing posts on 0x00sec were enough to reduce my anxiety about changing my daily workflow. With an increase in customizations, there is some additional complexity. Media and screen brightness keys that worked in other desktop environments seemed to be going to /dev/null. Their functionality was also inconsistent across laptop hardware. There are various solutions to fixing screen brightness keys in i3, most of which are available in this stack exchange post. YMMV, but these never worked well; some don't actually adjust the backlight. So, I need to write some code to increase and decrease the backlight. Is performing those adjustments as easy as updating a file like everything else in unix? Yes it is, with some caveats. Read more...



Final Rebrand

Alright! I was having a conversation with myself over the name of this thing and I decided that lordinateur brings a much too serious tone to what I am doing here. French is great language, but it does not convey the message. It is exhausting to say the name of this site so often to myself. Files, config parameters carry the name. I needed something that brings a chuckle. Thus, the final rebrand for this will end with bitjammin. It is light hearted, fun, and speaks to what we're doin' here, jammin with bits baby. @nullanvoid



Raspberry Pi, 4G, and SMS

Years ago, I was playing with a SIM900A and an Arduino, attemtping to get the modem to register on the Sprint/T-Mobile network via Ting VNO. After a couple of days with zero progress, I binned the project along with my frustration, but my desire to complete the project persisted. As 2G is being sunset this year in the United States, the SIM900A is quickly entering paperweight status. With an extra Raspberry Pi 4 laying around, I decided to give this cellular project another shot with 4G hardware, this time with a SIM7080G. Coupling the Pi with the SIM7080G and three days of searching and throwing a barrage of commands from the AT Command Manual, I was back in the same place before with the SIM900A. With power, serial, and a modem actively responding to commands, what could be wrong? Read more...



Snort 3 Install

Snort 3 was released this year, bringing a number of improvements over Snort 2 which seem to align it with other open source intrusion detection systems. If you want to run the latest Snort version you may be bound to build it from source, including the dependencies as package management systems will not likely have the required versions. Snort provided an install guide detailing the dependencies and versions required for Debian distros: Snort on Ubuntu 18/20. Looking for the install script? This script will perform apt installs, download, build, and install Snort and its build dependencies. Usage: snort3-install.sh Aabd -A: Do all; apt installs, download, build and install -a: Perform apt installs -b: Perform build and install of snort packages -d: Perform download of snort packages Note: snort3-install.sh downloads and builds all in ./snort. Example: snort3-install.sh -A Download: [tar] [sha1sum] @nullanvoid



Port Forwarding -> Two NATs

Recalling Throw Away Your Router, the router and NAT setup was still available on the machine used to configure the APU. Keeping the configuration around has been valueable as there are often other headless or unconfigured devices that need a wired connection, e.g. raspberry pis. My team was about to deploy our vulnerability management solution to a remote site. To test that it worked properly, it was handed off to perform a scan of my home network. Scans worked as expected; the team wanted to make some last minute changes to the depoyment via ansible, they needed to access it via SSH. How can a port forwarded on the router / firewall, get through a second NAT? Read more...



Weekend Hobbies

Rear shock replacement - 2008 Triumph Speed Triple 1050



Remnants of 2020

Late December 2019, my team and I began paying attention to the situation occuring in China. Chinese media outlets were beginning to show images and videos of the roundup and lockdown of its citizens, looking to curb the spread of COVID-19. Appropriately, we created a #coronavirus channel to discuss internally. Life continued as usual, the western media slowly began to cover COVID-19. Read more...



Introducing /moto

I have been motorcycling for about a decade. Motorcycling has provided mysterious encounters in remote forests and new acquaintances; it is about time to document some of them here. Ill start with the Cascades. Check it out here: /moto



Origin Server Lockdown

Running a publicly accessible web server is nearly like running a honeypot. Within minutes to hours of the server coming online, it will begin receiving hits from script kiddies looking for an easy pop. Its a ton of fun to pull in the attack data and begin building dashboards showing IPs, URIs, 2, 4, and 500 status codes, etc. Eventually the real data becomes more important, the actual people that are looking at your pages. bitjammin.com is proxied with Cloudflare. For a long time web ports 80 and 443 were open to the Internet and were constantly under attack. Read more...



Throw Away Your Router

At least recycle it... And build your own. I thought it was time to refresh my PCEngines hardware collection since my last purchase in 2016. The PCEngines APU series is more than capable of replacing a consumer grade router. With mini PCI express slots, including one for 3G and LTE cards with accompanying SIM socket, you may find yourself with redundant ISPs once you finish. Everytime I receive a new APU, I always forget how to install Debian onto it; the APU series supports booting over USB, this will cover PXE booting. Read more...



Weekend Hobbies



FreeIPA Password Expiration

I recently decided to roll out FreeIPA as a directory solution instead of OpenLDAP. Upstream from FreeIPA is an external SAML/SSO provider that provides an agent to sync passwords to FreeIPA. FreeIPA immediately expires passwords that were not set by the user themselves. Maybe this will be optional in future releases. When passwords get synced from the SSO provider, their expirations need to be reset. I found Rainhill Trails BASH from 2013 to work as an immediate solution. FreeIPA at this point was servicing over 1000 users; I crond the script every three minutes to take care of the resets. Weeks in, memory graphs started to show rising memory consumption, reminiscent of a leak. ns-slapd was slowly eating memory. ldapmodify was only being ran when an expiration did not equal 20371231011529Z, somewhere ns-slapd was not freeing resources. Unfortunately, the graphs showing this were purged. Neverthless, writing the functionality in Python turned out to solve the memory issues. The script is available in the code section. Download: [tar] [sha1sum] @nullanvoid



Copy Buffer Weight

Flow; when the typing is quick, the gaze into the monitor witnessing the text across the screen. The sound of the keyboard resonating throughout the room, your ears, your mind. To pause and perform a query against the web. Your code broke, the message obscure. [ctrl+shift+c] You can feel it now, the weight of the text in your copy buffer. You can feel it between your thumb and index finger. It is electric. It is as if the key combination sent signals to your nervous system to let you know that data, potential energy exists, and it is readily available. You feel its presence until it is released, [ctrl+v]. The weight is lifted, the tingling sensation fades away until your next [ctrl+shift+c]. @nullanvoid