安装tokyocabinet的问题

在SUSE Linux version 2.6.27.7-9-default (gcc version 4.3.2)上安装tokyocabinet的时候,需要安装相关的lib

http://fallabs.com/tokyocabinet/misc/bzip2-1.0.5.tar.gz

这个压缩包在安装的时候,Makefile中没有添加 -fPIC 参数 导致安装后,tc找不到它,所以要在它的Makefile中添加上 -fPIC
那gcc这个 -fPIC参数是什么意思的。
这位仁兄的描述很清晰
网友总结如下:
因此,不用fPIC编译so并不总是不好.
如果你满足以下4个需求/条件:
1.该库可能需要经常更新
2.该库需要非常高的效率(尤其是有很多全局量的使用时)
3.该库并不很大.
4.该库基本不需要被多个应用程序共享

这样解决了安装tc的问题。

打算山寨一个wordpress主题

好久没有更新博客了,一直在忙项目,一直想抽空做一个自己的wordpress主题,突然想起一个我以前很喜欢的一个网站(www.yorkmusic.com)的style,很有个性,结果今天访问的时候,却发现网站样式不对,好像是css没有生效,访问http://www.yorkmusic.com/css/screen.css浏览器提示下载该文件,显然是css文件的ContenType不对, curl –head http://www.yorkmusic.com/css/screen.css ,一看果然不对,ContentType是application/x-httpd-php ,Apache把css当php处理了,估计是网站管理员的失误,不过这网站几乎从来没有改变过,没办法只有自己把他的css,html和图片先下载下来。

浅谈海底捞火锅

说起海底捞火锅,记得最早的记忆是在黑白电视机里面听到四川卫视放过它的广告,那时候人还小,家里人也没怎么吃过火锅,后来还是在北京和同学才吃过。

作为一个四川人,其实在成都也吃过不少火锅,如果把海底捞当成一个普通餐饮来看,大众最直观的体验可能就只有两点,味道和服务,对于海底捞的服务,我只有两个字来形容:“变态”,也有很能多网友这样形容,那些做餐饮的企业都应该因为有海底捞这样的榜样而感到自己服务上的严重不足。

这里我想到了一个自己在海底捞的小插曲,记得那天和同学用完餐,我独自去卫生间,朋友嫌等得太久就给我打电话,当时有点醉意,就急忙走出卫生间与朋友会和,在门口的时候一个服务员微笑地递过一张面巾纸,同时说到:你不洗手吗?我当时很囧……

这里有篇文章对海底捞的经营管理讲得比较中肯:相关文章

我在成都的时候和一位开火锅店的老板也提起过海底捞,他自己也承认海底捞做的是服务,说到味道,他说:他那根本就不是火锅。

不管他最后这句话说得是不是有点夸张,但可以证明的是四川火锅确实有他自己的特点。

至于为什么海底捞在成都迟迟没有分店,张勇自己很清楚,成都的餐饮竞争很激烈(其实哪里都一样),尤其是成都的火锅,说名字都要说好大一堆,成都普遍的消费观念也决定了成都餐饮的格局,成都的串串香就是一个很好的例子,成都人对服务的要求相对来说比较底,他们更喜欢那种自在的饮食习惯,和性价比较高的消费,更重要的是味道,你经常会听到食客抱怨:老板儿,你这个姜爆肉片,姜太老了。

味道和服务这些对于一个企业来说是对外。

海底捞对内的管理确实很有学问,不过追根到底还是平衡了人性的本质。

但个人觉得海底捞还有进步的空间,比如引入一些四川的本地文化,例如川剧,等等这些地方文化,一来可以起到文化宣传的作用,也让顾客在用餐时不仅仅是看服务员特技般的拉面(这好像是海底捞的特色),这些元素都会和海底捞企业形象整合。

Eclipse快捷键问题

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复 制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用, 可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑 的页面(当然是针对上面那条来说了)
Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性
Shift+Enter 在 当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在当前行插入空行(原理同上条)
Ctrl+Q 定 位到最后编辑的地方
Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)
Ctrl+M 最大化当前的Edit或 View (再按则反之)
Ctrl+/ 注释当前行,再按则取消注释
Ctrl+O 快速显示 OutLine
Ctrl+T 快速 显示当前类的继承结构
Ctrl+W 关闭当前Editer
Ctrl+K 参照选中的Word快速定位到下一个
Ctrl+E 快速 显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)
Ctrl+/(小键盘) 折叠当前类中的所有代码
Ctrl+×(小 键盘) 展开当前类中的所有代码
Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用 Alt+/来代替)
Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)
Ctrl+J 正 向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一 个单词时,特别实用,这个功能Idea两年前就有了)
Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)
Ctrl+Shift+F4 关 闭所有打开的Editer
Ctrl+Shift+X 把当前选中的文本全部变为大写
Ctrl+Shift+Y 把当前选中的文本全部变为小写
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要 在匹配符里面,后面到前面,则反之)

