Philip's profileComPhilipPhotosBlogListsMore ![]() | Help |
ComPhilipThe More I Know Of You Is The More I Know I Love You. |
|||||||||||||||
|
July 01 离校悠昨天晚上从南校区回到宿舍后,望着空荡荡的宿舍,顿时有一种伤感。4年前,那时望着同样空荡荡的宿舍,心中充满了激情与梦想。4年之后,却是另一种感触。望着突然宽阔的桌面,回忆起无数个深夜编程的情境。仰视床头,无数次以疲倦的眼光望着天花板入睡。 昨晚从光明顶出来,望着许多大牌档,到处有胡老师、仰平和叶总的身影。 这次回校虽然有两天时间,但我没有来得及去回忆计应一起上课的课室,计协成员开会讨论的饭堂,学期末抱佛脚的图书馆…… 许多人用相机捕捉这一切,希望永远留住那曾经的一刻。 一年前,黄晨煜师姐说过:“在毕业典礼上,那种庄严的气氛让她激动得想哭。”。昨天下午,我终于感受到了同样的心情。当上台握住校长的手,把等待4年的心情告诉了他:“等了4年,终于见到你了。”校长握手得更紧,时间更长。我高兴地笑了…… June 28 《Exceptional C++》真的是一本好书昨晚终于看完了《More Exceptional C++》,之前也看完了它的姐妹篇《Exceptional C++》,不得不说,这是两本更深入了解C++的两本书。 也许对于有经验的C++程序员来说,书本里面提到的内容也许微不足道,甚至有点在吹毛求疵。它并没有教你高超编程技巧,也没有针对具体的C++应用技术进行探讨,所有的一切,都是围绕着C++语言和STL。 C++初学者也许不适合阅读这两本书,因为它是面向有经验的读者,里面有一大堆讨论Template和STL。如果你觉得MSDN关于STL的文档很恶心,我想你应该好好学习STL。现在我觉得STL设计得很优雅(当然,C++标准委会员那班人不是饭桶,全世界的C++程序人都在盯着他们),当我第一次接触STL时,对着MSDN文档大骂,所有的改观都是建立在STL的了解上。毫无疑问,《The C++ Programming Language(Special Edition)》是一本很好的书(可惜中文版被裘宗燕糟蹋了),作者很系统地从浅到深地讲解了C++各个特征。这本书毕竟是教程书,有许多东西它无法讲得很深入。 当你对C++有所了解后,特别是对Template和STL的架构和设计原则有所了解后,《Exceptional C++》应该是你在编程时的老师。阅读这两本书后,也许你不会再对资源管理感到恐惧,也许你会明白过去你对面向对象的了解仅仅是在表象上,也许…… June 05 让IE7Pro正常在IE8上工作自从使用了IE8之后,已经对它产生了依赖,增强的搜索功能和加速器等等功能使我转移到其他浏览器上就不习惯。网上充满着许多对FF、Chrome等等速度的宣传,速度不是我主要的追求,用户体验和安全也需要考虑。 不过IE8使用了新的进程模型,使得IE7Pro这款插件不大适应,功能打了折扣。而最令人失望的是,开发人员好像停止了对插件开发。不过今天在IE7Pro论坛上终于贴出了一个解决方案。 这个方案使得IE7Pro在IE8工作正常,牺牲的代码就是关闭IE8默认的进程模型,恢复为IE7的进程模型。 在默认设置中,IE8会开启两个iexplorer的进程,其中一个是作为故障恢复。偶尔会遇到一个情况,当你打开多个页面时,偶尔一个页面停止响应(网站开发人员的责任啊),你会不耐烦把它关闭。在IE7上,这个关闭可能是致命的,它可能导致IE7崩溃,于是你打开的所有页面都会消失。而IE8有了这个多余的进程,一个页面的崩溃不会影响到其他,而且IE8还会把崩溃的页面恢复。可以想象,IE8的稳定性比IE7大大提高了。 可IE7Pro不适应,当IE8第一次开启时,IE7Pro在第一个页面正常。不过打开第二个页面时,IE7Pro的功能就打了折扣啦。不过,可以通过修改注册表来使IE8使用IE7的进程模型。 打开注册表,在HKCU\Software\Microsoft\Internet Explorer\Main创建一个名为TabProcGrowth的DWORD项,设置为0或1,就恢复为IE7的进程模型,IE7Pro就工作正常了。 June 04 无奈使用代理从前天开始,MSN服务开始中断了。Live Mail无法连接服务器,我刚开始以为是服务器升级,于是把账号删了,然后重新添加。发现还是不行,看来网络有问题。于是打开www.live.com, www.bing.com, www.hotmail.com,都无法连接,看来是电信搞的鬼。 上百度新闻一查,果然是普遍问题,MSN和Live相关域名被屏蔽了。问了一下微软的朋友,他们说能连接得到。这个当然,他们通常使用日本网络出口,当然没问题。 没办法,只是用代理了,谁叫我的MSN订阅了几个邮件列表。下载了Tor,这款开源代理真是不错,只不过速度不敢恭维。 May 28 闲说过去的一个月,把全部心思全部放在C++上。原以为使用ATL开发ActiveX是一件很容易的事情,到头来还是得啃一本十几年前的书。不知不觉,感觉自己已经入门了,OLE 2规范,OC 96规范看完之后,对于OLE和ActiveX体系有了全方面的认识,做起项目来不再盲目。现在讨厌向导生成的多余代码,喜欢手写。少了向导,自己也只是走了几个弯路而已。这些弯路就是学费,而且永远不会再交同样的学费。 使用了一个多月的C++,突然想起国外一位大师曾经公开批评Java阻碍了学生对计算机的认识。我没用过Java,但对Java的批评同样也适用在.NET和C#身上。现在觉得这句话很有道理,不过也怪不了广大Java fans。他们面对着功能齐全的框架,一个容易上手的语言,他们并不会为编译链接感到痛苦,他们无需使用高超调试技术就能完成对程序的纠正(但我的导师对我说:通过编写测试性高的代码辅助以全面的单元测试,他不需要掌握高超的调试技能。相反,那些具备高超的调试技能的人往往不编写测试用例)。不过Java隐藏了太多的底层(它必须这么做,否则怎么宣传跨平台),程序员在它身上对底层概念的理解可能不会太深入。 不过自己在大一的时候很不喜欢C++,主要的原因就是编译和链接过程很痛苦。而当我遇到C#以及.NET后,C++是一个敬而远之的东西。不过两年之后,随着自己的知识逐渐提高,在.NET似乎找不到新鲜的东西。系统底层是一个向我招手的新大陆。但我再次去尝试接触它们时,发现自己很轻易地理解它们,而且它们也相当友善。编写C++时,编译和链接的错误提示不再是天书,而是友善的提示。Windows核心、ATL、WTL、OLE、ActiveX不再神秘,也许我正在enjoy。 突然想起昨天上午公司举行了一个培训,主要是讲解自主编写的JS框架的使用。然而,培训完了之后,我很失望,“框架”这个词带给我太多的暇想,不过现实并没有给我太多的兴奋。 说来惭愧,我只使用过AJAX.NET这个JS框架,Prototype也只是简单看了一下它的文档。我觉得一个JS框架具备两个方面:一方面扩展JS并简化一些常见的功能,如扩展Number对象,使它具备国际化和本地化功能,Array提供完善的列表功能,跨浏览器的事件模型,AJAX封装等等。另一方面,就是提高JS代码的可重用性。通过该框架,JS代码更模块化,可维护性。可惜的是,展示在我面前的一个个demo,我并没有看到什么亮点。 他鼓吹说通过该框架,可以通过CSS选择器来选择页面的元素。这是一个亮点,它甚至支持IE不支持的CSS选择器,如属性选择器。不过我担心它的性能,很明显,对CSS选择器的解析是在脚本代码级上的,它的效率有多快呢?不过会上鼓吹的是开发效率而不是运行效率。是的,通过它,你可以少敲一些代码。但我想,也许调试是占用你最多时间的,多敲几行代码也许并不能把开发效率提高多少。在整个框架的功能列表中,我好像没有留意到它对调试的支持。 会上我提问了许多问题,如一些函数在使用上会不会使人疑惑。但我说自己用JS编写类的时候,他跟我说JS没有类这个概念,JS的所有东西都是对象。我无语了,没错JS并没有类的概念,但并不能说它不具备OOP。C是面向过程,但你可以编写出面向对象的代码,封装,继承,多态在C上也能体现。业界的人都知道,JS中的原型模式是实现OOP的关键特性。在封装上通过闭包这种浪费资源的方式,继承上你需要编写一些代码去除对象原型的冗余。在AJAX.NET,我没有怀疑过JS的OOP能力,很庆幸的是,AJAX.NET并没有把JS弄得面目全非。 经过几次的意见提出,我知道自己的意见不会被采纳,能够做的就是使用并适应这个框架,因此我也保持沉默。缺少OOP,这个框架无非就是封装函数的集合,并没有其他特别的东西。我担心,如果未来我需要编写JS,已经习惯OOP的我能接纳和习惯这个框架吗? |
|
||||||||||||||
|
|