Archive for February, 2010
黑莓8100刷机失败修复记录
Posted by twcai in My BlackBerry on February 28, 2010
前天买了个HTC HERO,回到寝室把原来81上的联系人同步到新手机上去。同步完,DM ( BlackBerry Desktop Manager ) 提醒我81的ROM有可用更新,忘记当时已经断电熄灯30分钟,我直接选择了更新81的ROM。因为这个本本的电池也陪我度过3年了,又过了10分钟以后他就可怜巴巴的请我备份手头的工作……这下囧了,81还没同步完,他就自动待机了。
然后我的小黑眨巴着他的指示灯,就这么瘫痪了。
在网上找到一个英文版的小黑系统重装指南,照着攻略重新刷了一遍,果然小黑起死回生。
把文章主要内容翻译一下,供小黑玩家们参考:系统无法识别黑莓手机连接情况下重装黑莓系统
1. 安装黑莓桌面管理软件:BlackBerry Desktop Manager。
2. 安装一个黑莓ROM:黑莓 BlackBerry 8100 ROM 4.5.0.174 东亚版。
3. 把电池从手机中取出。
4. 打开DM,把手机连接到电脑上。
5. 打开DM界面上的”选项” -> “连接设置”。
6. 选择USB PIN,因为手机中没有电池这个可能需要几分钟的时间。一些比较少见的情况你可能需要先检测设备。
7. 选择”安装程序”图标。
8. 选择你要安装的程序组件(个人在语言支持只选了英文,节省空间么,其他组件全部选上)。
9. 一直下一步知道看到”完成”这个按钮。
10. 这一步非常重要,不要点击”完成”按钮,选择”高级”按钮(我没找到-_-可能跟DM版本有关)。
11. 确定所有的选项都被选上(同样被我忽略)。
12. 一直到他问你是否需要使用自动备份与还原P,选择不自动备份我的ROM(这个选项原文为:DO NOT AUTOMATICALLY BACK UP MY HANDHELD)。
13. 当安装系统的任务开始进行时,得把电池插回手机,小心不要影响到传输。一些比较少见的情况下,你可能需要一直等到他说连接需要重新插入电池(我在第一次传输途中看到手机屏幕上出现电池图标,不知道该干嘛,这应该就是需要插入电池的指示)。
刚开始可能会失败,但不要怕,再试几次。
如果你第三次还是失败了(老外也讲究事不过三?),下载黑莓JDE(原文为BlackBerry java developers kit),然后安装。安装好后找到javaloader.exe然后移动到C盘根目录。
打开windows命令行,执行命令”c:\javaloader -usb wipe”,把黑莓的ROM给擦掉。
*我(指老外)把第13步高亮的原因是这个真的非常重要,如果你的手机没有装入电池,DM就不会重新初始化你的设备。
翻译到此为止,正常情况下,重新初始化设备后,手机一开始会出现507错误,然后显示和电脑通讯的标识,接下来你需要做的就是坐等小黑恢复正常。
Windows多线程笔记
最近手头上的东西终于有了一点小突破,这段时间代码上遇到一些问题,有些困了我蛮久。因为之前根本没接触过Windows下面的SDK,Windows核心编程和MSDN都翻了不少,也没少向集训队的学长请教。把这段时间遇到的几个问题整理下,如果能帮到别人就更好了。
子进程的标准输入输出重定向问题:
没有仔细看MSDN的例子和注释,代码写好后,子进程的标准输入输出还是在父进程的命令行下进行。
主要原因是 CreateProcess 之前, STARTUPINFO 这个结构不仅仅是指定一下hStdInput, hStdOutput这几个句柄就行了,dwFlags 这个变量需要设置为 STARTF_USESTDHANDLES 才能使以上几个句柄有效。CreateProcess 时,bInheritHandles 需要设置为 TRUE。不仅如此,还有一个容易遗忘的细节,就是 CreateFile 时的 LPSECURITY_ATTRIBUTES 也需要设置为TRUE(同样,CreatePipe 的 SECURITY_ATTRIBUTES 结构的 bInheritHandle 也要设置为TRUE)。
ReadFile堵塞问题:
如果父进程和子进程通过匿名管道来通信,且把子进程的标准输入输出重定向到了管道,那么会碰到下面这个问题。当子进程的输出被存在缓冲区内,没有刷新的话,管道中就一直没有数据,这时候如果用ReadFile读取管道中的数据则ReadFile被堵塞,于是父进程也被堵塞。目前我还没找到在不修改子进程代码的情况下解决这个问题的办法。只能用不使用缓冲区的输出函数来解决。
但是如果子进程确实没有输出,那么还是有办法防止父进程被堵塞的,就是事先用 GetFileSize 来检查管道文件容量是否为0。还有一个办法是使用异步I/O来完成通信。
ReadFile读取控制:
如果父进程在一个工作流程中,只需要从子进程发回的信息中读取一行的话,则只让ReadFile读取一个字符的数据,直到碰到换行符为止,Windows下文件的换行符为”\r\n”。
预留地
Posted by twcai in Some parts on February 17, 2010
2.16
今晚不想写代码了
想到明天有点小激动
我觉得这段时间的生活差不多应该写个总结了
留块预留地,备明天更新
2.17
代码还是要写,该看的书还是得看
我又向自己证明了YY和现实的差距
总结是需要的,拖个几天是必然的
预留地已用,栽上一颗杯具
p.s. 今天看了全城热恋,故事蛮温馨,学友叔跟刘若英的爱情很欢乐,还是对得起这个票价的。
DropBox
Posted by twcai in Geek Stuff on February 7, 2010

DropBox是一个基于云端的跨平台“同步、存储、分享”的服务,大致内容就是提供一定容量的免费空间(2G-5G+),可以和用户本地的文件夹同步,并提供外链服务。
优点:
1.跨平台:支持Windows、Linux、Mac、iPhone
2.容量:开通2G(通过邀请,最大可达到5G)
3.共享功能:可共享给指定用户,支持外链。
4.同步功能:具体见月光博客的对比,便捷,更智能,带来最实际的好处就是快。
5.强大备份功能:同步文件夹内的每次改变都会被DropBox保存,DropBox官网的Tour把这比喻成时间机器,还放了张很有爱的Back to The Future里的时光车。
如果你点这个链接注册并下载安装DropBox,那么你和我都能增加额外的250M空间。
广告打完了,我来说点闲话:这个服务用起来确实挺快的,不过我文档有Google Docs,图片有Flickr,而且相信Google Drive也就在不久的将来;我现在也只是出于尝尝鲜的心理,而且这个东东确实挺方便的啦,可以随便放点小程序和配置文件什么的。
谁来帮我想个有爱的标题
晚上某人在聊天时公然指责我“戒心太重“,我在蒙受莫须有罪名之余只好自曝高中糗事一则以洗清嫌疑。
话说那时已经是高三了,整个人都被高考的压力弄得神经兮兮。某天英语课,英语老师(80后美女)擦黑板时不小心把板擦掉到地上,遂弯下腰捡。我被板擦落地之声惊吓,猛地脱口而出:“有凶兆!” =_=
接着是全班的缓不过神 & 我在嘴闭上之前就开始后悔 & 英语老师直起腰后稍微有点脸红。结局是全班的爆笑,而我直接趴在桌子上不敢抬头,英语老师还在故作镇定……
某人自称看到我自曝糗事后已内牛满面。
第一次在自己博客上讲冷笑话,其实我也不想被人说古板的。不过糗事不就是要发生在长着一张古板脸孔的人身上才好玩么?真是矛盾啊。









