载入中…

天气是 ‘晴’ 的文章

[WP插件]QQ Avatar

2011.12.20 | 天气: | 标签: , ,

如果用户使用数字QQ邮箱留言且公开空间头像
就替换Gravatar头像成QQ头像

插件地址

插件特点:

  1. 其他插件不能获取头像,我的可以
  2. 缓存QQ头像,一次加载,永久有用
  3. 加密QQ号码,不泄露”隐私“

因为很多同学没有申请Gravatar,所以博客留言头像那栏总是神秘人,不过有些同学用QQ纯数字邮箱留的言,正好QQ有个不算是API的方法获得QQ头像,所以我就想写个插件了。

x200s清理键盘记

2011.12.17 | 天气: | 标签:

一直不觉得笔记本电脑的键盘有多脏,直到今天我发现夹缝里有只虫子的时候才下狠心拆来清洁一下,我现在就是用洗干净的键盘来写此文的,胆大心细肯定能和我一样按原样装回去。

拆解方向

Thinkpad的键盘徒手就可以拆解了,蓝色的边表示掀开的位置,例子:
C键如下图所示:

下图是所有键的方向示意,特殊结构的键为暗红色区
阅读全文 »

[HOWTO]网站开启缓存 加速用户载入

2011.12.11 | 天气: | 标签: , ,

因为托管的服务器在美国,所以和国内的速度没有可比性,所以开启了缓存来加速各位的访问速度。火星人都不知道哈哈~

本文针对的是Apache服务器,主要是修改一个叫.htaccess的文件。
要注意:htaccess是一层层地执行,所以最好修改的是网站根目录下面的.htaccess。

FireBug的测试结果


华丽地节省了98%的流量,独立博客们都知道这意味着什么哈,当然,只有再次访问网站的用户才能调用浏览器的缓存,所以有点老访客福利的感觉。

代码

#Cache IMG CSS
<filesmatch "\.(flv|gif|jpe?g|png|ico|swf|css|js|bmp)$">
Header set "Cache-Control" "max-age=2592000"
</filesmatch>

#Super Cache for Jquery one year
<filesmatch "jquery.*\.js$">
Header set "Cache-Control" "max-age=49881203"
</filesmatch>

代码解释

FilesMatch不用我说了吧,意思是:匹配文件。
重点是后面引号中的\.(flv|gif|jpe?g|png|ico|swf|css|js|bmp)$,这段表示让服务器缓存所有指定的扩展名的文件,比如常见的图片格式png、gif等。
而Cache-Control就是让浏览器控制缓存的时间,单位是秒。
可能你会奇怪,为什么后面还有jquery.*\.js$,其实是因为我网站上经常调用Jquery的JS库,但是我自己写的Js又要长期修改,不能设置得太长,所以让服务器去寻找所有:jquery开头的JS文件,并设置成577天的缓存。这样又不会干扰到我的js文件。

副作用

用户访问里以后,你更改了服务器上某个用户的缓存文件,浏览器不会一下子载入新的文件。

[WP插件发布]修订版本清理器

2011.11.19 | 天气: | 标签: , , , ,

用过Wordpress写文章的同学都知道——Revision,或者中文叫“修订版本”的这个东西相当有用,特别在停电、猫猫狗狗在键盘上撒了尿、喝牛奶呛到的时候。因为Revision会保存之前的全文备份。当然,因为是全文备份,所以也相当占用SQL数据库。可是Wordpress只提供了要么有要没有的开关,其他插件最多也只是提供了手动删除的功能,我这懒人只好自己做一个出来了。

安装方法和其他插件没有两样,而且,最好玩的是,本插件绝不占用普通用户访问时候的CPU或者是内存,至于是什么原理,呵呵,会PHP的同学可以看看源码。而且您绝对不是小白鼠,因为有246只世界各地的小白鼠用了0.1版,一个多月都没有人投诉我,这才升级到1.2版的。

可以到wordpress.org/extend/plugins/revision-cleaner/去下载

顺便说下,如果你发现了什么BUG,请联系我的邮箱(最好是patch哈 ←。←人懒成这样)。

