Author: 芳草苑主

  • Administrator name of Mybookworld to downloader area

    如果要登录 Mybookworld downloader,在 Administrator name 那一栏里输入的竟然是 “downloader”。我试了好多次才试正确,每次输错后我气馁地认为 Mybookworld downloader 被 disable 了。我没读 WD 的说明书,这年头谁有耐心看说明书?再说像 network drive 这种东西本来就应该很直观地让人使用,而 Mybookworld 没有做到。

    首先,用 admin 作用户名可以进入 network storage manager 和 copy manager,而进 downloader 非得用 downloader,没有统一规范,我不喜欢;

    其次,downloader 的密码是用 admin 进入 network storage manager 进行修改的,修改完了还要退出 network storage manager 再进入 downloader,烦不烦?

    最后,内置的 admin 和 downloader 用户名不能被修改或删除,给暴力破解提供了方便,安全堪忧。

  • Magento Block has no getters and setters

    I finally realise Block class in Magento is not like Model class – it has no getters and setters.

    It breaks MVC logic if we want to set data in Block, that’s why Block has no setters. However, when Block makes a variable which can be used in template. It is a maker, not a setter. So the function name is usually getSomething(). From the pointer view of template, it is ‘get’, but it is not a getter for Block.

    Magento could name this kind of function in Block something else for people easy to understand.

  • Caveats of firmware upgrade of Mybookworld 1TB

    买了 Mybookworld 2TB,按建议首先做了 firmware upgrade to newest version。

    顺便把原来的 Mybookworld 1TB 也 upgrade firmware,没注意到 Mybookworld 1TB upgrade 以后有没有自启。接着我发现以下反常现象:

    • 原先破解后的 sshd 也失效了,但能按老办法重新破解一遍。
    • 原先注释了 moinet start script,被取消了注释,只好重新注释一遍。
    • 原先修改了 root 的密码被擦除了,幸好 root 没有密码是无法登录的,其他用户的密码还在,赶紧再次修改 root 密码。提示说密码只能 5-8位,其实可以超过8位,把密码弄长一些吧,保险起见。
    • 局域网内其他机子无法凭 netbios name 访问 Mybookworld 1TB,还是手动重启一下 Mybookworld 1TB,以期它能赢得主控浏览服务器选举。
  • 负负得正

    “负负得正”的英文该怎么说?Two negatives make a positive?

    今天我整理供应商价格表倒发现了一个负负得正的有趣事。我们供应商的单价是随数量增加而递减的,而不知怎么搞的,数据录入时,25,000 数量那一行的单价错了,比20,000 数量那一行的单价还贵。而我们的售价是成本加成利润。理论上,错误的供应商的单价反向浮动会体现在我们的售价上。

    可事实上,我们的售价一直随数量递减,并未在25,000那一行出现肉眼可见的错误。

    于是,我逐行分析了程序,发现原意想让数量比较时 >= 条件成立跳出循环,却打成了 >。这样,20,000 再执行一次 + 5,000 的数量仍在循环之内,于是在 25,000 数量时,仍使用了20,000 的单价(因为两种情况下,后者总价低,程序另有各种情况下自动取最低值的算法)。也就是说,25,000 数量那一行的错误单价没有机会生效。

    所以,我们的售价表未现反向浮动,但只有我心里知道,25,000 那一行的售价报高了。汗!

  • My review of Mybookworld 2TB

    尽管我很清楚数据备份的重要性,尽管我脑袋里有数据备份的方案,但数据灾难还是时有发生,因为这么多年来缺乏一个数据存放的终极地点,数据备份方案过于复杂,执行不便,落实不力。

    我所有可以动用的存储介质容量加起来估计会超过2TB,足够把我所有的数据备份好几遍,但我还是狠了狠心,购入了 WD My Book World Edition 2TB。

    打开包装,首先发现 WD My Book World Edition 2TB 不带 USB 接口,无法用 USB 以外置硬盘方式与主机相连。网络硬盘的存取速率太慢,我原想要一个与 Ethernet 连接同时使用的 USB 连接。我嫌麻烦,也不打算因为不带 USB 接口就去退货,期待它的网络存取速率能有改进。开机后一试,果然,相对我公司一年多购入的 WD My Book World Edition 1TB,现在的 2TB 网络存取速率快了近一倍,但也只有可怜的 5.8 MB/s。

    远程共享根本用不着 Mionet 的服务,所以我一来就禁用了它,以免它占用 My Book World 本来就不强大的 CPU。然后我逛了逛 Web 管理界面,感觉不错,比 1TB 多了很多功能。我原本设计了一套基于命令行管理文件的方案,补足 1TB Web 管理界面不足之处,现在看来要调整一下,充分利用 2TB 自带的 Web 管理界面——直观的就是美的。

    还没来得及仔细试用 WD My Book World Edition 2TB,不过第一印象还不错(比预期的好),我估计它的 CPU 要优于 1TB 的,内存也会更大一些(128M?)。

  • Google Docs defects

    个人感觉 Google Docs 不如 Google Mail 用得那么流畅。不过可以体谅,文档处理比电子邮件处理要复杂,难免有没考虑周全的地方。

    主要有两个地方用得不顺手:

    一是 Shared Folder within domain users。一旦域内某用户共享他的文件夹,共享用户应该能在”Folders shared with me”看到它,但事实上看不到,只能凭 owner 告知该文件夹的 url 才能访问,非常不方便。

    二是 Spreadsheet 中文输入不太好用。我用的是 Fedora 下 Python Pin Yin,在单击选中单元格时无法输入中文(但可以输入英文),非得双击进入单元格才能输入中文。不过,这不一定是 Google Docs 单方面的原因,或许是 Fedora 下 Python Pin Yin 的问题。

  • Get rid of annoying VirtualBox usbfs warning

    VirtualBox 升级到了 3.0.10,在启动 VirtualBox 时就有一个 Warning:

    VirtualBox Usbfs Warning
    VirtualBox Usbfs Warning

    研究了一下,原来是以前版本为了在 GuestOS 启用 USB 设备而在 /etc/fstab 里增加的一行

    none /sys/bus/usb/drivers usbfs devgid=???,devmode=774 0 0

    现在成了累赘,把它删了 Warning 就没了。

  • Magento module vs Zend Framework module

    Magento 和 Zend Framework 都有 module 这个概念,我觉得这两者在设计思路略有区别,不能拿 Zend Framework module 去套 Magento module,反之亦然。

    简单点说,Magento module 是功能模块,Zend Framework module 是物理模块。Magento 把系统分割为十几个子系统,每个子系统各司其职,相对独立,但在整个 Magento 框架下,相对独立的子系统也能非常方便地与其他子系统通信,调用其他子系统中的功能。Zend Framework module 着眼逻辑分层,从 module 到 controller 再到 action。Zend Framework 并没有为 module 之间的通信作过多的考虑,如果用户有此需求,需要自行考虑,比如借鉴 Magento 的做法,在 Zend Framework 上再套一个框架。

  • Solved my Fedora PC hangs at boot

    我的一台装有 Fedora 的电脑有个启动后无法进入图形界面的老毛病:每次有软件包升级以后,Fedora 都会以最新的一个内核版本启动。电脑陆续被安装了三个内核版本2.6.29.5,2.6.30.8,2.6.30.9。可是只有最老的内核才能把电脑启动起来,如果以新内核启动,提示信息是:

    virbr0: Starting userspace STP failed, starting kernel STP

    有人说是 libvirt 的 bug 造成的,有人说这个 bug 已解决。不管怎么样,我看卸载 libvirt 对我没什么影响,先 remove 再说——可问题依旧,但提示信息变了变:

    r8169: eth0: link up

    实在不知所云,我一直以为是虚拟机软件造成的问题。Google 了好一阵子,才发现可能是 nvidia 驱动有问题,解决办法是

    yum install kmod-nvidia

    只此一招就搞掂,虽然搞掂了也不知道那玩意干啥用的。

  • Magento: Pass values from Block to template

    There are many ways in Magento to pass values from Block to template. I think these two ways are neat:

    Method 1:

    in Block, $this->setVariableName($value);
    and in template, $this->getVariableName();

    Method 2:

    in Block, $this->assign(‘variableName’, $value);
    and in template, $variableName is ready to use.