Skip to content

Instantly share code, notes, and snippets.

View killme2008's full-sized avatar
🎯
Focusing

dennis zhuang killme2008

🎯
Focusing
View GitHub Profile
@killme2008
killme2008 / gist:3003145
Created June 27, 2012 10:13
Java throw even checked exceptions without being required to declare them or catch them.
/**
* Throw even checked exceptions without being required
* to declare them or catch them. Suggested idiom:
* <p>
* <code>throw sneakyThrow( some exception );</code>
*/
static public RuntimeException sneakyThrow(Throwable t) {
// http://www.mail-archive.com/javaposse@googlegroups.com/msg05984.html
if (t == null)
throw new NullPointerException();
@killme2008
killme2008 / .emacs
Created August 7, 2012 10:57
dot.emacs
;;; This was installed by package-install.el.
;;; This provides support for the package system and
;;; interfacing with ELPA, the package archive.
;;; Move this code earlier if you want to reference
;;; packages in your .emacs.
(add-to-list 'load-path "~/.emacs.d/marmalade")
(require 'package)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)
';;使用缩写模式
@killme2008
killme2008 / joy-of-clojure-lazy-qsort.clj
Created September 29, 2012 12:05 — forked from noahlz/joy-of-clojure-lazy-qsort.clj
Lazy QuickSort implementation in Clojure, from Joy of Clojure chapter 6.
(ns joy.q)
;; nil
(defn nom [n] (take n (repeatedly #(rand-int n))))
;; #'joy.q/nom
(defn sort-parts [work]
(lazy-seq
(loop [[part & parts] work] ;; Pull apart work - note: work will be a list of lists.
(if-let [[pivot & xs] (seq part)] ;; This blows up unless work was a list of lists.
@killme2008
killme2008 / monads.clj
Created November 24, 2012 17:11 — forked from martintrojer/monads.clj
The M word
(ns monads
(:require clojure.set))
(declare ^:dynamic return
^:dynamic bind)
(defn lift-inc [v]
(return (inc v)))
(defn m-add [mv n]
@killme2008
killme2008 / gist:4367826
Last active December 10, 2015 02:28
实现一个API,API内部有两个http接口A,B并发调用,如果都在200ms内返回,则合并结果输出,如果B比A慢,且B耗时超过200ms,则丢弃B调用只返回A结果
(defn invoke [fs]
(map #(deref % 200 nil) (map future-call fs)))
@killme2008
killme2008 / metaq_monitor.rb
Last active December 11, 2015 02:09
A script to monitor MetaQ queue size
####
# Description:a ruby script to monitor metaq queue size
# Requirements: zookeeper
# sudo gem install zookeeper
#
#####
require 'rubygems'
require 'zookeeper'
require 'socket'
@killme2008
killme2008 / sync_offsets.rb
Created January 24, 2013 06:29
A ruby script to sync consumers offsets with brokers offsets for metaq
####
# Description:a ruby script to sync consumers offsets with brokers offsets.
# Requirements: zookeeper
# sudo gem install zookeeper
#
#####
require 'rubygems'
require 'zookeeper'
require 'socket'
@killme2008
killme2008 / parse.rb
Created January 28, 2013 07:31
A ruby script to parse metaq data
## Description: A ruby script to parse metaq data
## Requirements: sudo gem install bindata
require 'rubygems'
require 'bindata'
class Attribute < BinData::Record
endian :big
int32 :len,:initial_value => 0
string :attribute,:read_length => :len
@killme2008
killme2008 / solr_monitor.rb
Last active December 18, 2015 07:37
A nagios plugin ruby script to monitor solr cloud cluster
####
# Description:a nagios plugin script to monitor solr cloud cluster
# Requirements: zookeeper
# sudo gem install zookeeper
# sudo gem install rsolr
#
#####
require 'rubygems'
require 'zookeeper'
require 'rsolr'
@killme2008
killme2008 / RandomMemcachedSessionLocaltor.java
Last active December 12, 2015 06:29
A random session locator for xmemcached ,it can be used for kestrel.
package net.rubyeye.xmemcached.impl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import com.google.code.yanf4j.core.Session;