受FreetStar同学启发,也想搞一件Ubuntu的T恤,毕竟俺也算半个Ubuntu粉丝嘛。于是在淘宝上搜索了一下,找了一家口碑比较不错的商家,拍了下来。趁着这个夏天的尾巴,还能穿一段时间。收到货后,检查了一翻,用料和质地都还不错,赞一个! I love Ubuntu!
BlackBerry系统刷至OS5.0.0.822
此次最新的ROM,是官方在7月28日放出的。一直没时间体验,今天终于把这个ROM给拖了下来。 先备份数据,在WIPE过后,一路照旧,开始刷ROM,看了几分钟电视,不一会儿,就完工了。882的ROM,感觉最大的改进是在拼音输入法。以前的输入法,在输入了一个词组后,需要多按一下,才算选定了这个词组。现在简便多了,可以少按一下,效率提高不少。看来RIM在改进用户体验方面,一直在努力。期待下次的ROM会带来更多的惊喜。
分享一下OS5.0.0.822的下载地址:https://www.blackberry.com/Downloads/contactFormPreload.do?code=06997F04A7DB92466A2BAA6EBC8B872D&dl;=734EA280EA8A6562A1D9635009CC5EAA
Ubuntu中mono环境的搭建
Mono的大名,搞.NET的同学都知道。它使.NET程序在Linux下有了跨平台运行的可能。随着mono的逐步发展,现在已经逐渐趋于稳定和流行了。此文介绍一下Ubuntu中mono环境的搭建。
1.安装
$ sudo apt-get install mono-gmcs libmono-system-data2.0-cil libmono-system-ldap2.0-cil libmono-system-messaging2.0-cil libmono-system-runtime2.0-cil
当然,还有其他的一些包可选,比如:
libmono-winforms2.0-cil 提供WinForm程序开发功能
libmono-system-web2.0-cil 提供asp.net web程序开发功能
libmono-system-web-mvc1.0-cil 提供MVC的web开发框架
libmono-wcf3.0-cil 提供WCF开发功能
libmono-nunit2.4-cil Nunit,单元测试模块
2.安装好后,查看mono相关信息
Mono JIT compiler version 2.4.4 (Debian 2.4.4~svn151842-1ubuntu4)
Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
TLS: __thread
GC: Included Boehm (with typed GC)
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none
3.测试程序
using System;
using System.Linq;
namespace Test
{
class Program
{
static void Main()
{
Console.WriteLine("Hello Mono!");
Console.ReadLine();
}
}
}
保存为test.cs,然后用gmcs编译,运行正常。
至此,mono环境配置成功。
推荐一个黑莓上的SSH客户端软件--BBSSH
记得我曾经写过一篇博文,叫做用BB管理你的VPS,其中介绍到的一款在黑莓上运行的SSH客户端,叫做MidpSSH。MidpSSH唯一不足的地方,就是连接后的命令输入方式,并不是直接在字符界面输入,而是要切换到另外一个文本界面,不方便,也不太直观。后来经过自己在网上的搜寻,发现一款更加不错的SSH客户端,叫做BBSSH,BBSSH还是个开源项目。BBSSH感觉比MidpSSH好用了许多。难怪,BBSSH自身的介绍里面,也说,自己是在原有的MidpSSH基础上做了更加多高级的修改。并且直接支持在shell界面键入命令,不必像MidpSSH那样,在切换的文本界面输入命令了,更加直观。
目前BBSSH最新版本为1.1.80,我的机器上不是最新版的。官网地址为: http://bbssh.org/wiki/en/Home
官网还提供OTA下载,地址是:http://bbssh.org/ota/
WP自用插件: HTML Entities Converter
在用Wordpress写有程序代码的文章的同学,都有这样的体验,就是在文章中插入代码,并提交文章到wordpress的时候,wordpress会把代码中的一些符号进行转义,再存到数据库中。这种情况,多出现在WordPress后台编辑使用可视化编辑器的时候,或者使用Windows Live Writer的时候。这样,代码经过转换过后,就成了一团乱了,比如:
其中的大于号,引号,还有其他的一些符号,都被转换成了HTML实体符号。
对应的其他符号的转换关系,还有如下的一些: 网上也有一些解决办法,比如在使用WP-CodeBox插件的时候,通过修改WP-CodeBox插件自身的代码,添加转换函数,进行一次转换。 或者在wordpress后台使用HTML编辑器,逐个进行修改,纯体力活。基于这样的情况,俺做了个实现自动转换HTML实体符号功能的插件,激活后,你就不必担心代码中的符号会被转换成HTML实体符号了,在你提交发布文章的时候,它会自动帮你把被转换成HTML实体符号的字符给转换回来……从此,你可以放心的在文章中插入代码,而不必担心代码被转换得一团乱了,hoho。 代码只有两三句,完全没啥技术含量,高手请忽略……
点击这里下载: HTML Entities Converter V1.0
上传到Wordpress的plugin目录,后台激活即可。
WP-Reader-Wall 插件兼容 WordPress 3.0的修改
wp-reader-wall是个有意思的插件,能在页面列出最近评论过的同学的头像。采用照片墙的方式,展示给用户,并且,头像的排序是根据评论的条数来排序的。
自从上次升级WordPress到3.0后,发现者插件没有正常工作了,索性禁用了此插件,也没时间仔细研究。今天特闲,所以决定拿这插件来研究研究。发现导致插件工作不正常的地方,是在插件的代码中定义select的sql语句,取读者数据的时候出了问题。把这句sql从插件中挖出来,在线上环境的mysql中执行了一下,果然取不到数据。刚开始,怀疑是sql语句的where条件的问题,后来逐个排除,没发现异常。最后,把重点放在了表名上,插件里面是用的一个全局变量:$tablecomments 来表示评论的表,索性直接替换成wp_comments试试,果然能取到数据了。看来$tablecomments在WordPress 3.0中失效了。去wordpress搜了一下,官方提到$tablecomments变量是不推崇的方式,可能已经被弃用。官方还建议了一些其他的全局变量的替代办法,如下:
这样,我们可以遵循官方的建议,在WP-Reader-Wall插件的select语句中,用$wpdb->comments替代原来的$tablecomments,这样,插件就能正常在WordPress 3.0下使用了。总结了一下,关于WordPress升级遇到的一些问题,可以直接查阅官方文档,还有就是参考每个版本之间的变化,包括变量定义,以及数据库改动。这才是最好,最直接的办法。
具体修改方法,在WP-Reader-Wall.php中,找到如下的代码:
$request = "SELECT count(comment_ID) comment_nums,comment_author, comment_author_email,comment_author_url FROM $tablecomments where comment_date》'".$cur_time_span."' AND comment_type='' AND comment_approved=1 group by comment_author_email order by count(comment_ID) DESC ";
修改为:
$request = "SELECT count(comment_ID) comment_nums,comment_author, comment_author_email,comment_author_url FROM ".$wpdb->comments.
" where comment_date>'".$cur_time_span."' AND comment_type='' AND comment_approved=1 group by comment_author_email order by count(comment
_ID) DESC ";
Linux中随机密码的生成
Linux中提供方便的让我们生成随机密码的功能,并且生成的密码有一定的复杂度,符合密码规范。下面是Linux中生成随机密码的两种常用的方式:
1.用mkpasswd命令:
使用mkpasswd命令,需要事先安装expect模块,以CentOS为例:
yum -y install expect
安装好后,直接运行mkpasswd,就能生成随机密码了。并且命令还有参数,比如设置生成的随机密码的最小长度,等等,看看help就知道了。
2.用passwdgen命令:
和mkpasswd大致一致,需事先安装passwdgen模块:
yum -y install passwdgen
安装好后,直接运行passwdgen,即可得到随机密码,同样passwdgen命令也有参数,可以参考help。
Cloud VPS 免费试用与体验
基于云计算技术的VPS,正在进行beta测试,并且正在招募广大网民进行免费测试。 免费测试申请地址:http://vps247.com/signup.php 注册后,等几天,会收到vps247.com发来的邮件,说你的帐户已经准备完毕,还会在邮件中,告诉你后台地址。 登陆后台,第一步,当然是建立VM了。 VPS247提供的配置还不错,如下: CPU:未知,不过可以通过PHP探针查看 内存:768MB 硬盘:20G IP地址:两个 带宽:250GB
点击Create a new VM,进入VM配置界面,这里可选的系统,有Linux和Windows,不过貌似Linux目前只能选CentOS。
VM动态创建过程,整个过程貌似花的实际比较长,看来这方面还是Linode的体验比较不错。
创建好后,可以看到VM的相关参数,点击”Start this VM”,即可启动你的Cloud VPS了
VPS启动了,本地ping测试,速度一般,vps247的机房位于英国。平均延时400ms以上。
另外,也许Cloud VPS整处于beta test阶段,很多地方bug还是有点多,比如VPS重启,经常会卡住。希望开发人员能尽快修改一些比较严重的bug,避免影响用户体验。 有兴趣的同学也可以来申请一个试试,发现bug可以到官方论坛提交和反馈。虽然这VPS速度一般,不过还是可以用来SSH跨栏,还是很不错的。
相册搬迁到Linode
前不久把Blog搬到了Linode,今天又决定把相册给搬了过来。相册还是用的ImageVue这款Flash的相册,非常有动感,俺十分喜欢。以后相册中,会放一些俺的摄影习作,欢迎访问。
相册地址:http://album.xiaozhou.net
另外,安装好ImageVue后,相册提示PHP对EXIF获取的功能没有打开。查看了一下PHP官方文档,原来Linux下,PHP支持获取EXIF信息,并不像Windows平台那样,需要额外的扩展库,只需要在编译PHP的时候,打开一个开关–enable-exif 即可。于是我又把PHP给重新编译和安装了一次,加上那个开关,这下相册就可以在显示照片的时候,获取照片的EXIF信息了,效果相当赞……