Blog
2023
April
- 2023-4-04 » The Tao of Suck-Driven Development (SDD)
February
- 2023-2-24 » Liquid Nitrogen Cryo Spray Guns
- 2023-2-6 » Tech Logos I (Mostly) Like
2022
August
- 2022-8-08 » How to restart macOS Audio services
January
- 2022-1-13 » Golang + Postgres + sqlc: could not determine data type
- 2022-1-13 » How to Delete from Browser Auto-Complete History (Chrome / Brave)
2021
December
- 2021-12-15 » The BEST Bowls for Authentic-ish Microwavable Ramen
- 2021-12-15 » Thin, Crispy, American (Non-Belgian) Waffles are REAL
- 2021-12-10 » Workaround for Broken Brave Sync Chain (after Migration Assistant)
- 2021-12-7 » How to Move Davinci Resolve Projects (between computers)
- 2021-12-5 » How to Install OBS Advanced Scene Switcher on macOS
- 2021-12-1 » Best Thunderbolt Display / iMac Monitor Alternative
November
- 2021-11-9 » How to extract .pkg files (and Payload)
- 2021-11-9 » Remote Desktop over SSH with macOS
- 2021-11-9 » Meeting / Video Transcription Solutions
- 2021-11-9 » Payment Services that use Wallet.js
October
- 2021-10-7 » How to Set Static IPs on an EdgeMAX Router
- 2021-10-2 » So You'd Like to Accept Some Payments (Through Code)
September
- 2021-9-21 » Service Providers that follow Due Process
- 2021-9-21 » Getting into Video (and Photography)
- 2021-9-9 » HDMI 2.1 / HDCP 2.3 Extensions and Couplers
July
- 2021-7-28 » The Big Squid Values
- 2021-7-19 » From Slack to Discord
- 2021-7-17 » How to get your (JS) Stack Trace back
- 2021-7-13 » Music You Know from... Every Movie
- 2021-7-11 » The Billionaire Riddle
- 2021-7-10 » My Top Anime Picks
- 2021-7-8 » How I dealt with Hell's Itch
- 2021-7-6 » How to repair a Savi's Workshop Lightsaber (Disney Star Wars Experience)
- 2021-7-5 » Forward and Reverse Bias Diodes
June
- 2021-6-29 » How to Rip Blu-Rays with a LibreDrive
- 2021-6-29 » Latvian Disney Movies (latviešu dubs)
- 2021-6-26 » The Practical Risks of Gallium: Toxicity, Corrosion, etc...
- 2021-6-25 » One Weird Trick Star Wars Fans MUST Know...
- 2021-6-20 » How to be an Amateur Kite Flyer, like a Pro
- 2021-6-15 » How to force a public WiFi's paywall page to open
- 2021-6-5 » Heat Shield Your Windows on the Cheap
May
- 2021-5-25 » Best Handbrake Settings for Blu-Ray & DVD
- 2021-5-6 » Mechanical Pencils for Serious Pencil... users...
- 2021-5-6 » The Wide World of Pomodoro Timers
- 2021-5-2 » How to make Canon EOS Webcam always on
April
- 2021-4-10 » My DaVinci Resolve Notes
2020
November
- 2020-11-14 » Re: 7z: ditch the underground, use xz instead
July
- 2020-7-07 » Getting around Gatekeeper on macOS10.14+
April
- 2020-4-21 » vim 8 plugins
March
- 2020-3-31 » Weak Timeout and Event Loop References
January
- 2020-1-21 » Default Chrome Fonts on macOS
- 2020-1-16 » 'Un-eject' Macbook SD Cards (Nifty!)
- 2020-1-14 » Homebrew on Nintendo Switch (for n00bs)
2019
December
- 2019-12-26 » How to burn an ISO to USB drive on macOS
- 2019-12-23 » How to get iMovie 9 on the latest MacOS
- 2019-12-19 » How to Put your Mac to Sleep
September
- 2019-9-28 » The Gamecube Memory Card: EXI vs SD
- 2019-9-27 » GameCube Homebrew for n00bs
- 2019-9-13 » Upload to S3 with Node - The Right Way
August
- 2019-8-31 » The GameCube Ultimate
- 2019-8-8 » NPM problems with multiple node versions
- 2019-8-7 » No, REALLY Remove Replicated
- 2019-8-1 » Security: Perception isn't Reality
July
- 2019-7-24 » The Vanilla DevOps Git Credentials & Private Packages Cheatsheet
- 2019-7-24 » The Ultimate Guide to Git Credentials
- 2019-7-5 » Sign JWTs with WebCrypto in Vanilla JS
June
- 2019-6-28 » Golang Sins: The Evil Range Element
- 2019-6-26 » Space-aligned tables in 30 lines of VanillaJS
- 2019-6-25 » How many downloads do you get on npm?
- 2019-6-25 » Windows and Admins and Golang, Oh My!
- 2019-6-13 » Batching async requests in under 50 lines of VanillaJS
- 2019-6-6 » No, REALLY Remove Docker
May
- 2019-5-31 » Reject Ugly Commits with Server-Side Git Hooks
- 2019-5-29 » DIY Multi-User Git Deploys
April
- 2019-4-13 » Restart Frozen FaceTime/iMessage Video/Screen Sharing
- 2019-4-6 » How to convert a Mailgun export to Gmail-friendly list
- 2019-4-6 » From Daplie to Hub: What to Expect
- 2019-4-5 » How to use SnowSQL in Docker (not with Alpine)
- 2019-4-5 » An async forEach in 6 lines of VanillaJS
March
February
- 2019-2-09 » Tabiger Soldering Kit Review
2018
December
- 2018-12-14 » Native BigInts and Base64 in JavaScript
- 2018-12-13 » How to go between JS BigInts and TypedArrays
- 2018-12-12 » Convert Decimal Strings to Hex with JS BigInts
- 2018-12-11 » Convert Big Hex to Big Decimal with JS BigInts
- 2018-12-10 » Native BigInts have Arrived in Chrome and Node.js!
- 2018-12-7 » RSA vs ECDSA
- 2018-12-6 » OpenSSH vs OpenSSL Key Formats
- 2018-12-5 » The OpenSSH Private Key Format
- 2018-12-4 » SSH Pubilc Key Fingerprints
- 2018-12-3 » The SSH Public Key format
November
- 2018-11-30 » Big Int Encoding
- 2018-11-29 » How to Rewrite History (with Git)
- 2018-11-27 » How to count Unicode characters in Javascript
- 2018-11-26 » Unicode, My Old Friend
- 2018-11-25 » ASN.1 for Dummies
- 2018-11-11 » CSR, My Old Friend
- 2018-11-6 » New in Node v10.12: Native RSA, EC and DSA support
- 2018-11-4 » Time Ago in under 50 lines of JavaScript
- 2018-11-3 » Getting TV Shows You Can't Buy
October
- 2018-10-31 » Testing if SSH allows passwords
- 2018-10-20 » Enabling Policies: The Cure for Meta-Work
July
- 2018-7-26 » Install Arch Linux in 5 minutes
April
- 2018-4-17 » Let's Encrypt v2 Step by Step
- 2018-4-8 » CTR-7 Pancakes
- 2018-4-8 » I'm coming out (but not that way)
- 2018-4-1 » Home Teaching: The Wrong 100%
March
- 2018-3-05 » Simple Bank's Best Rubber Band Wallet
February
- 2018-2-15 » How to view all comments on IndieGoGo
2017
February
- 2017-02-09 » My Exported Netflix List
2016
November
October
- 2016-10-03 » UBOS Linux on Raspberry Pi 3
April
- 2016-4-11 » How to install Fish on Ubuntu
2015
August
- 2015-8-17 » HAProxy with HTTPS (TLS/SSL)
July
- 2015-7-10 » Getting Started with Golang and Vim
- 2015-7-9 » Getting Started with Golang on OS X
- 2015-7-8 » Searching Skype's SQLite Database
- 2015-7-7 » Let's Encrypt with HAProxy
- 2015-7-2 » Create your own certificate authority (for testing)
June
- 2015-6-29 » Number of CPU cores on Linux and OS X
- 2015-6-29 » Building SQLCipher on OS X
- 2015-6-29 » Building SQLCipher for node.js on Raspberry Pi 2
- 2015-6-27 » WebCrypto: Encrypt and Decrypt with AES
- 2015-6-26 » Convert a TypedArray Buffer to Base64 in JavaScript
- 2015-6-26 » Get the IP address of devices using Internet Sharing
- 2015-6-26 » Unicode String to a UTF-8 TypedArray Buffer in JavaScript
- 2015-6-26 » Symmetric Cryptography (AES) with WebCrypto and Node.js
- 2015-6-24 » Asymmetric Public / Private Key Encryption (RSA) in Node.js
- 2015-6-24 » adventures in haproxy: tcp, tls, https, ssh, openvpn
- 2015-6-23 » Let's Encrypt (Beta) on Raspberry Pi (and Ubuntu Linux)
- 2015-6-20 » How to test if a port is available (in Go)
- 2015-6-10 » Today I became a Go developer, with vim and Caddy
- 2015-6-9 » Secure your redirects!
- 2015-6-9 » How to examine the metadata of an SSL (HTTPS/TLS) cert
- 2015-6-8 » gimme the freakin' easy button already!!!
- 2015-6-4 » Reverse VPN: turn any private device into public cloud server
- 2015-6-4 » Access web pages through your home network via SSH
- 2015-6-4 » UTF-8, TypedArrays, Base64, Unicode, and You
- 2015-6-3 » Things ES6 should have fixed...
- 2015-6-2 » Secure your users' passwords from the browser on
May
- 2015-5-18 » Exploring an APK
March
- 2015-3-20 » How to create and issue Trusted Peer SSL Certificates
- 2015-3-15 » How I setup my ChunkHosts
- 2015-3-15 » A better Hello World: netcat.js
- 2015-3-1 » JS Empirically Better Style
February
- 2015-2-28 » A better npm
- 2015-2-13 » Extract text from PDFs (even protected ones)
- 2015-2-13 » Unfortunately valid JavaScript
- 2015-2-13 » Export DNS records from bluehost.com with jQuery
- 2015-2-12 » Export DNS records from name.com with jQuery
- 2015-2-10 » jscs, .jscsrc, vim, syntastic, and you
- 2015-2-7 » Adventures in UPnP with node.js
- 2015-2-7 » Adventures in UPnP on OS X
- 2015-2-5 » Adventures in UPnP with cURL and netcat
- 2015-2-5 » How to Build an SD Card for Raspberry Pi on OS X
- 2015-2-4 » Resources for Getting Started with AngularJS
- 2015-2-2 » Testing OAuth2 with Facebook Connect
January
- 2015-1-27 » How to create a Certificate Signing Request (CSR) for HTTPS (TLS/SSL) RSA PEMs
- 2015-1-20 » Home Row Arrow Keys on OS X with Karabiner
- 2015-1-17 » Low-fat recipe for the Game Boy Ultimate
- 2015-1-17 » Is bogosort really all that bad?
- 2015-1-16 » Mustache, demystified!
- 2015-1-16 » Happy New Year, with love, Desi
- 2015-1-6 » Hashing with the Web Crypto API
- 2015-1-4 » Make dvorak a Portable Keyboard Layout
- 2015-1-2 » Getting Started with Vagrant
2014
December
- 2014-12-29 » Securing your VPS for the semi-paranoid
- 2014-12-10 » How to create an OS X Installer
- 2014-12-8 » How to rsync files by date or by size
November
- 2014-11-9 » How to upgrade the Flame from FxOS 1.x to 2.x
- 2014-11-4 » DIY Home Theater Screen (with Pictures)
September
- 2014-9-30 » Snippets for Working with JSON in PostgreSQL
May
- 2014-5-20 » Emoticons are dead. Horses are the new hotness.
- 2014-5-6 » A quick test of PostgreSQL with node.js and Bookshelf
February
- 2014-2-17 » One Weird Old Regex to Parse Phone Numbers
January
- 2014-1-15 » How to burn DVDs from mp4s on OS X
2013
December
- 2013-12-28 » Process uploaded images with cron
- 2013-12-10 » DIY Presentation Recorder for User Groups & Such
November
August
- 2013-8-17 » How to control OS X System Volume with AppleScript
- 2013-8-3 » How to circumvent the latest browser security policies
July
- 2013-7-31 » Dear Twilio: Read This
- 2013-7-31 » How Venmo enforces simpler money transfer
- 2013-7-19 » Getting Started with the PURE Template Engine
- 2013-7-16 » How to Tweet from NodeJS
June
- 2013-6-14 » Teaching, Learning and Motivation (Part I)
May
- 2013-5-5 » How to find DHCP clients on OS X's Internet Sharing
- 2013-5-3 » An Open Apology to the PHP Community
- 2013-5-3 » Getting Started with PHP (not even trolling)
April
- 2013-4-24 » How to create an installer for NodeJS System Service
- 2013-4-24 » How to create an Ubuntu (deb) installer (for NodeJS apps)
- 2013-4-22 » How to create a Windows (InnoSetup exe) installer (for NodeJS apps)
- 2013-4-16 » How to pick a facebook fan at random
- 2013-4-16 » How to Unpackage and Repackage an exe (InnoSetup / InnoUnp on Windows)
- 2013-4-3 » How to create a Transparent Gradient or Complex Watermark
March
- 2013-3-29 » How to Export Audio (and Video) from YouTube
- 2013-3-22 » How to create an OSX (pkg) installer (for NodeJS Apps)
- 2013-3-22 » How to unpackage and repackage a pkg (OS X Lion+ / Xcode 4.3+)
- 2013-3-15 » How to change the URL of a facebook group
- 2013-3-14 » An introduction to Networking with Netcat and NodeJS
- 2013-3-13 » Moving to GruntJS
- 2013-3-12 » How to change the Host key in VirtualBox on OS X
- 2013-3-12 » Intro to JSHint: Training Wheels for JavaScript
- 2013-3-12 » Introduction to HTTP with Netcat, Chrome, NodeJS, and Connect (ExpressJS)
February
- 2013-2-12 » Web Development is an Uphill Battle
- 2013-2-11 » How to load jQuery anywhere
- 2013-2-11 » How to Show Your Appreciation
- 2013-2-10 » How to watch Netflix on Ubuntu (for technotards)
- 2013-2-8 » Getting started with ZSH on Ubuntu (for technotards)
- 2013-2-8 » The how and why of auto-executing functions (in JavaScript)
- 2013-2-7 » How to automatically load a module in node's REPL
- 2013-2-7 » How to clear node's REPL (the interactive console)
- 2013-2-6 » Hosting Project Documentation on GitHub Pages
- 2013-2-6 » Hosting your blog on GitHub Pages
- 2013-2-5 » How to install Steam on Ubuntu (for technotards)
- 2013-2-5 » How to play MP4s and M4As in Ubuntu
- 2013-2-4 » How to get more Fonts on Ubuntu
- 2013-2-4 » How to install Adobe Reader (Acrobat) on Ubuntu
- 2013-2-4 » How to install Flash on Ubuntu (for technotards)
- 2013-2-4 » How to play DVDs on Ubuntu (for technotards)
- 2013-2-4 » How to play MP3s, M4As, and more in Ubuntu
- 2013-2-3 » Unassisted Motion Tracking in JavaScript / HTML5
January
- 2013-1-31 » Don't fear Terminal (for technotards)
- 2013-1-31 » Google Repositories for Ubuntu Linux
- 2013-1-31 » How to install Google Chrome on Ubuntu (for technotards)
- 2013-1-31 » How to install system updates on Ubuntu (for technotards)
- 2013-1-31 » The Ubuntu You Deserve
- 2013-1-31 » Ubuntu, WiFi, Video Drivers, and You (for technotards)
- 2013-1-30 » How to install Skype on Ubuntu (for technotards)
- 2013-1-30 » How to install Spotify on Ubuntu (for technotards)
- 2013-1-30 » Play Blu-Rays in Linux and OS X with Blu-Play
- 2013-1-28 » Don't Panic!
- 2013-1-28 » Screen Resolution, VirtualBox Guest Additions, Ubuntu, and You
- 2013-1-28 » So I installed Ubuntu Linux... Now what?
- 2013-1-26 » Add thumbnails to craigslist with jQuery
- 2013-1-24 » How to create a bookmarklet (and load jQuery anywhere)!
- 2013-1-24 » How to install Ubuntu from Windows (for technotards)
- 2013-1-22 » A new VPS in town from Digital Ocean
- 2013-1-22 » How to install NodeJS on Ubuntu
- 2013-1-22 » Pro Tips for Installing Windows 7 in VirtualBox
- 2013-1-21 » An introduction to Markdown
- 2013-1-21 » Getting started with ruhoh (static blog)
- 2013-1-19 » Migrate from Blogger to ruhoh with proper redirects
- 2013-1-18 » How to install Ruby (and RVM) on Ubuntu (for technotards)
- 2013-1-17 » Free DNS hosting with freedns.afraid.org
- 2013-1-17 » Vim for people who don't want to use vim
- 2013-1-11 » Getting Started with Amazon EC2 (1 year free AWS VPS web hosting)
2012
August
- 2012-8-13 » NodeJS HTTPS Server
July
- 2012-7-09 » Getting Started with the RaspberryPi
April
- 2012-4-30 » How to install Ubuntu in VirtualBox
February
- 2012-2-04 » Google Chromebook User Manual: Don't Panic
January
- 2012-1-29 » OS X Lion Time Machine on Ubuntu Linaro
2011
October
- 2011-10-31 » Hacking the ASUS RT-N16
September
- 2011-9-27 » Roll your own Tomato (or DD-WRT) firmware
- 2011-9-26 » Tomato on ASUS RT-N16
- 2011-9-16 » Redirect Domains and DNS using DD-WRT
- 2011-9-14 » Eagle PCB Software on Ubuntu 11.04 x86_64 amd64
- 2011-9-6 » Rocks beats Scissors, Cardboard beats Paper Jam
- 2011-9-2 » Dear Tyler, I'm sorry I added 6,547 books to your booklist
February
- 2011-2-08 » Ubuntu 10.10 Maverick Meerkat on Gumstix Overo
January
- 2011-1-25 » Super-Simple gprof
- 2011-1-25 » Updating a bitbake package
- 2011-1-24 » memcpy SIGBUS (duh)
- 2011-1-13 » Clarifications on MediaTags
- 2011-1-11 » (Re)install Node.JS and npm on Linux or OS X
2010
December
- 2010-12-28 » Interview with InfoQ on Asynchronous Programming
- 2010-12-26 » Lighttpd (supersedes Apache) and PHP on Gumstix
- 2010-12-22 » Debugging V8 and Node.JS on ARM
- 2010-12-14 » Using git submodules
November
- 2010-11-30 » MediaTags specifications clarification
- 2010-11-17 » Creating a Node.JS appliance with OpenEmbedded on Gumstix Overo
- 2010-11-15 » Example of verbose output from MediaTags
- 2010-11-3 » How to make a Remote Control in C (songbird, gimp, etc)
October
- 2010-10-18 » MediaTags
- 2010-10-16 » Random Vim Regex
- 2010-10-15 » How I setup my VPSes
- 2010-10-9 » Notes on UTOSC2010 How to build android apps
- 2010-10-7 » CouchDB on Gumstix with OpenEmbedded
- 2010-10-4 » What is Couscous?
- 2010-10-3 » My experience with NeatDesk for Mac
- 2010-10-2 » CouchDB resources
- 2010-10-2 » Jekyll, DISQUS, and Bash magic. Oh my!
- 2010-10-1 » meta-data extraction
- 2010-10-1 » Sites I Like
September
- 2010-9-21 » My experience with ThrustVPS
- 2010-9-20 » vhosts with nodejs
- 2010-9-13 » Self-organizing Media Database
- 2010-9-12 » Ubuntu, PHP, and Oracle Instant Client
- 2010-9-12 » up and running with turbogears 2
- 2010-9-11 » setup for my development ubuntu box
- 2010-9-11 » setup for overo oe build system
- 2010-9-3 » Google I/O T-Shirt Barcodes
- 2010-9-2 » facebook with node.js
August
- 2010-8-21 » Migrate from blogger to jekyll
- 2010-8-21 » Using npm to package a node.js library
July
- 2010-7-23 » Gumstix Overo Serial-USB with OS X 10.6 Snow Leopard
- 2010-7-23 » Schneier Facts
- 2010-7-2 » FuturesJS - Promises, Subscriptions, Joins, etc for JavaScript Part 1
June
- 2010-6-28 » JSON-C Example
- 2010-6-28 » JSON-C Example
- 2010-6-21 » Refactor C from the Commandline
- 2010-6-20 » OSX-style Screen Capture in Ubuntu Linux
April
- 2010-4-16 » "minicom.runscript": syntax error in line 00 (word contains ESC or quote)
- 2010-4-14 » Random MAC Address
- 2010-4-12 » setTimeout() fires function twice? Firefox Bug?
March
- 2010-3-30 » CanoScan LiDE 30 on OS X (10.4 - 10.7) - as easy as Linux (almost)!
- 2010-3-18 » Prolific USB to Serial PL2303 and OS X 10.4-10.7
- 2010-3-13 » cyg-apt: apt-get for cygwin
- 2010-3-12 » How do I tell which version of Ubuntu I'm running?
- 2010-3-9 » ssh-copy-id on OS X
- 2010-3-8 » Polymorphic Associations in Rails
February
- 2010-2-23 » Nginx is to Apache as JSON is to XML
- 2010-2-22 » Getting Started with FsckVPS
- 2010-2-20 » Rails PaperClip
- 2010-2-19 » undefined method `table_name' for Paperclip::Attachment:Class
- 2010-2-16 » Facebook's Application Tabs (Pre-"Early 2010")
January
- 2010-1-28 » Amazon on Rails what?
- 2010-1-24 » REST & CORS Browser Details
- 2010-1-21 » Connecting to BYU LDAP with Ruby
- 2010-1-20 » Active Scaffold 404 / 500 "Couldn't find Abcxyz with ID=edit_associated"
- 2010-1-18 » Firefox, why don't you parse error messages?
- 2010-1-15 » Use python to share files on a local network quickly
- 2010-1-11 » The DoubleDIP Design Pattern
2009
December
- 2009-12-25 » 2009_12_01_archive
- 2009-12-25 » In Ruby Arrays are also Queues
- 2009-12-18 » 2009_12_01_archive
- 2009-12-15 » 2009_12_01_archive
- 2009-12-13 » Ubuntu Internet Connection Sharing
- 2009-12-7 » [Ruby on Rails] Error 406: Not Acceptable
- 2009-12-4 » A quick rundown on PHP Symfony directory hierarchy
- 2009-12-3 » Cross-Origin Resource Sharing (CORS) aka valid Cross-Site Scripting (XSS)
November
- 2009-11-28 » Rails, JSON, & JQuery, Oh My!
- 2009-11-25 » [OT] A Public Google WAVE
- 2009-11-18 » client / server GIT
- 2009-11-17 » Reverting to an earlier version in GIT
- 2009-11-12 » C++ Template with a Private Class: "expected constructor, destructor, or type conversion before '*'"
- 2009-11-2 » Fast File Copy in Linux (Ubuntu)
September
- 2009-9-29 » 2009_09_01_archive
- 2009-9-24 » Undelete files from an ext3 drive with ext3grep
- 2009-9-16 » 2009_09_01_archive
- 2009-9-10 » 2009_09_01_archive
August
- 2009-8-21 » HFS Fun
- 2009-8-19 » Copying MySQL from my Desktop to my Server
July
- 2009-7-20 » 2009_07_01_archive
2006
March
- 2006-03-06 » 2006_03_01_archive
1900
January
- 1900-01-01 » My Glasses Prescription