Category: 小小草

IT 技术领域学海无涯。其实任何领域都学海无涯,无非 IT 发展太快了,让我有更多嘘唏。希望我掌握的技术有如小小草,虽然渺小,却有旺盛的生命力。

  • Orange Livebox USB Host Port

    据说,可以利用Orange Livebox USB Host Port建立一个NAS。我很感兴趣,因为我正打算买一个NAS。NAS DIY如果能就地取材,利用现成的Orange Livebox加现成的移动硬盘,对广大的Orange Livebox用户是个福音,可能还可以推广到其他Livebox用户。

    移动硬盘已经普及了,NAS还是新鲜玩意。

    我浅尝着做了两个实验。先是把移动硬盘连接到Orange Livebox USB Host Port,Orange Livebox准确地识别出这个设备,但我暂时没找到访问这个设备的办法。然后我想看看Orange Livebox还能识别其他设备吗,就把Orange SPV M600手机用USB连接到Orange Livebox,Orange Livebox呆了一下(肯定没想到我会插一个mobile phone),就自动重启了。重启后无法上网,手机倒开始充电,我只好把手机拔掉。

  • WordPress编辑应该避免使用浏览器的后退

    我刚才吃了点苦头:我写了两篇贴士,一篇贴士写好发布后,我使用了浏览器的后退按钮,回退到post-new.php页面,这时页面表面上看跟Write Post的页面一模一样,但post_id已经产生,而且跟第一个贴士的id一样,结果第二个贴士保存时,就把第一个贴士给覆盖了。郁闷,只好重新输入。

    所以我想提醒大家,尤其是WordPress的编辑,应该避免使用浏览器的后退功能。不过,WordPress也应该更贴心一点,post-new.php应该关闭cache,这样每次进入post-new.php,不论是用浏览器的后退或是点击Write -> Write Post,每次都更新post_id,这样就不会覆盖以前的贴士了。这时的post_id应该是临时的,所以不用担心多次进入post-new.php页面导致数据库保存了空内容的贴士。

    我特别喜欢程序在处理完post data以后作一个redirect,这样也可以避免上述数据覆盖的问题,而且解决后退时浏览器提示页面过期、要重新发送数据种种的不友好问题。Header redirect已成我的习惯,这么做好处很大,迄今也没遇到一起redirect after post带负面影响的情景。不过,我发现有同样习惯的人不多。难道有很多不好的scenarios我没想到?

  • 邮件发送后滞留在发件箱的解决办法

    办法很简单:清空已发送邮件。

    我曾为邮件发送后滞留在发件箱的问题辗转反复,说来话长。

    我办公室有一台专门的电脑处理印刷稿件,每天收发好多超大邮件,邮件程序是Outlook Express,邮件带的附件大多是高分辨率的PDF或JPEG等文件。每隔若干天,同事就会找我帮忙:Outlook Express发信出现问题,邮件明明已经发出去了,对方也收到了,但邮件就是卡在发件箱里,Outlook Express错误提示是一项或多项操作未完成,但没有更多的原因说明。其实在同事发现Outlook Express工作不正常之前,发件箱里已经堆积了很多邮件,这些邮件都已经发送了N份copies给收件人。

    发件箱出现这种症状是随机的,也搞不清楚是什么诱发了发件滞留,有时一个不带附件的小邮件也会诱发发件滞留发件箱,但一般来说带附件的大邮件更容易导致发件出错。我以前判断是发件箱有毛病,因此用不同的方法去重建发件箱。我至少尝试了以下方法来解决问题,因为任何一个方法并不总是灵光,其效力也是随机的。

    压缩所有文件夹(尽管矛头指向发件箱,但压缩一下所有的文件夹也无妨)

    • 导出邮件后再导入回来
    • 删除发件箱.dbx(Outlook Express启动时会新建一个发件箱.dbx,如果检测到发件箱.dbx不存在的话)
    • 干脆在Windows下创建一个新用户,再导入邮件
    • 重装Outlook Express后导入邮件

    以上方法都只能工作一段时间。我按“Outlook Express发信出错”、“Outlook Express发件箱不能清空”等关键词搜索前人一劳永逸的办法,搜到很多的IT网站和论坛相关讨论,但那些IT高手们也说他们也有同样的问题,也用同样的方法,也只能一时有效。我也只好将就,对同事的求助习以为常,用临时方法解决发件箱问题。

    昨天同事又来找我。我按老规矩把老方法一一试来,在等导入邮件的操作完成时,我突然来了灵感:我为什么总认为是发件箱出问题了呢?为什么不能是已发送邮件出问题呢? 我的演绎是:

    当已发送邮件越积越大时,Outlook Express的某个臭虫导致Outlook Express无法稳定地把一封已发出的邮件添加到已发送邮件文件夹。不稳定性导致症状出现的随机性。邮件实际已投递,但由于不能成功添加到已发送邮件,就只好滞留发件箱了,错误提示说一项或多项操作未完成,其实是指最后一步没完成——一切都自圆其说了。

    那台电脑的已发送邮件.dbx有3G大,我将它重命名为旧已发送邮件.dbx,然后删除了已发送邮件.bak,发件箱症状立马就消失了。称之为发件箱症状其实也不准确,应该叫已发送邮件症状。我相信我的办法可以永久地解决问题。

    回想起来,我也曾造访过微软的网站寻求帮助,微软知识库里至少有三篇文章是讲发件箱问题的,但现在看来,这些都是“头痛医脚”。我不指望我的办法能被微软收录,但我确实希望这篇文章能在google关于“邮件滞留发件箱”类别的搜索结果中能排个好名,为众多的Outlook Express迷途者指点迷津。

    顺便说一下,看别人的类似求助,似乎Outlook也有“邮件滞留发件箱”问题,我相信清空已发送邮件的办法同样适用于Outlook。

  • Solution to Emails Delivered but Stuck in Outbox

    The solution is very simple: empty the folder Sent Items.

    It is a long story of getting to the solution. If interested, please read on.

    In my office a dedicated artwork processing workstation receives and sends tons of emails everyday. The email program installed is Outlook Express. Artwork attachments are normally high resolution PDFs, JPEGs, etc. Every a few days my colleague asks me to examine this workstation when the symptom comes – emails stay in Outbox after sending, and an error message will popup saying one or more tasks are not completed but not giving details and possible reasons. Actually emails have been delivered many times before my colleague notes the problem.

    The Outbox symptom occurs quite randomly. Sometimes even a small email without attachments could incur the problem, but big emails with attachments are more likely to replicate the problem. My previous approaches were focused on rebuilding a new Outbox. I have tried at least the following methods, none of them always work.The effectiveness is random as well.

    • Compact all the folds in Outlook Express
    • Export and import emails
    • Delete Outbox.dbx (Outlook Express will automatically create a new one when it detect Outbox.dbx does not exist)
    • Create new Windows user and import emails
    • Reinstall Outlook Express and import emails

    But all of the above methods could only work for a while. I researched many IT forums. Lots of gurus mention that they face the similar problem and use the above temporary methods. So I had been used to being called for help once in a while.

    Today I was called again. While trying my old methods one by one to see if any of these temporarily solve Outbox Symptom, I suddenly had some afflatus. Why I thought Outbox was wrong? I always used “outlook express outbox stuck”, “outlook express outbox stuck” as search terms. It could be Sent Items. My deduction is –

    When Sent Items.dbx is getting bigger and bigger, some bugs in Outlook Express make Outlook Express not able to handle reliably a new Sent Item appending to Sent Items.dbx. That is why the Outbox Symptom happens randomly. The email is already sent but because it can not go to Sent Items, it has to stay in Outbox.

    Sent Items.dbx on artwork workstation is 3 gigabyte huge. I renamed Sent Items.dbx to Old Sent Items.dbx and deleted Sent Items.bak. Instantly Outbox Symptom was gone. Now I know it is not appropriate to be called as Outbox Symptom. It is Sent Items Symptom. I believe my new solution will be permanent.

    Looking backwards, even 3 articles (E-mail does not leave the Outbox, How to troubleshoot mail stuck in the Outbox in Outlook 2000, Error message that Sent Items remain in Outbox) I found from Microsoft knowledge base regarding this Outbox Symptom or Sent Items Symptom whatever did not help much. I do not expect my solution would be collected by Microsoft knowledge base, but I do expect this post can be ranked on top in google “outbox stuck” related search result, helping as many people as possible solving a very simple problem.

  • Google Contacts Best Practices

    大家可能不了解Google Contacts,它是我起的名。其实Google Contacts不是独立的google service,只是gmail中的Contacts而已,我用它来manage my contacts,为了方便,我称它为Google Contacts。

    我自从不再使用.wab (outlook express address book, or windows address book) 来作我的通讯簿以后,一直再找一个contacs management solution。找了很久没有找到一个完美的方案,期间我没有一个统一的记录方式,导致很多联系人信息缺失(这里要对他们说抱歉了)。与其继续寻找,继续缺失,不如痛下决定,选择一个方案,尽可能地用好它。于是Google Contacts就成了我的通讯簿管理方案。

    选择Google Contacts的理由是:

    • 我没理由地喜欢google。
    • Google 的服务器在全世界范围内都能被快速地访问到。我所谓的全世界,其实也就只在意中国和中国以外。很多服务在中国以外访问速度很快,到了中国慢得难以忍受,反过来也是。在测试Google Contacts的过程中,我认为其访问速度在中国和中国以外都可以接受。
    • Google的服务很有保障。
    • Google Contacts就是gmail的一部分,不用再想着怎么去集成这两个服务。
    • 搜索日久遗忘的联系人不是件容易的事情,但Google Web搜索做得这么好,Google Contacts搜索总可以借点光吧。
    • Google Contacts可以开放式添加联系人的电话、邮件等字段,还可以开放式添加personal, work, whatever section names. 估计不是用关系数据库。

    但Google Contacts也有缺点,我有部分对策:

    • 无法sub-group。

    对策:在分组时直接按最细的级别分组。比如以前在outlook express address book里我有一个分组“同学”,子分组“初中同学”,“高中同学”,“大学专业一同学”,“大学专业二同学”,“Sussex同学”,“培训班同学”等,现在直接就拿子分组作为分组。使用一段时间发现多级分组也没什么必要,因为我不需要跨分组发送消息。

    • 导入时丢失分组信息,导出时还是丢失分组信息。

    对策:导入到Google Contacts我陆陆续续花了一周时间手工重建分组信息。虽然费时,但我quite enjoy。我边把联系人归组,边回想这些联系人是从哪里来的,有些事情回想一下还是挺有意思的。 导出时还是丢失分组信息的问题我暂时没办法解决。我是未雨绸缪,万一Google服务不好了,或者Google Contacts开始收费了而且收费不合理的话,我就得离开Google Contacts。 到那一天,或许Google Contacts的export功能已经改善了,或许我已经会用google api读取分组信息…

    • 联系人搜索不够智能,至少没有我期望的那么智能。如果有个联系人叫“张三丰”,搜索“三丰”是没有结果的,但搜索“张”或“张三”都能找到“张三丰”。

    对策:多花点脑细胞记住Google Contacts里的词头,不用记词尾。比如note里写了一段话“转角遇到爱”,那么要记住“转角”而不是“爱”,这样下次才能搜到这条记录。

    • 如果联系人没有电子邮箱,就不能在group页面添加该联系人,只能在contact页面把该联系人归组。

    对策:告诉所有联系人,要想入选Google Contacts名人录,必须有一个电子邮箱。如果联系人不受诱惑,那只有在contact页面把他归组。

    • 没有内置Birthday, Source等字段。

    对策:我用note字段按统一的格式记录这些信息(如果有的话)。

    • 联系人之间没有配偶、同事等关联。

    对策:如果两个联系人有关联,尽量把其中一个的信息以section方式存到主联系人中,除非这两个联系人是同等重要的。比如,我认识韦小宝,然后韦小宝介绍双儿与我认识,但我一般只与韦小宝联系,这时就应该把双儿存到韦小宝的section中。section的名称就可以取名叫双儿,我通常还会在该section做一个redundant field – Other,值也是双儿。这样能保证搜索“双儿”时能搜到韦小宝这条主记录,因为Google Contacts不搜索section name中的内容。

    • 两个联系人无法共享一个电子邮箱(不能存储第二个带相同邮箱的联系人)。

    对策:时下老公老婆共享一个电子邮箱的还不少,google倡导共享,但不倡导电子邮箱的共享,但我无法引导人家夫妻按google的思维来。不过这也好办,按上述韦小宝和双儿的情况处理。

    • 无法undo删除联系人操作。

    对策:小心谨慎,勤做备份。

    • 无法按中文拼音排序。

    对策:忍了。

  • Convert .vob to .iso

    今天整理硬盘,想把以前以AUDIO_TS和VIDEO_TS存放的.vob等文件转化成单个DVD镜像,因为点选一个个的.vob文件来播放实在不方便。

    我第一次转化.vob成.iso(我最喜欢的镜像格式),也不知道可不可行,所以google convert .vob to .iso是行动前的必修课。可惜google到的前几个答案都是让我去下载一些我没听说过的软件。对于无名软件我不喜欢尝鲜,所以我决定自己摸索。

    nero是刻录界的王牌,我首先想到它。结果一试就成,出奇的顺利。我是这么做的:

    1. 创建Video DVD project
    2. 添加AUDIO_TS(即使AUDIO_TS是空的)和VIDEO_TS(VIDEO_TS下除了.vob还有.ifo和.bup两种文件,如果没有,可能需要先创建之)两个文件夹
    3. 烧录到镜像
  • Google Sites Best Practices

    我一天淫浸在google sites,起先还抱着试玩的态度,可是几个小时下来,成果显著,做出来的google site像模像样,于是我转变态度,决定启用这个google site,于是又花了几个小时添枝加叶。现在第一个google site基本完工,我已颇有心得,这里畅谈一下。

    要玩转google sites,首先要明白google sites适合干什么用,能干什么,不能干什么。如果你硬拉google sites去建它不擅长的网站,你肯定会失望。与其后来失望,那你还不如先花几分钟读读我的Best Practices。

    • google sites适合建project oriented sites,但不能拿它来作project management,google sites根本就不是为project management开发的。
    • google sites适合存储一次性信息,不要指望数据导入导出,不要指望在数据之间建立复杂的关系。
    • google sites适合单个处理的文件,不要指望批量上传文件,也没有ftp。
    • google sites适合组织内部成员共享信息,和少量外部成员共享也是可行的,但吃不消管理大量外部成员,分组分级别共享更不可能。
    • google sites适合懒于备份的用户,google sites后台的版本控制可以方便地追踪、撤销、恢复最近的网页修改和文件上传。但如果你很挑剔,你会感觉版本控制的控制权不在你手;如果你很万全,担心google sites的数据哪一天被黑,想把你的全站做个本地备份,这恐怕只有用手工去做了。
    • google sites适合在网页里调用google hosted的数据,如google documents, google calendar, google picasa, google video/youtube,google gadget,集成度堪称完美。但如果你想调用别的地方来的数据,那工作量就大了,不可能象我这样在一天内做出一个像模像样的网站。

    要建好google sites,动手之前必须先规划。规划内容是:

    1. sites分类法(不是归类,google sites归类显示的功能完全不用我操心),我建议site与site之间以使用者权限来分,因为你不能单独设置一个site下某个分支的共享发布,共享发布的设置是对全站有效的。如果你有information A要共享给person A,information B要共享给person B,你必须建两个sites,分开存放information A和B。
    2. site hierarchy也很重要。url是从page name而来,create new page时就创建好了,无法更改。如果你发现当初page name取得不好,想换一个page name是可以的,但url保持不变。如一定想要个新url,只能delete page,再create new page。
    3. 上传文档的位置。我建议put files which are downloaded or emailed as standards or background introduction到各自主题下面的webpages,再做一个file cabinet,put files which are created or modified for this project there。

    google sites单个页面的功能很强,但可订制性很小,页面与页面间的联系也很困难,但如果规划恰当,一般可以避重就轻。

  • 节选设置

    大家普遍认为WordPress自带的excerpt功能太弱,于是extend excerpt plugin很多,但我没找到我想要的。这些excerpt plugin大多为了解决html标签截断的问题、字数还是字节的问题、显示格式问题。

    我想找的excerpt plugin是为了解决excerpt的缺省值问题,我最喜欢的excerpt值是:

    1. 如果post excerpt不为空,显示该excerpt字段;
    2. 否则,如果post content中含有<!––more––>标签,显示<!––more––>标签之前的内容;
    3. 否则,读取post content的既定字数。

    我就这么一个简单的要求,怎么没有现成的excerpt plugin呢?

  • 7zip支持rar啦

    很久没有关心7zip了,以前下了432版本不支持rar格式的压缩文件,而rar又是这么流行,我当时只能放弃7zip。为什么7zip不能支持rar呢?7zip的解释是rar不公布它的压缩算法,所以7zip没法支持rar。

    最近偶然想起,去下了7zip最新版457,发现它开始支持rar格式的压缩文件了,看来7zip买到了rar的算法,或是rar公开了算法。不管怎样,7zip终于能满足我对解压的要求,所以7zip以后就是我的装机必备软件了,winrar退出了历史舞台。

    话说回来,对比winrar,7zip还有一个很主要的缺陷:用7zip打开一个压缩包,想要直接双击运行压缩包里某个文件,而如果这个文件需要运行时需要压缩包的其他文件(比如,.exe附带.dll),7zip就会提示说某个文件没找到。原因可能是7zip处理不好解压后临时目录下的文件, 这时一定要完整解压压缩包里的所有文件到某个非临时目录,然后才能使用其中的文件。winrar就没有这种hassle。但是为了支持开源,我忍了。

  • Google新增服务:google sites

    今天刚刚注意到Google Apps推出了google sites,之前Google Apps就有一项google web pages,这两者都是傻瓜式建站服务。google sites侧重于内容管理和合作共享,google web pages只是单独的页面设计。

    Google出品,必属精品。google sites又是免费的服务,我玩了一下,实在无可挑剔,比我见过webeasy或很多主机提供商提供的智能建站软件都强。 记得以前有人连html都不懂,问我怎么建站,我当时实在没什么好推荐的,现在再有人这么问,我铁定让他找google。

    google sites可以方便地交流google docs和google calendar,对于已经有了CMS的用户也有一定的实用价值。