太有趣了!共享给大家。
Author: tin
原来Mac的Lotus Notes客户端真得可以显示中文!
这样做:
去’系统偏好设置-System preference’里面的’国际化-International’把简体中文设为首选语言.关闭你的Notes客户端.然后开Terminal,在里面输入’killall Dock’,你的Dock会自动重新启动.然后再启动Notes客户端,你就可以看中文了.
不过我发现再启动的时候你发现Notes又不可以显示中文了.
问了下徐X,他说他都是拷贝中文的’**’出来粘帖到文本编辑器里面就可以显示出来了,笨方法,不过可能也不算麻烦.
不过忘记说了,前提是你用的mac lotus notes客户端的版本在7以上,我的是7.0.3.
这个方法是从手工帽匠的博客里面发现的.
重构我人生
我是一名程序员,但是其实我从来没有规划过我会成为一名程序员。从小我的爸爸就培养我的各种兴趣,其实所有的兴趣对于我都是一样,兴趣本身不是目的,收获的是一种态度,这种态度会指导我的生活。所以我有了现在,我是一名程序员了。
那么这个引子的目的是想说我的程序员中最大的收获,这个收获就是方法和态度。这个名字就是敏捷,敏捷就是这几年以来我接受的最有用的一个态度。敏捷是一个基本的不能基本的概念,但是我在这里不想展开,但是敏捷的所有方法中都提到的迭代与反馈的方法。而人生也是这样的,年复一年人生在迭代,每年我们都会回顾这一年,给这一年的生活一个反馈。所以说基本上我们的生活也可以是一个敏捷过程,那么我们还没有做的是通过改变自己的生活提升自己生活的质量。这个过程我们可以用程序员的一个术语,重构来描述,当然这是片面的。重构就是在不改变程序结果的情况下重新调整逻辑体,为程序的改变或者提升可读或者正确性等尽行的改变工作。那么人生也需要自己从自己的生活中找到可以提升效率或者改进行为方法的地方,为未来的变化做好准备。
扯多了,但是这个问题其实简单,所有的自发的变化都有可能产生重构的效果。那么这一段时间我进行了什么重构呢?
- 1、开始消灭我的个人电脑的硬盘分区。从很就以前我的Windows机器的硬盘都是有很多分区,里面力图放相应的内容。但是后来发现这样一点也不好,因为最后数据的无序造成分区的最早企图的失败。那么后来我发现Unix的树型管理很科学,你也可以把不同硬盘/分区挂载到树的不通节点,很灵活。而且Windows的盘符其实和目录没有本质区别,但是灵活性奇差。硬盘的第二个变化就是买大硬盘替换多个小硬盘。我有80G+120G X2+160G+250G+320G这么多硬盘,放到机器里面实在费电,所以应该做的就是买500/750/1T这样的硬盘替换它们,这样省电省事。同时,随着关键数据的量的增大,逐渐我也要开始使用Time Machine备份来提高安全性。
- 2、使用好Mac,这个的确提升了我的效率,而且也有机会接触更多Unix哲学。不是说Unix哲学怎样,而是多学习很有好处。
- 3、读书。我在包里面放一本技术书、一本文学/哲学书、一本杂志,分不同场合查看。这个是好看簿的大野狼告诉我的一个方法,后来我发现真的很好。原因就是如果专注技术而忘记了人文知识的补充,那么人生就会暗淡下去了,所以这种方法引诱我丰富自己,感觉很好。
- 4、重新思考自己的选择。看着我去年写的wishlist,关于一些男人的玩具,如大液晶,好手机,昂贵的镜头,这些愿望在去年没有实现,但是去年的目标都是一些“超值”的选择,但是经过一年的思考,从《身份的焦虑》这本书里面我知道对物品的期待如果画一条满足度的曲线,那么得到那个物品以后这条曲线会急速下降。所以其实我能够享受的很多就是拥有前的期待,尤其对于这些男人的“玩具”也许逐渐提高你的期待才是更有意义的。比如,现在如果我再期待拥有的单反已经是D300+17-55 DX+105VR+S 10-20+SB800这样的配置了,而长焦我基本上放弃了。而去年购入的LX-2给我带来的满足非常之大,这半年来我也的确照到了不少的好照片,记忆满满。提高的需求可以延缓无谓的投资带来的资金损失,在头脑清醒后可以增加准确度。
- 5、经常整理你的物品/文件,删除或者扔掉没用的东西,这样可以减少下次整理它们带来的麻烦。减少没有必要的需求,让你能够享受的需求的质量更加高一些。
等我写到这里的时候我知道题目说大了,上面的这些还和敏捷搭不上边际。但是在实施和回顾的过程中,我发现我的生活变化了,变好了,这就够了。
买笔记本的想法
如果你买笔记本使用Linux,如Ubuntu或者Fedora,那么买Lenovo的Thinkpad吧,血统很好,耐用,好用,符合Linux的原则。
否则,如果你买了笔记本即用来生活工作又用来享乐,那么选择装了Mac OSX的Macbook Pro或者Macbook是非常爽的。
如果你还是需要Windows,如网上银行什么的,那么装个虚拟机吧。VMWare在Linux下和Parallels在苹果下面都是很好的虚拟机。
那么,如果你说我还要玩游戏……去……买个游戏机就好了,PSP、NDSL、PS3、XBox360、WII、PS2都比PC好玩……玩网游么?还是戒了吧……
给友人的好看簿的UI重构建议
首先,技术角度:
1、使用XHTML和基于语义化结构标签和CSS的布局,使用CSS Sprites。减少页面体积,同时得到SEO的好处。
2、信息结构设计。从信息结构入手来产生排版的设计,要符合人的阅读习惯。
3、合理安排字体(减少字体大小的跳跃),使用相对字体em(并结合使用yui-css框架)。合理安排所有padding和margin,让页面的元素间距高度一致,也就是同一层次的信息结构应该使用同样的字体和元素间距。可以参考写Word文档时候的章-段-节那样的结构去思考结构。
可用性角度考虑:
1、使用弹性的页面布局?虽然有点难度,但是对于使用大显示器的用户十分友好。
2、增加inline的帮助,遇到问题最好用户在最近的路径就找到帮助。
3、如果要区分大家的和自己的地盘,那么一定要使用几乎完全不同的颜色甚至是排版,而且要增加足够清晰的Bread Crumb来告诉用户位置。我觉得JavaEye的首页和博客区分的就比较清楚。
开始使用新的域名
朋友的服务器换了机房,所以IP变了,域名指向也暂时不可用了。所以我想是时候换个域名了,老婆说就要zztin.com了,我尊从了她的想法。域名是从godaddy买的,服务器还是托朋友的福继续……
WordPress的域名迁移比较麻烦,费了点周折,不过搞定了,等有空再去忙活更加好看的域名设计,不过现在已经可以使用:
http://tin.zztin.com和http://zz.zztin.com来访问我们的Blog了。高兴呀!
Google apps + Saleforce,新mashup,新SAAS
半年前我在InfoQ上面报道了一下SAAS的事情,现在看到这个,想想mashup的益处,很快这张大网就要收了。Google花了这么久来织网,我们看到了facebook和amazon也挤进了这班车,可怜MS,我看及时收购了Yahoo也搭不上这班车了,因为Yahoo自己也没买到车票。
朋友们可以这样订阅我的博客
我在Feedsky申请了帐号,如果朋友想订阅我的博客就使用这个地址吧:
http://feed.feedsky.com/iamtin
在Mac下启动多个Firefox实例方便JsUnit运行
项目中的JsUnit是使用ant脚本运行的,里面需要设置BROWSER_PATH的环境变量来启动浏览器。在本地check in代码的时候,我们会运行一下测试来减少愚蠢错误被提交到代码控制系统。但是在我的mac下Firefox只能启动一个实例,在运行JsUnit test的时候会提醒我已经打开了Firefox,不能打开另外一个实例,这样我必须关闭正在运行的Firefox。而且由于我比较喜欢打开非常多的Tabs来保持浏览状态,所以关闭Firefox让我很不爽,再说,因为重新启动的Firefox里面带了很多的Tabs,所以经常造成实际运行的JsUnit test发生随机性的超时错误,这个就不能容忍了,因为这无法保证我们的信心。
那么,为什么FF不能启动多个实例呢?原因是它们共享同一个Firefox的profile,所以没法多个实例并发访问。但是通过命令行参数是可以创建多个profile给firefox的,简单了。不过遇到的问题是JsUnit的ant任务会检测BROWSER_PATH是否存在,所以如果我把带参数的命令行写到环境变量里面Ant无法检测到这个文件就会报错。那么如果关闭检测可以么?还是不行。因为JsUnit的StandaloneTest里面实际最后会调用DefaultProcessStarter的execute方法,这个方法调用Runtime.getRuntime().exec(command),这个实现非常直接,不过因为parameters如果直接写到命令行里会发生文件无法找到的问题(应该用数组将命令和参数传入)所以没有办法传入,还是无法运行。
放弃hack吧,我可以修改Ant task和JsUnit的方法,但是绝对不好,因为这个hack没有提交回去的意义。
所以换个思路,这样做:我们去写个shell来解决它。
先在终端运行/Applications/Firefox.app/Contents/MacOS/firefox-bin -CreateProfile jsunit,这时候会弹出窗口让你确认创建这个profile,选择一下不使用extensions和各种工具条,这样减少这些设置对测试的不良影响。
然后在你的home目录创建一个firefox.sh,里面写上:
/Applications/Firefox.app/Contents/MacOS/firefox-bin -P jsunit $1
前提是你的Mac使用的是默认的bash,否则修改$1为对应的引用字符。然后chmod firefox.sh 555,让它可以运行。
下面就是修改你的~/.profile:
export BROWSER_PATH=/Users/[User path]/firefox.sh
source ~/.profile让修改生效再运行JsUnit就OK啦。如法炮制想开几个Firefox实例都可以啦。同样方法也适用于让Firefox2和Firefox3共同运行!非常简单。还可以做到开发和浏览分开……以此类推。
回顾一下JsUnit的代码写的不好,如果像Selenium一样能够自动创建一个profile就好了,因为那样可以减少测试之间的影响,还可以让Selenium并行执行。我想,如果有空我可以做一下这个工作:D
Yahoo的“前端优化突破” slide共享
这是一篇很好的讲前端页面优化的slide,当然有不少内容我们都看过很多遍了,我以前做过的:
里面的内容也有一些重复。不过这次我还是很有收获,比如IBM的Page detailer就是个不错的profiler工具。还有使用document.getElementsByTagName(‘*’).length简单判断dom复杂度的方法也是不错的。结果是:
- 新浪首页是3109
- 财经首页是4260
- 新浪邮箱是169
- 纸条箱251
- sohu是2k4
- netease是1k4
很有意思。
结绳记事。