Skip to content

Instantly share code, notes, and snippets.

View souenzzo's full-sized avatar
🚴‍♂️
💨 💨

Enzzo souenzzo

🚴‍♂️
💨 💨
View GitHub Profile
@souenzzo
souenzzo / deps.edn
Last active January 9, 2019 21:03
core.async cljs bug. Run 'clj -m cljs.main --repl-env node -m hack'
;; clj -Srepro -Sdeps '{:deps {cljs-bug {:git/url "https://gist.github.com/souenzzo/2d3e171bf718e32becf3cb9d15ea6dfa" :sha "eded47447764e7eb8d4cb25be1d77640e9c50aaf"}}}' -m hack ## works!
;; clj -Srepro -Sdeps '{:deps {cljs-bug {:git/url "https://gist.github.com/souenzzo/2d3e171bf718e32becf3cb9d15ea6dfa" :sha "eded47447764e7eb8d4cb25be1d77640e9c50aaf"}}}' -m cljs.main --repl-env node -m hack ## Can't recur here at line 44 hack.cljc
{:paths ["."]
:deps {org.clojure/clojure {:mvn/version "1.10.0"}
org.clojure/clojurescript {:mvn/version "1.10.439"}
org.clojure/core.async {:mvn/version "0.4.490"}}}
use std::ops::Add;
use std::ops::Div;
trait IAverage<T> {
fn new(a: T) -> Self;
fn combine(self, b: Self) -> Self;
fn result(self) -> T;
}
// trait Number: Sized
@souenzzo
souenzzo / README.md
Last active November 20, 2018 20:22
Clara issue demo

Run with

clj -Sdeps '{:deps {clara-demo {:git/url "https://gist.github.com/souenzzo/e38e600d486532308084c2bba0a9b3e9" :sha "e08684d9b24e9ea91a9922b2f512bcf0a3eb7a7e"}}}' -m clara-demo

Will print:

[:rule1 :mk-session]
[:rule2 :fire-rules]
["rule1" :a]
["rule2" :a]
(defn drop-between [start? pred? stop?]
(fn [rf]
(let [drop? (volatile! false)]
(fn
([] (rf))
([result] (rf result))
([result input]
(when (stop? input)
(vreset! drop? false))
(when (start? input)
@souenzzo
souenzzo / arch-volatil.sh
Created October 2, 2018 02:43
cria uma VM com arch linux descartavel em menos de 1 min. Requer ~3Gb de RAM livre (para criar disco+RAM)
#!/usr/bin/env sh
set -x
set -e
MNTDIR="/tmp/lol/mnt"
TEMPDISK="/tmp/lol/tempdisk.img"
SSH_PUB="${HOME}/.ssh/id_rsa_$(hostname).pub"
TEMPDIR="$(dirname "${TEMPDISK}")"
@souenzzo
souenzzo / core.clj
Created September 28, 2018 14:33
distinct-by
(defn distinct-by
"Like clojure.core/distinct, but applys f"
([f]
(fn [rf]
(let [seen (volatile! #{})]
(fn
([] (rf))
([result] (rf result))
([result input]
(let [id (f input)]
@souenzzo
souenzzo / parser.clj
Created September 14, 2018 23:48
minimal parser
(defmulti ast->clj first)
(defmethod ast->clj :S
[[_ _ body]]
(into [] cat (ast->clj body)))
(defmethod ast->clj :AE
[[_ b]]
(ast->clj b))
@souenzzo
souenzzo / error.clj
Last active September 5, 2018 15:11
nice error form org.clojure/clojure 1.10.0-alpha7
#error {
:cause Call to clojure.core/ns did not conform to spec.
:data #:clojure.spec.alpha{:problems [{:path [], :reason Extra input, :pred (clojure.spec.alpha/cat :docstring (clojure.spec.alpha/? clojure.core/string?) :attr-map (clojure.spec.alpha/? clojure.core/map?) :ns-clauses :clojure.core.specs.alpha/ns-clauses), :val ((:import [org.agrona.concurrent UnsafeBuffer] [java.nio.ByteOrder])), :via [:clojure.core.specs.alpha/ns-form], :in [1]}], :spec #object[clojure.spec.alpha$regex_spec_impl$reify__2509 0x3a4444c4 clojure.spec.alpha$regex_spec_impl$reify__2509@3a4444c4], :value (onyx.state.serializers.windowing-key-encoder (:import [org.agrona.concurrent UnsafeBuffer] [java.nio.ByteOrder])), :args (onyx.state.serializers.windowing-key-encoder (:import [org.agrona.concurrent UnsafeBuffer] [java.nio.ByteOrder]))}
:via
[{:type clojure.lang.Compiler$CompilerException
:message Syntax error macroexpanding clojure.core/ns at (onyx/state/serializers/windowing_key_encoder.clj:1:1).
:data #:clojure.error{:
@souenzzo
souenzzo / test.clj
Created August 20, 2018 23:51
TDD de uma API REST
(deftest create-user
(let [email-count (atom 0)
token (atom nil)
id (atom nil)]
;; redefinindo função que envia emal
(binding [ses/send-email (fn [_] (swap! email-count inc) true)]
(fact
"Post de criação do usuário"
(POST "/user"
{:user/name "Me" :user/email "me@gmail.com"})
@souenzzo
souenzzo / README.md
Last active July 22, 2018 02:13
datomic-issue

The problem

Some queries behave differently depending on whether the transactor is remote or not.

The "alternative query" (QUERY2 on code) not show this bug. But QUERY1 do.

Steps do reproduce

Start a "free" transactor