分类“Web技术”的存档

  • 07
  • 3月

最近看惯了大分辨率的显示器,感觉这个模板好窄,才818px宽。这点上倒是和我老板感觉一样了,上次那个网页照这个宽度做的时候他也觉得窄。参考了一下当今网页的普遍宽度,加了100px上去,现在是918px宽了,相应的内容部分也由原来的550px加到了650px,在大显示器普及的今天算是跟上潮流吧。

另外顺手更新了一下google adsence的广告单元,把右侧sidebar下方的广告去掉(根本不可能有人会看到),在上方加了个链接单元,这个广告感觉还是有点用处的。

  • 07
  • 3月

其实是个老问题了,这个模板在其他浏览器下一直很正常,但一到Opera下就跑偏。内容区域左侧有大片空白,并把右侧导航菜单挤到底下去。

刚开始以为是标签没闭合的问题,但用W3C工具检查过发现没什么毛病,于是一直没去理它。正好今天原来那个爆慢的dreamhost空间到期,把内容搬到这个新空间。加上最近这几个月写了不少javascript和CSS,又遇上Opera 10.5的发布,于是决定研究一下。

原来跑偏那个DIV用的是float:left。从最近干活的经验上来看肯定是上面有个元素抢占了它的空间,但具体是哪个不好找。于是来个简单的:float出问题,clear来解决。把跑偏DIV的上级容器加一个“clear:both;”——Opera下终于正常了。

不得不说,在美国留学确实很充实,现在天天Fortran、MPI、HDF5、php、javascript、CSS……感觉基本上没有闲着的时候,写博客也就没那么及时了。

学习着!

  • 02
  • 7月

做毕业设计时对wordpress几个缓存插件进行了性能分析。费了老大劲测得的数据仅仅扔在毕业论文里实在可惜。精简一下,与大家共享。

测试环境:virtualbox中全新安装的Ubuntu 9.04 Server,标准LAMP环境。

测试工具:httperf、top

测试方案:无缓存、WP Super Cache半开、WP Super Cache全开、cos-html-cache共四种状态。在每种状态下分别对首页和id为148的文章页面进行测试。

每次测试前在服务器端使用命令

top -bSn 1 >Xt0.txt

将各个进程的CPU使用情况记录到一个txt文件中。

为什么不使用ps:虽然查看进程信息的“标准”命令是ps,但在linux下ps输出的CPU时间仅精确到秒,而top可以精确到0.1秒。top使用参数b时使用批量模式,将系统中所有进程的情况遍历输出参数n指定的遍数后退出。

然后在客户端使用httperf对指定页面进行50次顺序访问,所有测试结果以这50次的平均值为准。对id为148的页面httperf命令如下

httperf --hog --server 192.168.1.104 --uri /wordpress/archives/148.html --num-conn 50 --timeout 60

httperf测试完成后,马上在服务器端使用top命令记录测试后各进程CPU时间。测试期间服务器没有其他负载,所以可以认为apache2、mysqld的CPU使用完全是由wordpress引发的。

数据处理部分就不说了,无非就是加减乘除。直接上性能对比图!

响应速率

响应速率

apcahe CPU占用对比

apcahe CPU占用对比

mysql CPU对比

mysql CPU对比

不得不说,wordpress在效率上确实不怎么样,随便一缓存性能就有十几倍的提升。

至于WP-Super Cache、cos-html-cache的优缺点已经有很多讨论了,在此不再重复。

但有一点要强调的是,本测试是基于对同一篇文章连续访问的情况下测得的。在这种情况下缓存是100%命中的,而事实上WP-Super Cache缓存有效时间只有十分钟,在缓存失效的情况下访问一下页面,由于要重建缓存,响应速度反而会比没有缓存慢一些。不过由于wordpress本身的速度,慢的这点应该是不明显的。

  • 20
  • 4月

刚才闲着无聊在wordpress后台“常规”页面改博客的名字,結果一次提交之后返回到了登录页面。而且不管用哪个用户登录只会在登录页面循环,无法进入后台。

虽然无法登录,但主页上显示的链接是“后台管理”而不是“登录”,说明登录认证还是成功的。后台无法登录,只能到数据库里看一看了。

用phpMyAdmin查看了一下wp_options表的内容,发现siteurl的内容居然为空。手动将其改回 http://www.seebit.org,刷新一下wordpress后台,可以正常使用了。

  • 03
  • 3月

最近折腾Blog,先是换域名,然后把wordpress的固定链接格式改了。为了保证用老链接能访问到改变后的内容,不得不研究找些wordpress永久链接重定向的插件。

尝试了好几个插件。包括著名的Permalinks Migration Plugin。但这个插件在我这根本不起作用。WP后台的在线安装的其他Permalinks插件也不好使。最后终于找到了一个好用的:Permalink Redirect WordPress Plugin算是管用了。但这个插件在生成的新地址后会多添加一段post_id,我分析了一下,注释掉了额外添加post_id一段的代码。如果你出现了同样的问题,请下载我的修改版本。

ylsy_permalink_redirect_patch_riqe修改版

现在就等Google确认我的重定向了。

  • 27
  • 2月

最近一段时间出了几件很“和谐”的域名事件。.cn域名,甚至在国内注册的域名都让人感觉靠不住了。正好seebit.cn这个域名马上也要到期,续费涨到¥55,与国外域名相比连最后的价格优势都没有了。于是借朋友的信用卡在国外注册了seebit.org这一新域名。现已将原seebit.cn下所有内容迁移到了seebit.org。

