All Stories
有个纠结了几个月的问题,同样的文件,在我的程序里打开后显示的换行符和其他程序显示的不一样!一直想不通其中的原因,总之我是没怀疑其他软件会出错,因为基本上所有其他的软件表现是一样的,只有我的程序跟它们不一样。
今天又纠结起来了,于是一狠心,准备全盘照抄CodeLite的源代码,用Beyond Compare合并了绝大部分代码,最后发现,问题仍然存在。于是我不再怀疑编辑核心的问题,准备从其他地方着手分析。比较有嫌疑的是文件读取的部分,我的做法是用Lua将整个文件使用*a参数全部读出,然后用ICU将其从系统默认编码转换成UTF-8,再将这UTF-8的字符串传给Scintilla显示。我猜测会不会这个转换编码的过程把换行符处理过了。于是再单独的Lua环境中测试了一下,发现是没有处理的,其实稍微想想就知道,这应该是不会变的。既然确认转换编码不会影响这个,那么我就再将焦点往前移,看看读出的文件的原始内容是什么。将读出的内容转换成16进制打出来,发现我的程序确实是按照原样显示的。但是Notepad++/CodeLite/Code::Blocks甚至VS都将一个\r\n处理成了\r\r\n,会多显示空行。这是让我有点迷惑的,为什么就只有我的程序是照文件的原样显示的?
最后还是没有得出确切的结论,据我的猜测,是在文件读取时的方式引起的区别,文本类型的方式在某种读取方式下会多插入换行符?这个可能是存在的,不过我觉得太无趣了,不玩了!
昨天在看QT的examples和demos的时候,猛然发现一组animation framework的示例,看了一下居然就是我一直在纠结在寻找的如何用QT做出那些酷炫界面的方法。话说其实之前也不时地翻一下QT的这些demo的,怎么就没发现呢!
看了一下程序的运行效果和代码,并配置着读了一篇animation framework的使用介绍,对如何使用QT做出那些动画效果有了一个简单的认识。今天跟@zhangh109讨论时了解到,苹果的系统使用Cocoa core animation functions来达到这种目的,而Android好像没有现成的,要开发人员自己实现。
到此为止,基本上解决了绝大部分的技术问题,剩下的主要是设计决策了。
昨天下午和晚上都在看代码,对QT的使用有了更多的了解,不过还缺少一本能跟上最近QT变化的比较系统的教材。QT在这几年变化比较大,而最近最流行的一本讲QT使用的书,是2006出的《C++.GUI.Programming.with.Qt4》,都整整过去4年了,QT都快出4.7了,这几年新加入QT的内容才是真正令人激动的。
一直有种想写个twitter客户端的冲动,不过一直没动手,因为手头正经事情还很多,还要留下不少时间去堕落。不过我想待现在手头这个东西完成后,就试着写写吧。昨天去折腾了一下QOAuth,结果它依赖QCA,而QCA又依赖OpenSSL,真是折磨人。
再花点时间研究一下用QT怎么做一些比较酷的界面效果,就可以动手啦!
有一做开源游戏的老外兄弟发邮件来说程序在点了try按钮后就崩溃鸟~我万般郁闷滴说,其实我以为不会有这么脆弱滴说,我还以为基本可用滴说,我现在比较失落滴说……
总之我没有充分的测试,这是事实。但我现在也没足够的条件啊,我猜测还是在用Crypto++进行RSA签名验证那段崩溃的,不过这也仅仅是猜测。虽然还存在着各种可能的原因,但基于这个猜测,我目前能做的其实不多。我要换掉Crypto++,这个库从一开始引入我就很不情愿,谁让那个libtomcrypt最初就没好好用成功呢。在看雪论坛上看到过有人说,要加大保险系数,自己写RSA算法实现是必须的,不过我不会啊!我最多可能再去网上找段现成的代码来,或者继续研究下libtomcrypt的使用。
自从那天去了徐家汇后,我就有种想买个组装机的冲动。那天问的说,用次点的集成显卡,2k就能搞定一台了。我想要台多核x64的,最好是4G内存,500G或1T硬盘,这样可以装个64位的Win7,还可以装些WinXP/2003什么的,用来做开发做测试的环境就差不多齐了。如果这样在3k以内可以搞定,就再花个4K多买个Mac Mini,就有了个Mac的开发环境了。比较经济的选择呢!
连续几天早上起来开机出现Fan error,我都是通过拍、摇等手段试图让风扇转动起来。虽然确实都能转动起来,但发现的声音却是很大。今天早上起来,终于再怎么摇怎么拍都不行了,问了一下小区门口的维修店,大概要200多,还要明天才能修,关键一点是还要我今天就把机器放店里。于是我想还是自己跑一趟徐家汇吧!
问了一下雯雯怎么坐地铁,然后大约1个小时后终于到了徐家汇,随便找了家柜台,说是只修不换,180,无又不了解市场行情,也不想怎么折腾,就修吧。
中间大半个小时出去逛了一下,徐家汇也没什么地方可以逛的,再联想起上次去不夜城,还领了张罚单回来。感觉还是比较喜欢华强北那种人挤人的状况,唉。
最近总是想念起在深圳的各种安逸和自由。上次跟阿菲打电话,她还说让我去深圳也行,我说回不去了,至少现在不会去,得在这边做出点样子出来,唉。
周六周日花了两天时间看完了《结界师》。一开始是在PPS看到的,看了一集,后来就不停地卡,于是去tudou网上看,看了5、6集,受不了那个糟糕的画质了,最后发现youku上的画质还不错。一共52集,不算短,但比起《海贼王》、《火影忍者》、《死神》这些来说已经是很短了。
总的说来,这个画风勉强在我可接受的范围内,但男主角的成长实在让我有点不能忍受,至少前30集都没看到无论是从技能还是性格上有所进步。我不喜欢只会大喊大叫的那种男主角。情节上么也没什么突出的地方,但结局还比较喜庆。
其中有个叫神户百合奈的小姑娘,感觉挺像@ainesmile在推特上表现出来的形象,哈哈。
昨天晚上从微软官网下载了VS2010,今天上午装了后,试着把原本用VS2008编译的各个第三方库都用VS2010编译了一遍。用VS2010替换VS2008比较明显的一点好处是,没有Side by Side的困扰了,CRT库只要把两个DLL文件直接放到系统目录中就可以了。也就是说,开发好的应用程序部署要轻便了一点,不用带个VC Redist包出去了。在这一步中,不得不多谢bjam这个工具,对于换用不同的编译器的需求,适应得绰绰有余。
晚上又尝试把所有插件扩展脚本中用到Xerces的地方都用RapidXML了,这样又可以去掉一个DLL了,想当初一个用MinGW编译的Xerces的DLL就有4MB多,然后是一个Lua的扩展库,几百KB,前些天在宿主程序中去掉了Xerces的依赖后,换用VC编译的DLL,体积减小到1.8MB,而Lua的扩展库也减少到40KB。到了今天,可以把这个1.8MB的DLL也省了。
想想还是比较舒服的,试着打了个安装包,原来是15MB左右的,现在是10MB左右,少了约1/3。
其实我一直不是很确认小妞生日是哪天,只模糊的知道是5月底的某一天。本来翻出以前那个已经掉了6个键的Nokia N73,看到屏幕上赫然列出“小妞生日”字样,但我仍是不确认。前些天还试图打电话问小思宇的,不过她居然不接我电话,不知道是确实没接到,还是因为看到陌生号码故意不接。直到刚才,我跑到QQ空间上去看了一下,发现今天确实是小妞的生日。
于是给小妞打电话问候了一下,她正跟俊英在百草园吃蛋糕。上次打电话,是两周前了吧,我很失落,很无助,想寻安慰,然后小妞耐心地开解了我很久,听到她在电话那头打哈欠。
小妞生日快乐!