For KVM and Laptop
I want full control what boots the computer to avoid the so called evil maid attack. That requires setting SecureBoot with only my own keys.
| (ns your.macros-for-cljs.ns | |
| (:require [sablono.compiler :as sablono-c])) | |
| ;; Make sablono also walk into other forms: | |
| ;; if, for, let, do: Already exist | |
| (.addMethod @(var sablono-c/compile-form) "when" | |
| (fn | |
| [[_ bindings & body]] | |
| `(when ~bindings ~@(for [x body] (sablono-c/compile-html x))))) |
| ;; implementing a React component in pure cljs, no reagent necessary | |
| ;; using goog.object.extend to create a ES6 class that inherits from | |
| ;; React.Component | |
| ;; credit to @thheller | |
| (defn MyReact [props context updater] | |
| (this-as this | |
| (js/React.Component.call this props context updater))) |
| (defmacro afor | |
| "Like for but eagerly builds a JS array. | |
| Usually for react consumption." | |
| [[item coll] & body] | |
| `(let [coll# ~coll | |
| neue# (cljs.core/array)] | |
| (loop [xs# coll# | |
| idx# 0] | |
| (let [f-item# (first xs#)] |
| // inifinite scrolling of content without extra wrappers | |
| const { render, findDOMNode } = ReactDOMFiber | |
| class App extends React.Component { | |
| render() { | |
| // wrap the root element with an Intersection Observer, exposing .observe for children | |
| return <Intersection> | |
| <div style={{ height: 200, overflow: 'auto' }}> | |
| <Page offset={0} count={10} /> | |
| </div> |
| (ns project.leaflet | |
| (:require-macros [project.macros :as m]) | |
| (:require [rum.core :as rum] | |
| cljsjs.react-leaflet)) ;; js/ReactLeaflet | |
| (m/adapt-react leaflet-map js/ReactLeaflet.Map) | |
| (m/adapt-react tile-layer js/ReactLeaflet.TileLayer) | |
| (m/adapt-react marker js/ReactLeaflet.Marker) | |
| (m/adapt-react popup js/ReactLeaflet.Popup) |
| ; Postgres listen/notify in Clojure using http://impossibl.github.io/pgjdbc-ng/ | |
| ; in project.clj dependencies | |
| ; [com.impossibl.pgjdbc-ng/pgjdbc-ng "0.5"] | |
| (ns pglisten.core | |
| (:import [com.impossibl.postgres.jdbc PGDataSource] | |
| [com.impossibl.postgres.api.jdbc PGNotificationListener])) |
For KVM and Laptop
I want full control what boots the computer to avoid the so called evil maid attack. That requires setting SecureBoot with only my own keys.
| #!/usr/bin/env boot | |
| ;; BOOT_CLOJURE_NAME=org.clojure/clojure | |
| ;; BOOT_CLOJURE_VERSION=1.8.0 | |
| ;; BOOT_VERSION=2.5.5 | |
| ;; BOOT_JVM_OPTIONS="-Xms1g -Xmx1g -XX:+UseG1GC -XX:+AggressiveOpts -server -Dclojure.compiler.direct-linking=true" | |
| (set-env! :repositories #(conj % ["bintray" {:url "http://dl.bintray.com/nitram509/jbrotli"}])) | |
| (set-env! :dependencies '[[criterium "0.4.4"] |
| (require '[lentes.core :as l]) | |
| ;; Lets define a simple lense that compoes: | |
| ;; - a lense that focuses to the (get-in [:foo :bar] ...) on the data struct | |
| ;; - a lense that just applies the inc transformation | |
| ;; This is in some mode analogous to: #(inc (get-in % [:foo :bar])) | |
| ;; but generalized as a composable lense. | |
| (def my-lens | |
| (comp (l/in [:foo :bar]) |
| #include <stdlib.h> | |
| #include <stdio.h> | |
| #include <stdint.h> | |
| #include <fcntl.h> | |
| #include <sys/stat.h> | |
| #include <sys/mman.h> | |
| #include <unistd.h> | |
| int main(int argc, const char *argv[]) | |
| { |