大头龙仔Blog

A strong man can save himself. A great man can save another.

我离开了,其实我回来了

| Comments

今晚下起了一场大雨,仿佛带着点不必要的伤感似的。 是的,我下星期就要离开我待了四年,充满了回忆的,美丽的西溪小学,是的,我选择离开东莞,再次回到深圳,是的,就为了那依然年轻的那一丝追求,还有那谁都不能定义的未来。 这是思考了将近一年时间的决定,很艰难的抉择,毕竟我已经成家了,家庭因素是首要考虑的。 这里首先要感谢小静,她总是能理解我的想法,支持我的决定,虽然的确是很纠结。BBin说得对的,如果能努力找到一个工作与家庭的平衡点,也未尝不可是一个选择方案,因为男孩子早晚都要肩负起应有的东西。 虽然我知道,你舍不得,我也舍不得,长辈朋友们都舍不得。就如同我老友说的:什么都不能舍弃的人,就无法带来任何改变——《进击的巨人》

在学校这四年时间,我学到了很多珍贵的东西,多少的人和事都历历在目,甚至咋一想,就能想起某人的嘻哈大笑。Bird说我四年最大的收获是结婚生子,我去,好像这也对。而我遇到了前卫的校长,开始接触苹果的产品,直到我遇上MacBook才发现这才是程序员用的神器,再到在学校搞起了Rails,还有很多很多……还记得当时到学校时没有办法室,我就整天在机房里编程,用PHP花了一个月左右的时间做了一个数字化平台的雏形出来,还记得那时在RTX上介绍自己:大家好,我叫刘楚龙,毕业于华南师范大学软件工程,酷爱街舞……我相信这些历练,会使得我与众不同,感谢这些日子。

下面这段话是我老师说的,我完整的摘录下来: “人的一生是漫长的,我们总在不停遇见与离别之间徘徊、反复。很荣幸地遇见,彼此相识、熟悉、牵挂、思念,到了最后,随着时光的推移,来了,又去了;留下了,又走了;然而,我们要懂得珍惜每一次的遇见,珍惜所有踏过的足迹。 某一些事,某一些人,在我们的心里形成瞬间成永恒的影映,我们会因此哭或笑,然后就那般安静下来,一颗心恬然自得。人生就是这样一场又一场的际遇,只是多么希望我们都能够在这场际遇里,收获自己内心最渴望的那一缕情愫,满足自己的需求。 坚定、坚强、执著、淡然、随缘,无论我们的生命里那些曾心心相惜的人来与不来,在与不在,愿我们都能够站成优雅的姿态,守护在自己的心灵后花园里,不离不弃、不远不近、默然相守、寂静欢喜。 ”

是的,我离开了,不代表我不感恩,也不代表我不尊敬您,感谢你和你们对我的包容与鼓励,真的。

2010年,HBin说不如你不要走吧,那时我坚决地走了;2014年,感谢他给我带来的机会。 我清晰地记得那晚你对我说的话:当年你在深圳,我去面试时,你请我吃沙县,你要走时,我叫你不要走,而现在你又想回来,你不需要感谢我。这些东西可能是一个轮回,就像一个婴儿出生时,婴儿在哭,我们都在喜悦地欢笑,当你慢慢老去,在某一天,你周围的人在伤心地哭了,而你可能是很安详地开心地走了。

感谢每一位小伙伴,这里就不一一点名了,谨此纪念!

Rails无痛ElasticSearch

| Comments

最近因为需要,在项目里加入ElasticSearch,总结一下这个无痛教程。

1、 安装elasticsearch-rtf

这是个好东西,已经集成常用的插件(不要忘记要装个JDK,不然ElasticSearch就启动不了),安装完成后就启动这个东东。 如果你想加到系统启动,就要看看bin/service/elasticsearch的命令说明。

2、在Rails项目中加入elasticsearch-rails

Gemfile加入:

1
2
gem 'elasticsearch-model'
gem 'elasticsearch-rails'

bundle

3、建立查找索引

这里我有个Post的Model(有几千条记录),有个title的字段,现在我需要ElasticSearch为title字段建立索引,以便查找:

1
2
3
4
5
6
7
8
class Post < ActiveRecord::Base
  include Elasticsearch::Model
  include Elasticsearch::Model::Callbacks

  mapping dynamic: false do
    indexes :title
  end
end

Import数据,我用的是官方的Rake Tasks,以Post为例就是这样子:

1
rake environment elasticsearch:import:model CLASS='Post' FORCE=y

如果在Production环境:

1
RAILS_ENV=production rake environment elasticsearch:import:model CLASS='Post' FORCE=y

而新加入的数据就会有Callback调用加入索引,这就不用我们操心了。

4、中文分词