还有我不知道这SVN怎么用才能像GIT一样搞出pull request……

Revision插件演示

接下来是凑字数吐槽时间:

  1. 欢迎会英语汉语以外的同学提供I18N翻译,因为我见过日本、瑞典、法国的用户当了小白鼠……
  2. wordpress插件的hook很好用,理解了这个机制以后,写得很顺手哈
  3. 插件是通过读取trunk下的readme.txt来完成名称、版本等一系列配置的,这改得很蛋疼
  4. SVN每次都要复制,很烦
  5. 博客的图片已经支持点击LIGHTBOX浏览了
  6. 我的博客支持VIM快捷键浏览了,目前是:
    • F:全屏(所有页面)
    • C:直接飞到评论(单篇文章)
    • H:下一页(主页有效)
    • J:向下(所有页面)
    • K:向上(所有页面)
    • H:上一页(主页有效)

为了继续凑字数,我想说下这个插件的不占用普通用户访问时候资源的原理——其实很简单——就是只有管理员才有权限……整个插件HOOK到admin_menu上。在定时上,其实也没有定时器,这样就不占用任何普通访客的Loop,因为插件只是靠Mysql内部的时间来判断和删除(一条MYSQL语句占用的资源其实也极小),但是在写文章的人眼中就是定时删除了……好吧,别打我哈哈哈

迟到的答案[面前端总结]

2011.10.27 | 天气: | 标签: ,


最近复习不顺,脑子发热就投了简历到豆瓣,没想到对方HR还真的通知我了。豆瓣耶!闪闪发光的绿字小清新互联网企业招牌,所以赶紧搜罗各种豆瓣前端面试经,然后发现只有两篇,还都没说到细节。

所以按照各种建议复习了各种DOM操作,复制、删除、移动。CSS排版有没有,IE怪异模式有没有!结果……到了面试时,面试官很和蔼:“你今天看起来很紧张”,当然紧张啊!问到最擅长的哪三个(HTML、CSS、JS),脑子进水了答JS,结果完全答不出ORZ,我平时只是依赖jQuery,我错了!答其他两个估计还能扯一扯,这个可是板上死死的。

问到:

  • $('.class')$('div.class')哪个选择效率高,瞎掰了第二个——现在知道蒙对了。
  • ”解释一下闭包“。“正好不知道”昨晚太困了没仔细看。现在才明白只是return一个内部函数成GC不回收的全局函数啊有没有!!mozilla还教了个add15,这很方便啊,我知道了有没有!!写得也很爽有没有!!
  • “最近收获最大的一篇博文”。瞎掰了map reduce,当时根本不会,还找Greader的加星项目,加星是GEEK必备有没有!!现在知道是map(fn,array){for (var index in array){a[index] = fn(a[index])}},可以用map来函数掉数组的内容啊有没有!!这是谷歌的LISP方法有没有!!!连这都不知道还来应聘,脸还有没有!!

糟糕,实在是糟糕,可人家工程师说“如果没通过,不会太刺激你吧”,很和蔼,很呀撒西有没有!!我是面试官我会直接骂人蠢了,有没有!!!可惜迟了,我只是晚了一天知道这些,如果那天晚上看完DOM继续看闭包和map,顺手写几次这个代码就知道了嘛。那么现在就坐豆瓣办公室小清新了有没有!!
可人生没有如果,要就要一次性做好。
人家面试官还说:”你没花时间打基础,广泛学一些东西,某些没深入“很准确有没有!!我都想找洞钻了有没有!!
某人说“看得出来你这家伙眼界不低,不要眼高手低了. ”
确实,豆瓣招牌不是白来的,人家可是技术做保障啊,可以很放心刷豆瓣啊有没有!!回头要看“犀牛”和代码大全有没有,记得你没基础啊,学机械自动化的二流本科屁娃?!人家前端招聘问你最近得意的作品有哪些,不要答wordpress插件有没有!!不要在博客上放豆瓣灌水机器人来威胁别人有没有!!
此志引以为记