在 Firefox 1.5x 中我用 Bookmarklet 来实现一键点击网页中的图片即可上传图片到Flickr这样的功能,基本上可以满足需求了,Firefox 升级到 2.0 RC1 后发现过去的那段代码失效。
Firefox 的插件虽然众多,但是能够实现我需要的功能的插件一直没找到。查找 Firefox 2.0 的插件, 在网络上也问了几个朋友,都说没有这样的插件。
无奈之下,只得使用 Send To Flickr Bookmarklet Javascript Code 这个页面里的代码新建立了一个书签。这个代码是好用的。
Hung 告诉我 Yupoo 的插件是支持这样的功能的。不过很不巧,这个插件目前还不支持 Firefox 2.0. 我只得把插件下载,解压缩,修改 install.rdf 的版本限制,然后重新把这个文件扔到 yupoobookmarklet.xpi 文件中。
一键上传或一键发送这样的功能好比 Web 2.0 应用程序的”最后的一公里“。Yupoo 相比 Flickr ,是一个进步。虽然直接上传网页上的图片似乎容易带来版权问题,但我想有这样需求的用户应该不在少数–我用来做知识积累或图表分析。
del.icio.us 针对 Firefox 的插件完全解决了这样的问题。 或许 Flickr 更为关心那些直接上传数码作品的用户,不过 Flickr 也应该推出功能更多一点的客户端工具,来更好的实现与用户交互的最后一公里。
–EOF–
Tag Archives: flickr
参观又拍网(Yupoo.com)小记
今天参观了图片共享网站又拍网(Yupoo.com)。
下午在 Gtalk 上收到 yupoohelp (后来才知道隐藏在这个 ID 后面的家伙就是 阿华,又拍网的共同创始人)发来的 关于购买 Dell 服务器的信息。聊了起来,惊奇的发现原来又拍的办公地点离我非常近。阿华要我过去转转,择日不如撞日,欣然从命。
又拍隐藏一个居民小区内,周围环境比较优雅,楼前就是一条小河。上了楼,一开门,迎面看见又拍创始人刘平阳那条金毛巡回猎犬,我可是一点心理准备没有,着实吓了一跳,不过这条大金毛貌似很吓人,其实真的很老实。
如果搜索关于又拍的故事,你一定会发现这样的话语:
2004年12月,刘平阳决定要买一条狗—-金毛巡回猎犬。他将金毛当作自己的孩子一样爱护,狗狗的每一步成长的足迹他都一一记录下来。他想与朋友和家人分享这种喜悦,因为他发现,分享的过程也是传递快乐的过程。
这只金毛绝对是又拍的吉祥物,大家都很喜欢。只是网上的照片我没有找到,又没有带相机去。
平阳高而瘦,应该是作技术出身,语速缓和。他说话的时候,金毛就趴在他的脚边,温顺极了。
阿华(沈志华) 也不胖,可能经常熬夜造成的吧。
现在团队现在只有 7 个人(七剑啊),房间虽然不大,倒也不拥挤,很整洁,也看得出创业的艰辛。
又拍现在用户已经有了几十万,图片数据量亦很庞大,维护工作不轻,加班似乎是家常便饭,我去的时候还有另外两位正在电脑前忙碌着,房间里很安静。我们聊天也是”不敢高声语,恐惊工作人”,以致于好几次我没听清阿华说什么,汗颜。
杭州是 Web 2.0 的重镇,相对于北京 Web 2.0 圈子,杭州这边相对低调很多。又拍人给我的感觉也是这样:低调、沉稳、目标明确。”100 万用户是最低线”,平阳说这句话的时候,很平淡。
BTW: 又拍最近推出的搬家工具很不错,简单的几步就可以把 Flickr 或是网易相册的内容搬过来。
-EOF-
Flickr 的开发者的 Web 应用优化技巧
Cal Henderson 是大名鼎鼎的 Flickr 网站的开发者之一.在一篇名为 Serving JavaScript Fast 的文章中,他介绍了用于 Flickr 站点应用优化的技巧,读罢感觉获益良多.”嚼一下别人的馍”,概括一下该文的主要内容.
Flickr 是 Web 2.0 的代表站点。面对的网络问题除了一般 Web 站点都会有的内容优化之外, 还有必须要灵活处理 JavaScript 与 CSS 的频繁变化后部署分发带来的复杂性。
设定文件大小的策略 首先面临的一个问题是把所有的 JavaScript 与 CSS 放到一个文件中好呢,还是分割成多个文件 ? 从减少网络请求的角度上考虑, 前者更好,后者差。但是从并行的角度考虑, IE 与 Firefox 默认情况下都只能同时从一个域请求两个资源. 这会在很多情况下给用户带来不良的使用体验–必须所有的文件都下载完毕才可以看到像样的页面. Flickr 采用了折衷的办法–在保持文件数量尽可能少的情况下,把 JavaScript 与 CSS 分成多个子文件. 这在开发上带来了复杂性,但是对性能的收益是巨大的。
压缩的优化问题 毫无疑问,对站点内容进行压缩是一个比较常用的 Web 优化手段.但是并不一定都能达到理想的效果.原因在于 mod-gzip 模块不但消耗服务器端 CPU 资源,也消耗客户端 CPU 资源. 而且, mod_gzip 压缩文件后创建的临时文件是放到磁盘上的,这也会给磁盘 IO 带来严重的问题. Flickr 采用的是 Httpd 2.x 以后支持的 mod_deflate 模块.压缩操作都在内存中进行.mod_deflate 在 Httpd 1.x 是不可用的, 不过可以通过创建 RAM 盘的方式来间接提高性能.
当然, mod_gzip 到也不是一无是处, 对于预压缩的文件, 还是有好处的. 而且, 采用压缩的时候,也要注意策略. 图片文件压缩就没什么必要了(Flickr 上图像多, 而且压缩得不到什么好处). Flickr 只对 JavaScript 和 CSS 进行压缩. mod_gzip 新一点的版本能够自动通过配置 mod_gzip_update_static 选项自动处理 预压缩的文件. Cal 也指出这个特性在一些旧版本的浏览器上会出问题.
压缩的另一个主要手段是内容的压缩. 针对 JavaScript 可以进行通过减少注释、合并空格、使用紧凑的语法等小技巧(Google 的所有脚本都非常难读,而且非常紧凑,思想类似).当然,经过这样处理的 JavaScript 可能带了很多括号不容易解析,Flickr 使用了 Dojo Compressor 来构建解析树。Dojo Compressor 开销很低,而且对于最终用户是透明的. JavaScript 的处理方法介绍过,CSS 处理则相对简单.通过简单的正则表达式替换(比如把多个空格替换为一个空格符), 最高可以获得 50% 的压缩比。
Caching 的优化 Flickr 的开发者充分利用了 Http 1.1 规范定义的 Etag 与 Last-Modified 机制 来提高 Caching 的效率. 值得注意的是,Cal 介绍了一个在负载均衡条件下的 e-Tag 小技巧. 即可以设定 Apache 通过文件调整时间与文件大小获得 E-Tag ,而默认情况下, Apache 是通过文件节点获取 e-Tag 的。当然,这也不是很完美,因为会影响 if-modified-since 。
灵活运用 mod_rewrite 据说 Flickr 网站应用是进行每日构建的(Daily Build)。 如果没有一个灵活的机制恐怕这是不可想象的。而且,在 Flickr 这样的站点, 内容的修改同步的处理都是很让人头疼的难题. 他们的利器是 mod_rewrite 的灵活运用。通过配置 URL 重写规则,很容易切换到不同的环境下。听起来很简单, 但是没有一定的 Web 技术功力谈何容易做到 ?!
通过这几个主要方法的运用,我们看到了如梦幻一般高性能的 Flickr .
BTW: 因为在 Flickr 在国内没有服务器, 大陆用户访问的速度就别提了 :(
–End.
2005 年度最喜欢的几个站点
翻到去年自己的年度技术回顾。不胜感慨。这一年虽然还没完全过去,很多 Blogger 已经开始年度盘点,其中不乏小型的 PR(公关)类型的回顾。抛开那些利益关系,说说自己喜欢的 2005 年度的对个人 Web 习惯产生影响的站点.
del.icio.us
虽然去年就关注这个站点,但是几次都擦肩而过。当时实在是感觉不到这个站点究竟有什么奥妙之处.但在今年尝试性的使用了一段时间之后,逐渐上瘾,现在 del.icio.us 成为我不可或缺的一个站点.这个真是 Web 2.0 大潮中的化腐朽为神奇的一个绝佳的例子.
以前没有收藏图片的习惯,通过 Flickr 的使用自己也有意识的收集一些技术相关的图片。俗话说”一副好的图片胜过千言万语”。
通过上面两个站点加上个人 Blog 就能够有效地进行”知识积累“.简单而有实效。
Gmail
Gmail 把 Web Mail 的易用化极大地推进。Ajax 的适当运用使得交互性得到了前所有的成功。对我来说,Gmail 基本上解决了垃圾邮件的威胁,通过 GoogleAlert 服务能够进行信息及时发现.充分利用这个功能即可进行”守株待兔”式的信息收集.在阿里巴巴、 Yahoo! 中国联姻的事件中,做了一个小小的实践,效果不错.
豆瓣(douban.com)
这么有独创性的站点诞生在国内,说明中国人做互联网也不是只有抄袭的。通过豆瓣我发现了很多自己感兴趣的图书,以前要找一本可能感兴趣的图书太难了,毕竟阅读习惯很难通过 Web 展现出来。豆瓣给我解决了这个问题。豆瓣的一个原则是”做减法”,比如豆瓣就不做”积分”这种垃圾功能。目前的豆瓣发展思路还是很清晰、清醒的,这和那些急于求成、急于做大的投机型站点也有本质上的不同。豆瓣的英文站点是 www.beantal.com
说点题外话,说起创新性,我们看到的更多的是”抄袭/模仿”.效颦的东施可能还会被人记住,但是,当我们一下子看到几十个”文摘”服务、几十个”中国的Flickr”一起涌现出来的时候,谁能记住几个呢?
Feedburner
现在很多专业的 Blogger 都把自己的 Feed 用 Feedburner 烧制出来。我把 Flickr
、del.icio.us 、blog Feed 放到一起烧录。迁移的时候切换 Feed 非常容易。这对国内众多不稳定的 BSP 来说,FeedBurner 是 Blogger 回避风险的一个必要的手段。
Technorati
通过 Technorati 进行相同话题的 Blog 发现。另一个用途是观察最近的 Blog 圈子的动态。