Alexa 排名 leakon.com

leakon.com 这个域名,我在 2004 年就注册了。

那个时候还不太懂技术,就租了一个虚拟主机,随便弄了几个 html 页面, 算是第一个我的个人网站。

后来,用 dreamweaver 弄了一个留言板,搞了一套韩国人做的模板,改成了一个小的动态个人网站。那是 2005 年的春节,马上大学毕业了。

考研来着,分数呢,四科总分加一起,还没人家最差的一门单科的分数高……

有了这个小网站的开发经历,也学了一点 ASP 方面的东西,到 5 月份就开始找工作。

6 月,到了以前的那个公司,开始搞 PHP。这算正式地、系统地学习一门新的语言,开发环境也完全变了,都是 FreeBSD。

我记得 2005 年那会儿,刚听说有 alexa 排名这个东西,后来查了一下,我的这个域名是 100 多万位,那会儿还挺满足的,心想,虽然名次低,但也算在世界排名上挂了号了,呵呵。

正式工作后,比较忙,一直没再管 leakon.com。

时隔 2 年,偶尔再查一下 alexa 排名,我已经降到 800 多万了……

后来,随着学到东西越来越多,发现以前熟悉的东西,长时间不用,就忘了。印象最深的就是半年前有一个想法,是利用 PHP 的一个很不常用的函数搞一个后台程序,那会儿只是实验性质的。

后来又有类似的需求时,怎么也想不起那个函数的名字,也不知道该如何描述,甚是苦闷。

我就想,应该把平时的积累存到一个记事本上,而现在的博客,就是一个很好的平台。

于是,6 月份,就用这个 wordpress 重新搭建了 leakon.com。

慢慢的,积累了几篇文章,大部分都是原创,我觉得,互联网需要丰富的内容,我们在不断获取他人经验的时候,也应该贡献一点自己的心得。最起码,记录下自己的技术积累,以后查的时候也比较方便。

无新插柳,又一次来到 alexa 居然看到自己的排名迅速狂飙!!!

前一段还不是很明显,只是从 800 多万上升到 400 多万。

现在查一下最近一周的排名,居然进前 100 万了!!

我觉得比较有意思的是另一项数据:三月变化趋势。

我的排名上升了 700 多万位!!!

开个玩笑说,如果是增幅的评比,恐怕可以进 Top 100 了吧。

用阿 Q 的思想,那么多烧钱的网站,搞了 2 年,alexa 增幅不过几千名,我这个网站 1 个月,增幅 700 万,是不是更厉害呀。

不过,目前还不是很稳定,说句实话,按照统计,这个 blog 每天也就 30 来个 PV,都是搜索引擎带过来的。

罗嗦半天,不如上几张图。这里可以查看最新的排名情况!

2007-9-7
alexa 2007-9-7

2007-9-11
alexa 2007-9-11

2007-9-13
alexa 2007-9-13

按过去一周的排名,又下降了不少。看来,这点 PV 还不足以稳固在 100 万以内。

这也告诉我,leakon.com 还缺少内容。

我会把我想的、做的都拿出来跟大家分享。

也请大家多支持我。

就 Web 2.0 的驱动力源泉分析,您的回复,或者参与,能够激发我更多的热情去贡献内容!

php|architect’s Guide to PHP Design Patterns PDF

Guide to PHP Design Patterns

ISBN 0-9735898-2-5 (php|architect NanoBooks)
336 pages
Publication Date: July 25th, 2005 (available for purchase now!)
Written by Jason E. Sweat
Technical review by Marcus Baker

Table of Contents

  1. Preface
  2. Programming Practices
  3. The ValueObject Pattern
  4. The Factory Pattern
  5. The Singleton Pattern
  6. The Registry Pattern
  7. The MockObject Pattern
  8. The Strategy Pattern
  9. The Iterator Pattern
  10. The Observer Pattern
  11. The Specification Pattern
  12. The Proxy Pattern
  13. The Decorator Pattern
  14. The Adapter Pattern
  15. The ActiveRecord Pattern
  16. The TableDataGateway Pattern
  17. The DataMapper Pattern
  18. The Model-View-Controller Pattern
  19. Conclusion

Appendices:

  1. Patterns Quick Reference
  2. SimpleTest Testing Practices

本地下载:http://down.leakon.com/software/2007/09/Guide_to_PHP_Design_Patterns.zip

