All Stories

高质量就是装B吗

  google上有个讨论组,一直标榜自己高质量,可是为什么我订阅了这么些日子后,越来越感觉到这些个主题不知所云了,难道所谓的高质量在我看来就是装B的意思?  我狂烈地晕啊!

《Exceptional C++》看得郁闷

  这两天都是干点儿活,看两眼《Exceptional C++》,看得我异常郁闷!这是一本老书,讲的内容也都是我没关注过的,可能也正是这个原因,使得我看起来非常吃力,老是觉得不知所云,偶尔看到一些似乎有点儿明白的“原则”之类的tips,也是翻过一页立马就忘了,而更多的时候是不知道为什么要这样。  极度郁闷啊!

多线程下载有问题

  给升级程序加了多线程http下载后让同事试用,结果今天他打来电话报怨下载速度太慢了,甚至比以前单线程的时候还慢。用netmeeting看了一下,发现本来预计有5个线程同时下载的,现在居然是5个线程一个接一个地进行下载,这样明天会比单线程的要慢了,因为多了几次等待网络连接的时间,而且事实上自从改用多线程后才明显感觉到有时候一个网络连接的等待是好久,可能是十几秒。我在虚拟机里又试用了一下,还是5个线程并行的,那就郁闷了!  后来又想到一些可以改进的地方,但没动手,只是记到todo list里了。  唉,钱好少!

线程阻塞在连接操作

  今天终于把升级程序的http下载部分改成多线程下载了,用的WinINet用5个线程同时下载,发现总是会有1到2个线程会阻塞在连接操作上,这是花费时间最多的地方!暂没想到好的办法,先这样了,对于大文件来说,确实能提升不少下载性能。

再一次无奈的叹息

  我的自负掩盖不了内心深处的自卑,灿烂的阳光抵挡不住浑身的寒冷。  难道我真的错了?我不知道,我更不愿意承认。  我要继续坚持自己的信念,即使满身伤痕,也要蹒跚着勇往直前!

挨批评了

  唉!!!

原来我的id没有了

  今天用Foxmail收邮件的时候,才稍微留意了一下出错信息,原来我在学校bbs上的id已经没了,消失了,生命值减到0了!  上去试了一下小丫头的id,也没有了,离开学校的日子,终于超过1年没有记得要登录bbs。  用guest登录上去看了看,以前经常驻留的几个版面也找不到了,像People,留下回忆都没有!  翻出Foxmail中保存的一些bbs上的聊天记录,还有邮件,想起在学校或开心或悲伤或迷茫或骄傲的时光。  一站的终结,逼近着新的开始。

内嵌wxLua

  之前因为使用wxLua,发现如果宿主exe使用的wxWidgets动态链接库如果和wxLua使用的一样,则不能在Lua中正常加载wxLua。虽然可以通过使用不同的wxWidgets动态链接库文件来规避这个问题,但实在是很丑陋的一件事情。  今天想起来,能不能把wxLua内嵌到宿主exe中呢,这样就都使用同一份wxWidgets了。于是看了一下wxLua的代码,代码文件组织是很清晰的,很快就明白了各个文件夹下的文件是什么作用的。使用wxLua的一种方案是,它最后需要编译生成一个叫wx.dll的文件,Lua中可以直接require这个wx模块来使用。打开它的VC工程来看,也就是那么几个文件编译出来的,直接照它的样子把这些需要的文件添加我的工程中,然后编译,看情况需要修改的有几处:因为我的工程用了WXUSINGDLL宏,但这个宏会让wxLua中的一些类变成dll linkage的,所以要把这几处编译开关修改一下;有一个for wxLua的wxApp派生类,删掉;还有一处最主要的,luaopen_wx函数,有一个wxLuaState的对象,要改成直接在创建对象时把lua_State指针传过去,其他有些分析命令行参数之类的代码也是多余的可以删掉。另外还有个问题,在VC9里cell控件的代码中有一个GetRef方法,链接时报错,很诡异,搞不明白,暂时屏蔽掉那行代码。  经过这么一番折腾,终于可以直接在exe中用内嵌的Lua解释器使用wxLua了!

超级牛掰的升级程序即将现世

  发现在有很多事可以做,发现自己一件都不想做,哈哈!  今天老大跟我说,是不是忘了件事,那个gem升级也得做进升级程序中去。我说那不是说另外还要用wxRuby做个程序的嘛。老大说,这种建功立业的好机会,怎么可以让。我狂晕!  找原来开发这个功能的同事咨询了一下基本原理,发现简单得令人发指,当然这种实现方案在我看来也是丑陋得一塌糊涂。看了一下他的代码,发现原来真的是那么一回事,基本的代码结构和思路都是很清晰的,除了有一些废旧的注释和代码。  我开始头痛界面的问题。原来的实现使用了XTP的ReportControl,我想这么一个原本应该尽量精简轻巧的升级程序现在已经被我弄得渐渐肥大起来了,再加个XTP就太恶心啦!而且另外一个问题也已经浮现,越来越多的命令行参数,已经让眼下那种依次比较字符串的方式不再继续适用,引入boost::program_options也势在必行,天哪!