Skip to content

Instantly share code, notes, and snippets.

View bushidocodes's full-sized avatar

Sean McBride bushidocodes

View GitHub Profile
@bushidocodes
bushidocodes / capitalgoconf2017.md
Last active April 26, 2017 23:24
Notes from Capital Go Conf

Evolution of Go Loggers

  • Summer 2014 - inconshreveable/log15
  • Fall 2014 - go-stack/stack
  • Spring 2015 - go-kit/kit/log
  • Summer 2015 - go-logfmt/logfmt

json

@bushidocodes
bushidocodes / isMyGoSetup.md
Created April 26, 2017 23:29
Is my Go setup properly?

This script will test that go is installed and the GOPATH is properly set

package main

import (
	"log"
	"os"
	"path/filepath"
	"strings"
// Note:  Unused Experimental Component
// Requires Victory and d3- shape

import React from "react";
import { PropTypes } from "prop-types";
import {
  VictoryAxis,
  VictoryBrushContainer,
  VictoryChart,
@bushidocodes
bushidocodes / expressive-text.scss
Created September 1, 2017 15:33
Saving Stuart's Expressive Text work for future reference.
// components/expressive-text.scss
@import '../variables.scss';
@import '../mixins.scss';
// Local Variables
$colors-default: $colors-datarange-bad-to-good;
$precision-default: 24;
$steps-default: gradient;
// Helpers
@bushidocodes
bushidocodes / recursiveGeneratorTree.js
Created September 10, 2017 20:47
Use Recursive Iterators to use a for...of on a tree data structure
// goal: Use generators to iterate through a tree
// Create a class that has children and an iterator that recurses over the children
class Node {
constructor(value, children) {
this.value = value;
this.children = children;
}
*[Symbol.iterator]() {
@bushidocodes
bushidocodes / basicReduxPromise.js
Last active September 10, 2017 23:22
Basic reimplementation of promise middleware for Redux
// middlewares/async.js
export default function({ dispatch }) {
return next => action => {
// Check if a thenable
if (action.payload.then) {
// If a thenable, don't call next until the promsie resolves
action.payload = action.payload.then(res => {
action = { ...action, payload: res.data };
next(action);
});
@bushidocodes
bushidocodes / restoreLocalStorage.md
Created September 11, 2017 19:24
To Restore Local Storage
  1. In index.js, uncomment window.localStorageWorker
  2. In store.js, uncomment the lodash and getState imports, delete the dashboard JSON imports, uncomment the localStorage effects, and delete "loadDashboardsFromJSON"
  3. In Container, uncomment out the localStorage code and delete the call to Actions.loadDashboardsFromJSON
  4. In GMGrid, uncomment the code in updateDashboardLayout
  5. In SettingsGrid, uncomment the LayoutSection with the reset dashboards functionality.

Why does GraphQL exist?

  • Difficult to scale REST-ful conventions out to nested sets of data.
  • When dealing with normalized data, retrieving state likely ends up requiring multiple HTTP requests.
  • Usuallys returns all data associated with a particular model, even if the consumer doesn't need this data.

Tradeoffs with REST

  • Follow RESTful conventions strictly, issue multiple HTTP requests, and force the consumer to compose the data together
  • Develop more sophisticated backend routes that nest using RESTful conventions, simplifying the API for the consumer but increasing backend complexity
  • Abandon RESTful conventions and create a custom routes that feeds the precise need by a particular application use case
**** **** ______ _ _
****** ****** | _ \ (_) | |
**** **** | | | | ___ ___ _ _ __ | |__ ___ _ __
| | | | / _ \ / __|| || '_ \ | '_ \ / _ \| '__|
**** | |/ / | __/| (__ | || |_) || | | || __/| |
****** |___/ \___| \___||_|| .__/ |_| |_| \___||_|
**** | |
|_|
@bushidocodes
bushidocodes / mcbride-profiles.json
Last active July 3, 2019 17:46
My Microsoft Terminal Profiles.
{
"globals": {
"alwaysShowTabs": true,
"defaultProfile": "{7f586916-8357-53d4-bb2b-ca96f639898a}",
"initialCols": 120,
"initialRows": 30,
"keybindings": [
{
"command": "closeTab",
"keys": ["ctrl+w"]