-
Compiling Expo Prebuild apps in XCode Cloud
The setup I'm using for shipping my react native apps to TestFlight, using Expo prebuild in the XCode Cloud.
-
Intro.JS - Skipping hidden elements
A quick tip on how to skip tooltips for hidden elements using IntroJS
-
The "Passport" - a RAKWireless case for Meshtastic
#3d-prints #3d-printing #meshtastic
A custom external hard-drive form factor, 3d-printed case for the RAK19007 base. Designed to accommodate GPS, Bluetooth, and LoRA antennas internally.
-
Experiments with Meshtastic
Documenting some of my adventures in getting started with Meshtastic
-
Dark Mode with Design Tokens in Tailwind CSS
An approach for implementing design system tokens in Tailwind, for more symbolic theming
-
Flashlights / Gear Recommendations
Some of my favorite flashlights, hiking and camping gear
-
Sending Data from Ambient Weather Station to Home Assistant
#outdoors #weather #home-server
A local-only option for integrating your Ambient Weather station with Home Assistant
-
A pattern for asynchronous loops in JavaScript
For loop-heavy JavaScript code, I've found it can be helpful to use both a combination of async & traditional loops.
-
Privilege Escalation in EC2, using Session Manager
The dangers of granting ssm:StartSession permissions to your EC2 instances
-
Flexbox Layout Engine
A simple flexbox-like layout engine I built for my dashboard project to simplify layout computations.
-
Satellite Tracking Dashboard Widget
#raspberry-pi #python #linux #space
A satellite tracking widget for my monitoring dashboard project
-
Lightweight dashboards via the Linux Framebuffer
#raspberry-pi #python #aws #linux
A lightweight Python module I wrote for my Raspberry Pi to display monitoring dashboards using without any GUI, just the framebuffer.
-
Simple Dynamic DNS With Route53 and AWS Lambda
#home-server #tutorials #linux
Using an AWS function to update a DNS record in Route53
-
Setting up NGINX and LetsEncrypt on my Home Server
I set up nginx and use LetsEncrypt wildcard certificates using the Route53 plugin to secure my home server's services.
-
Auto mount encrypted drives, using 1Password and systemd
#home-server #linux #cryptography
How I automatically mount the encrypted RAID array for my home server at boot time, using 1Password and systemd.
-
Static Password Protected Posts, pt. 2
Some updates on my original post about encrypted content for this blog
-
Express / WebSockets for Real-Time Updates
A quick primer on using Express and WebSockets to enable real-time updates in your app or website.
-
Layer Alignment in FDM 3D Printing
How to design parts and align your print layers to make them stronger.
-
-
-
Reducing Digital Distraction on iOS & macOS
I've been using the Screen Time utility on my devices to help remove distractions
-
"My Code's Crashing" - A Robot Debugging Story
An anecdote about software debugging and incorrect assumptions
-
3D Printed Signet Ring
Designing and 3d printing custom rings & printing them in metal
-
A Backlit Picture Frame for Movie Film
An electronics project featuring a dimmable backlight for a movie souvenir film strip
-
Password Protecting Blog Posts WebCrypto!
#cryptography #security #meta #javascript
A process to password protect blog posts in my static site, using encryption to keep the contents secure.
-
Running local LLMs using Ollama
An example of how to run models like llama3 locally, and how to use them programmatically
-
VueJS - Digging into v-model
A cheat-sheet for what the VueJS "v-model" syntactic sugar is doing under the hood so we can customize the behavior of our components.
-
Thoughts on Code Clarity & Maintainability
#notes #opinion #javascript #python
Some thoughts on best practices for keeping code maintainable as a team scales
-
Better macOS Screenshot Workflow
#hacks #tutorials #computer-setup #scripts
Customizing the default save location of the built-in macOS screenshot tool and adding it to the dock to enhance usability
-
My Dotfiles, Refreshed
#hacks #computer-setup #macos #linux #scripts
Refreshing and simplifying my dotfiles for zsh, vim, and tmux.
-
Typescript trick: Required enum values as keys
A quick trick I've found useful for enforcing that a typescript string enum's values are used as keys in a record.
-
Hacker News Dark Theme
#hacks #computer-setup #tailwind
A uBlock Origin filter providing a dark theme for hacker news
-
-
Detecting ECS Task Failures with EventBridge
A few rules I'm using for detecting ECS task failures, for both container errors and non-zero exit codes.
-
blg - a 'social' rss feed reader
A new RSS feed reader I'm working on, with some plans for cool future social features
-
Local iOS builds using Expo Prebuild and Fastlane
A simple example of using Fastlane alongside Expo's Prebuild to deliver React Native apps to Testflight
-
3D Printed "Red Button"
An ultra-dramatic stand alone enter key for your computer.
-
Quick JQ Usage & Examples
Quick examples for getting the hang of using jq in your terminal
-
Terraform with EC2 instances as data source
Creating AWS cloudwatch CPU alarms for all instances using a terraform data source.
-
Using Certificate Transparency Logs for DNS Enumeration
A tool for enumerating DNS records using cert transparency and dictionary files
-
iPhone Backup Tools v2
#iOS #reverse engineering #infosec #security #notes
Introducing a new version of my iOS backup tools, now featuring decryption. Written in rust.
-
Site Redesign, new pages
I've overhauled the visual look of this site to be simpler and a bit more modern.
-
Raspberry Pi External Status Lights
Wiring up "online" and cpu activity lights via GPIO.
-
Instrumenting Utilities Usage
How I monitor water and electricity usage for my house, using a raspberry pi, an rtl-sdr, and prometheus+grafana.
-
Pi Pico Digital Clock
A digital clock project I'm working on using a Pi Pico and a DS3231 Module
-
-
3D Printing
Introducing the 3D printing section of this site, where I publish prints I've designed.
-
Common Web App Security Bugs and where to find them
A (non-exhaustive) list of common web security bugs with examples, including XSS and command injection.
-
-
Christmas Light Troubleshooting Guide
A guide on troubleshooting, and managing strands of holiday lights.
-
Effectively using ed (1)
A tutorial/cheatsheet on using ed (a line-oriented text editor) effectively
-
A Cheap Video Capture Solution
Save your home videos stuck in arcane formats, using this inexpensive setup
-
PlantCam (how it works)
Technical information on how my plant camera operates using ffmpeg and raspistill
-
Decentralizing Your Digital Life
A list of sites & services that aren't run by mega-corporations.
-
-
Tools for Small Electronics Projects
Tools that I find useful when working on side-projects involving electronics & circuitry
-
Debian (XFCE/Wfm4) with macOS-like keybindings
Some keybindings & shortcuts I configured to make my transition to linux a little easier.
-
Making Maple Syrup
Steps (and mistakes) I made while making my first batch of maple syrup
-
Reverse Engineering some Wordpress Malware
#notes #reverse engineering #security
Wordpress Hardening & Reverse engineering some wordpress malware
-
Setting up Bind9 as a forwarding DNS server
#notes #tutorials #linux #dns #raspberry pi
Setting up Bind9 to forward DNS requests to cloudflare + google, and adding some additional records for my lan.
-
IR Remote-Controlled Light
My design for a IR-remote-controlled light using an Adafruit Trinket M0, and CircuitPython
-
WASM Basics using WAST
Examples using the WebAssembly Text format (a.k.a. WAT or WAST).
-
-
Fix your 2012 Honda Civic's charging system
The 2012 honda civic likes to drain its battery - here's how we fixed it.
-
Converting Video for the Web with FFMPEG
How I generate videos for this website, using ffmpeg.
-
Making GIFs with FFMPEG
Terminal commands for generating gifs from a video, using ffmpeg.
-
Farming Notes
Notes + Information I've collected from my growing of Pumpkins, Corn, Carrots, and other fruits and vegetables.
-
Building a new Static Site Generator
Progress in building a static site generator in rust, using servo's html5ever and mozjs packages
-
-
Enabling Dark Mode in CSS
Using the prefers-color-scheme css media query to darken pages depending on system preferences.
-
-
SHBAR - Shell Scripts in your macOS Menu
An experimental swift menu bar app which gives you the ability to script your menu bar
-
Debian 9 NAS
#linux #tutorials #notes #home-server
Setting up NAS box on top of debian, using RAID 1
-
-
My Raspberry Pi Setup Checklist
My checklist for Americanizing and configuring a new raspberry pi.
-
Retrocomputing - Repairing my old PC
Repairing my old PC, and going through some old software
-
Root Shell on your Drone!
#electronics #security #linux #reverse engineering
Syma X5SW - Getting a root shell, streaming video, taking pictures, and more!
-
Custom Solar Light using a Mason Jar
Constructing a solar light using Mason Jars, LEDs, and misc. parts.
-
ARKit + 3D printing: STL files in AR
We can display STL files in ARKit with relative ease. STL files are typically used in the process of 3D printing.
-
Visualizing Algorithms
Using some custom code to generate interesting graphs of algorithmic operations.
-
Swift Errors
An improved way of getting debug strings for Swift Error instances, and demystifying error codes for custom error enums
-
Linux Framebuffer Graphics
Using the linux framebuffer for raw graphics without a window system.
-
iOS Backup Information Extractor Tool Updated
#iOS #reverse engineering #infosec #security #notes
I've updated my tool to extract tons of useful data from iOS backups
-
Using Swift DispatchGroups
Using Swift DispatchGroups for improved performance in iOS Apps
-
Essential Shell Shortcuts
Here's a list of some really awesome shell (bash/zsh/etc) shortcuts that I use all the time.
-
Tutorial: AWS Static Hosting
How to set up hosting for your static site on aws, that doesn't cost a fortune
-
-
My Summer Internship!
This summer, I interned at ABC News in New York. I worked on their iOS and tvOS apps.
-
JS 0x01 - Multiple Return Values in JavaScript
Since ES2015, a much better way to express multiple return values is available.
-
Reverse Engineering the iOS Backup
#iOS #reverse engineering #infosec #security #notes #javascript
Explore the format of iOS backups and ways to extract data.
-
Extending the UIButton tap area
Extending the touch area of a UIButton with Edge Insets
-
-
-
-
BeachParking.com solves beach parking hassles
BeachParking.com solves beach parking hassles!
-
-
-
-
Swift is open source
Apple's swift programming language is now open source, which opens numerous doors for using the language elsewhere.
-
Subscribe to my Newsletter
Get new posts right in your inbox.