All Stories

学习一下设计模式

  今天跟同事谈起我看过的C++方面的书,说到《C++设计新思维》,我说只看过前面7章,后面的几章因为涉及到设计模式了,我又不懂设计模式,就看不下去了。同事说,设计模式一定要懂啊,对写程序很有用,设计好了,再怎么绕也不会出错。想想也算是有点道理吧,回到家,看到沉睡多时的GoF《设计模式》一书,不禁有点感慨,想当年在学校,确实也是精力旺盛,还特地从图书馆借出来复印了整本书,不过当时大概也是水平不够,大部分内容基本上看不懂,根本不能理解作者的意图。后来进了公司,从另一位同事那买了本二手的,书保养得很好,大概他也没怎么看过吧,毕竟要能从头到尾把23种设计模式都玩熟了,对人本身的基础要求就比较高,一般要么是程序设计狂热爱好者,要么是肩负架构设计重任的架构师,其他角色的人,实在提不起多少信心吧,呵呵。  这次下决心了,在6月底之前,至少要把书完整看完一遍,对23种模式有个大概的了解。  白天在公司实在无所事事啊,又发呆了一天,虚度光阴啊!把Boost的帮助文档打包成了一个CHM文件,也挺无聊的。我现在对技术方面,只对C++还残留着些许的兴趣,而且主要是泛型编程方面。两大宝藏STL和Boost是必须要研究的东西,所谓不光是技术的宝藏,更是思想的宝藏,呵呵。回家看了看Boost的maillist,有人决心要做一个日志库,这让我觉得有点高兴。我就很需要一个好用的日志库,以前看过ACE里的,觉得很好,不过一来ACE这个库太大了,二来不知道为什么我在和VCL混用的时候,编译就会出错,后来就再也没碰过了。曾经也冒出过“自己写一个”的想法,不过实在不是很实际啊,看了maillist上他们的讨论,要做好一个日志库真的有很多超出预计的困难,就等他们了,嘿嘿。  另外还有件事,今天才发现,newsgroup上很多人都在学习C++下一个标准中的特性了,现在大概只有gcc 4.x的某些alpha版本能支持一些特性,但人家确实也写出了那样的代码了,tr1的内容赫然列在maillist上。于是又想当一回追星族,翻了几大C++网站,包括Bjarne的网站和C++标准委员会的网站,搜罗了一堆建议、草稿,准备好好研究一下。这样想想,我们国内的技术水平大概永远也赶不上国外吧,那样的大师怎么也不会出在中国大陆吧,唉。

LLYF Articles W.I.P #1

  突然决定做这个东东,主要功能是用来收集各种零散的文字,比如从网页上看到的有价值的文字片段等。不过让我决心做这东东的,却不是这个原因,而是想通过这玩意,能自动把分散在众多文件夹中的boost帮助文档打包成有序的,至少是能按照物理文件存放的分级打包成chm格式。  先要写一个能递归查找文件的功能,再按这种目录结构写成HtmlHelp的index文件。还要注意能剔除掉空的文件夹。

GFW是越来越过分

  所谓道高一尺,魔高一丈。虽然blogspot.com不停地被GFW封掉,但当时还有pkblogs.com和inblogs.net来作转向。可是现在,连它们两个也惨遭毒手了,GFW真是越来越过分了。不过它没有过分到像几年前那样,把google也封掉,所以为了突破GFW的封锁,在 google上搜了一遍,还真找到一些方法。  这些方法的只限于如何访问blogspot.com,因为实际上,后台blogger.com好像一直没被限制。其实比较好的方法是,自己弄个域名来转向。还有个方法是,用BloggerSpaces的服务。不过有更简单好用的方法。一个是利用 google的translate服务,先翻成繁体中文,再翻成简体中文,损失不是很大,只是要用一个长长的URL,以及对用非中文表示的文字,中间的空格都会被删掉,影响原意,还有个缺点是,当鼠标光标移动到文字上方时,会自己选定一段文字,弹出一个消息框来,比较烦人。再有一个方法,就是改浏览器设置。先把这段代码保存到文件(假设为c:\proxy.pac): function FindProxyForURL(url,host) {   if(dnsDomainIs(host, ".blogspot.com")) {     return "PROXY 72.14.219.190:80";   }}  以Firefox为例,打开Firefox,依次点击Tools->Options->Advanced->Network- > Settings...->选中Automatic proxy configuration URL,在下面填写:file:///C:/proxy.pac。这要,就可以直接用missdeer.blogspot.com来访问啦。如果是IE,也是类似,Tools -> Internet Options -> Connections -> LAN settings -> Use automatic configuration script, 再指向文件,要填成file:///C:\proxy.pac。  唉,不过这样的方法都只有我自己知道了,真是悲哀啊,只能自娱自乐了。...

