博客园 - T2噬菌体
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=698278
2016-08-11T03:17:31Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
feed.cnblogs.com
https://www.cnblogs.com/leoo2sk/archive/2012/05/16/opdumper-and-web-opcode-dumper.html
发布一个查看PHP opcode的扩展模块及Web服务 - T2噬菌体
最近花了大约一星期的时间写了一个PHP扩展模块Opdumer,并封装成了Web服务(点击这里访问)。这个模块的主要内容是输出PHP代码对应的opcode。其实之前已经有一些用于查看opcode的扩展模块,如比较有名的vld。之所以重新实现一个这样的模块,主要是因为vld不支持PHP_FUNCTION API,也就是说vld只能用于CLI形式,而Opdumer同时拥有CLI API和PHP_FUNCTION API,另外,也想借助编写这个模块的机会学习Zend Engine中opcode的编译和执行机制。个人打算后面专门针对opcode的编译执行机制写一篇文章,而本文主要描述Opcode的使用方法及对应Web服务的使用。
2012-05-16T12:43:00Z
2012-05-16T12:43:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】最近花了大约一星期的时间写了一个PHP扩展模块Opdumer,并封装成了Web服务(点击这里访问)。这个模块的主要内容是输出PHP代码对应的opcode。其实之前已经有一些用于查看opcode的扩展模块,如比较有名的vld。之所以重新实现一个这样的模块,主要是因为vld不支持PHP_FUNCTION API,也就是说vld只能用于CLI形式,而Opdumer同时拥有CLI API和PHP_FUNCTION API,另外,也想借助编写这个模块的机会学习Zend Engine中opcode的编译和执行机制。个人打算后面专门针对opcode的编译执行机制写一篇文章,而本文主要描述Opcode的使用方法及对应Web服务的使用。 <a href="https://www.cnblogs.com/leoo2sk/archive/2012/05/16/opdumper-and-web-opcode-dumper.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2011/11/09/write-daemon-with-php.html
如何使用PHP编写daemon process - T2噬菌体
今天下午在segmentfault.com看到一个提问,提问标题是“PHP怎么做服务化”,其中问道php是不是只能以web方式调用。其实很多人对PHP的使用场景都有误解,认为php只能用于编写web脚本,实际上,从PHP4开始,php的使用场景早已不限于处理web请求。 从php的架构体系来说,php分为三个层次:sapi、php core和zend engine。php core本身和web没有任何耦合,php通过sapi与其它应用程序通信,例如mod_php就是为apache编写的sapi实现,同样,fpm是一个基于fastcgi协议的sapi实现,这些sapi都是与web server配合用于处理web请求的。但是也有许多sapi与web无关,例如cli sapi可以使得在命令行环境下直接执行php,embed sapi可以将php嵌入其它语言(如Lua)那样。这里我并不打算详细讨论php的架构体系和sapi的话题,只是说明从架构体系角度目前的php早已被设计为支持各种环境,而非为web独有。 除了架构体系的支持外,php丰富的扩展模块也为php在不同环境发挥作用提供了后盾,例如
2011-11-09T09:20:00Z
2011-11-09T09:20:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】今天下午在segmentfault.com看到一个提问,提问标题是“PHP怎么做服务化”,其中问道php是不是只能以web方式调用。其实很多人对PHP的使用场景都有误解,认为php只能用于编写web脚本,实际上,从PHP4开始,php的使用场景早已不限于处理web请求。 从php的架构体系来说,php分为三个层次:sapi、php core和zend engine。php core本身和web没有任何耦合,php通过sapi与其它应用程序通信,例如mod_php就是为apache编写的sapi实现,同样,fpm是一个基于fastcgi协议的sapi实现,这些sapi都是与web server配合用于处理web请求的。但是也有许多sapi与web无关,例如cli sapi可以使得在命令行环境下直接执行php,embed sapi可以将php嵌入其它语言(如Lua)那样。这里我并不打算详细讨论php的架构体系和sapi的话题,只是说明从架构体系角度目前的php早已被设计为支持各种环境,而非为web独有。 除了架构体系的支持外,php丰富的扩展模块也为php在不同环境发挥作用提供了后盾,例如 <a href="https://www.cnblogs.com/leoo2sk/archive/2011/11/09/write-daemon-with-php.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2011/11/07/zend-thread-safety.html
深入研究PHP及Zend Engine的线程安全模型 - T2噬菌体
在阅读PHP源码和学习PHP扩展开发的过程中,我接触到大量含有“TSRM”字眼的宏。通过查阅资料,知道这些宏与Zend的线程安全机制有关,而绝大多数资料中都建议按照既定规则使用这些宏就可以,而没有说明这些宏的具体作用。不知道怎么回事总是令人不舒服的,因此我通过阅读源码和查阅有限的资料简要了解一下相关机制,本文是我对研究内容的总结。 本文首先解释了线程安全的概念及PHP中线程安全的背景,然后详细研究了PHP的线程安全机制ZTS(Zend Thread Safety)及具体的实现TSRM,研究内容包括相关数据结构、实现细节及运行机制,最后研究了Zend对于单线程和多线程环境的选择性编译问题。
2011-11-07T05:56:00Z
2011-11-07T05:56:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】在阅读PHP源码和学习PHP扩展开发的过程中,我接触到大量含有“TSRM”字眼的宏。通过查阅资料,知道这些宏与Zend的线程安全机制有关,而绝大多数资料中都建议按照既定规则使用这些宏就可以,而没有说明这些宏的具体作用。不知道怎么回事总是令人不舒服的,因此我通过阅读源码和查阅有限的资料简要了解一下相关机制,本文是我对研究内容的总结。 本文首先解释了线程安全的概念及PHP中线程安全的背景,然后详细研究了PHP的线程安全机制ZTS(Zend Thread Safety)及具体的实现TSRM,研究内容包括相关数据结构、实现细节及运行机制,最后研究了Zend对于单线程和多线程环境的选择性编译问题。 <a href="https://www.cnblogs.com/leoo2sk/archive/2011/11/07/zend-thread-safety.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2011/10/02/nginx-memc-and-srcache.html
使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制 - T2噬菌体
为了提高性能,几乎所有互联网应用都有缓存机制,其中Memcache是使用非常广泛的一个分布式缓存系统。众所周知,LAMP是非常经典的Web架构方式,但是随着Nginx的成熟,越来越多的系统开始转型为LNMP(Linux+Nginx+MySQL+PHP with fpm),这是因为Nginx采用基于事件机制的I/O多路复用思想设计,在高并发情况下其性能远远优于默认采用prefork模式的Apache,另外,相对于Apache,Nginx更轻量,同时拥有大量优秀的扩展模块,使得在Nginx上可以实现一些美妙的功能。传统上,PHP中使用memcache的方法是使用php-memcache或php-memached扩展操作memcache,然而在Nginx上有构建更高效缓存机制的方法,本文将首先介绍这种机制,然后介绍具体的操作步骤方法,最后将对这种机制和传统的PHP操作memcache的性能进行一个benchmark。
2011-10-02T15:10:00Z
2011-10-02T15:10:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】为了提高性能,几乎所有互联网应用都有缓存机制,其中Memcache是使用非常广泛的一个分布式缓存系统。众所周知,LAMP是非常经典的Web架构方式,但是随着Nginx的成熟,越来越多的系统开始转型为LNMP(Linux+Nginx+MySQL+PHP with fpm),这是因为Nginx采用基于事件机制的I/O多路复用思想设计,在高并发情况下其性能远远优于默认采用prefork模式的Apache,另外,相对于Apache,Nginx更轻量,同时拥有大量优秀的扩展模块,使得在Nginx上可以实现一些美妙的功能。传统上,PHP中使用memcache的方法是使用php-memcache或php-memached扩展操作memcache,然而在Nginx上有构建更高效缓存机制的方法,本文将首先介绍这种机制,然后介绍具体的操作步骤方法,最后将对这种机制和传统的PHP操作memcache的性能进行一个benchmark。 <a href="https://www.cnblogs.com/leoo2sk/archive/2011/10/02/nginx-memc-and-srcache.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2011/08/11/consistent-hashing-intro.html
一致性哈希算法及其在分布式系统中的应用 - T2噬菌体
本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。
2011-08-11T12:12:00Z
2011-08-11T12:12:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。 <a href="https://www.cnblogs.com/leoo2sk/archive/2011/08/11/consistent-hashing-intro.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2011/07/10/mysql-index.html
MySQL索引背后的数据结构及算法原理 - T2噬菌体
本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为四个部分。第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。第二部分结合MySQL数据库中MyISAM和InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题。第三部分根据上面的理论基础,讨论MySQL中高性能使用索引的策略。
2011-07-10T15:40:00Z
2011-07-10T15:40:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为四个部分。第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。第二部分结合MySQL数据库中MyISAM和InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题。第三部分根据上面的理论基础,讨论MySQL中高性能使用索引的策略。 <a href="https://www.cnblogs.com/leoo2sk/archive/2011/07/10/mysql-index.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2011/07/01/temod-intro.html
在SeaJS中实现html模板文件的加载(Temod介绍) - T2噬菌体
在几天前的一篇文章中,我介绍了JavaScript的模块化加载框架SeaJS。目前SeaJS支持js和css的模块化加载。在实际应用中,可能会遇到需要加载html页面模板文件的场景,例如我接触的某些应用使用Template Toolkit(以下简称TT)写页面模板,然后由js载入TT模板后渲染输出,在这种纯JavaScript渲染的Web架构中,需要将tt文件(或其它格式html模板文件)作为模块载入。由于JavaScript不支持类似于php heredoc那样的长字符串写法,所以手工做这种转换会比较纠结,而且还要处理特殊字符转义、html压缩等繁琐事情,当模板文件比较多时全手工实现费时费力还容易出错。所以我写了一个小工具temod,temod可以将html或tt等页面模板文件编译成符合CommonJS规范的module,这样任何实现了CommonJS规范的模块加载框架(如SeaJS)就可以将编译好的文件作为普通模板加载进来。
2011-07-01T07:58:00Z
2011-07-01T07:58:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】在几天前的一篇文章中,我介绍了JavaScript的模块化加载框架SeaJS。目前SeaJS支持js和css的模块化加载。在实际应用中,可能会遇到需要加载html页面模板文件的场景,例如我接触的某些应用使用Template Toolkit(以下简称TT)写页面模板,然后由js载入TT模板后渲染输出,在这种纯JavaScript渲染的Web架构中,需要将tt文件(或其它格式html模板文件)作为模块载入。由于JavaScript不支持类似于php heredoc那样的长字符串写法,所以手工做这种转换会比较纠结,而且还要处理特殊字符转义、html压缩等繁琐事情,当模板文件比较多时全手工实现费时费力还容易出错。所以我写了一个小工具temod,temod可以将html或tt等页面模板文件编译成符合CommonJS规范的module,这样任何实现了CommonJS规范的模块加载框架(如SeaJS)就可以将编译好的文件作为普通模板加载进来。 <a href="https://www.cnblogs.com/leoo2sk/archive/2011/07/01/temod-intro.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2011/06/27/write-javascript-with-seajs.html
使用SeaJS实现模块化JavaScript开发 - T2噬菌体
SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制。与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载。SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载,将前端工程师从繁重的JavaScript文件及对象依赖处理中解放出来,可以专注于代码本身的逻辑。SeaJS可以与jQuery这类框架完美集成。使用SeaJS可以提高JavaScript代码的可读性和清晰度,解决目前JavaScript编程中普遍存在的依赖关系混乱和代码纠缠等问题,方便代码的编写和维护。SeaJS的作者是淘宝前端工程师玉伯。SeaJS本身遵循KISS(Keep It Simple, Stupid)理念进行开发,其本身仅有个位数的API,因此学习起来毫无压力。在学习SeaJS的过程中,处处能感受到KISS原则的精髓——仅做一件事,做好一件事。本文首先通过一个例子直观对比传统JavaScript编程和使用SeaJS的模块化JavaScript编程
2011-06-27T00:20:00Z
2011-06-27T00:20:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制。与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载。SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载,将前端工程师从繁重的JavaScript文件及对象依赖处理中解放出来,可以专注于代码本身的逻辑。SeaJS可以与jQuery这类框架完美集成。使用SeaJS可以提高JavaScript代码的可读性和清晰度,解决目前JavaScript编程中普遍存在的依赖关系混乱和代码纠缠等问题,方便代码的编写和维护。SeaJS的作者是淘宝前端工程师玉伯。SeaJS本身遵循KISS(Keep It Simple, Stupid)理念进行开发,其本身仅有个位数的API,因此学习起来毫无压力。在学习SeaJS的过程中,处处能感受到KISS原则的精髓——仅做一件事,做好一件事。本文首先通过一个例子直观对比传统JavaScript编程和使用SeaJS的模块化JavaScript编程 <a href="https://www.cnblogs.com/leoo2sk/archive/2011/06/27/write-javascript-with-seajs.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2011/04/19/nginx-module-develop-guide.html
Nginx模块开发入门 - T2噬菌体
本文将会重点关注Nginx模块开发入门及基础。目前Nginx的学习资料非常少,而扩展模块开发相关的资料几乎只有《Emiller's Guide To Nginx Module Development》一文,此文十分经典,但是由于Nginx版本的演进,其中少许内容可能有点过时。本文是笔者在研读这篇文章和Nginx源代码的基础上,对自己学习Nginx模块开发的一个总结。本文将通过一个完整的模块开发实例讲解Nginx模块开发的入门内容。
2011-04-19T05:03:00Z
2011-04-19T05:03:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】本文将会重点关注Nginx模块开发入门及基础。目前Nginx的学习资料非常少,而扩展模块开发相关的资料几乎只有《Emiller's Guide To Nginx Module Development》一文,此文十分经典,但是由于Nginx版本的演进,其中少许内容可能有点过时。本文是笔者在研读这篇文章和Nginx源代码的基础上,对自己学习Nginx模块开发的一个总结。本文将通过一个完整的模块开发实例讲解Nginx模块开发的入门内容。 <a href="https://www.cnblogs.com/leoo2sk/archive/2011/04/19/nginx-module-develop-guide.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2011/03/03/computational-reuse.html
程序设计中的计算复用(Computational Reuse) - T2噬菌体
<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053017194921.gif" class="desc_img"/>本文简要论述了计算复用(Computational Reuse)的基本概念及作用,通过计算斐波那契数列和Strassen算法两个例子展示了计算复用,然后,本文论述了计算复用思想对非数值计算程序开发的启示。
2011-03-03T10:25:00Z
2011-03-03T10:25:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053017194921.gif" class="desc_img"/>本文简要论述了计算复用(Computational Reuse)的基本概念及作用,通过计算斐波那契数列和Strassen算法两个例子展示了计算复用,然后,本文论述了计算复用思想对非数值计算程序开发的启示。 <a href="https://www.cnblogs.com/leoo2sk/archive/2011/03/03/computational-reuse.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2011/02/27/php-gc.html
浅谈PHP5中垃圾回收算法(Garbage Collection)的演化 - T2噬菌体
<img src="http://pic002.cnblogs.com/images/2010/31860/2010120916281574.gif" class="desc_img"/>PHP是一门托管型语言,在PHP编程中程序员不需要手工处理内存资源的分配与释放(使用C编写PHP或Zend扩展除外),这就意味着PHP本身实现了垃圾回收机制(Garbage Collection)。现在如果去PHP官方网站(php.net)可以看到,目前PHP5的两个分支版本PHP5.2和PHP5.3是分别更新的,这是因为许多项目仍然使用5.2版本的PHP,而5.3版本对5.2并不是完全兼容。PHP5.3在PHP5.2的基础上做了诸多改进,其中垃圾回收算法就属于一个比较大的改变。本文将分别讨论PHP5.2和PHP5.3的垃圾回收机制,并讨论这种演化和改进对于程序员编写PHP的影响以及要注意的问题。
2011-02-26T16:10:00Z
2011-02-26T16:10:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】<img src="http://pic002.cnblogs.com/images/2010/31860/2010120916281574.gif" class="desc_img"/>PHP是一门托管型语言,在PHP编程中程序员不需要手工处理内存资源的分配与释放(使用C编写PHP或Zend扩展除外),这就意味着PHP本身实现了垃圾回收机制(Garbage Collection)。现在如果去PHP官方网站(php.net)可以看到,目前PHP5的两个分支版本PHP5.2和PHP5.3是分别更新的,这是因为许多项目仍然使用5.2版本的PHP,而5.3版本对5.2并不是完全兼容。PHP5.3在PHP5.2的基础上做了诸多改进,其中垃圾回收算法就属于一个比较大的改变。本文将分别讨论PHP5.2和PHP5.3的垃圾回收机制,并讨论这种演化和改进对于程序员编写PHP的影响以及要注意的问题。 <a href="https://www.cnblogs.com/leoo2sk/archive/2011/02/27/php-gc.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2011/01/16/function-declaration-and-expression.html
关于JavaScript中Function Declaration与Function Expression的进一步说明 - T2噬菌体
<img src="http://pic002.cnblogs.com/images/2010/31860/2010122423325474.png" class="desc_img"/>我在1月12日发表了《解读ECMAScript[2]——函数、构造器及原型》一文,文中提到了函数声明(Function Declaration)与函数表达式(Function Expression)的概念。在那篇文章中,重点对两者与ECMAScript内置对象Function之间的关系进行了论述,而对两者的区别未加以详细说明。昨天晚上对Web前端颇有研究的jee.chang.sh同学在GTalk上提醒了我这个问题,并说很多初学者经常因为未注意到两者的区别而犯错,希望我能在博客中阐述两者的区别。因此我决定单独写一篇文章来简要论述一下在《解读ECMAScript[2]——函数、构造器及原型》中未尽的事宜。
2011-01-16T08:42:00Z
2011-01-16T08:42:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】<img src="http://pic002.cnblogs.com/images/2010/31860/2010122423325474.png" class="desc_img"/>我在1月12日发表了《解读ECMAScript[2]——函数、构造器及原型》一文,文中提到了函数声明(Function Declaration)与函数表达式(Function Expression)的概念。在那篇文章中,重点对两者与ECMAScript内置对象Function之间的关系进行了论述,而对两者的区别未加以详细说明。昨天晚上对Web前端颇有研究的jee.chang.sh同学在GTalk上提醒了我这个问题,并说很多初学者经常因为未注意到两者的区别而犯错,希望我能在博客中阐述两者的区别。因此我决定单独写一篇文章来简要论述一下在《解读ECMAScript[2]——函数、构造器及原型》中未尽的事宜。 <a href="https://www.cnblogs.com/leoo2sk/archive/2011/01/16/function-declaration-and-expression.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2011/01/12/ecmascript-function.html
解读ECMAScript[2]——函数、构造器及原型 - T2噬菌体
<img src="http://pic002.cnblogs.com/images/2010/31860/2010122423325474.png" class="desc_img"/>上一篇文章简要解读了ECMAScript中关于执行环境、作用域和闭包的基本概念。这一篇文章将在上一篇文章的基础上,重点讨论ECMAScript中的函数(function),以及与其相关的构造器(Constructor)和原型(Prototype)。如不做特殊说明,本文小写开头的“function”指“函数”,而大写开头的“Function”特指ECMAScript中的内置“Function”对象,请注意辨析。
2011-01-12T13:37:00Z
2011-01-12T13:37:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】<img src="http://pic002.cnblogs.com/images/2010/31860/2010122423325474.png" class="desc_img"/>上一篇文章简要解读了ECMAScript中关于执行环境、作用域和闭包的基本概念。这一篇文章将在上一篇文章的基础上,重点讨论ECMAScript中的函数(function),以及与其相关的构造器(Constructor)和原型(Prototype)。如不做特殊说明,本文小写开头的“function”指“函数”,而大写开头的“Function”特指ECMAScript中的内置“Function”对象,请注意辨析。 <a href="https://www.cnblogs.com/leoo2sk/archive/2011/01/12/ecmascript-function.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2010/12/28/design-pattern-quick-start.html
设计模式速查手册-创建型 - T2噬菌体
<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053116302125.gif" class="desc_img"/>这篇文章是对设计模式的简要说明,仅包含模式的名称、简要说明、结构类图和结构示例代码,可用于快速浏览、回顾、查询及复习设计模式,模式的意图和使用场合来自作者的个人实践总结,虽然示例代码使用C#,但是尽量不会用到C#中特有的特性、接口及方法,而是起到一个通用框架说明的作用。
2010-12-28T14:46:00Z
2010-12-28T14:46:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053116302125.gif" class="desc_img"/>这篇文章是对设计模式的简要说明,仅包含模式的名称、简要说明、结构类图和结构示例代码,可用于快速浏览、回顾、查询及复习设计模式,模式的意图和使用场合来自作者的个人实践总结,虽然示例代码使用C#,但是尽量不会用到C#中特有的特性、接口及方法,而是起到一个通用框架说明的作用。 <a href="https://www.cnblogs.com/leoo2sk/archive/2010/12/28/design-pattern-quick-start.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2010/12/19/ecmascript-scope.html
解读ECMAScript[1]——执行环境、作用域及闭包 - T2噬菌体
<img src="http://pic002.cnblogs.com/images/2010/31860/2010122423325474.png" class="desc_img"/>首先说明,对于JavaScript这门脚本语言,我是个菜鸟。虽然也写过不少JavaScript代码,但一直是不求甚解,直到最近才开始系统学习这门语言。学习的原因是我即将毕业,过了年就要正式工作了,而我要入职的职位对JavaScript有一定要求,所以我就在准备毕业答辩之余,挤时间学习JavaScript。我学习语言习惯从标准入手,所以我最近研读了《Standard ECMA-262 3th edition》。虽然ECMAScript不完全等价于JavaScript,但是它相当于JavaScript在语言范畴内的标准,详细定义了其实现的特性及行为(JavaScript是ECMAScript的一个实现),所以我相信研读ECMA-262是学好JavaScript的第一步。在学习中,我发现ECMAScript的标准定义很特别,很多地方容易让人迷惑和混淆,同时也有一些很有意思的特性,所以我决定分几个主题系统总结
2010-12-19T15:57:00Z
2010-12-19T15:57:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】<img src="http://pic002.cnblogs.com/images/2010/31860/2010122423325474.png" class="desc_img"/>首先说明,对于JavaScript这门脚本语言,我是个菜鸟。虽然也写过不少JavaScript代码,但一直是不求甚解,直到最近才开始系统学习这门语言。学习的原因是我即将毕业,过了年就要正式工作了,而我要入职的职位对JavaScript有一定要求,所以我就在准备毕业答辩之余,挤时间学习JavaScript。我学习语言习惯从标准入手,所以我最近研读了《Standard ECMA-262 3th edition》。虽然ECMAScript不完全等价于JavaScript,但是它相当于JavaScript在语言范畴内的标准,详细定义了其实现的特性及行为(JavaScript是ECMAScript的一个实现),所以我相信研读ECMA-262是学好JavaScript的第一步。在学习中,我发现ECMAScript的标准定义很特别,很多地方容易让人迷惑和混淆,同时也有一些很有意思的特性,所以我决定分几个主题系统总结 <a href="https://www.cnblogs.com/leoo2sk/archive/2010/12/19/ecmascript-scope.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2010/12/15/cnblogs-code-plugin.html
发布一个博客园专用Windows Live Writer代码插件 - T2噬菌体
<img src="http://pic002.cnblogs.com/images/2010/31860/2010121523585375.png" class="desc_img"/>一直用Windows Live Writer写博客,不过没找到能与博客园配合得很好的代码插件,每次写完文章发布到博客园总要手动修改代码。所以我自己写了一个博客园专用的Windows Live Writer代码插件(我知道这世界上已经有N个代码插件,好吧,我承认我手贱O(∩_∩)O~)。代码是通过syntaxhighlighter渲染的,插件根据博客园的特点定制了特殊的html格式。
2010-12-15T15:53:00Z
2010-12-15T15:53:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】<img src="http://pic002.cnblogs.com/images/2010/31860/2010121523585375.png" class="desc_img"/>一直用Windows Live Writer写博客,不过没找到能与博客园配合得很好的代码插件,每次写完文章发布到博客园总要手动修改代码。所以我自己写了一个博客园专用的Windows Live Writer代码插件(我知道这世界上已经有N个代码插件,好吧,我承认我手贱O(∩_∩)O~)。代码是通过syntaxhighlighter渲染的,插件根据博客园的特点定制了特殊的html格式。 <a href="https://www.cnblogs.com/leoo2sk/archive/2010/12/15/cnblogs-code-plugin.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2010/12/09/talk-about-php-ext-develop-basic.html
PHP Extension的开发基础 - T2噬菌体
<img src="http://pic002.cnblogs.com/images/2010/31860/2010120916281574.gif" class="desc_img"/>PHP是当前应用非常广泛的一门语言,从国外的Facebook、Twitter到国内的淘宝、腾讯、百度再到互联网上林林总总的各种大中小型网站都能见到它的身影。PHP的成功,应该说很大程度上依赖于其开放的扩展API机制和丰富的扩展组件(PHP Extension),正是这些扩展组件使得PHP从各种数据库操作到XML、JSON、加密、文件处理、图形处理、Socket等领域无所不能。有时候开发人员可能需要开发自己的PHP扩展,当前PHP5的扩展机制是基于Zend API的,Zend API提供了丰富的接口和宏定义,加上一些实用工具,使得PHP扩展开发起来难度并不算特别大。本文将介绍关于PHP扩展组件开发的基本知识,并通过一个实例展示开发PHP扩展的基本过程。
2010-12-09T08:20:00Z
2010-12-09T08:20:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】<img src="http://pic002.cnblogs.com/images/2010/31860/2010120916281574.gif" class="desc_img"/>PHP是当前应用非常广泛的一门语言,从国外的Facebook、Twitter到国内的淘宝、腾讯、百度再到互联网上林林总总的各种大中小型网站都能见到它的身影。PHP的成功,应该说很大程度上依赖于其开放的扩展API机制和丰富的扩展组件(PHP Extension),正是这些扩展组件使得PHP从各种数据库操作到XML、JSON、加密、文件处理、图形处理、Socket等领域无所不能。有时候开发人员可能需要开发自己的PHP扩展,当前PHP5的扩展机制是基于Zend API的,Zend API提供了丰富的接口和宏定义,加上一些实用工具,使得PHP扩展开发起来难度并不算特别大。本文将介绍关于PHP扩展组件开发的基本知识,并通过一个实例展示开发PHP扩展的基本过程。 <a href="https://www.cnblogs.com/leoo2sk/archive/2010/12/09/talk-about-php-ext-develop-basic.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2010/11/30/aop-postsharp.html
使用PostSharp在.NET平台上实现AOP - T2噬菌体
<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053016573336.gif" class="desc_img"/>本文首先介绍AOP(面向方面编程)的相关概念及理论,然后介绍如何使用PostSharp框架在.NET平台上实现AOP,最后对PostSharp的机制及AOP的优劣进行一个简单的分析。
2010-11-30T12:06:00Z
2010-11-30T12:06:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053016573336.gif" class="desc_img"/>本文首先介绍AOP(面向方面编程)的相关概念及理论,然后介绍如何使用PostSharp框架在.NET平台上实现AOP,最后对PostSharp的机制及AOP的优劣进行一个简单的分析。 <a href="https://www.cnblogs.com/leoo2sk/archive/2010/11/30/aop-postsharp.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2010/10/18/1854658.html
对一道面试题的总结与扩展思考(关于一笔画问题的数学分析) - T2噬菌体
<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053017194921.gif" class="desc_img"/>前几天参加了一个公司的面试,其中被问到了一个题。面试官在纸上画了一个图形(具体图形见下文),问我能不能一笔画出这个图形,要求每条边必须只走一次,并且画的过程中笔不能离开纸。当时我没有试着去画 ,而是凭着自己图论方面的知识在几秒钟之内告诉面试官不可能做到,然后简单说了一下理由。面试结束后我翻阅了图论相关的资料,发现当时自己虽然给出了正确答案,但理由并不完全正确。昨天我花了几个小时仔细研究了一下相关的理论,总结了一下这类问题的类型和解法,写成此文,分享给大家。
2010-10-18T09:32:00Z
2010-10-18T09:32:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053017194921.gif" class="desc_img"/>前几天参加了一个公司的面试,其中被问到了一个题。面试官在纸上画了一个图形(具体图形见下文),问我能不能一笔画出这个图形,要求每条边必须只走一次,并且画的过程中笔不能离开纸。当时我没有试着去画 ,而是凭着自己图论方面的知识在几秒钟之内告诉面试官不可能做到,然后简单说了一下理由。面试结束后我翻阅了图论相关的资料,发现当时自己虽然给出了正确答案,但理由并不完全正确。昨天我花了几个小时仔细研究了一下相关的理论,总结了一下这类问题的类型和解法,写成此文,分享给大家。 <a href="https://www.cnblogs.com/leoo2sk/archive/2010/10/18/1854658.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/leoo2sk/archive/2010/10/01/hash-and-encrypt.html
哈希(Hash)与加密(Encrypt)的基本原理、区别及工程应用 - T2噬菌体
<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053017194921.gif" class="desc_img"/>今天看到吉日嘎拉的一篇关于管理软件中信息加密和安全的文章,感觉非常有实际意义。文中作者从实践经验出发,讨论了信息管理软件中如何通过哈希和加密进行数据保护。但是从文章评论中也可以看出很多朋友对这个方面一些基本概念比较模糊,这样就容易“照葫芦画瓢”,不能根据自身具体情况灵活选择和使用各种哈希和加密方式。本文不对哈希和加密做过于深入的讨论,而是对哈希和加密的基本概念和原理进行阐述、比较,并结合具体实践说明如何选择哈希和加密算法、如何提高安全性等问题,使朋友们做到“知其然,知其所以然”,这样就能通过分析具体情况,灵活运用哈希和加密保护数据。
2010-09-30T16:09:00Z
2010-09-30T16:09:00Z
T2噬菌体
https://www.cnblogs.com/leoo2sk/
【摘要】<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053017194921.gif" class="desc_img"/>今天看到吉日嘎拉的一篇关于管理软件中信息加密和安全的文章,感觉非常有实际意义。文中作者从实践经验出发,讨论了信息管理软件中如何通过哈希和加密进行数据保护。但是从文章评论中也可以看出很多朋友对这个方面一些基本概念比较模糊,这样就容易“照葫芦画瓢”,不能根据自身具体情况灵活选择和使用各种哈希和加密方式。本文不对哈希和加密做过于深入的讨论,而是对哈希和加密的基本概念和原理进行阐述、比较,并结合具体实践说明如何选择哈希和加密算法、如何提高安全性等问题,使朋友们做到“知其然,知其所以然”,这样就能通过分析具体情况,灵活运用哈希和加密保护数据。 <a href="https://www.cnblogs.com/leoo2sk/archive/2010/10/01/hash-and-encrypt.html" target="_blank">阅读全文</a>