下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是 Alt+Shift开头的了)
Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多 劳动力)
Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)
Alt+Shift+C 修 改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)
Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取 成一个变量,尤其是多处调用的时候)
Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)
Alt+Shift+I 合 并变量(可能这样说有点不妥Inline)
Alt+Shift+V 移动函数和变量(不怎么常用)
Alt+Shift+Z 重构的后悔药 (Undo)

编辑
作用域 功能 快捷键
全局 查找并替换 Ctrl+F
文本编辑器 查找上一 个 Ctrl+Shift+K
文本编辑器 查找下一个 Ctrl+K
全局 撤销 Ctrl+Z
全局 复制 Ctrl+C
全 局 恢复上一个选择 Alt+Shift+↓
全局 剪切 Ctrl+X
全局 快速修正 Ctrl1+1
全局 内容辅 助 Alt+/
全局 全部选中 Ctrl+A
全局 删除 Delete
全局 上下文信息 Alt+?
Alt+Shift+?
Ctrl+Shift+Space
Java 编辑器 显示工具提示描述 F2
Java编辑器 选择封装元素 Alt+Shift+↑
Java编辑器 选择上一个元 素 Alt+Shift+←
Java编辑器 选择下一个元素 Alt+Shift+→
文本编辑器 增量查找 Ctrl+J
文 本编辑器 增量逆向查找 Ctrl+Shift+J
全局 粘贴 Ctrl+V
全局 重做 Ctrl+Y

查 看
作用域 功能 快捷键
全局 放大 Ctrl+=
全局 缩小 Ctrl+-

窗口
作用 域 功能 快捷键
全局 激活编辑器 F12
全局 切换编辑器 Ctrl+Shift+W
全局 上一个编辑 器 Ctrl+Shift+F6
全局 上一个视图 Ctrl+Shift+F7
全局 上一个透视图 Ctrl+Shift+F8
全 局 下一个编辑器 Ctrl+F6
全局 下一个视图 Ctrl+F7
全局 下一个透视图 Ctrl+F8
文本编辑器 显示 标尺上下文菜单 Ctrl+W
全局 显示视图菜单 Ctrl+F10
全局 显示系统菜单 Alt+-

导 航
作用域 功能 快捷键
Java编辑器 打开结构 Ctrl+F3
全局 打开类型 Ctrl+Shift+T
全 局 打开类型层次结构 F4
全局 打开声明 F3
全局 打开外部javadoc Shift+F2
全局 打开资 源 Ctrl+Shift+R
全局 后退历史记录 Alt+←
全局 前进历史记录 Alt+→
全局 上一 个 Ctrl+,
全局 下一个 Ctrl+.
Java编辑器 显示大纲 Ctrl+O
全局 在层次结构中打开类 型 Ctrl+Shift+H
全局 转至匹配的括号 Ctrl+Shift+P
全局 转至上一个编辑位置 Ctrl+Q
Java 编辑器 转至上一个成员 Ctrl+Shift+↑
Java编辑器 转至下一个成员 Ctrl+Shift+↓
文本编辑器 转至 行 Ctrl+L

搜索
作用域 功能 快捷键
全局 出现在文件中 Ctrl+Shift+U
全 局 打开搜索对话框 Ctrl+H
全局 工作区中的声明 Ctrl+G
全局 工作区中的引用 Ctrl+Shift+G

文 本编辑
作用域 功能 快捷键
文本编辑器 改写切换 Insert
文本编辑器 上滚行 Ctrl+↑
文本编辑器 下 滚行 Ctrl+↓

文件
作用域 功能 快捷键
全局 保存 Ctrl+X
Ctrl+S
全 局 打印 Ctrl+P
全局 关闭 Ctrl+F4
全局 全部保存 Ctrl+Shift+S
全局 全部关 闭 Ctrl+Shift+F4
全局 属性 Alt+Enter
全局 新建 Ctrl+N

项目
作 用域 功能 快捷键
全局 全部构建 Ctrl+B

