Skip to content

Instantly share code, notes, and snippets.


Amanda Falke abstractmachines

View GitHub Profile
abstractmachines /
Last active May 27, 2021
Concurrency versus parallelism
abstractmachines /
Created May 6, 2021
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 / tmux.conf
Created May 2, 2021
tmux.conf inspired by spicycode
View tmux.conf
# 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:
abstractmachines /
Last active Jan 10, 2021
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 /
Last active Jan 10, 2021
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 /
Last active Jan 9, 2021
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 /
Last active Dec 31, 2020
Functional Programming: Optionals, Maybes, and Optional Chaining and Nullish Coalescing


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, 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 /
Last active Oct 24, 2020
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!)

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...

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"