Future模块和AnyEvent事件驱动的结合

05 Jan 2014 Posted in  perl

上个月的 advent calendar 活动中,有一个新的模块进入我们视野,这就是 IO::Async 模块作者写的 Future 模块。通过 Future 模块,我们可以做到对异步请求的各种控制,比如: 继续阅读……


2013 年度个人总结

31 Dec 2013 Posted in 

又到了一年年底。照例(虽然这个例也就是去年开始的)开始年度总结。 继续阅读……


为比特币绘制 MACD、BOLL、KDJ 指标图

09 Dec 2013 Posted in  python

比特币是最近相当火爆的一个金融衍生品(瞧咱这口径)。比特币中国提供了一系列 API 来获取和操纵其市场内的比特币。我的小伙伴们基于其 API,完成了一套交易程序。为了提高操作的有效性和技术性,同时作为 python 学习需要,我也参与进来,仿造股票交易软件,为比特币中国绘制了一系列指标图,包括 MACD、BOLL、KDJ 等。截止上周,btc123 也开始提供了 MACD 指标图,所以把自己的实现贴到博客。 继续阅读……


为 gitolite 实现 mailinglist 命令行操控

09 Dec 2013 Posted in  perl

gitolite 是一个很常用的 git 仓库管理软件,可以通过命令行方式便捷操作自己拥有权限的项目仓库。不过不是所有的操作都可以通过命令完成,很多还是需要通知 gitolite 管理员来统一修改配置然后生效。比如通过 hook 发邮件这件事情。邮件收件人地址肯定每个项目就不一样,这个还要让管理员逐一来改,就不太好。所以这里实现了一个 mailinglist 的命令行操作子命令。 继续阅读……


Puppet 的类参数传递

04 Nov 2013 Posted in  puppet

之前使用 ENC 管理 puppet,尽量保持了输出 yaml 内容的简单,只提供了一个统一的全局参数定义 node 的 role。(题外话,puppetlabs 推荐了另一个通过继承关系实现 role 的示例,见:Designing Puppet - Roles and Profiles。) 继续阅读……


用 Perl 读取通达信日线数据

04 Nov 2013 Posted in  perl

之前看 skyline 的报警机制的时候,为了寻找测试数据,曾经想到是不是可以用股价走势。其实股价走势分析也是一个很深的编程领域,有些选股软件一份就好几千的卖。当然我这里没兴趣和时间搞那么复杂了。简单的说一下如何从通达信的存档里读取日线数据,说到底还是 pack/unpack 的运用: 继续阅读……


selinux 对 webserver 文件发布的影响

26 Oct 2013 Posted in  linux

SELinux 在国内是一个很少有人用的东西,一般来说,服务器上手第一件事情就是把 SELinux 关掉,以至于有问题的时候排查思路里都压根没检查 SELinux 这步。 继续阅读……


用 plenv 代替 perlbrew 管理 Perl5

25 Oct 2013 Posted in  perl

我们都知道有 virtualenv 啊,rvm 啊之类的工具来管理 python,ruby的多版本问题,后来台湾的朋友也引入到了 Perl 世界,这就是 perlbrew。 继续阅读……


Perl 的 overload 妙用

16 Oct 2013 Posted in  perl

在使用 Mojolicious 的时候,通常我们会发现一个很有趣的现象。 继续阅读……



用 ElasticSearch 支持 Rexify 网站的搜索功能

14 Sep 2013 Posted in 

最近给 Rexify 官网做中文化工作,除了文字翻译之外,还要负责把服务正常跑起来。网站本身就是一个 Mojolicious 写的小东西,用 morbo html/website.pl 命令直接运行就可以监听在 3000 端口,然后通过 nginx 代理发布即可。 继续阅读……


Perl 和 Python 的 pack 函数格式字符的区别

10 Sep 2013 Posted in  perl

MooseFS 是运用很广泛的一个分布式文件系统,其自带有一个 python 写的 CGI 页面,可以查看集群状态。不过对于运维来说,这就不太方便纳入 nagios 等其他现有的监控体系中。好在既然它的 CGI 是 python 写的,那么自己照样临摹出一个监控脚本也不是太复杂。 继续阅读……


编译最新 3.10 内核在 RHEL6 上支持 Docker

27 Aug 2013 Posted in  cloud

之前在 Fedora19 上试图自己通过编译 3.10 内核的方式来完成 aufs 的支持,但是一直有问题,哪怕同样的步骤,github 上其他人都可以,只能怀疑是我个人电脑问题了。不过后来通过 SPEC 方式完成了最终测试,感谢 sciurus 童鞋的项目继续阅读……


