From bcf9b230be6d74c71567fd0771b31d47d8dd39c7 Mon Sep 17 00:00:00 2001 From: Brian Picciano Date: Thu, 21 Jan 2021 17:22:53 -0700 Subject: [PATCH] build the blog with nix --- .gitignore | 4 +- CNAME | 1 - LICENSE.txt | 27 +- Makefile | 17 +- build.sh | 5 + default.nix | 41 + gemset.nix | 965 ++++++++++++++++++ new-post.sh | 2 +- 404.html => src/404.html | 0 _config.yml => src/_config.yml | 6 + {_includes => src/_includes}/footer.html | 0 .../_includes}/google-analytics.html | 0 {_includes => src/_includes}/head.html | 0 {_includes => src/_includes}/header.html | 0 {_includes => src/_includes}/image.html | 0 {_layouts => src/_layouts}/code.html | 0 {_layouts => src/_layouts}/default.html | 0 {_layouts => src/_layouts}/page.html | 0 {_layouts => src/_layouts}/post.html | 0 ...13-04-09-erlang-tcp-socket-pull-pattern.md | 0 {_posts => src/_posts}/2013-07-11-goplus.md | 0 .../_posts}/2013-10-08-generations.md | 0 .../_posts}/2013-10-25-namecoind-ssl.md | 0 .../_posts}/2014-01-11-diamond-square.md | 0 .../_posts}/2014-10-29-erlang-pitfalls.md | 0 .../_posts}/2015-03-11-rabbit-hole.md | 0 {_posts => src/_posts}/2015-07-15-go-http.md | 0 .../_posts}/2015-11-21-happy-trees.md | 0 .../_posts}/2017-09-06-brian-bars.md | 0 .../_posts}/2018-10-25-rethinking-identity.md | 0 {_posts => src/_posts}/2018-11-12-viz-1.md | 0 {_posts => src/_posts}/2018-11-12-viz-2.md | 0 ...-02-program-structure-and-composability.md | 0 .../_posts}/2020-04-26-trading-in-the-rain.md | 0 .../_posts}/2020-05-30-denver-protests.md | 0 {_posts => src/_posts}/2020-07-07-viz-3.md | 0 ...20-11-16-component-oriented-programming.md | 0 .../2021-01-01-new-year-new-resolution.md | 0 {_posts => src/_posts}/2021-01-09-ginger.md | 0 {_posts => src/_posts}/2021-01-14-the-web.md | 0 .../component-oriented-design/v1/main.go | 0 .../component-oriented-design/v1/main.md | 0 .../component-oriented-design/v1/main_test.go | 0 .../component-oriented-design/v1/main_test.md | 0 .../component-oriented-design/v2/main.go | 0 .../component-oriented-design/v2/main.md | 0 .../component-oriented-design/v3/main.go | 0 .../component-oriented-design/v3/main.md | 0 {assets => src/assets}/friendly.css | 0 {assets => src/assets}/main.css | 0 {assets => src/assets}/main.js | 0 {assets => src/assets}/normalize.css | 0 {assets => src/assets}/qrcode.min.js | 0 {assets => src/assets}/skeleton.css | 0 .../assets}/trading-in-the-rain/CW.js | 0 .../trading-in-the-rain/Distributor.js | 0 .../trading-in-the-rain/MIDI.js/LICENSE.txt | 0 .../MIDI.js/inc/shim/Base64.js | 0 .../MIDI.js/inc/shim/Base64binary.js | 0 .../MIDI.js/inc/shim/WebAudioAPI.js | 0 .../MIDI.js/inc/shim/WebMIDIAPI.js | 0 .../MIDI.js/js/midi/audioDetect.js | 0 .../trading-in-the-rain/MIDI.js/js/midi/gm.js | 0 .../MIDI.js/js/midi/loader.js | 0 .../MIDI.js/js/midi/player.js | 0 .../MIDI.js/js/midi/plugin.audiotag.js | 0 .../MIDI.js/js/midi/plugin.webaudio.js | 0 .../MIDI.js/js/midi/plugin.webmidi.js | 0 .../MIDI.js/js/midi/synesthesia.js | 0 .../MIDI.js/js/util/dom_request_script.js | 0 .../MIDI.js/js/util/dom_request_xhr.js | 0 .../assets}/trading-in-the-rain/MusicBox.js | 0 .../assets}/trading-in-the-rain/RainCanvas.js | 0 .../trading-in-the-rain/SeriesComposer.js | 0 .../assets}/trading-in-the-rain/key.gpg | Bin .../assets}/trading-in-the-rain/main.js | 0 .../soundfont/acoustic_grand_piano-mp3.js | 0 .../soundfont/acoustic_grand_piano-mp3/A0.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/A7.mp3 | Bin .../acoustic_grand_piano-mp3/Ab1.mp3 | Bin .../acoustic_grand_piano-mp3/Ab2.mp3 | Bin .../acoustic_grand_piano-mp3/Ab3.mp3 | Bin .../acoustic_grand_piano-mp3/Ab4.mp3 | Bin .../acoustic_grand_piano-mp3/Ab5.mp3 | Bin .../acoustic_grand_piano-mp3/Ab6.mp3 | Bin .../acoustic_grand_piano-mp3/Ab7.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B0.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/B7.mp3 | Bin .../acoustic_grand_piano-mp3/Bb0.mp3 | Bin .../acoustic_grand_piano-mp3/Bb1.mp3 | Bin .../acoustic_grand_piano-mp3/Bb2.mp3 | Bin .../acoustic_grand_piano-mp3/Bb3.mp3 | Bin .../acoustic_grand_piano-mp3/Bb4.mp3 | Bin .../acoustic_grand_piano-mp3/Bb5.mp3 | Bin .../acoustic_grand_piano-mp3/Bb6.mp3 | Bin .../acoustic_grand_piano-mp3/Bb7.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C7.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/C8.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/D7.mp3 | Bin .../acoustic_grand_piano-mp3/Db1.mp3 | Bin .../acoustic_grand_piano-mp3/Db2.mp3 | Bin .../acoustic_grand_piano-mp3/Db3.mp3 | Bin .../acoustic_grand_piano-mp3/Db4.mp3 | Bin .../acoustic_grand_piano-mp3/Db5.mp3 | Bin .../acoustic_grand_piano-mp3/Db6.mp3 | Bin .../acoustic_grand_piano-mp3/Db7.mp3 | Bin .../acoustic_grand_piano-mp3/Db8.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/E7.mp3 | Bin .../acoustic_grand_piano-mp3/Eb1.mp3 | Bin .../acoustic_grand_piano-mp3/Eb2.mp3 | Bin .../acoustic_grand_piano-mp3/Eb3.mp3 | Bin .../acoustic_grand_piano-mp3/Eb4.mp3 | Bin .../acoustic_grand_piano-mp3/Eb5.mp3 | Bin .../acoustic_grand_piano-mp3/Eb6.mp3 | Bin .../acoustic_grand_piano-mp3/Eb7.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/F7.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G1.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G2.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G3.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G4.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G5.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G6.mp3 | Bin .../soundfont/acoustic_grand_piano-mp3/G7.mp3 | Bin .../acoustic_grand_piano-mp3/Gb1.mp3 | Bin .../acoustic_grand_piano-mp3/Gb2.mp3 | Bin .../acoustic_grand_piano-mp3/Gb3.mp3 | Bin .../acoustic_grand_piano-mp3/Gb4.mp3 | Bin .../acoustic_grand_piano-mp3/Gb5.mp3 | Bin .../acoustic_grand_piano-mp3/Gb6.mp3 | Bin .../acoustic_grand_piano-mp3/Gb7.mp3 | Bin .../soundfont/acoustic_grand_piano-ogg.js | 0 {assets => src/assets}/viz/1/cljs/core.cljs | 0 {assets => src/assets}/viz/1/cljs/core.js | 0 {assets => src/assets}/viz/1/cljs/core.js.map | 0 {assets => src/assets}/viz/1/cljs_deps.js | 0 {assets => src/assets}/viz/1/clojure/set.cljs | 0 .../assets}/viz/1/clojure/set.cljs.cache.edn | 0 {assets => src/assets}/viz/1/clojure/set.js | 0 .../assets}/viz/1/clojure/set.js.map | 0 .../assets}/viz/1/clojure/string.cljs | 0 .../viz/1/clojure/string.cljs.cache.edn | 0 .../assets}/viz/1/clojure/string.js | 0 .../assets}/viz/1/clojure/string.js.map | 0 .../assets}/viz/1/goog/array/array.js | 0 .../assets}/viz/1/goog/asserts/asserts.js | 0 {assets => src/assets}/viz/1/goog/base.js | 0 .../viz/1/goog/debug/entrypointregistry.js | 0 .../assets}/viz/1/goog/debug/error.js | 0 {assets => src/assets}/viz/1/goog/deps.js | 0 .../viz/1/goog/disposable/disposable.js | 0 .../viz/1/goog/disposable/idisposable.js | 0 .../assets}/viz/1/goog/dom/browserfeature.js | 0 {assets => src/assets}/viz/1/goog/dom/dom.js | 0 .../assets}/viz/1/goog/dom/nodetype.js | 0 {assets => src/assets}/viz/1/goog/dom/safe.js | 0 .../assets}/viz/1/goog/dom/tagname.js | 0 {assets => src/assets}/viz/1/goog/dom/tags.js | 0 .../assets}/viz/1/goog/events/browserevent.js | 0 .../viz/1/goog/events/browserfeature.js | 0 .../assets}/viz/1/goog/events/event.js | 0 .../assets}/viz/1/goog/events/eventid.js | 0 .../assets}/viz/1/goog/events/events.js | 0 .../assets}/viz/1/goog/events/eventtype.js | 0 .../assets}/viz/1/goog/events/listenable.js | 0 .../assets}/viz/1/goog/events/listener.js | 0 .../assets}/viz/1/goog/events/listenermap.js | 0 {assets => src/assets}/viz/1/goog/fs/url.js | 0 .../assets}/viz/1/goog/html/safehtml.js | 0 .../assets}/viz/1/goog/html/safescript.js | 0 .../assets}/viz/1/goog/html/safestyle.js | 0 .../assets}/viz/1/goog/html/safestylesheet.js | 0 .../assets}/viz/1/goog/html/safeurl.js | 0 .../viz/1/goog/html/trustedresourceurl.js | 0 .../viz/1/goog/html/uncheckedconversions.js | 0 .../assets}/viz/1/goog/i18n/bidi.js | 0 .../viz/1/goog/labs/useragent/browser.js | 0 .../viz/1/goog/labs/useragent/engine.js | 0 .../viz/1/goog/labs/useragent/platform.js | 0 .../assets}/viz/1/goog/labs/useragent/util.js | 0 .../assets}/viz/1/goog/math/coordinate.js | 0 .../assets}/viz/1/goog/math/integer.js | 0 .../assets}/viz/1/goog/math/long.js | 0 .../assets}/viz/1/goog/math/math.js | 0 .../assets}/viz/1/goog/math/size.js | 0 .../assets}/viz/1/goog/object/object.js | 0 .../assets}/viz/1/goog/reflect/reflect.js | 0 .../assets}/viz/1/goog/string/const.js | 0 .../assets}/viz/1/goog/string/string.js | 0 .../assets}/viz/1/goog/string/stringbuffer.js | 0 .../assets}/viz/1/goog/string/stringformat.js | 0 .../assets}/viz/1/goog/string/typedstring.js | 0 .../assets}/viz/1/goog/useragent/useragent.js | 0 {assets => src/assets}/viz/1/processing.js | 0 {assets => src/assets}/viz/1/quil/core.cljc | 0 .../assets}/viz/1/quil/core.cljc.cache.edn | 0 {assets => src/assets}/viz/1/quil/core.js | 0 {assets => src/assets}/viz/1/quil/core.js.map | 0 .../assets}/viz/1/quil/middleware.cljc | 0 .../viz/1/quil/middleware.cljc.cache.edn | 0 .../assets}/viz/1/quil/middleware.js | 0 .../assets}/viz/1/quil/middleware.js.map | 0 .../quil/middlewares/deprecated_options.cljc | 0 .../deprecated_options.cljc.cache.edn | 0 .../1/quil/middlewares/deprecated_options.js | 0 .../middlewares/deprecated_options.js.map | 0 .../viz/1/quil/middlewares/fun_mode.cljc | 0 .../quil/middlewares/fun_mode.cljc.cache.edn | 0 .../viz/1/quil/middlewares/fun_mode.js | 0 .../viz/1/quil/middlewares/fun_mode.js.map | 0 .../viz/1/quil/middlewares/navigation_2d.cljc | 0 .../middlewares/navigation_2d.cljc.cache.edn | 0 .../viz/1/quil/middlewares/navigation_2d.js | 0 .../1/quil/middlewares/navigation_2d.js.map | 0 .../viz/1/quil/middlewares/navigation_3d.cljc | 0 .../middlewares/navigation_3d.cljc.cache.edn | 0 .../viz/1/quil/middlewares/navigation_3d.js | 0 .../1/quil/middlewares/navigation_3d.js.map | 0 {assets => src/assets}/viz/1/quil/sketch.cljs | 0 .../assets}/viz/1/quil/sketch.cljs.cache.edn | 0 {assets => src/assets}/viz/1/quil/sketch.js | 0 .../assets}/viz/1/quil/sketch.js.map | 0 {assets => src/assets}/viz/1/quil/util.cljc | 0 .../assets}/viz/1/quil/util.cljc.cache.edn | 0 {assets => src/assets}/viz/1/quil/util.js | 0 {assets => src/assets}/viz/1/quil/util.js.map | 0 {assets => src/assets}/viz/1/viz/core.cljs | 0 .../assets}/viz/1/viz/core.cljs.cache.edn | 0 {assets => src/assets}/viz/1/viz/core.js | 0 {assets => src/assets}/viz/1/viz/core.js.map | 0 {assets => src/assets}/viz/1/viz/forest.cljs | 0 .../assets}/viz/1/viz/forest.cljs.cache.edn | 0 {assets => src/assets}/viz/1/viz/forest.js | 0 .../assets}/viz/1/viz/forest.js.map | 0 {assets => src/assets}/viz/1/viz/ghost.cljs | 0 .../assets}/viz/1/viz/ghost.cljs.cache.edn | 0 {assets => src/assets}/viz/1/viz/ghost.js | 0 {assets => src/assets}/viz/1/viz/ghost.js.map | 0 {assets => src/assets}/viz/1/viz/grid.cljs | 0 .../assets}/viz/1/viz/grid.cljs.cache.edn | 0 {assets => src/assets}/viz/1/viz/grid.js | 0 {assets => src/assets}/viz/1/viz/grid.js.map | 0 {assets => src/assets}/viz/2/cljs/core.cljs | 0 {assets => src/assets}/viz/2/cljs/core.js | 0 {assets => src/assets}/viz/2/cljs/core.js.map | 0 .../2/cljs/user/debug9D984AE.cljs.cache.json | 0 .../assets}/viz/2/cljs/user/debug9D984AE.js | 0 .../viz/2/cljs/user/debug9D984AE.js.map | 0 {assets => src/assets}/viz/2/cljs_deps.js | 0 {assets => src/assets}/viz/2/cljsc_opts.edn | 0 {assets => src/assets}/viz/2/clojure/set.cljs | 0 .../assets}/viz/2/clojure/set.cljs.cache.json | 0 {assets => src/assets}/viz/2/clojure/set.js | 0 .../assets}/viz/2/clojure/set.js.map | 0 .../assets}/viz/2/clojure/string.cljs | 0 .../viz/2/clojure/string.cljs.cache.json | 0 .../assets}/viz/2/clojure/string.js | 0 .../assets}/viz/2/clojure/string.js.map | 0 .../assets}/viz/2/goog/array/array.js | 0 .../assets}/viz/2/goog/asserts/asserts.js | 0 {assets => src/assets}/viz/2/goog/base.js | 0 .../viz/2/goog/debug/entrypointregistry.js | 0 .../assets}/viz/2/goog/debug/error.js | 0 {assets => src/assets}/viz/2/goog/deps.js | 0 .../viz/2/goog/disposable/disposable.js | 0 .../viz/2/goog/disposable/idisposable.js | 0 .../assets}/viz/2/goog/dom/asserts.js | 0 .../assets}/viz/2/goog/dom/browserfeature.js | 0 {assets => src/assets}/viz/2/goog/dom/dom.js | 0 .../assets}/viz/2/goog/dom/htmlelement.js | 0 .../assets}/viz/2/goog/dom/nodetype.js | 0 {assets => src/assets}/viz/2/goog/dom/safe.js | 0 .../assets}/viz/2/goog/dom/tagname.js | 0 {assets => src/assets}/viz/2/goog/dom/tags.js | 0 .../assets}/viz/2/goog/events/browserevent.js | 0 .../viz/2/goog/events/browserfeature.js | 0 .../assets}/viz/2/goog/events/event.js | 0 .../assets}/viz/2/goog/events/eventid.js | 0 .../assets}/viz/2/goog/events/events.js | 0 .../assets}/viz/2/goog/events/eventtype.js | 0 .../assets}/viz/2/goog/events/listenable.js | 0 .../assets}/viz/2/goog/events/listener.js | 0 .../assets}/viz/2/goog/events/listenermap.js | 0 {assets => src/assets}/viz/2/goog/fs/url.js | 0 .../assets}/viz/2/goog/functions/functions.js | 0 .../assets}/viz/2/goog/html/safehtml.js | 0 .../assets}/viz/2/goog/html/safescript.js | 0 .../assets}/viz/2/goog/html/safestyle.js | 0 .../assets}/viz/2/goog/html/safestylesheet.js | 0 .../assets}/viz/2/goog/html/safeurl.js | 0 .../viz/2/goog/html/trustedresourceurl.js | 0 .../viz/2/goog/html/uncheckedconversions.js | 0 .../assets}/viz/2/goog/i18n/bidi.js | 0 .../assets}/viz/2/goog/iter/iter.js | 0 .../viz/2/goog/labs/useragent/browser.js | 0 .../viz/2/goog/labs/useragent/engine.js | 0 .../viz/2/goog/labs/useragent/platform.js | 0 .../assets}/viz/2/goog/labs/useragent/util.js | 0 .../assets}/viz/2/goog/math/coordinate.js | 0 .../assets}/viz/2/goog/math/integer.js | 0 .../assets}/viz/2/goog/math/long.js | 0 .../assets}/viz/2/goog/math/math.js | 0 .../assets}/viz/2/goog/math/size.js | 0 .../assets}/viz/2/goog/object/object.js | 0 .../assets}/viz/2/goog/reflect/reflect.js | 0 .../assets}/viz/2/goog/string/const.js | 0 .../assets}/viz/2/goog/string/string.js | 0 .../assets}/viz/2/goog/string/stringbuffer.js | 0 .../assets}/viz/2/goog/string/stringformat.js | 0 .../assets}/viz/2/goog/string/typedstring.js | 0 .../assets}/viz/2/goog/structs/map.js | 0 .../assets}/viz/2/goog/structs/structs.js | 0 {assets => src/assets}/viz/2/goog/uri/uri.js | 0 .../assets}/viz/2/goog/uri/utils.js | 0 .../assets}/viz/2/goog/useragent/useragent.js | 0 {assets => src/assets}/viz/2/process/env.cljs | 0 .../assets}/viz/2/process/env.cljs.cache.json | 0 {assets => src/assets}/viz/2/process/env.js | 0 .../assets}/viz/2/process/env.js.map | 0 {assets => src/assets}/viz/2/processing.js | 0 {assets => src/assets}/viz/2/quil/core.cljc | 0 .../assets}/viz/2/quil/core.cljc.cache.json | 0 {assets => src/assets}/viz/2/quil/core.js | 0 {assets => src/assets}/viz/2/quil/core.js.map | 0 .../assets}/viz/2/quil/middleware.cljc | 0 .../viz/2/quil/middleware.cljc.cache.json | 0 .../assets}/viz/2/quil/middleware.js | 0 .../assets}/viz/2/quil/middleware.js.map | 0 .../quil/middlewares/deprecated_options.cljc | 0 .../deprecated_options.cljc.cache.json | 0 .../2/quil/middlewares/deprecated_options.js | 0 .../middlewares/deprecated_options.js.map | 0 .../viz/2/quil/middlewares/fun_mode.cljc | 0 .../quil/middlewares/fun_mode.cljc.cache.json | 0 .../viz/2/quil/middlewares/fun_mode.js | 0 .../viz/2/quil/middlewares/fun_mode.js.map | 0 .../viz/2/quil/middlewares/navigation_2d.cljc | 0 .../middlewares/navigation_2d.cljc.cache.json | 0 .../viz/2/quil/middlewares/navigation_2d.js | 0 .../2/quil/middlewares/navigation_2d.js.map | 0 .../viz/2/quil/middlewares/navigation_3d.cljc | 0 .../middlewares/navigation_3d.cljc.cache.json | 0 .../viz/2/quil/middlewares/navigation_3d.js | 0 .../2/quil/middlewares/navigation_3d.js.map | 0 {assets => src/assets}/viz/2/quil/sketch.cljs | 0 .../assets}/viz/2/quil/sketch.cljs.cache.json | 0 {assets => src/assets}/viz/2/quil/sketch.js | 0 .../assets}/viz/2/quil/sketch.js.map | 0 {assets => src/assets}/viz/2/quil/util.cljc | 0 .../assets}/viz/2/quil/util.cljc.cache.json | 0 {assets => src/assets}/viz/2/quil/util.js | 0 {assets => src/assets}/viz/2/quil/util.js.map | 0 {assets => src/assets}/viz/2/viz/core.cljs | 0 .../assets}/viz/2/viz/core.cljs.cache.json | 0 {assets => src/assets}/viz/2/viz/core.js | 0 {assets => src/assets}/viz/2/viz/core.js.map | 0 {assets => src/assets}/viz/2/viz/debug.cljs | 0 .../assets}/viz/2/viz/debug.cljs.cache.json | 0 {assets => src/assets}/viz/2/viz/debug.js | 0 {assets => src/assets}/viz/2/viz/debug.js.map | 0 {assets => src/assets}/viz/2/viz/dial.cljs | 0 .../assets}/viz/2/viz/dial.cljs.cache.json | 0 {assets => src/assets}/viz/2/viz/dial.js | 0 {assets => src/assets}/viz/2/viz/dial.js.map | 0 {assets => src/assets}/viz/2/viz/forest.cljs | 0 .../assets}/viz/2/viz/forest.cljs.cache.json | 0 {assets => src/assets}/viz/2/viz/forest.js | 0 .../assets}/viz/2/viz/forest.js.map | 0 {assets => src/assets}/viz/2/viz/ghost.cljs | 0 .../assets}/viz/2/viz/ghost.cljs.cache.json | 0 {assets => src/assets}/viz/2/viz/ghost.js | 0 {assets => src/assets}/viz/2/viz/ghost.js.map | 0 {assets => src/assets}/viz/2/viz/grid.cljs | 0 .../assets}/viz/2/viz/grid.cljs.cache.json | 0 {assets => src/assets}/viz/2/viz/grid.js | 0 {assets => src/assets}/viz/2/viz/grid.js.map | 0 {assets => src/assets}/wtfpl.txt | 0 follow.md => src/follow.md | 0 {img => src/img}/diamond-square/dsalg.png | Bin {img => src/img}/diamond-square/terrain.png | Bin .../happy-tree/happy-tree-atmp1-small.png | Bin .../img}/happy-tree/happy-tree-atmp1.png | Bin .../happy-tree/happy-tree-atmp2-small.png | Bin .../img}/happy-tree/happy-tree-atmp2.png | Bin .../happy-tree-atmp3-pow3-small.png | Bin .../img}/happy-tree/happy-tree-atmp3-pow3.png | Bin .../happy-tree-atmp3-pow4-small.png | Bin .../img}/happy-tree/happy-tree-atmp3-pow4.png | Bin .../happy-tree-atmp3-pow5-small.png | Bin .../img}/happy-tree/happy-tree-atmp3-pow5.png | Bin .../happy-tree-atmp3-pow6-small.png | Bin .../img}/happy-tree/happy-tree-atmp3-pow6.png | Bin {img => src/img}/happy-tree/partial.png | Bin .../img}/program-structure/500px/diag1.jpg | Bin .../img}/program-structure/500px/diag2.jpg | Bin .../img}/program-structure/500px/diag3.jpg | Bin {img => src/img}/program-structure/diag1.jpg | Bin {img => src/img}/program-structure/diag2.jpg | Bin {img => src/img}/program-structure/diag3.jpg | Bin index.md => src/index.md | 0 435 files changed, 1038 insertions(+), 30 deletions(-) delete mode 100644 CNAME create mode 100644 build.sh create mode 100644 default.nix create mode 100644 gemset.nix rename 404.html => src/404.html (100%) rename _config.yml => src/_config.yml (89%) rename {_includes => src/_includes}/footer.html (100%) rename {_includes => src/_includes}/google-analytics.html (100%) rename {_includes => src/_includes}/head.html (100%) rename {_includes => src/_includes}/header.html (100%) rename {_includes => src/_includes}/image.html (100%) rename {_layouts => src/_layouts}/code.html (100%) rename {_layouts => src/_layouts}/default.html (100%) rename {_layouts => src/_layouts}/page.html (100%) rename {_layouts => src/_layouts}/post.html (100%) rename {_posts => src/_posts}/2013-04-09-erlang-tcp-socket-pull-pattern.md (100%) rename {_posts => src/_posts}/2013-07-11-goplus.md (100%) rename {_posts => src/_posts}/2013-10-08-generations.md (100%) rename {_posts => src/_posts}/2013-10-25-namecoind-ssl.md (100%) rename {_posts => src/_posts}/2014-01-11-diamond-square.md (100%) rename {_posts => src/_posts}/2014-10-29-erlang-pitfalls.md (100%) rename {_posts => src/_posts}/2015-03-11-rabbit-hole.md (100%) rename {_posts => src/_posts}/2015-07-15-go-http.md (100%) rename {_posts => src/_posts}/2015-11-21-happy-trees.md (100%) rename {_posts => src/_posts}/2017-09-06-brian-bars.md (100%) rename {_posts => src/_posts}/2018-10-25-rethinking-identity.md (100%) rename {_posts => src/_posts}/2018-11-12-viz-1.md (100%) rename {_posts => src/_posts}/2018-11-12-viz-2.md (100%) rename {_posts => src/_posts}/2019-08-02-program-structure-and-composability.md (100%) rename {_posts => src/_posts}/2020-04-26-trading-in-the-rain.md (100%) rename {_posts => src/_posts}/2020-05-30-denver-protests.md (100%) rename {_posts => src/_posts}/2020-07-07-viz-3.md (100%) rename {_posts => src/_posts}/2020-11-16-component-oriented-programming.md (100%) rename {_posts => src/_posts}/2021-01-01-new-year-new-resolution.md (100%) rename {_posts => src/_posts}/2021-01-09-ginger.md (100%) rename {_posts => src/_posts}/2021-01-14-the-web.md (100%) rename {assets => src/assets}/component-oriented-design/v1/main.go (100%) rename {assets => src/assets}/component-oriented-design/v1/main.md (100%) rename {assets => src/assets}/component-oriented-design/v1/main_test.go (100%) rename {assets => src/assets}/component-oriented-design/v1/main_test.md (100%) rename {assets => src/assets}/component-oriented-design/v2/main.go (100%) rename {assets => src/assets}/component-oriented-design/v2/main.md (100%) rename {assets => src/assets}/component-oriented-design/v3/main.go (100%) rename {assets => src/assets}/component-oriented-design/v3/main.md (100%) rename {assets => src/assets}/friendly.css (100%) rename {assets => src/assets}/main.css (100%) rename {assets => src/assets}/main.js (100%) rename {assets => src/assets}/normalize.css (100%) rename {assets => src/assets}/qrcode.min.js (100%) rename {assets => src/assets}/skeleton.css (100%) rename {assets => src/assets}/trading-in-the-rain/CW.js (100%) rename {assets => src/assets}/trading-in-the-rain/Distributor.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/LICENSE.txt (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/inc/shim/Base64.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/js/midi/gm.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/js/midi/loader.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/js/midi/player.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js (100%) rename {assets => src/assets}/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js (100%) rename {assets => src/assets}/trading-in-the-rain/MusicBox.js (100%) rename {assets => src/assets}/trading-in-the-rain/RainCanvas.js (100%) rename {assets => src/assets}/trading-in-the-rain/SeriesComposer.js (100%) rename {assets => src/assets}/trading-in-the-rain/key.gpg (100%) rename {assets => src/assets}/trading-in-the-rain/main.js (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 (100%) rename {assets => src/assets}/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js (100%) rename {assets => src/assets}/viz/1/cljs/core.cljs (100%) rename {assets => src/assets}/viz/1/cljs/core.js (100%) rename {assets => src/assets}/viz/1/cljs/core.js.map (100%) rename {assets => src/assets}/viz/1/cljs_deps.js (100%) rename {assets => src/assets}/viz/1/clojure/set.cljs (100%) rename {assets => src/assets}/viz/1/clojure/set.cljs.cache.edn (100%) rename {assets => src/assets}/viz/1/clojure/set.js (100%) rename {assets => src/assets}/viz/1/clojure/set.js.map (100%) rename {assets => src/assets}/viz/1/clojure/string.cljs (100%) rename {assets => src/assets}/viz/1/clojure/string.cljs.cache.edn (100%) rename {assets => src/assets}/viz/1/clojure/string.js (100%) rename {assets => src/assets}/viz/1/clojure/string.js.map (100%) rename {assets => src/assets}/viz/1/goog/array/array.js (100%) rename {assets => src/assets}/viz/1/goog/asserts/asserts.js (100%) rename {assets => src/assets}/viz/1/goog/base.js (100%) rename {assets => src/assets}/viz/1/goog/debug/entrypointregistry.js (100%) rename {assets => src/assets}/viz/1/goog/debug/error.js (100%) rename {assets => src/assets}/viz/1/goog/deps.js (100%) rename {assets => src/assets}/viz/1/goog/disposable/disposable.js (100%) rename {assets => src/assets}/viz/1/goog/disposable/idisposable.js (100%) rename {assets => src/assets}/viz/1/goog/dom/browserfeature.js (100%) rename {assets => src/assets}/viz/1/goog/dom/dom.js (100%) rename {assets => src/assets}/viz/1/goog/dom/nodetype.js (100%) rename {assets => src/assets}/viz/1/goog/dom/safe.js (100%) rename {assets => src/assets}/viz/1/goog/dom/tagname.js (100%) rename {assets => src/assets}/viz/1/goog/dom/tags.js (100%) rename {assets => src/assets}/viz/1/goog/events/browserevent.js (100%) rename {assets => src/assets}/viz/1/goog/events/browserfeature.js (100%) rename {assets => src/assets}/viz/1/goog/events/event.js (100%) rename {assets => src/assets}/viz/1/goog/events/eventid.js (100%) rename {assets => src/assets}/viz/1/goog/events/events.js (100%) rename {assets => src/assets}/viz/1/goog/events/eventtype.js (100%) rename {assets => src/assets}/viz/1/goog/events/listenable.js (100%) rename {assets => src/assets}/viz/1/goog/events/listener.js (100%) rename {assets => src/assets}/viz/1/goog/events/listenermap.js (100%) rename {assets => src/assets}/viz/1/goog/fs/url.js (100%) rename {assets => src/assets}/viz/1/goog/html/safehtml.js (100%) rename {assets => src/assets}/viz/1/goog/html/safescript.js (100%) rename {assets => src/assets}/viz/1/goog/html/safestyle.js (100%) rename {assets => src/assets}/viz/1/goog/html/safestylesheet.js (100%) rename {assets => src/assets}/viz/1/goog/html/safeurl.js (100%) rename {assets => src/assets}/viz/1/goog/html/trustedresourceurl.js (100%) rename {assets => src/assets}/viz/1/goog/html/uncheckedconversions.js (100%) rename {assets => src/assets}/viz/1/goog/i18n/bidi.js (100%) rename {assets => src/assets}/viz/1/goog/labs/useragent/browser.js (100%) rename {assets => src/assets}/viz/1/goog/labs/useragent/engine.js (100%) rename {assets => src/assets}/viz/1/goog/labs/useragent/platform.js (100%) rename {assets => src/assets}/viz/1/goog/labs/useragent/util.js (100%) rename {assets => src/assets}/viz/1/goog/math/coordinate.js (100%) rename {assets => src/assets}/viz/1/goog/math/integer.js (100%) rename {assets => src/assets}/viz/1/goog/math/long.js (100%) rename {assets => src/assets}/viz/1/goog/math/math.js (100%) rename {assets => src/assets}/viz/1/goog/math/size.js (100%) rename {assets => src/assets}/viz/1/goog/object/object.js (100%) rename {assets => src/assets}/viz/1/goog/reflect/reflect.js (100%) rename {assets => src/assets}/viz/1/goog/string/const.js (100%) rename {assets => src/assets}/viz/1/goog/string/string.js (100%) rename {assets => src/assets}/viz/1/goog/string/stringbuffer.js (100%) rename {assets => src/assets}/viz/1/goog/string/stringformat.js (100%) rename {assets => src/assets}/viz/1/goog/string/typedstring.js (100%) rename {assets => src/assets}/viz/1/goog/useragent/useragent.js (100%) rename {assets => src/assets}/viz/1/processing.js (100%) rename {assets => src/assets}/viz/1/quil/core.cljc (100%) rename {assets => src/assets}/viz/1/quil/core.cljc.cache.edn (100%) rename {assets => src/assets}/viz/1/quil/core.js (100%) rename {assets => src/assets}/viz/1/quil/core.js.map (100%) rename {assets => src/assets}/viz/1/quil/middleware.cljc (100%) rename {assets => src/assets}/viz/1/quil/middleware.cljc.cache.edn (100%) rename {assets => src/assets}/viz/1/quil/middleware.js (100%) rename {assets => src/assets}/viz/1/quil/middleware.js.map (100%) rename {assets => src/assets}/viz/1/quil/middlewares/deprecated_options.cljc (100%) rename {assets => src/assets}/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn (100%) rename {assets => src/assets}/viz/1/quil/middlewares/deprecated_options.js (100%) rename {assets => src/assets}/viz/1/quil/middlewares/deprecated_options.js.map (100%) rename {assets => src/assets}/viz/1/quil/middlewares/fun_mode.cljc (100%) rename {assets => src/assets}/viz/1/quil/middlewares/fun_mode.cljc.cache.edn (100%) rename {assets => src/assets}/viz/1/quil/middlewares/fun_mode.js (100%) rename {assets => src/assets}/viz/1/quil/middlewares/fun_mode.js.map (100%) rename {assets => src/assets}/viz/1/quil/middlewares/navigation_2d.cljc (100%) rename {assets => src/assets}/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn (100%) rename {assets => src/assets}/viz/1/quil/middlewares/navigation_2d.js (100%) rename {assets => src/assets}/viz/1/quil/middlewares/navigation_2d.js.map (100%) rename {assets => src/assets}/viz/1/quil/middlewares/navigation_3d.cljc (100%) rename {assets => src/assets}/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn (100%) rename {assets => src/assets}/viz/1/quil/middlewares/navigation_3d.js (100%) rename {assets => src/assets}/viz/1/quil/middlewares/navigation_3d.js.map (100%) rename {assets => src/assets}/viz/1/quil/sketch.cljs (100%) rename {assets => src/assets}/viz/1/quil/sketch.cljs.cache.edn (100%) rename {assets => src/assets}/viz/1/quil/sketch.js (100%) rename {assets => src/assets}/viz/1/quil/sketch.js.map (100%) rename {assets => src/assets}/viz/1/quil/util.cljc (100%) rename {assets => src/assets}/viz/1/quil/util.cljc.cache.edn (100%) rename {assets => src/assets}/viz/1/quil/util.js (100%) rename {assets => src/assets}/viz/1/quil/util.js.map (100%) rename {assets => src/assets}/viz/1/viz/core.cljs (100%) rename {assets => src/assets}/viz/1/viz/core.cljs.cache.edn (100%) rename {assets => src/assets}/viz/1/viz/core.js (100%) rename {assets => src/assets}/viz/1/viz/core.js.map (100%) rename {assets => src/assets}/viz/1/viz/forest.cljs (100%) rename {assets => src/assets}/viz/1/viz/forest.cljs.cache.edn (100%) rename {assets => src/assets}/viz/1/viz/forest.js (100%) rename {assets => src/assets}/viz/1/viz/forest.js.map (100%) rename {assets => src/assets}/viz/1/viz/ghost.cljs (100%) rename {assets => src/assets}/viz/1/viz/ghost.cljs.cache.edn (100%) rename {assets => src/assets}/viz/1/viz/ghost.js (100%) rename {assets => src/assets}/viz/1/viz/ghost.js.map (100%) rename {assets => src/assets}/viz/1/viz/grid.cljs (100%) rename {assets => src/assets}/viz/1/viz/grid.cljs.cache.edn (100%) rename {assets => src/assets}/viz/1/viz/grid.js (100%) rename {assets => src/assets}/viz/1/viz/grid.js.map (100%) rename {assets => src/assets}/viz/2/cljs/core.cljs (100%) rename {assets => src/assets}/viz/2/cljs/core.js (100%) rename {assets => src/assets}/viz/2/cljs/core.js.map (100%) rename {assets => src/assets}/viz/2/cljs/user/debug9D984AE.cljs.cache.json (100%) rename {assets => src/assets}/viz/2/cljs/user/debug9D984AE.js (100%) rename {assets => src/assets}/viz/2/cljs/user/debug9D984AE.js.map (100%) rename {assets => src/assets}/viz/2/cljs_deps.js (100%) rename {assets => src/assets}/viz/2/cljsc_opts.edn (100%) rename {assets => src/assets}/viz/2/clojure/set.cljs (100%) rename {assets => src/assets}/viz/2/clojure/set.cljs.cache.json (100%) rename {assets => src/assets}/viz/2/clojure/set.js (100%) rename {assets => src/assets}/viz/2/clojure/set.js.map (100%) rename {assets => src/assets}/viz/2/clojure/string.cljs (100%) rename {assets => src/assets}/viz/2/clojure/string.cljs.cache.json (100%) rename {assets => src/assets}/viz/2/clojure/string.js (100%) rename {assets => src/assets}/viz/2/clojure/string.js.map (100%) rename {assets => src/assets}/viz/2/goog/array/array.js (100%) rename {assets => src/assets}/viz/2/goog/asserts/asserts.js (100%) rename {assets => src/assets}/viz/2/goog/base.js (100%) rename {assets => src/assets}/viz/2/goog/debug/entrypointregistry.js (100%) rename {assets => src/assets}/viz/2/goog/debug/error.js (100%) rename {assets => src/assets}/viz/2/goog/deps.js (100%) rename {assets => src/assets}/viz/2/goog/disposable/disposable.js (100%) rename {assets => src/assets}/viz/2/goog/disposable/idisposable.js (100%) rename {assets => src/assets}/viz/2/goog/dom/asserts.js (100%) rename {assets => src/assets}/viz/2/goog/dom/browserfeature.js (100%) rename {assets => src/assets}/viz/2/goog/dom/dom.js (100%) rename {assets => src/assets}/viz/2/goog/dom/htmlelement.js (100%) rename {assets => src/assets}/viz/2/goog/dom/nodetype.js (100%) rename {assets => src/assets}/viz/2/goog/dom/safe.js (100%) rename {assets => src/assets}/viz/2/goog/dom/tagname.js (100%) rename {assets => src/assets}/viz/2/goog/dom/tags.js (100%) rename {assets => src/assets}/viz/2/goog/events/browserevent.js (100%) rename {assets => src/assets}/viz/2/goog/events/browserfeature.js (100%) rename {assets => src/assets}/viz/2/goog/events/event.js (100%) rename {assets => src/assets}/viz/2/goog/events/eventid.js (100%) rename {assets => src/assets}/viz/2/goog/events/events.js (100%) rename {assets => src/assets}/viz/2/goog/events/eventtype.js (100%) rename {assets => src/assets}/viz/2/goog/events/listenable.js (100%) rename {assets => src/assets}/viz/2/goog/events/listener.js (100%) rename {assets => src/assets}/viz/2/goog/events/listenermap.js (100%) rename {assets => src/assets}/viz/2/goog/fs/url.js (100%) rename {assets => src/assets}/viz/2/goog/functions/functions.js (100%) rename {assets => src/assets}/viz/2/goog/html/safehtml.js (100%) rename {assets => src/assets}/viz/2/goog/html/safescript.js (100%) rename {assets => src/assets}/viz/2/goog/html/safestyle.js (100%) rename {assets => src/assets}/viz/2/goog/html/safestylesheet.js (100%) rename {assets => src/assets}/viz/2/goog/html/safeurl.js (100%) rename {assets => src/assets}/viz/2/goog/html/trustedresourceurl.js (100%) rename {assets => src/assets}/viz/2/goog/html/uncheckedconversions.js (100%) rename {assets => src/assets}/viz/2/goog/i18n/bidi.js (100%) rename {assets => src/assets}/viz/2/goog/iter/iter.js (100%) rename {assets => src/assets}/viz/2/goog/labs/useragent/browser.js (100%) rename {assets => src/assets}/viz/2/goog/labs/useragent/engine.js (100%) rename {assets => src/assets}/viz/2/goog/labs/useragent/platform.js (100%) rename {assets => src/assets}/viz/2/goog/labs/useragent/util.js (100%) rename {assets => src/assets}/viz/2/goog/math/coordinate.js (100%) rename {assets => src/assets}/viz/2/goog/math/integer.js (100%) rename {assets => src/assets}/viz/2/goog/math/long.js (100%) rename {assets => src/assets}/viz/2/goog/math/math.js (100%) rename {assets => src/assets}/viz/2/goog/math/size.js (100%) rename {assets => src/assets}/viz/2/goog/object/object.js (100%) rename {assets => src/assets}/viz/2/goog/reflect/reflect.js (100%) rename {assets => src/assets}/viz/2/goog/string/const.js (100%) rename {assets => src/assets}/viz/2/goog/string/string.js (100%) rename {assets => src/assets}/viz/2/goog/string/stringbuffer.js (100%) rename {assets => src/assets}/viz/2/goog/string/stringformat.js (100%) rename {assets => src/assets}/viz/2/goog/string/typedstring.js (100%) rename {assets => src/assets}/viz/2/goog/structs/map.js (100%) rename {assets => src/assets}/viz/2/goog/structs/structs.js (100%) rename {assets => src/assets}/viz/2/goog/uri/uri.js (100%) rename {assets => src/assets}/viz/2/goog/uri/utils.js (100%) rename {assets => src/assets}/viz/2/goog/useragent/useragent.js (100%) rename {assets => src/assets}/viz/2/process/env.cljs (100%) rename {assets => src/assets}/viz/2/process/env.cljs.cache.json (100%) rename {assets => src/assets}/viz/2/process/env.js (100%) rename {assets => src/assets}/viz/2/process/env.js.map (100%) rename {assets => src/assets}/viz/2/processing.js (100%) rename {assets => src/assets}/viz/2/quil/core.cljc (100%) rename {assets => src/assets}/viz/2/quil/core.cljc.cache.json (100%) rename {assets => src/assets}/viz/2/quil/core.js (100%) rename {assets => src/assets}/viz/2/quil/core.js.map (100%) rename {assets => src/assets}/viz/2/quil/middleware.cljc (100%) rename {assets => src/assets}/viz/2/quil/middleware.cljc.cache.json (100%) rename {assets => src/assets}/viz/2/quil/middleware.js (100%) rename {assets => src/assets}/viz/2/quil/middleware.js.map (100%) rename {assets => src/assets}/viz/2/quil/middlewares/deprecated_options.cljc (100%) rename {assets => src/assets}/viz/2/quil/middlewares/deprecated_options.cljc.cache.json (100%) rename {assets => src/assets}/viz/2/quil/middlewares/deprecated_options.js (100%) rename {assets => src/assets}/viz/2/quil/middlewares/deprecated_options.js.map (100%) rename {assets => src/assets}/viz/2/quil/middlewares/fun_mode.cljc (100%) rename {assets => src/assets}/viz/2/quil/middlewares/fun_mode.cljc.cache.json (100%) rename {assets => src/assets}/viz/2/quil/middlewares/fun_mode.js (100%) rename {assets => src/assets}/viz/2/quil/middlewares/fun_mode.js.map (100%) rename {assets => src/assets}/viz/2/quil/middlewares/navigation_2d.cljc (100%) rename {assets => src/assets}/viz/2/quil/middlewares/navigation_2d.cljc.cache.json (100%) rename {assets => src/assets}/viz/2/quil/middlewares/navigation_2d.js (100%) rename {assets => src/assets}/viz/2/quil/middlewares/navigation_2d.js.map (100%) rename {assets => src/assets}/viz/2/quil/middlewares/navigation_3d.cljc (100%) rename {assets => src/assets}/viz/2/quil/middlewares/navigation_3d.cljc.cache.json (100%) rename {assets => src/assets}/viz/2/quil/middlewares/navigation_3d.js (100%) rename {assets => src/assets}/viz/2/quil/middlewares/navigation_3d.js.map (100%) rename {assets => src/assets}/viz/2/quil/sketch.cljs (100%) rename {assets => src/assets}/viz/2/quil/sketch.cljs.cache.json (100%) rename {assets => src/assets}/viz/2/quil/sketch.js (100%) rename {assets => src/assets}/viz/2/quil/sketch.js.map (100%) rename {assets => src/assets}/viz/2/quil/util.cljc (100%) rename {assets => src/assets}/viz/2/quil/util.cljc.cache.json (100%) rename {assets => src/assets}/viz/2/quil/util.js (100%) rename {assets => src/assets}/viz/2/quil/util.js.map (100%) rename {assets => src/assets}/viz/2/viz/core.cljs (100%) rename {assets => src/assets}/viz/2/viz/core.cljs.cache.json (100%) rename {assets => src/assets}/viz/2/viz/core.js (100%) rename {assets => src/assets}/viz/2/viz/core.js.map (100%) rename {assets => src/assets}/viz/2/viz/debug.cljs (100%) rename {assets => src/assets}/viz/2/viz/debug.cljs.cache.json (100%) rename {assets => src/assets}/viz/2/viz/debug.js (100%) rename {assets => src/assets}/viz/2/viz/debug.js.map (100%) rename {assets => src/assets}/viz/2/viz/dial.cljs (100%) rename {assets => src/assets}/viz/2/viz/dial.cljs.cache.json (100%) rename {assets => src/assets}/viz/2/viz/dial.js (100%) rename {assets => src/assets}/viz/2/viz/dial.js.map (100%) rename {assets => src/assets}/viz/2/viz/forest.cljs (100%) rename {assets => src/assets}/viz/2/viz/forest.cljs.cache.json (100%) rename {assets => src/assets}/viz/2/viz/forest.js (100%) rename {assets => src/assets}/viz/2/viz/forest.js.map (100%) rename {assets => src/assets}/viz/2/viz/ghost.cljs (100%) rename {assets => src/assets}/viz/2/viz/ghost.cljs.cache.json (100%) rename {assets => src/assets}/viz/2/viz/ghost.js (100%) rename {assets => src/assets}/viz/2/viz/ghost.js.map (100%) rename {assets => src/assets}/viz/2/viz/grid.cljs (100%) rename {assets => src/assets}/viz/2/viz/grid.cljs.cache.json (100%) rename {assets => src/assets}/viz/2/viz/grid.js (100%) rename {assets => src/assets}/viz/2/viz/grid.js.map (100%) rename {assets => src/assets}/wtfpl.txt (100%) rename follow.md => src/follow.md (100%) rename {img => src/img}/diamond-square/dsalg.png (100%) rename {img => src/img}/diamond-square/terrain.png (100%) rename {img => src/img}/happy-tree/happy-tree-atmp1-small.png (100%) rename {img => src/img}/happy-tree/happy-tree-atmp1.png (100%) rename {img => src/img}/happy-tree/happy-tree-atmp2-small.png (100%) rename {img => src/img}/happy-tree/happy-tree-atmp2.png (100%) rename {img => src/img}/happy-tree/happy-tree-atmp3-pow3-small.png (100%) rename {img => src/img}/happy-tree/happy-tree-atmp3-pow3.png (100%) rename {img => src/img}/happy-tree/happy-tree-atmp3-pow4-small.png (100%) rename {img => src/img}/happy-tree/happy-tree-atmp3-pow4.png (100%) rename {img => src/img}/happy-tree/happy-tree-atmp3-pow5-small.png (100%) rename {img => src/img}/happy-tree/happy-tree-atmp3-pow5.png (100%) rename {img => src/img}/happy-tree/happy-tree-atmp3-pow6-small.png (100%) rename {img => src/img}/happy-tree/happy-tree-atmp3-pow6.png (100%) rename {img => src/img}/happy-tree/partial.png (100%) rename {img => src/img}/program-structure/500px/diag1.jpg (100%) rename {img => src/img}/program-structure/500px/diag2.jpg (100%) rename {img => src/img}/program-structure/500px/diag3.jpg (100%) rename {img => src/img}/program-structure/diag1.jpg (100%) rename {img => src/img}/program-structure/diag2.jpg (100%) rename {img => src/img}/program-structure/diag3.jpg (100%) rename index.md => src/index.md (100%) diff --git a/.gitignore b/.gitignore index 97f5137..d14864e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ .bundle .sass-cache -Gemfile.lock -_site *.gem .jekyll-metadata +result +_site diff --git a/CNAME b/CNAME deleted file mode 100644 index da90914..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -blog.mediocregopher.com \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt index 0e7ecd8..5a8e332 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,21 +1,14 @@ -The MIT License (MIT) + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 -Copyright (c) 2016-present Parker Moore and the minima contributors + Copyright (C) 2004 Sam Hocevar -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/Makefile b/Makefile index 811820c..d6d6419 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,11 @@ serve: - docker run -it --rm \ - -v $$(pwd):/srv/jekyll \ - -p 4000:4000 \ - jekyll/jekyll \ - jekyll serve -w -I -D -H 0.0.0.0 + nix-shell -A serve update: - docker run -it --rm \ - -v $$(pwd):/srv/jekyll \ - jekyll/jekyll \ - bundle update + nix-shell -p bundler --run 'bundler update' + +lock: + nix-shell -p bundler -p bundix --run 'bundler lock; bundler package --no-install --path vendor; bundix; rm -rf .bundle vendor' + +build: + nix-build -A build diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..5fdae15 --- /dev/null +++ b/build.sh @@ -0,0 +1,5 @@ +source $stdenv/setup +set -e + +mkdir -p "$out" +$jekyll_env/bin/jekyll build -s "$src" -d "$out" diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..95bfc26 --- /dev/null +++ b/default.nix @@ -0,0 +1,41 @@ +{ + pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/cd63096d6d887d689543a0b97743d28995bc9bc3.tar.gz") {}, + system ? builtins.currentSystem, +}: + + let + jekyll_env = pkgs.bundlerEnv { + name = "jekyll_env"; + ruby = pkgs.ruby; + gemdir = ./.; + }; + in + { + build = derivation { + system = system; + name = "mediocre-blog"; + builder = "${pkgs.bash}/bin/bash"; + args = [ ./build.sh ]; + + src = ./src; + stdenv = pkgs.stdenv; + inherit jekyll_env; + }; + + serve = pkgs.stdenv.mkDerivation rec { + name = "jekyll_env"; + + # glibcLocales is required so to fill in LC_ALL and other locale + # related environment vars. Without those jekyll's scss compiler + # fails. + # + # TODO probably get rid of the scss compiler. + buildInputs = [ jekyll_env pkgs.glibcLocales ]; + + shellHook = '' + exec ${jekyll_env}/bin/jekyll serve -s ./src -d ./_site -w -I -D -H 0.0.0.0 + ''; + }; + } + + diff --git a/gemset.nix b/gemset.nix new file mode 100644 index 0000000..98bd39c --- /dev/null +++ b/gemset.nix @@ -0,0 +1,965 @@ +{ + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1axidc4mikgi4yxs0ynw2c54jyrs5lxprxmzv6m3aayi9rg6rk5j"; + type = "gem"; + }; + version = "6.0.3.4"; + }; + addressable = { + dependencies = ["public_suffix"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; + type = "gem"; + }; + version = "2.7.0"; + }; + coffee-script = { + dependencies = ["coffee-script-source" "execjs"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rc7scyk7mnpfxqv5yy4y5q1hx3i7q3ahplcp4bq2g5r24g2izl2"; + type = "gem"; + }; + version = "2.4.1"; + }; + coffee-script-source = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xfshhlz808f8639wc88wgls1mww35sid8rd55vn0a4yqajf4vh9"; + type = "gem"; + }; + version = "1.11.1"; + }; + colorator = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72"; + type = "gem"; + }; + version = "1.1.0"; + }; + commonmarker = { + dependencies = ["ruby-enum"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pmjm87p0hxnknp33cxyvkgbr1swfp9gcznssmalm9z8kwyancb9"; + type = "gem"; + }; + version = "0.17.13"; + }; + concurrent-ruby = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz"; + type = "gem"; + }; + version = "1.1.7"; + }; + dnsruby = { + dependencies = ["simpleidn"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0q7k7wn8flcdr0kzgknq40cjddd0zn3g3n4gwwwdz0kq30pinzxx"; + type = "gem"; + }; + version = "1.61.5"; + }; + em-websocket = { + dependencies = ["eventmachine" "http_parser.rb"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mg1mx735a0k1l8y14ps2mxdwhi5r01ikydf34b0sp60v66nvbkb"; + type = "gem"; + }; + version = "0.5.2"; + }; + ethon = { + dependencies = ["ffi"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9"; + type = "gem"; + }; + version = "0.12.0"; + }; + eventmachine = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r"; + type = "gem"; + }; + version = "1.2.7"; + }; + execjs = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1"; + type = "gem"; + }; + version = "2.7.0"; + }; + faraday = { + dependencies = ["multipart-post" "ruby2_keywords"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16dapwi5pivrl25r4lkr1mxjrzkznj4wlcb08fzkmxnj4g5c6y35"; + type = "gem"; + }; + version = "1.1.0"; + }; + ffi = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af"; + type = "gem"; + }; + version = "1.13.1"; + }; + forwardable-extended = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v"; + type = "gem"; + }; + version = "2.6.0"; + }; + gemoji = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vgklpmhdz98xayln5hhqv4ffdyrglzwdixkn5gsk9rj94pkymc0"; + type = "gem"; + }; + version = "3.0.1"; + }; + github-pages = { + dependencies = ["github-pages-health-check" "jekyll" "jekyll-avatar" "jekyll-coffeescript" "jekyll-commonmark-ghpages" "jekyll-default-layout" "jekyll-feed" "jekyll-gist" "jekyll-github-metadata" "jekyll-mentions" "jekyll-optional-front-matter" "jekyll-paginate" "jekyll-readme-index" "jekyll-redirect-from" "jekyll-relative-links" "jekyll-remote-theme" "jekyll-sass-converter" "jekyll-seo-tag" "jekyll-sitemap" "jekyll-swiss" "jekyll-theme-architect" "jekyll-theme-cayman" "jekyll-theme-dinky" "jekyll-theme-hacker" "jekyll-theme-leap-day" "jekyll-theme-merlot" "jekyll-theme-midnight" "jekyll-theme-minimal" "jekyll-theme-modernist" "jekyll-theme-primer" "jekyll-theme-slate" "jekyll-theme-tactile" "jekyll-theme-time-machine" "jekyll-titles-from-headings" "jemoji" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "minima" "nokogiri" "rouge" "terminal-table"]; + groups = ["jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08jdjxs0x3x54vy5c98nplpa23c290z0pai3gbx3h3m197wqbsra"; + type = "gem"; + }; + version = "209"; + }; + github-pages-health-check = { + dependencies = ["addressable" "dnsruby" "octokit" "public_suffix" "typhoeus"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07k88nxkfqa44vklm320p3jfxkvzmn1cfnydajlzdhgc21i70ybh"; + type = "gem"; + }; + version = "1.16.1"; + }; + html-pipeline = { + dependencies = ["activesupport" "nokogiri"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "080sn9z1a64gv04p318jz10y6lv6qd3avip08rrcmq9k4ihai0f1"; + type = "gem"; + }; + version = "2.14.0"; + }; + "http_parser.rb" = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"; + type = "gem"; + }; + version = "0.6.0"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3"; + type = "gem"; + }; + version = "0.9.5"; + }; + jekyll = { + dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ci1v1mpad36191vzbm1050dxccwv6ky4yhdyvskmqxa6cf6v21j"; + type = "gem"; + }; + version = "3.9.0"; + }; + jekyll-avatar = { + dependencies = ["jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03bys2pl60vq92skfhlfqr2j68zhfjc86jffpg32f94wzjk8n0wk"; + type = "gem"; + }; + version = "0.7.0"; + }; + jekyll-coffeescript = { + dependencies = ["coffee-script" "coffee-script-source"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06qf4j9f6ysjb4bq6gsdaiz2ksmhc5yb484v458ra3s6ybccqvvy"; + type = "gem"; + }; + version = "1.1.1"; + }; + jekyll-commonmark = { + dependencies = ["commonmarker" "jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15kr36k56l4fh8yp7qswn9m91v7sa5kr2vq9w40li16z4n4akk57"; + type = "gem"; + }; + version = "1.3.1"; + }; + jekyll-commonmark-ghpages = { + dependencies = ["commonmarker" "jekyll-commonmark" "rouge"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bhpk7iiz2p0hha650zxqq7rlbfj92m9qxxxasarrswszl4pcvp7"; + type = "gem"; + }; + version = "0.1.6"; + }; + jekyll-default-layout = { + dependencies = ["jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "009zpd0mkmhkfp3s8yvh5mriqhil0ihv3gi2vw63flr3jz48y4kx"; + type = "gem"; + }; + version = "0.1.4"; + }; + jekyll-feed = { + dependencies = ["jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zxqkrnix0xiw98531h5ga6h69jhzlx2jh9qhvcl67p8nq3sgza9"; + type = "gem"; + }; + version = "0.15.1"; + }; + jekyll-gist = { + dependencies = ["octokit"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03wz9j6yq3552nzf4g71qrdm9pfdgbm68abml9sjjgiaan1n8ns9"; + type = "gem"; + }; + version = "1.5.0"; + }; + jekyll-github-metadata = { + dependencies = ["jekyll" "octokit"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r4m7r4qyd3pqkp5xlyp3zzy47i18kjgwq995nrspysgkmc4qmw1"; + type = "gem"; + }; + version = "2.13.0"; + }; + jekyll-mentions = { + dependencies = ["html-pipeline" "jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n8y67plydfmay3jn865igvgb3h6s2crk8kq7ydk3wmn9h103s1r"; + type = "gem"; + }; + version = "1.6.0"; + }; + jekyll-optional-front-matter = { + dependencies = ["jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06vnxcmgkxm5nvrpv89qq0afjlxmadv63nh4ryglcwhlf4fhdp7c"; + type = "gem"; + }; + version = "0.3.2"; + }; + jekyll-paginate = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8"; + type = "gem"; + }; + version = "1.1.0"; + }; + jekyll-readme-index = { + dependencies = ["jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0chybr1zgnrmc7zf6psszcqnlrcy2jar8h77kci51lxj8vgc8k6p"; + type = "gem"; + }; + version = "0.3.0"; + }; + jekyll-redirect-from = { + dependencies = ["jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nz6kd6qsa160lmjmls4zgx7fwcpp8ac07mpzy80z6zgd7jwldb6"; + type = "gem"; + }; + version = "0.16.0"; + }; + jekyll-relative-links = { + dependencies = ["jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vfx90ajxyj24lz406k3pqknlbzy8nqs7wpz0in4ps9rggsh24yi"; + type = "gem"; + }; + version = "0.6.1"; + }; + jekyll-remote-theme = { + dependencies = ["addressable" "jekyll" "jekyll-sass-converter" "rubyzip"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zgvdpy9gv87wkwkh11zf6b26izjjski0d2lzhjbrixdgnqb3l6h"; + type = "gem"; + }; + version = "0.4.2"; + }; + jekyll-sass-converter = { + dependencies = ["sass"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "008ikh5fk0n6ri54mylcl8jn0mq8p2nfyfqif2q3pp0lwilkcxsk"; + type = "gem"; + }; + version = "1.5.2"; + }; + jekyll-seo-tag = { + dependencies = ["jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p9fl2r4ni10lbx143zp41caldjs4hg27az5wg42sbwzb7s6z66m"; + type = "gem"; + }; + version = "2.6.1"; + }; + jekyll-sitemap = { + dependencies = ["jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0622rwsn5i0m5xcyzdn86l68wgydqwji03lqixdfm1f1xdfqrq0d"; + type = "gem"; + }; + version = "1.4.0"; + }; + jekyll-swiss = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18w893f2snpbvgl80jnmq3xxsl5yi5a5qm11iy3gx0d8viasi6f2"; + type = "gem"; + }; + version = "1.0.0"; + }; + jekyll-theme-architect = { + dependencies = ["jekyll" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v4y0lqg1x7b94zw922qp6f3fixni9l4b9d1yavr1nswf8jmpcya"; + type = "gem"; + }; + version = "0.1.1"; + }; + jekyll-theme-cayman = { + dependencies = ["jekyll" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wdbvmnabzlqpq8hj7k5h9bwv96k05rx8z45f1mkqrbmy0x9gxmf"; + type = "gem"; + }; + version = "0.1.1"; + }; + jekyll-theme-dinky = { + dependencies = ["jekyll" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dxs6c13fas8wbcigvs8d70p7601g627i3mpchcpapwj8cfd631v"; + type = "gem"; + }; + version = "0.1.1"; + }; + jekyll-theme-hacker = { + dependencies = ["jekyll" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x0qrypnpxg92wjf8r57xp306057liigz2a6p511m940p5qlc0x6"; + type = "gem"; + }; + version = "0.1.2"; + }; + jekyll-theme-leap-day = { + dependencies = ["jekyll" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pw1qbrq2f8gyzrmwxdlsqhkzpk5cdv594aia7f6wwdxm6sjvhp2"; + type = "gem"; + }; + version = "0.1.1"; + }; + jekyll-theme-merlot = { + dependencies = ["jekyll" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1iiaqxyfgrrsgrsbvmzfwz8m4jwx73cxvy9zw81ir5pxpbhf0rwl"; + type = "gem"; + }; + version = "0.1.1"; + }; + jekyll-theme-midnight = { + dependencies = ["jekyll" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jbna13cjfqd3i1m4vp8izznkxn1w1ih54zdyz004g32fwpcqbpp"; + type = "gem"; + }; + version = "0.1.1"; + }; + jekyll-theme-minimal = { + dependencies = ["jekyll" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "078rlgpc902f5kslxj2zc85y53ywngbx81zhwvz1p0nbil4f4k1s"; + type = "gem"; + }; + version = "0.1.1"; + }; + jekyll-theme-modernist = { + dependencies = ["jekyll" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a7gg944c1d730ss0fx9qvxwfabwsyd3xgyfwr18cx22zx9mbbvm"; + type = "gem"; + }; + version = "0.1.1"; + }; + jekyll-theme-primer = { + dependencies = ["jekyll" "jekyll-github-metadata" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c7p3393mr3znjpvz3plbrws9jdwcz3872v9f027p7hqffhhmh9k"; + type = "gem"; + }; + version = "0.5.4"; + }; + jekyll-theme-slate = { + dependencies = ["jekyll" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "026p01a5jr42gar6d1kwrr39jd40h91ilvkn8969hydv7yd0ld67"; + type = "gem"; + }; + version = "0.1.1"; + }; + jekyll-theme-tactile = { + dependencies = ["jekyll" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1904cbjrv7mqkrzhwlip18krr6jk8fkzrxkyq139b20rbkp1qx5y"; + type = "gem"; + }; + version = "0.1.1"; + }; + jekyll-theme-time-machine = { + dependencies = ["jekyll" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "010gzncy2vav0rdga78x4ls0dda400lxy186knsl72yk8pa807n0"; + type = "gem"; + }; + version = "0.1.1"; + }; + jekyll-titles-from-headings = { + dependencies = ["jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10c4sa3gwyidmkcs8h6223lmqpw3h09mn7w8hxfppsk1wda6fdkp"; + type = "gem"; + }; + version = "0.5.3"; + }; + jekyll-watch = { + dependencies = ["listen"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qd7hy1kl87fl7l0frw5qbn22x7ayfzlv9a5ca1m59g0ym1ysi5w"; + type = "gem"; + }; + version = "2.2.1"; + }; + jemoji = { + dependencies = ["gemoji" "html-pipeline" "jekyll"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09sxbnrqz5vf6rxmh6lzism31gz2g3hw86ymg37r1ccknclv3cp9"; + type = "gem"; + }; + version = "0.12.0"; + }; + kramdown = { + dependencies = ["rexml"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7"; + type = "gem"; + }; + version = "2.3.0"; + }; + kramdown-parser-gfm = { + dependencies = ["kramdown"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv"; + type = "gem"; + }; + version = "1.1.0"; + }; + liquid = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zhg5ha8zy8zw9qr3fl4wgk4r5940n4128xm2pn4shpbzdbsj5by"; + type = "gem"; + }; + version = "4.0.3"; + }; + listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0028p1fss6pvw4mlpjqdmxfzsm8ww79irsadbibrr7f23qfn8ykr"; + type = "gem"; + }; + version = "3.3.1"; + }; + mercenary = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a"; + type = "gem"; + }; + version = "0.3.6"; + }; + mini_portile2 = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"; + type = "gem"; + }; + version = "2.4.0"; + }; + minima = { + dependencies = ["jekyll" "jekyll-feed" "jekyll-seo-tag"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gk7jmriiswda1ykjzpsw9cpiya4m9n0yrh0h6xnrc8zcfy543jj"; + type = "gem"; + }; + version = "2.5.1"; + }; + minitest = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v"; + type = "gem"; + }; + version = "5.14.2"; + }; + multipart-post = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj"; + type = "gem"; + }; + version = "2.1.1"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2"; + type = "gem"; + }; + version = "1.10.10"; + }; + octokit = { + dependencies = ["faraday" "sawyer"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dz8na8fk445yqrwpkl31fimnap7p4xf9m9qm9i7cpvaxxgk2n24"; + type = "gem"; + }; + version = "4.19.0"; + }; + pathutil = { + dependencies = ["forwardable-extended"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4"; + type = "gem"; + }; + version = "0.16.2"; + }; + public_suffix = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g9ds2ffzljl6jjmkjffwxc1z6lh5nkqqmhhkxjk71q5ggv0rkpm"; + type = "gem"; + }; + version = "3.1.1"; + }; + rb-fsevent = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87"; + type = "gem"; + }; + version = "0.10.4"; + }; + rb-inotify = { + dependencies = ["ffi"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005"; + type = "gem"; + }; + version = "0.10.1"; + }; + rexml = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3"; + type = "gem"; + }; + version = "3.2.4"; + }; + rouge = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z4sp0227dljiqcg7cki53qww31f22nl7msvnnqrgpwijgg9y80v"; + type = "gem"; + }; + version = "3.23.0"; + }; + ruby-enum = { + dependencies = ["i18n"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0d3dyx2z41zd6va9dwn3q8caf710vzdaf57xspc0y17aqmnprwnw"; + type = "gem"; + }; + version = "0.8.0"; + }; + ruby2_keywords = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l"; + type = "gem"; + }; + version = "0.0.2"; + }; + rubyzip = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji"; + type = "gem"; + }; + version = "2.3.0"; + }; + safe_yaml = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56"; + type = "gem"; + }; + version = "1.0.5"; + }; + sass = { + dependencies = ["sass-listen"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0p95lhs0jza5l7hqci1isflxakz83xkj97lkvxl919is0lwhv2w0"; + type = "gem"; + }; + version = "3.7.4"; + }; + sass-listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df"; + type = "gem"; + }; + version = "4.0.0"; + }; + sawyer = { + dependencies = ["addressable" "faraday"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz"; + type = "gem"; + }; + version = "0.8.2"; + }; + simpleidn = { + dependencies = ["unf"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b9v0xs4ksd68zckamv6rbrrqllpa9am0p29bycq9fxvlkqd7w2w"; + type = "gem"; + }; + version = "0.1.1"; + }; + terminal-table = { + dependencies = ["unicode-display_width"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk"; + type = "gem"; + }; + version = "1.8.0"; + }; + thread_safe = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + typhoeus = { + dependencies = ["ethon"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz"; + type = "gem"; + }; + version = "1.4.0"; + }; + tzinfo = { + dependencies = ["thread_safe"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0skr6ih9cr3pwp8l84f0z7fy3q9kiq8hw0sg3zqw0hpbbyj05743"; + type = "gem"; + }; + version = "1.2.8"; + }; + unf = { + dependencies = ["unf_ext"]; + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; + type = "gem"; + }; + version = "0.1.4"; + }; + unf_ext = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4"; + type = "gem"; + }; + version = "0.0.7.7"; + }; + unicode-display_width = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna"; + type = "gem"; + }; + version = "1.7.0"; + }; + zeitwerk = { + groups = ["default" "jekyll_plugins"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12n0hiawqayzchi0yga5n19hi63b2snd49fv3n23n2i4pp05jzrp"; + type = "gem"; + }; + version = "2.4.1"; + }; +} \ No newline at end of file diff --git a/new-post.sh b/new-post.sh index cb0a1bd..3437b3c 100755 --- a/new-post.sh +++ b/new-post.sh @@ -48,7 +48,7 @@ if $(echo "$description" | grep -q '[^.$!?]$'); then exit 1 fi -postFileName=_posts/$td-$clean_title.md +postFileName=src/_posts/$td-$clean_title.md echo "Creating $postFileName" postContent=$(cat <