ghs.google.com四个IP地址终于全部挂了

Posted by & filed under Excellence Article, Study & Reading.

我在前面文章中提到的ghs.google.com被封后的解决方案,现在终于也撞墙了,万里长城永不倒啊,高呼一声祖国万岁! 不过很奇怪,居然blogspot和appspot都可以访问,而且速度还行,可以看一下我搭建在Google Apps平台的东西,维基中文也能访问,但是一些敏感的词汇还是被盾的,更智能的是,如果你超过五次搜的都是敏感词,你将在十分钟之内都打不开中文维基百科,神奇吧,现在的墙是越来越智能了,总有一天会变成发送过来的都是“××主义万岁”的东西 2009-6-24更新: 72.14.232.215  可以使用

个人学习方法总结

Posted by & filed under Excellence Article.

本文内容来源于360DOC,版权属于原作者 关于学习的各种方法和理论的文章不少,这里想从个人角度来谈一下个人学习: 一,为什么要学? 1,大方面:我们都知道,学习能获得知识、见识、经验,能知道你不知道的东西,加深你知道的东西。用流行的话来说,现在是21世纪了,我们处在一个信息爆炸的社会,知识的更新已不是一般的快,信息的获取已不是问题,关键是如何从中取舍去学习。学历呢,只代表过去,能力代表现在,学习力就代表未来了。说得严重点,你不会学习,就没有未来。 2,实际:学习的目的是学了有用,可能马上就有用,也可能以后有用,这个用可能是物质上的也可能是精神上的,反正就是会对你有点用处。学,以致用,要不然绝对不要学,纯粹是浪费资源,包括时间,精力,财力,物力,人力!学以致用,不同的“用”决定学的深度和侧重,比如同样是学习管理知识,有的是为了简单了解下,看看是怎么个回事,有的是为了日常工作中实用,有的是为了做理论学术研究,还有的纯粹是为了和别人谈论可以说得上话或炫耀,这些人不同的“用”就决定了学的深度和侧重,从而会决定投入的资源。学,也是分情况的,为了你的“用”请选择正确的学习方式和方法。 二,学什么? 虽然不能准确分类,但大致可以分为: 1.必须学的,比如走路,拿筷子,用电脑等类似生存技能的知识; 2.没办法要学的,比如要考试的科目虽然你知道没用,如何交水电煤费用等; 3.感兴趣的主动要学的,这个方面就包含了很多,比如摄影,管理知识,围棋,职业知识,只要你感兴趣的都行。 大家通常谈论的学习方法,技巧等大多是指第三类的学习。 三,怎么学? 现在知识太多,可以学的东西也是多如牛毛,就以家园来说,好文章好贴好观点太多,是不是全部都要学呢?答案是不是,除非你时间充足,兴趣广泛。 1,原则方面 学以致用,没用的不学!学,也要少而精!对别人有用对自己没用的不学! 以下的内容都是在对自己有用知识的学习,而且主动想学的态度基础上探讨的。 2,方法 学习的方法很多,大多是技巧性的,比如学英语单词就有很多方法,有听说读写一起上的,有所谓联想法的,有死记硬背的,有思维导图法,有前缀后缀法等。 这些技巧性的方法大都比最基本的死记硬背好,但是谁优谁劣却不好判断,最适合自己的才是最好的。虽然无法穷举,但是有一个基本的东西在里面,就是学习的知识先是点,后是面,先由点到面,后由面到点,最后点面结合,想怎么用就怎么用。把握好这个基本规律,找一个最适用自己的方法,就是最好的学习方法。 3,具体方式 上面说的比较虚,那就来说说具体的方式。学习的途径一般有读书、辩、上论坛,实践,教。一个个来说: 1)读书 读书首先要注意读书环境,这个很重要,大家也都能理解就不多废话。 还要注意培养一个读书的习惯,每天固定抽取一定时间阅读,这个很重要。现在大家都习惯了网络,忽略了书本,还有也不管大家真的忙还是假的忙反正大家都感觉自己很忙没时间读书,这都是不可取的需要改变的,再忙也不耽误学习啊。 读书最好买书和借书。买书花了钱不读亏了,还可以逼自己读,既然是花了钱那就一定要买自认为值得的书,那么怎么保证买到这样的书,一是买之前网上看看这本书的书评,别人的看法,内容概括,这个至关重要,还有就是想想自己真的要买么,有的过段时间会出电子版或者扫描版。借书呢,书非借不能读也,是花了人情的,不过借时一定要说好什么时候还,给自己一定时间压力,这样就算不一定全读,至少也会翻翻知道大概。当然有些强人会借书借成自己的了,这个不在我说的范围,还有些牛人借了也没读实在太强,也当我没说过。 阅读方法有一目十行法,总结概括法,略读法,笔记法等,这个大家可以搜索查看参考相关文章,根据自己爱好选一个或结合应用。 2)辩 我常说,辩出真知,很多时候你本来没看明白的但是一讨论一辩论就明白了,没明白的明白,明白的可以更深更广,触类旁通。 3)上论坛 网络带来的好处在这里可以充分体现,在网上你既可以读到老的经典的文章,还可以看到最新的文章和观点,看不完还可以保存下载到电脑上以后读,还可以就一论题讨论发表自己看法,好处多多。 这里想说的是论坛学习法。我们要先找到相关板块感兴趣的文章,然后再点开读,觉得对自己有用的一定要回帖,这个比没回帖记忆深刻很多,还会引发你的思考,及时写下笔记心得感悟之类的,也便于以后查找。如果你觉得文章很好是不是看完就完了呢?不是,看完以后你要看看作者的信息,看看他还写过什么文章,然后再把文章标题或一段内容放到google或baidu里面去搜索,转载的可以找到作者信息或出处或者同类文章,观点类的你可以找到作者,再根据作者再搜出作者的很多文章(现在很多论坛会自己整理成一个集或者博客样的),都看看便于全面了解,看完了是不是完了呢?还不是,你还要看看反对者的文章,看看他们的观点,看完了完了?还没有,看完了趁热把自己看完后的感觉心得写下来(不一定发表),转化成自己的观点有自己的观点才算结束,这才叫上网上论坛学习!这个方法我就用过看论坛上不少名人的文章。 4)实践 学了是为了用,用了会有切身体会,用的过程可以发现问题分析问题解决问题,边学边用,可以很大程度上加深学习的效果。 5)教 自己会了还要教会别人,这个能做到那你是彻底学会了掌握了!很多人学会了就好,不愿教别人,这个时候可能有些问题你可能还没彻底掌握,只是你自己还没发觉,视觉盲点而已。教不一定是学生教老师一样,更多的是互相学习互相教。 与辩论不同的地方在于这是互相认同,互相学习,而辩论大多有输赢观念而偏执,而辩论的论题一般又没有所谓正确的答案,都是不同角度适用不同角度不适用,本身辩论就是个不合逻辑的东西,都试图说服对方,即使认为对方有理也未必并真学进去,二套同样都正确的东西人的本性都会偏认同自己的这套,人性弱点,辩论的唯一好处就是对自己观点方的观点认识更深更广,其他作用不是很大,对方的观点可能认为有理但没自己的有理(这点肯定会有人反对)。 本文其实早就想写,但种种原因没有完成,断断续续,还好是先用导图记录了大概,这次写完总算对自己有个交代,也算了却一个心愿。如能给大家一点帮助、思考和讨论,能起到一点抛砖引玉的效果,那将会是件非常开心的事情。

