Skip to content

Instantly share code, notes, and snippets.

Avatar
🤸

Amanda Falke abstractmachines

🤸
View GitHub Profile
@abstractmachines
abstractmachines / concurrency-parallelism.md
Last active May 27, 2021
Concurrency versus parallelism
View concurrency-parallelism.md
@abstractmachines
abstractmachines / python-vscode.md
Created May 6, 2021
Python VSCode with black and flake8
View python-vscode.md

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 / 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: https://gist.github.com/spicycode/1229612
@abstractmachines
abstractmachines / webpack-4-env-variables.md
Last active Jan 10, 2021
Webpack 4 environment variables
View webpack-4-env-variables.md

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 / custom-types-ts.md
Last active Jan 10, 2021
Custom TS types for Webpack + React ES6-Style Imports
View custom-types-ts.md

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 / redux-devtools-ts.md
Last active Jan 9, 2021
Redux Devtools Recipes: composeEnhancers, saga middleware, and TypeScript
View redux-devtools-ts.md

Redux Devtools Recipes

With composeEnhancers, Router:

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

const composeEnhancers = reduxDevToolsCompose || compose;
@abstractmachines
abstractmachines / optional-chaining-nullish-coalescing.md
Last active Dec 31, 2020
Functional Programming: Optionals, Maybes, and Optional Chaining and Nullish Coalescing
View optional-chaining-nullish-coalescing.md

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 / kyle-after-asm.md
Last active Oct 24, 2020
Kyle after assembly mentoring
View kyle-after-asm.md

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!)
View interactive-cli-rebase.md

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...
View binary-tutorial.md

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"