很多人都以为htmlentities跟htmlspecialchars的功能是一样的,都是格式化html代码的,我以前也曾这么认为,但是今天我发现并不是这样的。 这两个函数在格式化带有英文字符的html代码的时候基本没啥问题,但是htmlentities对中文字符也不放过,这样得出来的结果是中文字符部分变为一堆乱码。当时做英文站的时候根本就没觉察到这个问题,而今天公司的一个收藏站却因为有有非英文字符而出现了问题,我最终查出来是htmlentities这个函数的问题,同时我也找到了htmlspecialchars这个函数。 对于这两个函数,php手册上都是英文做的解释,其中在htmlentities函数的说明部分有这么一段英文: This function is identical to htmlspecialchars() in all ways, except with htmlentities(), […]
leakon
MooTools Essentials: The Official MooTools Reference for JavaScript and Ajax Development
MooTools,是 My Object Oriented JavaScript Tools 的缩写,我的面向对象的Javascript工具! 看别人的评论,说这个Javascript框架在扩展性上得益于面向对象的设计,比JQuery做得更好。 今天找到了介绍这个框架的电子书,顺便提供下载。 下载地址: http://down.leakon.com/software/2008/11/Apress.MooTools.Essentials.Aug.2008.pdf
与互联网产品设计有关的讨论 (二)
Jeff刚刚仔细读过《赢在用户》-WEB人物角色创建和应用实践指南,书评可以到豆瓣看看: http://www.douban.com/subject/2157554/ 他说,我们现在缺乏一套用户角色模型。这本书里面提到一个网站首先要建立起一套对应的用户角色模型,知道自己要给哪些用户提供服务,然后再根据不同类型用户的需求制定项目优先级。如果没有这套模型,那么我们会总是遇到这样那样的产品问题,针对这些具体问题的讨论将会永无休止。因为这样的讨论不是基于一套被每个人都认同的概念标准的。 比如,Jeff用1天时间搞了几个单机版的Flash小游戏,作为一个“游戏”模块挂到“应用”分类下面。我觉得,这项功能跟我们的网站毫无关系,没必要在这上面浪费时间,哪怕是1分钟都不应该。而Jeff说他确实听到了用户有这方面的需求。 这就是问题的根源,我们的网站要做什么?要给谁提供服务?想玩游戏的用户是不是我们的“重要”用户? 如果我们确定好了用户角色模型,统一了意见,知道我们主要为谁提供服务,那么这个问题就好解决了。 他还提到,当网站增加了一项新功能时,会给四类用户带来不同的反应(我记得大概是这几种): 迫切希望网站增加新功能,不管是否和网站主题相一致 增加的功能正好是用户锁盼望的,这样会应得用户的好感 增加的功能是用户不愿意看到的,会让用户产生反感 用户不在乎你增加什么功能,他需要的已经有了,对其他功能无所谓 当时是吃饭的时候说的,印象中是这几项。 这本书我没看过,我今天要说的也不是书里的内容,我是有另一种感觉,需要我用插叙的方式引入我对“规律”二字的看法。 写这类书的作者,大部分都是对书中内容所属的行业有很长时间的工作经验。他们应该是把这个行业的规律都看透了,已一种“过来人”的角度来总结自己的经验。 我举个例子,Yoyo总爱看跟星座有关的内容,她认为说的都特别准。以前我看的时候,也觉得似乎很准。现在我却发现了这类内容的一个规律:一个星座的人,所谓的性格特点,都是说那些优秀的性格,比如说你这个星座的人做事很细心,很谨慎,很有风度,很会为他人着想,有时候比较任性……。其实他说的这些性格,是每个人都会有的性格。我们可以做一个测试,找一个不是经常看星座的人,我们给他看一套特殊的星座性格特点,还是分12个部分,只是每个部分只有性格说明,没有所述星座说明。然后让他说哪个部分说的是他所处的星座。估计没有人能答对。 […]
带链接的 img 标签不宜应用 margin 或 padding 样式
上述5个配图,分别是IE6、Firefox3、Opera9、Safari3和Chrome浏览器下的不同效果。 应用场景是,图片有链接,HTML片段是: <a href=”…”><img src=”…” alt=”…” /></a> img 标签有样式表定义,为了使图片与周围的内容有一些间距,我加入了 margin 定义。 加入之后,在现代浏览器中,会出现上图中显示的蓝色 hover 块与图片不匹配的情况,在这点上,IE6、IE7都能正常显示。 定位问题用了很久,最后发现是 […]
与互联网产品设计有关的讨论 (一)
以前只是搞程序开发,不太关注产品设计,现在要开发一个产品,就要转换一下自身的角色,从用户的角度考虑问题。 随着讨论时间的增加,我对一个产品的理解,对用户定位的理解,都有了很大变化。 今天是这么看待问题,十天后,观点可能完全相反了。 所以有必要把每天对某个问题的看法、思路落实到字面上,保存下来,以备日后的反思、参考。 先说说一个月以前,我觉得,一个SNS网站,就应该像开心、海内和校内一样,只做18-30岁这个年龄段的网民需要的产品,因为这部分用户是中国互联网的中坚力量,占了绝大部分比例。 作为一个刚起步的网站,用户从零开始积累的时候,应该放下自己的特色,放下自己的品味,把热门网站的热门功能,抄袭过来,说句俗话,先“圈人”,等有了一定数量的用户后,再推出自己有特色的产品。 看似挺有道理的一个观点,当时我还挺坚持的,认为这个就是真理。 一个月后的今天,我觉得这种做法是错误的。 随波逐流,是不会被用户认可的。先不谈那些热门网站已经先入为主,就说当SNS这股风潮一下子涌现到人们面前的时候,大家会产生一种SNS疲劳,这么多网站,都是一样的模式,一样的界面,一样的游戏,唯独不一样的是在每个网站都有各自的朋友圈,经常性的是一个朋友,要在三个网站都加一次好友,而另一些朋友,都在不同的网站注册,我想跟某个人联系之前,先要努力回忆一下这个朋友是在哪个网站加为好友的。甚至是当我收到过某个朋友的消息,过了几天再想看看时,实在是想不起来在哪个网站看过的。 渐渐地,我怕了,看到一个网站注册时填那么多信息我就烦,总是重复地做着相同的事,也没有从中得到什么有用的帮助。 现在的情况是,中文名叫开心的网站有4、5个,中国人就擅长搞“山寨版”,这东西搭起来也容易,UCenterHome就可以直接用,换个图片和皮肤,一个SNS就搭出来了。 就好像06年大家都玩儿视频一样,看看现在这些网站都什么状况?几家加一起估计有几个亿的资金,都投入到服务器和带宽上面了,是他们扶持了中国IDC的发展! 据说六间房要换办公地点了,优酷的情况也不是很乐观。记得北京台有个CEO访谈的节目,邀请李善友,我印象最深的一句话:在中国做视频,没有一个亿就别玩儿了。 相比,SNS的成本应该还低廉的多,所以跟风的就数不过来了。一个行业里,赚钱的就是带头的那几家,优胜劣汰的自然定律是地球上永恒的真理,没有创新的跟风者,遭到淘汰是必然的,剩下的就是根据你忽悠VC的能力决定着你烧完资金的时间问题了。 我也是受到Jeff的启发,他提到了宝宝树,这个专注于母婴的网站,让我认识到跟风是个错误的方式。 […]
Godaddy 被封 今天解封 GFW
好消息!! Godaddy 貌似解封了!! 这几天发现Godaddy.com打不开,Ping域名可以得到IP,但icmp包收不到,明显是IP被封了,可恶的GFW,你知道全世界有多少域名托管在Godaddy麽! 现在可以Ping通,打开网站时很慢,浏览器只能得到网页的Title,页面一直下载不完,估计是部分路由通了,还有一些由于各个级别的TTL导致暂时仍然无法访问吧。 不管怎么说,有希望就好! 听说mya.godaddy.com这个域名管理平台是一直可以访问的,不过速度也很慢。 如果今天暂时Ping通是“回光返照”的话,以后只能依赖于mya.godaddy.com了。 我很担忧,刚刚起步的中国互联网,会被一些封建守旧的、反人类的、无知无能的、昏庸官僚的ZF败家子儿们一步一步地毁灭掉!
PDO Quick Guide
Book: PHP Data Objects Layer (PDO) Author: Ilia Alshanetsky Download: http://down.leakon.com/software/2008/11/quebec_PDO.pdf 其实这不能算是一本书,只是一个用于演示的文档,算是一个大纲。 这个简明扼要的大纲告诉你什么是PDO,为什么推荐你在PHP5中使用PDO作为数据库操作层的封装接口。 不仅更安全,而且有更好的性能,用起来更简单。 我在做一个数据库ORM接口,参考了Propel和Doctrine的设计思想,并只针对MySQL5,不做任何框架性或通用数据库的考虑,完全是为了简单、易用和高性能。底层数据库操作依靠PDO完成。 敬请关注~~
Linux 修改 IP DNS 参数 配置
一、修改 IP 地址 [leakon@linux]$ vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=219.236.108.199 NETMASK=255.255.255.192 GATEWAY=219.236.108.254 二、修改 GATEWAY vim /etc/sysconfig/network […]
MySQLi vs MySQL
Background Between participating in a MySQLi group and telling others about PHP5’s new MySQLi (MySQL […]
DIV POSITION LEFT TOP
网页可见区域宽: document.body.clientWidth; 网页可见区域高: document.body.clientHeight; 网页可见区域宽: document.body.offsetWidth (包括边线的宽); 网页可见区域高: document.body.offsetHeight (包括边线的宽); 网页正文全文宽: document.body.scrollWidth; 网页正文全文高: document.body.scrollHeight; 网页被卷去的高: […]