Skip to content

Instantly share code, notes, and snippets.

View barkanido's full-sized avatar
🎯
Focusing on https://github.com/AppsFlyer/aerospike-clj

Ido Barkan barkanido

🎯
Focusing on https://github.com/AppsFlyer/aerospike-clj
View GitHub Profile
@barkanido
barkanido / aero-client.clj
Created January 23, 2019 04:26
create aerospike client
user=> (require '[aerospike-clj.client :as aero])
nil
user=> (def c (aero/init-simple-aerospike-client ["localhost"] "test"))
;; Starting aerospike clients for clusters localhost with username null
#'user/c
user=>
user=> (aero/put c "index" "set-name" 42 1000)
<< … >>
user=> (def f (aero/get-single c "index" "set-name"))
#'user/f
user=> (d/chain (aero/get-single c "index" "set-name")
#_=> :ttl
#_=> aero/expiry-unix
#_=> #(java.time.Instant/ofEpochSecond %)
#_=> str
#_=> println)
user=> @(aero/get-single c "index" "set-name")
#aerospike_clj.client.AerospikeRecord{:payload 42, :gen 1, :ttl 285167713}
(ns af-common-rta-aerospike.core
(:require [aerospike-clj.client :as aero]
[statsd.metrics :as metrics]
[statsd.core :as statsd]
[manifold.deferred :as d]))
(defrecord DBMeter []
client/ClientEvents
(on-success [_ op-name op-result _index op-start-time client]
(statsd/send-timing (metrics/format-statsd-metric (:cluster-name client) op-name "latency")
user=> (aero/put c "17" "set-name" 1 1000 {:transcoder str})
<< … >>
user=> (aero/put c "index" "set-name" 42 1000)
<< … >>
user=> (defn inc-transcoder [rec] (when rec
#_=> (update rec :payload inc)))
#'user/inc-transcoder
user=> (d/chain (aero/get-single c "index" "set-name" {:transcoder inc-transcoder})
#_=> :payload
#_=> println)
<< … >>
43
@barkanido
barkanido / core.clj
Last active March 10, 2019 15:28
testing url query string parsing in clojure
(ns toy-url-decoder.core
(:require [cemerick.url :as c-url]
[criterium.core :as crit])
(:import [java.net URI URL]
[io.netty.handler.codec.http QueryStringDecoder]
[java.nio.charset Charset]
[org.apache.http.client.utils URLEncodedUtils]
[org.apache.http NameValuePair]
[java.util List Map Map$Entry]))
@barkanido
barkanido / DateTimeFormatter.java
Created April 2, 2019 06:43
multi fprmatter (parser) for timstamps in java 8 time aPI
import java.time.LocalDateTime;
import java.time.ZonedDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
public class Main {
@barkanido
barkanido / match_example.clj
Created May 13, 2019 11:29
beware of clojure.core.match
(match/match [a b]
[_ true] :first
[true false] :second
[_ false] :third)
(try
(cond
(= b true) :first
(= b false) (try
(cond
@barkanido
barkanido / data-flow1.clj
Last active December 26, 2019 04:38
a simple clojure function
(defn foo [a b]
(let [x (+ a b)]
x))
(def result (foo 3 4))
result