In Infoworld’s article, Java performance improvements touted quoted:

As your program grows in size, the lack of strong typing basically kills your ability to handle a very large program and so you don’t find the million-line Perl program.

In response, chromatic said:

the reason that there aren’t many million-line Perl programs is that the people who are capable of writing and managing million-line Perl programs have better ways to organize their projects than glomming a million lines of Java into a single shared-everything instance.

My reflection and thoughts:

  1. Interestingly, why the pick on Perl? not Python or Ruby or Lisp-flavoured ones?
  2. s/Perl/PHP/g or s/Perl/Python/g etc. on chromatic’s quote still valid and sound;
  3. Java => Strong typing? Not necessarily always;
  4. IntelliJ IDEA is the only reason I still code in Java, Eclipse? that would be another post;
  5. Vim (together with some bash scripts and esvn) has been my primary “IDE” for projects that involve php, python, bash and javascript;
  6. I have written Perl applications before, and would be very happy to pick it up for my next project if everything else fits (e.g. the team factor);
  7. When would I code in Java? most likely a project that:
    • being “enterprisy”, or
    • I am really interested to learn, explore and apply, e.g. Antlr.
Firefox, Web @ 01 April 2008, “2 Comments”

作为一个喜欢读书看碟的人,我一直把豆瓣当作非常喜欢且每天必上去转几圈的网站。可是最近的豆瓣越来越不让我喜欢,或者说不能让我越来越喜欢。在推出“广播”之后,最近推出日记,接着推出推荐网址,这对在豆瓣上找书看影评的我来说,不仅没有用处,“信号”降低了,“噪音”反而升高了。

我不想离开豆瓣,但是又不想受到这些干扰,就想干脆用GreaseMonkey扩展来写个脚本把不想看到的东西屏蔽掉吧,Keep It Simple, Sweet.

我的目的很简单,就是要把右边栏屏蔽然后把左边主要内容横向伸展开。试了一下,只要八行脚本语句就能暂时满足我的要求,这里要强烈赞一下豆瓣的开发团队,要不是他们写的页面代码很一致(嘿,页面也是API),脚本就可能很复杂甚至让我放弃这个念头 ;-)

脚本如下:

// ==UserScript==
// @name           mini douban
// @namespace      douban
// @include        http://www.douban.com/*
// ==/UserScript==

a = document.getElementById('tablerm');
if (a) a.setAttribute('style', 'display:none');

a = document.getElementById('tabler');
if (a) a.setAttribute('style', 'display:none');

a = document.getElementById('in_table');
if (a) a.setAttribute('style', 'width:100%');

a = document.getElementById('in_tablem');
if (a) a.setAttribute('style', 'width:100%');

好了,现在不妨趁机说说意见:

首先,我想我能理解豆瓣做这些新功能(比如在不断增加大量用户在读看听上的喜好和选择的数据基础上,可以尽量深入收集,发现和发掘更深层次的潜在数据),但是对我个人来说更希望能帮发掘更多的数据,这方面的服务似乎有提高的空间,举例来说,《枪炮,病菌与钢铁》这本书我看过了,很喜欢,可是豆瓣依然向我推荐繁体版和英文版,更不要说大量原英文版和翻译的中文版的技术书籍了,读了其中之一就不大会再读其它的,类似的问题还有不同版次的书(这方面技术书籍问题更多),在“豆瓣猜”的列表下,我该不该选“不感兴趣”呢?

Web2.0,长尾,Abundance,UGC,…. 在数据和信息越来越多的时代,我更需要的是提高信噪比。

无题

王佩入了一台Canon 400D

读着他的文字,自己当时进了第一台相机时的感受冒了出来。

很久很久很久很久以前,我开始玩摄影(准确地说是照相),耗费了许多精力,财力,和时间,周末和朋友出门拍照然后聚在一起放片子,和各家器材店的伙计们混个脸熟,下载无数图片,阅读器材评测报告,研究镜头和胶卷特性曲线,千万思量后下狠心告诉自己这是今年最后进的一个镜头或者相机,然后没多久又进一个…,上班下班只要上网就流连于各个摄影论坛,灌水或者看人灌水,拍砖或者被人拍砖。

那时在无忌摄影论坛(器材派们最热爱的论坛,那时那里只讨论摄影器材不像现在无所不涵连烟斗似乎都有专门的版块)上有一句经典:

如果你爱一个人,送他一台相机;如果你恨一个人,送他一台相机。

王佩一定非常爱自己,除了笔,他又多了一支表达自己的工具。

我已经很久很久很久很久很久没有真正地摸相机了。

就算拿起来,按了快门,也不再有当时那种热情和专注,或者说,那种幸福感。

王佩说:“人生之所以痛苦而有趣,乃是因为永远充满着选择。”

无间道里说:“出来混,总是要还的。”

要还多久?

Ian Betteridge

At tech conferences, you have an audience that is largely paying attention to their screens, rather than to what’s happening on stage. This means that the reaction of the audience will be magnified, as the reaction is passed from audience member to audience member in real time.

