宝宝出生了,八卦一下,记录一个.

八卦贴.乱七八糟的,一点条理都没有.
之前总是觉得宝宝会在20号出生,不知道为什么我希望咱家宝宝是双鱼座的,于是查了一下,发现双鱼的宝宝是到3.20号.另外听人说现在的宝宝一般营养都比较好,会提前一周出生.我于是就觉得咱家宝宝应该是20号出生.没想到小宝宝真的是这天出生的.看来爸爸的预感很灵验呀.
19号刚上班没多久呢,家里就打电话过来让回家,赶回家,送老婆去了医院.接到电话,我不慌不忙的收拾电脑,半仙同志问我,你咋还收电脑啊.我说,那也得收电脑啊.收拾完,下楼的时候顺便在招行取了5000块钱,呵呵.机器吐钱的时候很郁闷,为啥一次只让取3000呢,真费劲,又得再输一次密码,再取一次.那会觉得机器真慢.
下来来到马路上,一个出租车也拦不到,不管了,一个黑车停下来,说送到家得30块钱,结果到家收了40,不过不管了,多少钱也得给呀.事后发现,原来这个点,出租车们都交班呢.到家了,孩子姥姥和小姨东西都收拾停当了.我给姥姥和小姨每人发了500块钱,以便需要安排她们买个东西啥的,拿上所有证件,就奔医院去了.
送到医院,咨询处让送妇产科.去了之后,医生马上下了住院通知,并让我去急诊处租一个小推车.我以为会有人帮我把车推过来呢,同时还以为会押钱呢.没想到是随便押个证件就可以,但是没人告诉我该把推车推到哪儿,因为一个人说要推到住院部去 一个人说要推到6楼,还好我想刚才是产科的通知我推的,应该是推妇产科去吧.推过去就有医生让老婆躺下,送产科住院部.
送去后,立马就是到检查室去检查,我去还小车.还完小车,就在护士站签一些手续,什么住院事项啦啥的.
检查等了有好久,出来后医生说还早,得先等着吧.安排好了病床,最近产妇多,病床紧张,我们在2号病房加的床,这是个很小的病房,本来两张床,加上我们再塞进去一张床,很挤.当天还没啥事,老婆还笑话她同学说咋痛了二十多个小时呢,我这感觉不怎么痛啊.没想到到凌晨4:00的时候就开始痛的厉害了,不过老婆没怎么吵我,我断断续续地窝在病床的那头睡足了觉.大概12:30的时候,老婆才在病床上躺下,就有医生过来征询意见,问:你的情况都挺好,得自然生.这样对大人恢复和小孩的成长都有好处,但是自然生产也不是100%的安全,需要给你讲明一下.于是老婆选顺产,然后医生就拿过来一张单子,让我签下:本人已经了解上述情况,要求自然分娩.那些什么可能的各种后遗症啊啥的,我都不管了.就觉得,我们家小宝宝的运气一定会很好的(嘿嘿,本人的心理素质很好的,没有被医生讲那些个意外情况吓着)
第二天早上8:00医生都来上班了就带老婆去检查了,很快就让我给送到产房去了,接下来我就是焦急地等待.到12点10分时候,孩子小姨给送饭来了,我刚开始端起来吃,护士通知我去陪产.
产房里当天没有什么人,同时在生的有两个产妇,另一个的小宝比我们的出生的晚.进去的时候发现早上一早给老婆送的早饭一直在护士那儿没转交给老婆呢(孩子姥姥跟小姨两人送早饭来居然走错路了,两人居然为了省点钱,没打车,步行15分钟到地铁站地铁,然后换公交….居然还能有心情换公交,然后到了医院门口发现没早饭摊….于是两人到处找早饭摊…. 于是两人送早饭来的时候被我批了,这两人就是节约呀,可是节约得看情况呀,这边饿得头昏眼花呢,我头天可是先每人发了点钱的,就是怕临时有需要花钱的地方..)
推进产房的时候,医生特地问昨天睡了没.老婆说一直没睡,医生咕哝着说”那得打一针杜冷丁,让你睡一觉”.进去后就给老婆打了一针,果然就不痛了,混混乎乎地睡着了,到11:00点后才醒.唉,因为头一天医生要我们记录阵痛的间隔时间和持续时间,没有说让抓紧时间睡觉….于是老婆在没那么痛的时候也在坚持数数呢,杯具…
我进去时穿了一件薄薄的毛衫(产科病房现在不停暖气,很热),护士让我给穿上护士服,这衣服很可笑,还要戴上可笑的帽子.不过这衣服后来管用了.进去后,老婆已经痛得受不了了,一个护士过来推过来一个胎心监护仪.刚在老婆的肚子上绑好,老婆就迎来了新一轮阵痛,乱锤乱打,大叫”我不活了”,”让我死吧”,”杀了我吧”,”医生,给我剖吧”…
老婆实在痛得受不了了,居然用力扳病床的护拦,后来就上嘴咬了,嘎崩嘎崩地响.我一看坏了,这一会把牙咬下来还得先给嘴里打麻药止血.这可不好,来不及想,想到有个片里好像是老婆生孩子的时候直接死咬老公的手,于是就把手臂递了过去,老婆可不客气,直接就咬上了.
这时因为刚才老婆乱动乱抓,胎心仪居然听不到胎声了,护士一看胎心没了,就慌了,赶紧叫医生.医生也很紧张.这时老婆阵痛过去了,清醒了,医生说:你这个人怎么这样啊,你这一乱动,孩子缺氧,你这十月怀胎不白辛苦了么?谁生孩子不痛啊,哪能像你这样乱动呀.balabala地一顿教训的同时,让护士去拉另一台机器来.
老婆这时一下急了,用企求的语气说:那我不动了,我怎么也不动,死我也不动.死我也要保住孩子,不管怎样你们要保孩子…我赶紧用手贴在老婆肚皮上,说:没呢,孩子好着呢,好着呢.
这时另一台机器也装上了,医生给涂上耦合剂,孩子的心跳又扑扑扑地在响了.我赶紧让老婆听听.老婆还是很紧张,我不停地给他说孩子没事,好容易她才确信孩子没事,平静下来.
接下来,又痛了好久,机器录了20分钟的胎心后医生过来取走了,就再也不轻易往这儿来了.老婆中间就是不停地痛,阵痛来的时候就满头大汗,死命地咬我的胳膊 ,揪自己的头发,但是肚子再也不动了,连翻身都不翻.后来老婆想喝水,我发现没水,水还在姥姥手里呢,于是打电话让送,这里姥姥居然没听我的话在产房门口等候差遣,跑出去买纸去了(后来又被我吼了几句).我瞅了一圈,只发现一杯深红色的紫米粥,想打开,结果一下子溅的到处是,被子上也是,跟血一样.怕护士进来又一惊一怍的,趁老婆阵痛过去的工夫,赶紧撕了件衣服还是什么东西,给快速地擦了擦.接来我飞快地跑出产房,到病房里拿上一个水杯,去打了一点水送过去.后来想挺可怕的,幸好那个时间点没有别人生宝宝,要不产妇或孩子被我这么猛跑一撞,那就出大事了.中间有医生从哪个病房发现外面有人狂奔,出来大声问谁在那跑呢,不过问的时候我已经过去好远了.
再一阵阵痛过去的时候,我出来找到护士和医生,告诉她们一会见到老婆床上和地上的深红的东西要镇静,不要慌张,那个是紫米粥,不是血迹干了的颜色.
后来老婆又痛得实在受不了了,让我去叫医生,说要改剖腹产我刚要出去的时候,她叫住我,说:在门口喊.我一下子就知道,老婆怕我出去了,她需要我在她身边.于是在门口大喊医生.
叫了半天医生才过来,了解我们想剖之后丢下一句,”不行”,就走了.
再后来老婆突然说,上午给我打了杜冷丁,给我再打一针吧,实在痛得受不了.
结果仍是一样,叫了老半天,医生过来了解了一下,
后来我上网查了查,原来已经打过杜冷丁了,短时间内不能再打麻药了, 所以医生很坚决地就说不行了.
接下来阵痛就越来越快,持续时间也越长,基本上就是我赶紧把胳膊拿下来没缓过来老婆又开始要咬东西了.
然后某次过来一个护士来瞅,我让她把医生叫过来一下,问怎么我们这儿都没有人管一下啊.然后护士回去了,经过漫长的等待后,过来一个医生,给检查了一下,说:继续等,开四指了.
接下来,同样是老婆的痛苦和我不停地安慰.老婆很在意小宝宝的情况,除开揪头发和咬我的胳膊外再就是一些小动作,让我帮他,比如咂咂嘴唇就是要喝水了,老婆总是满头大汗,所以不停地要喝水,再就是五个手指头平伸着动一下,就是想让我摸摸肚皮,想知道小宝宝的胎心怎么样,这时我就移动一下胎心仪的大概是探头的东西,让胎心的声音更大一点…
一直熬到下午3:30,医生才过来检查了一下,然后说要上手术台了,让我把宝宝的衣服留下,然后收拾东西出去.
后来才知道,对于自然生产的,医生都不是很重视,当天生产的有两个产妇,都是自然产.现在的产妇一般都选剖,平时人暴多,周末没有什么医生来,也没有什么产妇安排在周末剖.剖腹产的一来就是一大群穿着深绿色的重症病房的医生护士,围得水泄不通啊,那才是电视上看到的一把手术钳经过几个护士才传到医生手上,另外还站几个护士在旁边做记录的情况.而自然产呢,即便是在生产的时候,也只有一个医生一个护士.
16:00整的时候,我在产房门口听到宝宝的哭声.宝宝是半分钟前出生的.过了8分钟,护士抱出小宝宝,让我看一眼.小家伙瞪着两只明亮的大眼睛瞅着我,我刚想抱一下呢,护士说,你不能抱,然后就抱走了,接着出来问我要不要做纪念品,就是给宝宝的脚丫子印一个脚印.我没问多少钱就直接让做了,还好,也不是特别贵.不过,在产房买了一个产妇包,收了396,进去陪产,收了我200,做脚Y印收了60,打了一个不记得是乙肝还是卡介苗的哪一个收费是45.其中产妇包和打疫苗是开收条,而陪产给200是啥收条没有,应该是太急了.
大约一个小时之后,产房的门又一次开了,这次居然难得地同时出来了两个护士,一个推着大人,一个推着小宝宝的小车.我帮着把大推车推到了病房.在病房,护士推醒老婆说,你是自然生的,应该能恢复了,自己慢慢挪,挪到床上去.然后在几个人的帮助下,终于从产床挪到了病床上.母子平安,我终于松了一口气.
休息两天之后,医院就下了出院通知,因为大人小孩的情况都挺好,我们成了一连几个病房产后住院时间最短的.其实也没啥可比的,因为其他产妇绝大多数是剖宫产(好吧,我觉得写剖腹产让我联想到了日本人,我改个名称),至少得产后再在医院呆一周,有的产妇直到在医院休够一周出院的时候,还得扶着墙慢慢挪步.

