盛夏, 贪吃小蘑菇的大白菜. 飘忽不定的过活的style下半.

四月天.

dsc_0130

TvT 练字去。


2009.

这一年的大部分时间, 我都让这个blog荒芜着长草了.
大抵上, loser总结自己的一年的时候都很词穷.

本来, 我想找个更有纪念意义的日子, 从沙河走到清水河,
后来发现, 没有什么能比走路更加平常和随性了.

所以那一夜, 我的2009就悄无声息的逝去了,
在黑夜迷幻的灯光和浅浅的足迹的后面.

大抵上, loser总结自己的一年的时候都很乏味,
我只记得, 我在某个刮着寒风, 雨水的湿润还尚未挥发殆尽, 暖黄的灯光轻飘飘的点亮城市的街道的夜晚,
从沙河慢慢的走到了清水河,
直到烂漫的冬日把寒气都驱散开来, 灰蓝的天空泛起朝霞.

阳光很好, 就像人生最烂漫的日子.
在冬日的海边, 在夏日的海边.
看浓烈的一抹海边妖冶日出里你的背影,
再在某个秋日的夜晚里, 极其缓慢的, 把记忆都像海沙一样吹散.

p303613604

再见, 2009.

大抵上, loser总结自己的一年的时候都很茫然,
我想, 那是因为,
他们都以为,
最好的日子, 都在不经意的一瞬间, 来不及细细品味就幻化成梦境了.

于是, 2009就是好长的一个梦.
我多么期盼, 醒不来.


9月10月11月.

很久没有给自己定过计划了, 慵懒随性拖沓.
就像一只疏于打理的鱼竿, 偶尔浮漂轻轻的扯动, 只是睁开半只眼睛, 斜斜的瞟.

我从未考虑过未来有什么样的”梦”,
也许只是懒惰, 只愿功利的一步一步数着脚下的石头,
直到前几个一例在天明才睡去的夜里,
胡思乱想的发呆, 放着各种幻象的幻灯, 一张一张模糊又绚烂.

——想起高考拿成绩那天怎么带着红肿的眼睛入睡,
——又想起几年来路过dream college的不甘和后悔,
——再想起这半年来, 已然努力过的日日夜夜,
发现离上一次撕心裂肺的遗憾已经过去3个年头了.

尽管带着太多的疑问和不确定,
还是准备在接下来的2个月认真的准备和拼搏一次.

再见, 懒觉, 再见, 拖沓.
你好, 亲爱的自习室,
你好, 亲爱的ETS, 我又来送钱了.


弯路.

好久没更新了 [一皿一]
鉴于一般把牢骚丢在这个blog,  就继续牢骚.

假期忙TOEFL浪费了一半多的时间,
旅行继续挥霍剩下一半的一小半时间.
剩下的时间丢给了发呆.

8月3号把svm-predict的程序写好了跑了一次,
结果数字一看荒谬得可笑, 就呆住了.
Nucleic Acids Research那篇paper又翻出来看才发现自己还在用蒙特卡洛的负样本生成,
paper里用的是寻找基因间的负样本序列.

此后由于发呆,旅行和继续发呆耽搁了很久,
昨天晚上把这部分修改好的程序跑了一次, 结果比原来好了一点, 不过还远没有摆脱“垃圾”范畴.
早上不甘心把libsvm的文档翻出来看, 又发现一堆问题.

1. 我的training set和test set的scale不是按比例进行的, 必然出现巨大的偏差.
2. 没有进行grid search找核函数的最优参数.

想来要把grid search的程序写出来又是个体力活, 还得用POSIX线程库来实现并行的计算, 否则只怕效率让人抓狂.
所以还得回到原来的老路上, 用程序输出参数, 用libsvm的工具包进行数据处理.
嗯, 经过了过去N小时的coding和与Segmentation fault的斗争后, 又重新回到原点了, 还是有点郁闷.

希望把scale和grid-search的问题解决后, accuracy和最后的结果都能有较大的改观吧.
否则… 否则肯定是哪里出问题了.

写了半天破流水帐,
说来我还想把glimmer的paper和程序都好好看看,
虽然这个和我现在做的事情好像又差了十万八千里.


squid 3.1 的反向代理笔记.

记下来, 免得忘记了:

2.6的httpd_accel_host 已经不被3.1支持了,
3.1的反向代理/透明代理都在http_port里设置, 不过这样一行就搞定, 很简洁.

反向代理的设置:
http_port host:port accel vhost vport

accel表示使用反向代理加速, 后面两个表示virtual host和virtual port.
其实我没必要记的诶?
有manual嘛… 囧…


基于nginx的wpmu hack, 使得nginx代替php处理静态文件.

php处理静态文件让我很不舒服,
所以今天研究了N久如何绕开php来做静态文件的处理.

