Skip to content

Instantly share code, notes, and snippets.

💨 💨

Enzzo souenzzo

💨 💨
View GitHub Profile
View eql-hodur.clj
(ns eql-hodur
(:require [edn-query-language.core :as eql]
[clojure.spec.alpha :as s]
[datascript.core :as ds]))
(defn add-prop
[prop {:keys [children]
:as node}]
(if (contains? node :children)
(assoc node
souenzzo / deps.edn
Last active Sep 23, 2020
Clojure version of "java quickstart" from gsheets.
View deps.edn
;; run with
;; clj -Sdeps '{:deps {gdocs {:git/url "" :sha "fee00617c75fc24c74931aa4200f74666c5b66b6"}}}' -m gdocs
{:paths ["."]
:deps {org.clojure/clojure {:mvn/version "1.10.0"} {:mvn/version "1.28.0"} {:mvn/version "1.28.0"} {:mvn/version "v4-rev566-1.25.0"}}}
souenzzo / deps.edn
Last active Sep 8, 2020
Browser presign POST upload using AWS-SDK
View deps.edn
;; reference
{:deps {org.clojure/clojure {:mvn/version "1.10.1"}
hiccup/hiccup {:mvn/version "2.0.0-alpha2"}
io.pedestal/pedestal.jetty {:mvn/version "0.5.8"}
io.pedestal/pedestal.service {:mvn/version "0.5.8"}
commons-codec/commons-codec {:mvn/version "1.15"} {:mvn/version "0.8.474"} {:mvn/version ""}
souenzzo / build.clj
Last active Aug 15, 2020
Using from cljs. Still a fat build
View build.clj
;; this can be used on figwheel or in "any" cljs build api
;; at the first time, create a empty package.json with `{}` inside and `yarn add react webpack webpack-cli react-dom @material-ui/core`
;; you need to run "yarn install" and "yarn webpack" BEFORE this
;; !!!! this is a dev build !!!!
(def dev-build
'{:id "dev"
:source-paths ["src" "dev"]
:figwheel {:on-jsload cljs.user/on-jsload}
:compiler {:main cljs.user
:asset-path "/js/out"
souenzzo / cola.edn
Created Jun 20, 2020
View cola.edn
;; hello eql
;; data->shape
{:app/hello "ok"}
{:app/hello "ok"
:app/users [{:user/id 1
:user/username "2"
:user/addresses [{:address/description "a"
:address/number 1}]}]}
View pathom.clj
(let [conn (doto (ds/create-conn {:user/addresses {:db/valueType :db.type/ref
:db/cardinality :db.cardinality/many}
:user/id {:db/unique :db.unique/identity}})
(ds/transact! [{:user/id 1
:user/addresses [-1 -2]}
{:user/id 2
:user/addresses [-2 -3]}
{:user/id 3
:user/addresses [-4]}
{:db/id -1
souenzzo / http-socket-server.clj
Last active May 6, 2020
tiny http server via java sockets in clojure
View http-socket-server.clj
#!/usr/bin/env clojure
(import ( ServerSocket))
(require '[clojure.string :as string] '[ :as io])
(letfn [(req-line+headers [in]
(binding [*in* in]
(loop [headers []]
(let [line (read-line)]
(if (string/blank? line)
View java_http.clj
(:require [com.wsscode.pathom.diplomat.http :as http]
[clojure.spec.alpha :as s]
[clojure.core.async :as async]
[clojure.string :as string]
[ :as json])
(:import ( HttpResponse$BodyHandlers HttpRequest HttpClient HttpResponse HttpHeaders HttpRequest$BodyPublishers)
( URI)
(java.util.function Function BiPredicate)
(java.util Optional)))
souenzzo / pathom.clj
Created Jan 10, 2020
pathom vs select-keys
View pathom.clj
(let [parser (p/parser {::p/plugins [(pc/connect-plugin {::pc/register [(pc/constantly-resolver ::f 42)]})]})
env {::p/reader [p/map-reader
query [::f]
m {::f 42}]
(doseq [[k v] {:map-select #(p/map-select m query)
:parser #(parser env query)
:select-keys #(select-keys env query)}]
(prn k)
(dotimes [i 5]
You can’t perform that action at this time.