-
办公室
我的角落: 健身球,这个比较小,今天又买来一个大的,很爽
-
花花草草
同事收到的花: 馒头柳,挺好看的: 桃花快开了:
-
昨晚赌赢了
昨天晚上是我们第二次玩Texas Hold’em,最后我赢了,哈哈。 开始的时候放舒缓的音乐,大家都舍不得下注。后来改成了斗牛士进行曲,就变得热血沸腾了。 第一次的赢家这次最先出局,打扫卫生、跳绳。下次我可得小心了,不能冲动。
-
Red Hat AS 配置 Subversion
今天在一台Red Hat AS 4的服务器上配置Subversion服务。 首先下载源代码编译,因为没有Apache合适版本的mod_dav.h,没有生成mod_dav_svn.so,而且总是报Locale错误,删了。 然后下了Collab Net的那个版本,配置Apache的时候说那个mod_dav_svn.so不对,只好也删了。 最后按Subversion页面上的那个链接找到RPM包,包括apr, apr-util,安装成功,且svn/svnadmin正常运行 。因为本来就有apr和apr-util的低版本,要用-Uvh选项升级。 但配置Apache的时候出了问题,目录权限没问题了,访问就出错。后来在Subversion FAQ里发现Red Hat还有security con text的概念,正是它阻止了Apache访问代码库。于是chcon一下,可以访问了。然而加上密码验证后总是不能通过验证,这时候才想起看Apache的Log, 原来是无法访问密码文件,permission denied. 噢,密码文件也要chcon. 看Log很重要,Apache、Tomcat都是。 期间有一次启动机器,随便按了几个键,好久都无法连接。插上显示器一看,原来停在选择内核那个界面上了。。。
-
一盆花枯了
前些天同学把一盆花放在我们宿舍窗台上,我看它叶子有点蔫,就浇了点水放到窗户外面。 那几天下雨又下雪,它的叶子变得绿油油的,精神多了。 可是没过多久叶子就开始变黄枯萎──原来已经冻死了。 听说公司要买些花来,呵呵。我还是比较喜欢看见植物的。
-
日落真美
昨天下了雪,今天天气晴了。空气特别清新,在18楼上,远处的山看得清清楚楚,山上还有没化的雪。 到了黄昏,太阳落山的时候,眼看着它就在十几秒内从刺眼到消失,留下火红的余辉。深蓝的夜幕慢慢下垂,和黑色的山交融在一起。 没想到它落得那么快。
-
正月十五
今天元宵节。昨天下了一整天的雨,到了晚上十一点多就飘起雪来。今天白天雪融化了,温度降了很多。 晚上人们开始放烟花,出去看很热闹很漂亮,不过天气太冷。 小桂子还是不改风格,上班级群里发了一句“大家中秋快乐,恭喜发财”,就跑了,留给同学们无限暇想。Shrek里驴子指着月亮问,那是什么,那个又大又圆的?今天晚上确实晴了,天上挂个又大又圆的东西,小桂子知道它是月亮:)
-
寒假结束
弟弟先我一天去上学,我在家也倍感无聊。周围都是小学同学,大都有了孩子,谈话没有共同语言了。 昨天早上6:30就起床,坐车到县城。在车站看到红旗招展人山人海在等到北京的直达车,想都没想就买了到保定的票,打算从保定转车到北京。在保定站,发现等车的人更多了,被人带到个大院子里,一队人密密麻麻围了整整一圈,我们排在末尾。看见对面有个拐角,人们从那里拐出去排着队,就奇怪,拐个小弯也多放不了几个人啊。后来排到那边才发现,那里拐到了一个更大的院子里,也被人密密麻麻围了一圈,每个人刚到那里都傻眼了。排队途中不停地有开黑车的动摇人们排队的信心,让人坐他们的车。算起来,至少有一千人吧,好在车多,排了不到一小时就上了车,下午五点钟左右到了庄严肃穆的保福寺。在门口要了一笼包子,一碗面,想大吃一顿,结果吃面的时候看到了小强的尸体,真够倒霉的。 到了宿舍,才发现是星期六,来得太早了。 坐车接近北京的时候就感觉到在这种城市中有着和农村不一样的压力,还得拼搏。
-
用密码保护整个blog
WordPress 只提供对某篇文章进行密码保护,但它的标题仍然显示。如果你的Blog是写日记,可能什么都不想让外人看到。 WP支持论坛的一个主题中给出一种非常简单的解决方案,未登录用户自动被重定向到登录页面。将以下代码复制到你的Blog根目录下,并将$siteurl变量赋予正确的值(从论坛里直接复制的代码似乎有问题)。 <?php $siteurl = ‘http://your.blog.url’; $cookiehash = md5($siteurl); if(empty($_COOKIE[‘wordpressuser_’ . $cookiehash])) : header(‘Location: /wp-login.php’); else : define(‘WP_USE_THEMES’, true); require(‘./wp-blog-header.php’); endif; ?> 刚才朋友让我给他弄密码保护,我把自己的改了一下,然后告诉他好了。刚才上自己Blog出了问题,才想起来改错了。。。我说怎么好几个小时没收到垃圾评论呢,看来对付spam最好的办法还是──关站。
-
GBK(GB2312)向UTF-8的编码转换
最近做一个IE插件,要从网页中取得文字,编码到一个URL中去。在前一篇文章“中文URL编码”中,粗略地介绍了URL编码的规则,以及中文URL编码的过程,但在如何将GBK或者GB2312编码的汉字转换到UTF-8编码仍然是一个问题。编码是一个很复杂的问题,我也了解甚少,这里只是写写我的经验,欢迎补充和指正。 在PHP、.NET中,编码的转换都比较容易。ATL中有一些宏是用来做编码转换的,我没试过,而且我更愿意用后面所讲的方法。 在COM编程中,字符串多存储在BSTR结构中。网上许多文章都说这个数据结构中存储的就是Unicode,我就试了好多次从Unicode转UTF-8,未遂。在Debug的时候,含有中文字符串的BSTR能够正常显示,说明它的编码应该是GBK. 如何从GBK转换到UTF-8呢?libiconv应该可以做到,然而我使用它的Windows port后,可以编译、注册COM组件,就是工具栏出不来了,于是放弃。上网搜索,得到一个被广泛转载的CChineseCode类。然而它仅仅针对汉字(每个汉字在UTF-8编码中占3个字节),如果字符串中有英文,就有麻烦了,因为英文在UTF-8编码中只有一个字节。另外有的字符会占用更多的字节。所以这个类并不适用。 正确的方法是用Win32 API的MultiByteToWideChar和WideCharToMultiByte两个函数,Wide character指的就是Unicode. GBK和UTF-8之间的转换,需要用Unicode作为桥梁(在这种方法里)。比如我们要转换这样一个字符串”编码 – Google 搜索”。 从GBK向Unicode转换 该字符串在BSTR类型的变量in中存储,首先将其转换为普通的字符串: char *lpszText = _com_util::ConvertBSTRToString(in); 此时,如果用strlen函数取得lpszText的长度,则为18,4个汉字,每个占两个字节,另外有10个英文字符。所以说GBK/GB2312是MultiByte而不是WideChar. 并且有lpszText[0] == 0xb1 && lpszText[1] == 0xe0,在微软Windows Codepage 936这一页上查到果然是“编”字,更坚定了我们认为它是GBK的信心。 转换到Unicode所用的函数是MultiByteToWideChar,第一个参数是MultiByte的Code page,如果确定是GBK,就可以使用936. 我考虑它应该是与系统有关的(比如日语系统上应该是932),所以使用CP_ACP,系统所用的Codepage. 先通过将cchWideChar参数设置为0,取得转换后需要的空间大小,然后分配空间,再做实际的转换(转换时cbMultiByte为-1表示要转换的字符串以0结尾)。代码如下: int wLen = MultiByteToWideChar(CP_ACP, 0, lpszText, -1, NULL, 0); LPWSTR wStr = (LPWSTR)CoTaskMemAlloc(wLen * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, lpszText, -1, wStr, wLen); wLen是15,注意是指宽字符的个数,很贴心,14个字符,加上末尾的结束符。分配空间的时候也要注意,不是15个字节,而应该分配30个字节。这些在MSDN中都有说明,仔细看cchWideChar参数的介绍。最后一行代码执行后,wStr中就是这些汉字的Unicode了,查看一下,wStr[0] ==…