Perl的English模块

Perl中有很多以$开头的特殊变量,如果使用得当,可以写出简洁高效的代码,但对于阅读代码来说就带来了一些困扰。因此Perl内置了名为English的模块,对这些特殊变量定义了英文别名,记录于此备查。


special variable
alias
miscellaneous  
$_ $ARG
@_ @ARG
$" $LIST_SEPARATOR
$;
$SUBSCRIPT_SEPARATOR
or $SUBSEP
regular expression or matching  
$& $MATCH
$` $PREMATCH
$' $POSTMATCH
$+ $LAST_PAREN_MATCH
input  
$. $INPUT_LINE_NUMBER or $NR
$/ $INPUT_RECORD_SEPARATOR or $RS

output
 
$| $OUTPUT_AUTOFLUSH
$, $OUTPUT_FIELD_SEPARATOR or $OFS
$\ $OUTPUT_RECORD_SEPARATOR or $ORS
formats  
$% $FORMAT_PAGE_NUMBER
$= $FORMAT_LINES_PER_PAGE
$_ $FORMAT_LINES_LEFT
$~ $FORMAT_NAME
$^ $FORMAT_TOP_NAME
$: $FORMAT_LINE_BREAK_CHARACTERS
$^L $FORMAT_FORMFEED
error status  
$? $CHILD_ERROR
$! $OS_ERROR or $ERRNO
$@ $EVAL_ERROR
process information  
$$ $PROCESS_ID or $PID
$< $real_user_id or $UID
$> $EFFECTIVE_USER_ID or $EUID
$( $REAL_GROUP_ID or $GID
$) $EFFECTIVE_GROUP_ID or $EGID
$0 $PROGRAM_NAME
internal variables  
$] or $^V $PERL_VERSION
$^A $ACCUMULATOR
$^D $DEBUGGING
$^F $SYSTEM_FD_MAX
$^I $INPLACE_EDIT
$^O $OSNAME
$^P $PERLDB
$^T $BASETIME
$^W $WARNING
$^X $EXECUTABLE_NAME

2010,风生水起

无可奈何的,到了2010,无可奈何的,三十而立。无可奈何花落去,似曾相识燕归来,当年背得烂熟的诗,年少轻狂未解其意,而今嚼来一声叹息。

酸气倒完,生活继续。2009年,总体来说,虽有诸多不如意处,也做了不少事,有了不少改变。与己,逐步完成转变,从技术一线开始尝试学习团队管理;与事,数据库整体还算稳定,无奈Q4因为各种原因有点晚节不保,由此也可以看出任重道远,还有很多事情需要去做。一个人做好,一个团队做好,一个部门做好,一个公司做好,挑战各有不同,诚如古人言,修身,治家,齐国,平天下,境界不同,或许可以类比。2009年,挣扎彷徨在个人技术能力与团队之间,结果技术能力没有多大增长,团队管理也不尽如人意,这是硬伤,2010年,这两个方面需要平衡好,最大的挑战。

2010,我的wishlist,实际上主要三点昨天也在twitter上唠叨过了:

  • 技术上远离一线操作,更需要精研深入,Oracle和MySQL方面至少各看一到两本好书
  • 英语,年年念叨,年年没进步,2010,希望能达到初步口语沟通
  • 技术之外,看十本书,小说,历史,经管,皆可
  • 拿到驾照,2009年4月份就报考,却一直没有去练车,拖到2010,必须完成
  • 拿到房子,准备装修。房子交付在2010年底,估计也只能是先做准备
  • 写一本书,总结这两年Oracle的经验。如果2010年再不写,估计就再也写不出来了
  • 买一辆车,不需要太好,代步足矣
  • 至少出国旅游一次,已经定了4月去东南亚的行程,应该靠谱。

希望我的2010,搅他个风生水起。待明年今日,再细数往事前程。

往事不会随风-记我的2009

这一年,二零零九,二十九年的记忆朦胧
这一年,不再孤独,惦记回家是一种幸福
这一年,成为房奴,空中楼阁没有交付
这一年,远渡重洋,第一次亲游异国大陆
这一年,调整变化,来如朝露去无踪
这一年,风起云涌,墙内墙外变幻不同
这一年,爬山喝茶,遍走杭城青峰
这一年,二零零九,往事不会飘散随风

NoSQL,关系数据库终结者?

作为一个DBA,几年走过来,工作中历经MS SQL Server 2000/2005,Oracle9i/10g/11g,MySQL5.0/5.1等不同的数据库产品和版本,对于关系型数据库系统(RDBMS)应该说有了一定的了解。从一个数据库切换到另外一个数据库,虽然有些许艰难,却谈不上抗拒,甚至乐意主动去深入了解其他的数据库产品。关系理论的成熟,造就了这三十年来关系数据库在数据领域的绝对地位。

这两年在互联网行业,时间虽然不长,却深切的感受到了一个大型网站真实的压力。随着业务滚雪球式的增长,关系数据库由于对数据一致性的强硬要求(ACID),在扩展性方面天生不足,可以预见的天花板犹如达摩克利斯之剑,随时可能落下。SQL优化,应用重构,硬件升级,垂直拆分,能用的武器轮番上场,也不过救急于一时。要能做到系统随着网站压力几乎无限制的扩展需求,水平拆分横向扩展是不可避免的终极魔法。过去一年,我们也在一些应用上逐步尝试水平拆分,遇到过各种各样的问题,当然也有很大的收获,积累了很多的经验。MySQL作为开源的关系数据库,也开始得到大规模的应用,毕竟水平拆分后数据库的规模将是指数级的增长,商业数据库如Oracle的成本,是不得不考虑的一个问题。

我们所遇到的问题,相信所有大型的互联网站都会碰到。关系数据库有其不可替代的特性,但是,我们真的所有的数据都需要使用关系数据库么?或许一个简单但是更加容易扩展的key-value存储更能够满足很多互联网应用的数据存储需求,Google和Amazon相继推出BigTableDynamo,可以说是在分布式数据库方面一个开荒式的尝试。2009年初,一个叫做NoSQL的组织开始出现并运作,纠集了一支优秀的开源部队想要革了关系型数据库的命,至少是想革了关系型数据库在互联网行业的命。不管NoSQL是不是关系型数据库的终结者,却确确实实在推广一些优秀的开源分布式数据库产品,作为DBA,或许我们是时候花点时间去了解一下这个对手了,不然饭碗丢了可能还不明白是谁抢去了,呵呵。

下面是wikipedia上列出了NoSQL的一些开源项目,有时间应该去了解一下。实际上,淘宝也有在开发并使用自己的一套分布式cache和持久化系统,不知道什么时候也能看到开源版本的出现,呵呵。
* Cassandra
* Chordless
* CouchDB
* Db4o
* GT.M
* Hbase
* Hypertable
* Memcachedb
* Mnesia
* MongoDB
* Neo4j
* Project Voldemort
* Redis

发现有半个月没写blog了,这篇比较水,充一下数。