2012-10-15
架设wordpress站点注意事项
wordpress现在进化到了4.x版本,易用性和本地化方面已经做的非常好了,但是毕竟还是舶来品,在我天朝上国之中使用,还是需要做一些本地化的改造。
开个帖子,把架设站点过程中遇到的问题记录下来,也可以给大家一个参考(如果这个小站还有人会关注的话~)
一、googleapis.com无法访问造成页面加载速度很慢问题
安装完wordpress之后,发现刷新页面访问速度非常慢,用live http header跟踪之后发现,页面加载卡在了一系列对于ajax.googleapis.com以及font.googleapis.com的访问上面。
仔细查看了下代码,对于ajax.googleapis.com的访问主要是托管了jquery等通用库,font.googleapis.com则是在线的字体库。
解决方案有两个,一个是禁用对于googleapis.com的访问,都改为本地资源,但是这不是我们希望看到的,毕竟这回消耗额外的流量,对于wp代码的改动也并不优雅。
还有一个解决方案是使用国内的镜像资源替换掉googleapis.com。
搜索了一下,360提供的libs.useso.com是比较好的替代镜像。
接下来要做的工作就简单了,用sed或者直接用vim打开wp-includes/script-loader.php,将其中所有的googleapis.com替换为useso.com,然后重新刷新页面,就可以看到加载明显变快了!
注意一些主题也可能会用到googleapis.com的资源,这些主题中对应的代码也需要替换掉。
二、gravatar.com访问问题
wordpress使用了gravator作为头像服务,但是你懂的,只要带g的在墙内都用不上…
解决方法很简单,在wordpress面板的设置->讨论中找到 “显示头像”的checkbox,将默认选中的反选即可。
目前遇到的问题就是这两个,后续有发现继续再补充~
2012-09-28
Todo List
2012-08-31
debian @ x210i 安装笔记
家里现在有两台thinkpad,一台是我的服役5年,状态尚好的T60,另外一台是老婆毕业后新买的x201i。x201i轻巧便携,但无奈屏幕太小,和T60的高分辨率方屏一比,是在是木有太多吸引力。老婆有时在家加班,也霸占着我的T60,x210i基本就闲下来了。
家里有一台电脑闲着,而且是x系 列的thinkpad,我的心思不由得开始活络起来了 🙂
说服了老婆之后,就开始忙活起来了,换硬盘,导数据,下映像,刻盘。没错,我要把小i改造成我的linux工作站,发行版嘛,自然是Debian莫属啦。下面把安装配置过程记录如下自己备忘
一、安装
1、net install on wifi 问题
安装debian,最方便自由的方式,还是选择netinst镜像。但是如此一来的话,需要在安装过程中就有网络的支持。
debian 从squeeze开始支持在net install的过程中使用wifi来连接网络,但是在安装前,首先要解决驱动问题:x210i使用的intel的wifi芯片,是没有开源的实现的。因此讲究纯净的debian在安装光盘中并没有附带其驱动,需要额外下载。
其实debian已经在其apt源中添加了上述驱动包,可以到这里下载:
http://packages.debian.org/sid/all/firmware-iwlwifi/download
下载完成后,使用7-zip将deb包解压,得到下面这些文件:
/lib/firmware/iwlwifi-1000-3.ucode /lib/firmware/iwlwifi-3945-1.ucode /lib/firmware/iwlwifi-3945-2.ucode /lib/firmware/iwlwifi-4965-1.ucode /lib/firmware/iwlwifi-4965-2.ucode /lib/firmware/iwlwifi-5000-1.ucode /lib/firmware/iwlwifi-5000-2.ucode /lib/firmware/iwlwifi-5150-2.ucode /lib/firmware/iwlwifi-6000-4.ucode /lib/firmware/iwlwifi-6000g2a-5.ucode /lib/firmware/iwlwifi-6000g2b-5.ucode /lib/firmware/iwlwifi-6050-4.ucode /lib/firmware/iwlwifi-6050-5.ucode
准备一个u盘(注意要是fat 32格式的,ntfs格式的貌似不会被识别,将上面这些文件拷贝至u盘根目录下。当安装界面提示需要第三方媒介提供iwlwifi*等文件的时候,插入u盘,安装程序会自动搜索并安装网卡驱动。
2012-04-16
someday, you will miss today
总有一天,你会怀念今天
2012-03-27
春意已盎然
玉兰花开,风卷云舒,春意已盎然
2012-03-26
The “dollar” in awk
首先贴一个简单的awk命令,猜一下,这个命令执行之后的输出会是什么?
$ echo "" | awk '{OFS=","; $x = 1; $y = 1; $y = $x; $y += 1; print $x, $y;}'
理想中,输出应该是这个样子的:
1,2
但现实中,却是这个样子的:
2,2
这是怎么回事?难道awk的赋值不是值传递(assignment by value),而是引用传递(assigned by reference)?困惑了好久,先RTFM后STFW两招杀手锏下来也毫无结果,人家压根就没提awk还有值传递和引用传递的区别 T_T
盯着这个表达式看了好久,忽然恍然大悟,awk和php还有bash是不一样的,变量前面不需要加”$”引用,把”$”去掉后,一切正常:
$ echo "" | awk '{OFS=","; x = 1; y = 1; y = x; y += 1; print x, y;}' 1,2
那,加上”$”之后原本的变量的意义又变成什么了呢?为什么有这样看起来像引用传递的结果?
原来在awk中,”$”表示对字段(Field)的引用,诸如$0表示整条记录(Record),$1表示记录中的第一个字段,$2表示第二个,以此类推下去。当然,awk允许非常量类型的字段引用。$n也是可以的,如果n=1,则$n == $1
至此,再来看本文第一个例子,其实可以翻译如下:
$ echo "" | awk '{OFS=","; $0 = 1; $0 = 1; $0 = $0; $0 += 1; print $0, $0;}' 2,2
在脚本执行期间,x与y的值一直都是未初始化的0,因此,对于$x, $y的操作都是对$0的操作,所以看起来就像是引用一样。
终于搞明白了,可以松口气了,但是花费了近两个小时的时间。
吐槽这些语言语法混杂容易搞混之余,也只能怪自己学艺不精犯下此等低级错误 =。= 记录在此,以敬效尤
2012-03-21
reboot
毕业已近两年,期间各有得失,但是失去的时光再也回不来了,怀念已多无意义,从今天开始,reboot & reload,重装上阵
2009-07-09
彩虹@哈尔滨
2009-05-02
构建Linux下的函数库编译方案
就快离开学校了,最近打算把大学这几年积累下来的代码重构一下,写成类似于ACE那种形式的C++代码库,方便调用。也算是留给学弟学妹们的礼物。
在整理过程中遇到许多问题,感觉都颇有启发性。尤其是构建编译方案的过程,几乎让我重新学习和认识了make工具,收益匪浅。下面就把这个过程和盘托出,权当笔记,也希望对大家有用。
一:初始编译方案:
目录树:
|-- Makefile |-- README |-- doc | |-- CHANGES | |-- COPYING | |-- CREDITS | |-- INSTALL | `-- TODO |-- inc | |-- Exception.h | |-- HashTable.h | |-- MessageQueue.h | |-- Mutex.h | `-- Semaphore.h |-- lib |-- mks | `-- linux.mk |-- obj |-- sample `-- src |-- Exception.cpp |-- HashTable.tpl |-- MessageQueue.cpp |-- Mutex.cpp `-- Semaphore.cpp