Skip to content

Instantly share code, notes, and snippets.

View jeroenvandijk's full-sized avatar

Jeroen van Dijk jeroenvandijk

View GitHub Profile
@jeroenvandijk
jeroenvandijk / com.plex.pms.plist
Created January 18, 2022 10:01 — forked from wahlmanj/com.plex.pms.plist
Plex Media center startup plist for use with launchctl
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.plex.pms</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
@jeroenvandijk
jeroenvandijk / sci_google_cloud.js
Created February 22, 2020 17:30 — forked from borkdude/sci_google_cloud.js
Google cloud function running sci
const { evalString } = require("@borkdude/sci");
let printlnArgs = null;
function println(...args) {
printlnArgs = args.map(arg => arg.toString()).join(" ");
}
exports.evalClojureExpr = (req, res) => {
const { text } = req.body;
try {
const result = evalString(text, {namespaces: {"clojure.core": {println: println}}});
let value = [];
@jeroenvandijk
jeroenvandijk / heredoc.clj
Created February 12, 2020 08:47 — forked from cgrand/heredoc.clj
An ugly hacky heredoc for Clojure
(defn heredoc []
(let [delim (.readLine *in*)]
(->> (repeatedly #(.readLine *in*))
(take-while #(not= delim %))
(interpose \newline)
(apply str))))
; The following lines are read (by the reader) as:
; "Look )(\"\\T\na here doc!\n"
#=(heredoc)"""
@jeroenvandijk
jeroenvandijk / eugene_and_jeroen.clj
Last active May 16, 2018 19:32 — forked from skuro/README.md
Dutch Clojure Meetup #102
(ns clojure-dojo.core)
(import '[javax.imageio ImageIO]
'[java.awt.image BufferedImage])
(def img (let [f "resources/image.png"]
(ImageIO/read (clojure.java.io/file f))))
@jeroenvandijk
jeroenvandijk / latency.txt
Created September 22, 2016 21:04 — forked from jboner/latency.txt
Latency Numbers Every Programmer Should Know
Latency Comparison Numbers
--------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
Send 1K bytes over 1 Gbps network 10,000 ns 10 us
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD
@jeroenvandijk
jeroenvandijk / mock-connection.clj
Created October 21, 2015 11:13 — forked from vvvvalvalval/mock-connection.clj
Mocking datomic.Connection for fast in-memory testing
(ns bs.utils.mock-connection
"Utilities for using Datomic"
(:require [datomic.api :as d])
(:use clojure.repl clojure.pprint)
(:import (java.util.concurrent BlockingQueue LinkedBlockingDeque)
(datomic Connection)))
(defrecord MockConnection
[dbAtom, ^BlockingQueue txQueue]
@jeroenvandijk
jeroenvandijk / kahn.clj
Created October 4, 2015 09:52 — forked from alandipert/kahn.clj
Kahn's topological sort in Clojure
;; Copyright (c) Alan Dipert. All rights reserved.
;; The use and distribution terms for this software are covered by the
;; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
;; By using this software in any fashion, you are agreeing to be bound by
;; the terms of this license.
;; You must not remove this notice, or any other, from this software.
(ns alandipert.kahn
(:require [clojure.set :refer [difference union intersection]]))
@jeroenvandijk
jeroenvandijk / group_by.clj
Last active October 1, 2015 07:56 — forked from fxposter/group_by.clj
group-by as a transducer
(defn group-by
([f]
(fn [rf]
(let [grouped-value (volatile! (transient {}))]
(fn
([] (rf))
([result]
(rf result (persistent! @grouped-value)))
([result input]
(let [key (f input)]
@jeroenvandijk
jeroenvandijk / sat.clj
Last active August 29, 2015 14:14 — forked from jmgimeno/sat.clj
;Code from http://peteriserins.com/2011/12/23/sat-in-clojure-core-logic.html
;; lein try org.clojure/core.logic "0.8.8"
(require '[clojure.core.logic :refer [conde run* fresh ] :as l])
(declare goalify)
(defn and-rewrite [expr]
`(conde
(use '[datomic.api :only [q db] :as d])
(def uri "datomic:mem://accounts")
;; create database
(d/create-database uri)
;; connect to database
(def conn (d/connect uri))