Blog

  • Gmail Gcal Integration

    Gmail可以以Contact为单位,列出与某个Contact来往的Conversions。Google Calendar也可以搜索Who,把与某个人有关的Events都列出来。Google Contacts Management是以email address为identifier,而Google Calendar的客人名单也可以从Google Contacts里选取,可见Google Contacts, Google Email, Google Calendar可以三位一体。

    但我研究了一天也没找到一个办法:选定某个Google Contact后,把Conversation (Email) 和 Events一起按时间顺序列出来。我知道很多人用 Gmail 和 Gcal 做 Business Diary,针对一个Google Contact的history可以视不同情况分别记录到Gmail或Gcal,但如果能合并查看的话,将会方便很多。

  • Linksys Minimum Requirements

    因为要中长距离传输Wifi信号,我买了个F5D7132UK Belkin Range Extender,但它的稳定性实在令我失望,一天之内得重启无数次!我去调换了同型号的,仍是如此。没有办法,今天准备多花点钱买个贵一点的WRE54G Linksys Range Extender。

    我对Linksys没什么好感,一是因为以前买过一个Linksys ADSL Router,也不是很稳定(当然,还不至于一天要重启,否则我早就去退货了),后来升级了Router,那个Linksys Router就送人了。二是因为Linksys – A Division of Cisco,哈,我不喜欢的就是Cisco。Linksys想用Cisco来沾光?在我这里就没门咯。

    但是,在Range Extender领域,我可以挑选的范围非此即彼,所以我没得选择。

    在PCWorld我抓起WRE54G Linksys Range Extender又放下了,因为包装上写着:Minimum Requirements: Linksys WAP54G, WRT54G, WRT54GS,搞得我以为它只认自家的Router 或 AP。回家做了几下research,得知根本不是这么回事,可以兼容其它品牌。我想可能它在连接其它品牌的Router 或 AP可能需要一些额外的手动设置而已。

    搞不懂Linksys写这个Minimum Requirements什么意思!Nevertheless, I decided not to buy it. I will use other solution to extend my wifi network rather than using range extender.

  • Printer Server Should Be Called As USB Device Server

    公司有台超高级的复印机。我想把它的高速扫描功能用起来。

    但是,复印机没有网络接口,买一个原装的Network Kit附件被报了一个杀猪价,立马被我回绝;复印机边上也没计算机,用一根超长USB连接线也不现实。我想到用Wired / Wireless Printer Server,但看遍网上介绍都没有说Printer Server能否当Scanner Server用。此事就搁浅。

    今天去了一趟Currys,不经意中看到一款Wireless Printer Server,就拿起来仔细阅读包装上的说明,发现它完全支持Wireless Printing, Scanning, or Faxing。这样,一直以来都叫它Printer Server,是不是太委屈它了?

  • A Challenge of Address Book

    Today I got a call from someone I met 4 years ago at Canton Fair, but never met after that. He was a friend of my friend’s customer in Poland (complicated relationship, ehh?). My friend could not attend Canton Fair that year, so I escorted them, taking them to the fair, dinner, party, everywhere.

    We became friends but lost connection after that. I have difficulty to remember a foreigner’s name. I had his business card, but can not find it now. I knew it would happen. That was why I was desperate for an effective way to manage my address book.

    Unfortunately my Google Contacts was not built 4 years ago. I feel awful when I can not call his name.

  • Mage_All_Latest

    Magento用Connect Manager 来管理升级文件,真得很好。但这么先进的方式运行在Linux上,我一时有点无所适从。比如在Windows下,Magento Connect Manager能正常运行,但在Fedora服务器上,Existing Extensions项下空白一片,怎么办?

    查了好久,找到方法:Enter ‘magento-core/Mage_All_Latest‘ in the extension key area.

  • 要做就做Bug-Free的网站

    我在6月15日升级了服务器,当时花了好几天时间重新安装设置各种程序,并认为已经做了所有该做的事。

    直到今天有客户告诉我无法上传文件,我马上意识到存放文件的目录没有设置可写属性,一查果然如此。想想真的可怕:三个月内,在线定单也接了不少,竟然没人来指出这个bug。这类bug最可怕,因为客户在下单时可以选择以邮件方式发送文件,所以系统并没有因为这个bug停止运行,我也根本没注意到这个bug。但估计还有一部分客户发现不能上传文件,就走掉了,这三个月定单在历史的低点,不知是巧合还是必然。

    特别感慨,要用心做网站,做bug-free的网站!

  • Magento Base

    最近发现我的magento后台不能更新数据,但系统每次都提示保存成功,一开始我还以为数据库出了问题。

    查了好久的原因,这才发现是因为我把www.goods-pro.com全部重写到goods-pro.com (non-www)的缘故。设定301规则之前,我没有更改Magento Base。这样,magento base记录的base url跟我维护时登录的url是不同的,大概为了安全考虑,magento不允许保存数据。但是,如果不允许,早说嘛,浪费我好长时间找原因。

  • 与人方便就是与己方便

    今天带老爸参观了PCWorld,回家时19:15左右,通常这个时候停车位最紧俏,我就没指望家门口还有停车位。

    所以当我距离到家还有一段路时,发现一个停车位,我就想把车停了。我没注意到前方有一辆车已经先看好了这个车位,正停着准备等我过去然后他好倒车进去。我一个转弯就占了这个位置,然后才发现前方的车好像在等着个停车位。英国人通常都很礼让,我也染得很礼让,要在平时,我肯定会把车重新开出去,另找停车位。

    老爸思路不同,说,你先停好了,何必让?!得,尊重老爸的意见。下车,锁门,前面的车看着到手的肥肉被我叼走,也只好走了。于是我跟老爸走了一段路回家,说长不长,说短不短,走到家门口时,发现——空着两个车位!

    老爸又说,要是有那么个设备,可以远程告诉你车位占用情况,估计英国可以卖个人手一个。那敢情好,但这个park space indicator发明之前,我还是用哲学方法来判断:与人方便就是与己方便。

  • httpd.conf Priority Against .htaccess

    在httpd.conf里可以用allowoverride设置让.htaccess生效或失效,这让我想当然地认为httpd.conf比.htaccess有更高的优先级,最后发现并不是这样。

    今天我调整了我管辖的几十个域名的A record, CName, MX。为了让域名规划更加整齐,也方便以后的更改,我把同组域名(启用ghs.google.com的多个alias)都用mod_rewrite做了301 redirect,指向了primary domain。因为Rewrite必须写在Directory directive里,所以我在httpd.conf里写完Virtualhost directives之后,专门开篇Directory,把各组域名的子域名重写规则都放在一起,方便阅读和理解。

    域名启用了wildcard子域名,我想让一些特殊的子域名在wildcard子域名定向前先行重定向,所以我把这些特殊子域名的重定向写在了httpd.conf里面。我管辖的域名都按同一个规则设置特殊子域名,我也不想打开一个个.htaccess一一编辑,把这些规则写在httpd.conf是最理想的。

    我原以为httpd.conf优先级高于.htaccess,所以当特殊子域名在httpd.conf读到匹配的规则,即行重定向,而不再当作wildcard子域名处理。但是我错了。关于优先级的完整理解应该是:

    • httpd.conf可以设置让.htaccess生效 (allowoverride all) 或生效 (allowoverride non) ,这没有错。
    • 但一旦httpd.conf让.httaccess生效,.htaccess里的设置就优于httpd.conf。对啊,allowoverride就是这个意思,我怎么就这么傻呢。

    如果不是magento之类的程序,即使特殊子域名被当成wildcard子域名,在.htaccess里匹配不到规则,特殊子域名还是有机会在httpd.conf里完成我期待中的重定向。magento (说到底是zend frameword) 带来一种规则——所有不匹配的规则统统重定向到index.php,这让我在httpd.conf里的规则再也没有机会捕捉到特殊子域名 (全被当成wildcard子域名被.htaccess捕获了)。

    思前想后,我只好想出一招:把特殊子域名作为ServerName或ServerAlias编成专门的VirtualHost directive,位置必须放在wildcard子域名所在的VirtualHost directive之前,然后为特殊子域名和wildcard子域名设置不同的DocumentRoot。因为RewriteCond和RewriteRule都是基于Directory directive的,既然分开在不同的directory,wildcard子域名的.htaccess就没有机会override特殊子域名了。

  • 西洋参不西洋

    入乡随俗,我很少在上班时做一些有中国色彩的事情。

    最近嗓子疼,感觉是上火,所以今天一上班没按惯例泡英国红茶或咖啡,冲了一杯西洋参茶来喝。同事们像看西洋镜一样地来看我的饮料,一番介绍又是免不了的。当然最简单的介绍,就是告诉他们,这个玩意叫genseng,然后让它们自己google。同事google完以后,啧啧一番,就是不敢尝试。

    我觉得奇怪,既然西洋人不知道西洋参,那么为什么取名叫西洋参?