-
Greasemonkey与DOMContentLoaded
昨天在hexy要求下写了一个小脚本,在豆瓣的邀请页面加了全选按钮。 按照习惯,我把处理DOM的代码放在了窗口的load事件的处理函数中: window.addEventListener(‘load’, function(e) { … }, false); 但是hexy说页面上有很多图片(头像)的情况下,页面一显示出来没有全选那个checkbox,延迟好一会之后才出现。以前处理的页面因为比较简单,都没怎么在意这个问题,看来这次是不行了。各种JavaScript库里都有另外的途径来替代”load”,比如jQuery有ready函数,mootools有domready事件。而我们写Greasemonkey脚本,只需要考虑Firefox就好了,它有一个DOMContentLoaded事件,页面上解释得非常清楚: Fired on a Window object when a document’s DOM content is finished loaded, but unlike “load”, does not wait till all images are loaded. Used for example by GreaseMonkey to sneak in to alter pages before they are displayed. 我们要的就是它。然而在把load替换为DOMContentLoaded之后,我发现更糟了,代码根本不执行了。一番搜索之后,我发现我从来就没仔细想过一个问题,Greasemonkey的脚本到底是什么时候执行的?这个页面解释了这个问题。 原来Greasemonkey的脚本就是在DOMContentLoaded这个事件触发后执行的,而这个事件对每次打开网页只有一次,脚本中再往这个事件添加处理函数当然是徒劳了!于是解决方案就是更简单地,把处理代码外面的皮剥掉,直接放出来就可以了。结果就是现在的这个样子。 可能是最初学写脚本的教程里就是教用load事件的,看起来又比较专业,我就一直这么用了,可见启蒙教育是多么重要,要不是这次教训,可能我就一辈子这么缺钙了。 实际上一般情况下对DOM的操作都不需要等到load事件,DOM结构完整之后就可以了,这样给用户的体验也会好很多。
-
看了一下facebook的应用开发
一想到弄个Facebook的小应用,我就有点雄心勃勃的,想针对Facebook的数据做一些处理。不过看了一些相关的文档和例子之后,才发现有了API并不能为所欲为,Facebook对于应用的限制还是比较多的。 对Facebook的用户生成内容做处理和分析是基本不可能的,它最多只向你提供用户的账户基本信息及朋友关系。Facebook的应用一般都是将Facebook庞大的用户群为我所用,借助应用本身的趣味性以及facebook错综复杂的朋友关系、news feed迅速蔓延、推广。这种模式在游戏类的应用中表现尤为突出。 Facebook的应用不限于那些像开心网的模块一样的。开心网的应用一般都是添加,然后就出现在左侧栏,就可以玩了。Facebook的应用不添加也可以使用,只要你授权给它,它就可以不同程度地取得你的各种信息。有了这样的机制,应用可以完全栖身于Facebook之外,最初的访问可能需要跳转到Facebook(登录)进行授权。一旦授权成功,用户就可以只访问这个独立的站点,与Facebook Server的交互只是该站点的服务器在后台做了。这种模式相当于是一个独立站点借用了Facebook的用户表和朋友表。 然而给Facebook开发应用远没有使用Facebook那么简单,它的文档、示例等有点像大部分的开源项目,让入门者找不到清晰的道路。最近Facebook出来新版,有了新的Profile设计以及一个Publisher,但是大部分的教程(尤其是第三方开发者的)都没有及时更新。 Facebook开发的首页是这个”Facebook Developers“,初看简介明了,不过浏览半天还是一头雾水。我的建议是看完Get Started之后,直接到wiki里去看”Creating your first application“这篇文章,写得非常详细。 Facebook给出了一些Demo App,多看看多用用就知道Facebook API能干些什么。不过到最后谁都很郁闷,看到了demo,它们的源代码在哪儿呢?Facebook似乎没在明显的地方告诉我们,它们在一个SVN代码库里:http://svn.facebook.com/svnroot/platform/samples/。
-
写blog的朋友越来越少
记得当初刚开始写blog的时候,周围好多人都在写,包括在BBS上认识的一些朋友。写blog的过程中也认识了不少新朋友,都是写blog的。而如今,那些最初认识的blogger大部分都不写了。打开网址,有的域名已经过期了都不续费,还有的就是荒废了,几年前的文章摆在那儿,有的甚至都不知道去向。 基本上所有的人都是为生活奔波,没时间也没心情写这玩意了。剩下来写blog的,几乎都是IT人士。甚至有的IT人士也整天见不到踪影,不要说让他写blog了。 就是因为大学快毕业的时候空闲时间太多,所以大家就靠写blog打发时间。而现在为生活奔命,谁还有工夫顾着这个?倒是长江后浪推前浪,我们开始奔命了,新一代的准毕业生来了,组成一个新的blog圈子,互相做链接,互相点名,互相探讨建站,blog圈依旧繁荣如初。
-
招行信用卡的账单分期
招商银行推出了“账单分期DIY”,不过好多人都在网上抱怨说过不了审核。我觉得这些大概都是那种“玩”信用卡的人,整天把申请、刷信用卡当成自己的事业了。如果信用记录良好,银行应该不会刁难的。 账单分期在网银里就可以申请,具体方法在这个网页有详细说明。 申请提交后,马上收到一条短信说网上消费××元,这实际上就是第一期的金额,会出现在下个月的账单里。收到这条短信,应该就说明分期成功了。我没有失败的经验,所以不知道分期失败是什么效果……网上说会告诉你综合评分不够。 几天之后,短信提醒的这笔金额会出现在网银的“未出账单查询”中,同时有账单分期的手续费(这个没有短信告知),还有招商银行暂时替客户还的款,也就是办理分期的总金额。这时再看“账户查询”里的“本期应还金额”,已经减去了分期的部分。
-
Flickr Uploadr 与 jUploadr
Uploadr是Flickr自己开发的照片上传工具,但是存在不少问题。这个3.0的版本似乎就不支持文件路径上有中文字符,于是我一直在使用3.1测试版。3.1支持中文路径,可惜经常崩溃。最初的时候,是每次关闭的时候Windows都会弹出一个对话框说崩溃了。到后来,一批文件经常是上传几张就崩溃掉,要不停地重试才上传完成,很烦。 jUploadr是第三方工具,跨平台(Flickr Uploadr只支持Windows和Mac),在Flickr工具页上也有推荐。 跟Flickr Uploadr比较,jUploadr的操作方式和显示方式稍微有点差异,初用可能不太习惯,但是用多了也可以像Flickr Uploadr一样顺手。最大的优点当然是稳定了,再多的东西点一下Upload就可以扔在那儿不管了,它会一张一张给你传上去,而不会像Flickr Uploadr,过一会去看的时候,发现一个崩溃对话框…… 不过jUploadr有一个比较致命的毛病。假如选中的一批照片有不同的permission,最好不要批量编辑它们,因为即使你在编辑时不修改permission,最后它们也都会变成同样的permission。这一点真是太不应该了,在Flickr Uploadr中是不会发生的。为避免这样的事情发生,可以把permission的设置放在编辑的最后一步。 稳定是王道,目前还是用jUploadr最好。当然大家都希望Flickr自己做的Uploadr能够更完善一些。
-
回到北京
在安徽待了7天,现在又回到了北京。 这次的照片基本整理完了: 宏村 | 翡翠谷 | 黄山 | 合肥 一共拍了大概500张照片,整理的时候删了一多半。 我还得努力争取下一次旅行的时间和钱。
-
安徽(7-7) 合肥 – 科大东区,归途
这是在安徽也是在合肥的最后一天。中午退房后,又去了王仁和米线,因为昨天给了两张代金券。于是两人花10元吃了一顿饱饱的午餐,擦擦嘴就去科大东区参观了。 如今科大正门的风头已经被高架路给抢去了: 天屎路已经是淡季,人们可以安全地通过。以下分别是全景和路面细节: 校园里转了一圈后,买了几本杂志,去二教“上自习”。老婆说她又找到了上大学的感觉,我却没有,大概是因为我从来不在教室看彩页杂志…… 晚上在教学楼前的“星座”餐厅吃晚餐,然后乘1路车到火车站,踏上归途。
-
安徽(7-6) 合肥 – 科大西区,八大碗
辣糊汤这种东西,我也不知道是不是合肥的特产,反正我是上了大学才发现的,科大食堂里就有。配料应该有淀粉、海带、豆腐丝,少许辣椒,微辣,很开胃。科大人不拘小节,经常把名字弄错:“一碗呼啦汤,三个包子!”到底是辣糊汤,还是胡辣汤?我也搞懵了。 今天早上就在路边小摊吃的这东西,不过口感不如科大食堂的好。吃完后,就大摇大摆混进了科大西区。科大和科大人都有着与其它大学不同的气质,到了周六,校园里仍然十分安静,学生们有很多待在教室、图书馆里。去芳花园转了一圈,去三教上了个厕所,顺便站在扇形教室的门口张望一番,许多学生在上自习,依旧是以前的那种气氛。 从西区出来,坐车沿黄山路向东,寻找记忆中的烤羊腿——小肥羊的烤羊腿。不过走到了尽头仍然没有发现——又倒了一个。一边短信hsm帮忙查小肥羊的地址,一边四下搜寻好吃的地方。hsm短信过来的时候,正好在一个十字路口发现了八大碗。在合肥就经常听说,倒还没去过。小肥羊是全国连锁,不过八大碗只有合肥才有,于是就进去了。一个渣茄子,一个龙骨炖玉米,汤很好喝。 下午就在酒店看电视,休息。 晚饭去西区门口新开的“王仁和米线”,以前在合肥的时候不记得有。30块一大盆“状元过桥米线”,两个人吃得很饱,这才知道正宗的过桥米线是啥。里面的汤和肥西老母鸡的鸡汤有点像,好喝。
-
安徽(7-5) 合肥 – 老母鸡,007
坐惯了北京的公交车,到了合肥觉得好贵。空调车要两块,而出租车起步价也才六块。 坐着昂贵的公交车到达步行街,直接走到尽头,找到了日思夜想的肥西老母鸡。这是一家把当地特色小吃用麦当劳肯德基的快餐店模式来经营的连锁店,比较成功。鸡汤相当好喝,我是毕业快走的时候才尝到了这个美味,一直惦记着……这次点了一份鸡汤,一份鸡汤炖豆腐。 吃饱了,在步行街闲逛,新开了一家电玩城。我这个好孩子,小时候也只是进电子游戏厅参观一下而已,这还是第一次进去消费。最喜欢玩的还是篮球,玩得胳膊都疼了。 然后到肥西老母鸡的对面——长江剧院去看电影。当年我们也是在吃了肥西老母鸡之后,来电影院看的《ICE AGE II》,那时票价是10元,学生5元。现在涨价了,不过给我们都是学生价,20元。007大破量子危机,效果不错,放映厅名叫“黄山厅”,观众一共只有四个人…… 晚饭在黄山路的“老字号”川徽饭店吃,这也是一家在拆迁风波中屹立不倒的。我就是冲着店里的“红烧蹄膀”来的,肉肥瘦适中,非常松软,当年在科大时,就是必点的菜。 晚饭之后,路过科大西区门口,看见那里的烧烤店浓烟滚滚。以前这里都是露天的大排档,没有店面的,我们经常在十一二点的时候出来吃烤串,喝酒。 昨天晚上没注意,今天白天才发现合肥比原来更脏了,空气很差,出去应该戴着口罩,不适宜逛街。这恐怕是城市快速发展中不可避免的?大概科大校园里情况好一点。
-
安徽(7-4) 重回合肥
说实话,我不喜欢合肥。不过这是我上大学的地方,我和老婆初识的时候,也有很多时光在合肥度过,于是在黄山游结束后,我们没有直接回北京,而是去合肥开始了吃喝玩乐加怀旧的几天。 云海楼事先给订好了大巴的票,下午一点多直接到门口来接。全程高速,到了合肥天基本黑了。大巴的司机非常好说话,给我们在离科大最近的地方停车,取行李。下车后坐出租车到科大西区,路上发现才过了两年,合肥变化太大了,科大东区门前的金寨路上有了高架路,出租车走的路以前都是没有的。到了西区门口,也是司机提醒我才知道的…… 找到事先让hsm同学帮我查的“深港酒店”,原来离东区更近一些,房间物美价廉,放下东西之后直奔黄山路去解决温饱问题。黄山路以前可是美食的天下,可是走过去之后,发现一切都变了,新加了几座高楼,但是由于道路拓宽,沿街的店面拆了一排,许多记忆中的餐馆都不见了。 惊喜地看到“川人川菜馆”,像是见到了老字号一样亲切,马上就进去坐下了。菜做的不错,就是好像服务员都换了。要两个勺子,服务员给拿过来我正要接,她就直接给放到了桌子上,我当时就一愣,老婆在对面就笑出声来了。出来之后看到门前拆过的痕迹,到底已经不是鼎盛时期的黄山路了…… 饭饱之后慢慢逛街,旧地重游,感触颇多。五彩的灯光,点缀着彩灯的高架路,处处显示着这个城市的快速发展。