-
Recently, I read many papers & articles about latency, especially tail latency, so this post is served as my notes on my reading.
Latency is a very important metric for a system, because it affects user experience a lot. In distributed system, tail latency is much more important than in sing...
-
In normal applications, we won’t care much about latency caused by non-IO system calls, because they’re usually very fast, and this is more true for fork(2), since fork(2) in Linux is much more lightweight than most other OSs.
But we met this very problem. The application we’re talking about is ...
-
GSoC
这次能去美国逛一圈主要是因为去年参加了Clojure的GSoC。Clojure社区会给每位成功完成GSoC的学生提供赞助参加一些Clojure的会议,包括去年11月的Clojure/conj或这次我参加的Clojure/west,赞助费是从GSoC mentor的stipend收集的,因为Clojure去年有6个学生完成,两个美国学生,四个国际学生,会多分多一些给国际学生,而且有些学生不参加,所以我分得了1.5k刀,之前估算得自己再出些,但是现在看来基本上cover了。
好像其他的组织也会有这样的政策,我知道的另一个就是git,而且他们还在邮件列表里面吵从mentor st...
-
Note, if you’re a macro guru, you can ignore this post, this is just used to record my learning path to master clojure macro.
Many times, I find myself using format to generate string from string template, and values filled in are always derived from local variables, so I’m wondering if I can us...
-
In this post I will talk about a simple way to do cache in Clojure application.
I am building an API server in Clojure, a lot of permission check should be done before serving the request, so I abstract it to some kind of ACL checker. Our server is built with ring SPEC, and because I want the AC...
-
2014年我的关键字应该是“遇见”和“Clojure”吧。
经历
今年对我影响最大的一件事情就是Google Summer of Code。大二就想参加了,但是由于种种原因直到今年才真正参加,从去年十二月就开始在往届项目的idea page上去找感兴趣的项目,二三月联系mentor、提交patch,四月看类型系统的论文,五月开始,八月结束。整个过程耗费了大量的精力和时间,但是收获也是巨大的。
之前预期的收获就是Google发的钱以及简历上可以多写点东西,但是后来发现远远不止于此,不知道其他的开源组织怎么样,但是我觉得Clojure这个组织还挺有意思:它会筹集一些钱来赞助参加了GSo...
-
A few month ago, I wrote a Clojure macro, looks like this:
It means if current env is test, then generate normal function, otherwise generate async function and log the error if catched. We need this because when we call some functions, we don’t want to wait them to return, but we still want to ...
-
最近因为各种各样的原因对分布式感兴趣了,其中有一个就是在看w君学校里面分布式系统的课(我们学校竟然不开这个我最想上的课,真是悲哀)。已经看了里面提供的几篇论文还有笔记,觉得确实不错,值得推荐。其中一篇Lamport的论文让我觉得比较新鲜——在没有引入任何物理时钟的情况下定义了分布式系统的全序关系,这种方法应该很适合分布式系统的调试,因为可以清楚地知道A事件是不是比B事件发生得要早之类的。更让我觉得新鲜的是这种CS论文一半的引用竟然都是物理的相对论。
不过这篇博客要说的并不是那篇论文,而是另一个描述内存一致性的文献,一个分布式系统的课引用多核系统内存一致性的文献这个问题本身也挺有意思,因...
-
最近看了下逻辑编程,据说逻辑编程最牛的是prolog,但是没空再学一门语言了,而且看到clojure中刚好有core.logic的这个库,而且可以拿这个库写《The Reasoned Schemer》中的例子,所以就直接用这个库来学了。
准备工作
先把
[org.clojure/core.logic "0.8.8"]
放到你的project.clj的依赖中,然后在repl中运行
user=> (require '[clojure.core.logic :as logic])
使用这个库的代码一般像
user=> (logic/run 1 [x] (logic...
-
前几天偶然看到今天就是注册豆瓣五周年了,是不是应该写点什么。
看这个注册的时间点,大概是我大一的十一快过完时在网吧注册的豆瓣,至于为什么要注册我已经忘了,不过还是记得在豆瓣关注的第一个人是kimi,话说他的头像和昵称完全没变过,所以到现在也是很好认的,当时大概应该是因为他的一个书评才注册的?反正我就此走上了一条不归路(笑)。
很多人会问我为什么现在叫现在的昵称——“邻家のR君”,这里就解释一下吧,很久以前我的昵称是“reflector”的,至于为什么我也忘记了(程序员貌似除了程序相关的好像记不得什么东西),然后豆瓣上有一个已注销的卖萌友邻昵称是“w君”,有一天不知道是什么原因互相关注...