Skip to content

Instantly share code, notes, and snippets.

View lilactown's full-sized avatar
🌊
Do not follow in the footsteps of the sages. Seek what they sought.

Will Acton lilactown

🌊
Do not follow in the footsteps of the sages. Seek what they sought.
View GitHub Profile
@lilactown
lilactown / dayFour.re
Created December 4, 2017 18:38
Advent of Code, 2017: Day 4
module StringSet = Set.Make(String);
let arrayToStringSet = (arr) => StringSet.of_list(Array.to_list(arr));
let noDuplicates = (cardinal, pass) => {
let phrases = Js.String.split(" ", pass);
cardinal(arrayToStringSet(phrases)) == Array.length(phrases)
};
let part1 = (input) =>
module Components = {
module Box = {
let jsComponent = [%bs.raw
{|
({ children, ...props }) => React.createElement("box", props, children)
|}
];
let make = (~width, ~height, ~top, ~left, children) =>
ReasonReact.wrapJsForReason(
~reactClass=jsComponent,
@lilactown
lilactown / cljs-serverless.md
Last active January 27, 2020 05:06
CLJS in AWS Lambda Quick Start
@lilactown
lilactown / install-emacs.sh
Last active April 15, 2019 15:04
Installs Emacs with my favorite things
#!/usr/local/bin/zsh
brew tap railwaycat/emacsmacport
brew install emacs-mac --with-xml2 --with-ctags --with-spacemacs-icon --with-gnutls --with-natural-title-bar
osascript -e 'tell application "Finder" to make alias file to POSIX file "/usr/local/opt/emacs-mac/Emacs.app" at POSIX file "/Applications"'
# For opening from term: https://gist.github.com/railwaycat/4043945
# Install spacemacs
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
@lilactown
lilactown / css.cljs
Last active November 12, 2018 21:06
(ns my-app.css
(:require ["emotion" :as emotion]))
(defn edn [& styles]
(apply emotion/css (map clj->js styles))
@lilactown
lilactown / dracula-theme.el
Created August 1, 2018 23:09
Slightly modified dracula theme for emacs
;;; dracula-theme.el --- Dracula Theme
;; Copyright 2015-present, All rights reserved
;;
;; Code licensed under the MIT license
;; Author: film42
;; Version: 1.3.2
;; Package-Version: 20180416.652
;; Package-Requires: ((emacs "24"))
@lilactown
lilactown / spacemacs-cider-18-snapshot.el
Created August 8, 2018 15:33
How to fix spacemacs + CIDER 0.18-SNAPSHOT
;; The latest CIDER v0.18-SNAPSHOT bumped the nREPL dependency to 0.4
;; which broke the sayid and clj-refactor nREPL middleware.
;; Here's how to disable them until they can be updated
(defun dotspacemacs/user-config ()
;; ...
(setq sayid-inject-dependencies-at-jack-in nil)
(setq cljr-inject-dependencies-at-jack-in nil)
;; ...
)
@lilactown
lilactown / projection.clj
Created August 11, 2018 04:30
Project a map onto a tree of keys
(defn project-paths [projection]
(loop [pr projection
paths '[]]
(let [[el next] pr]
(if (empty? pr)
paths
(if (vector? next)
(recur
(drop 2 pr)
@lilactown
lilactown / rebel.sh
Last active June 18, 2019 09:52
Start a Clojure(Script) REPL with rebel-readline and any other dependencies you want to include
# Add these to your .bash_profile / .zshrc / etc.
# Starts a Clojure repl
function rebel-clj() {
clojure -Sdeps "{:deps {com.bhauman/rebel-readline {:mvn/version \"0.1.4\"} $@}}" -m rebel-readline.main
}
# Starts a browser REPL
function rebel-cljs() {
clojure -Sdeps "{:deps {com.bhauman/figwheel-main {:mvn/version \"0.1.7\"} com.bhauman/rebel-readline-cljs {:mvn/version \"0.1.4\"} $@}}" -m figwheel.main
@lilactown
lilactown / hooks-indirect.js
Last active November 6, 2018 00:33
Reconciler-agnostic React hooks
/**
Problem 1: As a library developer, I want to be able to test my hooks without having to render a component.
Problem 2: As a library developer, I want to be able to publish my hooks without a direct dependency on React.
Problem 3: As an application developer, I want to be able to easily override (with some sort of proxy/rewire magic,
perhaps) hooks with side effects in tests.
Problem 4: As an application developer, I would like to be able to use hooks written for React in other frameworks
that support hooks.