月归档:六月 2009

REPLACE INTO 为什么返回”2 rows affected”

表的结构: desc urls; +——-+———————+——+—–+———+——-+ | Field | Type                | Null | Key | Default | Extra | +——-+———————+——+—–+———+——-+ | id    | bigint(16) unsigned | NO   | PRI | NULL    |    … 继续阅读

发表在 未分类 | 2 条评论

我的vimrc 文件

嗯,给大家共享一下。都是从各地copy来的。 "vimim 相关 let g:vimim_enable_static_enu=1 "let g:vimim_enable_sexy_input_style=1 " 关闭中文标点 let g:vimim_disable_chinese_punctuation=1 "中英文之间不加空格 let g:vimim_disable_seamless_english_input=1     set dictionary-=/etc/funclist.txt dictionary+=/etc/funclist.txt "Use the dictionary completion set complete-=k complete+=k   "自动补全.. set completeopt=longest,menu     imap <C-L> <C-x><C-o> set nu autocmd FileType python … 继续阅读

发表在 vim, 未分类 | 标签为 | 3 条评论

python多线程程序的中断(信号)处理

python程序很容易进行多线程处理,也很好进行signal的处理。但是,在多线程程序中进行信号处理,却不太好搞。我琢磨出了一个可行的办法。 看第一个程序:singlethread.py #!/usr/bin/python #coding:utf-8 import signal,os,sys,threading,time import wk def sig_exit(): print “[end time]:”+str(time.time()) print “exited.” sys.exit() def handler(signum, frame): print “got an signal”,signum,frame if signum == 3: sig_exit() if signum == 2: sig_exit() if signum == 9: sig_exit() return None … 继续阅读

发表在 python | 标签为 , , | 留下评论

测试FusionIO:strict_sync太秀逗了…

这是一篇译文,原文地址是:   http://www.mysqlperformanceblog.com/2009/06/15/testing-fusionio-strict_sync-is-too-strict/ 随着新的更新FusionIO驱动的更新,我能够在我的戴尔R900与Ubuntu 8.10上进行尝鲜,而不再需要痛苦地编译驱动或是降级kernel.现在我决定测试一下strict_sync模式。 据我所知FusionIO默认情况下,比如英特尔的SSD ,是对应用程序“撒谎”了,fsync()并不是真正的发生了,它仍然只是提交到了内存而不是最终的磁盘。FusionIO还有一个“ strict_sync ”模式,可以保证fsync函数可靠地操作。 好啊兄弟,让我们来压一下性能—通常我在100w数据(约9GB数据),O_DIRECT模式下开着3GB的buffer_pool来搞这个测试。 原始测试数量参见这里 结果用TPM (每分钟的事务数)表示 ,这样更清楚一些。图形显示,结果是是随着时间[X轴]不断变化 。 这个图形已经很明显,我都不需要再用文字来说明了。。。 但是我没有测试,在断电的情况下,在默认模式下处理、结束事务的情况。这个需要读者您检查一下。 本文由蝌蚪安尼友情赞助.

发表在 mysql, 译文 | 标签为 , | 留下评论

怎样用一行脚本美化/etc/my.cnf文件

原文地址:http://www.mysqlperformanceblog.com/2009/06/15/how-to-pretty-print-mycnf-with-a-one-liner/ 当我在一台服务器上转悠时,我会经常想看看/etc/my.cnf文件格式,当然是想看格化美观,没有注释的。这样的一行Perl就能将美化输出文件: 1.perl -ne ‘m/^([^#][^\s=]+)\s*(=.*|)/ && printf(“%-35s%s\n”, $1, $2)’ /etc/my.cnf 2.[client] 3.port = 3306 4.socket = /var/run/mysqld/mysqld.sock 5.[ mysqld_safe ] 6.socket = /var/run/mysqld/mysqld.sock 7.nice = 0 8.[ mysqld ] 9.user = mysql 10.pid-file = /var/run/mysqld/mysqld.pid 11.socket = /var/run/mysqld/mysqld.sock 12.port = … 继续阅读

发表在 mysql, perl, 译文 | 标签为 , | 3 条评论

缓慢的drop table 操作

原文地址:http://www.mysqlperformanceblog.com/2009/06/16/slow-drop-table/ 大家都知道,Ext3并不是最有效的文件系统,例如,删除文件会非常缓慢(那真是一个痛苦的过程,不是吗老兄?),造成大量的随机I / O。然而事实上,有时候它比你想象的更能影响MySQL的性能。那么,什么时候会发生,又为什么会发生呢? 当您运行DROP TABLE时,会有好几件事情需要去做:对表进行write lock,这样它不会被其他线程使用;存储引擎删除数据文件;当然,最后MySQL会删除表定义文件(.frm文件)。这还不是所有的事,还有另外一件事需要去做: 代码: VOID(pthread_mutex_lock(&LOCK_open)); error= mysql_rm_table_part2(thd, tables, if_exists, drop_temporary, 0, 0); pthread_mutex_unlock(&LOCK_open); 这整段删除表操作的代码都被LOCK_open互斥信号量所包围。这个互斥信号量在MySQL中不少地方都用到过,但主要是表在开启或关闭的时候。这意味着,当LOCK_open锁定时,没有查询语句可以执行,因为他们阻止任何访问。 这就解释了在ext3文件系统上删除10GB的文件何时成为了痛苦的等待的开始。删除10GB的文件将持续一段时间,如果这是一个MySQL表,这段时间mutex里将会一直存在,而这个互斥会拖延所有查询。 纯文字 代码: +—–+——+———–+——+———+——+ —————-+——————————— —————+ | Id | User | Host | db | Command | Time | State | Info … 继续阅读