But the problem with an audience which is live blogging, Twittering, and so on is that it’s not paying attention to what’s happening on stage.

虽然网志年会算不上“tech conference”,但这种现象在往届会场上已经很熟悉了,从台上看下去,满场尽是笔记本。而且去年的会场上的一大特点就是专门有个大屏幕实时更新汇集的短信。不知道如果讲台上也能看到同样的在线反馈,会有怎样的效果。

吸引和保持观众(包括异地在线观众)的注意力,这对组织者和台上的演讲者是个挑战。今年的网志年会也要开始准备筹办工作了,还不知道今年会在哪个城市举办,期待中。

发现一个有用的网站:Is this website down for everyone or just me,中文就是:到底是这网站挂了还是我有问题。

很明显它只做一件事情,就是当你发现某个网站访问不了或者出故障的时候,可以把网站的地址输入,它会告诉你到底是所有人都访问不了这个网站,还是只有你遇到问题。

当然,同学们,这回复结果就非此即彼的两个答案,一看就知道这网站是吃不上河鲜的人做的,too simple! sometimes naive!

至少要多两个答案:墙内的访问不了;墙外的访问不了。

这个案例告诉我们什么呢,第一,网络产品/服务的本地化不是换换文本和字体这么简单;第二,吃不上河鲜代表不了先进生产力。

最后,希望这网络服务的本地化的国产版本能够早日出来。

更新:

今天的LifeHacker推荐了另外一个类似的手段,使用的是Firefox的Bookmark Keyword的功能结合Network Tools的服务。当然,也可以实现traceroute等。同样的,也可以用相同的办法给http://downforeveryoneorjustme.com/ 也做一个:

创建一个新bookmark,名字随便,地址为:

http://downforeveryoneorjustme.com/%s

自己想个keyword,比如“justme”,保存,搞定。

比如要想查youtube,在地址栏上直接输入justme www.youtube.com

Web2.0 @ 21 January 2008, “2 Comments”

浏览邮件列表时看到一个Web2.1技术演示,笑倒,一定要分享的,这里是中文版本

Life, Running @ 07 January 2008, “12 Comments”

1月5日跑了的厦门马拉松。

因为前阵子没怎么休息好,训练时间比去年短,也不如去年有规律,前一个星期开始犹豫是否参加,直到1月4日才决定还是去跑一下,毕竟这是今年的计划之一,得开个好头。

跑的那天早上在去会展中心(起点)的的士上突然发现居然把计时芯片落在酒店里!赶紧回头去拿…[此处删去发疯抓狂懊恼250字]… 等跑过起点的时候,已经过了8分钟,起点计时的踏板已经撤走,这说明等我要么没有官方记录的成绩,要么成绩比实际时间多八分钟。

今年厦马改期到1月初,天气比去年三月底要冷许多,前半程双手冰凉(准备好的手套因为匆忙没戴上);在10公里处才第一次停下喝水,在22公里处才找到路边的厕所解决了从14公里开始就越发汹涌澎湃的尿意;

因为迟到,起跑后就跟跑10公里和5公里的挤在一起,人很多,速度很慢,这“意外”的好处是一开始不会太快(尤其是我还没机会热身),但也一直没能让我找到能够“跟跑”的人。

第一次跑全程没有感觉到肌肉要抽筋的症状,包括最后几公里的加速;跑后的感觉比去年轻松许多,恢复也很快,跟平时跑完25到28公里一样,再从最后几公里的表现来看,要提高成绩,耐力应该不再是瓶颈,将来训练的重点应该多放在提高速度上,尤其是长距离负荷下的速度训练;

最后官方成绩:4小时50分25秒,第1665名。比去年差了很多。

个人秒表计时:4小时42分35秒。

下面两张图是我的Polar S625x的记录:

第一张是在距离上的心率和速度变化:

polar-xm-marathon-by-distance

第二张是在时间上的心率和速度变化:

polar-xm-marathon-by-time

  1. 去年我的Polar S625x记录的是45公里多,今年的是42.9公里,可能是我跑得更接近“内道”?或许跟这次全程路线的调整有关?以后跑的时候要注意路线上的节省;
  2. 前半程效率太低,大部分时间心率只有甚至不到每分钟145次,而且前半程差不多花了2小时10分(去年是2小时5分),这是前年在几乎没准备下跑半程的成绩;
  3. 平均心率在23公里后明显提高,但平均速度没有变化,除了气温升高和演武大桥段的上坡因素之外,说明之前的长距离跑的训练准备还是不够;
  4. 去年在30公里左右被迫改为走,今年到30公里后依然能继续跑,但是还是主动改为走了;全程没有感觉跑不动,主要是心理上对高负荷下的体能状态的把握还缺乏信心;
  5. 最后6到7公里的加速感觉还好,心率也适应地提高到并保持在每分钟170-175次的范围;
  6. 从去年和今年的成绩看,如果准备充分,争取下一次的成绩在4小时30分以内是可以做到的;

今年还想再跑一次全程马拉松,应该是下半年了,是跑北京(10月19日)呢还是上海(11月30日)?