PHP实现URL路由

Posted by & filed under Programming.

本例可以实现 1.符合规则定义的伪静态访问路径解析 对于”test.php/user/lists/normal/id/2.html” 可解析为 control = user,action = lists,filter = normal,order = id,curPage = 3 对于”test.php/users/lists.html” 可解析为 control = user,action = lists,filter = all,order = ”,curPage = 1 可取得规则定义中的默认值 2.不符合规则定义的伪静态路径解析 action,control 不符合规则 对于”test.php/users/lists/all/id1/1.html” 报错 试图访问不存在的页面 不符合匹配模式 对于”test.php/user/lists/all/id1/1.html” 可解析为 control = user,action = lists,filter = all,order = ”,curPage = 1 可取得不符合匹配模式项目的默认值 <?php   // url 路由规则定义… Read more »

什么是回调函数

Posted by & filed under Programming.

回调函数,就是由你自己写的。你需要调用另外一个函数,而这个函数的其中一个参数,就 是你的这个回调函数名。这样,系统在必要的时候,就会调用你写的回调函数,这样你就可 以在回调函数里完成你要做的事。 模块A有一个函数foo,它向模块B传递foo的地址,然后在B里面发生某种事件(event)时,通过从A里面传递过来的foo的地址调用foo,通知A发生了什么事情,让A作出相应反应。 那么我们就把foo称为回调函数。 例子: 回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。回调函数在windows编程使用的场合很多,比如Hook回调函数:MouseProc,GetMsgProc以及EnumWindows,DrawState的回调函数等等,还有很多系统级的回调过程。本文不准备介绍这些函数和过程,而是谈谈实现自己的回调函数的一些经验。 之所以产生使用回调函数这个想法,是因为现在使用VC和Delphi混合编程,用VC写的一个DLL程序进行一些时间比较长的异步工作,工作完成之后,需要通知使用DLL的应用程序:某些事件已经完成,请处理事件的后续部分。开始想过使用同步对象,文件影射,消息等实现DLL函数到应用程序的通知,后来突然想到可不可以在应用程序端先写一个函数,等需要处理后续事宜的时候,在DLL里直接调用这个函数即可。 于是就动手,写了个回调函数的原形。在VC和 Delphi里都进行了测试 一:声明回调函数类型。 vc版 typedef int (WINAPI *PFCALLBACK)(int Param1,int Param2) ; Delph版 PFCALLBACK = function(Param1:integer;Param2:integer):integer;stdcall; 实际上是声明了一个返回值为int,传入参数为两个int的指向函数的指针。 由于C++和PASCAL编译器对参数入栈和函数返回的处理有可能不一致,把函数类型用WINAPI(WINAPI宏展开就是__stdcall)或stdcall统一修饰。 二:声明回调函数原形 声明函数原形 vc版 int WINAPI CBFunc(int Param1,int Param2); Delphi版 function CBFunc(Param1,Param2:integer):integer;stdcall; 以上函数为全局函数,如果要使用一个类里的函数作为回调函数原形,把该类函数声明为静态函数即可。 三: 回调函数调用调用者 调用回调函数的函数我把它放到了DLL里,这是一个很简单的VC生成的WIN32 DLL.并使用DEF文件输出其函数名 TestCallBack。实现如下: PFCALLBACK  gCallBack=0; void WINAPI TestCallBack(PFCALLBACK Func) { if(Func==NULL)return; gCallBack=Func; DWORD ThreadID=0; HANDLE hThread =… Read more »

博客大巴(Blogbus)新版正式上线,推出友邻和活动功能

Posted by & filed under Life Diary.

经过全体同仁二十多天的努力,Blogbus的研发团队终于将SNS的框架搭建起来,加上国庆假期,一共十九天没有休息,今天就能上线,应该说速度还是非常的快的,毕竟没有这方面的经验,虽然在功能需求上已经有开心,校内这样的前辈,甚至有康盛的UChome这样的东西,但是BUS的所有的研发人员,没有在代码上借鉴过前面任何一位的做法,或许也不能借鉴,因为blogbus之前的系统是基于博客的系统,所有的认证都是围绕博客这个系统展开的,最后形成了一个同心圆的结构,这样的结构最大的隐患是内部系统一旦因为某种原因找工作或者工作不正常了,所有外围的应用都不能使用或者受到严重的影响。 学过面向对象编程的人都知道,我们在设计类的时候要降低耦合,增加内聚的原则,这也是最基本的原则之一,所以豆瓣和客齐集这种岛的结构是非常值得借鉴的,每个应用之间如果有必要联系,通过中间的API进行通信,这样貌似会增加应用层的负担,而实际的结果是,这样部署结构能够最大程度的提高应用之间的效率。向外的扩展性也非常高,了解Mysql的人肯定知道,其实一个完整的应用,跑一次,百分之八十的时间都在数据库方面,所以API同行对整个应用的影响是有限的,如果能因此降低链接数据库的次数,还是非常划算的。 之所以前面说是 应用框架,是因为一切才刚刚开始,之后肯定会有很多的应用将架在这个系统架构上,这个框架肯定也会越来越成熟, 下面是来自Blogbus新后台的截图,它能带来的功能上的惊喜是有限的,关键是对于Blogbus来说,等于是重新活了一次,至少从技术层面是这样的。

批量修改Linux下文件名导出到Windows上乱码问题

Posted by & filed under Operating System.

博客大巴最近正在进行盛大的摄影展相片征集活动,主题是大同·视界,在北京、上海等大城市的几万辆出租车、公交车、地铁上投放了广告,规模可谓空前,十天内通过审核的照片多达数G,我受命将这些照片导出供评委评审,因为时间关系,等到以后一起审核肯定是来不及的。 规则很简单,数据中的某张表上记录着关于各个作品组的信息,因为摄影展图片是按组来存放的,就是说数据库中某张表(假定表明叫photo)的某个字段(假定名称叫做pics)存放着一组相片的名称(两个图片名称以特定分隔符分割,我们假定为英文状态的逗号),现在要做的就是:导出数据库中所有通过审核的图片(表中字段state为1),然后按用户“昵称_作品名称_作品序号_作品ID_文件名”来重命名。 这个代码很简单,如下:   而这样会导致一个问题,就是导出的文件名在中文版Windows系统是乱码的,因为Linux系统的文件名默认编码是UTF-8的,而中文版Windows系统的编码是GBK的,我之所以强调中文版Windows是因为英文的Windows是ISO编码的,如果需要,可以对照着我后面的代码批量修改文件名,只是改一下转换的目标编码即可。 如果你是在服务器上执行这段代码的,当然是最好不过的,而且推荐用命令行去执行,因为如果你的文件过多,apache可能会超时,导致部分文件的文件名没有转换完成。、 转换编码的脚本如下: ‘; } //copy($utf_name, $file_array[$i]); } } } } } filesInDir("image");   ?&gt; 怎么样?很简单吧?确实很简单,以上共同的假设就是:你的文件名中有中文,如果没有中文或者类似中文的文字,比如日文等,也就无所谓乱码的问题了,这些各种各样的编码都是洋鬼子弄出来的,而且也因为英文是当今世界最强势的语言,当然兼容英文字母,即使是GBK这样的国标码。 BTW:以上我主要是想介绍一下大批量文件名乱码的补救方法,其实如果有可能,这种事情完全可以避免,因为你在输出数据库内容的时候就可以完全可以控制输出的字符编码,当然,在Linux下看是乱码,导出到Windows上就正常了。 如果你已经将UTF-8的文件打包下载到本地才发现文件名乱码,那么你需要一个Linux操作系统,并且装了PHP,因为你在Windows上无法解压这个压缩包,解压过程中会出现错误提示,因为Windows认为这些乱码是非法字符,不能作为文件名 以上方法,纯属个人经验,不对之处欢迎拍砖

