Yii框架的Log系统的分析
昨天阅读了Yii框架中log部分的源代码,框架提供了灵活、强大的log功能,如果不是非常特殊的需求,框架中自带的类就已经能够满足一般的应用的需求了。实现log功能的源代码被存放在 framework/logging 目录下,这个目录下的代码都包含在包system.logging中。本文简要介绍一下我昨天阅读代码的所得。
昨天阅读了Yii框架中log部分的源代码,框架提供了灵活、强大的log功能,如果不是非常特殊的需求,框架中自带的类就已经能够满足一般的应用的需求了。实现log功能的源代码被存放在 framework/logging 目录下,这个目录下的代码都包含在包system.logging中。本文简要介绍一下我昨天阅读代码的所得。
Yii框架的官方网站上,有一个教学用demo,就是使用Yii框架开发一个blog。有非常详尽的文字描述,步骤基本也比较清楚。一遍走下来,基本上就差不多都学懂了。
上周正好要在公司做分享,害怕当堂演示会说不好,浪费时间,就在家里自己将blog的开发过程录制成了视频,这是我第一次录制视频,觉得格外新鲜,遂决定在这里分享给大家。大家一起乐一乐,O(∩_∩)O哈哈~
入手Nexus S一周了,主要感觉还是信号较弱,WiFi比较弱,通信信号也很弱。在室外空旷地稍微好一点,在办公室基本比较悲剧。按照我同事的说法,国外生产的手机,辐射量必须符合他们自己的标准,是考虑了辐射量不会影响身体健康的前提下制定的,所以在中国信号相比国产山寨机要弱。OK,听起来像是个不错的理由。那就这样吧。
移动互联网的飞速发展,真的让我眼热,虽然没哥什么鸟事,但是也还是想快速走入这个领域看看。于是乎,想要一尝Android之鲜。充分分析了现在经济状况,Android系统的相应机型,最终挑选了Google亲历打造的Nexus S。哥玩的就是血统。在辗转反侧想了很多个日夜后,终于出手,并于今天下午拿到了手上。
前一段日子,写了一篇《MVC就是一个选择题》,重点描述了我对MVC模式的迷惑。随着我对这个模式应用时间的深入,渐渐感到得心应手,这个模式早在30多年前就已经发明了,确实经受了时间的考验,可以说是千锤百炼。但是,实践过程中,我也发现,更多的时候照猫画虎还是有很多弊端的,想要真正做好MVC的选择题,必须在项目中不断犯错误,不断修正,才能逐渐走上正轨。我参加的项目主要运用了Yii框架,是目前比较流行的一个Web开发框架。随着前不久,1.1.6版本的发布,我发现Yii框架的文档中,多了一篇MVC最佳实践的文章。我想,这个文章对于初学者来说,应该具备相当的指导性,而且指导相当具体。如果也有跟我相同的迷茫,应该好好钻研一下这篇文章,并且身体力行去验证之,这里给出链接。我在这篇文章中,就是概括简述一下那篇文档的内容。
文章(post)是 WordPress 博客的核心价值所在,围绕一篇文章的增、删、改,我们可以开发很多有用的插件。近来,由于维护一款插件的需要,我碰巧研究了一下围绕文章发布流程而设立的一些钩子(hook)。微有所得,记录备查。
由于采用了Web开发框架来开发项目,所以我首次在真正的项目中采用MVC的开发模式。随着项目的不断深入,我也在不断反思,MVC设计模式到底给项目带来了什么?成倍的开发时间?复杂无比的目录结构?铺天盖地的文件数量?听起来都很难听对吗,但是确实如此。那么MVC所许诺的那些好处呢?清晰的代码结构,易于维护,易于扩展?真有吗?
初次打开Mac OS X的终端,我非常不习惯。以界面优美著称的苹果操作系统,终端竟然如此丑陋,实在是大出我的意料之外。别的我也就不说了,最不能容忍的是两个,一个是没有颜色的ls,还有一个就是那个命令提示符。
实际上,Mac OS X作为一个类Unix系统,或者说根本就是一个Unix系统,而且默认shell已经变更成了bash,那么它理应该可以配置到跟Linux下的表现一样才对。在Linux系统中,ls能呈现多彩的颜色,还需要终端的支持,而Mac OS里的终端显然是支持颜色的,那为什么ls就显示不出来颜色呢?网上有老外说,ls用的不是gnu的core-utils,给了一套更换core-utils的方案,太麻烦我没采纳。今天,静心看了下man,才发现,感情人家根本就是支持彩色的。只是参数变成了-G,而不是我们熟悉的–colors,唉,竟然这么简单。
另外提一点,如果大家想要自定义Mac下的bash的表现的话,那么不要像在Linux中一样使用.bashrc,因为在Mac下起作用的其实是.bash_profile文件。好了,这里把我配置上面说的两个特性的.bash_profile分享一下。
export PS1="\u@mac:\w > " export CLICOLOR="xterm-color" export LSCOLORS="gxfxcxdxbxegedabagacad" # aliases alias cd..="cd .." alias l="ls" alias ll="ls -l" alias la="ls -al" alias mysql='/usr/local/mysql/bin/mysql' alias mysqladmin='/usr/local/mysql/bin/mysqladmin'
苹果操作系统的Dock菜单,可能是个人桌面操作系统中,最成功的一种UI设计了。这个交互设计效果优美,使用简便,一目了然。无数爱好者,将Dock菜单的交互设计和视觉效果移植到了各种各样的系统和平台上。
在Web上实现Dock菜单,也不是什么新鲜事了,包括我以前想要汉化过的一个favourate类插件,也都是Dock的理念。
jQuery有个插件,就是专门实现这个Dock菜单的效果的。在这里可以看到例子。文章标题里说的,是一个WordPress的插件,插件的名字翻译成中文的话,叫动态WP鱼眼菜单。我不知道为什么作者要取这么难听的名字,而且并不让人一目了然,既然Dock已经是几乎人尽皆知的效果了,何必再去自己发明名字。不过呢,这并不妨碍作者实现了这么一个使用简便的插件。到这里可以看效果。
从一个插件开发者的角度来看,Charles觉得这个插件的结构是非常简单的,只是在WordPress的里面引入了一个jQuery的插件,顺便增加了后台管理界面。从一个用户的角度看,我觉得这个插件有一个值得赞扬的地方,它的后台非常之简单,简单到了一目了然的地步。应该成为所有插件作者设计插件后台时候参考的典范。不过呢,也有一个缺点,就是这个插件的安装却并不是那么简单。因为需要用户手动修改代码。我想,这会给这个插件的流行,带来巨大的阻力。我觉得这是每个插件开发作者应该竭力避免的事情。
因为一开始我就知道,周鸿祎是所有流氓软件、恶意软件的始作俑者,我认为流氓老祖改行做警察,相当于反水,那么查杀能力应该比较出色。虽然我不知道所有其他流氓都死绝后,会怎么样,但是那是以后的事情。
很简单,我是一个喜欢清净的人,当360开始越来越多的“善意提示”的时候,他已经被我列入了黑名单。开机速度,拦截了什么,什么有风险等等,各类消息层出不穷。我觉得一款真正贴心的杀毒软件,应该静默。杀掉该杀的,留下正直的,遇上可疑的,也要靠自己的能力“艰难的”去判断,而不是把这些见鬼的选择题留给用户,是杀掉?删掉?隔离?修复?四选一,不是那么好做的。而且我很烦这个套路,难道让杀软用户为自己的选择负责么??那要你干什么?
这个问题真的很好,腾讯对这个问题也一直回避。因为这个问题真的很难回答。我谈一点个人看法。
第一,怎么定义隐私。其实聊天记录是相当隐私的东西,腾讯已经完全掌握了所有人的聊天记录。我想这是没法子的事情。所以,隐私的定义就比较暧昧。其实,我来定义的话,就是我不想被别人随便知道的那些东西,就是真正的隐私了。
第二,关于扫描。QQ到底有没有扫描用户磁盘?我个人认为,QQ是扫描了的。主要扫描什么呢?盗号木马,系统环境,比如你用什么系统Win,还是别的,哪个版本,XP还是Win 7,浏览器是什么,IE?Firefox?还是别的。这些估计都要扫描的,不扫不知道。而且,也必须知道。360呢,它更加扫描了,所有的磁盘文件,它都要扫描,不过大家觉得好像360是正义的,因为它是杀软,当然可以扫描。
第三,有没有上传?关于这一点,我没有什么直接证据。但是我想说,腾讯没必要干这个事情。我先前已经说了,聊天记录就是最大的隐私了,里面什么都有可能有,很多人聊天的时候来回报卡号,密码,身份证,都有。有了聊天记录,QQ有了一切。那么为什么要上传用户文件呢?我百思不得其解。假设,我是说,假设上传了,那么腾讯必须解决这么几个问题,存放问题,3亿活跃用户的海量文件,存在哪里呢??难啊,做免费网络硬盘已经成本很高了。现在还要保存用户隐私文件,要消耗巨量的成本,腾讯是傻子么??好,如果不保存,那么传上来干什么呢?那势必要分析,分析完了丢弃。那么难题来了,怎么分析呢?学过一点点计算机的人可能都知道,写一个程序有多麻烦。更不要提写一个分析各种用户文档形成有用数据的程序了。大家骂腾讯是个没技术,没创新的山寨公司时候很起劲,那么这个时候为什么又认为腾讯有能力分析那么海量的数据了呢?有那个能力,不会把搜搜做好一点去抢google饭碗吗?何必跟用户的私人文件过不去?
我说这么多,无非想说,不管这个事情有还是没有,它本来就不符合逻辑。大家自己可以好好判断。
第四,关于监控。我估计,这不是谁都敢谈的话题。我也不想多谈。我只想说,在中国,不监控可能么?虽然我也没有什么直接证据说明QQ监控了,或者没监控。但是想想应该不难推理的。你们懂的。
最后,是一个很好的建议:
如果大家觉得聊天内容本就无关紧要,那么请继续使用网络聊天。否则,请放弃网络聊天,只打电话,或者面谈。
如果大家继续选择网络聊天,那么我觉得选择QQ是完全可以的,因为你本就不在乎被知道些什么。
如果大家非要觉得QQ是邪恶的,那么不选择QQ也是完全没问题的。不会伤害我的感情。不过,我希望大家不要选择使用MSN。那样才会让我痛心。基于几个理由:
1,MSN是个很烂的软件,登录困难,广告难缠,体验差劲,功能缺失。
2,MSN采用明文传输聊天内容,等同于你的聊天内容在互联网上裸奔,没任何安全可言。
3,MSN也不是一个开放架构,而且还是另一个超级流氓微软的产品,曾经做过捆绑到Windows里,视图抹杀一切IM软件的邪恶事情。
那么我来给大家推荐一款很好的QQ替代品,那就是GTalk。
google出品,信誉保证。
开放协议,保证透明。
无穷多客户端,手机上至少10种客户端,pc上更是无穷多客户端,还有web版,那就是GMail。
聊天内容加密传输,保护隐私。
最后,希望大家在网上冲浪愉快。