When to use Magento layered navigation?

Rcah module for Magento
Rcah module for Magento

Although I released a Magento module “Root Category as Homepage“, which enables replacing the default CMS page with the root category as homepage, thus the users can start layered navigation from the very top level of category, the usage of this module should be limited, for the sake of usability.

In short, use Magento layered navigation only to narrow down the choice of products. Do not use it for the purpose of grouping products by some filter attributes. There are many other ways to group products together.

I will explain in details when I have some more time.

OCR in Google Drive

今天再次惊讶于 Google 的强大。

在 Google Drive 里打开一个 PDF 文件,是一个类似于 lightbox 效果的在线预览。我今天打开的是一份英文文档扫描后保存为 PDF 的文件,lightbox 里出现的是图像。神奇的是,用鼠标去选中其中某些文字,也能像操作文本文件一样高亮显示选中的部分;更神奇的是,按下 Ctrl+C,再到别处 Ctrl+V,粘贴出来的 OCR 以后的文字。

PDF 在线预览、图形类似文本的高亮显示、OCR,这三件事情能如此完美的结合在一起,不简单。

Awful Baidu login

我见百度文库上一篇文章不错,想要下载。这时百度提示我要登录:

Baidu login prompt
Baidu login prompt

我是最烦注册登录的,但看到百度说可以使用QQ账号登录,我开心地登录了QQ。

Baidu still require me to create an account after I have logged in QQ
Baidu still require me to create an account after I have logged in QQ

等一下,这是什么?!登录了QQ以后,百度仍然顽强地要我关联一个百度账号。那叫我使用QQ账号登录的意义何在?!是 Open Login 还是 Awful Login? 为了拉拢用户,却不注重用户体验,愚蠢的百度逻辑!

Add Value to Hotel TV project

我受托为小型连锁酒店做一个解决方案,配合现有的大屏幕全高清 LED TV 提供增值信息服务。要求大致是:

  • 定制桌面背景,主要是为了致欢迎辞,如 Welcome, Mr and Mrs Bruces,客人姓名从指定数据库或 API 读取。
  • 打开 TV 见桌面,为了避免客人开 TV 就是为了看电视节目,而错过酒店想要传递给客人的重要信息。
  • 在桌面美观优雅地摆置一些图标,客人点击启动预装的应用。
  • 应用如 Web browser, Youtube, Facebook 等,都不是资源消耗型。
  • 客人不能改变桌面,不能碰及设置。客人浏览痕迹能在客人离店后快速清除。或客人可以改动任何设置,但设备能在客人离店后快速重置。
  • 整个应用环境使用起来如流行操作系统(我指 Android, Windows XP, Fedora 等)一样直观,而不是如现有的大部分酒店用的 Hotel TV 系统那样,摸索半天,记不住向上/向下键是干吗的,向左/向右键又是干吗的。
  • 只能有一个遥控器,含 TV 遥控器在内。就是说,一个遥控器,要控制电视频道、音量,还要控制桌面上的应用。

Javascript bookmark this page in Chrome

I have a stupid client asked me to add “Bookmark this page” to his web pages. I explained to him how bad usability it is but he did not listen to me. He insisted the majority of web users were as stupid as him, so him wanted to help them bookmark the page.

Nevertheless, it is not my site and he is my customer. Customer is the God. So I spent some time digging around and found this script.

<script type="text/javascript">
//<![CDATA[
function bookmark_us(){
var url = window.location;
var title = document.title;

if (window.sidebar) // firefox
    window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){ // opera
    var elem = document.createElement('a');
    elem.setAttribute('href',url);
    elem.setAttribute('title',title);
    elem.setAttribute('rel','sidebar');
    elem.click();
} 
else if(document.all)// ie
    window.external.AddFavorite(url, title);
}
//]]>
</script>

However, Chrome browser does not allow us to bookmark any page using javascript. There is no workaround, and I think Google is absolutely right on this.

My concern is: the above script does not do anything in Chrome. Sooner or later my client will come back to me asking why my script does not work in Chrome. To avoid being questioned, I finally use another solution. It is a jQuery plugin called jBrowserBookmark. It will prompt the correct way to bookmark in unsupported browsers.

Magento extension: rcah 0.1.1 is released

Magento store owners are having a challenge when using rcah 0.1.0, especially for homepage. The nature of homepage is CMS, most content of it static.

Store owners want their visitors (especially first time visitors) to read static content on the homepage, but static content become obstacles filling in the central area of the page when visitors start to click on filters for refined results.

Root category as homepage 0.1.1 is released to address the problem. It conditionally hides the CMS Block on category pages. It only hides CMS Block in Display Settings of a category (category landing_page attribute). Static CMS Blocks used for others purposes (in sidebar, footer, etc) are not affected.

