No formatting inside html tag

我目前用的 WordPress 版本为 2.8.4。发现一个 bug,就是在 post html 源码编辑状态(非 Visual 编辑),输入时为 保存后查看一下数据库,post_content 忠于原文,前台输出时却经过 WordPress 的格式转换,变成了 html p tag 都不配对了。 这个 bug 不严重,因为 WordPress 自带的 TinyMCE editor 不会插入 div tag。TinyMCE 倒可以插入 b-quote,输入时 前台输出 完全正确,没有触发 bug。这个小 bug 让我联想到很多 wysiwyg editor 和 output formatting 时不尽如人意的地方。 我在 magento 和 phplist 里都是禁用 wysiwyg editor 的,在 WordPress 里虽没有禁用它,但我有意识地仅仅使用它的 htmlentity。象我习惯于手写 html 代码以求更多输出控制的人,觉得 WordPress… Continue reading No formatting inside html tag

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 版块,我去了其他的新闻站点(其实是去年的旧闻了)才知道这条消息。… Continue reading UK airports 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展示重要信息为基本原则,适当组织可读的礼貌用语,通知邮件才会有理想的效果。

Understanding layout.xml syntax in Magento

I write this article about my understanding of layout.xml up to now. I use it to show you How to add buttons in order/invoice/shipment/creditmemo without override Block class? How to define an array as a parameter in layout.xml using <action method=”addButton”><param>array</param></action>? How to assign any type of variables in layout.xml? How to avoid overriding controller… Continue reading Understanding layout.xml syntax in Magento

cp -f does not switch off prompt?

我在 Fedora 下执行大量的文件拷贝操作,我使用了 cp -fr [SOURCE] [DEST] 我使用了 -f 开关就是不想被询问文件是否覆盖。但 cp: overwrite `(filename)’? 提示还是出现。 这是什么原因?原来 Fedora 带有几个 alias,可以用 alias 命名查看。 # alias alias cp=’cp -i’ alias l.=’ls -d .* –color=auto’ alias ll=’ls -l –color=auto’ alias ls=’ls –color=auto’ alias mv=’mv -i’ alias rm=’rm -i’ alias which=’alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde’ cp 被 alias 了!-i… Continue reading cp -f does not switch off prompt?

Absolutely secure online banking

一年前我老板中了个毒导致银行账号密码失窃差点损失7,800镑,之后他来问我公司应该建立怎么的安全制度(security protocol)。 我认为,要绝对的安全很容易,但往往增强安全的同时给用户日常操作带来不便,抵消了网上银行的优势。如何加强安全又不失方便性?我当时的解决方案是: 设立一台独立主机服务器,打上所有的安全补丁,启用必要的防火墙。服务器上只要有个浏览器,其他的都是不必要的。建议使用Firefox with Linux。 客户端以ssh+vnc方式连入服务器。 客户端连入服务器后,只能操作网上银行,不得浏览其他任何网站,也不得进行其他任何操作。 第2步是个技术活,可以保证客户端即使在中木马等病毒的情况下,病毒也无法探知客户端通过服务器中转的输入。除非病毒能监视并分析所有的键盘、鼠标操作。 第3步是关键,必须严格执行。安全隐患大多是人为的因素,如何用户没有好的安全意识,再好的技术支持也枉然。 但这个方案未能得到贯彻。没过几天老板好了伤疤忘了痛,仍用日常电脑登录网上银行。在我看来不复杂的绝对安全的方案对他来说还是太复杂了,没有方便性的方案就不是解决方案。如何保证网上银行的绝对安全作为悬而未决的课题在我脑袋里盘绕了一年,直到最近尝试了 Chromium OS,我看到曙光。 稍后谈谈我对 Chromium OS 的看法。

How to run p7zip

我还是不免有 Windows 式思维。为了能在 fedora 下解压 rar 文件,我 yum install p7zip 然后,找遍菜单,没有发现哪个可以启动 7zip 或 p7zip;在终端窗口敲遍可能的命令也没一个有效。我只好放弃,启动 windows 下的 7zip 解决问题。 过了好几小时,我启动 Archive Manager 去压缩一个文件夹,无意中发现 .7z 成了 Archive Manager 支持的一种格式。恍然大悟,原来 p7zip 不需要自己的 GUI。 当然,还有一个发现:p7zip 不支持 rar 文件,要在 fedora 下解压 rar 文件,得用 yum install unrar 当然, unrar 只解不压,不过我从不把文件压成 rar,也不建议别人使用 rar 格式,更不推荐 winrar —— 7zip 这么强,又免费,何苦用 winrar?!

Magento 1.3 cannot work with memcached 1.4

今天我注意到一个还未来得及升级的 Magento 1.3.2.3 的安装 down 了,原因是 Magento 1.3.2.3 无法和 memcached 1.4.4.2 协同工作(memcached 1.4.4.2 服务器环境自动升级带来的)。 错误提示如下 Notice: MemcachePool::delete() [memcachepool.delete]: Server 127.0.0.1 (tcp 11211, udp 0) failed with: CLIENT_ERROR bad command line format. Usage: delete [noreply] (0) in /……/magento/app/code/core/Zend/Cache/Backend/Memcached.php on line 271 我按提示找到 Memcached.php 把第271行改为 仍旧无效。 尝试着升级安装到 Magento 1.4.0.1,能支持 memcached 1.4.4.2 了。 但网站布局变得乱七八糟,需要调整很多 template, layout 及 css… Continue reading Magento 1.3 cannot work with memcached 1.4

Comparison in PHP

除非使用 === 或 !== 进行比较,PHP 尽可能地将值转化为数字进行比较。因此,看到比较 “10” == “1e1” 的结果是 true,千万不要大惊小怪。 “尽可能”如何理解? 如果等式一边是数字,另一边是字符串,那么字符串一定要 cast to int 后再比较。因此,比较 “10” == 1e1 的结果是 true,比较 “10 ” == 1e1 的结果也是 true。 如果等式两边都是字符串,且字符串中均不含数学字符以外的字符(包括white space),那么两边的字符串会在 cast to int 后再比较;否则,直接比较字符串。因此,比较 “10” == “1e1” 的结果是 true,但比较 “10 ” == “1e1” 的结果是 false。 如果等式有一边或两边是数组,则先比较数组结构是否相同,再逐个比较数组元素。在比较数组元素时,索引不会 cast,但值按上述两条规则“尽可能” cast。因此,比较 1 == array(1) 的结果是 false,比较 array(“10”) ==… Continue reading Comparison in PHP

Published
Categorized as 小小草 Tagged