Skip to content

Instantly share code, notes, and snippets.

Avatar
💭
10x Ninja Rockstar

Adam Loving adamloving

💭
10x Ninja Rockstar
View GitHub Profile
@adamloving
adamloving / example.ts
Last active Nov 12, 2020
Isomorphic (shared) Typescript models for full stack Node Express React Postgres projects #NERP
View example.ts
import { array, object, number, string, date, InferType } from "yup";
import { Model } from "objection";
// Shared
// Shared API data schema (objects shared between client and server)
export const sharedSchema = object({
// none of these are required since not set until save (but they are also not nullable)
id: number()
.integer()
.notRequired(),
@adamloving
adamloving / ARTapToPlaceObject.cs
Created Jun 11, 2020
Place Object on surface in AR using Unity AR Foundation
View ARTapToPlaceObject.cs
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARSubsystems;
// This script is inspired by:
// https://www.youtube.com/watch?v=x08UU-I8eZ8&list=PLw3UgsOGHn4loDyxHG75eJxSnxxVgB-Yb&index=5&t=0s
// video Getting Started With ARFoundation in Unity (ARKit, ARCore): https://www.youtube.com/watch?v=Ml2UakwRxjk&list=WL&index=4
[RequireComponent(typeof(ARRaycastManager))]
@adamloving
adamloving / typeahead-autocomplete.tsx
Created Apr 16, 2020
React typeahead autocomplete
View typeahead-autocomplete.tsx
import React from "react";
import { ActionMeta, ValueType } from "react-select";
import CreatableSelect from "react-select/creatable";
type CreatableMultiSelectProps = {
options: Set<string>; // available choices
values: Set<string>; // current selections
onChange: (values: Set<string>) => void;
};
@adamloving
adamloving / truthiness.py
Created Sep 24, 2019
Python truth table and truthiness
View truthiness.py
import math
values = [
True, False, 1, 0, -1, "true", "false", "1", "0", "-1", "", None, math.inf, -math.inf, [], {}, [[]], [0], [1]
]
print("Truth Table")
print("-----------")
for value in values:
print(f"\t", end="")
@adamloving
adamloving / python_sucks.py
Last active Sep 23, 2019
Python is a very inelegant language. Here are some things I dislike.
View python_sucks.py
# 1. Clunky lambda syntax
numbers = [1, 2, 3]
# don't do this...
doubled = list(map(lambda n: n * 2, numbers))
# There's no way to define the end of the block except that comma. What about wrapping lines?
# better for this case
doubled = [n * 2 for n in numbers]
@adamloving
adamloving / .flake8.ini
Last active Oct 4, 2018
flake8 python linting configuration file
View .flake8.ini
# on macOS, put this in ~/.config/flake8
[flake8]
max-line-length=88
ignore=
#E302 expected 2 blank lines, found 1
E302,
#E261 at least two spaces before inline comment
E261,
# E401 multiple imports on one line
E401,
@adamloving
adamloving / parallelize.py
Last active Jun 19, 2018
parallelize python method
View parallelize.py
import multiprocessing, concurrent.futures
from functools import partial
WORKER_THREAD_COUNT = multiprocessing.cpu_count()
def parallelize(partials):
results = []
with concurrent.futures.ProcessPoolExecutor(max_workers=WORKER_THREAD_COUNT) as executor:
jobs = [ executor.submit(p) for p in partials ]
@adamloving
adamloving / react-numeral-input.jsx
Created Jun 24, 2016
React based HTML input for dollars that disallows decimals and inserts commas.
View react-numeral-input.jsx
class NumericInput extends React.Component {
constructor(props = {}) {
super(props)
this.state = {
value: numeral(props.value).format('0,0')
}
}
onChange(e) {
var number = numeral().unformat(e.target.value)
@adamloving
adamloving / BraintreeViewController.swift
Created Apr 12, 2016
Combined (working) Braintree Swift example for iOS 9
View BraintreeViewController.swift
import UIKit
import Braintree
let testToken = "eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiJkODIwNjRmN2ZhZjExNWJiYTI5NjdmNGEwNmM2OWJhZjQxODVjYjJiZjg2NWNkYzRjNzRiZmIzMzdjNmU5MDMwfGNyZWF0ZWRfYXQ9MjAxNi0wNC0xMlQxNjowNzoyOS44MTc4NjgzNjYrMDAwMFx1MDAyNm1lcmNoYW50X2lkPTM0OHBrOWNnZjNiZ3l3MmJcdTAwMjZwdWJsaWNfa2V5PTJuMjQ3ZHY4OWJxOXZtcHIiLCJjb25maWdVcmwiOiJodHRwczovL2FwaS5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvMzQ4cGs5Y2dmM2JneXcyYi9jbGllbnRfYXBpL3YxL2NvbmZpZ3VyYXRpb24iLCJjaGFsbGVuZ2VzIjpbXSwiZW52aXJvbm1lbnQiOiJzYW5kYm94IiwiY2xpZW50QXBpVXJsIjoiaHR0cHM6Ly9hcGkuc2FuZGJveC5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzLzM0OHBrOWNnZjNiZ3l3MmIvY2xpZW50X2FwaSIsImFzc2V0c1VybCI6Imh0dHBzOi8vYXNzZXRzLmJyYWludHJlZWdhdGV3YXkuY29tIiwiYXV0aFVybCI6Imh0dHBzOi8vYXV0aC52ZW5tby5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tIiwiYW5hbHl0aWNzIjp7InVybCI6Imh0dHBzOi8vY2xpZW50LWFuYWx5dGljcy5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tLzM0OHBrOWNnZjNiZ3l3MmIifSwidGhyZWVEU2VjdXJlRW5hYmxlZCI6dHJ1ZSwicGF5cGFsRW5hYmxlZCI6dHJ1ZSwicGF5cGFs
@adamloving
adamloving / hover-video.html
Created Mar 22, 2016
Hover to play video
View hover-video.html
<html>
<head>
<style>
.viewport {
position: relative;
width: 300px;
height: 300px;
}
.viewport:hover img {
You can’t perform that action at this time.