Skip to content

Instantly share code, notes, and snippets.

💯
🤠 coder

Kurt Milam kurtmilam

💯
🤠 coder
View GitHub Profile
View machine.js
const getOtherContactsAction = () => fetch('google.com')
const load_email_details_machine = Machine({
id: 'load_contact_details_machine',
initial: 'loading',
context: {
contactData: {}
},
states: {
loading: {
@kurtmilam
kurtmilam / QuickCheck-Laws-Links.md
Last active May 25, 2019
Minimal example of using `purescript-quickcheck-laws` to verify a type class instance on a custom type
View QuickCheck-Laws-Links.md
@kurtmilam
kurtmilam / objectInitializer.js
Last active Oct 29, 2017
What is a POJO in JavaScript?
View objectInitializer.js
// Object initializer notation (also known as Object literal notation)
const mediumArticle = {
title: "What is a POJO in JavaScript?",
subTitle: "The Plain Old JavaScript Object",
tldr: "In JavaScript, a POJO is any object that can be created using the Object initializer notation."
}
@kurtmilam
kurtmilam / RoseTreeToPaths.js
Last active Aug 9, 2017
JavaScript: Get a list of all paths from root to leaves (rose tree)
View RoseTreeToPaths.js
// The rose tree is a data structure that's used to represent hierarchical
// data like XML / HTML documents or filesystems (directory and file structures).
// See this in action on the Ramda REPL: https://goo.gl/XeToZt
// R = Ramda :: http://ramdajs.com/docs/
// much cleaner solution, thanks to @syaiful6 in Ramda's Gitter channel ( https://gitter.im/ramda/ramda )
const listPathsFromRoseTree =
tree =>
!is( Array, tree[ 1 ] )
|| isEmpty( tree[ 1 ] )
View _prepare_and_set_new_atom.js
const obsv = someObservable // stream, atom, etc.
const record = U.view( 'record', obsv )
const nameDefault = 'nobody'
const nameL = 'name'
const defaultsTemplate = { /* some defaults*/ }
obsv.onValue(
R.pipe( L.transform( [ nameL
, L.when( R.isNil )
@kurtmilam
kurtmilam / examples.js
Created Jun 16, 2017
calmm input example
View examples.js
<LabeledTextAreaInput lens="CONTACT_DETAILS"
formAtom={ formAtom }
{ ...props.opportunity }
/>
<LabeledTextAreaInput lens={ [ 'path', 'to', 'CONTACT_DETAILS' ] }
formAtom={ formAtom }
validAtom={ validAtom }
disabled={ disabled }
/>
@kurtmilam
kurtmilam / labeled-text-input.js
Last active May 30, 2017
calmm labeled text input
View labeled-text-input.js
// View the lensToLabel function in the partial.lenses playground at https://goo.gl/A0BRWa
import * as R from "ramda"
import * as L from "partial.lenses"
import * as React from "karet"
import * as U from "karet.util"
import TextInput from "./text-input"
const uCFirst =
@kurtmilam
kurtmilam / form.js
Last active May 29, 2017
calmm-js crud form component experiment
View form.js
const makeQuery =
U.pipe( U.template
, U.flatMapLatest( L.get( [ 0, U.pipe( Req.withParams( url ), Req.getJSON ) ] ) )
)
const getItem =
U.view( [ 'response', 'body', L.define( {} ) ] )
export const Edit =
U.withContext(
@kurtmilam
kurtmilam / nvm-windows-upgrade-npm-and-uninstall-node-version-instructions.md
Last active May 7, 2017
how to upgrade npm and uninstall a specific node version when using windows-nvm
View nvm-windows-upgrade-npm-and-uninstall-node-version-instructions.md

Do these from powershell or bash running as admin.

Upgrade npm

Node usually ships with an older version of npm.

Two things to consider:

  1. You'll need to upgrade npm once for each version of node installed by nvm-windows with which you wish to use the different version of npm.
  2. You'll need to manually specify the nvm-windows' installation path for the version of node whose associated npm you wish to upgrade.

First, install npm-windows-upgrade. Then, locate the nvm-windows installation path for the version of node whose npm you wish to upgrade. Usually at C:\Users\[user name]\AppData\Roaming\nvm\[node version].

@kurtmilam
kurtmilam / partial.lenses-get-set-object-in-list-by-uuid.js
Last active Apr 26, 2017
partial.lenses - get/set object in list by uuid
View partial.lenses-get-set-object-in-list-by-uuid.js
// REPL: https://calmm-js.github.io/partial.lenses/playground.html
// setup
const list = [ { uuid: 1, v: 1 }, { uuid: 2, v: 2 } ]
// lenses
const byPropNameL = R.curry( propName => R.compose( L.find, R.propEq( propName ) ) )
const byUuidL = byPropNameL( 'uuid' )
// getters & setters
const getByUuid = R.curry( ( uuid, o ) => L.get( byUuidL( uuid ), o ) )
You can’t perform that action at this time.