好了,上 又拍看看咱家然然的片片吧.

cloudapi 悄然上线,欢迎各方人士拍砖

2010.3.24 最新消息,小宝宝出生了,为了表示庆祝,cloudapi也上线了,当前位于linode的fremont机房
很抱歉,由于目前网络问题,几个小小的线上设置一直有问题,在此向已经第一时间当小白鼠的各位用户道个歉~
稍事休整后将上次上线.谢谢支持!
最近云计算超级火爆呀,一米六二同学心一痒痒,也弄了一个域名来提供云服务.
本服务基于云上:运行于linode的vps上,达拉斯机房,有兴趣的朋友可以帮我测一下网速.
这个应用的地址是:
http://cloudapi.info/
域名还算很好记吧.
计划的目标是:
提供一个简单即用的分词,搜索,以及正文提取,文本智能分类,去重等文本处理的相关API.详情请查阅手册:
http://cloudapi.info/users/apidoc
通过phprpc提供的各种语言实现的php serialize函数,为多种语言提供调用.
如果一米六二有钱的话,会搭一套足够大的Key-value对数据库和消息队列以供使用,方便各位编程的同胞实现扩展性.
目前的实现已经能做到记录每一次出错的log.接下来还会对部分接口提供web界面试用(分词,提关键词,提正文之类的接口提供在线试用)