先选取了自己以为最简单的实现方法, 用squid做反向代理.
装上了squid 3.1, 发现网上的config教程都是2.6的, 完全不适用,
研究了manual后, 配好了反向代理,
接着, 尴尬的事情就发生了, 因为是本地做反向代理,
无疑通过nginx来进行proxy_pass的结果就是死循环…

nginx –[proxy_pass]–> squid –[http request]–> nginx –[proxy_pass]–> squid…

太糟糕了, 要解决这个问题只有通过实现两个server, 并且重写host来实现反向代理.
庞大的工程. -____-#

后来转向nginx的X-SendFile功能,
原理是捕捉到特定的X-Accel-Redirect头后,
通过实现一个内部的location, 来完成一个重定向.

不过事情没有这么简单, 现有栋力博客的重写规则是:
rewrite ^.*/files/(.*) /wp-content/blogs.php?file=$1;

而静态路径里也含有 /files/ , 所以会被同时重写, 最后返回一个500 Internal Error,
并且这个error是没法通过FireBug或者日志来trace的.
研究了下nginx的判断逻辑, 加了一条URL判断后终于搞定.

详细的步骤如下:
[Read more →]


You fucking thieves really pissed me off…

看了下统计日志, 居然有一堆来自什么合肥论坛的请求,
过去一看发现有人把博客站的图片设置为签名图…

在nginx里鼓捣了半天防盗链发现没效果,
还以为nginx的bug, 囧…
结果后来发现一行邪恶的rewrite:

rewrite ^.*/files/(.*) /wp-content/blogs.php?file=$1;

我X, wpmu大能啊, 用php处理静态文件, 怪不得nginx的处理referer的判断一点作用没有…
还好仔细看了代码, 还有处理缓存的能力, 不然真要吐血了…
(这也多多少少解释了我总觉得博客站的静态文件性能及其低下)

有的时候啊, 为了URL好看, 真是害死人啊,
用php处理静态文件这种弱智方法都想出来了…

加了referer判断, 收工.
用签名图的人渣全部去死吧.

$referer = $_SERVER['HTTP_REFERER'];
if (strpos($referer, ‘.dormforce.net’) === FALSE)
{
status_header( 403 );
die();
}


有关统计插件的更多说明…

下午写得很含糊,
毕竟也在很早期的测试阶段,
所以图上没有具体的数值标注, 我也没有解释蓝绿两条色有什么区别.

其实蓝色区域是当日的所有访问,
绿色是有Referer的访问, 即有访问来源的访问.

有关这个统计插件, 大部分的底层工作基于项目ioTATS,
ioTATS是一个realtime的日志处理软件, 当然也可以用来离线的处理文件.
我大概在2月底到3月初的时候开始断断续续的写ioTATS,
最初是准备为nba视频站做访问统计, 最后就发展成为了一个相对完善的统计软件.

博客站的访问统计实际是ioTATS第一次的生产环境应用.
实际realtime的日志处理的隐患是一旦程序崩溃, nginx就会因为无法把日志写到具名管道而出错.

另一部分的工作, 即用于给前台的wordpress插件提供json数据的webservice,
一大部分工作基于est大牛的s1 http服务器.
之所以没有没有采用wsgi/fastcgi的方式来实现,
是因为实在懒散, 不想再去改nginx的配置加上fastcgi转发配置,
考虑到这个webservice负载极其轻微, 就直接抓过来HTTP服务器用了.

用于统计图的绘图的工作由matplotlib完成, 从这个诡异的名字可以看出来,
这个绘图库基本是在复制一个matlab绘图函数库.

具体的wordpress插件很简单,
基本就是从webservice读入数据, 输出为HTML就可以了.
另一方面, 访问统计目前有缓存, 访问次数设定为每小时刷新一次,
而访问记录的绘图是6小时才更新一次, 我想也没有谁BT到对这个统计数字有关注强迫症吧?

做这个插件之前, 我一直在考虑怎么只呈现PageView的访问次数, 而不是所有的request,
后来在nginx里改了点配置, 对所有的css, js, 图片等等文件使用了不同的日志设置,
就保证了被ioTATS捕获的基本是页面访问.

未来考虑提供的统计项目可能有独立IP, 流量以及搜索keyword等等.
在已有的框架上, 实现起来就很容易了.

觉得困得很,
话说陶喆同学的演唱会专辑总是很好听.

去躺会儿好了 .


304 Not Modified.

稍微修改了古董级别的 imgc.php,
这个负责从memcached里取出头像缓存输出到HTTP流的脚本.

无疑每次访问都传输二进制流, 而不利用浏览器的缓存是可耻的,
是粗暴而生产力低下的折磨服务器的落后的生产方式.

所以让它支持304头了,
虽然还是一样的落后,
而且对于用户来说, 基本是不可见的变化.


← Before