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.
- 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.
- 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.
- 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.
- Rubik's Cube - The Rubik's Cube is a puzzle that is solved by utilizing algorithms.
- 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.
- Terrariums - A terrarium is an enclosed environment housing soil and plant life.
- 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.
- Accessibility - Accessibility in web development.
- 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.
- 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.
- 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.
- 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)
- 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)
- 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.
- NVM - Node Version Manager allows you to use multiple diferent versions of node and switch between them easily.
- 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.
- ASCII - The American Standard Code for Information Interchange, but mostly cool characters nowadays.
- 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.
- 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 with Bash - This is how to utilize piping with Python programs in Bash.
- 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.
- 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.
- Authentication - Authentication in web development is the way to verify that a given user is who they say they are.
- 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.
- CSS reset
- Don't Repeat Yourself
- HTTP Methods
- HTTP requests
- Lexical Scoping
- machine code
- Pandas (Python)
- Testing (Programming)
- Applying - Applying for jobs, especially in the tech sector, is fraught with weird shibboleths and false signals.
- 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
- Job Interviews
- Overtime - Make sure you actually *want* to, and then calculate your wage appropriately.
- Salary Negotiation
- Tech Job Resources
- CHIP-8 - The CHIP-8 is a computer with a very simple architecture and is common for testing emulation on modern hardware.
- Doing - The difference between where you are and where you want to be is experience.
- Frugality in Tech
- Links - A bunch of random links to eventually go through.