Home

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.

Expand All

Recent Changes:

Community
DIY
  • 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.
  • Miscellaneous DIY Resources
  • Moving - Moving sucks so having a good checklist of things to do when you move helps.
  • Reed Instrument Maintenance - Resources mainly for repairing my broken melodica.
  • Websites - Websites should be simple to setup, easy to maintain, and fun.
Food
  • Cannabis - Cannabis (or hemp) plants have many culinary uses beyond the buds.
  • 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.
Food/Recipes
  • 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.
  • 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.
Games
  • Rubik's Cube - The Rubik's Cube is a puzzle that is solved by utilizing algorithms.
Health
  • Exercise - Exercise is bodily activity that is usually used to maintain wellness and is generally good for you.
  • Vagus Nerve - The vagus nerve is the longest nerve in your body and a key part of the parasympathetic nervous system.
Information Management
  • Anki - Anki is a spaced repetition language learning tool.
  • Budgeting - Budgeting is the act of understanding and maintaining your finances.
  • Calibre - Calibre is an open source ebook manager and library.
  • 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.
Language
  • Thai - Thai is a tonal language and the native language of Thailand.
  • Toki Pona - Toki Pona is a conlang with less than 150 words that is easy to learn.
Music
  • 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.
Personal Growth
  • 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.
Plant Life
  • Terrariums - A terrarium is an enclosed environment housing soil and plant life.
Problem Solving
  • 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.
Programming
  • Accessibility - Accessibility in web development.
  • Alpine - Alpine.js is a lightweight Javascript framework for making basic sites.
  • 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.
  • 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.
  • Documentation
  • ed - ed is a line editor that is included with most *nix machines.
  • 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.
  • Gherkin - Gherkin is a business readable language which helps you to describe business behavior without going into details of implementation.
  • Input Hygiene - Ensuring the inputs of your user-facing forms (and others) work as expected for everyone is crucial.
  • 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.
  • Model View Controller - This design pattern is used to separate functionality, logic, and component management.
  • Parallelism and Concurrency
  • PHP - PHP is a language mainly used in web development and with Wordpress.
  • Programming - Programming is hard.
  • 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.
  • 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.
  • SVG - SVG's are scalable vector graphics. They consist of instructions for the computer to follow to create the drawing.
  • Typing - There are a few kinds of "typing", as it pertains to programming languages.
  • uxn - uxn is a virtual machine based on Forth and assembly, built to be a slim wrapper for any system.
Programming/Applications
  • Sublime Text - Sublime Text is an application made for software development.
  • Visual Studio Code - Visual Studio Code/Codium is an open-source application developed by Microsoft for software and code development.
Programming/Assembly
  • 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.
Programming/Best Practices
Programming/C
  • 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.
Programming/Code Style
Programming/Contributing
  • Issues - Issues on open source projects should be clear and concise.
Programming/CSS
  • Alignment (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.
Programming/Curses
  • Curses - Curses is a way to manipulate terminals mainly for text user interfaces in applications.
Programming/Databases/NoSQL
  • MongoDB - MongoDB is a NoSQL database management system based on Javascript using documents similar to JSON.
  • Mongoose - Mongoose is an NPM package that allows a simple and schema'd Javascript entrypoint to your Mongo database.
Programming/Databases/SQL
  • 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.
Programming/Deployment
  • Docker
  • 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.
Programming/Email
Programming/Esolangs
  • Brainfuck - Brainfuck is a Turing-complete esolang created in 1993 by Urban Müller.
  • FRACTRAN - FRACTRAN is an esoteric programming language developed by John Conway that is based solely on fractions and prime numbers.
Programming/Fantasy Consoles
  • Fantasy Consoles - A fantasy console simulates virtual hardware, unlike emulators which emulate real hardware.
  • PICO-8 - The PICO-8 is a fantasy console to make and share tiny games and programs.
Programming/Formats
  • 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.
Programming/git
  • 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.
Programming/HTML
  • Anchor Tags (HTML)
  • Canvas - The Canvas API provides a means for drawing graphics via JavaScript and the HTML canvas element.
  • 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)
