2007年4月3日星期二

feisty

ubuntu7.04要发布了,顺便也升级了一下,从6.10升到了7.04beta版,xfce4.4也正是发布了,虽然这是在一个月之前的前一阵子,文件管理器thunar由 0.4升到了0.8,似乎也显示着xfce组的信心,在用ubuntu的 接近两年的时间了,我很荣幸的看见了 linux桌面的巨大进步,真棒!由于历史的原因,也许现在linux下面就差一套完整的办公软件了,ooo虽然前几天发布了2.2版,但以前的阴影始终挥之不去,感觉像是扶不起的 阿斗 ,ooo的 fans可不要骂我哟 ,呵呵 ,kde4的线路越来越清晰了,最近再一次看了一遍千里姑娘写的关许kde的文章,愈加崇拜 kde项目组的成员了。我坚信 kde4一定会带来惊喜的 。
四月一日过去了,似乎没有什么让人惊喜的笑料,linux发行版之一arch开起了另外一个版本ark的玩笑,说改名为ark,官方网站上也把所有的arch替换成了ark,接着ark把这种搞笑发展到了极致,声明改名为arch。
在愚人节之后,百度被人八卦,准备发展邮箱服务,而google要在明天发布谷歌拼音输入法,负责开发scim的suzhe先生几个月前就去google里,恩,输入法的发布应该是真的了^-^。

断断续续

blogger时断时续,原因大家也是知道的,不停的摇摆之中,激情就这样消耗,于是,继livespace,blogger之后,又产生了何去何从的念头,继续搬家还是等待,等待那不可预期的通畅,也许心理想着以后blgger的通畅,可是行动却不遂心愿,在这落寞的日子里,moinmoin,wordpress都成了电脑里的贵客。但客终究是客,能变成主人么?至少此时没有那种心情了。恩,等待,不用思考,也许这是最省心的了,不然,锥心之痛如何止呢。

2007年3月29日星期四

离开家乡的五年之痒

写于20060629

不知不觉间一晃就是五年了,五年来,我变得不是更勤快,更聪明;恰恰相反,似乎一切都是朝着反面而去,用一个时尚的词汇则是堕落与邪恶.


首次离家

现在想来,那个时候是充满忐忑不安的心情离开的,01年的我似乎是处处不顺,高考前夕,最爱我的姥姥离我而去,而我作为老人家最爱的孙儿辈,却因为要备考而逃避了葬礼,再者,那时候,高傲的内心之中对高考的成绩也是不安的,最后一个原因,也是最重要的,在我离家的前夕,年轻似乎使我体会不到双亲因为我第一次要离家的伤感,我现在仍不能体会母亲看见我孤身一人坐飞机到上海去的心情,唯一能佐证的是眼中的泪光与对我的欢笑的极度的不相称.


离开家乡之后才发现过去心中对外界的看法与设身处地的感触是相隔万里的,于是心中对“行千里路,读万卷书”有了新的理解,突然发现,单身一人在外面才真正的用脑子思考,在家中,我该干什么?我什么时候干?我如何干?我是绝对不会思考的,至少,父母,老师会帮我们想好,我们唯一要做的就是执行,对,执行,一种不经过大脑的重复,正如同大多数工作一样,我们已经失去了思考的能力,这似乎是一个轮回,从学习中学会了思考,可是最终思考对我们却没有用处,因为理想与现实的差距,思考带给我们的仅仅是伤痛而已,而伤痛不是生活。于是,我们迷茫,徘徊,大多数时间我们逆来顺受,仅仅极少的时间用来思考我们的缺失,如同此时的我,于是,我们想到了痛苦......


五年之前的探奇之旅给我留下了美好的回忆,无论是风土还是人情,当我第一次亲历所谓的大上海的时候,我发现我是那么的渺小,似乎自卑笼罩着我,潜意识里想到了家乡,是呀,我们的故乡什么时候才能这样呢?到处高楼大厦,繁花似锦,熙熙攘攘的人群,络绎不绝的人流。我似乎有点不喜欢家乡了,毕竟年轻人是喜欢热闹的--那时候的我也不例外.但是,与这种渺小对应的却是我在家乡的自傲,当我站在高山之颠遥望远处时所有的那种傲气,我发现那才是真正令我自豪的地方,在那儿,我感受到了我作为主人的荣耀,这一点,是永远在异乡异途不能感受到的.

从上海到北京,叔叔陪我而来,遗憾的是,叔叔并没有在北京呆上半天或者一天,当我的入学手续办完时,叔叔就走了,于是,第一次孤身一人的在这儿待着,第一次用憋足的普通话向学长,同学询问我想知道的一切,第一次一个人走进陌生的饭堂,吃着并不可口的饭菜,第一次想到了家的温暖.

在一个陌生的环境之中,当我无所事事的时候,我又想到了姥姥的离去,似乎一切的过失都是我造成的,于是,我的心陷入了一种极度的恐慌之中,这对于一个被动的人来说是最大的打击,幸好,孤单的人影并不意为着孤独,在这而儿,我找到了新朋友,我们谈心,游玩,慢慢的,似乎我从这种恐慌中解脱出来了.....
.