本博客的新地址为http://www.seebit.org

总结一下wordpress更换域名的经验:

我只有一个空间,首先将新域名@和www两项解析到原IP,并在空间设置中绑定新域名。此时用新域名www.seebit.org已经可以打开原来的博客。但这时打开页面中所有的链接还都指向www.seebit.cn这个旧域名。

备份数据库,用文本处理软件将数据库中所有的seebit.cn替换为seebit.org,将原数据库清空后导入修改后的SQL文件。此时wordpress已经完全迁移到新域名下。

考虑到搜索引擎对网站的收录,要为旧域名做301永久重定向,因为新旧域名实际上指向的是服务器上同一个目录,要修改网站根目录下的.htaccess文件。在由wordpress生成的重写规则中添加以下两行:

RewriteCond %{HTTP_HOST} !^www.seebit.org$ [NC]
RewriteRule ^(.*)$ http://www.seebit.org/$1 [L,R=301]

变成:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.seebit.org$ [NC]
RewriteRule ^(.*)$ http://www.seebit.org/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

这样访问www.seebit.cn下所有链接都能自动转到www.seebit.org下对应页面。

然后就是用各种方式通知朋友们更换友情链接的地址,enjoy it!

PS:周五晚上,又是我们这宽带的噩梦,什么网站都打不开。幸好寒假包的流量剩了很多,用TD手机联网写的这篇blog。384kbps的网速上网的感觉还是不错的;-)

  • 23
  • 1月

今天给《希望泉》杂志的RSS做了一下重定向。

以前杂志订阅用的RSS还是我大一时研究asp那阵子自己写的一个xml,后来由杂志的上一任技术部负责人deven修正了一下。每次新杂志发布时都要自己手动改这个文件,相当的不方便,而且相当容易出错。

可能是出于懒吧,这么不好用,居然还这么一直用下来了。不过今天终于爆发了,到网上查了一下RSS重定向的解决方法。决定把它重定向到《希望泉》官方博客的RSS上去。这样只要在官方博客上发表篇文章就可以了。而且这样的话更新RSS就不需要技术部门出面了。

查到的解决方案只有两种:

1.301永久重定向

貌似大部分人在重定向时都用的这个方法,使用Apache的“.htaccess”文件,在里面写入类似:

redirect permanent rss.xml http://blog.sina.com.cn/rss/hopespring.xml

一句即可实现将rss.xml重定向到http://blog.sina.com.cn/rss/hopespring.xml。而且这种重定向的方法对搜索引擎也很友好。

但经过实现,我学网的服务器貌似不支持这种重定向。只有采用另一种方案了,在xml级别上实现重定向。将原来rss.xml中的内容替换为:




        http://blog.sina.com.cn/rss/hopespring.xml

经试验opera可以正常识别这种重定向,而firefox对其支持好像不是很好。不知道其他的订阅工具对其支持如何,但目前也只能这样了。总比手动更新浪费很多时间又出一大堆错误好吧。

  • 10
  • 8月

我开这个Blog主要想分享一下技术上的心得,顺便总结一下自己的收获,因此少不了会例举一些代码和配置文件。WordPress本身好像没有为这准备什么。之前我也是把代码直接放在正文中的。最近觉得十在不爽了,干脆自己为Blog添加代码显示框。

考虑了一下Html中的标签,准定改写pre标签,让它来实现代码显示。

在主题的style.css中定义:

pre {
    text-indent:0;
    border:1px solid black;
    padding:5px 15px 5px 15px;
    margin:5px 10px 5px 10px;
    word-wrap:break-word;
    white-space: pre-wrap;
    white-space: -moz-pre-wrap;
    background-color:#E6E6E6;
}

实现了将段首缩进置零(我正文中有自动段首缩进,所以得取消掉)、增加边框背景等样式,让它看起来像别的网站上的代码显示块。

其中最重要的是以下三行:

    word-wrap:break-word;
    white-space: pre-wrap;
    white-space: -moz-pre-wrap;

成功实现了在所有浏览器中文本在元素边界强制换行。这样连续的英文文本就不会把元素撑大了(相信做过Web开发的人都知道这个经典的问题)。

以后插入代码只要把它们放到pre标签中就可以了。

  • 23
  • 5月

http://www.baidu.com/search/robots.html

百度这个文章写的很明白。不再多写了。

  • 11
  • 5月

今天上xoops.org.cn,偶然发现了这么个帖子——《PHP在线解压缩工具,非cPanel用户必备》

其中作者提到了一个极好的php程序:faisun_unzip,可以实现zip文件的在线解压。这可是天大的福音啊!

像我目前用的这个国外的免费主机,FTP极不稳定,后台虽然提供cPanel,但并没有提供完整的功能:解压模块不能使用。

有了这个faisun_unzip,只需要打开这个页面,将要上传的文件打个zip包,点一下“上传”按钮就一切OK了,再也不用与那个超慢、超不稳定的FTP作斗争了。实在是太方便了!

所有标签:.net Ajax Java javascript Linux map MySQL RSS TD-SCDMA Ubuntu vim web Win7 乱码 基础知识 备份 奥运会 希望泉 性能 缓存 编程