php|architect’s Guide to PHP Security PDF

Guide to PHP Security


ISBN 0-9738621-0-6 (php|architect NanoBooks)
201 pages
Publication Date: September 5th, 2005 (Available now!)
Written by Ilia Alshanetsky
Technical review by Marco Tabini
With a Foreword by Rasmus Lerdorf

Table of Contents

  1. Input validation
  2. Cross-site Scripting Prevention
  3. SQL Injections
  4. Code Injections
  5. Command Injections
  6. Session Securitiy
  7. Securing File Access
  8. Security Through Obscurity
  9. Sandboxes and Tar Pits
  10. Securing Your Applications

本地下载:http://down.leakon.com/software/2007/09/Guide_to_PHP_Security.zip

xampp xdebug configure phpize php-config

看标题,不太会理解这篇文章的主题,只不过是有着微妙关联的几个软件,按照时间顺序发生在了我的身上。

xampp,是一个集成的 apache + php + mysql + … 的开发环境,如果你是做 web 开发,对各种服务器软件的安装比较头疼,尤其是在 unix 下编译和配置各种软件没有经验的时候,这个软件就能帮大忙了。只要下载回去,解压到 /opt 目录下,然后

#/opt/lampp/lampp start 即可!

/opt/lampp/htdocs 就是你的 web 根目录,所有的环境都默认配好了。

通常,我都是在 vmware 里安装一个 FreeBSD 6,然后装这个 xampp,就立刻有了一个开发环境。

后来, 需要用 xdebug 调试 php 程序,Windows 版的超级简单,下载一个 DLL 文件即可,但 Unix 版的必须得在本机环境中编译才行。

以前编译过 apache 和 php 等软件,第一步都是在安装目录执行 ./configure ,但解压完 xdebug 发现根本没有这个文件,上网站查文档,发现需要执行 phpize。

百度了一把,大概了解到,phpize 是根据源码包中的好像是 config.m4 这个文件,生成 configure 脚本的,目前来说,我也就能领悟到这个层次了。还好,我查了 /opt/lampp 目录下面,有这个 phpize 文件,可以执行。执行完了,目录下面果然出现了 configure 文件,这个 configure 文件会调用 php-config。

php-config 可能就是获得当前 php 的各种环境设置变量的,在编译 xdebug 这种 php 扩展的时候会用到。

用 phpize 和 php-config 做好 configure 后,就要用 make 编译 xdebug 了。

这个时候,问题来了,屏幕刷刷地显示了几屏错误信息后,停在一个严重错误的提示信息下面 。

说是 xdebug 的语法错误。

我想,不会吧,这么出名的开源软件,都是经过很多测试的,不至于编译都过不去。然后自己检查前面的每一项错误信息,都是提示一些  .h  文件找不到,关键的几行是 php/include 目录,编译程序要在这个目录下面找文件,但是这个目录不存在!

这个提醒了我,由于我的  apache 和 php 环境是 xampp 打包的,目录结构和默认的不一样,而且很多文件也没有在系统中注册,是无法自动找到的。

我到朋友的服务器上测试了一下,他的软件都是一项一项安装的,基本都是默认目录。果然不出所料,在那里配置和编译都没有问题。

大概找到了问题的根源,然后在自己的虚拟机上重新安装了 apache 和 php,都是默认安装,然后,重新编译  xdebug,这回可以顺利通过了!

解决 Failed to enable the ‘httpready’ Accept Filter

在 FreeBSD 下安装 apache22 会出现类似的 warming:
No such file or directory: Failed to enable the ‘httpready’ Accept Filter

解决方法是:
#kldload accf_http并在 /boot/defaults/loader.conf 中加入下面 2 行,以便下次启动自动装载模块
accf_data_load=”YES”
accf_http_load=”YES”

设置 innerHTML 属性 导致 未知的运行时错误 IE bug

在用 Javascript 更改 HTML 代码的时候,经常会用到某个对象的 innerHTML。在读写标签内的代码或字符串时非常方便。

但 IE 对这个属性的支持不太好,经常容易报出 “未知的运行时错误”,而同样的操作,在 FireFox 和 Opera 下面就都没问题。

到百度和 Google 查了下,发现是 IE 浏览器下,对 <table>、<tbody> 和 <tr> 等标签的 innerHTML 属性进行写操作时会报错。