目前找小白鼠中.您的帐号信息一定会被保留,您的其他数据一定不会被保留(如果保留,纯属意外),但是测试期间意外发生的几率还是蛮大的~
同时,我们还在寻找:
1.更多的API提供.
2.计费模式等业务方面的指导(以后会提供收费接口)
3.rails我是前天才开始写,好多隐藏的小技巧不知道,如站点有漏洞什么的就请指出来,不胜感谢

到目前为止,我们还没有丢失数据~
寻找设计方面的哥们~ 有偿~

为什么我认为每个穷网站开发程序员都应该用Linux[工具篇]

1.因Mac很好用.详细的嘛,请看为什么我认为每个程序员都应该用Mac OS X?
而如果你买不起Mac的话,装个Ubuntu是不错的选择:Ubuntu可以免费给你把光盘寄到家,而WindowsXp不会(你可以昧着良心在小区门口以四块钱一张买,也可以挂机一天一夜从bt上download). 另外,Linux 跟Mac 有亲戚关系,他们都可以运行相同的Gnu程序,而windows不是.
2.讲好看的话,Linux 其实很好看了.比如我的这个桌面:
linux desktop
我的图标主题是elementary,一个热心的团队自己做的,打磨的非常精致.本来我以前是用的模仿Mac的一个主题,后来容易被人鄙视,所以就改用这个了.也挺好,不比Mac的差.但是我也不能保证这些图标可能有抄袭的成分什么的,也不接受在评论中讨论是Mac抄windows还是windows抄Mac的话题什么的.
3.这是正题:关于软件
a:开发工具:其实除开visual studio,我们有很多开发工具可以选.比如,最常见的vim.这里我就顺便秀一下我的vim.我主要装了这么几个插件:superTab,snipmate,zencoding. 很多人即使做服务器端开发也要用zend这个玩意,并且吧,还给不起钱,用破解版.他们对zend忠贞不二的原因是,记不住变量名,因此需要zend的自动被全功能.其实这个有了supertab后很简单:
vim
另外,vim的snipmates插件还能做到类似textmate的snippets功能.也秀一下:
新建一个php文件.输入fun,紧接着按tab键:
vim-snipmates1
按了tab键之后就成了这样:
vim snipmates2
直接输函数,按tab键,接着输函数内容.注意,这里自动补全的内容我稍做了调整,如果您也要做调整,请修改~/.vim/snippets/php.snippets文件.
zencoding的用法是这样的:
新建一个html文件,新起一行输入:

