WordPress主题中GoogleFonts等资源在国内的替代解决。

WordPress的主题中,引用了大量的Google的字体、样式等资源。主要涉及到ajax.googleapis.com、fonts.googleapis.com、themes.googleusercontent.com等域名。鉴于国内对于Google相关资源的访问现状,经常造成整个网页卡住十秒以上加载这些加载不出来的资源。

国内比较出名的解决方法是使用360公共库提供的Google资源代理:http://libs.useso.com/。在WP后台使用一个非常简单的插件,把googleapis.com域名给替换成useso.com即可。使用一段时间后运行良好。

但是useso不支持HTTPS访问,只支持HTTP方式,这就带来一个问题。如果我的站点是使用HTTP的,例如http://pangwenxin.com,这样的话,使用useso没有问题。但是如果我开启了HTTPS访问的话,例如:https://pangwenxin.com,这样样式中的google资源就会自动换成https协议访问,但是useso的资源都没有https协议的,于是页面重新变成卡住。这个可以有两个方法解决,1、自建google资源代理,不过这个需要一个额外的有证书的HTTPS资源域名。2、改wp代码,在判断资源文件scheme的时候,去掉协议判断,写死成http,强烈不推荐。

正想自己建个代理的,随手搜了一下关键词“useso https”,找到了一个中国科技大学博客提供的代理,对这种行为点32个赞!详细见此:https://servers.ustclug.org/index.php/2014/06/blog-googlefonts-speedup/ 。

刚才已经改了改插件,使用上了科大的google资源代理服务,感谢!

算是明白了,车真的是一分钱一分货的东西啊。

上周四早上上班,在园区门口排队进门的时候,被后车追尾了,我是停着的,后车没留神就追我车屁股了。开到快速处理点处理完,中午就把车开SSSS去修了,预估要修两三天,喷漆在这潮湿的天气里真心不好干。
开车上下班快一年了,突然没车用了,真的感觉寸步难行了,正郁闷着,AKAO同学雪中送炭了。他一辆BMW525,一辆别克君威GS2.0T,他老婆快生了,有辆车空出来,于是借君威给我开,好吧,我表示第一次开B级车,这辆君威小三十万吧,能买我小雨燕3.5辆啊。
从上周四到今天,开了四五天,Bose的音响、座椅通风、定速巡航、智能空调、防眩光智能后视镜、雨量传感器、自动雨刷、自动大灯、大灯随动转向、天窗。。。。等等等等配置,用了个遍,几天开了200多公里,感觉很好,唯一的缺憾是我老婆晕这辆车,减震太好的后果就是感觉在颠簸的路面像是在坐船,不像我的屌丝燕像在坐面包车,哈。
开君威的时候,感觉还好,等今天下午,就是刚才去SSSS拿车回来的时候,开出SSSS的那一刻,我只有一个感觉:我的车是坏了么?被他们修坏了么,怎么油门响应这么迟钝,我屌丝燕特么的还是拉线油门呢,不应该这么慢啊?方向盘电子助力没有了吗,怎么特么的这么沉重?后视镜边角怎么看不到侧方远处的车?收音机的声音怎么这么次,重低音哪里去了?下小雨了我的雨刷怎么不会自己动。。。。。。尼玛,下一刻钟脑袋里只有一句话:车真的是一分钱一分货啊。
开着我的屌丝Swift,AKAO同学开着君威,我们肩并肩开回了公司,直到停车的时候,我车终于让我找回来点,车小,好停车,随便钻个地方就行了,也只能这样阿Q一下了。
AKAO同学,你这是逼我换车的节奏啊,去SSSS的路上说让我开开BMW525对比下动力,我真的不敢了啊,真怕无法直视我的屌丝燕了。
最后,努力干活,加油挣钱,大家都懂得。

调整SWAP分区大小后,SWAP丢失为0的解决

今天Linode升级了VPS的配置,内存从512MB升级到1GB了,原来机器配置的SWAP分区为512MB,打算调整到1GB,跟内存一样吧。
于是通过Dashborad调整了swap所在的分区/dev/xvdb的大小到1024MB,但是进入系统后free发现:
[@@@@@@]# free
total used free shared buffers cached
Mem: 1024976 248992 775984 0 16820 73128
-/+ buffers/cache: 159044 865932
Swap: 0 0 0

整个swap没有加载上,于是考虑到是扩展分区大小造成的,检查fstab,没有异常。用swapon加载提示:
[@@@@@@]# swapon -a
swapon: /dev/xvdb: read swap header failed: Invalid argument

