Author: 芳草苑主

  • I hope I can live on Adsense

    以前我只关注怎么用 Adwords 给 Google 送钱,没想过用 Adsense 从 Google挣钱,甚至连 Adsense 帐户都没有。我本人极厌烦一些不做内容、只做广告的网站,我甚至认为很多门户站点的广告都过多了,不屑与之为伍。

    但是君子好财,最近开始在一个网页上用 Adsense 小试牛刀,Adsense 跑了 3 天,2个休息日加1个工作日,大约 £1 收入。我估计一周会有 £3 收入。一年可以养养 VPS 的费用。

    我想这也不错,做几百个此类的网页,可以养老——刚看了立波秀,说一个老人到了领养老金的时候,发现可以从政府每月领 ¥3。这很可悲,中国政府靠不牢,其实英国政府也靠不牢,最好的办法就是靠自己——感慨过头了,我还没老。

  • 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 遥控器在内。就是说,一个遥控器,要控制电视频道、音量,还要控制桌面上的应用。
  • I have a longer history with Fedora

    今天拿出一张多年不用的 DVD-RW,想擦了上面的内容做一张服务器的启动盘(因为 HP ML110 G7 被我折腾了几次以后不肯在 USB 上启动,不知道为什么)。无意中发现上面的内容竟然是 Fedora 6 DVD,那时还叫 Fedora Core 6(后来就没 Core),年份是 2007 年。

    看来我跟 Fedora 的渊源在我没有意识到她是 Fedora 的时候已经开始了。我意识地使用 Fedora 是在她的第 9 版。

  • Back from NCL cruise

    day-01-embark-jade

    Image 1 of 30


    平生第一次坐游轮旅游。第一次坐的就是个 Norwegian 公司的大游轮 Jade ——排水量 93,000 吨,沿途只见我这只就是最大的。读 Norweigian 船队介绍,只有 Epic 比 Jade 更大,有 155,000 吨。

    旅行 10 天,Gatwick 飞 Rome,小巴接到 Civitavecchia, Italy (Rome 附近港口),上船;第二天在海上飘;第三天停靠 Katakolon, Greece,附近有 Olympia;第四天停靠 Piraeus, Greece, 附近有 Athens;第五天停靠 Izmir, Turkey,附近有 Ephesus,不过我们没去;第六天停靠 Istanbul, Turkey;第七天傍晚才离开 Istanbul, Turkey;第八天、第九天一直在海上飘;第十天停靠 Naples, Italy,附近有 Pompeii 和 Sorrento;第十一天返回 Civitavecchia, Italy,再由小巴接回 Rome 机场,飞 Gatwick。

    沿途景色很美,但说实话,我们住在 Brighton,大海也是天天见,所以对海景有点审美疲劳。加上 Cruise 不能深度游,我总觉得不尽兴。另外,旅游经验不足,多花费了很多钱。

    首先,船上卖 Wi-Fi 上网时间,250 分钟 100 美元。其实船上发射美国的 GSM 信号(船东是美国的),能用它 3G 或 4G 上网,如果有一张美国的 SIM 卡,就和在美国本土使用一样。似乎靠岸时船上的 GSM 信号是关闭的,我的 Orange 手机不断交替地收到 “You are using data in USA”, “You are using data in Europe” 的提示,最初搞得我莫名其妙——我明明在地中海,怎么说我到美国了?思考了好久问了船员才明白。所以,下次得带美国的 SIM 卡去坐美国游轮。

    其次,发达国家货币兑换处汇率极差,用抢钱来形容也不为过,本币/外币一卖再一买,一个来回约 12% 就没了,而在中国一个回来损失不到 0.25%。我出发前没有准备欧元,想去下一个国家碰碰运气,结果在意大利机场兑换处一看,跟英国一样地抢钱,又忍着不换。到了希腊,更糟,因为一时找不到正规的兑换处,在一个小店兑换,100 镑才换得 110 欧元,边上有个英国游客,跟我说,这个汇率在这种小店已经算很好了,他出发前在英国兑换汇率也只是 1:1.20。我无语,当时招商银行的汇率应该是在 1:1.22 以上。到了土耳其,我终于见到了我认为合理的汇率。发达国家的金融业通常高度发达,但普通的货币兑换却是如此落后。

    再次,如果目的国兑换处不能提供好的汇率,可以找 ATM 直接取现。我的 Visa Debit 卡每次取现、消费都被收取 £1.50 手续费,但汇率是相对合理的。如果单笔金额大,还是合算的。

  • Favicon Controller in Msdk

    昨晚在 Magento 里写了个 FaviconController.php,是为了解决 Magento 根目录下的 favicon.ico 静态文件无法根据多网店不同的 favicon.ico 而变化。

    Magento 有支持多网店多 favicon.ico,但直接访问 example1.com/favicon.ico 和 example2.com/favicon.ico 怎么回应不同的 favicon.ico?我是把静态文件删了,由 FaviconController.php 读取 SystemConfig 从 media 或 skin 目录里读出相应的 favicon.ico,响应 /favicon.ico 的请求。

    逻辑很简单,我调试好了以后决定把这个功能归于我的 Msdk 模块,可是天黑眼花,竟然塞错进了另一个不相干的 Misc 模块,于是怎么看 /favicon.ico 都是 404 Error。这事折腾了有2个小时才发现错误所在。我痛下决心,要把 Misc 模块改个名。

    P.S. Msdk 模块是免费的。下次发布新版大家就会看到 FaviconController.php 了。

  • Using Nivo Slider with Prototype

    我想要一个 jQuery slider plugin 用在 Magento 上。jQuery slider 类不乏优秀的程序。我不及精挑细选,用了 Nivo Slider。

    虽然 slider 能运行,但 FireBug 停止响应。查错发现 too much recursion occured in prototype.js 1132 行。自然想到了 jQuery 和 Prototype 的 conflict,但我有做 noConflict.js,而且 jquery.nivo.slider.js 也没有在全局使用 $,看上去挺规范的呀。

    我让 Magento 暂不加载 prototype.js,too much recursion 错误就没有了,但 Magento 不能没有 prototype.js (盼望 Magento 哪天自动放弃 prototype,用 jQuery 重写)。

    我有意放弃 Nivo Slider,无意中又发现别人竟做过同样的事情——把 Nivo Slider 用在Magento 下,而且没有 javascript 错误。

    我以为是我那段 slider 的 html 写得不好,全盘拷了别人的来用,还是出错。然后我认为是版本问题,可是用别人的 jQuery 库,放在我这里,还是出错。

    最后,直到最后,我意识到一点不同之处,我用不带任何参数启动 Nivo Slider,即

    $('#slider').nivoSlider();
    

    而别人用

    	$('#slider').nivoSlider({
            effect: 'sliceDown', 
            slices: 15, 
           
            animSpeed: 500, 
            pauseTime: 3000, 
            startSlide: 0, 
    		 
            directionNav: true, 
    		        directionNavHide: true, 
    		        controlNav: true, 
                    keyboardNav: true, 
    		        pauseOnHover: true, 
                    captionOpacity: 1, 
            prevText: 'Prev', 
            nextText: 'Next' 
           
        });
    

    就这点造成了 too much recursion。

  • Play with WD MybookWorld

    先说一下我所了解的此网络硬盘的习性:

    • 首先,它在创建用户时,并不创建同名组。
    • 其次,创建用户时,会问及是否创建 User Private Share。User Private Share 是 samba 用的一个名词,我觉得很难理解:既然是 Private,何来 Share?就叫 User Home Directory 更好一些。
    • 再次,删除用户时, User Private Share 并不随之删除,在 Folder Shares 界面里才能删除它。我试过以 root 身份执行 rm 都说“device busy”。

    什么情况下需要共享?最初我想按人分,一类是平级共享,比如同一组织内两个人共事,他们可以相互访问对方的文件;另一类是分级共享,比如上级可以访问下级的文件,而反之不能。后来情况变复杂了:甲要访问乙的部分文件,乙也要访问甲的部分文件,同时甲又给丙共享另一部分文件……所以最后我按文件类别分,某类文件要给哪几个人权限,思路就很清楚了。

  • Can’t retrieve entity config: core/store_group

    老版本的 Magento (1.3.2.3) 跑在新版本的 php (5.4.3) 上有个问题:

    Can't retrieve entity config: core/store_group

    这问题有点莫名其妙,最后发现是因为 SimpleXML 这个库太老了,在新版本的 php 下无法处理 Magento 的一些 xml 文件,所以出错。

    从新版本的 Magento (1.7.0.0) 里拷贝出 lib/Varien/SimpleXML 覆盖原文件就好了。

  • Export VirtualBox snapshots

    我觉得挺奇怪的 —— VirtualBox 怎么不弄个一键连同快照导出虚拟机的功能?这功能应该很有用。

    网上搜了一圈,也没人给个系统的指导。没办法,只好自己摸索着做。其实,导出快照没我想的那么复杂,也就是拷贝和修改一下配置文件。具体步骤是:

    1. 从源机拷出某个虚拟机的整个目录。
    2. 在目标机器上创建跟源虚拟机一样配置的新虚拟机。
    3. 把拷出的目录里所有文件放到新虚拟机所在的目录。用源虚拟机的硬盘文件覆盖新虚拟机的硬盘文件,同时有个 Name_Of_Vbox.vbox 的文件也被覆盖。.vbox 有快照文件们的树形结构信息及所在位置的信息。快件文件在 Snapshots 子目录下, .vbox 里存储的是相对位置,在新虚拟机里仍然使用。.vbox 是个 xml 格式的文件,不妨打开来看一下,里面还有一个 machine uuid,把它拷出来。
    4. 打开 VirtualBox.xml,它是 VirtualBox 的配置文件,在 Fedora 下它保存在 ~/.VirtualBox/ 目录下,新建的虚拟机的 machine uuid 和源虚拟机的 machine uuid 通常是不匹配的,那就用刚刚从 .vbox 里拷出来的 machine uuid 替换。

    这样源虚拟机连同快照文件就迁移到目标机器上了。这时尝试启动虚拟机或许会提示如虚拟网卡不存在之类的错误,一般是因为源机和目标机器环境不一致或所用 VirtualBox 版本不一致所引起的,问题不大,只要重新给虚拟机一张虚拟网卡就行了。

  • Solve Google Drive Sync installation 1603 error

    我不太用Windows,最近却玩得比较多,没办法呀,谁让 Google Drive Sync for Linux 还没问世。

    在安装 Google Drive Sync 时碰到 1603 错误,最后发现要先装 Microsoft Visual C++ 2008 SP1 Redistributable Package。还有人说一定要装 2008 版,我不信邪,先装了个 Microsoft Visual C++ 2010 SP1 Redistributable Package,果然还是出错。再装一个 2008,就 OK 了。