html>body>div#main-wrapper>ul.general-nav>li.no-list

按Ctrl-Y再按逗号,就会补全成为:

<html>
<body>
<div id=”main-wrapper”>
<ul>
<li></li>
</ul>
</div>
</body>
</html>

<html>
<body>
<div id=”main-wrapper”>
<ul class=”general-nav”>
<li class=”no-list”></li>
</ul>
</div>
</body>
</html>

怎么样,很省事吧.
b.开发语言了.嗯,这个我就这么说吧,我了解很多大公司的服务器端环境,基本上就知道稍大一点的用windows做服务器的就只有两种情况:一是被逼的,比如一些财经类的接收数据的….因为用卫星天线什么的收数据,只有windows的驱动.还有一种,是跟微软合作紧密,而且一开始就用的windows的系统,即便如此,他们也为windows服务器的高昂费用和不稳定性深感苦恼.我知道的这因为后一种原因上windows服务器系统的两家公司,后来都上了一半的linux机器做server. (题外话,有不少技术人员主导的创业,一开始选型的时候头脑不清醒,一种选择了windows做网站服务器后来不稳定,经常出问题.一种选择了python/ruby类的新技术,结果后来招不来人,来了人也给不起工资.我建议是,这些技术人员,要么对学新技术感到力不从心,没兴趣,要么没有团队精神.如果新创业,我建议就主流技术好了,php,jsp都行. .net吧,成本太高,一个lincense几万呢. rubyonrails呢,太新潮,团队一时半会成不了规模.)
既然服务器都用*nix系统,那你的笔记本,最好换成linux是不是?熟悉熟悉环境呗.
c.日常工作
如果您说,管理伤务太重,太多需要做PPT,画甘特图啥的,那你基本已经不是网站开发程序员了,不是受众了.如果将来您升成CEO,每天陪银行家打打高尔夫,没事去欧洲参加个达沃斯论坛什么的就行了,电脑也不需要了呀.
顺便说下,linux下的一些跟日常办公相关的替代工具(这些是我正在用的:)
邮件客户端,如果懒得换,用默认的evolution就挺好.基本就是一个outlook的翻版.我以前用它.并且用一个叫taque的GTD工具,把任务存在evolution-data-server里,这样evolution也可以提醒我.我现在用的是thunderbird 3 beta.非常好用,搜索功能很强大,界面也很漂亮.强烈五星级推荐.如果您也是苹果界面爱好者,您可以装上thunderbird的iLeopard-Mail 皮肤,很漂亮.thunderbird从2到3的这个大版本升级,很是让人惊喜.

