Skip to content

Instantly share code, notes, and snippets.

View number23's full-sized avatar
🎯
Focusing

number23 number23

🎯
Focusing
View GitHub Profile
@number23
number23 / init.el
Created September 22, 2011 03:43
my .emacs file
(set-language-environment 'Chinese-GB)
(set-keyboard-coding-system 'utf-8)
(set-clipboard-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-selection-coding-system 'utf-8)
(modify-coding-system-alist 'process "*" 'utf-8)
(setq default-process-coding-system '(utf-8 . utf-8))
(setq-default pathname-coding-system 'utf-8)
@number23
number23 / gist:4368396
Last active April 3, 2017 09:45
HK id card check digit
public boolean hkid_check_digit(String id){
if (id.matches("[A-Z]\\d{6}-[\\d|A]") == false) {
msgMgr.reportException("身份証號格式錯誤,X123456-X", true);
return false;
}
/*
* check digit, A=10, B=11, ... Z=35
* the 9th weight == 36, google: another one is 58.
*
@number23
number23 / spit.scala
Created March 20, 2017 17:12
writeStringToFile in Scala
import scala.language.reflectiveCalls
import java.io.{File, FileWriter}
def using[A <: {def close() : Unit}, B](resource: A)(f: A => B): B =
try f(resource) finally resource.close()
def writeStringToFile(file: File, data: String, appending: Boolean = false) =
using(new FileWriter(file, appending))(_.write(data))
@number23
number23 / fromScalaConsole.scala
Last active March 18, 2017 18:44 — forked from Centaur/fromScalaConsole.scala
get case class properties using reflection
import scala.reflect.runtime.{universe => ru}
import ru._
def getProperties[T: TypeTag]: Iterable[String] = {
val tpe = ru.typeTag[T].tpe
tpe.decls.collect {
case m: MethodSymbol if m.isCaseAccessor => m.name.toString
}
}
@number23
number23 / resultSetItr.scala
Last active March 18, 2017 17:16
java.sql.Result Iterator on Scala
import java.sql._
def resultSetItr[T](res: ResultSet)(f: ResultSet => T): Stream[T] = {
new Iterator[T] {
def hasNext = res.next()
def next() = f(res)
}.toStream
}
def query[T](conn: Connection, sql: String)(f: ResultSet => T): List[T] = {
@number23
number23 / lift.scala
Last active March 15, 2017 17:16
scala lift
def lift[A, B, C, D](f: Function3[A, B, C, D]): Function3[Option[A], Option[B], Option[C], Option[D]] =
(oa: Option[A], ob: Option[B], oc: Option[C]) =>
for (a <- oa; b <- ob; c <- oc) yield f(a, b, c)
def lift[A, B, C, D](f: (A, B, C) => D): (Option[A], Option[B], Option[C]) => Option[D] =
(oa: Option[A], ob: Option[B], oc: Option[C]) =>
for (a <- oa; b <- ob; c <- oc) yield f(a, b, c)
val createConnection = lift(java.sql.DriverManager.getConnection)
@number23
number23 / README.md
Last active June 28, 2016 04:21 — forked from chuangbo/README.md
Python dynamic DNSPod DNS Script

替换上你的login_token,域名ID,记录ID等参数,就可以运行了。 会在后台一直运行,每隔30秒检查一遍IP,如果修改了就更新IP。

获得domain_id可以用curl curl -k https://dnsapi.cn/Domain.List -d "login_token=xxxxx,xxxxxxxx&format=json" | python -m json.tool

获得record_id类似 curl -k https://dnsapi.cn/Record.List -d "login_token=xxxxx,xxxxxxxx&amp;domain_id=xxx&amp;format=json" | python -m json.tool

@number23
number23 / comparator.clj
Created May 12, 2012 15:25
clojure comparator
((comparator <) 1 4)
;= -1
((comparator <) 4 1)
;= 1
((comparator <) 4 4)
;= 0
@number23
number23 / equal.clj
Created May 11, 2012 17:15
clojure equal on list and vector
user=> (type [])
clojure.lang.PersistentVector
user=> (type '())
clojure.lang.PersistentList$EmptyList
user=> (type [1])
clojure.lang.PersistentVector
user=> (type '(1))
clojure.lang.PersistentList
user=> (= [] '())
true
@number23
number23 / memoization.clj
Created May 11, 2012 15:39
clojure memoization
(defn prime? [n]
(cond
(== 1 n) false
(== 2 n) true
(even? n) false
:else (->> (range 3 (inc (Math/sqrt n)) 2)
(filter #(zero? (rem n %))) empty?)))
(time (prime? 1125899906842679))
; "Elapsed time: 2181.014 msecs"