博文

目前显示的是 五月, 2010的博文

msdn里的代码也遍是错误啊

今天在看GetLogicalDriveStrings/QueryDosDevice这两个函数怎么用。结果在msdn的代码中发现一个缓冲区大小BUG。我本机的msdn里,代码是这样的:TCHAR szTemp[BUFSIZE]; szTemp[0] = '\0'; if (GetLogicalDriveStrings(BUFSIZE-1, szTemp)) { TCHAR szName[MAX_PATH]; TCHAR szDrive[3] = TEXT(" :"); BOOL bFound = FALSE; TCHAR* p = szTemp; do { // Copy the drive letter to the template string *szDrive = *p; // Look up each device nameif (QueryDosDevice(szDrive, szName, BUFSIZE)) 最后一行,QueryDosDevice的最后一个参数传错了,那个是szTemp的大小,正确的应该是MAX_PATH。而网上的msdn是对的。http://msdn.microsoft.com/en-us/library/aa366789.aspx小小的汗一个。这样的代码出现在关键地方,又是一个安全漏洞吧

vc 2008打完sp1后manifest文件生成错误

用vc 2008写了一个很简单的程序,然后扔到另外一台机器上去运行。那台机器并没有装vc,也没有vc9的crt runtime。我希望这个小程序是免安装的,直接扔过去就可以用的。于是我就把Microsoft.VC90.DebugCRT这个目录和我的程序一起打包发过去。遗憾的是,不行。然后用sxstrace工具查,发现是这样,我的程序的manifest的CRT那一节里面写的是version="9.0.21022.8",而我系统里装的是打过补丁的,version="9.0.30729.4148"。然后到了目标机器上,它没有安装vc9的CRT,当前目录下的这个版本又不一致(比它要求的高),于是它就报错了。最好终于在网上找到解决办法,我给我的程序加上_BIND_TO_CURRENT_VCLIBS_VERSION 这个宏。然后再重新编译,这样,manifest文件就是用系统里当前安装的版本号了。然后把vc目录下的redist里面的文件夹和我的程序一起打包扔出去,就没有问题了。真恶心。据说vs 2010就没这个问题了。

装了office 2010

今天从网上下了office 2010来装。发现自带了新的输入法,微软拼音2010,并提供了两种,简单快速和新体验。不晓得这两种具体有什么区别,感觉后者就像是智能ABC的进化版。office我下了一个vol版,不用key就能安装。但是依然需要那个KMS。具体我是看着这里做的:http://bbs.pcbeta.com/viewthread.php?tid=727249我发现它内置了搜索。就是,在打字的时候,最后不要按回车,然后Ctrl+F8,就自动打开IE搜索。真是方便啊。可是我一般搜索的都是英文啊,这个,这个?顺便测试了下它和nokia ovi suite的同步。据我测试,日历和任务都是没有问题的。但是notes和messages不行。下ovi suite的时候有这么一段说明:Known issues in NOS 2.2.0.124:
Nokia N900 support:
Currently these features are not supported with Nokia N900:SMS sending is not supportedSMS syncing between Nokia N900 and Nokia Ovi Suite is not supported. This is due to missing SMS sync support in Nokia N900 device.Nokia N900 doesn’t support accessing memory card content with Nokia Ovi Suite. This means, that Nokia Ovi Suite is always syncing photos, videos and music with Nokia N900 internal memory.No application installation support for Nokia N900.Messaging: Message notifications are not supported and drafts folder is missingContact group sync is not supportedConnect to Internet: Not supported ove…

ovi map真是个悲剧

更新来更新去,道路名还是拼音,偏移1公里多 悲剧啊悲剧

终于能发彩信了

刚刚把application restore完了,然后新装了fmms 1.06。然后给然然发了一条彩信,她说她收到了,哈哈。正在装蒙恬手写输入法

手机刷pr1.2中

昨天把n900的pr1.2的rom下了,这次是rom和emmc一起刷。嗯,只要记住3点就行了1、刷rom的时候,末尾不要加-R2、刷完rom不要拔线,立即刷emmc,这次是加-R的。3、刷emmc之前先备份,备份到外部的microsd卡,或者备份到手机然后copy出来。目前比较顺利,我正在restore application,要装300多M的软件,下载好一阵呢

2010-05-23

想在freebsd下通过ntfs-3g mount root filesystem,但是发现这个不大可能。尽管fuse.ko是可以通过loader载入的,但是ntfs的支持都是用户态的,需要加载用户态的so,而此时/还没有挂载,连init都还没有启动呢,更不可能有fused了。然后就想,能不能先做一个很小的memory disk作为根,然后再把那个ntfs分区挂载到根。发现,freebsd本来的那个loader是支持从ufs读取文件作为根的。但是grub2貌似不能吧?一个好消息是,google出ssl版了。https://www.google.com 。 我测试了一下,很好用。不会被connection reset。我觉得这件事情的意义不止如此,它一定是找到了什么低成本的方式广泛的部署https。如果它愿意把这种方法公开,啊!大中华局域网内的人有福了。可惜的是,目前search result的cache还不能浏览。

install grub2 under cygwin

安装grub2今天终于摸索着在cygwin下给我的U盘装上grub2了。首先在cygwin把/boot/grub目录复制到U盘上。然后修改这个目录下的device.map。内容为(hd0) /dev/sda(hd1) /dev/sdb我以前就卡在这里了,不知道device.map怎么写。下面就是老套路。1、生core.imggrub-mkimage.exe -d . -o core.img biosdisk part_msdos ntfs2、安装/usr/sbin/grub-setup.exe -d . -m device.map -r (hd1,1) -v (hd1)因为U盘是第二块硬盘,所以这里是(hd1),然后它去device.map里找到/dev/sdb。orz...不知道cygwin怎么把/dev/sdb对应到U盘的。3、编辑grub.cfg (有没有都行)手动装freebsd从这里下载:ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/8.0-RELEASE/base/然后打开install.sh,把开头的几行关于userid是否等于0的检查删除。然后 export DESTDIR=/cygdrive/ibash install.sh同样的,把kernel装上。ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/8.0-RELEASE/kernel/嘎嘎

今天是个值得纪念的日子

公司的内部矛盾,闹的太甚,竟然闹到百度贴吧进而闹到新闻上去。在google/baidu上搜我们公司的名字,再加上“压榨”。竟然发现,人民网、凤凰网等很多大网站都有这篇稿子。从百度贴吧出现抱怨贴,到第一篇新闻稿出炉,不到3个小时。因为是发在游戏娱乐频道,所以很感叹这些娱记的速度和素质,在大致保持事实的文风下,末尾再加几句猜测和攻击。高啊!我是这个公司最最底层的员工,所以我也有同样的抱怨。借改革之名,玩数字游戏克扣薪酬以降低成本,开玩笑,他当着泱泱几千人都是白痴啊?傻愣愣的只知道干活不知道看工资单? 他知道这个公司有多大一堆人都是清华毕业的吗?奥赛拿国际金牌的人会看不懂工资单上的数字游戏?也不是在乎那点钱,只要项目好一点,年终奖多发一点点,都比他克扣的好几倍都多,可是,就是让所有人都不爽!破公司,工位比网吧还密,结果连个空调的都没有,连个电风扇都不给。中午穿着短袖就汗流浃背,害得我自己从家带了一个电风扇过去。这才5月份啊,我真不知道7、8月份怎么过。每天一抬头,就是正在建设的工地。只要开着窗子,3-4个小时,桌子上就铺了满满一层灰。总之就是越干越恶心,远远不如刚入公司的时候。

qq不能加好友的问题

最近我的QQ不能加好友了,总是说读取验证码失败,官网的问答中也没有给出一个正确的说法。后来我发现是因为%TEMP%目录的问题。我是这么执行QQ的:runas /profile /env /user:mynormaluser D:\qq\Bin\QQ.exe错就错在了多加了一个/env,然后导致把现在的用户的环境变量传给了runas,导致QQ读到的%TEMP%目录指向的是现在的用户的%TEMP%目录,没有写的权限,所以就拉取不到验证码,也就不能加好友或者删好友。

openjdk进maemo的repos了

其实n900用java不是什么难事儿,从sun的网站下jdk放进去即可,可能是因为这个不是随机器自带的,N900上我还没发现有任何java app。
如今jdk进repos了,但愿以后java程序越来越多,延续塞班的辉煌

usb networking

最近在公司用linux用的比较多。之前用win7的时候,都是用netsh wlan start hostednetwork的方式,自建一个hotspot给我的手机用。而在linux下我又不想装额外的驱动,导致手机没有wifi可连。
今天照http://wiki.maemo.org/N900\_USB\_networking这篇文章在ubuntu下把usb networking配置好了,用起来很方便,用ping测试,延迟只有0.3ms。一切都和以太网一样,MTU也是1500。

今天早上被恶心新闻恶心烂了

先是在sina科技转载的文章中看到说安腾服务器只有少量部署的是solaris,我压根没想明白,除了x86和sparc,solaris支持过别的平台吗?
接着又在cnbeta中看见一篇关于dns协议升级的文章,原文含混不清,说udp的dns响应包如果太大,会被tcp协议拆分,简直就跟蚂蚁吃多了会变成大象一样可笑。
然后又看见说某某男子在树下打电话被雷劈死 ,大家先不去声讨原文中对于打电话可能诱发雷劈的错误观点的(尽管记者没有明确这么说,但是闪烁其辞,极容易造成这样的误解),倒是说这新闻是外国的,北京没有999。我觉得,作为一个成年人,急救电话号码应该必须熟记吧?一无所知还自以为是。

groovy native launcher

http://docs.codehaus.org/display/GROOVY/Native+Launcher 这里讲了怎么把groovy作为native laucher,并提供编译好的groovy.exe和groovyw.exe下载。我采用了很简单的方法,就是把HKEY_CLASSES_ROOT\Groovy\shell\open\command 下面的默认值从"D:\Groovy\bin\groovy.exe" "%1" %* 改成 "D:\Groovy\bin\groovy.bat" "%1" %*。因为原来的默认值groovy.exe是根本不存在的。你说,这算groovy的一个bug吗?(我已更新到1.7.2)