项目管理:这个,默认的,planner.没啥好说的,我也用.团队小,用着很好,没啥不适.
截图工具:要给QA截个图报个bug?没问题,用shutter.支持截全屏,截指定窗口,截指定程序的菜单,截指定选区,截一个tips,截一个网页等,截完可以加标注,还可以一键上传到几个图片共享站和FTP站点.我需要的它全有.
网页和图片三剑客:这个,本来有gimp,但是我不习惯用.我用wine来模拟adobe的一全套软件:fireworks,dreamworks,photoshop. Macromedia是个好同志,啥东东都能用wine完美运行.而且这几个软件一来就可以试用上一个月.我一般都懒得找什么破解之类的,我就不停地试用,不停地重装(哥有毅力吧).wine工作得很好,速度也很快(我感觉比xp下快,就是不敢用wine跑IE6,那个超慢,IE7还可以接受).这么搞图片,猥琐是猥琐了点,不过我真的很喜欢~
我唯一的遗憾是:不能native地运行旺旺.虽然做为一个阿里系的,我仍然要鄙视一下阿里软件,到现在也没出一个支持mac或是linux的旺旺.这个是上班必须的,很痛苦.当然,如果你不是阿里巴巴的,也就没这个痛苦.
(另外还有点不爽的事,内网证书只能在xp下导入,无法搞到linux去,不爽)
其他工具:
Gnome-do:似乎是Linux 版的QuickSilver. 强烈推荐.这个窗口比较特殊,自动隐藏,不知道怎么截图.但是仍然强力推荐.
Docky:本身是gnome-do实现Dock效果的一套皮肤,后来独立出来,成为一个单独的软件.我觉得开发者很有功底,功能够用就好,简单极致,跟gnome-do一样,默认功能就够了, 一般人不用去做配置,这个跟一般linux程序还真不一样.那什么openbox,e17啥的,不配置简直没法用了.
easystroke:
是一个鼠标手势工具.我有一个汉王手写笔(鄙视我吧…..),用它来配置了,画个e就是启动chrome上网,画个叉是关闭窗口,画个波浪线是firefox上网.偶而无聊了偷偷懒.没什么大用.用鼠标也可以.
tomby:
linuxer们人手一个,不说了.

手头有PHP的职位一大堆,人才大把大把地来吧

不少朋友都问我要我帮着推荐人,比如:像途牛,鲜果,都在招各种各方各面的牛人:从产品经理到市场运营,另外似乎都招大量的PHPer
中国雅虎这边也有8~10个PHP工程师名额,也还很期待c/python等人才的加盟~,前端工程师也需求旺盛,有意从速.
以上职位都相当不错,我都恨不能把自己复制粘贴一堆出来,每个公司去一个…
我的邮箱/Gtalk:xurenlu@gmail.com,不换工作的也可以认识一下,哈,以后我可以改行做猎头~

nginx mail模块的学习

相对HTTP模块,mail模块要简单的多,我决定从这里入手,改造一个基于nginx的memcache代理模块,并在这个模块的基础上也实现upstream,再做数据的分布,后端挂tokyotyrant做的key-value存储。于是先学学mail模块。

