Blog

  • 这个漏洞说大也大,说小也小。大是因为真得可以通过注入的方式让漏洞代码执行任意代码。小是因为产生漏洞的环境还是比较苛刻的。 来源于此:http://milw0rm.com/exploits/8641 当最后一个参数设置为“e”,也就是将替换的内容作为 PHP 代码执行的时候,漏洞就产生了。 例如: function hi80vul() {} $str = ‘\’, phpinfo(), \”; mb_ereg_replace(‘^(.*)$’, ‘hi80vul(\’\1\’)’, $str, ‘e’); 又例如: function hi80vul() {} $str = ‘\’, var_dump(get_loaded_extensions()), \”; mb_ereg_replace(‘^(.*)$’, ‘hi80vul(\’\1\’)’, $str, ‘e’); 如果有在代码中使用过 mb_ereg_replace 和 mb_eregi_replace,以及参数“e”,那就赶紧检查一下是否有这样的安全隐患吧。

  • 首先,在 google 做一个搜索,关键词“广州 PHP 培训”。大约有 1,230,000 项符合的结果。在百度上搜索相同的关键字,大约有 38,500 项符合的结果。 其中呢,“多迪”培训是占了大多数的,然后就是“慧的”培训。其实这两家都是老熟人了。

  • 尝试用 Django 写了一个简单的企业站,部署过程中出了不少问题,不过还好都一一解决了。 “激动不已”的看到了首页,长出一口气:“总不会再出什么其他问题了吧!”随手点了一个内部链接: ————————————————— TypeError at about ‘NoneType’ object is not iterable ————————————————— 这回可晕倒了,怎么会有这样一个错误? 接着往下看,发现错误是由于丢失了一个反斜线引起的: Request Method: GET Request URL: http://www.i-fang.comabout Exception Type: TypeError Exception Value: ‘NoneType’ object is not iterable Exception Location: /usr/lib/python2.5/site-packages/django/core/handlers/base.py in get_response, line 77 Python Executable: /usr/bin/python Python Version: 2.5.2 Python Path: [‘/home/www/www.i-fang.com/’, ‘/usr/lib/python25.zip’, ‘/usr/lib/python2.5’, ‘/usr/lib/python2.5/plat-linux2’, ‘/usr/lib/python2.5/lib-tk’, ‘/usr/lib/python2.5/lib-dynload’, ‘/usr/local/lib/python2.5/site-packages’, ‘/usr/lib/python2.5/site-packages’,…

  • 曾经,我很羡慕 Django 等框架那完善的自动化工具。说实话,在 MVC 框架中不停的建立Controller、Action 是一件又枯燥,又麻烦的事情。而且,维护起来也颇费功夫。所以在 ninnypro 中我引入了一个 cli 工具,用于创建 Controller、Action 以及更新 ACL 的资源表。 现在,这些都将成为历史了。 Zend Framework 引入了 Zend_Tool 和 Zend_Application 两个包,用于自动化和快速集成。并且成熟的命令行工具 zf 也可以使用了。例如这里!! zf 将程序员的关注点聚焦到程序功能和细节的实现,更加的统一和方便。跟 ninnypro 的思路类似,以放弃灵活性为代价,换取约束性和开发速度。 如果我有精力,或许会在此基础上重新建构 ninnypro 吧。

  • 经过艰苦卓绝的努力,我,备案成功,回来啦!!! 遗憾的是我的PR值已经从 3 掉到了 0,非常非常羡慕这个网站的PR值…… 大家意会,不可言传……

  • 这个其实是源于 javaeye 上的这个讨论:http://www.javaeye.com/post/886707。最开始吸引我的是在 rails 板块上诸多专业玩 java 和 ruby 的人是如何评价 php 以及 php 框架的。在讨论中发现有一些值得学习和借鉴的地方。所以推荐大家完整阅读这个帖子。从技术性、知识面和娱乐性来讲,都是质量很高的。 我就简单说一下我对于 php 框架繁荣的看法:

  • 心惊惊,追随雷军的脚步。毕业干了 4 年多技术工作和技术管理工作,我突然有一天觉得自己应该找一个像样的团队,特别要有一个像样的老板。于是给  ucweb 投了一份简历。对,其实我是冲着移动平台和雷军去的。应聘“资深软件工程师(软件服务器部分)”,要求如下(注释里是我的想法): 职责描述: 在Linux系统中,进行应用系统软件服务器相关软件的设计、开发和测试。 基本要求: (1)本科以上学历,计算机相关专业;// 本人是如假包换的科班出身 (2)有5年以上软件开发经验;// 如果计算上大学的时候做兼职的开发经验,5年还是有的。 (3)有3年以上Linux或UNIX使用经验;// 试过一大圈,debian 比较适合我,完了几年,然后 ubuntu 出来了,好像更适合我。windows 已经从我笔记本上删除 1 年多了。3 年是小 case。 (4)熟练掌握以下一种以上开发语言:C/C++/JAVA/PHP/PYTHON;// C 不敢说,只是用来写 PHP 的 ext;C++ 也只是用了一年的 C++ Builder;JAVA 本科学了一遍,研究生又学一遍,做作业,写辅助工具都靠它;PHP 不说了吧,我很自信,这是唯一一个除了 Delphi外可以用精通形容而不心虚的;PYTHON 不熟,只是随便玩玩,改改别人的程序而已。 (5)熟练使用以下一种以上的数据库Oracle/Mysql数据库;// Oracle 仅仅算是用过,PL/SQL 带着手册勉强能用;Mysql 虽然了解不深,但是一般写写触发器,弄弄存储过程是没问题了。 (6)了解HTTP协议,掌握HTML语法;// 这个我有自信,好歹 TELNET 模拟 HTTP 协议也弄过不少。 (7)对新技术感兴趣,有钻研和开拓精神;// 如果不是为了这个,我何苦巴巴的要去应聘 UCWEB 呢? (8)良好的英文阅读能力,学习能力强,思维敏捷;// 好歹做了那么多英文文档翻译,写不出来,读还是能读懂的。 (9)为人正直,工作勤奋主动,有责任心,具有团队协作精神。// 这个……就算没有也要说有吧?

  • 没办法整理成长篇大论了,就写点只言片语吧。 起因看这里:http://www.javaeye.com/topic/305801?page=1 ----------------- 看了一遍,忍不住了,插句嘴~~ webgame 根本没有,也不需要什么大量实时数据要处理~~ 例如类似部落战争的行军,这个其实早就根据所选兵种、指挥官、宝物等等生成了一个事件存放在事件队列中(可能是内存对象、可能是某种数据缓存更有可能是数据库的某条记录),然后服务器在那个事件事件到达的时候取出事件对象执行一下,得到一个结果,接着存起来。至于行军途中到哪个位置如何如何,那是给玩家想象的,服务器根本不管。总之,事件运算有三种方式:1。玩家请求时已经运算完成,到了特定时间通知玩家。2。事件执行时间运算完成,并通知玩家。3。在服务器空闲时,处理待处理的运算,到了特定时间通知玩家。 webgame, MMO 实时性不是首先考虑的。例如资源增长,如果服务器有 10W 激活用户,在同一时间增长资源是几乎不可能的。那就将一分钟划分60秒(废话),每秒开一个新线程来处理一部分用户(10W/60)的资源增长。资源增长基本上就是浮点数加减乘除,对于现在的 cpu 来说,并不是很高。何况服务器 N 个 cpu…… 简单的说,webgame 不像 MMO 需要“随时”客户端跟服务器端通讯。更多情况,web 服务器通过某种方式从 game server 中获得一个当前游戏状态的快照返回到浏览器。并从浏览器接收数据,然后在一个可接受的,合理的时间内去修改 game server 的状态。请再次注意,again!这不是“实时”的! 最后再罗嗦一下,webgame 的 game server 更多情况下是一个 task server。它不需要去预测客户端行为,也不需要计算碰撞、寻找可行路径…… 另外,我个人的体会,RPG 类型的 webgame 在运算负载上来说,远小于策略形的。并且通常只需要 3 台服务器配合:web server、task server、db server。 哦,还有,如果用 flash 的 socket 方式开发,不在上述范围内。当这种模式是个客户端能力稍差的 MMO 好了。

  • 今天在例行学习爱枣报年终特刊的时候看到这么一个针对专家提出车票涨价言论的评论,很雷: “我是主修经济学的学生,关于春运火车票价的问题,单从经济学的效率理论分析,提高调价确实是正确的,可是这不符合社会公平的要求。在经济学当中,效率和公平从来都是两难问题。所以,并不能说这个经济学理论观点是错的,只能说这个解决方法没有实操性罢了。” 我不懂经济,不过我懂:如果一个理论没有可操作性。或者与现实相左,那这个理论也就废掉了。上帝啊,为什么这些专家要用一个已经废掉的理论来说事呢?难道因为老百姓不懂经济,拿来糊弄么?还有就是,评论留言的这位“修经济的”,明知道作为票价涨价的理论基础不具有可操作性,那还给大家解释有这么一个具体理论干什么呢?有潜质,当中国经济学家的潜质……专家的事情,我不懂!

  • Ivan Stojmenovic http://www.site.uottawa.ca/%7Eivan/presentstyle.pdf 这篇文档介绍了如何撰写研究性文章或硕士、博士论文。大部分介绍的内容同样适用于制作幻灯片(由于幻灯片制作有一些不同,相关的内容被放到由 Veljko Milutinovic 撰写的另外一篇文档中介绍,在我的网站上同现在这篇文档放在一起)。如果说本文介绍的方式可能有不适合你的文章的话,差别只是你所做的不是科研,而是开发、应用或者其他类型的工作。 一个成功的表达的要点是重复你的“故事”四次:标题中、摘要、简介(或第一章)以及正文。也就是说,使用容易理解的语言按照10 、100、1000 和 10000 个词(译注:原文指英文单词)的顺序描述你的工作。为什么呢?因为你将拥有四种不同类型的读者。在这些关注你的工作的人中,我估计有 80% 只会去看标题;15% 会阅读摘要;4% 会阅读简介;仅存的 1% 才会阅读全文。这是建立在你的工作是正确的基础上,否则最后一组会是 0%。如果你不相信,你只要对自己花在阅读他人工作上的时间(或计划的时间)进行统计即可。