Skip to content

Instantly share code, notes, and snippets.

View juskrey's full-sized avatar

Stanislav Yurin juskrey

View GitHub Profile
@juskrey
juskrey / gist:7ca87efa442358d60411
Last active August 29, 2015 14:01
Delete redis keys by the wildcard using carmine for clojure
(defn delete-keys-wildcard [server wildcard]
(wcar server
(car/eval "for _,k in ipairs(redis.call('keys', ARGV[1])) do redis.call('del', k) end" 0 wildcard)))
@juskrey
juskrey / ShowTiming.nb
Created August 25, 2015 07:30
Make Mathematica show execution time in the lower left notebook corner
SetOptions[$FrontEndSession,
EvaluationCompletionAction -> "ShowTiming"]

Keybase proof

I hereby claim:

  • I am juskrey on github.
  • I am immute (https://keybase.io/immute) on keybase.
  • I have a public key whose fingerprint is 6D92 A244 98A1 D02F 997E 59AA 596F 8B32 C3ED ABDF

To claim this, I am signing this object:

@juskrey
juskrey / Work.md
Created June 2, 2019 07:53
Remote contracting

We are a team of two who do heavy full stack lifting with Clojure/ClojureScript as a primary weapon of choice.
Experience so far in financial, maritime, media, social, gamedev, CRM, online marketplaces, cryptocurrency/blockchain exchanges. Classic vertical apps, distributed messaging and streaming systems, microservices. A lot of Datomic under the belt.
iOS/Android upon request.

Website: https://immute.co
Email: [email protected]
Phone: +442080896901

@juskrey
juskrey / auto.clj
Created April 1, 2020 10:48
Clojure FSM sample
(ns sentinel.auto
(:require [taoensso.timbre :as timbre]
[clojure.core.match.date :refer :all]
[clojure.core.match :refer [match]]
[clojure.core.match.regex :refer :all]
[clojure.string :as st]
[clojure.core.async :refer [chan close! buffer go-loop to-chan <! >! >!! <!!] :as async]
[clojure.core.async.impl.protocols :as impl]
[clojure.spec.alpha :as s]
[clojure.core.async :as async]))
@juskrey
juskrey / automata.clj
Created April 1, 2020 10:50
Clojure POP3 server automata definition
(ns sentinel.pop3.automata
(:require [instaparse.core :as insta]
[clojure.java.io :as io]
[clojure.string :as s]
[sentinel.auto :refer [fsm automate]]
[taoensso.timbre :as timbre]
[sentinel.address :as address]
[sentinel.db.main :as db-main]
[buddy.hashers :as hashers]
[amazonica.aws.s3 :as s3])
@juskrey
juskrey / array_type.clj
Created April 5, 2020 09:53 — forked from Chouser/array_type.clj
Clojure array type hint
(defn array-type
"Return a string representing the type of an array with dims
dimentions and an element of type klass.
For primitives, use a klass like Integer/TYPE
Useful for type hints of the form: ^#=(array-type String) my-str-array"
([klass] (array-type klass 1))
([klass dims]
(.getName (class
(apply make-array
(if (symbol? klass) (eval klass) klass)
Here's the translation to English:
"Due to the nature of my work in yacht building, I had to delve into the production of Kevlar and carbon. Turns out, the lifecycle of Kevlar (from creation to full structural breakdown) is about 15 years! That's three times less than wood. Looking at carbon, initially, everything's beautiful: super strength, etc. We researched the nearest producer and ordered a racing mast of 14 meters! Result: its weight isn't lighter than duralumin, but its rigidity is amazing! And! This very rigidity is carbon's Achilles' heel. After five years, the plasticizer evaporates from it, and it begins to develop micro-cracks, and the carbonaceous links in the carbon fiber threads start tearing. The creation process requires a high-temperature melting furnace to turn loose carbon threads into a solid strong thread. These "cakes" are baked in this furnace. Torn carbon links cannot be healed. Sanding and filling (patching) a carbon part with epoxy (both Kevlar and carbon are made using the same pr