I must say the conditions when hiding the CMS Block are subtle. Please refer to readme file with the release for details.

Download RootCategoryAsHomepage.tar.gz

Why not use over-sized images in Magento?

为什么不要在 Magento 下使用过高像素的图片?其实这个命题跟 Magento 没有多大关系——任何网站都不要使用超过实际需要尺寸的图片。

只是 Magento 强大的图片处理机制容易让人产生惰性:如今买个相机动辄 10m pixels,拍完照一上传,只要 php.ini 允许足够大的值,Magento 也认可,但是,如果你真的这么做了,至少有这几点不良后果:

  • Can not send large images to Google Base (now called Google Merchant Centre). 虽然 Magento 能在自己的网站上缩放图片,但显然没有为 Google Base 考虑到。若为了让 Magento 缩放图片兼容去修改 GoogleBase module,在我看来有点头痛医脚的感觉。
  • Cost longer time to generate images in cache. 如果整个网站最大图片也只要 600x600px,那么何必为每次清空 image cache 后等上几秒钟来一张 10 兆像素的照片缩小成 600x600px?
  • Waste bandwidth to synchronise / backup media folder. 或许 unlimited bandwidth 不值得担心,但为数据同步/备份节省点时间不好吗?
  • My daily backup excludes some over-sized folders. 我有每日备份的机制,但这个机制无力顾及一些体积过大的文件或文件夹(通常也是不常更新的文件)。所以我会排除某些文件让备份文件保持小巧。

作为最佳实践,图片处理不应该依赖于 online resizing。我想 Magento 在管理图片上,也可以更周到一些,适当时提示说,“照片太大,需要缩小保存吗(不保存原图)?”。

UK airports postcode

Gatwick

  • South Terminal: RH6 0NP
  • North Terminal: RH6 0PJ

Heathrow

  • Terminal 1: TW6 1AP
  • Terminal 2: Closed until 2014.
  • Terminal 3: TW6 1QG
  • Terminal 4: TW6 3XA
  • Terminal 5: TW6 2GA

BAA Heathrow 网站上把整个 Terminal 2 版块都下线了,暂查不到 postcode。我认为在 Terminal 2 关闭期间,应该保留 Terminal 2 版块,只是在显著位置提示该 Terminal 处于关闭状态。我原本不知道 Terminal 2 处于关闭状态,因为在 BAA Heathrow 网站上根本找不到 Terminal 2 版块,我去了其他的新闻站点(其实是去年的旧闻了)才知道这条消息。

虽然各个机场的 postcode 很容易查到,但每去一次机场都 google 一次然后在 airport website 上翻好几页找 postcode 也挺烦,干脆我就在自己的空间记个笔记。

Email notification best practice

我见很多购物网站花很多力气组织语言,把邮件正文用日常交流的通顺的口气写出来,以为顾客会喜欢读这样的邮件,但我认为事与愿违。在快节奏的社会里,大家阅读任何邮件时已经习惯最多扫一眼,通知邮件类似于营销邮件,能得到顾客一眼的停留亦属非常奢侈。

比如,货物发运通知:

xxx先生,

我很高兴地通知您,你的订单xxx号的货物已交由xxx物流公司隔天送达。订单项下xxx商品预定数量xxx件,因库存不足,此批发送xxx件,余下的xxx件将于xxx天后发出。

谢谢惠顾!

通知中有很多重要信息,如果写进大段的文章,客人skim阅读时认为这是“你好我好大家好”式的寒暄,往往被忽略。因此,通知还不如写成bullet mark style:

  • 订单号:xxx
  • 物流公司:xxx
  • 预计抵达:隔天
  • 预定数量:xxx件
  • 已发:xxx件
  • back order: xxx件
  • back order ETA: xxx天

当然,以上纯bullet mark格式是另一个极端。在实战中,应以bullet mark展示重要信息为基本原则,适当组织可读的礼貌用语,通知邮件才会有理想的效果。

I am with Android

出于对 google 技术的无限喜爱,我就在 android 手机里挑了一款 motorola dext,升级了我的手机。

但是,我已经老了,新手机刚到手,摆弄了几下,明知道有很多新鲜的功能等我去发掘,已没有了新鲜劲。我只是把联系人、email、wifi 设置了一下,就丢开她了——我是不是老了?

尽管如此,我已有感觉,这是一款非常非常 open and user friendly 的手机,比 iphone 强多了。电池不经用?跟 android 带来的强烈享受相比,瑕不掩瑜——毕竟电池不是 google 挑的。