源代码
作用域 功能 快捷键
Java编辑 器 格式化 Ctrl+Shift+F
Java编辑器 取消注释 Ctrl+\
Java编辑器 注释 Ctrl+/
Java 编辑器 添加导入 Ctrl+Shift+M
Java编辑器 组织导入 Ctrl+Shift+O
Java编辑器 使用 try/catch块来包围 未设置,太常用了,所以在这里列出,建议自己设置。
也可以使用Ctrl+1自动修正。

运 行
作用域 功能 快捷键
全局 单步返回 F7
全局 单步跳过 F6
全局 单步跳入 F5
全局 单步跳入 选择 Ctrl+F5
全局 调试上次启动 F11
全局 继续 F8
全局 使用过滤器单步执行 Shift+F5
全 局 添加/去除断点 Ctrl+Shift+B
全局 显示 Ctrl+D
全局 运行上次启动 Ctrl+F11
全局 运行 至行 Ctrl+R
全局 执行 Ctrl+U

重构
作用域 功能 快捷键
全局 撤销重 构 Alt+Shift+Z
全局 抽取方法 Alt+Shift+M
全局 抽取局部变量 Alt+Shift+L
全局 内 联 Alt+Shift+I
全局 移动 Alt+Shift+V
全局 重命名 Alt+Shift+R
全局 重 做 Alt+Shift+Y

=====================================================================

重点是红色部分:在选中代码上执行

Ctrl + Shift + /

可以实现块注释代码,比如选中:

String v = “test”;

int b = 1 ;

执行Ctrl + Shift + /  后

/*String v = “test”;

int b = 1 ;*/

如果这时候,我使用Ctrl + Shift + F 格式化代码,变成

/*

* String v = “test”;

* int b = 1 ;

*/

如果想使用Ctrl + Shift + \  来取消这个代码块的注释,变成

* String v = “test”;

* int b = 1 ;

也就是Ctrl + Shift + \ 不能去掉每行代码前的 * 号,这个应该是一个bug。


Rhythmbox歌词插件

最近发现Rhythmbox听歌没有显示歌词很不爽,Rhythmbox自带了一个老外写的歌词插件很难用,心里就想着开发一个插件,结果一翻了解以后,发现已经有国人写了一个鲁班歌词插件了http://code.google.com/p/sogou-lyrics/ 相当好用,所以就放弃了自己写插件的想法。

另外还发现一个Rhythmbox插件onlinemusic,也是国人写的,主要是抓取google音乐,也不错,唯一遗憾的是搜索功能不能用,有时候网络很卡的话,rb还会死掉。

误删了rpm,yum的经历

最近又发疯了,搞了一个严重的错误,本来想升级CentOS5.4上的subversion到1.6.x,结果不小心用yum erase sqlite的时候,居然把yum,rpm相关依赖都给卸载了,无语了。

想同遭遇的同仁::

http://weic.wordpress.com/2009/12/08/centos-误删了-rpm-怎么办/

http://hi.baidu.com/rainchen/blog/item/ee4107080a398e38e924881c.html

告诉自己,不在错误中成长,就在错误中麻痹。

罗永浩的<<我的奋斗>>(读后感)

罗永浩就不用介绍了,人称老罗,他的个人信息,人格魅力以及”老罗语录”遍布google和baidu各大门户网的硬盘里。

当时听见他要出书,就搜索了一下,china-pub上黄金会员19.47RMB买到了这本<<我的奋斗>>,买这本书的原因很简单,一是价格便宜,二是篇幅简短,是我想象的励志书中篇幅长度倒数第二(第一是我记忆中的<<与妻书>>)。

我听老罗讲课的段子的时候记得是06年的事了,还是在一个同事那里拷贝过来的,当时想学学英语口语,同事就说他那里有,结果听了其中一段,一直以为罗永浩是一个脱口秀演员,因为我听那段中他讲一看到麦当劳,你就应该想到那是一个免费的公共厕所,后来听到下面有一群人在笑,才明白那是课堂,是学生偷录的,所以效果不是很好。

<<我的奋斗>>里面,老罗写了很多他小时候上学的事情,大底和我那个年代差不多,尽管他比我大好几岁,记忆犹新的就是那时候的体罚,我记得我的小学班主任就热爱体罚,但有一次他生日的时候,全班同学决定做一件让他意外而且感动的事,就是集体捐钱去学校小卖部买来很多包花生豆,你知道,我们那时候一块冰羔是两分钱,根本还没有雪糕,当时花生豆摆满了讲桌,下午上课的时候,那班主任一看,确实很感动,决定放我们一下午假,自由活动,然后自己去小卖部买了酒,顺便叫我和他的大儿子,他大儿子和我们是同班,把花生豆都拿回他家,我当时看见那么多花生豆,趁他儿子不注意的时候拿了几包,才算是没亏。你可以想象一个小学3年级都没毕业的老师却把我们教到了4年级,我们把幼小纯洁的心化作那么多包花生豆,换来的却是半下午的体力恢复为了迎接下一次体罚,想来就很可怕,特别是我这种调皮的学生。

