Welcome! Here, we are fans of having a tiny brain, which means, not keeping everything in your head all of the time.
Click on some things and email me if you want. If you see something wrong or want to improve this site, feel free to submit edits as a PR. If you saw things here that are now gone, it probably got absolved into another page or moved over to my website.
Download a zip of this website (~1MB)
- Bivy Sack - A bivy sack is a waterproof cocoon for your sleeping bag, a substitute for a tent.
- Buildings - Resources for constructing buildings/spaces using minimal resources.
- Clothing - Making clothing is something I want to do, for fun but also to gain independence from gross retailers.
- Cordage - Cordage is created out of plant matter and can be used to make rope, clothing, tools, etc.
- Knife Sharpening - Sharpening your knives at home is probably not the cheapest, but it is a fun meditative activity, and very satisfying.
- Knots - Knots.
- Laundry Detergent
- Lichen CMS Tutorial - How to set up Lichen on Nearly Free Speech
- Lichen CMS Tutorial (PHP Version) - How to set up a dev environment to set up Lichen on your computer.
- Miscellaneous DIY Resources
- Moving - Moving sucks so having a good checklist of things to do when you move helps.
- Paracord - Paracord is a synthetic cord containing smaller synthetic cord inside.
- Reed Instrument Maintenance - Resources mainly for repairing my broken melodica.
- Sandals - Sandals are easy to make, only needing a bike tire, paracord, and some tools.
- Shaving - The basics of getting started with shaving using a safety razor.
- Websites - Websites should be simple to setup, easy to maintain, and fun.
- Budgeting - Budgeting is the act of understanding and maintaining your finances.
- Cannabis - Cannabis (or hemp) plants have many culinary uses beyond the buds.
- Cooking - General cooking stuff.
- Eating Frugally - Good food doesn't have to be expensive nor wasteful.
- Foraging - Food foraging is finding and eating food that is out there in the wild. DO NOT EAT WHAT YOU CANNOT IDENTIFY 100%!
- Garlic - Garlic should be delicious and easy to work with.
- Growing Food - Growing food is usually not a final survival solution, but it helps.
- Rice - Rice is a simple starch you can (and I do) add to almost any meal.
- Alt Milk - Alternative milks are easy, taste good, and are WAY cheaper than store bought.
- Biscuits - Biscuits!
- Focaccia - Focaccia is a light lean bread that benefits from good olive oil.
- Garlic Paste - Garlic paste is a way to preserve garlic for a long time and make it easy to add to any dish.
- Kimchi Pancake - A kimchi pancake is quick and simple, and tastes great over rice.
- Kvass - Bread flavored soda. You can reuse your stale bread and some sourdough starter, too!
- Muesli - Muesli is a great simple breakfast food.
- No-Knead Bread - No-knead bread is probably the best balance of effort to taste you can have with bread.
- Pesto with Greens - Most pesto is made with basil, but really any greens will do.
- Quick Pickles - Quick pickles are a great way to preserve food and make it taste better.
- Thai Curry - This Thai curry can be used as a base for a "kitchen sink" kind of meal, throwing in whatever you got in your fridge or pantry.
- Toum - Toum is a naturally vegan garlic aioli/mayonnaise.
- Waffles - Sourdough, yeast, and baking soda waffles.
- COVID-19 - Resources on the ongoing pandemic.
- Exercise - Exercise is bodily activity that is usually used to maintain physical and mental wellness.
- Living With Heat - Living with the heat is our future, and here are some ways to manage it.
- Suspension Exercises - Suspension trainers like the TRX or gymnastic rings make bodyweight exercise a bit more fun and engaging.
- Vagus Nerve - The vagus nerve is the longest nerve in your body and a key part of the parasympathetic nervous system.
- Anki - Anki is a spaced repetition language learning tool.
- Calibre - Calibre is an open source ebook manager and library.
- Credit Monitoring - Monitoring your credit score and protecting your credit is easy and free.
- Getting Things Done - Getting Things Done is a book by David Allen that is very useful for people who have difficulty managing their projects.
- Handbrake - Handbrake is an application for backing up video media.
- Low-/No-Tech Productivity - Low-/No-tech productivity tools are ways to distance yourself from technology when it is not helpful and possibly hurtful.
- Task Management - Task management is about dealing and refining the constant input and maintaining consisitent output.
- The Carmack Plan - Game designer John Carmack took extensive notes during the development of the game Quake.
- Bytebeat - Bytebeat is the method of piping mathematical equations to an audio device make lo-fidelity gritty sounds.
- Hand Flute - You can use your hands to get an ocarina-like sound, and with different pitches once you get going.
- Synth Bass - Synth bass, or key bass, is using a synthesizer as the bass instrument.
- Doing - The difference between where you are and where you want to be is experience.
- Feedback - Getting constructive feedback about you or your work is essential to long-term growth.
- Goal Setting - Goal setting is a way to hone your efforts towards a particular end result.
- Journaling - Journaling is a great way to reflect on who you are, what you do, and what you want or need.
- Yak Shaving - Yak shaving is when you start task X but task Y 'must' be finished first, and thus task Z 'must' be done, ad infinitum.
- Hammock Driven Development - Hammock Driven Development was a talk from Rich Hickey on how to practice solving problems.
- PI AT PC Framework - The PI AT PC framework is my extrapolation of what I learned from Anthony Pecchillo at Hack Reactor.
- Problem Solving - Solving big problems is just solving problems.
- Amiga - The Amiga is a computer that gained popularity in the 80's and 90's.
- Applescript - Applescript is a programming language used to create scripts in Mac computers.
- BASIC - BASIC is a high level programming language, mainly used for its simplicity.
- Big-O Notation - Big-O notation shows the speed of an algorithm at a large scale in the worst-case scenario using fuzzy estimates.
- Certificates/PEM Files - I get out of date errors a lot, so this is a fix.
- CHIP-8 - The CHIP-8 is a computer with a very simple architecture and is common for testing emulation on modern hardware.
- COBOL - COBOL is a high-level language mainly used with mainframes on legacy and modern systems.
- Competitive Programming - Competitive programming is a tool used (erroneously) by many employers to test whether you are good at programming.
- Debugging - Debugging is efficiently determining the problem and devising a solution for your program.
- Dotfiles - Dotfiles are the config files for your computer that can help transitioning to a new device easier.
- ed - ed is a line editor that is included with most *nix machines.
- FAR Versioning - FAR is a type of versioning proposed by Rich Hickey.
- Finite State Machines - A finite state machine is a computer that can only be in one state at a given time.
- Forth - Forth is a procedural, stack-oriented programming language and interactive environment.
- Getting a Job
- Gherkin - Gherkin is a business readable language which helps you to describe business behavior without going into details of implementation.
- Glob - Glob is like regular expressions but for POSIX systems.
- Heap - A heap is a tree-based data structure.
- Input Hygiene - Ensuring the inputs of your user-facing forms (and others) work as expected for everyone is crucial.
- JQL - Jira Query Language is baffling, but helpful.
- Learning Programming - Resources for learning to program
- Lua - Lua is a minimalist interpreted programming language.
- MacOS - MacOS is the operating system for Apple computers.
- Magic Numbers (Programming) - Magic numbers are numbers that have no semantic meaning. These are problematic for maintenance and bug fixing.
- Make - Make is a tool which controls the generation of executables and other non-source files of a program from the program's source files.
- Making a Good README - Your README file contains a high level overview for people interested in using, contributing, or perusing your code.
- Making a Specification - A specification is the contract you set out for a given piece of software.
- Minimum Viable Product - The idea of an MVP is to get something up that meets the base specs as fast as possible.
- Model View Controller - This design pattern is used to separate functionality, logic, and component management.
- Object-Oriented Programming - Object-oriented programming is a way to structure programs using reusable classes and objects.
- Open Source Software - Open source software is complicated.
- Parallelism and Concurrency
- Parsers - Parsers are a way of converting input data from a string into meaningful tokens and data.
- PHP - PHP is a language mainly used in web development and with Wordpress.
- Programming - Programming is hard.
- Programming Games - These are games about or to help you learn programming.
- Progressive Enhancement - Progressive enhancement is a way to make fast accessible websites.
- Proquints - Proquints are a way to encode numbers in pronounceable consonant/vowel combinations.
- Pseudocode - Pseudocode is a way to devise and organize solutions to problems without worrying about implementation details.
- Raytracing - Raytracing is a way of generating and rendering 3D graphics for digital images.
- Recursion - Recursion is the act of calling a function within the function itself.
- Refactoring - Refactoring is improving your code while not affecting the end result.
- Resources for Learning
- Scrum - Scrum is a framework of managing projects that aims for quick execution, regular evaluation, and staying nimble over developing a fully fleshed out plan first.
- SoX - SoX is a Linux command-line application that can create, edit, or process audio.
- ssh and scp - ssh (secure shell) is a way to connect to remote computers and interact with them. scp (secure copy) is used to send/request files.
- Svelte - Svelte is a framework made to be fast and small.
- SVG - SVG's are scalable vector graphics. They consist of instructions for the computer to follow to create the drawing.
- Templating - Injecting text into a template file is one of the my favorite uses of a computer for automating tasks.
- tmux - tmux is a way to use multiple windows and splits in a terminal, as well as automate these and other processes.
- Typing - There are a few kinds of "typing", as it pertains to programming languages.
- VLC - VLC is a free and open source audio player for all major operating systems.
- ZX Spectrum
- Assembly - Assembly is an extremely low-level human-readable language that has a strong relation between the code and the corresponding machine code.
- Assembly (6502) - Assembly is an extremely low-level human-readable language that has a strong relation between the code and the corresponding machine code.
- Assembly (Amiga) - The Amiga was a personal computer from the 80's built on the Motorola 68000 chipset.
- Assembly (DOS)
- Assembly (Unix) - Assembly on Unix is largely the same between Mac and Linux computers.
- Assembly (Windows) - Assembly on Windows utilizes masm, Microsoft's proprietary assembler and linker.
- Minicube64 - Minicube64 is a fantasy console style emulator based on 6502, with the intention of helping people learn how games were made for older systems.
- Z80 - The Z80 is a microprocessor found in TI calculators as well as ZX computers.
- Arrays (C) - Arrays in C, like all things in C, require a lot more care than higher level languages.
- C - C is a programming language that is very low-level, compiling down to assembly language.
- C Data Types - The different data types in C all have their own characteristics.
- C Helper Functions - C has a large amount of helper libraries and functions.
- Command Line Arguments in C - Creating terminal applications in C often relies on command line arguments.
- Functions (C)
- Header Files (C) - Header files are where you place shared functions, function prototypes,
- Regular Expressions (C) - Regular Expressions in C use POSIX syntax and are a little weird.
- Strings (C) - Strings in C are arrays of characters.
- Issues - Issues on open source projects should be clear and concise.
- Alignment (CSS)
- Animations (CSS)
- Classless CSS - Making webpages that rely only on the semantic HTML benefits the users and developers alike.
- Color Palettes (CSS) - These are color sets that I think are pleasant.
- Common Breakpoints (CSS) - These are common breakpoints for all devices in web development. These are to be used in CSS media queries.
- Cube CSS - Cube CSS is a CSS framework that is composition first and values it above everything else.
- Fonts (CSS) - Importing and using external fonts properly in CSS.
- Gradients (CSS) - How to create and use linear gradients in CSS.
- Inverted Triangle CSS - ITCSS is a way to structure your CSS projects to minimize specificty issues and organizational problems.
- Minimalist CSS - Small bits of CSS that do a lot.
- Object Oriented CSS
- Organization and Structure (CSS) - Miscellaneous notes and best practices on organization and structure in CSS.
- Patterns (CSS)
- Position (CSS) - The `position` property in CSS gives the developer control over the x-, y-, and z-axis in aligning elements.
- Print Queries (CSS) - Print queries are rules detailing how your page will be formatted when being sent to the user's printer.
- Sass - Sass is a CSS preprocessor that allows a lot more ease in maintainability and gives much deeper modularity than CSS normally provides.
- Selectors (CSS) - Selectors are the backbone of CSS, allowing the developer to create stylesheets that apply and cascade to many elements at a time.
- Text Selections (CSS)
- Transitions (CSS) - Transitions allow you to transform a CSS rule from one set of values to another, and can be triggered either by a pseudoclass selector, on a regular cycle, or just once when loaded.
- Typography (CSS) - How to properly define and apply typography rules in CSS.
- Vendor Prefixes (CSS) - Vendor prefixes are used to ensure that older or unsupported browsers have every possibility of implementing the desired rule.
- Curses - Curses is a way to manipulate terminals mainly for text user interfaces in applications.
- Common SQL Queries - These are some common SQL queries that come up.
- MySQL - MySQL is an open source relational database management system developed by Oracle.
- Postgres - Postgres is a relational database management system.
- SQL - SQL is a Structured Query Language that uses a relational database. A relational database represents a collection of related 2D tables, like spreadsheet.
- SQLite - SQLite is an open-source, zero-configuration, self-contained, stand-alone, transaction relational database.
- Email Formatting - Making a proper HTML email is way harder than it should be.
- Gemtext - Gemtext is a markup language used by the Gemini protocol.
- JSON - JSON is the de facto standard for serializing data over the internet.
- Markdown - Markdown is a markup language that is often used in sstatic site generators and general note taking.
- YAML - YAML is a markup language that is great for non-technical users, but has many flaws.
- git - git is a version control system.
- git alias - Aliases in git are a way to minimize keystrokes and mistakes when using complex commands.
- gitignore - gitignore is way to clean up what will or won't be searched for when committing to a git repo.
- My git Aliases - This is a list of all of my current aliases I use with git.
- Rebase (git) - Rebasing in git is a way to clean up your commit history and change the history of one branch to be after the changes of another.
- Anchor Tags (HTML)
- HTML - HyperText Markup Language is the language of the internet.
- HTML Forms - The basics of HTML forms, semantic HTML forms, and validation.
- HTML Tables - The basics of HTML5 tables and semantic HTML tables.
- Pug - Pug is a templating engine for HTML.
- Semantic HTML - HTML without any styling or functionality should be readable and the user should easily be able to discern context about the content.
- Web Fonts (HTML)
- Codemod - Codemod is a refactoring tool for code.
- Fetch API - Fetch API is a part of vanilla JS that does HTTP requests.
- Higher Order Functions - A higher-order function either takes in a function as an argument, or returns a function.
- How To Load Local JSON Files
- Immer - Immer is a package that allows modification of complex objects and maintains immutability with your application.
- Make a Rule (ESLint) - This is the basics of making a rule in ESLint.
- NVM - Node Version Manager allows you to use multiple diferent versions of node and switch between them easily.
- Snapshot Testing - Snapshot testing is a way of testing the state of the UI through DOM structure.
- Socket.IO - Socket.IO is a node package that enables real-time, bidirectional and event-based communication between the client and the server.
- Custom React Hooks - Custom hooks allow you to create simple extensions of existing React hooks to better suit your needs.
- PropTypes - PropTypes are a way to add more strict typing, validation, and default values to props in React.
- React from Scratch - Learn how React works by building it without the create-react-app framework.
- React Hooks - Hooks are functions that let you “hook into” React state and lifecycle features from function components.
- React Router - React Router is a way to link to other pages dynamically within your React single page application.
- Lisp - Lisp is a high-level programming language mainly consisting of s-expressions.
- Paper Computing - Paper computing is a way to learn about the most basic operation of Turing complete systems and programming in general.
- The Know-how Computer - The Know-how Computer is a simple pen-and-paper computer to help educate people on basic computing and assembly programming.
- The Little Man Computer - The Little Man Computer is a simple pen-and-paper computer to help educate people on basic computing and assembly programming.
- argparse (Python) - argparse is a way to handle command line arguments in Python applications.
- Collections (Python) - These are some resources on how to use the collections Python package.
- CSV (Python)
- Datetime (Python) - These are some resources on how to use the datetime Python package.
- Debounce (Python) - How to create and use a debouncer in Python.
- Flask - Flask helps build web applications and handle HTTP requests in Python.
- Itertools (Python) - Resources on how to use the itertools Python package.
- JSON (Python)
- Math (Python)
- Numpy - Numpy is a math library that brings in lots of higher-level math functionality to Python.
- Python - Python is a high-level programming language.
- Python with Bash - This is how to utilize piping with Python programs in Bash.
- Sorting (Python) - Sorting in Python has some quirks.
- SQLite3 (Python)
- Unittest - Unittest is a built-in testing framework for Python.
- Virtual Environments (Python) - Virtual environments allow you to develop in a clean slate, leaving nothing to global packages and allowing easy installation by others.
- Apache - Apache is server software that was often used with PHP.
- OSX Shell - Different important snippets for dealing with the shell meta on OSX.
- Shell - The shell is the terminal of your operating system. This is the *nix shell.
- Shell Tools - Interesting and useful third-party tools for the shell/command line.
- Testing Shell Scripts - Using TDD with shell scripts is weird but not impossible.
- zsh - zsh is a Unix shell based on the Bourne shell.
- React (Testing) - How to best test your React software, including components, API calls, etc.
- Storybook - Storybook is a framework to manually test isolated UI components.
- Test-Driven Development - In programming, test-driven development is when tests are developed first before the code is written.
- crontab - crontab is a way to schedule regular background tasks and shell commands.
- fc - fc allows you to open a temporary file and execute what's written in the shell.
- grep - grep finds string patterns within a given file or folder.
- sed and awk - sed and awk are domain-specific text filtering and modification tools.
- Symlinks - Symbolic links allow you to create shortcuts that act exactly like the files they link to.
- xargs - You can use xargs to build and execute command lines from standard input.
- zip - This is an archiving and compression tool that allows encryption.
- Vim - Vim is a command-line editor that is included with most *nix machines and OSX.
- Vim Commands - Vim commands are notoriously arcane and weird, but quick once you learn them.
- Vim Functions - Vim functions can be super powerful, if you learn how vimscript works.
- Vimrc - Vimrc is the config file for Vim.
- Accessibility For Web Design - Accessibility means making everything easier for everyone.
- Authentication - Authentication in web development is the way to verify that a given user is who they say they are.
- AWS Deployment
- Debugger in Chrome - The debugger command in Chrome is really useful for diagnostics and testing.
- Docker - Docker is a way to normalize and simplify deployment of software.
- Semantic Versioning - Semantic versioning is a way to standardize versioning for package managers.
- SSH - SSH, secure shell, is a way to connect to other devices over the internet via the command line.
- Text Compression (Server) - Text compression minifies and zips files on build or on client side render of your web page.
- Web Development Resources - Things that can make web development a little more bearable.
- Yarn Resolutions - This is a way to control the versions of dependencies.
- Alternative Website Frontends - These sites exist as ad- and tracker-free proxies for websites or complete alternatives.
- Cell Phones - Cell phones, once merely a tool for verbal communication, are rapidly moving towards personal computers.
- Computer Tools - A place to link to useful tools for computer users.
- Federal Communications Commission - The FCC is the agency that regulates and enforces rules for amateur radio in the United States.
- Google Chrome - Google Chrome is not a safe browser, but sometimes you have to use it.
- International System of Units (Metric System)
- Morse Code - Morse code is a language that is traditionally transmitted via radio frequencies.
- Search Engines - Search engines are getting worse from SEO and spam, but there are still good and fun ones out there.
- Web3 and Crypto - In it's current state, cryptocurrency is a Ponzi scheme meant to take advantage of those less fortunate, and web3 isn't actually decentralized.
- Webrings - Webrings are a way to have adecentralized community of sites with similar topics or goals.
- Antennas - Antennas are devices meant to transmit and/or receive electromagnetic waves.
- Core Concepts of Electricity - These are the basics of electrical engineering; terminology and concepts, mainly.
- Electrical Components - Electrical components are the parts that make up modern electric circuits.
- Electromagnetic Energy - Electromagnetic energy travels at the speed of light and includes radio, microwaves, light, x-rays, and gamma rays.
- iLC Circuits - LC circuits are a combination of inductance (L) and capacitance (C).
- Soldering - Soldering is the act of connecting different components through heating conductive material and fusing the components together with it.
- Amateur Radio Bands of the United States
- Contesting (Ham) - Contesting is an activity for hams to exchange information with lots of stations over a period of time.
- HAM Radio - HAM radio is the use of radio by normal people: for recreation, communication, or in emergencies.
- Station Log - A station log is used to record all HF contacts, and can end up being useful.
- Traffic - Handling traffic in amateur radio means relaying messages from station to station.
- American Radio Relay League
- ARIA Labels
- baking powder
- baking soda
- black tea
- brown sugar
- coconut milk
- CSS reset
- curry paste
- Don't Repeat Yourself
- fresh ground black pepper
- HTTP Methods
- HTTP requests
- lemon juice
- Lexical Scoping
- machine code
- maple syrup
- nutritional yeast
- olive oil
- Pandas (Python)
- serrano chiles
- sourdough starter
- soy sauce
- Testing (Programming)
- web development
- Applying - Applying for jobs, especially in the tech sector, is fraught with weird shibboleths and false signals.
- Best Practices
- Communication at Work - Good communication is learning how to best utilize your and your superiors or clients time.
- Don't Be A Jerk
- Forming, Storming, Norming, and Performing - This is a framework of how a team moves from no experience or knowledge of each other to established.
- Glue Work - Glue work is the meta work that helps keep the organization running and on track.
- Job Interviews
- Overtime - Make sure you actually *want* to, and then calculate your wage appropriately.
- Responsibility - What is our responsibility as workers?
- Salary Negotiation
- Slack - Slack is a communications software for large teams.
- STAR Stories - STAR stories are good ways to concentrate your valuable experiences and skills into something powerful for interviews.
- Tech Job Resources
- Cast Iron - Cast iron is the best and lasts forever if taken care of.
- Frugality in Tech
- Household Items - Lost of household items can be made for very cheap
- Links - A bunch of random links to eventually go through.
- Single Page Applications