博文视点和O’Reilly

Posted by & filed under Study & Reading.

某个晚上我们的CTO 车东说还有几篇作业没有交,我们好奇的问了一句什么作业,他说要写关于博文视点的博文。我忽然想起我一年前抱着一本砖头天天啃的书就是博文视点的,台湾的技术牛人黄忠诚写的《Framework设计与应用》, 不过很奇怪,我刚刚在博文视点的网站上居然没有查到这本书,难道是因为它太老了?读这本书倒是需要一定的.NET经验,不推荐新手区阅读,如果是其他语言的老手,可以学到一些思想,如果能对着那些似懂非懂的类库的不着急的,当然如果要了解设计模式的话,我要推荐《Head First Design Pattern》,“O’reilly出品必是精品”还是挺有道理的。 我现在桌上的《精通正则表达式》英文原版仍然是O’reilly出的,中文由博文视点出品,翻译的很不错,可以说是我读这么多翻译的书中间最好的一本了,读这本书的初衷本不是为了写出多么复杂和高效的正则表达式,而是别人写的表达式,稍微复杂一点我就看不懂了。所以要加强一下自己正则表达式的知识,因为我没有太多的时间和耐心,这本书我只看了三百多页,不过就目前来说,已经够用了,至少能写出稍微复杂一点的正则表达式了,基本上能看懂别人写的表达,在我目前的开发应用中这足够了。 博文视点出的其他的O’Reilly也非常的不错,比如《构建高性能WEB网站》等等,都是精品中的精品。 我是穷人,只买过几本O’Reilly的书,还记得当年读第一本O’Reilly出的原版的《DHTML权威指南》时那种勤奋的劲,可惜后来太注重程序逻辑(因为后来迷上C#.NET的缘故),关于HTML的一些基础知识反而忘得差不多了,现在也没有时间去补习,只能在需要的时候查一下了。 其实东南大学出版O’Reilly的书也很多,而且很多是原版,如果英文够好的话,建议阅读英文原版的,理解起来比较容易,举个简单的例子吧,面向对象最基本的东西“对象”,在英文中叫Object,你可以理解成物体,也可以理解成物质,也可以想象成某种不存在但是大脑中有意识的东西,而翻译成“对象”就很不容理解,大多数人在接触这个词的时候都会想到生活中的“找对象(找女朋友)”,还有class,翻译成“类”我觉得非常难理解,还得花费一番力气去做一些不着边际的解释,class在英文中就有一个“将……归类”的意思,事实上class就是将具有相似特征和派生行为的一个集合(或者叫归类),这样就很好理解,这也是我为什么一直推荐我的朋友都原版书的原因。