原来是扩展后的swap分区没有格式化(初始化)。
[@@@@@@]# mkswap -f /dev/xvdb
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=xxxxxxxxx-xxx-xxx-xxxx-xxxxxxxxx
[@@@@@@]# swapon -a

再free一下看看:
[@@@@@@]# free
total used free shared buffers cached
Mem: 1024976 249000 775976 0 16932 73108
-/+ buffers/cache: 158960 866016
Swap: 1048572 0 1048572
正常加载了。

Linode免费升级VPS配置和流量配额了。

一直在用Linode的VPS,博客、SSH Tunnel翻墙都用的挺好。自从Linode有在东京KDDI的机房后,国内访问更快了。赞,就一个字。
最近Linode对所有机房的服务器硬件和网络硬件做了一次大的升级。升级后,对VPS产品的配置和网络流量配额都提供了免费升级选项,幅度很大。
以我在用的Linode512为例,升级前配置:
CPU:4 core/Mem:512MB/Month’s Network Transfer:200GB/Price(per month):$19.95
升级后:
CPU:8 core/Mem:1GB/Month’s Network Transfer:2TB/Price(per month):$20.00
就贵了5美分,果断升级。

升级方法:登陆Linode后,在对应的VPS的Dashborad右侧最下方有一个Update的提醒,按照提示进行就好。
确认要升级后,会把你的VPS添加进入升级队列排队等待升级。
升级过程不需要干预,升级完毕后恢复到VPS原来的状态。IP、端口、服务都没有任何变化。
重新SSH登陆进去free看看,Enjoy!

自建mail服务需要注意的几点

1、MX记录。最好MX记录填写一个有A记录的域名,而不要直接填写IP地址。
比如:
MX记录:mx.foo.com
A记录:mx.foo.com->1.2.3.4
2、SPF记录。
DNS管理面板可以添加SPF记录的话,尽量添加。没有SPF记录的话,使用TXT记录。
谨慎的选择SPF记录的内容,域名根和MX记录能覆盖所有发信ip的话,不需要额外添加ip记录。
3、DKIM
DKIM也非常非常重要,至少yahoo和sina目前检查此项。
4、发信IP健康度
检查发信IP是否在各种黑名单里面。
5、发信IP的域名反解。
此项如果有条件的话,尽量去做,也能提高到达率。不过我还没做IP反解,比较麻烦,暂时搁置。
—————————————————————————-
确保以上几点,基本上不管什么邮箱都能发送的到,而且不会被放到垃圾邮件中,甚至一些邮箱例如QQ邮箱和GMail还会标注邮件为“已认证”或者“重要信件”,呵。
GMail、Sina、163、QQ、Yahoo、Sohu已测试,完全正常。

Tomcat二级域名共享Session

Tomcat默认配置下,同根域,不同的二级域名如:s1.a.com、s2.a.com 会生成不同的JSESSIONID,Session无法共享。
在早期版本的Tomcat里面,要实现不同二级域名共享Session需要修改Tomcat的源码并且添加自定义属性才行,从6.0.20版开始,Tomcat引入了一个patch,可以通过自定义host的context的参数来实现Session共享,具体参考https://issues.apache.org/bugzilla/show_bug.cgi?id=48379
具体更改方式:
1、Configuration is done by editing META-INF/context.xml
<Context sessionCookiePath=”/something” sessionCookieDomain=”.domain.tld” />
2、直接修改Tomcat目录下加载的host配置中的context段,内容同上。

ImageMagick开源项目-详细命令解释(转)