mail模块跟其他模块也差不多,初始化是在src/ngx/ngx_mail.c里;也是先设置对配置文件的解析:
遇到mail指令(mail指令是MAIN_CONF|CONF_BLOCK),则调用ngx_mem_block函数.
ngx_mem_block函数做了什么?
1.挂载type是NGX_MAIL_MODULE的模块;(同时给这些模块排了序号),NGX_MAIL_MODULE类型的模块也做了排序.
2.接下来依次为各个模块创建一个mail_conf,和srv_conf,loc_conf;
注:ngx_mail_core_module看来是是最重要的mail类模块了。
3.解析mail{}里的内容 ,并依次调用各模块的init_main_conf和merge_srv_conf来初始化MAIN_CONF和SERVER_CONF内容。
4.把模块ngx_mail_core_module中定义的端口号加入要监听的端口列表:调用ngx_mail_optimize_servers函数;

ngx_mail_optimize_servers做了什么?
1.对所有要监听的地址和端口排个序,如果某个地址是*:80这样的监听所有IP的,就放到列表的最后,同时会忽略其他端口的监听(这不是废话么…)
2.建立建听。设置回调函数是ngx_mail_init_connection.该函数定义在:src/mail/ngx_mail_handler.c

ngx_mail_init_connection做了什么?
建session和log对象。
调ngx_mail_init_session函数建立会话(session)对象。

ngx_mail_init_session函数干了些啥?
1.取出协议的种类;
2.设置该连接的写回调是ngx_mail_send;
3.调用指定协议的init_session函数来执行真正的会话初始化;

以smtp协议为例,查看init_session做了什么?
1.如果resolver为空,则用ngx_mail_smtp_greeting函数直接输出欢迎信息。
2.如果不是互联网联接(应该就是本地socket连接了),也直接用ngx_mail_smtp_greeting函数直接打欢迎信息。
3.解析客户端地址:
设置解析成功的的回调函数为ngx_mail_smtp_resolve_addr_handler,开始解析客户端IP.