发表在 mysql, 译文 | 标签为 , , | 留下评论

好色的程序员:怎么加上彩色显示

问题列表 1.终端如何支持显示彩色      现代终端基本上都已经支持彩色显示了。【8色的显示屏是什么时候发明的?】 您可以在bash下用这段来试试:<coolcode> echo -e “\033[40;32mcolored text\033[0;0m” </coolcode> 如果这里出来的是彩色文字,那就说明您的终端是支持彩色显示的。如是没有出来彩色文字,那就,改您的终端类型。一般情况下您的终端软件可选的有vt100,vt102,vt220,vt320,linux,xterm等几种。我一般选linux. 2.终端颜色和颜色表:    要在终端中显示彩色文字,需要这样输出<coolcode> ESC[attr;frontcolor;backgroundcolor;m 要加彩色的文字。 </coolcode> ESC是ESCAPE键,它的ASC码是十进制的27,八进制的33.所以我们用echo -e “\033…”来输入。attr是要给文字设置的属性代号,frontcolor是文字颜色代号,backgroundcolor是文字背景色代码。这些代号及意义如下: <coolcode>   前景             背景              颜色     —————————————     30                40               黑色     31                41               紅色     32                42               綠色     33                43               黃色     34                44               藍色     35                45               紫紅色     36                46               青藍色     37                47               白色     代码              意义     ————————-     0                 OFF     1                 高亮显示     4                 underline     5                 闪烁     7                 反白显示     8                 不可见  … 继续阅读

发表在 linux/unix, python | 标签为 | 2 条评论

PHP注释查看器

今天用着pydoc用的特爽,特希望能够找到一个php下的查看注释的工具。php生成文档倒是有一个phpdocument,另外还有一个给c/c++生成文档的doxygen也能用来给php生成文档。可是就是都太麻烦。于是我的用py写了一个查看php的注释的,能够逐行读入php代码,区分用/*来给出的注释。目前只能查看phpdocument方式的注释,另外,类里面的函数不能正确给出类名。不过在很多情况下够用了。关键是小巧。  请在http://xurenlu.googlecode.com/files/phpcomment.py 这里下载。使用很简单。用 phpcomment.py < phpfile  或 phpcomment.py phpfile即可。   本文由蝌蚪安尼友情赞助.相关文章php高手之路之—屠龙宝刀Bug,又见Bug…Fedora 8显卡相关技巧小技术团队的成长php-APC介绍专业的与非专业的对比:金山的下载器做前端工程师的一点儿总结PHP版的slow-query项目进度

发表在 php技术, python | 标签为 , | 留下评论

完整解决vim不能记住上次的位置的问题

症状: 不能记住上次的位置: vim a 移到到第n行。关闭,再打开.vim 又回到了第1行。 跨文件复制粘贴时,报“寄存器里没有东西”.在文件a里复制,退出,打开b文件按P,无法复制。 解决: 1.在vim中输命令 :version 确认编译选项中有+viminfo. 2.若是ubuntu系统,请用update-alternatives –config vim 查看vim的具体版本。ubuntu有vim有vim.tiny,vim.gnome,vim.gtk等多个版本。如果是vim.tiny,将不支持 viminfo.[vim.tidy不支持很多特性,建议装完ubuntu即切换到vim.gnome.命令:update-alternatives --config vim] 3.在~/.vimrc文件中确认加上了: au BufReadPost * if line(”‘\”") > 0|if line(”‘\”") <= line(”$”)|exe(”norm       ‘\”")|else|exe “norm $”|endif|endifset viminfo=’1000,f1,<500 4.请ls ~/.viminfo ,结果大致如下: -rw——- 1 … 继续阅读

发表在 linux/unix | 标签为 | 留下评论

hyer开发笔记之:最大页面数的获取

搞垂直搜索(好吧,我承认我说得有点太高雅:搞网页采集)时,一般分这样两步: 搞到列表页,读出所有待抓取的内容页面。 挨个读取内容页面,解析出需要的信息,比如做购特搜索时需要采集商品名称,价格,描述,商品图片等 现在首先要解决的搞到列表页。拿到列表页时,有的同志很认真,就顺着那个下一页又一次地地抓取所有列表页面。其实不是特别必要。比如,bj.58.com的租房信息列表页,分了10000多页,光遍历这些列表页就需要好久。 hyer的处理方式是,把取到列表面的最大页面数做为一个任务,单独拿出来由一个专有模块去执行。逻辑是这样的: 首页你需要人工分析出列表面的URL的特征。58的那个很简单,一下子就能出来: <coolcode> http://bj.58.com/zufang/pn%d/ </coolcode> %d是分页数。 其次我们要找的时,找出一个字串,在页面数过大(就是一直翻下一页,发现没有下一页可以翻的那个识别串)。这里58的页面估计是用.net的控件拖的,所以就是访问一个不存在的分页,比如第10万页,他也有下一页的链的妆可以翻。这时我们取的是列表项里的一个字符串: <coolcode> “onmouseout=”this.style.background=’#F7F9FE” </coolcode> [顺便说一下,58的前端设计同学,这样写javascript不太好呀。]. 接下来,我们需要一页页地翻。(您要有疑问了,咦,说白了您也还是一页页地翻啊!) NO! 我们是用二分法的思维来试!首先我们一次跳2048页,从第一页,依次试了1,2048,4097等页. <coolcode> page: 1  is not max page page: 2049  is not max page page: 4097  is not max page page: 6145  is … 继续阅读

发表在 python | 标签为 , , | 留下评论