转自:http://www.189works.com/topic/a/tupianzhuanti/ImageMagick/chuji/2012/0229/34.html
[ ‑adaptive‑blur• ‑adaptive‑resize• ‑adaptive‑sharpen• ‑adjoin• ‑affine• ‑alpha• ‑annotate• ‑antialias• ‑append• ‑attenuate• ‑authenticate• ‑auto‑gamma• ‑auto‑level• ‑auto‑orient• ‑backdrop• ‑background• ‑bench• ‑bias• ‑black‑point‑compensation• ‑black‑threshold• ‑blend• ‑blue‑primary• ‑blue‑shift• ‑blur• ‑border• ‑bordercolor• ‑borderwidth• ‑brightness‑contrast• ‑cache• ‑caption• ‑cdl• ‑channel• ‑charcoal• ‑chop• ‑clamp• ‑clip• ‑clip‑mask• ‑clip‑path• ‑clone• ‑clut• ‑coalesce• ‑colorize• ‑colormap• ‑color‑matrix• ‑colors• ‑colorspace• ‑combine• ‑comment• ‑compose• ‑composite• ‑compress• ‑contrast• ‑contrast‑stretch• ‑convolve• ‑crop• ‑cycle• ‑debug• ‑decipher• ‑deconstruct• ‑define• ‑delay• ‑delete• ‑density• ‑depth• ‑descend• ‑deskew• ‑despeckle• ‑direction• ‑displace• ‑display• ‑dispose• ‑dissimilarity‑threshold• ‑dissolve• ‑distort• ‑dither• ‑draw• ‑duplicate• ‑edge• ‑emboss• ‑encipher• ‑encoding• ‑endian• ‑enhance• ‑equalize• ‑evaluate• ‑evaluate‑sequence• ‑extent• ‑extract• ‑family• ‑features• ‑fft• ‑fill• ‑filter• ‑flatten• ‑flip• ‑floodfill• ‑flop• ‑font• ‑foreground• ‑format• ‑format[identify]• ‑frame• ‑frame[import]• ‑function• ‑fuzz• ‑fx• ‑gamma• ‑gaussian‑blur• ‑geometry• ‑gravity• ‑green‑primary• ‑hald‑clut• ‑help• ‑highlight‑color• ‑iconGeometry• ‑iconic• ‑identify• ‑ift• ‑immutable• ‑implode• ‑insert• ‑intent• ‑interlace• ‑interpolate• ‑interline‑spacing• ‑interword‑spacing• ‑kerning• ‑label• ‑lat• ‑layers• ‑level• ‑level‑colors• ‑limit• ‑linear‑stretch• ‑linewidth• ‑liquid‑rescale• ‑list• ‑log• ‑loop• ‑lowlight‑color• ‑magnify• ‑map• ‑map[stream]• ‑mask• ‑mattecolor• ‑median• ‑metric• ‑mode• ‑modulate• ‑monitor• ‑monochrome• ‑morph• ‑morphology• ‑mosaic• ‑motion‑blur• ‑name• ‑negate• ‑noise• ‑normalize• ‑opaque• ‑ordered‑dither• ‑orient• ‑page• ‑paint• ‑path• ‑pause[animate]• ‑pause[import]• ‑pen• ‑ping• ‑pointsize• ‑polaroid• ‑posterize• ‑precision• ‑preview• ‑print• ‑process• ‑profile• ‑quality• ‑quantize• ‑quiet• ‑radial‑blur• ‑raise• ‑random‑threshold• ‑red‑primary• ‑regard‑warnings• ‑region• ‑remap• ‑remote• ‑render• ‑repage• ‑resample• ‑resize• ‑respect‑parentheses• ‑reverse• ‑roll• ‑rotate• ‑sample• ‑sampling‑factor• ‑scale• ‑scene• ‑screen• ‑seed• ‑segment• ‑selective‑blur• ‑separate• ‑sepia‑tone• ‑set• ‑shade• ‑shadow• ‑shared‑memory• ‑sharpen• ‑shave• ‑shear• ‑sigmoidal‑contrast• ‑silent• ‑size• ‑sketch• ‑smush• ‑snaps• ‑solarize• ‑sparse‑color• ‑splice• ‑spread• ‑statistic• ‑stegano• ‑stereo• ‑stretch• ‑strip• ‑stroke• ‑strokewidth• ‑style• ‑subimage‑search• ‑swap• ‑swirl• ‑synchronize• ‑taint• ‑text‑font• ‑texture• ‑threshold• ‑thumbnail• ‑tile• ‑tile‑offset• ‑tint• ‑title• ‑transform• ‑transparent• ‑transparent‑color• ‑transpose• ‑transverse• ‑treedepth• ‑trim• ‑type• ‑undercolor• ‑unique‑colors• ‑units• ‑unsharp• ‑update• ‑verbose• ‑version• ‑view• ‑vignette• ‑virtual‑pixel• ‑visual• ‑watermark• ‑wave• ‑weight• ‑white‑point• ‑white‑threshold• ‑window• ‑window‑group• ‑write ]
下面是ImageMagick图形图像处理软件命令行工具的命令行参数的详细说明。如果你需要某个特定参数的说明,在上面的导航栏中单击对应名称,就可以直接跳转到相应位置。除非另有说明,每个命令参数都可以用于convert和mogrify命令。
继续阅读