Skip to content

Instantly share code, notes, and snippets.

View isaksky's full-sized avatar

Isak Sky isaksky

View GitHub Profile
@isaksky
isaksky / keybindings.json
Created June 1, 2023 20:26
Calva Keybindings, WASD movement
[
// Disable crazy VSCode default bindings
{
"key": "ctrl+shift+w",
"command": "-workbench.action.closeWindow"
},
{
"key": "ctrl+w",
"command": "-workbench.action.closeActiveEditor"
},
@isaksky
isaksky / step.cljc
Last active August 3, 2021 22:30
tbd.step macro
(ns tbd.step
(:require
[clojure.spec.alpha :as s]))
(s/def ::binding-kvp (s/cat :lhs symbol? :rhs any?))
(s/def ::bindings
(s/and
vector?
(s/conformer vec vec)
@isaksky
isaksky / i18n-impl.cljs
Created November 5, 2019 05:05
Handling translations in ClojureScript
(ns front.utilities.i18n-impl
(:require [front.i18n]))
(defn build-domain-index [text-vec]
(let [by-msgid (atom (transient {}))
by-msg (atom (transient {}))]
(doseq [{:keys [s_message s_message_id] :as text} text-vec]
(when-not (clojure.string/blank? s_message_id)
(swap! by-msgid assoc! s_message_id text))
(when-not (clojure.string/blank? s_message)
@isaksky
isaksky / solution.sql
Last active November 4, 2019 16:33
Solution to Robot Journey in TSQL https://github.com/mikehadlow/Journeys
declare @input nvarchar(max) =
N'1 1 E
RFRFRFRF
1 1 E
3 2 N
FRRFLLFFRRFLL
3 3 N
0 3 W
@isaksky
isaksky / gist:f693864aeedef8b54c1163342b36d788
Created October 8, 2019 16:10
Watch fancy CSS (less, scsss, etc) via shadow-cljs
(ns front.tasks.watch-css
(:require [clojure.java.io]
[clojure.java.shell :refer [sh]]
[juxt.dirwatch :refer [watch-dir]]
[clojure.core.async :as a]
[clojure.string :as str]
#_[shadow.cljs.devtools.api :refer [send-to-runtimes!]]))
(defn debounce-chan
"Taken from https://gist.github.com/xfsnowind/e15cc2e6da74df81f129"
@isaksky
isaksky / no-stutter.cljs
Last active September 17, 2019 23:32
Non stuttering text control in re-frame
(require '[reagent.ratom :as ra])
(require '[reagent.core :as reagent])
(require '[re-frame.core :as rf])
(defn non-stuttering-text-control [props]
(let [text-value-atom (atom "")
outside-change-counter (ra/atom 0)
to-dispose (atom [])]
(fn [props]
@isaksky
isaksky / Foo.ex
Created May 23, 2019 15:00
Update URL via Liveview
# In somethingLive.ex:
def handle_event("some_event", _params, socket) do
assign(socket, :updated_url, Routes.project_path(MyApp.Endpoint, :index))
end
# In template: <%= js_url_update_script(assigns[:updated_url]) %>
# In form_helpers.ex, or similar:
Initial Commit
@isaksky
isaksky / codemirror.cljs
Created December 12, 2018 16:22
Reframe codemirror
(ns mything.components.codemirror
(:require [reagent.core :as reagent]
[re-frame.core :as rf]
[reagent.interop :refer [$]]
cljsjs.codemirror
cljsjs.codemirror.mode.clojure
cljsjs.codemirror.mode.sql))
(def codemirror-defaults {:lineNumbers true
:lineWrapping true
@isaksky
isaksky / Results.txt
Created April 25, 2018 23:24
Gjallarhorn read consistency
..................................X...X....X.X.X.X....XX.XXX...X.....XX....X..........XX.....X..X..XX..X.......X....X...XXX.X..X..XX....X.X..XX.X..X.X....X....X.X.XX.X..........XX..X....X.XX.X.XX..XXX.XXXXXX............X.....X..XX..XXX.....X.X.X.X....X..X.XX.XX.X..XX....X.......X..X.X...XX.XX..X..X..X..XX..X......X..XX.XX.XX..X.....X...XX..X.....XX......X.......X....X.................X.....................X...............X............X.X.......XX..XX......X.X.X...XXXX.X.XXXXXX.X.XX..X...X........X.....XX...X.XXXXXX.....XXXX.......X.X.X...XX..X.X....XXX...X....X..X.......X.X.........X.XX....X.........XX.XX.XX.X..X...X.X.X...XX....XX...........X........................X..X.X.X...XX....................X........XX.......X........X....X...............X............X..X.X.XXX...XXXX.....XX...X...X.....X......XX.X.X...X....X..X.X..X..X..XXX.X.XXXXX........XX....XX.X.XXXXX..X.X........X...........X..X.X.X...X......XX...X......X..X.X..X.X..X.....XX...X...X.....XX..X......X..X....X.XX.X..X.X.X.X.X.X..X....X.X....XX.X...