Author: Volcano

  • 使用firebug的补充

    这里是最近使用firebug的一个补充记录,以后也会不断更新。 列出一个object的所有内容 在console上使用命令 console.dir(obj) 可以查看一个object所包含的方法,属性 firebug提供的console对象有哪些方法 用dir方法看一下console本身即可 console.dir(console) console用法列表 console.time(“test timer”); console.log(“Hello from “,document.title); console.info(“This is info”); console.warn(“This is warning”); console.error(“This is error”); console.timeEnd(“test timer”);

  • 用xdebug优化php的三个小窍门

    xdebug的2.0正式版已经发布了。这个工具用在php的代码调试,优化方面效果很不错。下面贴上俺使用过程中的几个小窍门。 xdebug生成profile文件,可以用KCachegrind来查看,但是这个工具只在linux下面可用,没有windows下的版本。这里推荐一个win下的免费工具——wincachegrind,也可以查看xdebug的profile文件,用来分析php代码运行情况足够用了(偶尔不太稳定)。 xdebug一般情况下只会对一个请求做profile记录,如果需要查看几个请求的运行情况合集,可以设置xdebug.ini的 xdebug.profiler_aggregate = 1 记得重启你的apache。 如果在xdebug.ini里设置了 xdebug.profiler_enable = 1 那么每次程序运行期间xdebug都会记录profile,这样对程序的运行速度有很大的影响。为了避免这一情况发生,可以让xdebug仅在需要的时候运行——设置 xdebug.profiler_enable_trigger = 1 这样,只有你用get/post方式提交XDEBUG_PROFILE变量的情况下,xdebug才会开始干活。 另:将最新版本的xdebug和APC同时使用,没有出现兼容性问题,运行良好。

  • 可以用button代替input type=”submit”吗

    在ie下,<button>标记恐怕还存在几个不大不小的问题。 在一个表单里,如果有一个以上”submit”类型的<button>标签存在,在表单被提交时,不管你点击哪个<button>,所有<button>的值都会被post/get。 <button>的缺省type属性被设置为”button”,但是在A级别浏览器下,应该设置为”submit”才对 如果你用javascript去访问<button>的value属性,IE却返回了<button>的innerHTML属性,很让人恼火。 (可以使用”getAttributeNode”方法来避免.) 例如,一段HTML: text 1 text 2 在IE下,上面两个button的数据都会被提交。并且ie会提交这两个button的innerText而不是value。而其它浏览器仅仅提交你点击的那个button。 以上,应该尽量避免使用button标记。

  • html里各种link标签的作用

    在打开wordpress页面的html源代码以后,能看到head标签里面有各式各样的link标签,想找到它们的确切作用以及出处,一直没有找到明确的说法,很是郁闷。 下面做个记录先: 这个看来是记录的博客RSS 2.0 / RSS 0.92 URL,在firefox中打开能看到地址栏最后面出现Feed图标,据说搜索引擎也会根据这个标签自动去爬行博客的RSS。但是我没找到这个标签的详细说明,仅仅在wikipedia上找到子言片语。 地址栏最前面的小图标…大家好像都认识的说 …….. blog的归档url,估计是供Search Engine爬行用的,曾经想把这段东东删掉…嘿嘿。 供livewriter之类的离线编辑器使用的? 样式表,不用说了。 以上标记俺目前都只是凭揣测来解释它的作用,如有路过的达人给出具体含义,感激不尽。 UPDATE 关于link标签里rel属性的作用

  • 很爽的vim motion操作

    在“一组能让你爽出内伤的 Vim motion”里头看到一组这样的vim操作: * ci[ 删除一对 [] 中的所有字符并进入插入模式 * ci( 删除一对 () 中的所有字符并进入插入模式 * ci< 删除一对 中的所有字符并进入插入模式 * ci{ 删除一对 {} 中的所有字符并进入插入模式 * cit 删除一对 HTML/XML 的标签内部的所有字符并进入插入模式 * ci” ci’ ci` 删除一对引号字符 (” 或 ‘ 或 `) 中所有字符并进入插入模式 使用了之后,用vim写php/html感觉效率高了很多。从上面的操作中进一步演化,还能有些实用的组合: * vi[ 选择一对 [] 中的所有字符 * vi( 选择一对 () 中的所有字符 * vi< 选择一对 中的所有字符 * vi{ […]

  • 使用memcache的几个优点

    最近在3个项目中都有用到memcache,这东东确实有出人意料的上佳表现,优点不少。 稳定,几个月以来,一同装上去的apache已重启过多次,这期间memcache一直踏踏实实干活,一点都不需要中途加油。 配置简单,那是相当的简单,几乎不用配置,一个命令行的守护进程跑下来,就可以不管了 多机分布式存储,每个前端机都能匀出一些内存来跑memcache,这些内存加在一起,总大小也是相当的客观,能够应付足够多的缓存数据,如果开启了memcache的压缩选项MEMCACHE_COMPRESSED,存储量还能有进一步提升。 速度快,这个论点需要数据支持,俺手头之前有一些不同数据量级下set/get的速度对比,但是这里不方便列出来 以上,俺认为memcache是前端缓存一个漂亮的解决方案

  • 参加中国网络侠客行工程师大会

    今天在杭州参加阿里巴巴举办的中国网络侠客行工程师大会,首日上午有php创始人Rasmus Lerdorf以及牛人Jeremy Zawodny,议题是PHP on hormones和Web Service APIs: From Mashups to new Businesses。 下午继续听了Rasmus Lerdorf的Performance and Security,他这次用cachegrind来做后端模块的性能分析,php方面直接使用xdebug+kcachegrind,这个组合相当之好,只可惜cachegrind一直没有freebsd下的版本,比较不爽。这期间因为语言不通,听的很累,同声翻译不是专业人士,翻译的也让人是很难受,好在幻灯早就看过,和最早的getting rich from php5很相似,有一些了解。 BTW:与会的学生那是相当之多:)

  • 初识Firebug 全文 — firebug的使用

    本文最初发表《程序员》杂志第三期,现将全文贴上,内容已经过编辑修饰了很多:) 什么是Firebug 从事了数年的Web开发工作,越来越觉得现在对WEB开发有了更高的要求。要写出漂亮的HTML代码;要编写精致的CSS样式表展示每个页面模块;要调试javascript给页面增加一些更活泼的要素;要使用Ajax给用户带来更好的体验。一个优秀的WEB开发人员需要顾及更多层面,才能交出一份同样优秀的作业。为帮助广大正处于Web2.0洪流中的开发人员,在这里为大家介绍一款轻巧灵活的辅助开发工具。 Firebug是Firefox下的一款开发类插件,现属于Firefox的五星级强力推荐插件之一。它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。Firebug如同一把精巧的瑞士军刀,从各个不同的角度剖析Web页面内部的细节层面,给Web开发者带来很大的便利。这是一款让人爱不释手的插件,如果你以前没有接触过它,也许在阅读本文之后,会有一试的欲望。笔者在撰写此文的时候,正逢Firebug发布1.0正式版,这不能不说是种巧合。

  • 初识firebug 发表了

    俺滴第一次投稿 ——《初识Firebug》在程序员第3期上发表了,样刊直到最近几天才看到。习惯在浏览器上阅读文字,看到纸质的杂志,却是另外一番感受。 Firebug是Firefox下的一款开发类插件,现属于Firefox的五星级强力推荐插件之一。它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。Firebug如同一把精巧的瑞士军刀,从各个不同的角度剖析Web页面内部的细节层面,给Web开发者带来很大的便利。这是一款让人爱不释手的插件,如果你以前没有接触过它,也许在阅读本文之后,会有一试的欲望。 在写这篇文章之前,我对firebug的理解程度也只是皮毛而已,实在是惭愧。做了些功课以后,越发能感觉到Firebug实在是不可多得的精品插件,的确能提高俺的工作效率,在此向所有web开发者推荐! 附: 初识firebug全文

  • Memcache的分布式应用

    早就听说memcached是一个不错的分布式内存缓存系统,做了些功课想把这memcache用到实际当中来.因为一个好的缓存系统,能给web应用带来不小的性能提升.做了一些功课之后,做了下面几点总结: memcache适合与web server安装在同一server上 memcache可以在n个端口开n个进程,如果和web server在同一机器的话,还能减少网络开销. 配置简单,启动一个进程就行了,免去了配置文件 我更关心的是,memcache的分布式应用应该如何部署.带着这个问题,我在各搜索引擎上做了进一步的功课.最初找到的办法是,首先启动n个memcache进程,这些进程可以在不同的server的不同端口上. 然后使用perl的api可以方便的一次链接多个memcache,存储读取机制不明.不久找到php的一个MemcachedClient类,基本上就是perl里api的再实现.它使用的fscokopen或者socket系列function来直接读取memcache—-这说明只要清楚memcache的网络协议,你甚至不用装什么php的memcache extenstion.看了这个类的实现,基本上弄清楚,它的分布式应用差不多就是将不同的key保存在不同的memcache daemon,不会保留多个副本,也就不存在多memcache同步的问题了. 过了不久俺又有发现,在最新的php手册上找到了memcache::addServer()这方法,它就是为分布式应用而产生的,有了这个支持的话,php的代码就更简单: <?php $memcache_obj = new Memcache; $memcache_obj->addServer(‘memcache_host’, 11211); $memcache_obj->addServer(‘failed_host’, 11211); $stats = $memcache_obj->getExtendedStats(); print_r($stats); ?> 看来php手册也要与时俱进啊,最好是能够直接使用英文版,否则也不会走这么多弯路了:) 官方站点 http://www.danga.com/memcached/