这事还没完,我觉得在记忆中受到体罚最严重的就是他儿子,原因呢,如果他儿子和我们打架,他首先体罚的就是他儿子,尽管是我们故意打他儿子,只要和他儿子有关违犯纪律的事情,他儿子就是主要体罚对象,更惨的是他二儿子,比我们矮一个级,他哥哥只要一受体罚,班主任都会把他叫来一起收拾,很无辜,我们经常全班同学双手放到背后坐得笔直一起看他们三父子在讲台上倒腾,我们还不许出声,确实很喜剧。

这事还没完,后来很多年过去,那个班主任还经常提到我,说我有出息,那时我真的很气愤,比他当时体罚我的时候还气愤,因为他一直认为那些有出息的孩子都和他当时严格教育有关,同时还认为那些没出息的孩子都怨他当时体罚得太轻,确实有点恶心。

断断续续看完了这本书,尽管没有灌顶那样的感觉,总体还是不错的,老罗的心态确实不错,他对“人生来就注定要改变世界”这样的哲学解释得很真切。

“做一个正直,不要伤害别人的人。”

这远比那些长大了当警察,当科学家,拯救地球这样的理想更实际。

没有理想,但至少要有信仰。

linux下一些有意思的命令

最近有人问我关于页面中的联系方式是怎么生成的,这个也是从我朋友那里受到的启发。

这个主要是为了告诉网络机器人“非诚勿扰”,其实大家把联系方式做成图片更好。

正题:

1. echo “xxxxx@gmail.com” | xxd -ps -u

得到:787878787840676D61696C2E636F6D0A

2. echo “ibase=16; 787878787840676D61696C2E636F6D0A” | bc

得到: 160132878550962084828530736251255352586

3. dc -e  160132878550962084828530736251255352586P

得到: xxxxx@gmail.com

当然还有更简单的,用base64编码

1. echo “xxxxx@gmail.com” | base64 -i

得到: eHh4eHhAZ21haWwuY29tCg==

2. echo “eHh4eHhAZ21haWwuY29tCg==” | base64 -d

得到:  xxxxx@gmail.com

ant + ivy + nexus + hudson 搭建团队开发环境

最近一直在搞ant + ivy + nexus + hudson 开发环境,遇到了一些问题,最后还是解决了,这里做一个笔记.

我这里不讨论为什么用ant + ivy 而不是maven ,就像你没有熟练使用过windows,就在那里大谈linux多么好一样,没意义,这两个软件本身的功能和面向的问题都不一样。

分别介绍一下这四个软件:

1. ant(项目主页:http://ant.apache.org

java世界里的make,一个成熟的java构建工具,用户众多。

2. ivy (项目主页:http://ant.apache.org/ivy

为ant而生的一个依赖管理工具.

3. nexus(项目主页:http://nexus.sonatype.org/

仓库管理工具,同类产品比较多,但没有使用过,初次使用nexus几乎连它的官方网站都没怎么看,直接就去下载了最新的1.6 war包来安装,看着菜单栏随便点击了一会就上路了,不由感叹了一下多么强大的软件啊。(软件本来就是做来让人用的,不是用来研究的,所以那些文档看起来都很晦涩的软件,基本都得不到很好的推广)

如果你已经使用ant + ivy 来开发java项目,那么eclipse插件IvyIDE你应该也知道了,一个很好用的东东。

4. nexus(项目主页:http://www.hudson-ci.org/

一个可扩展的持续集成服务。

——————————————————————-

这次搭建过程很多资料都是来自javaeye,参考资料:

IVY尝试

还有一个中文文档翻译

ubuntu环境下使用subclipse提示不能加载JavaHL Library

最近发现eclipse老弹出窗口说不能加载JavaHL 包,按照javaeye网友提示,sudo apt-get install libsvn-javahl 的时候发现根本找不到这个包,在ubuntu官方package里面搜索找到了libsvn-java

原来ubuntu10.04下的包名已经改成libsvn-java,而不是libsvn-javahl.

Page 1 of 3123»