Skip to content

Instantly share code, notes, and snippets.

View sunng87's full-sized avatar
👑
keep calm and git push -f

Ning Sun sunng87

👑
keep calm and git push -f
View GitHub Profile
@sunng87
sunng87 / clspark.lisp
Created November 18, 2011 02:37
spark in common lisp
#!/usr/bin/clisp
(defconstant ticks (list "▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"))
(defun spark (data-list)
(let ((max-value (apply #'max data-list))
(ticks-length (length ticks)))
(let ((ticks-unit (/ max-value (- ticks-length 1))))
(map 'list (lambda (x) (elt ticks (ceiling (/ x ticks-unit)))) data-list))))
@sunng87
sunng87 / imgscale.clj
Created November 22, 2011 06:30
Image scalling with java-image-scaling
(ns gen-class-test.imgscale
(:use [clojure.java.io])
(:import [javax.imageio ImageIO])
(:import [com.mortennobel.imagescaling ResampleOp ResampleFilters]))
(defn read-img [path]
(ImageIO/read (file path)))
(defn write-img [img path]
(ImageIO/write img "jpg" (file path)))
@sunng87
sunng87 / core.clj
Created December 9, 2011 02:29
client code for benchmarking slacker
(ns slackerbench.core
(:use [slacker.client])
(:import [java.util.concurrent Executors TimeUnit])
(:gen-class))
(defn -main [& args]
(def host (first args))
(def total-connections (Integer/valueOf (nth args 2)))
(def scp (slackerc-pool host 2104
@sunng87
sunng87 / socket.cljs
Created December 13, 2011 10:07
clojurescript, nodejs and slacker
(ns cljs-demo.socket
(:require [cljs.nodejs :as node]))
(def net (node/require "net"))
(declare client)
(defn send-data []
(let [version 3
packet-type 0
@sunng87
sunng87 / Roar.css
Created December 24, 2011 06:31
Make roar works with mootools 1.4.x
.roar-body
{
position: absolute;
font: 12px/14px "Lucida Grande", Arial, Helvetica, Verdana, sans-serif;
color: #fff;
text-align: left;
z-index: 999;
}
.roar
@sunng87
sunng87 / core.clj
Created December 27, 2011 05:27
a lein plugin wraps pomegranate (failed, just backup the code)
(ns fly.core
(:use [cemerick.pomegranate :only [add-dependencies]]))
(def default-repos
(merge cemerick.pomegranate.aether/maven-central
{"clojars" "http://clojars.org/repo"}))
(defn grab [deps &
{:keys [repositories]
:or [repositories {}]}]
@sunng87
sunng87 / mapnik-nanjing-edits.xml
Last active September 29, 2015 17:38
OSM Nanjing: Year of Edits
<Map background-color="#232323" minimum-version="0.7.2" srs="+proj=latlong +datum=WGS84">
<Style name="style-by-timestamp">
<Rule>
<Filter>[timestamp] = '2012'</Filter>
<LineSymbolizer stroke="#95a7ed" stroke-width="1" /></Rule>
<Rule>
<ElseFilter />
<LineSymbolizer stroke="#9090A0" stroke-width="1" /></Rule>
</Style>
@sunng87
sunng87 / t.py
Created February 14, 2012 05:44
Evaluating clojure literals in ruby and python
import clj
import time
s = "[1 2 3 true false nil {:a 21.3 :b 43.2} \"Hello\"]"
t1 = time.time()
for i in range(10000):
clj.loads(s)
print time.time()-t1
@sunng87
sunng87 / dosync-plus.clj
Created February 24, 2012 06:25
dosync+
(defmacro dosync+ [listeners & body]
`(let [on-start# (get ~listeners :on-start identity)
on-retry# (get ~listeners :on-retry identity)
on-committed# (get ~listeners :on-committed identity)
retires# (atom 0)
ctx# (atom {})]
(dosync
(if (zero? @retires#)
(swap! ctx# on-start#)
(swap! ctx# on-retry#))
@sunng87
sunng87 / tcp.clj
Created March 16, 2012 06:12
An echo server example for link
(ns link-test.tcp
(:refer-clojure :exclude [float byte double])
(:use [link core tcp codec]))
(def echo-handler
(create-handler
(on-message [ctx e]
(let [channel (.getChannel ctx)]
(.write channel
(.getMessage e))))))