Skip to content

Instantly share code, notes, and snippets.

View sherpc's full-sized avatar

Alexander Sher sherpc

View GitHub Profile
if (_rules == null)
_rules = CreateRules();
return _rules;
// ...versus...
return _rules ?? (_rules = CreateRules());
(defn if-column
[data column f]
(if-not column
data
(f column data)))
(defn where* [data condition-func]
(if-column data condition-func filter))
(defn limit* [data lim]
@sherpc
sherpc / d-op.clj
Last active August 29, 2015 14:00
Clojure's every?
(defn d-op [op d1 d2]
(if (every? #(instance? org.joda.time.DateTime %) [d1 d2])
(op (c/to-long d1) (c/to-long d2))
(op d1 d2)))
@sherpc
sherpc / JsonErrorViewModel.cs
Last active August 29, 2015 14:01
Обработка исключений в API-контроллерах
public class JsonErrorViewModel
{
private JsonErrorViewModel(string error, dynamic parameters = null)
{
Error = error;
Parameters = parameters;
}
public string Error { get; private set; }
public dynamic Parameters { get; private set; }
class rock{}
class paper{}
class scissors{}
public static class game{
public static object rps(rock r, paper p){return p;}
public static object rps(rock r, scissors s){return r;}
public static object rps(paper p, scissors s){return s;}
}
var xs = _.chain(results)
.sortBy(function (x) { return x.pos; })
.groupBy("level")
.map(function (value, key) { return { depth: key, hits: value }; })
.value();
@sherpc
sherpc / memory.clj
Last active April 30, 2019 22:05
Clojure simple memory usage log
(defn total-memory
[]
(.totalMemory (Runtime/getRuntime)))
(defn free-memory
[]
(.freeMemory (Runtime/getRuntime)))
(def steps
(->> ["B" "KB" "MB" "GB" "TB"]
@sherpc
sherpc / kafka.clj
Last active April 24, 2017 07:12
Kafka streams proof of concept
(ns flock-staff.kafka
(:require [cheshire.core :as json])
(:import [flock_staff.kafka StringProcessor StringForeachAction]
[org.apache.kafka.common.serialization Serdes]
[org.apache.kafka.streams.processor TopologyBuilder ProcessorSupplier]
[org.apache.kafka.streams KafkaStreams StreamsConfig]
[org.apache.kafka.clients.consumer ConsumerConfig]
[java.util Properties]))
(defn processor
@sherpc
sherpc / mustache.clj
Created November 27, 2017 13:48
Mustache-like templating in Clojure
(ns mustache
(:require [clojure.string :as str]))
(defn mustache
[s args]
(reduce
(fn [result [k v]]
(str/replace result
(re-pattern (format "([^\\{])\\{%s\\}([^\\}])" (name k)))
(format "$1%s$2" v)))