在Mac OS X裡用CPAN

有個perl的腳本有用到YAML,但是Mac OS X的perl並沒有內建此模組,自己動手CPAN來裝又不想寫花/Library。就用local-lib來做好了。先載一個local-lib回來。

cd local-lib-1.008004
perl Makefile.PL --bootstrap
make
make test
make install

這會在家目錄下建一個perl5的目錄來放lib。接下來要設置一些環境變量就好了。

perl -I$HOME/perl5/lib/perl5 -Mlocal::lib

要是bash可以直接把上面的輸出貼到bashrc既可,csh要轉成setenv。

setenv PERL_LOCAL_LIB_ROOT "~/perl5";
setenv PERL_MB_OPT "--install_base ~/perl5";
setenv PERL_MM_OPT "INSTALL_BASE=~/perl5";
setenv PERL5LIB "~/perl5/lib/perl5/darwin-thread-multi-2level:~/perl5/lib/perl5";
set path = ( ~/perl5/bin \ #後面省略

MySQL应不应该开swap

这其实是个老问题了,只是昨天和同事说起来的时候,稍稍争执了一番。
正常来说,一个Linux主机应该打开swap并且是内存的二倍。但是凡事应该具体问题具体对待,时代在变化,软硬件都有了不少的变化。在一个64G内存的机器上你还会用128G的swap?
Peter Zaitsev在08年写的一篇blog: Should you have your swap file enabled while running MySQL?,里面提到了一个标准:如果你宁可加内存,也不让系统变慢,那就关掉swap。如果你不介意内存耗尽系统变慢,那就开着swap。Peter也提到了一个情况是kernel在没有swap的时候会工作异常,这也被Don MacAskill的评论证实了,Don的做法是用Memdisk上建立了一个32M大小的swap来避免。
就我自己来讲,Don的做法比较好。另外也要注意不同的应用有不同的策略,如果应用对数据的完整性要求较高,例如支付系统,事务系统,还是要开启swap的来避免kernel panic和OOM-killer。如果只是在线系统,数据有多份冗余,且允许一定的数据损失(大部分的互联网应用都属这一范围),相反的性能的要求很高,那就把swap设置的低一些,调整swapiness到10左右。
这里还有一个问题是你相信kernel能管好memory cache,swap out正确的数据?还是不能?
参考:

Mac OS X Lion的感受

从朋友那里搞了一个Developer的账号下到了Lion GM,玩了两天。感觉如下:

  • 手势还是不错的,可惜Show Desktop的那个手势我做不来。
  • Misson Control确实是一个不错的东东,比之以前给力多了。
  • Full Screen这个Feature还不够好,主要是在多个显示器上的Full Screen是有很大问题的,在我看来这个是没有达到Release的地步的。
  • Address Book的更新不给力,反而出了个中文排序的bug。
  • iCal和Address Book的界面我不是很喜欢。没有在易用型上有什么新的进展。
  • 与Scrollbar相反的滚动,确实需要适应。
  • Mail的升级很不错,但是还是不能像Outlook那样显示Receipt的Popup来看详细,这是我唯一使用Outlook的理由了。
  • Dock Icon上的Count变丑了。
  • AirDrop确实是个方便分享文件的方法,人性化了。但是有时候找不到人。
  • Spotlight不能直接显示字典的结果了。Fuck.
  • Time machine可以加密了。

Apple这次Lion的这个升级吧,有惊喜,有遗憾。界面的变化我不太喜欢,越来越平了,不靓丽,我喜欢颜色鲜艳的风格,但是这样又有可能把用户的注意力从自己所关注的事情上转移到系统上来。当然我这个是无凭据的乱说,也许Apple有数据呢。

update: 发现Finder的Bug很严重,向移动硬盘拖东西进去的时候会出现进度条正常结束后,里面什么都没有的情况,这一Bug对SMB等网络文件系统同样有效。不推荐安装升级GM版,等Release和10.7.1吧。Bug和待完善的地方太多了。