这里真的成了写日记的地方了

  用missdeer.blogspot.com这个域名访问不了这里好多天了,然后改成用pkblogs.com,这样坚持了一段时间,终于也不行了,换用inblogs.net,最后也不行了。呵呵,算了,反正本来就没什么人看,就当是写日记的地方好了,自己写了自己看,呵呵。  小妞要在Excel里计算一个东西,我不知道有没有方便的方法,反正用VBA写个宏是可以的,不过还是花了我一点时间。  唉,不能太堕落啊。

我的blog近3年

  早上虽然醒过来了几次,但还是坚持睡到了11点半才起来,这对于我来说,从工作以来是很少见的,而且居然做了个美梦。经常有人说,梦里发生的事和现实中的正好相反,仔细想想,其实好像没什么道理,倒是这样被说了后,有心理暗示罢了。  也不吃中午饭,又想起前些天在玩TeX,下午就把CSDN上的Blog的内容全用LaTeX做成了PDF格式,虽然很多想要的功能没有找到实现方法,但也已经很有趣很好玩了。现在才知道怎么在CCT的环境下做书签,先要使用hyperref宏包,加几个选项后,只能用dvipdfm来转换,而且开始先得用latex编译一把,再用gbk2uni转换一把,再用latex编译一把,最后用dvipdfm来转换成PDF文件,这样就可以做出中文的书签了。  再来说csdn上的blog,那是我第2个blog,第1个是放在blogdriver上的,因为当时csdn上好像还没有,而看到有个当时在csdn社区很有点名气的gigix在blogdriver上建了blog,我也就去建了个,写过十几二十来篇的样子吧,开始出现了一次问题,打不开我的页面,跟网站维护人员反映了一下后就弄好了。过了些日子,又打不开了,这次再给他们反馈,他们却没像第一次那样马上弄好,而是拖了好多好多天,也不知道是什么时候弄好的,反正没等它恢复,我决定把blog迁移到csdn上,因为当时对csdn还是很抱有好感的。没想到csdn的blog系统太太太不稳定了,我写了100多篇后,持续了两年,主要是在学校期间使用,工作后,也用了快半年,实在忍受不了了,刚好遇到这个blogger.com被解封。blogger.com上的空间是早就开了的,只是当时只觉得老是打不开,还不知道有GFW这回事,所以一直用csdn的,而这里刚好情形反过来了,当然也是考察了一些其它的BSP的,比如MSN的,Blogsome的,国内的ChinaUnix的,最后还是决定放这里了。所以正式点的说法,这是我的第3个blog,虽然也遇到了再次被GFW,但只要还能通过某些不正当手段访问或发文,我是不会搬了。  把csdn上的blog内容copy下来,也当是个纪念吧!只是blogdriver好像访问不了了。

参加原来的测试组活动去了

  转了项目部,还以为今天要去爬梧桐山的,结果提前决定不去了,因为觉得天气不好,所以很快就决定去参加原来的测试组活动。活动内容还是很简单,就是吃饭和K歌。这次活动的地点在南山,中午吃了顿海鲜,下午去海上明珠K歌,这是第二次去那里,第一次是前年十一的时候,跟她们三个,还有另外三个男的,其中一个现在成了小妞的男朋友了。回想当时还真是幼稚,甚至想以后再也不跟她们一起玩了,呵呵。这次从1点半一直K到5点半,乱吼了一气。疯丫头没来,这个家伙不知道昨晚去哪里鬼混了,居然到今天下午1点半的时候还在睡。  唉,也许以后就不会这样跟他们这样出来活动了吧,最多可能私下里还会跟其中几个人一起玩一下。

