Skip to content

Instantly share code, notes, and snippets.

View abstractmachines's full-sized avatar
🤸

Amanda Falke abstractmachines

🤸
View GitHub Profile
@abstractmachines
abstractmachines / binary-tutorial.md
Last active September 20, 2020 00:11
Intro To Binary

WIP. This is a tutorial I'm writing which is in progress :) - Amanda

Intro to binary (and some computer architecture)

Intended audience(s) include:

  • Very early career engineers who don't have a 'math background' (yet!)
  • Junior developers and interns who want to "understand" rather than just "complete tutorials"
  • Web developers who didn't take CS courses, but still want to understand "how things work" "under the hood"
@abstractmachines
abstractmachines / interactive-cli-rebase.md
Last active October 22, 2020 17:06
Interactive Rebase on CLI

Interactive rebase on the CLI

This workflow is outside of the "git pull -r origin branchName" workflow we use for rebases without merge commmits. This workflow is just to squash commits on a local/unshared branch. Keep in mind that "rewriting history can make teammates sad, angry or worse" standard warnings about rebasing.

  1. Choose the commit hash which will "choose everything AFTER this commit to rebase."
  2. Remember you're rebasing a branch against itself, not src/destination rebasing like normal rebasing workflow.
  3. git rebase -i hash123-everything-after-this-commit
  4. That'll send you into a screen that's a list of commits. Use rename, squash etc. then :x to save/exit...
@abstractmachines
abstractmachines / kyle-after-asm.md
Last active October 24, 2020 20:15
Kyle after assembly mentoring

TODO List for Kyle - Mentoring

"Finish out" the assembly courses

  1. Take your assembly courses and convert your notes into markdown in Github gists.
  2. Pin those gists to your Github profile.

Complete 2 C++ assignments

  1. Assignment 1: Create a class with 2-3 member functions and initialize an instance of the class in main()
  2. Assignment 2: Operator overloading (look at my github for an example!)
@abstractmachines
abstractmachines / optional-chaining-nullish-coalescing.md
Last active December 31, 2020 23:01
Functional Programming: Optionals, Maybes, and Optional Chaining and Nullish Coalescing

WIP

Optional chaining, null coalescing, and optionals and maybes

The maybe/optional data types in functional languages such as Haskell and Scala have ways to handle null/undefined that are often superior to using validation, conditionals and operators to infer whether or not a value is nullish.

That's what optional chaining and null coalescing remind me of. They're also a replacement for usage of Lodash .get() method which allows for default values to be set in the last parameter, hence handling nullish value use cases.

Optional chaining

Rather than using something.property.anotherproperty, which can error (and hence crash your program/web page) if it encounters a nullish value for one of the properties, we use something?.property?.anotherproperty instead, which only returns undefined (instead of an error) if a nullish value is encountered in one of the properties.

@abstractmachines
abstractmachines / redux-devtools-ts.md
Last active January 9, 2021 20:42
Redux Devtools Recipes: composeEnhancers, saga middleware, and TypeScript

Redux Devtools Recipes

With composeEnhancers, Router:

const reduxDevToolsCompose = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({
	trace: true,
	traceLimit: 25,
});

const composeEnhancers = reduxDevToolsCompose || compose;
@abstractmachines
abstractmachines / custom-types-ts.md
Last active January 10, 2021 01:11
Custom TS types for Webpack + React ES6-Style Imports

Custom Typescript Types Recipes for React + Webpack ES6 style imports

use case: CSS files in /src/styles dir, and SVG and PNG files in /assets/images dir

  • custom.d.ts file in dir of svg, png assets:
declare module "*.svg" {
    const content: any;
    export default content;
}
@abstractmachines
abstractmachines / webpack-4-env-variables.md
Last active January 10, 2021 01:11
Webpack 4 environment variables

Making local dev servers w Webpack 4

To use an environment variable in webpack, set module.exports to a function which returns the config object.

Only a function can take in env and argv as args, and you'll need those.

Then use defineWebpackPlugin to set environment variables.

Remember that Webpack 4 is "no config"; just set mode when you startup webpack dev-versus-prod in your package.json.

@abstractmachines
abstractmachines / tmux.conf
Created May 2, 2021 21:01
tmux.conf inspired by spicycode
# Define default shell
set -g default-command /bin/zsh
# Use mouse
set -g mouse on
set -g default-terminal screen-256color
# WIP. See inspiration at: https://gist.github.com/spicycode/1229612
@abstractmachines
abstractmachines / python-vscode.md
Created May 6, 2021 01:38
Python VSCode with black and flake8

Python VSCode settings.json w black and flake8

{
    "editor.formatOnSave": true,
    "python.formatting.provider": "black",
    "files.insertFinalNewline": true,
    "python.testing.pytestEnabled": true,
    "python.linting.pylintEnabled": false,
 "python.linting.flake8Enabled": true,
@abstractmachines
abstractmachines / concurrency-parallelism.md
Last active May 27, 2021 19:58
Concurrency versus parallelism