Programming/Javascript
  • AJAX - AJAX stands for Asynchronous Javascript And XML. It is an asynchronous way to get and send data. Usually used with JSON. AJAX is built in to Javascript.
  • Apply, Call and Bind in Javascript - Apply, bind, and call are higher order functions that help with `this`.
  • Arrays (Javascript) - Arrays in Javascript have many specific methods for modification and analysis. Some are cunfusiong or hard to recall.
  • Classes (Javascript) - Classes in Javascript allow a more object-oriented approach, creating instances with methods and properties.
  • Date (Javascript) - Javascript Date objects have some weird intricacies that need attention.
  • DOM Manipulation (Javascript) - How to manipulate the HTML DOM using Javascript.
  • ESLint - Enforce rules and raise warnings to keep your Javascript, Typescript, and React code clean and bug free.
  • Event Listeners (Javascript) - Event listeners run a function on the emitting of an event, including 'click', 'keyup', resize', and more.
  • Express - Express is a Javascript-based server application that will help route requests from the client.
  • Fetch API - Fetch API is a part of vanilla JS that does HTTP requests.
  • Frameworks (Javascript) - Javascript frameworks are abundant and everywhere, so I wanted to collate a list with some blurbs and first impressions.
  • Functions (Javascript) - Functions in Javascript come in expressions, function declarations, and anonymous functions.
  • 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.
  • Javascript - Javascript is currently the language of the web. Used to make most apps and do most things.
  • Javascript Libraries - Interesting and useful libraries for vanilla Javascript.
  • Jest - Jest is a testing framework built by Facebook for Javascript applications.
  • JSDoc - JSDoc is a markup language used to annotate JavaScript source code files with comment blocks.
  • Lexical Scoping (Javascript) - Lexical scoping defines how variable names are resolved in nested functions or blocks.
  • Mocha and Chai (Javascript) - Mocha is a Javascript test framework for use with Node, and Chai is an assertion library.
  • MutationObserver (Javascript) - The MutationObserver interface provides the ability to watch for changes being made to the DOM tree.
  • NPM - Node Package Manager is a hub from which you can install, manage, and maintain node/Javascript projects.
  • NVM - Node Version Manager allows you to use multiple diferent versions of node and switch between them easily.
  • Object Destructuring (Javascript) - Object destructuring in Javascript allows you to create constants from items within an object.
  • Operators (Javascript)
  • PixiJS - PixiJS is an HTML5 graphical engine built in Javascript.
  • Promises and Async/Await (Javascript) - Promises and async/await are a way to handle asynchronous actions in Javascript.
  • Regular Expressions (Javascript)
  • Socket.IO - Socket.IO is a node package that enables real-time, bidirectional and event-based communication between the client and the server.
  • Switch Case (Javascript) - Switch cases allow if/else style branching but with different side effects.
  • Testing (Javascript) - Javascript provides many options to test your code via timing, assertions, and frameworks.
  • Typescript - Typescript is a superset of Javascript that is strongly typed and values specificity.
  • Variables (Javascript) - var, let, const are variables in Javascript.
  • Vue - Vue is a front-end Javascript framework.
  • Yarn - Yarn is a hub from which you can install, manage, and maintain node/Javascript projects
Programming/Javascript/React
  • 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 - React is a Javascript framework for implementing dynamic single page applications into your site.
  • 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.
Programming/Misc
  • ASCII - The American Standard Code for Information Interchange, but mostly cool characters nowadays.
Programming/Paper Computing
  • 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.
Programming/Python
Programming/Regular Expressions
  • Regular Expressions - Regular Expressions or "regex" is used to describe a series of characters. If it has a pattern in its formatting, regex can be used.
  • Regular Expressions (POSIX) - POSIX's Regular Expressions differ in implementation than the standard regex we know today.
Programming/Ruby
  • Rails - Rails is a web application framework written in Ruby.
  • Ruby - Ruby is an open-source high-level language similar to Python
Programming/Server
  • Apache - Apache is server software that was often used with PHP.
Programming/Shell
  • 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.
  • zsh - zsh is a Unix shell based on the Bourne shell.
Programming/Testing
  • K6 - K6 is an open-source load testing program for API's via Javascript.
  • React (Testing) - How to best test your React software, including components, API calls, etc.
  • Test-Driven Development - In programming, test-driven development is when tests are developed first before the code is written.
  • Testing Vanilla Javascript - Testing vanilla Javascript is not as straightforward and laid out as React or other frameworks, so it takes some finangling.
Programming/Unix Tools
  • crontab - crontab is a way to schedule regular background tasks and shell commands.
  • grep - grep finds string patterns within a given file or folder.
  • 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.
Programming/Vim
  • 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.
  • Vimrc - Vimrc is the config file for Vim.
Programming/Web Development
  • Authentication - Authentication in web development is the way to verify that a given user is who they say they are.
Technology
  • Alternative Social Media - These sites exist as ad- and tracker-free proxies for social media 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.
  • 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.
Transportation
  • Bicycles - Bikes are the best. Maintenance info and other stuff, too.
  • Longboarding - Longboarding is one of my favorite things: gets you somewhere and it's exercise.
Wiki Stubs
Work
~The Pile