Skip to content

Instantly share code, notes, and snippets.

View mfikes's full-sized avatar

Mike Fikes mfikes

View GitHub Profile
@mfikes
mfikes / deps.clj
Created March 7, 2015 18:40
React Native dep graph
[{:file "react-native/Libraries/Animation/LayoutAnimation.js",
:provides ["LayoutAnimation"],
:requires
["ReactPropTypes"
"NativeModules"
"createStrictShapeTypeChecker"
"keyMirror"]}
{:file "react-native/Libraries/Animation/POPAnimationMixin.js",
:provides ["POPAnimationMixin"],
:requires ["POPAnimation" "invariant" "warning"]}
goog.provide("goby.core");
goog.require("cljs.core");
goog.require("clojure.data");
goog.require("clojure.set");
goby.core.env = cljs.core.atom.call(null, cljs.core.PersistentArrayMap.EMPTY);
goby.core.table_view_scroll_positions = new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null, "table-view-scroll-position-none", "table-view-scroll-position-none", -1642981970), 0, new cljs.core.Keyword(null, "table-view-scroll-position-top", "table-view-scroll-position-top", -612953771), 1, new cljs.core.Keyword(null, "table-view-scroll-position-middle", "table-view-scroll-position-middle", 915394854), 2, new cljs.core.Keyword(null, "table-view-scroll-position-bottom", "table-view-scroll-position-bottom",
1840072949), 3], null);
goby.core.table_view_scroll_positions_SINGLEQUOTE_ = clojure.set.map_invert.call(null, goby.core.table_view_scroll_positions);
goby.core.table_view_row_animations = new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null, "table-view-row-animation-fade", "table-vi
@mfikes
mfikes / date-range.clj
Last active August 29, 2015 14:17
Date range
(import '[goog.date Date Interval])
; This one goes from today up to but not including the end-date
(defn date-range-from-today [end-date]
(let [day-range (Interval. 0 0 1)]
(loop [i (Date.) v (transient [])]
(if (not (.equals end-date i))
(do
(let [x (doto (.clone i) (.add day-range))]
(recur x (conj! v x))))
@mfikes
mfikes / stack-trace-names.md
Last active August 29, 2015 14:17
stack trace names

Let's say we do (ffirst 1) in Ambly.

This results in

Error: 1 is not ISeqable
   cljs$core$seq (.../cljs/core.cljs:951:13)
   cljs$core$first (.../cljs/core.cljs:960:7)
   cljs$core$ffirst (.../cljs/core.cljs:1393:3)
   (NO_SOURCE_FILE)
@mfikes
mfikes / stacktraces.md
Created March 20, 2015 17:45
stacktrace examples

Firefox:

ClojureScript:cljs.user> (ffirst 1)
Error: 1 is not ISeqable
	 cljs.core/seq (out/cljs/core.cljs:951:20)
	 cljs.core/first (out/cljs/core.cljs:960:16)
	 cljs$core$ffirst (out/cljs/core.cljs:1393:11)

Chrome:

Clojure 1.6.0
user=> (+ 3 4)
7
user=> (require '[cljs.repl :as repl])
nil
user=> (require '[ambly.repl.jsc :as jsc])
nil
user=> (repl/repl* (jsc/repl-env) {})
@mfikes
mfikes / cljs-repl.md
Created March 22, 2015 00:09
cljs-repl
cljs.user=> (+ 1
       #_=> 2 3)
6
@mfikes
mfikes / cljs.repl.md
Created March 24, 2015 02:24
Source map optimization

If you can presume that cljs.core is fixed (AOT, etc), then its associated source map reading can be heavily optimized.

This simple optimization "permanently memoizes" its source map, once read. It makes stacktrace printing instantaneous for simple projects, once the first has been printed.

@mfikes
mfikes / piggieback.md
Created March 24, 2015 15:50
Piggieback test

I got a failure to resolve cemerick.piggieback/wrap-cljs-repl.

My environment is OS X, running the Shrimp project attempting to piggieback Ambly within Cursive's REPL.

Here is the stacktrace I got:

Starting nREPL server...
/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/bin/java -Dfile.encoding=UTF-8 -Dclojure.compile.path=/Users/mfikes/Documents/Projects/shrimp/ClojureScript/target/classes -Dshrimp.version=0.1.0-SNAPSHOT -Dclojure.debug=false -Didea.launcher.port=7532 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA 14.app/Contents/bin" -classpath "/Users/mfikes/Documents/Projects/shrimp/ClojureScript/test:/Users/mfikes/Documents/Projects/shrimp/ClojureScript/src:/Users/mfikes/Documents/Projects/shrimp/ClojureScript/dev-resources:/Users/mfikes/Documents/Projects/shrimp/ClojureScript/resources:/Users/mfikes/Documents/Projects/shrimp/ClojureScript/target/classes:/Users/mfikes/.m2/repository/com/google/guava/
To quit, type: :cljs/quit
ClojureScript:cljs.user> (require '[clojure.set])
nil
ClojureScript:cljs.user> (doc clojure.set/union)
-------------------------
clojure.set/union
([] [s1] [s1 s2] [s1 s2 & sets])
  Return a set that is the union of the input sets
nil