elasticsearch-rtf里的elasticsearch.yml文件默认是用keyword的,按照我的理解是,需要全部匹配。 例如有个title叫abc,如果你用a来搜是搜不出来的。所以这里我会改为mmseg,这样就会自动帮我们分词了。(记得重启ElasticSearch)

5、测试

Post.search('blabla')来试试看: )

6、最后

这只是一个无痛的最最基本的能让ElasticSearch加入到我们Rails项目中的指导,ElasticSearch还有好多好牛的东西(我暂时也没有这个需要),请移动到guide。例如你可能需要为搜索后的结果进行一定的排序之类。

EOF

Octopress從GitHub迁移到GitCafe

| Comments

由于某些原因(大家都懂的),Blog放到GitBub上的速度实在不给力,前段时间知道GitCafe支持GitCafe-Pages后,就把Blog迁到GitCafe,速度杠杠的。 下面就说说把Octopress Blog发布到GitCafe的过程吧。

下载安装Octopress(参考官方Documention)

写Blog

我自己的做法是,新建个叫source的branch,然后在这个branch上写blog,master分支不要动,以后更新了master后,就可以在source下git rebase master来更新source分支了

Deploy

因为Octopress的rake deploy命令是针对GitHub的,所以这里需要对Rakefile开刀了

因为需要把rake generate后的文件都推送到GitCafe上的gitcafe-pages分支,所以这里先来设定生成静态文件的目录和推送的分支 查看代码

我的octopress目录里有三个git分支: master, source和gitcafe-pages,每次rake deploy后,source保存的是源文件,gitcafe-pages保存的是生成网站静态文件,这两个分支都会推到GitCafe的服务器上。 查看代码

自定义域名绑定

请参考GitCafe Pages服务现支持自定义域名绑定

EOF

Slackware to Debian

| Comments

最开始接触Linux是在大一,还记得当时看的一本入门书叫《A STUDENT’S GUIDE TO UNIX》。然后自己折腾过很多Linux发行版,CentOS,Debian,Slackware,Arch,Gentoo,LFS,还有FreeBSD。后来非常长一段时间都在使用Slackware,我记得当时用的是Slackware 10.0。

至今,手头上还有机子是用Slackware的,包括以前的Linode VPS、现在学校的服务器等等。

我想,只要玩过Slackware的人,都知道他有明显的优点:简洁、稳定、高效。因为它里面的软件包都是原汁原味的,虽然包的数目不多,但加之SlackBuilds的,总数都有四五千个,日常是足够用的,起码在我的使用经验来说已经足够。PkgTools包管理机制,最大的特点是无依赖,这可以说是优点,也可以说是缺点。优点当然是这样组织起来,包与包的关系很明晰,要什么包就装什么,而不会装了一些不相关的包。缺点也明显,就是对管理员有一定的要求,起码是了解Linux的,如果装一些软件,可能要手动解决包间的依赖关系。我一般都是用Full Installation的,如果用SlackBuilds,也会列出相关的依赖,手动解决也很快,现在也有sbopkg这个工具。还有一点我很欣赏,就是它启动脚本管理方式是那简的简洁简单。

说了这么多,那为什么我现在下定决心转到Debian呢?其实也有非主观因素。对于服务器的管理,可能并不是你一个人,一直打理下去,总得有时会换人吧?!对于slackware,特别是在中国,真的太少众了,资料也缺,假如换人了,那他管理起来可能比较吃力。至少Debian来说,管理起来要方便快捷得多,团队也强大,当然包的数量也是我选择这个发行版的原因之一。有人问,为什么不选CentOS,我一向不喜欢RPM系的,所以,没办法,而Debian的开放自由,刚刚好可能满足我和今后相关管理人员的最基本需要,虽然我真的不喜欢deb装一大堆依赖的东西。

每个人做出一个选择,都有自己的现实需要。还记得那句话,服务器稳不稳定,除了好的发行版外,更关键的是作为一个服务器管理人员的技术水平。所以,说到底,哪个版本都不重要,重要的是,能用好,用到点子上,并能一直稳定地工作下去。

说个题外话吧,以前Slackware给我印象,是因为求稳定,很多软件包的确比较旧,但现在用Debian了,发现,Slackware的包已经非常新了。Slackware的发展也根据现在Linux发展一样,慢慢地加快,跟上了脚步。但我也相信它可以一直坚持它KISS原则,一直良好地发展下去。

Migrate to Octopress

| Comments

迁移过来了,从此加入Markdown阵型。

从wordpress里导入了280篇博文,因为是导入过来的,所以还保持了html代码,可能会有些练练的,但基本上不会有太大影响,我也就不花时间再去重整了。

回想一下,好久好久没写文章了,这个在今后会有改善。