Skip to content

Instantly share code, notes, and snippets.

View ndpar's full-sized avatar

Andrey Paramonov ndpar

View GitHub Profile
HOME = .
RANDFILE = $ENV::HOME/.rnd
####################################################################
[ ca ]
default_ca = CA_default # The default ca section
[ CA_default ]
default_days = 730 # how long to certify for
#lang racket
(module+ test
(require rackunit))
(define ⊕ bitwise-xor)
(define hex
(curryr number->string 16))
@ndpar
ndpar / regex.groovy
Created December 20, 2017 23:08
URL Parser in Groovy
def subDomain = '(?i:[a-z0-9]|[a-z0-9][-a-z0-9]*[a-z0-9])' // simple regex in single quotes
def topDomains = $/
(?x-i : com \b # you can put whitespaces and comments
| edu \b # inside regex in eXtended mode
| biz \b
| in(?:t|fo) \b # backslash is not escaped
| mil \b # in dollar-slash strings
| net \b
| org \b
| [a-z][a-z] \b
@ndpar
ndpar / SolrExporter.groovy
Last active November 16, 2016 12:44
Export documents from Solr core to XML format
#!/usr/bin/env groovy
/**
* Usage: ./SolrExporter.groovy query url [url]
*
* ./SolrExporter.groovy "id:12345" "http://your.solr.host:8983/solr/core/"
*
* ./SolrExporter.groovy "id:12345" "http://old.solr.host:8983/solr/core/" "http://new.solr.host:8983/solr/core/"
*
*
def Y = { f ->
{ x -> x(x) } { x -> f { y -> x(x)(y) } }
}
def triangular = Y { f ->
{ n -> n == 0 ? 0 : n + f(n - 1) }
}
triangular(3000)
@ndpar
ndpar / poker.clj
Last active December 16, 2015 05:29
Poker hand evaluator in different languages.http://en.wikipedia.org/wiki/List_of_poker_hands
; https://github.com/ndpar/clojure/blob/master/src/dojo/poker.clj
; https://github.com/ndpar/clojure/blob/master/test/dojo/poker_test.clj
(defn card-ranks
"Return a vector of the ranks, sorted with higher first"
[hand]
(let [ranks (map #(->> % first str (.indexOf "--23456789TJQKA")) hand)
ranks (vec (sort > ranks))]
(if (= [14 5 4 3 2] ranks) [5 4 3 2 1] ranks)))
@ndpar
ndpar / zookeeper-init-ensemble.sh
Created March 7, 2013 03:56
Idempotent script that quickly (re)creates 3-node ZooKeeper ensemble on a single box for development purposes. http://ndpar.blogspot.com/2013/03/simple-zookeeper-cluster.html
#!/bin/sh
cd /opt/zookeeper/zookeeper
rm -rf cluster
mkdir -p cluster/server{1,2,3}/{conf,data,logs}
cp conf/log4j.properties cluster/server1/conf/
cp conf/log4j.properties cluster/server2/conf/
cp conf/log4j.properties cluster/server3/conf/
@ndpar
ndpar / answers.py
Created December 13, 2012 12:44
Analyzing popularity on StackOverflow
import urllib2
import zlib
import json
import pymongo
import sys
URL = 'http://api.stackoverflow.com/1.1'
ANSWERS = URL + '/questions/{0}/answers'
def load_url(url):
class LazyList {
private Closure list
private LazyList(list) {
this.list = list
}
static LazyList nil() {
new LazyList( {-> []} )
-module(generic_server).
-export([start/0, loop/2]).
-export([request/1, change_state/1, change_function/1]).
%% Server
start() ->
register(?MODULE, spawn(?MODULE, loop, [2, fun erlang:'+'/2])).