新岗位一点兴趣都没有

  真郁闷,新老大喜欢Web、脚本之类的东西,而我对这些基本一点兴趣都没有,无聊死了。他宁可去申请新的服务器,去装一堆D版的各种服务器软件,然后叫我这样一个不但没有一点经验而且没有一点兴趣的人去搞这玩意儿。组里的其它人大致分成两拨,一拨写Ruby脚本,另一拨做相关的辅助工具,唉,不爽不爽不爽……又无聊了一天啊,而且这边居然都不填工作日志,甚至好像连PBC计划都没有?明天还是带些相关的资料去看看吧,也当是打发一下时间。  昨天晚上一边看《Hunter X Hunter》,一边把CodeGear Delphi 2007 for Win32装上了,其实这东西我也只是图个新鲜,装上了根本不会去用它,就像当年装Delphi 7/8/2005一样,大概所有用Delphi的次数加起来都不会超过5次吧!  Google也出了个拼音输入法,不过我觉得一点都不好用。大概是当年拼音加加先入为主的缘故吧,我总觉得,一个输入法,无论是拼音还是五笔,要是连加加系列有的特性它都没完全模仿到的话,它就不是一个好的输入法,我就不会去用它。所以无论它的什么整句输入准确率达到多高,只要不是100%,它连候选窗口弹出的速度都这么慢,它连左右Shift选第二三个候选字的功能都没有,干吗要去用它。所以我至今都只能用着五笔加加的衍生版,所以对于拼音输入法,我只会考虑安装输入习惯像拼音加加那样的紫光或sogou,呼呼。  唉,我的占有欲太强了,这是不对的。我似乎只喜欢享受那个过程,到快要有结果时,却退却了,不愿意了,然后一个人在黑的夜里独自舔着伤口。

小丫头被我弄哭了

  有时候不禁要感叹,男人和女人对于同样的事情,平常的事情,怎么会产生那么大的意见分歧。下午的时候,小丫头给我发邮件,说ClearCase的命令不知道怎么用,我看了一下,觉得这些命令望文生意都能猜出大概的作用来,于是很直接地说,我觉得是因为你懒。没想到小丫头火冒三丈,说再也不理我了,还说为了这句话哭了。把我郁闷坏了,咋就为这么句话搞得这么严重呢。以前怎么说她,她都是不会生气的呀,都是懒洋洋或乐呵呵的样子,今天怎么就会哭了。心里必然不好受,坐在那里又觉得度日如年,于是只好出去逛一圈。回来还是郁闷,看看时间,还没过多久啊。于是试探性地又发了封邮件给她,语气自然是很诚恳的。还好看到她的邮件中说话已经略带娇嗔了,才舒了口气。呵呵,我竟然这样把小丫头弄哭了。  说实话,我当时还真的很怕她真的再也不理我了,我甚至把我能想到的最坏的结果的情景在脑海中都演了一遍,不过好在小丫头的本性是个温柔又随和的人。  晚上回到家,小丫头还在公司,于是打电话给她,一直打了一个半小时。从大年三十那天以来,我们一直没通过电话,因为在公司里可以用notes,同时在外面可以发短信。聊了很多,小丫头在那里不知道受了多少委屈,唉,可怜的孩子。  今天终于换了项目部了,不过似乎接下来的事我会做得比较郁闷哦!

Ebookshelf W.I.P #11

  除了界面不好看之外,功能倒是绝大部分都完成了。先是把virtual listview多选不准确的问题解决了,用了一种很土的方法,遍历每一个记录,看是否被选中。把指定文件的打开方式部分也稍微修改了一下,先主动创建进程,如果不成功,再用ShellExecute指定程序打开或用ShellExecute让Windows来决定用什么打开。还在状态栏里加了个进度条,在导出列表的时候,如果记录比较多,就可能会花比较长的时候,如果中间没有什么提示还真会让人误解,所以这时候用进度条就最合适了。顺便发现了几个小错误。另外还可能会有问题的地方是,在TreeView中填入的文字,在用SQL语句写入Access时,可能会有单引号的问题。这也是个挺让我觉得奇怪的事情,为什么SQL语句中不能用单引号,写两个单引号就没有不会报错了,但写入的就是两个单引号了,这样读出来的时候还要自己在处理一遍,把两个单引号的地方改成一个单引号显示出来。  其余的顶多是加个Shell右键菜单项吧,这个也可考虑用比较简单的方法实现,给*.*类型的文件加个项,打开的时候因为会把路径传进来,所以就可以处理了。  另外就是,做个像CyberArticle样子能收集网页上文字的程序,本来这个功能想做在Ebookshelf里的,不过感觉两个东西的功能差别还是比较大的,合在一起感觉比较怪。所以还是单独拿出来好了,关键点是要能至少支持IE6/7和Firefox 1.5/2.0。