在 Docker 上运行 PerlDancer 示例

26 Aug 2013 Posted in  cloud

搭建好了 docker 环境后,就可以来试试用 docker 跑一个应用实例来看看了。和 Vagrant 比较类似,docker 也是用一个配置文件来规划其基础镜像内的部署,不过值得注意的是,在 Dockerfile 里的每一个指令成功执行后,docker 默认都会 commit 一次,这样就节省了一些空间和时间。 继续阅读……


快速在 CentOS6 上运行 docker

24 Aug 2013 Posted in  cloud

docker 是由著名 PAAS 公司 dotcloud 开源的 linux 容器项目,在此之前,只有 cloudfoundry 下属的 warden 半死不活的慢慢前进着。 继续阅读……


BeiJing Perl Workshop 2013 参会总结

14 Aug 2013 Posted in  perl

上周六在万通会议中心参加了 BeiJing Perl Workshop 2013 ,并做了 40 分钟长的关于 ElasticSearch 的演讲。上届 2011 作为一个看客,两年后作为一个积极参与和演讲者,真的有必要记录一下。 继续阅读……


Selenium 测试框架介绍

22 Jul 2013 Posted in  perl monitor

Selenium 是一个自动化网站测试框架,包括 IDE、WebDriver 和 Grid 三个套件。其官网地址见:http://docs.seleniumhq.org/projects/。其中 Grid 用以跨主机的集群测试,今天就不讲了。而 WebDriver 则是用以控制 Selenium Server(Server 上可以接受并启动的浏览器包括Firefox、IE、Chrome、Safari、Android、IPhone、PhantomJS 等等)进行具体测试动作的客户端,其早期版本叫做 Remote Control。 继续阅读……


【Logstash 系列】根据事件统计值报警

11 Jul 2013 Posted in  logstash

之前已经用很多博文说过了 logstash 如何配合 elasticsearch 以及 kibana 来做日子分析和实时搜索。其实 logstash 上百个插件还有很多其他的玩法,绝不是局限在日志搜索统计方面的。今天就展示另一个做法。根据日志中的异常值出现频率报警。 继续阅读……


获取 Perl 程序中 GET 请求发向的具体 IP

28 Jun 2013 Posted in  perl

在运维工作中我们经常需要检测用户访问是否正常,一般来说,直接通过 DNS 客户端获取 A 记录就可以满足需要。不过如果我们可以获得具体连接的 IP 地址,那么就可以缩小问题的判断范围,因为 DNS 的 A 记录通常是有多个的。 继续阅读……


计算两个时间点之间隔了几天

24 Jun 2013 Posted in  perl

两个时间点字符串,像这样:2013-06-21,怎么计算相距多少天呢? 继续阅读……


如何去除 rpmbuild 自动发现的依赖关系

21 Jun 2013 Posted in  linux

同事在用简单的 SPEC 配置打包 nagios 套件的时候,发现最后生成的 RPM 包附加了很多依赖关系。其中 perl-Net-SNMP 这个包,是服务器默认安装中没有的。这也不是什么大问题。不过这个出现还是蛮奇怪的。值得研究一下。 继续阅读……


通过 Rex 命令行参数向动态服务器组发起任务

20 Jun 2013 Posted in  devops

Rex 默认的服务器组定义方式有三种,直接写在 Rexfile 文件中;每行一个写成 IP 列表保存成文件,然后通过 lookup_file 读取;把组名和 IP 写成 .ini 格式文件,通过 groups_file "$name.ini" 一次性获取。 继续阅读……


【Etsy 的 Kale 系统】skyline 的过滤算法

19 Jun 2013 Posted in  monitor

监控大户 Etsy 最近有公布了一个全新的监控分析系统,叫 Kale,博客地址:http://codeascraft.com/2013/06/11/introducing-kale/继续阅读……


【Etsy 的 Kale 系统】简介、部署和应用

18 Jun 2013 Posted in  monitor

监控大户 Etsy 最近有公布了一个全新的监控分析系统,叫 Kale,博客地址:http://codeascraft.com/2013/06/11/introducing-kale/继续阅读……


【翻译】运维的85条规则

12 Jun 2013 Posted in 

2007 年,时任虚拟世界游戏公司 Vivaty 运维副总裁的 Jon Prall 在他的个人博客上发表过一篇《运维的85条规则》。2010 年他跳槽到视频电话公司 Tango 之初,做了两处更新,兹翻译如下: 继续阅读……