Author Archive

一道有意思的Python小题目

最近刚学python,所以想加个群和大家一起讨论,也利于自己进步。结果进群时候,群主出了个题目:

用一行代码求两列表[5,7,9]和[2,8,3]下标对应项乘积之和。

刚开始我使用迭代计算的:

>>> num = 0
>>> for a, b in zip([5, 7, 9], [2, 8, 3]):
              num += a * b
>>> num

但是显然不是群主想要的答案,人家不给开门,郁闷~~

于是继续钻研,终于写出来啦:

>>> sum([a * [2, 8, 3][[5, 7, 9].index(a)] for a in [5, 7, 9]])

结果: 93

群主指点:

sum(x*y for x,y in zip([5,7,9],[2,8,3]))

好强悍的Python !~

Apache ab工具进行压力测试

Web开发中常用的工具

HTML: Adobe Dreamweaver, Editplus
Javascript: Adobe Dreamweaver
PHP: Zend Studio 5.5, Editplus
Actionscript: Flash Develop, Adobe Flash Professional, Adobe Flash Builder
Version Control: Subversion, TortoiseSVN, WebSvn
HTTP Monitor: HTTPWatch, Firebug, Charles
Mysql Management: PHPMyAdmin, Navicat For MySQL
Pressure Test: LoadRunner, Jmeter, Apache ab, Siege

刚刚在卓越网买了一本《Python基础教程》

Python基础教程

[转] 在生产环境中使用php性能测试工具xhprof

xhprof 是facebook 开源出来的一个 php 性能测试工具,也可以称之为 profile 工具,这个词不知道怎么翻译才比较达意。跟之前一直使用的 xdebug 相比,有很多类似之处。以前对 xdebug 有一些记录还可以供参考,但是它的缺点是对性能影响太大,即便是开启了 profiler_enable_trigger 参数,用在生产环境中也是惨不忍睹,cpu 立刻就飙到 high。

而 xhprof 就显得很轻量,是否记录 profile 可以由程序控制,因此,用在生产环境中也就成为一种可能。在它的文档上可以看到这样一种用法:

以万分之一的几率启用 xhprof,平时悄悄的不打枪。

if (mt_rand(1, 10000) == 1) {
    xhprof_enable(XHPROF_FLAGS_MEMORY);
    $xhprof_on = true;
}

在程序结尾处调用方法保存profile

if ($xhprof_on) {
// stop profiler
$xhprof_data = xhprof_disable();

// save $xhprof_data somewhere (say a central DB)

}

也可以用 register_shutdown_function 方法指定在程序结束时保存 xhprof 信息,这样就免去了结尾处判断,给个改写的不完整例子:

if (mt_rand(1, 10000) == 1) {
    xhprof_enable(XHPROF_FLAGS_MEMORY);
    register_shutdown_function(create_funcion(”, “$xhprof_data = xhprof_disable(); save $xhprof_data;”));
}

至于日志,我暂时用的是最土的文件形式保存,定期清除即可。

BTW:  xhprof  生成的图形方式 profile 真是酷毙了,哪段代码成为瓶颈,一目了然。

发现一个很漂亮的Linux发行版Mandriva

Mandriva 操作系统界面

[转] MySQL密码忘记的解决方法

最好用的mysql密码忘记的解决方法。经过测试,如果不能成功一般是你的mysql运行的不正常。

在Windows下:

打开命令行窗口,停止mysql服务:
Net stop mysql
启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe
执行:mysqld-nt –skip-grant-tables 当前窗口将会停止。
另外打开一个命令行窗口,执行mysql 如果提示没有这个命令,先进入MYSQL的安装位置下BIN目录再运行mysql
>use mysql
>update user set password=password(“new_password”) where user=”root”;
>flush privileges;
>exit
用Ctrl+Alt+Del,找到mysqld-nt的进程杀掉它,在重新启动mysql-nt服务,就可以用新密码登录了

在Linux下:

如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
启动 MySQL :bin/safe_mysqld –skip-grant-tables &
就可以不需要密码就进入 MySQL 了。
然后就是
>use mysql
>update user set password=password(“new_pass”) where user=”root”;
>flush privileges;
重新杀 MySQL ,用正常方法启动

浏览器对象模型BOM结构图

浏览器对象模型 BOM 结构图

HTMLEncode

function HTMLEncode(text) {  
    return  text.replace(/\”/g, ‘&quot;’).replace(/</g, ‘&lt;’).replace(/>/g, ‘&gt;’).replace(/\’/g, ‘&#039;’);
}

提升WEB性能的14条规则

1. 尽量减少 HTTP 请求
2. 使用 CDN (内容分发网络)
3. 添加 Expires 头
4. 启用 Gzip 压缩组件
5. 将样式表放在页面头部
6. 将脚本放在页面的尾部
7. 避免使用 CSS 表达式
8. 使用外部 CSS 和 JavaScript
9. 减少 DNS 查询
10. 精简 JavaScript
11. 避免重定向
12. 删除重复脚本
13. 配置 ETag
14. 使 Ajax 可缓存

Return top