-
Mac OS X 中的怪事
Mac 一直用得好好的,不过最近发现两件比较奇怪的事情。 有一天离开办公桌一会,习惯性地锁屏。回来之后一动鼠标,奇怪怎么没锁屏呢?仔细一看,不对,确实出来锁屏状态请求输入密码的对话框了,但是它后面并不是以往的黑屏,而是所有的窗口都可以看到,并且所有操作都可以正常进行,只是密码对话框永远居于所有窗口的前面。我本来想多玩一会再截屏的,不过玩了一小下,一切恢复正常,屏幕变黑,必须输入密码了…… 没过几天,又发现一个 bug,但这个我觉得可能是 Firefox 的问题。两个显示器上分别有一个 Firefox 的窗口,其中一个是正常的,但另一个在地址栏输入的时候,出来的提示竟然跑到另一个显示器上一个奇怪的地方!应该是这个窗口创建那个输入提示的 UI Control 的时候,找错显示器了。将出问题的 Firefox 窗口稍微移动一下位置,问题就没了。 对了,我的系统还是老旧的 10.5.8.
-
Gravity 在 E71 上怎么用 GPS
有了个新手机 (E71) 之后就比较喜欢折腾,尤其对基于位置的应用非常感兴趣,比如在 google maps 中打开 latitude 图层,分享自己的位置,以及查看朋友们都在什么地方,可惜 google buzz 的图层在国内无法使用。 foursquare 是目前最流行的一个基于位置的服务了,另外 twitter 也开始支持 geotagging,尽管 s60 的应用跟 iPhone 比起来太少,有人还是做出了一个出众的软件 Gravity. 它最先只支持 twitter,现在最新的测试版不仅支持 twitter 自定义 API proxy,还支持了 foursquare, facebook, google reader, 新浪微博等一堆 web 服务。提一下,用 Gravity 看 Google reader 非常舒服。 几天前在机场比较无聊,又急着想方便地使用手机的 GPS 功能在 twitter, foursquare 上面分享位置,于是买了个 Gravity 的 license,这玩意的 UI 在 symbian 上确实是算好的,可惜的是文档太少,很多只能自己摸索,或者看山寨文档。比如一开始我用试用版就以为试用版限制了不能发布信息呢,后来才知道直接输入文字即可。 最郁闷的是我连续折腾了好多天,都没有在 E71 上让…
-
世界很小
半个月前,美国那边过来一个同事,聊天时我第一次从他那儿知道百姓网的渊源(以前没怎么关注过),于是就查了一下相关的新闻,当时就看到了王建硕的主页,但是没太在意,只粗略浏览了一篇访问 Facebook 的记录。 恰好几天后,有好友发给我一个链接,是王建硕的最新一篇 blog post,上面竟然有我主页的链接(Nice Technical Blogs)。 这事一方面在时间上很巧,另一方面也说明技术圈挺小的,我不太记得那个美国同事是不是跟王建硕也见面过了。后来我猜测,应该是 Robert Mao 推荐了我大学同学兼室友 xlvector 和郑昀,他们都在研究推荐系统相关课题,正好 xlvector blog 有我的一个链接,我就被不小心发现了。包括我在内的三个人都是来自中国科学技术大学,这也算是个巧合…… 被点名了,流量有小幅跳跃,google reader 增加了几个 subscriber, 给我加了点动力(压力),得提高文章质量。
-
dabr 架设与修改
我的 Nokia 3100 已经用了大约有四五年了,最近很有冲动要买个 iPhone,不过某人却给我买了个 E71,粉碎了我的梦想。在 Nokia 3100 退休之际,看一下它的丰功伟绩:发出的信息 10243,收到的信息 11431. 其实 E71 我也比较满意,不买 iPhone 也省下一笔钱。先配置了一下 Share Online,让它可以把照片上传到 flickr,然后就开始整 twitter. 先试了一下 Gravity,界面挺不错的,就是不是免费软件,最关键的是听说流量耗费比较大,我试用了一会确实如此,实在想不到为什么它会用那么多。 我一直在想自己做一个 twitter 客户端,只需要能够发布和查看与自己相关的信息(我发布的或者提到我的),几个月前曾经用 Adobe AIR 尝试过,后来因为时间问题搁浅了,也许以后有空了还会拣起来。我关心的信息就这么多,但是 Gravity 不管这些,它会定时更新默认的 timeline,一方面耗费流量,另一方面信息过载让我比较头疼。 dabr 是个非常好的选择,后来我使用也非常喜欢,虽然它只是个 mobile web interface. 第一,它可以让我访问到 twitter; 第二,只有在你操作的情况下它才会刷新页面,产生数据流量,且流量相当小; 第三,它是开源软件,可以非常方便地修改来适应自己的需求。其实它的安装就是比普通的 PHP 程序多了个 rewrite rule,很简单。不过我的配置比较特殊,也作了些修改,所以记下来,就当是个另类的 dabr 教程。 我的服务器上有两个 web server,lighttpd 运行着包括 qingbo.net 在内的一些 PHP 或者 python…
-
粗读了 Web 信息架构
前段时间买了一本“Web 信息架构”,英文名是 Information Architecture for the World Wide Web – Designing Large-Scale Web Sites. 网上还是有一些好评的,不过我却感觉有点无聊。 我这人本来就不是特别喜欢读书,遇到这种比较无聊的就更觉得没劲了。我只认真地看了一小半,然后用刚才的十几分钟粗略浏览了剩余的内容。这本书给我的感觉就是总结了一些 common sense,或者说是汇编了所谓信息架构所涉及到的一些学科的知识。 我很难想象这样一个会干涉到产品用户体验、数据库设计等的角色如何在公司的夹缝中生存,看来目前专注于这个的话,也只能给别人做咨询了。不过,产品设计人员在无聊的时候可以打发一下时间。 书中提到的“搜索日志分析”我还是有点兴趣的,该书在109页的脚注里推荐了一本书 “Search Analysis for Your Site: Conversations with Your Customers”,2007年出版。但是我在网上搜寻许久都没找到,到脚注给出的链接看,发现该书名字跟脚注有些出入,并且状态是 “in progress” ——并没有出版。该未出版的书和这本信息架构的作者中都有 Louis Rosenfeld 这个人,我不知道他们出于什么目的以这样的方式利用这个广告位。我很害怕这本书也是由废话堆积而成。 该书引用的一段话我倒是很喜欢(115页): 等一下,葛瑞蒂,月亮还没升上来。 等到月亮升上来,才能看见我洒的面包屑。 面包屑会告诉我们回家的路。 ——《韩森与葛瑞蒂》 这就是“面包屑”导航 (breadcrumb navigation)名字的由来。我没有找到完全对应的英文原文,但是这一段很相似: “Wait, when the moon comes up I will be able to see…
-
.NET 还是 Java?
今天跟一个计算机专业上大二的小兄弟聊了一会,期间他问:”你们公司招 Java 程序员?是不是基本大公司都不用 .NET?“ 他在自学 C#,这让我隐约回想起我学习计算机的过程。我基本是上大学才开始接触计算机,之前也就去过几次网吧,去校长办公室里打过几次抢滩登陆战。大学的一个寒假,我带回家一大堆计算机方面的书要自学,印象比较深的是还有一本讲 3ds Max 的书,当时什么都不知道,什么都想学……但是当时没有任何人给我指路,一直感觉很迷茫。就像这位小兄弟一样,经常担心,我学了这个技术将来有没有饭吃? 其实大学跟培训学校的区别就是,培训学校主要传授你一门吃饭的技艺,而大学要教会你如何自己探索吃饭的本事。很不幸的是许多大学已经沦落成为培训学校了。上完大学之后别人问你在大学学到了什么,你如果说我学会了 Java 或者学会了 .NET,岂不让人耻笑?如果大学的目的就在于此,那么大学早就应该开设 Java 系、.NET 系了,学制最多一年。 问这样的问题,就像要去种地,问别人我是该学锄头呢?还是该学犁呢?好吧,你学犁吧,你就永远是一头牛。你只管闷头拖着犁往前走,撒下的是别人的种子,结出的是别人的果实。 对于计算机系的人来说,数据结构、算法、编译原理、操作系统原理、计算机体系结构等这些还是必须要学好的。Java 也好,.NET 也好,编程语言只是工具。打好了基础,学什么语言都很容易,可以融会贯通,可以用它们来实现自己的想法。否则,就很容易沦为可怜的流水线工人,帮别人实现那可恶的 CMM…
-
物流也有技术含量
今天又看到了一篇分析物流的文章 – “亚马逊“乱”改卓越”,我感觉写得还是挺不错的。想起来几个月前看到的类似主题的文章“为什么都要自建物流”,该文对自建物流的好处也分析得很详细。再到网上搜“自建物流”,发现漫山遍野都是这个话题。 如果我没记错的话,我只在当当网买过一本书(当当买书经历),恰好就遭遇了一次不愉快,此后就尽量避免在当当买书了。每次都是在豆瓣、当当看书评,然后到卓越下单买书。 说实话,卓越的网站做得挺烂的,但是吸引我的就是它的物流。买的东西能够准确及时地送达,这才是最重要的。自建物流毫无疑问可以更好地跟自己的电子商务系统对接,提供更好更便捷的送货服务,展现更好的品牌形象。 物流方面我肯定是外行,不敢多说免得遭人耻笑。不过做互联网多多少少也跟电子商务有点关系,而上面提到的都是电子商务网站的物流。我很欣喜的看到,物流也可以很有技术含量。 看到用户行为分析在物流系统决策中的应用,感觉数据分析、数据挖掘还是大有前途的,尤其是在中国,大部分的企业这一块还是空白,但是大家都开始认识到它的重要性了。
-
第二次滑雪
去年春天我平生第一次去滑雪,没有经过人指导,头回上道之后都不知道怎么下来。不过后来知道点基本的东西了,看看下面人少的时候就冲下去了…… 前天公司组织大家一起去滑雪泡温泉,还很贴心地找教练教我们,总算知道了一些要领,在初级道上可以很自如地滑了。后来上了两次中级道,不过那段又陡又窄的路很让我发怵,速度一快了就忘记怎么控制了。但是再回来初级道,就感觉速度太慢,想快都快不起来。最后我忽悠部门所有同事包括第一次来滑雪的也都上中级道玩了一把…… 比较好的是我在中级道上虽然有时候歪歪斜斜,但最终没有倒,整天下来一个跟头都没摔。 晚上抽奖还抽到了一瓶 Johnnie Walker, 立即就贡献出来给大家过了酒瘾。有同事后来甚至喝得不省人事。总体来说这次玩得挺愉快的,只是我们在温都水城住,却没有机会去水世界玩点刺激的项目。
-
不能取得类 WorkBook 的 SaveAs 属性
同事(非编程出身)用 Ruby 写了个程序,生成一个 Excel 文件,把它作为附件发邮件给某些人。Excel 文件中是昨日数据的报告,他让我帮他每天让该程序自动运行一次。因为程序生成 Excel 文件调用的是 win32 OLE,所以是不能在 Linux 里用 cron 定期运行的,只好在一台 Windows 机器上用“任务计划程序”来实现。 奇怪的是到了预定的时间,我们并没有收到电子邮件。到任务计划程序中看,果然任务执行失败了,但是没有更详细的信息,这符合微软的风格──用户不需要知道太多。于是在程序中加入 exception handling,将异常信息写入文件,执行任务后,看到异常是: OLE error 0x800a03ec: 不能取得类 WorkBook 的 SaveAs 属性 得说明一下,这个 Ruby 程序如果是双击或者在命令行执行,会正常运行。因为指定了 DisplayAlerts = false, 保存文件的时候也不会有提示(假如有提示,就不好自动运行了)。但是在任务计划程序中就出现了这样的错误,我猜想是环境的问题,就像 Linux cron 里的环境变量跟正常登录的 shell 不完全一致一样。 该错误的英文版本是 “Unable to get the SaveAs property of the Workbook class”. 很多时候因为中文的有价值信息太少,我们需要猜测出错信息的英文版本,去搜索英文的资料。不过这次英文资料并没有帮上忙,最后试了一下 SaveCopyAs 这个方法,成功!既然用的是微软的东西,咱也不刨根问底地研究为什么这个方法就可以了──你可能会成为人人景仰的佛,但更可能成为唾弃的疯子。 把 SaveAs…
-
用 CSS3 @font-face 嵌入字体
今天刚发现牛人 Mark Pilgrim 正在写的 Dive Into HTML5,对网站上标题的字体很感兴趣,查了一下,是 Essays 1743. 这个字体以 LGPL 协议发布,并没有普及到大部分计算机上,所以需要用到 CSS3 的字体嵌入技术,Cross Browser Font Embedding with the CSS3 @font-face selector 一文详细讲解了跨浏览器的解决办法。 我已经把本站的头部标题改成使用这个字体,如果你没有看到可能是因为缓存的问题,请刷新一下浏览器。(update: 看久了感觉不太舒服,于是已经换掉了). 上面提到的教程其实挺麻烦的,主要是 IE 仅支持 eot 格式字体文件。由于我是复制 Dive Into HTML5 的样式,于是直接从那儿把字体文件下载到我服务器上,再把 CSS 代码搬过来就可以了。 @font-face 定义: @font-face { font-family: “Essays 1743”; src: url(“/static/font/essays1743-min.eot”); src: local(“Essays 1743”), url(“/static/font/essays1743-min.ttf”) } 在标题应用该样式: #header-title { font-family: “Essays…