代码工匠

Walking The Long Road.

工作满两年时候的总结

最近工作处于低靡状态。公司玩转型,但是也没转出个啥效果。组里转到前端开发了,产品方向不定,至今也没做出个啥玩意来。工作内容缺少挑战性,更多是跟产品形态打交道了。不是很喜欢这个领域。升职的事也说不准,虽然自己只有两年工作经验,但是由于读书太久,岁数却接近30了,有点危机感。

生活上丰富多彩。女儿出生了,开始操心起来了。压力也大了些,要计划买房了。老婆工作不顺利,不过她自己也没太大所谓,随遇而安吧。

业余项目也挺丰富。BlackHoleJ和webmagic有了不少star了,都有了公司级用户,也得到了不少赞扬。

webmagic的设计机制及原理-如何开发一个Java爬虫

image

之前就有网友在博客里留言,觉得webmagic的实现比较有意思,想要借此研究一下爬虫。最近终于集中精力,花了三天时间,终于写完了这篇文章。之前垂直爬虫写了一年多,webmagic框架写了一个多月,这方面倒是有一些心得,希望对读者有帮助。

Monkeysocks架构规划

monkeysocks的目标是为开发以及测试提供一个稳定的环境。它使用socks代理,将录制网络流量并本地保存,并在测试时将其重放。

jsocks的改造

首先对公司一个项目进行了代理,测试结果:从开始启动到完成,只有4.7M的网络流量,本地空间开销不是问题。

今天把jsocks修改了下,将build工具换成了maven,并独立成了项目https://github.com/code4craft/jsocks。后来算是把record和replay功能做完了,开始研究各种协议replay的可能性。

Monkeysocks开发日志

monkeysocks的目标是为开发以及测试提供一个稳定的环境。

2013-7-5 动机

前几天听说公司的测试团队在鼓捣数据固化的东西,说白了就是在测试启动时构建一个临时性的数据库,操作完之后再销毁,这样的好处是不造成测试副作用,同时屏蔽环境的差异。

玩转github之–神啊满足我的虚荣心吧

github版简历

http://resume.github.io/上有这个东东,但是样式太难看了。看到一个挺不错的模板https://github.com/hit9/GhResume,就给用上了。我的简历: http://code4craft.github.io/GhResume/

关注star

最近做的项目在github每天会有几个star,出于虚荣心嘛,经常忍不住就会去看看,有人star了没?有人fork了没?

每天看太麻烦了,干脆做成一个chrome插件,带桌面通知,有新star提醒,岂不开心?

于是有了exciting! 哥也会做chrome插件了!液!

一个shell下的todolist

使用和文件保存都挺简单,试试看吧!

http://todotxt.com/貌似还能同步到手机端?

下载之后,

ln -s xxx/todo.sh /usr/local/bin/todo

貌似这样会把东西存到/usr/local/bin/todo.txt里?不管了!

BlackHole开发日记-一次压力测试及JVM调优的经过

BlackHole开发很久了,目前稳定性、性能都还可以了,但是作为一个Java程序,内存开销一直是硬伤,动不动100M内存下去了,对于单机用户实在是不太友好。

怎么办?优化先从分析开始!

获取内存信息

获取内存信息一般使用jmap。

jmap -histo pid

这种方式获取到得比较简略,我们可以先把内存dump下来,再进行离线分析。jhat是一个离线内存分析工具,会开启一个web服务以供展示。

jmap -dump:file=dumpfile pid
jhat -J-Xmx512m dumpfile

换电脑了

公司政策,每个人给6500软妹币报销,可以买电脑。因为刚好WWDC开完,老AIR降价,本着好用和省钱的标准,就买了老AIR一台,7388包发票。

换到AIR最不习惯的是屏幕,PRO的屏幕是1280*800,AIR的屏幕是1440x900,所以字总是特小,原来12pt的字体非要14pt才能显示出来,MAC还没法设置默认字体,只能装了个Tinker Tool。设置之后,各种丑和切边…没办法,办公用,眼睛不累是原则!

换电脑之后,得把老的东西弄过来。这次RVM倒是一次成功了,换了gem的source为淘宝的,更新还挺快的。octpress又重新装了一次,好像ruby的包好多都是安装到一个目录下可用的?最后只能把原来的octpress连同博客一起拷贝过来了。

使用webmagic抓取页面并保存为wordpress文件

之前做过一年的爬虫,当年功力不够,写的代码都是一点一点往上加。后来看了下据说是最优秀的爬虫scrapy的结构,山寨了一个Java版的爬虫框架。

这个框架也分为Spider、Schedular、Downloader、Pipeline几个模块。此外有一个Selector,整合了常用的抽取技术(正则、xpath),支持链式调用以及单复数切换,因为受够了各种抽取的正则,在抽取上多下了一点功夫。