在首都,有一天我发现,其实与我的故乡没有什么两样,大概是开学两个月后的一个下午,我去学校外面的批发市场买东西,当我回来的时候,已是混暗的傍晚了,在岔道口,我被几个父辈年龄的人物拦住了,他们的意思大概是说很久没有吃东西了,很饿,希望我能帮助他,看着周围人烟稀少,以及他们的架势,似乎不想让我平平安安的离开,我随手把我右手口袋中的钱给了他们(把钱分开放,早就是我的习惯了),钱不多;在学生,你们自己的孩子跟我差不多大的诸多借口下,我终于离开了,事后想着惊险,可是在那时,我觉得离开是一件非常自然的事情,这是我第一次遇到拦路客,是第一次自己处理问题,也是第一次体味生活......


第一次,想着平淡,经历也平淡,也许我们的生活本身就是这么平淡,是吗?

2007年3月20日星期二

hash_map中的hash函数

关于hash_map的介绍在
http://my.opera.com/typedef/blog/2007/03/20/stl-hash-map
有一份转载。
hash_map中需要两个函数,hash函数和比较函数,具体的说明在上面的链接中有说明,
gcc中有一个hash函数扩展,__stl_hash_string,从名字可以看出是针对string的。当然也可以像下面这样写:

inline size_t
__stl_hash_string(const char* __s)
{
unsigned long __h = 0;
for ( ; *__s; ++__s)
__h = 5*__h + *__s;
return size_t(__h);
}

在vc2005express中安装平台sdk

在vc2005express中安装平台sdk
1:安装vc2005express
2:安装平台sdk
3:在vc2005express中的tools中添加exe,include,lib文件路径
4:更新corewin_express.vsprops文件
You need to edit the corewin_express.vsprops file
(found in C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults) and
Change the string that reads:

AdditionalDependencies="kernel32.lib"

to

AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"


5:注释掉AppSettings.htm(“%ProgramFiles%\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1033\".)中的
// WIN_APP.disabled = true;
// WIN_APP_LABEL.disabled = true;
// DLL_APP.disabled = true;
// DLL_APP_LABEL.disabled = true;
大约在441到444之间。

在vc2005express中安装stlport

在vc2005express中安装stlport
下载stlport,www.stlport.org
解压,我的目录为F:\STLport-5.1.2
修改:D:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat
在@set INCLUDE=的后面添加“F:\STLport-5.1.2\stlport;”
在@set LIB=的后面添加“F:\STLport-5.1.2\lib;”
进入命令行模式:
F:\STLport-5.1.2\build\lib 下:执行 :
F:\STLport-5.1.2>"D:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
然后执行:
F:\STLport-5.1.2>configure -c msvc8
F:\STLport-5.1.2> nmake /fmsvc.mak install
即可。
然后再vc的tools里面设置相应的include和lib即可。

boost库在vc2005express中的安装

1:下载安装vc2005express,我的安装路径在:D:\Program Files\Microsoft Visual Studio 8
2:下载boost,网站:www.boost.org,我解压在:C:\boost_1_33_1
3:编译bjam,编译之前,更改:C:\boost_1_33_1\tools\build\jam_src中的build.bat, 把其中的一个更改如下:
if EXIST "D:\Program Files\Microsoft Visual Studio 8\VC\bin\VCVARS32.BAT" (
set BOOST_JAM_TOOLSET=vc7
set BOOST_JAM_TOOLSET_ROOT=D:\Program Files\Microsoft Visual Studio 8\VC\
goto :eof)
setlocal & endlocal
4:复制C:\boost_1_33_1\tools\build\jam_src\bin.ntx86下的bjam.exe到C:\boost_1_33_1
5:在控制台下切换到C:\boost_1_33_1\,执行:
bjam "-sTOOLS=vc-8_0" install
编译后生成的文件放在了C:\boost目录下。
6:打开vc2005express,tools->options->Projects and Solutions->VC++ Directories->Show directiories for, 选择Include files,添加
C:\Boost\include\boost-1_33_1
选择Library files,添加:
C:\Boost\lib

可以用如下代码测试:
#include "stdafx.h"
#include<iostream>
#include<boost/any.hpp>
#include<boost/filesystem/operations.hpp>
namespace bfs=boost::filesystem;
int _tmain(int argc, _TCHAR* argv[])
{
boost::any a(5);
a=7.67;
std::cout<<boost::any_cast<double>(a)<<std::endl;

bfs::path p("test.cpp");
if(bfs::exists(p))
std::cout<<p.leaf()<<std::endl;

return 0;
}

如果没有料错,在编译如上代码时会出现缺少uuid.lib的错误,这个库在vc2005express中没有包含,包含在了平台sdk中,可以使用如下方式跳跃:

project->property pages->Configure Properties->Linker->Input->Ignore Specific Library,在后面加入uuid.lib

另外的方式则是安装平台sdk,如上那样加入include和lib目录后,编辑
D:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults\corewin_express.vsprops文件,更改
AdditionalDependencies="kernel32.lib"
为:
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"
其余的不变。
好了,这样做完之后,就可以享受vc2005express了。