应该是 IE 处理不当造成的。

目前没有很好的解决办法,只能采取改变 HTML 结构的方式,也就是说,不要对 <table> 等标签应用这个属性,改为对 <div>、<span> 和 <p> 等标签,就没问题了。

比如,运行下面的代码会报错:

Hello Leakon!

改变一下实现方式,就没问题了:

Hello Leakon!

Cygwin 完整安装 本地安装 Windows 模拟 Unix Linux FreeBSD 命令行的超级工具

你会使用 grep 吗?这个强大的文件内容查找工具,是 Unix 平台下非常好用的工具,可以用正则表达式在制定的目录下递归地搜索每一个文件中出现的匹配字符串,尤其是写程序时,想查看一下某个函数都在哪些文件中调用过,用 Windows 自带的工具是无法做到的。

再举令一个例子,程序开发人员,都会使用版本控制工具,例如 SVN 或 CVS,当我们把程序源码从版本库中 checkout 出来到本地目录后,会在每个目录下面生成一些结构复杂的隐藏目录,里面包含了版本控制的一些信息。当我们想从这个复杂的代码目录中找出干净的代码树,也就是不带版本控制信息的干净的代码目录,用 Windows 提供的工具根本无法做到,除非你有耐心,一个一个地删除数千个文件和文件夹。但是,在 Unix 下面,可以使用如下命令一次性删除这些目录和文件,以 SVN 为例:

$ du | grep ‘svn’ | awk ‘{print $2}’ | xargs rm -rf

过程就是列出所有的目录,把所有带 svn 字样的目录提取出来,去掉属性信息,用 rm 命令递归删除,多么简单!!!

同样的,有些顽固的病毒或者恶意程序,会在我们的硬盘中生成很多例如 ‘_desktop.ini’ 文件,每个目录下都有,手工删除太麻烦了,用批处理命令也很麻烦,不如用上面的例子说的简单。

现在,首要的问题是,这些命令只在 Unix 环境下有效,Windows 本身不带这些命令啊!

感谢伟大的技术天才们为我们开发出的超级命令行模拟器:Cygwin!!!

安装他以后,每次运行,就会生成一个跟 Unix 命令行一样的窗口,看上去很像 Windows 的 CMD,但仔细看,里面是我们熟悉的 bash 提示符!!

到哪里找这个软件呢?不用到处跑了,这里给你提供了打包的下载!

Cygwin.zip

下载完后,打开压缩包,setup.exe 是安装程序,Packages 目录是安装程序需要的所有其他程序的压缩包。

安装的时候不用再从网上下载了,直接选择本地安装就可以,非常快!

有任何疑问,欢迎给我留言回复,我会帮助大家解决问题的!

希望这个工具可以给你节省大量时间,把你的所有时间和精力都投入到无限的创新中去吧!

MySQL 数据导出 数据导入 备份 还原 编码 字符集

数据导出

完整数据库备份
mysqldump -uroot -p123456 –opt –default-character-set=gbk database_name > database_dump.sql

注意:

1 加上 ”

--opt

” 参数,就相当于同时加上了如下参数:
–add-drop-table –add-locks –create-options –disable-keys –extended-insert –lock-tables –quick –set-charset

2 必须指定字符集
–default-character-set=gbk
通常选择 gbk、utf8 或 latin1

数据导入

mysql -uroot -p123456 database_name < database_dump.sql

注意:

1 导入导出的字符集应该一样(讨论A)

关于备份文件(讨论A)

用文本编辑器打开 database_dump.sql 文件,在头部会有如下一行内容:

/*!40101 SET NAMES gbk */;

其中的 gbk 就是导出时指定的字符集,在导入到新数据库的时候,这条语句会告诉 MySQL 服务器当前的连接环境使用这个指定的字符集。

简单总结:

为了整体环境一致,也为了维护工作更简单,我建议如下几点:

1 在设计数据库、表、字段的时候,要全部保持一致的字符集,例如,我们全部都用 utf8;
2 在 PHP 和 MySQL 建立连接的时候,用

"SET NAMES utf8"

语句设置连接环境;
3 在 Web 页面的 HTML 代码中加入如下代码:

4 保存程序和模板文件的时候也用统一的 utf8 字符集保存

保证了上述 4 点,我们在开发 Web 应用中,就不会遇到任何编码的问题了。