Skip to content

Instantly share code, notes, and snippets.

View st's full-sized avatar

Stephane Tavera st

  • Geneva, Switzerland
View GitHub Profile
(ns prisoners.core)
;;
;; Clojure experiment on 100 prisoners problem.
;;
;; See https://en.wikipedia.org/wiki/100_prisoners_problem
;;
(defn best-tries
"Returns the infinite sequence of drawers contents a prisoner will get.
On the criteria to be used in decomposing systems into modules – David Parnas
http://sunnyday.mit.edu/16.355/parnas-criteria.html
A Note On Distributed Computing – Jim Waldo, Geoff Wyant, Ann Wollrath, Sam Kendall
http://web.cs.wpi.edu/~cs3013/a11/Papers/Waldo_NoteOnDistributedComputing.pdf
The Next 700 Programming Languages – P. J. Landin
http://thecorememory.com/Next_700.pdf
Can Programming Be Liberated from the von Neumann Style? – John Backus
@st
st / gist:5c8e1b6f042dd609d0f5a2549c42bdc9
Created February 14, 2017 20:28
URL Electron + Figwheel
https://owensd.io/?p=1156&utm_source=dlvr.it&utm_medium=twitter
@st
st / es.sh
Last active March 19, 2018 15:30
Elastic useful commands
# Elastic search version
curl 'localhost:9200'
# List all indices
$ curl 'localhost:9200/_cat/indices?v'
# this shows the status
# e.g:
# health status index pri rep docs.count docs.deleted store.size pri.store.size
#  close .kibana
# green open resources-index 3 0 20416 0 7.7mb 7.7mb
@st
st / repl.clj
Last active July 15, 2016 09:29
first steps with clojure.spec
user=> (require '[clojure.spec :as s])
nil
user=> (s/def ::big #(< 10 %))
:user/big
user=> (s/valid? ::big 10)
false
user=> (s/valid? ::big 100)
true
user=> (s/def ::big-or-even (s/or ::big even?))
@st
st / gist:d52ae86b8ddb83a6f6b4
Created July 6, 2015 16:43
hmac verify with String signature
(-> (hmac/hash "foo bar" "mysecretkey" :sha256)
(codecs/bytes->hex))
=> "61849448bdbb67b39d609471eead667e65b0d1b9e01b1c3bf7aa56b83e9c8083"
;; so far, so good
(hmac/verify "foo bar" "61849448bdbb67b39d609471eead667e65b0d1b9e01b1c3bf7aa56b83e9c8083" "mysecretkey" :sha256)
=> false
;; should be true, no?
(def bytes-hash (hmac/hash "foo bar" "mysecretkey" :sha256))

Your very first steps with Clojure

;; $&gt; lein repl into-1 ;; ;; This will create a Clojure project (a folder with a common structure) named 'into-1' ;; $&gt;

1

@st
st / walk this way
Last active August 16, 2017 16:10
useful for interop with "java" maps
(defn clojurify
[exp]
(cond
(instance? java.util.Map exp) (into {} (for [[k v] exp] [(keyword k) v]))
(instance? java.util.List exp) (into [] exp)
:else exp))
(defn walk-to-clojure-map
[java-map]
(clojure.walk/prewalk clojurify java-map))
@st
st / gist:0c8512f916b944a3a23d
Created February 22, 2015 18:03
Planète bleue scrapping
require 'nokogiri'
require 'open-uri'
@plays = {}
def extract_plays(url, i)
doc = Nokogiri::HTML(open(url))
artist_names = doc.xpath("//a[contains(@href,'artist')]").collect {|node| node.text.strip}
@st
st / gist:c68ca56f796d04dee152
Last active August 29, 2015 14:13
Issue with pooled connection in Korma with Java 1.8 (mac os x yosemite)

Minimal setup to reproduce the problem. Note that that with Java 1.7 this works fine.

  $ java -version
  java version "1.8.0_40-ea"
  Java(TM) SE Runtime Environment (build 1.8.0_40-ea-b15)
  Java HotSpot(TM) 64-Bit Server VM (build 25.40-b18, mixed mode)