ngx_mail_smtp_resolve_addr_handler干啥了?
1.如果解析成功:
a:记录host信息;
b;设置读事件的回调函数为:ngx_mail_smtp_resolve_name
如果解析成功,最终还是调用ngx_mail_smtp_greeting函数打出欢迎信息;
2.如果解打失败,直接用ngx_mail_smtp_greeting函数打出欢迎信息。
ngx_mail_smtp_resolve_name干啥了?
…我还没看.
ngx_mail_smtp_greeting干啥了?
1.日志记录中写上“我们欢迎来自****的朋友”….哈哈。我瞎扯的。代码中有类似动作,日志中见不到。
2.设置读取事件超时
3.处理读事件。如果失败(没有收到信息,调用ngx_mail_close_connection断开链接。
4.设置读事件回调为ngx_mail_smtp_init_protocol;
5.设置要输出的东西为greeting信息,然后写往客户端。
ngx_mail_smtp_init_protocol干什么?
1.如果已经超时,关掉它!
2.创建好会话的buffer;
3.设置状态为ngx_smtp_start;
4.设置读取回调为ngx_mail_smtp_auth_state;
调用ngx_mail_smtp_auth来启动用户校验。
ngx_mail_smtp_auth做些啥?
1.如果已经超时,函数返回。
2。如果写缓冲中还有数据,函数返回。
3。读入一段;读入失败的话函数返回;
4. 对读到的命令做处理,用smtp_parse_command解析命令:接下来就是状态机处理了,喔喔喔喔…..

懒人连ssh不输密码若干大法

作为一名系统管理员,经常需要在各种机器中倒腾来倒腾去的。嗯,做为一个超级大懒人,我想了不少办法来一步步简化连接方法。请一条条看,瘟到死插屁用户请绕行。
Section one:从终端复制字符串到剪贴板的工具:xclip
这个只针对linux/unix等X用户有效。我在bash_profile中写了这么一行:
alias pw=’echo PASSWORD|xclip’
然后在要输入密码之前,先在终端中输命令pw,这个密码就存在粘贴板里了。然后接下来,你就粘贴就行了,简单地Shift+Insert键搞定。我最喜欢用的就是这个。嗯,简单实用。不用写啥代码。
Section Two:Expect
Expect是一个perl工具,根据你事先设定好规则响应服务器端的某个输入。Yahoo的机器上有一个工具叫dist_install,每次操作至少要输3次密码,另一个yinst,也经常要输5次左右的密码,我就常常用这个来解压。不过这个要写脚本。
网上有现成的脚本可用,比如这里:
http://blog.chinaunix.net/u/21908/showart_1178288.html

Section Three: sshpass:一个简单的能用参数方式指定密码的ssh 连接工具
这个工具的使用方法有两种:
A: 设置SSHPASS环境变量,比如在bashrc/bash_profile中写上
export SSHPASS=’********’
接下来用sshpass -e ssh some.host.yahoo.com [some commands]
就可以了。
B: 直接用-p参数指定密码:sshpass -p ****** ssh some.host.yahoo.com [some comands]
哦,忘了说了,这个sshpass是一个开源的工具,放在sourceforge上了,http://sshpass.sourceforge.net/;但是这个程序有问题,就是那个著名的第一次问题,第一次连接一个主机时会询问你是否要将这个host加入known_hosts;原来的程序会直接退出,我做了修改,改动后的版本在这里:http://github.com/xurenlu/sshpass
安装,很简单,用tar -xzf sshpass-1.0.4.tar.gz将之解压,然后cd sshpass-1.0.4,再配置一下:./configure,最后make && sudo make install就行了。
推荐用我维护的版本,嗯,原来程序除开key问题外还有个缓冲区过小的问题,我把它从40改到1024了。另外,程序代码非常不雅,从排版到命名都相当不规范。

对TokyoTyrant的一个简单的patch,以支持列出所有的Key

有人在网上评价说Redis、mongodb等Key-value对的数据库,说redis特别牛,能支持列出所有的key;
其实tokyotyrant也是可以的呀,因为我看他底层持tcmdb,tchdb等都是支持遍历所有Key的,于是小小地做了一个改动,以支持列出的tokyotyrant的所有Key.
代码放在http://github.com/xurenlu/mc_list_patch_4_tokyotyrant上了。
用法:
1.启动ttserver:
ttserver db.tch
3.telnet上去,试试set命令:

telnet localhost 1978
Trying 127.0.0.1…
Connected to localhost.localdomain.
Escape character is ‘^]’.
set kw2 1 1 3
123
STORED
list
LIST 9
kw
kw2
END
看这里,已经支持list命令了。
2 再用php客户端来连接:我还没有去用c写php的memcached客户端,就从网上找了一个php做的类,在git目录里有:

include “memcache.class.php”;
$hosts = array(‘127.0.0.1:1978’);
$mc = &new MemCachedClient($hosts);
var_dump($mc->listkeys());
关于安装:
1.tokyotyrant基于tokyocabinet,需要先安装 tokyocabinet,请在http://github.com/xurenlu/mc_list_patch_4_tokyotyrant/downloads 下载.

~/download@aragorn $ wget http://cloud.github.com/downloads/xurenlu/mc_list_patch_4_tokyotyrant/tokyocabinet-1.4.41.tar.gz
~/download@aragorn $ tar -xzf tokyocabinet-1.4.41.tar.gz
~/download@aragorn $ cd tokyocabinet-1.4.41
~/download/tokyocabinet-1.4.41@aragorn $ ./configure
….省却若干输出…
~/download/tokyocabinet-1.4.41@aragorn $ make && make install
接下来,请先下载tokyotyrant 1.1.37,可以在http://github.com/xurenlu/mc_list_patch_4_tokyotyrant/downloads 这里下载.
下载下来后,解压、patch:

~/download@aragorn $ wget http://cloud.github.com/downloads/xurenlu/mc_list_patch_4_tokyotyrant/tokyotyrant-1.1.37.tar.gz
~/download@aragorn $ tar -xzf tokyotyrant-1.1.37.tar.gz
~/download@aragorn $ patch -p0 < mc_list.patch patching file tokyotyrant-1.1.37/ttserver.c 然后编译tokyotyrant: ~/download/@aragorn $cd tokyotyrant-1.1.37 ~/download/tokyotyrant-1.1.37/@aragorn $ ./configure …..若干输出,略去.. ~/download/tokyotyrant-1.1.37/@aragorn $ make && sudo make install 接下来就可以启动ttserver来玩了。