尘埃落定
每一个可以努力的日子,都是一份厚礼。
每一个可以努力的日子,都是一份厚礼。
2012 9 月 1st
WordPress 大概是这个星球上使用得最多的博客程序了,甚至很多资讯、社区等非博客网站也在使用 WordPress。据统计,在全球排名 100 万以内的网站中,约有 14.7% 是利用 WordPress 程序搭建。令人震惊的是,维护整个 WordPress 运营和升级的团队核心成员,不足 20 人。大量的志愿者在为这个生态系统贡献精美的主题、实用的插件。
然而,为了保证灵活的可扩展性,Wordpress 牺牲了性能,它因为速度低下而广受诟病,很多空间商也为此头疼 —— 当访问量很大的时候,臃肿的 WordPress 站点消耗了服务器太多CPU和内存资源。我曾经总结过提高网站性能的方法,其中最有效的手段就是静态化了。
使用 WP Super Cache 插件可以帮助 WordPress 网站实现页面静态化,可惜的是 supercache 默认没有提供对 Ngnix 服务器的支持。
2012 8 月 22nd
2012 8 月 17th
前段时间博客经常性地无法访问,网站宕机。SSH 上去看进程,发现大量 php-fpm 占用系统资源,查看服务器的 Nginx 日志,就知道发生了什么事情。个别 IP “友情”为我的站点扫描漏洞,瞬时并发连接很大。我知道大家也没什么恶意,只是用黑客工具比较兴奋,拿 www.lovelucy.info 练练手而已嘛。但是博主很穷,小站搭建在一个配置并不高的免费 VPS 上,折腾不起,压力很大,结果一不小心让各位搞成 DoS 拒绝服务攻击了,真是惭愧。
2012 8 月 12th
表单验证是广大前端非常头疼的一项事务,特别是在面对复杂表单的情况下,例如某些输入框仅接受数字输入,某些字段是必填,有些项又必须满足一定输入规则……为了提供更好的用户体验,这些繁琐的需求不得不去花大量时间和代码去满足。在新的 HTML5 标准中,增加了十几个表单输入类型和特性,例如 autofocus 自动焦点,以及之前介绍过的 Placeholder 占位符。这些贴心的特性支持大大解放了前端开发人员,我们仅需使用新的标签元素或属性,就可以完成过去需要大量 javascript 代码才能完成的功能。
问题是,在 HTML5 尚未普及的今天,特别是国内复杂的浏览器市场环境下,仅使用 HTML5 来解决表单验证这些问题实在是力不从心。如何让页面更有语义,让我们的代码更加优雅简洁,这是个问题。
2012 7 月 25th
公元四世纪,罗马帝国已经逐渐走向没落,并意欲从英国撤离。萨克森人乘乱入侵大不列颠,整个国家处于风雨飘摇之中。亚瑟(Arthur)是当时声名显赫的圆桌骑士的首领,他的骑士们追随他为罗马帝国效力了15年,而罗马主教却在他们本该获自由身的时候提出了附加条件,去营救一个被萨克森人围困的罗马家族,去赴一场得到自由前必死的战役。
亚瑟深受修道士贝拉吉乌斯(Pelagius)自由和平等的思想所影响,他怀有平等和仁慈之心,所以觉察到罗马主教的残忍。他告诉被救的孩子,贝拉吉乌斯在他的故乡罗马传教自由平等的价值,每个人都有权选择自己命运,却意外地从孩子口中得知因为其理念触怒了教廷的统治阶级,罗马教廷已经在一年前将贝拉吉乌斯逐出教会并且处死。亚瑟所说的罗马并不存在。
这个故事来自中世纪,却鲜明映照了当今的现实。我把脸贴在车窗上,看到这个充满了故事,却不再有传奇的人间,开始觉得自己一贫如洗。罗马只是一种象征,它是理想主义者梦中的世界。每一个人都拥有独立的人格,你却失望地看到人浮于事追名逐利。
另一个例子,是我读到普林斯顿大学一位同学 纪念艾伦图灵百年诞辰 的文章。图灵是英国著名的科学家,被誉为计算机的始祖,当今计算机科学领域的最高荣誉图灵奖就是以他的名字命名。图灵在第二次世界大战时帮助盟军破译了纳粹德国的无线电报密码,为诺曼底登陆以及二战转折点的到来做出了重大贡献。图灵因同性恋而不被当时的社会所容忍,最后悲惨自杀,这又是另一个故事了。我所感叹的是这样一位伟大的传奇人物,距离我们现在的时代不过60多年而已。那个纯粹的学术年代,已经被封存在了历史当中。
我不由得想象,在我刚进武大的时候,我是怎样想象象牙塔和理想国。当时我是相信学术的神圣和纯洁,大学非有大楼之谓也,而有大师之谓也。然而由于体制的种种原因,学术也被掺杂了政治,有特权,就有光明和阴暗。最近又读到原中科大校长管维炎的回忆【1】,里面讲到当年高温超导材料发现之争。香港科技大学前校长朱经武在做出 90K 之后为了抢先发表,又担心审稿人压下来自己做,于是在送审的论文初稿上做了手脚。而当时物理所的赵忠贤通过某些渠道得知了朱经武的成果,很快也做了出来,接着人民日报头版头条,还宣称说是自己独立发现的。赵忠贤因此当选为院士,又是中共中央委员,扶摇直上……
反观学术界的现状,那些顶着“教授”“院士”光环的人物,那些不光彩的故事,多多少少让人感到大师离我们真的很遥远。“知识即美德”,不过是一厢情愿的想象,如同罗马。那些毫无意义的事情,价值何在呢?遇到怎样的人,拥有怎样的价值观,很大程度上取决于个人的选择。可惜的是并非每个人都有选择的意愿,因为顾此就会失彼,命运将你带到这里,做一些违心的事情就显得有些理所当然了。
写到这里,我突然发现了自己的自相矛盾。历史上那个真正纯粹的时代,也许从来也没有有过;心目中那个完美的人,或者根本就是虚构。
1918年,德国社会学家 马克斯·韦伯 在慕尼黑大学,给青年学生做了题为《以学术为业》的演讲【2】。出人意料,在演讲一开头,韦伯就告诫学生,“众多平庸之辈无疑在大学扮演重要角色”。在打算进入学术界之前,最好先问问自己,能不能“承受年复一年看着那些平庸之辈爬到你头上去,既不怨恨也无挫折感吗?”
这个问题当然不仅局限于学术界,社会本来的样子亦是如此。我想最重要的是,面对信仰的崩塌,你应持有怎样的态度。当黑白都不是那么的分明,高尚还是卑鄙,退出还是坚忍?隐喻是危险的。江湖暗涌,孰能浊以静之徐清,孰能安以动之徐生。
道不行,乘桴浮于海;
人之患,束带立于朝。
2012 7 月 17th
CDN 是内容分发网络的简称,使用 CDN 可以将网站的静态内容(例如纯HTML文本、图片、css、js等)缓存到网络服务商的服务器上,从而让访客分流去 CDN 上获取静态资源,提升我们网站的访问速度。我之前介绍过的 CloudFront 就是 Amazon 基于云计算平台提供的 CDN 服务。
新浪 SAE 是国内一个优秀的云计算平台,它提供的 Storage 服务同样可以用来存储静态文件。新浪的服务器部署在多个数据中心,全国各地各种线路的访问速度都十分流畅。充分利用其强大的分布式架构,基于 SAE 搭建 CDN 的想法具有可行性。
2012 7 月 15th
2012 7 月 13th
阿里云 是阿里巴巴旗下的云计算公司,目前得到商业运行并大力推广的是阿里云的弹性计算 IaaS 服务,也就是和 Amazon EC2 类似的云端虚拟机。 ACE 云引擎 则是阿里云的 PaaS 类型云服务,与 GAE、SAE 类似,提供具体的语言平台给开发者。当前 ACE 仍处于测试期,它支持 PHP 和 Node.js,同时平台也实现了分布式 session、storage、memcache、cron等多种服务。
2012 7 月 8th
我们的服务器又出入侵事故了。有客户的 html 网页底部被插入了一段 js 脚本,导致访客打开网页时被杀毒软件警告网站上有恶意代码。在黑链 SEO 中这是常见的手法,但奇特的地方就在于我们这次捕获到的代码,会根据当前的时间戳生成一个(伪)随机域名,然后定时访问。看上去目的并非是 SEO。
2012 7 月 7th
前两天帮同事处理一个 js 跨域问题,使用 jsonp 跨域提交用户名密码请求,实现自动登录第三方网站,即 SSO(single-sign-on) 单点登录,一处登录处处登录。在 Chrome 下没问题,IE 却不行。查看 HTTP 的几个来回,发现登录请求是成功的,问题出在第三方网站返回的 cookie (session id) IE 并没有接受,下一次发送请求时根本没有带上 cookie,说明之前的 Set-Cookie 指令没有效果,所以怎么也登录不了。查了一下,有人使用 iframe 内嵌网页的形式,也遇到了 IE 下不能设置 cookie 的情况。
如果在“Internet选项”中把“隐私”级别设置为低,或者把第三方域名列入“可信站点”就没问题了。但是我们不可能让每个用户去更改 IE 设定吧?这是一个很常遇到的场景,肯定有别的解决办法。