Skip to content

Instantly share code, notes, and snippets.

View milesegan's full-sized avatar
💭
/╲/\╭(ఠఠ益ఠఠ)╮/\╱\

Miles Egan milesegan

💭
/╲/\╭(ఠఠ益ఠఠ)╮/\╱\
View GitHub Profile
@milesegan
milesegan / transcode-opus.py
Last active September 11, 2022 01:56
Parallel flac to opus conversion script
#!/usr/bin/env pipenv run python
import subprocess
from pathlib import Path
import sys
from tempfile import NamedTemporaryFile
import multiprocessing as mp
def usage():
@milesegan
milesegan / tsutils.ts
Last active September 18, 2021 14:05
typescript utils
// Null filtering.
function isDefined<T>(value: T | undefined | null): value is T {
return !!value;
}
// Immutability
export type Immutable<T> = T extends Function | boolean | number | string | null | undefined
? T
: T extends Array<infer U>
? ReadonlyArray<Immutable<U>>
@milesegan
milesegan / hooks.ts
Created April 22, 2019 07:39
React hooks utilities.
import { useEffect, useRef } from "react";
// Runs only on update, not on initial render, unlike useEffect.
// Handy replacement for componentDidUpdate().
export function useUpdateEffect(
effect: React.EffectCallback,
deps?: React.DependencyList
): void {
const didMountRef = useRef(false);
// Adapted from http://blog.helftone.com/demystifying-inner-shadows-in-quartz/
import UIKit
class InnerShadowView: UIView {
var blurRadius = CGFloat(3) {
didSet { setNeedsDisplay() }
}
var offset = CGSize(width: 0, height: 2) {
didSet { setNeedsDisplay() }
extension Optional {
public func flatCall(@noescape f: (Wrapped) throws -> Void) rethrows -> Void {
switch self {
case .Some(let wrapped):
try f(wrapped)
case .None:
break
}
}
}
@milesegan
milesegan / update_asset_catalog
Created February 13, 2015 07:58
put image assets into correct folder in asset catalog
#!/usr/bin/env ruby
def usage
puts "usage: update_asset_catalog path_to_asset_catalog"
exit(1)
end
def main
if ARGV.length < 1
usage
woob - ambient disaster movie
deru - 1979
ssalvia - pantani
lord skywave - cardamon copy
clap clap clap! - tayi bebba
mono/poly - golden skies
east india youth - total strife forever
ital tek - mega city industry
downliners sekt - silent ascent
taylor mcferrin - early riser

Keybase proof

I hereby claim:

  • I am milesegan on github.
  • I am milesegan (https://keybase.io/milesegan) on keybase.
  • I have a public key whose fingerprint is EB64 08AA C13C 564A 04B3 2524 1D17 ED3F BFCE 581A

To claim this, I am signing this object: