Cosmetology Sale adipex Tramadol online Best car insurance Cheap aciphex Vonage Purchase soma online On line car insurance quote Zithromax City Vardenafil For online trading Porn Super bowl xliii Car and insurance Cash advance payday loan Pctools spyware doctor Ultracet Full tilt poker Cheap flights Avg Xanax weight loss Casino betting Aciphex medication California homeowner insurance Purchase adipex Buy zithromax State Herbal Phentermine Spybot Ativan Zyban Purchase viagra Tadalafil vardenafil Free online car insurance quote Term life insurance policy Cheap car insurance quote Generic cialis online Duromine (Brand Ionamin) Order soma online Bad credit personal loans Football handicappers Psychologist Medical assistants Diet pills phentermine Foreclosure Tramadol cod Tramadol on line Payday loans Adalat Cialis for sale Consolidate credit card debt Buy nexium Allegra Get out of debt Rent Refinance Buy lortab Adware Texas electric companies 

In Memory of Michael Jackson

June 26th, 2009

北京时间6月26日,一代歌王迈克尔·杰克逊因心脏停动在洛杉矶逝世,享年50岁。

伴随了大多数人多年时光的天王Michael Jackson忽然间就逝去了,耀眼和平凡都是一瞬间的事情,Heal the World言犹在耳,却无法拯救自己。

对这位全球以个人名义资助慈善事业最多的人,我们心存敬意。

kamus Misc

How to tuning your wordpress blog

June 18th, 2009

因为最近提供了Free Hosting的计划,有不少朋友入住我共享的免费虚拟主机,也给每个朋友都安装了Wordpress(之前是2.7版本,现在登陆后台界面应该已经可以看到升级到2.8的提示了,不用担心,直接点Upgrade升级吧)。

如何让你的Wordpress Blog显得更专业,更美观,更让他人容易浏览呢?总结一下这几年自己用Wordpress的心得。

1. 选择合适的Theme
如果是技术性的blog,会粘贴大量的实验代码(包括SQL语句等)请选择两栏的Theme,其实就是让文章区更宽一些,这样可以容纳下绝大多数长度的SQL语句和输出结果,而三栏的Theme由于要预留两个侧边栏,通常文章区就比较窄,这样很多SQL语句会换行,让他人浏览起来很不舒服。

2. 首页全文输出
作为个人blog,如果不在乎你的首页到底有多长(再长恐怕也长不过新浪、网易啥的首页吧),也并不在乎你到底能获得多少点击率,那么还是在首页全文显示文章吧,没有”Read More”可以让别人少进行一次鼠标点击,这是很体贴的设计。

3. RSS全文输出
同样,对于RSS聚合输出,也请输出全文,这样方便通过RSS阅读器订阅你的blog的人群,我个人就很讨厌在Google Reader中只能看到一篇文章第一段话前几句的这种情况。对于RSS聚合,推荐使用Feedburner或者国内的Feedsky进行RSS烧制。这样做的好处是,统一且更加灵活设置RSS输出格式,另外,即使以后你改变了自己的域名,也只需要在feedburner中绑定一下新域名即可,对于其它订阅者来说,仍然是之前的RSS地址。

4. 代码美化插件
对于粘贴代码的文章,请一定要使用语法高亮的插件来进行美化,最常用的插件是WP-Syntax,在最新版本的Wordpress中可以直接从后台进行插件的安装(Plugins->Add New->Search Plugins),非常方便。

这是没有美化过的效果。
SQL> DROP tablespace SUMM_DATA07;
DROP tablespace SUMM_DATA07
*
ERROR at line 1:
ORA-14404: partitioned TABLE contains partitions IN a different tablespace appears.

这是美化过后的效果。

SQL> DROP tablespace SUMM_DATA07;
DROP tablespace SUMM_DATA07
                *
ERROR at line 1:
ORA-14404: partitioned TABLE contains partitions IN a different tablespace appears.

发表完文章之后自己先读一下,错别字尽量改正,自己看着舒服,别人才可能觉得赏心悦目。请以专业的心态对待自己的每一篇文章。

5. 垃圾留言屏蔽插件
垃圾留言是每个blogger头疼的事情,幸好有优秀的Spam Block插件可以使用,在新版的Wordpress中自带了Akismet,但是启用这个插件需要一个Wordpress.com API Key,这个Key可以通过免费注册Wordpress.com用户来获取,但是很可惜Wordpress.com在国内被GFW了,有需要的朋友可以翻墙出去。如何翻墙,可以查看这篇经典的翻墙教程

在注册完Wordpress.com用户之后,可以通过后台管理界面的Users->Your Profile页面获知自己的API Key。大致信息如下。

如果确实无法注册Wordpress.com用户,无法得到API Key,也就无法启用Akismet,那么推荐使用Spam Karma 2插件,后台安装之后,几乎无需任何设置,也能很有效地进行垃圾留言屏蔽。

6. 数据库备份
作为一个Oracle技术人员,备份是时刻要放在心上的,那么对于Wordpress来说,后台使用的MySQL数据库也同样需要经常备份。同样可以通过插件来实现 – WP-DBManager,此插件可以实现定期对Wordpress后台数据库惊醒备份,并将备份文件压缩发送至指定的邮件地址。

7. 贴图
如果要贴图,我通常都是将图片通过Picasa3传到Google Web Album中,然后将Google Web Album中的地址粘贴到文章中,因为在这里可以选择到底将图片以多大px显示,这样就不会由于图片宽度过大而将整个blog页面布局损坏。如下图选择的是400px,这在一般的文章中会有很好的效果。

8. 介绍自己
为了介绍自己,请在Pages里面写一份完整的About me,对你的文章感兴趣的人通常对你到底是怎样的人也感兴趣。

9. 善用插件
没有插件的Wordpress就好比没有插件的Firefox,也好比没有插件的World of Warcraft,都让人无法忍受。我目前在使用的插件有:
Akismet:垃圾留言过滤。
All in One SEO Pack:简单地进行SEO设置。
CoolCode:之前使用的代码美化插件,现在已经用WP-Syntax替代,但是为了保留之前文章的格式,还是保留了此插件。
Custom Smilies:在文章或者留言中可以插入笑脸,这纯属是好玩。
Dean’s Permalinks Migration:重定向不同格式的permalinks。之前有修改过文章 Permalinks的格式,为了自动转化,使用了此插件,具体用处参看如何无风险的修改Permalink
Dynamic Headers by Nicasio Design:在站点header处或者需要的地方,动态显示不同的图片。
Google Analyticator:在站点中自动添加Google Analytics代码。
Google XML Sitemaps:自动生成易于Google抓取的站点结构图。
Spam Karma 2:垃圾留言过滤。
WP-DBManager:提供Wordpress后台数据库管理,包括自动备份。
WP-PageNavi:提供文章分页。
WP-Syntax:提供代码高亮及美化。

10. 多学习别人的经验
在国内,我爱水煮鱼这个站点专门介绍使用Wordpress的经验,还有多种模板和插件推荐。适合不定期去浏览一下。

kamus Misc

Adaptive Cursor Sharing in Oracle Database 11g

June 9th, 2009

还记得2007年时候遭遇过一次由于cursor_sharing = similar导致的系统问题,大量游标无法共享,产生巨大的version count,最终让整个系统崩溃。

在这个案例中我提到有4个条件导致了问题的发生:
1. cursor_sharing = similar
2. 收集了列上的histogram
3. SQL中使用到了此列作为条件,并且条件是“等于”
4. 这个SQL是没有绑定变量的

在最近Optimizer Development GroupWhy do I have hundreds of child cursors when cursor_sharing set to similar in 10g文章中又再次提到这个现象。

This is in fact the expected behavior when
1. CURSOR_SHARING is set to similar
2. Bind peeking is in use
3. And a histogram is present on the column used in the where clause predicate of query

在Oracle10g中这是正常的现象,如果在某列上收集了histograms信息,那么就等于告诉CBO这一列上的数据是不平衡的,如果都使用同一个执行计划那么就可能产生问题,因此对于每一个distinct值,CBO都会产生一个child cursor,这一点无法避免。当然,由于这是child cursor,因此比cursor_sharing = exact时候产生的parent cursor还是要节省内存空间,至少SQL语句本身不需要重复存储了。

在Oracle10g中解决方法是:
1. 去掉这列上的histograms统计信息,或者
2. 将CURSOR_SHARING = FORCE

虽然源于对Oracle Database的热爱,我们无条件接受了10g中的这个方式,并且不认为这是bug,但是实际上心里一定暗暗骂过,傻啊,我收集了histogram你就要每个值产生1个cursor吗?自己再分析一下不行吗?都是一样的执行计划何必要用不同的cursor空间呢?

我想Oracle自己也一定意识到了这点,于是在Oracle11g中这一切有了变化,Oracle推出了称为Adaptive Cursor Sharing(自适应游标共享)的游标共享机制,可以阅读这几篇相关文章。

Optimizer Development Group:Adaptive Cursor Sharing
Optimizer Development Group:Update on Adaptive Cursor Sharing
Arup Nanda:Adaptive Cursors and SQL Plan Management
Tim Hall:Adaptive Cursor Sharing in Oracle Database 11g Release 1

什么是Adaptive Cursor Sharing就不重复叙述了,上面的几篇文章说的非常清楚,那么ACS机制对于之前在10g中碰到的child cursor过多的情况有何种改善呢?

简单地说,在Oracle11g中我们可以保留cursor_sharing=similar并且也保留列上的histograms统计信息,ACS机制将不会对每一个distinct值都产生一个child cursor,而是对每一个不同的执行计划产生一个child cursor,这大大减少了子游标的数量。这种处理方式无疑是合理的,只有在执行计划确实需要不相同的时候才产生额外的child cursor,当然,在bind peeking之后,CBO是否确实能够选择一个最优的执行计划那另当别论,是另外的话题。

注意,实际上产生的child cursor数量仍然是会大于execution plan数量的,也就是加入对于一个绑定变量的SQL一共有2种执行计划,那么child cursor数量会大于2,因为CBO始终在监控SQL的执行效率,如果认为变量的某一个真实值跟其它值的分布情况有很大的不同,那么CBO就会让这个SQL再做一次hard parse,这样就会产生出来一个新的child cursor,即使最终这个cursor的执行计划还是跟之前的相同。但是我们不用担心这些多余的cursor,因为这些cursor被标志为无法共享(可以通过v$sql.is_shareable字段得知),在需要的时候将会被age out出去。

kamus Oracle RDBMS

那些在魔兽世界的日子

June 6th, 2009

第九城市今天宣布:在中国大陆地区由第九城市所运营的《魔兽世界》,将于2009年6月7日凌晨0时起终止服务.感谢大家对第九城市四年来努力专心运营 《魔兽世界》的支持和宽容!

从2005年4月份某天开始,进入了这个叫作《魔兽世界》的游戏,经历过赞叹、疯狂、沉迷、疲劳、厌倦、回归、游荡、休闲各种不一而足的状态,断断续续地走到今天,回首算来,居然已经过了4年多。

曾经如此着迷于在这个世界中团队合作的氛围,沉浸于每次齐心协力闯过难关时无以言表的快乐与兴奋,可是随着朋友们的慢慢离去,它几乎已经蜕变为我的机器中一个单机游戏。只是每次用小号奔跑在贫瘠之地的月夜原野中,耳边那悠扬而又忧伤的音乐像流水一样潺潺而过,心中那份柔情总是会被不经意地触碰到。

我仍然怀念在魔兽世界中最初的那段日子,清晰地记得40个人历经艰难推到熔火之心第一个BOSS时的激动,我还保留着那些珍贵的截图,可惜,只能用物是人非来形容了。

在这张图上的朋友们现在还有几个仍然游荡在魔兽世界中?(很可惜,我只拖出了4个小组的名单,加上我自己这个小组才25人)

今天是九城魔兽世界的最后一天,谨以此文送给那些跟我一起在这个世界里挥霍了青春的朋友们。新的世界在等待吗?

kamus Feeling ,

Proudly using Dynamic Headers by Nicasio Design