我向来遵纪守法,既然在这里写Blog,那按规定就是要进行非营利性ICP备案了,因为用的Linux+fireFox,所以ICP备案的网站还是给我带来了不少的麻烦,不过总算是提交了申请,在这里踩个脚印,看看审批需要多久。
CSDN流金岁月
CSDN七周岁了,七年是一个很短的时间,但是在IT的领域似乎又是一个漫长的岁月,回想七年前的往事,觉得是如此的陌生却又有一丝亲切。
认识CSDN应该是一个偶然,那时(具体什么时候记不得了)还是在玩VB的时候,一开始总是苦于找不到参考资料,后来听人说有个叫“MSDN” 的东东里面有详细的参考资料,就去寻找D版的光盘,找到一套两张名为“程序员大本营”的光盘,里面有MSDN,还有百联美达美出的“程序员大本营”,内容 好像就是最早CSDN上的文档和资料。
什么时候注册的CSDN帐号实在是不记得了,还好CSDN论坛的个人信息中还包含这项,一查是2000年 5月20日,大概记得是在学校当时唯一一个可以上网的机房在一台486的电脑上注册的。我自己的电脑中保留的资料中最早的有关CSDN的邮件是2000年 5月26日的。内容如下:
lifanxi您好: 关于:如何在VC++中建立如同VB中的控件数组? korn提供了如下回答, 请您查阅和评估: --------------------------------------------------------------------------- 经过长时间的实践:赫赫,终于知道了 如果是要静态数组的话(即个数事先确定的话还是较简单的): 1.选择Menu--View菜单项底下的resource symbols 中声明一些连续的资源ID. 比如:IDMYBUTTON VALUE 102 .....后面的一些Value值空着就可以了. 2.在控件创建时,使用上面的资源ID就可以乐! 在.H文件中定义控件数组: CButton * m_pButton[4]; 在.CPP文件中(一般是在比如Dialog 的InitDialog()函数中实现): for(inti=0;i<4;i++) { m_pButton[i]=new CButton; m_pButton[i]->Create(_T("HeHe"),WS_CHILD and WS_VISVIBLE, CRect(0,0,100,24),NULL,this,IDMYBUTTON+i); } 3. 动态生成控件以后,肯定是要完成一定的功能了,你手工加上消息映射,找到 afg_msg 你的消息函数 my(); declare_message_map() // (*.h 文件中) begin_message_map() ON_CONTROL_RANGE(BN_CKLICKED,IDMYBUTTON,IDMYBUTTON+4,my) ....... end_message_map() //( *.cpp文件中) 4.然后就是编写你的my()函数了.. 赫赫... --------------------------------------------------------------------------- 如果这个回复已经解决了您的问题,请到论坛给分给回答您问题的用户。 目前您的专家分数:0、参与分数:131、可用分数:440。欢迎经常光顾,争取榜上留名。 问题:http://www.csdn.net/expert/TopicView.asp?id=9154 中国软件开发网络: http://www.csdn.net/ 中国软件开发网络专家门诊: http://www.csdn.net/expert/
这个应该是我在CSDN专家门诊上问的第一个问题。那时是我在经历从VB向VC过度的最痛苦的时候(在瞎摸索,还没找到入门的道路),CSDN 网友热情回复让我觉得非常的感激,不过也很郁闷,这么专业的回复对于那时的我来说是一头雾水,完全看不懂,这也激发了我进一步学习的热情。
2001年7月,第一次有机会不是以按时计费拨号上网的方式来访问CSDN,所以第一次很积极的在CSDN上看贴回贴,那时主要看的版块应该是ASP和 VB和VC的版块。估计第一次拿专家分应该也是在那个时候。我的邮件中可以查到的拿专家分的记录是2001年12月3日的事情。
lifanxi您好: 关于问题:请问vs7的winforms怎样使用控件数组。, 您的解答获得提问人的好评,他已经将分数给你了。 本次得分:2(专家分) 您现在的专家分为:311 您现在的可用分为:5187 您现在的参与分为:2774 请继续努力,争取榜上留名。 问题链接:http://www.csdn.net/expert/TopicView.asp?id=368967 论坛地址:http://www.csdn.net/expert/ 中国软件网: http://www.csdn.net/
非常的巧合,在邮件中我能查到的我的第一个问题和我拿专家分的第一个问题都是有关“控件数组”的。只不过平台已经从VB6经过VC6一路变迁到VC#了,我自己也开始从单纯的提问人转变为可以回答一些简单问题的人了。
2001年也是第一次买正版的CSDN的东东,是程序员大本营2001的.NET增值版,58块钱。不过实话说我买它不是为了程序大本营,因为那里面的东西网上都能找到了,而是为了它附带的Visual Studio .NET 2001 Beta 2的光盘……
2002年开始是我自己猛学C++的时候,也是在CSDN开始C/C++生涯的时候,这种状态一直持续到2003年4、5月份。那时只要有机会 不限时上网(在家里和学校还是按时计费拨号上网的),就一定是打开CSDN的C/C++版块,狠狠的刷新页面抢最新的问题回答。那时也认识了不少CSDN 的网友,印象最深刻的是chinajiji(菜鸟叽叽),那时候我们一直在C/C++版块上抢分,有时甚至为了抢分都忽视了回答的质量,还好CSDN上热 心人是这么的多,一旦回答失误了,还是有很多的朋友可以及时指出并更正。这样不断交流的过程,也在无形中提高了自己的能力。
由于那时CSDN的计分制度是最高到达两星,三星及以上是不能简单通过挣专家分来达到的,所以当我挣满了两星级的专家分满足了自己虚荣心后,也 开始渐渐淡忘了CSDN专家门诊,当然这里面也还有另一个非常重要的原因是那段时间C/C++版块上有价值的问题和回答越来越少,取而代之的是很多人都深 恶痛绝的“作业贴”“考试贴”。
这里还有一个小插曲对我的影响也是很深刻的:在CSDN上得到一星后,我也对自己的C++开始有了更多的信心,于是也尝试着去国外的一些C++ 邮件列表回答问题,结果第一个问题就出师不利。有人问为什么float的0.001f用循环加上1000次输出不等于1,这个问题对于我来说太简单了,我 不假思索的回答到:因为float不是一种accurate的数据类型。然后做了一些简单的解释。很快就有别人回复到:”It pains me when people say this.” 并详细解释了为什么不能说float不是一种accruate的数据类型。因为float本身的运算是确定的,只是存在舍入的误差,所以不 能称它是一种不够accurate的类型,因为说不accurate给人的感觉就是float的运算结果是不确定的、不可预知的。经历这个事件,我更加意 识到CSDN的一星专家头衔,不是用来满足虚荣心的,它更多的也代表着一种责任,从那以后我在回答问题时也变得更加谨慎,也尽量让自己的回答能够既不引起 误解和困惑也足够严密。
第一次拿信誉分是2003-2-18,呵呵,不是我记性好,而是因为这个在CSDN论坛上还是有据可查。我信誉分多半也是在C/C++版块挣来的。
最早开始在CSDN文档中心写译技术文章是2002年2月16日,翻译了一篇Charles Petzold谈论.NET和C#的文章,那时正好是我刚刚看完Programming Windows不久又开始在接触.NET的时候,所以看到文档中心有这篇文章又正好有人希望看到中文版,我就把它翻译了。当然,在文档中心写文章也是抱有 “不纯动机”的。那时候只要在文档中心写译满6篇文章就可以申请成为专栏作家,可以拿免费的程序员杂志。写译文章实在都不是容易的事情,在我这个“动机” 还没有达到目的时,CSDN就开始提供Blog服务,并把逐步把文档中心和Blog进行了整合。不过在Blog上写写文章与大家分享心得却作为一个习惯保 留了下来。文章虽然写得很少,不过还是有两三篇文章上过CSDN首页,得出一个“经验”:只要写连载就很容易上首页,呵呵。不过实在是能力和精力都有限, 我的两个“连载”都是“蛇头无尾”(就是比“虎头蛇尾”还差),都在“连载”了三篇后就夭折了。
2003年以后,读研的生活一直是比较繁忙,技术学习的重点也发生过几次转变,CSDN就渐渐的淡忘了。只是把它作为一个Blog平台和IT新 闻平台来用,论坛就很少访问了。一直到前几天 Blog搬家来带的一点花絮才让我又一次记起了这个曾经给我很多的快乐很多帮助的地方。值此新年依始和CSDN七周年庆的时刻,写下这篇《CSDN流金岁月》与CSDN共勉,新的一年,祝愿CSDN有新的进步,也祝愿自己有更多的收获。
创意程序Pizza Party
上网看到一个通过命令行来订购比萨饼的程序,虽然程序简单,但却也很有意义,而且确实是创意无限。
这个程序的主页是http://www.beigerecords.com/cory/pizza_party/,上面有源程序下载一个DEMO视频。
其实想上去这个程序也没有什么神奇的地方,无非就是用程序给网站发送http请求,来模拟在Web上登陆网站并且订购Pizza的过程。
把源程序下载下来看了一下,果然不出所料,一个不到1000行的Perl脚本就完成了这样一个看来很神奇的工作。在我看来,虽然我不能在它所访问的网站上订购Pizza,但是这个程序还是挺有意义的。
这样一个短短的程序,完整了演示了如何使用Perl来完成一个http请求的发送和回应的接收和处理,由于涉及到网站的登陆,所以还包含了对 Cookie的处理。这个程序还包含了一个标准的Man Page,程序支持标准的*nix风格的长短参数处理。可以说,通过对这样一个小小程序的学习,就可以很快对使用Perl来进行简单的编程,尤其是Web 相关的编程有一个初步的认识。通过对这个小程序的简单修改,就可以把它用在很多不同的地方。对于初学者实在是一个不错的东东。
决定有时间来学习一下这个程序,这样以后写Blog的时候说不定就可以一键同时发布到自己的Blog和CSDN的Blog上了。不过CSDN Blog登录时需要输入图形验证码这点比较头疼,看来要全自动可能性是不大了……
一个偷来的创意
后天就是大年三十喽,传统意义上的新的一年就要来到了。也许八天长假也不是太长,不过我还是在这八天中计划好了一个不小的计划,那就是想去实现一个偷来的创意。
从去年开始工作以来一直希望能在工作中学到更多的知识,从团队中学到更多的经验,不过似乎这个愿望一直就没有真正的实现过,人人都在忙于完成的 自己工作而没有精力去学习和分享。不说别人,就算是我自己,也总是关注在如何去完成手头的工作而很大程度上忽略了学习。慢慢的,就觉得自己在工作中力不从 心了,出来混的,迟早是要还的。
去年年底公司的Trend Wish活动时,我的愿望”To have a better platform where Trenders can share their knowledge”被选为了最佳愿望之一。那时我也想过去建立怎么样的一个平台是一个最好的分享知识的平台。最先想到的是Wiki,所以就在自己机器上 用MediaWiki建了一个自己用的Wiki,但后来发现,作为一个协作平台Wiki是很好的,但作为知识分享平台,它存在不少的问题。最重要的一点就 是读者反馈非常的不直接,除了讨论页上可以讨论外,很难直接的知道自己分享的知识对别人是不是有用。作为读者,也难从大量的信息中找到对自己有用的信息。
最近,一个创意跃入我的脑海,我决定自己来搭建一个“我知道”的知识分享平台,这个创意其实是从豆瓣网 偷来了,在豆瓣上,大家可以分享“我看”(电影),“我听”(音乐),“我读”(书籍)等一系列的信息。我希望通过“我知道”这个平台,能让大家一起到上 面写下自己的知识,然后读者可以从中找到对自己有用的信息,并把这些信息进行记录,同时给发布者相应的反馈。虽然“我知道”这个平台与“百度知道”用了同 样的“知道”一词,不过我想他们是有明显的区别的,百度知道重在提问与回答,而“我知道”则是重在主动的知识共享。我也不知道是不是已经有成熟的平台可以 直接实现我这个创意,所以还是打算自己先按自己的想法实现一下试试效果。
由于自己对PHP的学习还是处在初级阶段,加上现有的条件也只有一个ASP空间,所以还是打算用非自由的ASP技术来实现我自己这个创意。如果 必要,可能会用到AJAX,不过这个技术我也还是不太了解,只是想尝试一下。风格上肯定会做得很朴素,就像豆瓣一样。功能上,也一定会是用迭代式的开发, 慢慢的去完善它。不过在设计上还是打算下一点功夫,争取可以有比较好的扩展性,也希望以后必要的时候可以移植成PHP重新实现一下。
添加了评论的功能
添加了评论的功能。目前这个功能是针对每个页面来做的,在哪个页面上发表的评论就会出现在哪个页面上。所以如果要对文章评论,请进入相应文章的页面,不然就都堆在首页上了,谢谢合作,呵呵:)