2010年9月6日星期一

强大的内心从何做起

1、无论做什么,记得是为自己而做,那就毫无怨言。
2、面对困境,也不要悲观厌世。
3、人生没有绝对的公平,但是相对公平的。在一个天平秤上,你得到的越多,也必须比别人承受得更多。
4、在人生的任何时候都不怕重头再来,每一个看似低的起点,都是通往更高峰的必经之路。
5、让自己更平和一点,更豁达一点,对于身边的过错,让自己更宽容一点。人人都有他的难处,何必强求于人。
6、坏事总是不断发生,可还是有很多办法来解决困难。永远不要忘记学进修学问,拓阔胸襟。人生所有烦恼的会不多不少永远追随,只不过学识涵养可以使一个人更加理智冷静地分析处理这些难题而已。
7、失去的东西,其实从来未曾真正地属于你,也不必惋惜。潇洒一点。生活中无论有什么闪失,统统是自己的错,与人无尤,从错处学习改过,精益求精,直至不犯同一错误,从不把过失推诿到他人肩膀上去,免得失去学乖的机会。
8、浪漫是一种自我修养,是生活的格调。
9、生命的乐趣是要自己寻找的,谁也没有义务要为你做什么,要讨好你什么。爱情很美好,但是,生活永远比爱情要长,而生活,是需要智慧。乐观,阳光,凡事往好处想。
10、对一个城市的留恋,其实只是留恋那里的人和事,更多的,是沉淀在那个城市里自己最好的年华。不管在什么地方,生活都有喜有悲,没有必要羡慕别人增添自己的烦恼。
11、法国有句谚语:爱人在身旁,处处是天堂。幸福不是因为得到的多,而是计较的少。苦苦追求没有得到的,不懂得珍惜拥有的,结果只是徒劳伤命。
12、《庄子》里有句话叫做夏虫不可语于冰,意思是说对于夏天的虫子,无论你怎样与它谈论冬天的冰雪,它也不会明白。同理,当我们总是责怪别人无法理解自己的时候,请静下心,各人有各人的思维限制,思维不同,很难一致,所以,我们都是互相眼里的夏虫。对生活多一点耐心,信心与坚持。不要总是半途而废。
13、为了梦想努力拼搏,回头看,你会发现那些苦难,后来成为了你人生的财富。未来掌握在自己的手中。
14、有得有失,才是人生,切忌忿忿不平。做人最忌无休止地自怨自艾,招人讨嫌。爱自己,就如同朝阳升起。
15、人生短短数十载,最要紧是满足自己,不是讨好他人。何必向不值得的人证明什么,生活得更好,乃是为你自己。

2010年9月5日星期日

你与我

亲爱的,你是我的充要条件。
没有你,推不出我。
没有我,推不出你。
故我俩相依相存!
亲爱的,你是我的元素。
没有你,我的集合永远只是个空集。
亲爱的,你是我的对称轴。
没有你,我永远找不到我的另一半。
亲爱的,你是我的定义域。
没有你,我的函数的存在毫无意义。
亲爱的,你是我的单调递增函数。
有了你,我的快乐一天胜过一天。
亲爱的,你是我的通项公式。
没有你,我永远无法认清自己。
亲爱的,你是我的算法。
没有你,我永远无法找到自己的价值。
亲爱的,你是P,我是Q。
没有你,P且Q永远只是一个假命题。
亲爱的,你是我的斜率。
没有你,我永远无法找到正确的方向。
亲爱的,你是我的圆心。
没有你,我永远组成一个完美的闭合曲线。
亲爱的,你是A,我是X。
没有你,A的X次方永远无法恒大于零。
亲爱的,我是sin,你是cos。
没有你,tan没有意义。
亲爱的,你是我的线性回归方程。
没有你,我永远只是一些迷途的散点,没有主心骨。
亲爱的,你是我的坐标系。
没有你,我永远无法找到自己的位置。
亲爱的,你是我的诱导公式。
没有你,我永远不会灵活变通。
亲爱的,你是我的标准型。
没有的,我永远无法发现我的max,min,T,(faei),(omiga)。
亲爱的,综上所述:
我和你在一起的概率为1。

开源数据库集锦

1、MongoDB
MongoDB是一款开源,高性能,可扩展,无模式,面向文档(与JSON类似的数据模式)的数据库,它为时下最流行的编程语言提供了驱动,如 PHP,Python,Perl,Ruby,JavaScript,C++等,支持全文索引,自动分片,跨LAN或WAN扩展,采用Key/Value方 式存储数据。MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用。世界上最大的单词收录网站Wordnik就从 MySQL转向了MongoDB。
http://www.mongodb.org

2、Hypertable
Hypertable是一款高性能分布式数据存储系统,旨在为应用程序提供最好的性能,可扩展性和可靠性,它建立在Google的BigTable之上, 主要面向大规模数据集应用,其目标是要成为世界上最好的大规模并发高性能数据库平台。百度目前也使用了Hypertable,也是它的赞助商。
http://www.hypertable.org/

3、Apache CouchDB
Apache CouchDB是一款面向文档的数据库,可以使用JavaScript通过MapReduce方法进行查询和索引,它提供了一个RESTful JSON API,因此可以在任何环境中通过HTTP访问,CouchDB内置了Web管理控制台,支持通过浏览器管理数据库。CouchDB使用Erlang编 写,Erlang是一种健壮的函数式编程语言,非常适合于构建并发的分布式系统,Erlang的设计非常灵活,其可伸缩性与可扩展性都非常棒。
http://couchdb.apache.org/


4、Neo4j
Neo4j是一个嵌入式,基于磁盘的,支持完整事务的Java持久化引擎,它在图像中而不是表中存储数据。Neo4j提供了大规模可扩展性,在一台机器上 可以处理数十亿节点/关系/属性的图像,可以扩展到多台机器并行运行。相对于关系数据库来说,图形数据库善于处理大量复杂、互连接、低结构化的数据,这些 数据变化迅速,需要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。Neo4j重点解决了拥有大量连接的传统 RDBMS在查询时出现的性能衰退问题。通过围绕图形进行数据建模,Neo4j会以相同的速度遍历节点与边,其遍历速度与构成图形的数据量没有任何关系。 此外,Neo4j还提供了非常快的图形算法、推荐系统和OLAP风格的分析,而这一切在目前的RDBMS系统中都是无法实现的。
http://neo4j.org/

5、Riak
Riak是一款非常适合于Web应用程序的数据库,它提供了去中心化的Key/Value存储,灵活的map/reduce引擎和友好的HTTP /JSON查询接口。它是一个真正的容错系统,不会出现单点故障,在Riak世界中,没有哪台机器是特殊的或属核心服务器,它们都是对等的。
http://www.basho.com/

6、Oracle Berkeley DB
Oracle Berkeley DB是一系列开源的嵌入式数据库,使开发人员能够将一个快速、可伸缩、具有工业级别的可靠性和可用性的事务处理数据库引擎结合进他们的应用程序中。 Berkeley DB最先由伯克利加州大学为了移除受到AT&T限制的程式码,从BSD 4.3到4.4时所改写的软件。Berkeley DB运行在大多数的操作系统中,例如大多数的UNIX系统, 和windows系统,以及实时操作系统。
http://www.oracle.com/technetwor ... overview/index.html


7、Apache Cassandra
Cassandra是一款高可扩展性第二代分布式数据库,属于混合型的非关系的数据库,类似于Google的BigTable,支持的数据结构非常松散, 类似于JSON的BJSON格式,因此可以存储比较复杂的数据类型。Cassandra最初由Facebook开发,后转变成了开源项目。 Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能 是比较简单的事情,只管在群集里面添加节点就可以了。Facebook,Digg,Twitter和Cisco等大型网站都使用了Cassandra。
http://cassandra.apache.org/


8、Memcached
Memcached是开源的分布式cache系统,现在很多的大型web应用程序包括 facebook,youtube,wikipedia,yahoo等等都在使用memcached来支持他们每天数亿级的页面访问。通过把cache层 与他们的web架构集成,他们的应用程序在提高了性能的同时,还大大降低了数据库的负载。Memcached处理的原子是每一个key/value 对,key会通过一个hash算法转化成hash-key,便于查找、对比以及做到尽可能的散列。同时,memcached用的是一个二级散列,通过一张 大hash表来维护。
http://memcached.org/


9、Firebird
Firebird是一个关系数据库,可以运行在Linux,Windows和各种Unix平台上,Firebird相对MySQL和PostgreSQL 来说比较小,这也使其可以称得上是理想的嵌入式数据库,可用于与其它应用程序服务器和应用程
序捆绑。Firebird具有大部分成熟数据库所具有的功能,比如支持存储过程、SQL兼容等。
http://www.firebirdsql.org/

10、Redis
Redis是一款快速的Key/Value数据库引擎,它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点,从而使它的位置处于关系数 据库和键值数据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序 (SORT)等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。Redis使用C语言编写, 可以想memcached那样使用,放在传统数据库的前端,它支持许多编程语言,受到许多流行的项目使用,如GitHub和Engine Yard,有一个用PHP编写的客户端叫做Rediska,专门来管理Redis数据库。
http://code.google.com/p/redis/


11、HBase
HBase是一个分布式,面向列存储的数据库引擎,也可以叫做Hadoop数据库,因为它是Hadoop的子项目,HBase的目标是托管数十亿行,数百 万列的大表,它提供了一个REST风格的Web服务器网关,支持XML,Protobuf和二进制数据编码选项。
http://hbase.apache.org/


12、Keyspace
Keyspace 是一家叫做 Scalien 的创业公司开发的高可靠 key/value 存储系统,Keyspace 强调的技术点是高可靠性,有以下一些特点:
Key/Value存储:一个 key/value 数据存储系统,只支持一些基本操作,如:SET(key, value) 和 GET(key) 等;
分布式:多台机器(nodes)同时存储数据和状态,彼此交换消息来保持数据一致,可视为一个完整的存储系统。为了更可靠,Keyspace 推荐使用奇数个 nodes,比如:3,5,7等;
数据一致:所有机器上的数据都是同步更新的、不用担心得到不一致的结果,Keyspace 使用著名的Paxos 分布式算法;
冗余:所有机器(nodes)保存相同的数据,整个系统的存储能力取决于单台机器(node)的能力;
容错:如果有少数 nodes 出错,比如重启、当机、断网、网络丢包等各种 fault/fail 都不影响整个系统的运行;
高可靠性:容错、冗余等保证了 Keyspace 的可靠性。
http://scalien.com/keyspace/

13、4store
4store是一个容纳RDF数据的数据库存储和查询引擎,它使用ANSI C99编写,可在类Unix系统上运行,提供一个高性能,可扩展和稳定的平台。4store专门为无共享集群进行优化,最大可支持32节点集群,导入性能 最大可以达到120kT/s,它的查询性能也相当出众。
http://4store.org/


14、MariaDB
MariaDB是一个向后兼容的,旨在替换MySQL数据库的MySQL分支,它包括所有主要的开源存储引擎,另外也开发了属于自己的Maria存储引 擎。MariaDB是由原来 MySQL 的作者 Michael Widenius 创办的公司所开发的免费开源数据库服务器,与 MySQL 相比较,MariaDB 更强的地方在于:

Maria 存储引擎
PBXT 存储引擎
XtraDB 存储引擎
FederatedX 存储引擎
更快的复制查询处理
线程池
更少的警告和bug
运行速度更快
更多的 Extensions (More index parts, new startup options etc)
更好的功能测试
数据表消除
慢查询日志的扩展统计
支持对 Unicode 的排序
http://mariadb.org/

15、Drizzle
Drizzle是从MySQL衍生出来的一个数据库,但它的目的不是要取代MySQL,它的宗旨是构建一个“更精练、更轻量、更快速”的MySQL版本, 它的扩展性和易用性与MySQL相当,但为了提高性能和扩展性,它从原来的核心系统里移除了部分功能。Drizzle是一种为云和网络程序进行了特别优化 的数据库,它是为在现代多CPU/多核架构上实现大规模并发而设计的。
http://drizzle.org/

16、HyperSQL
HyperSQL是用Java编写的一款SQL关系数据库引擎,它的核心完全是多线程的,支持双向锁和MVCC(多版本并发控制),几乎完整支持 ANSI-92 SQL,支持常见数据类型,最新版本增加了对BLOB和CLOB数据的支持,最高支持达64T的数据量。同时,HyperSQL也是一个不错的嵌入式数据 库。
http://hsqldb.org/

17、MonetDB
MonetDB是一个高性能数据库引擎,主要用在数据挖掘,OLAP,GIS,XML Query,文本和多媒体检索等领域。MonetDB对DBMS的各个层都进行创新设计,如基于垂直分片的存储层,为现代CPU优化的查询执行架构,自动 和自助调整索引,运行时查询优化,以及模块化的软件架构。MonetDB/SQL是 MonetDB提供的关系数据库解决方案,MonetDB/XQuery是XML数据库解决方案,MonetDB Server是MonetDB的多模型数据库服务器。
http://monetdb.cwi.nl/


18、Tokyo Cabinet
Tokyo Cabinet是一个Kay/Value型数据库,每个Key和Value的长度都可以不同,Kay和Value既可以是二进制数据,也可以是字符串,无 数据表和数据类型的概念,记录是以哈希表、B+树和固定长度数组形式组织的。Tokyo Cabinet具有以下优点:

空间利用率高 – 数据文件尺寸更小;
执行效率高 – 更快的处理速度;
并发性能好 – 在多线程环境性能更好;
改善的可用性 – 简化的API;
改善的可靠性 – 即使在发生灾难的情况下,数据文件也不会损坏;
支持64位架构 – 支持海量的存储空间和巨型数据库文件。
Tokyo Cabinet是用C语言编写的,为C,Perl,Ruby,Java和Lua提供了API。
http://1978th.net/tokyotyrant/

19、Voldemort项目
Voldemort是一个分布式Key/Value存储系统,它具有以下特点:
数据自动在多个服务器之间复制;
数据自动分区,因此每个服务器只包括整体数据的一个子集;
服务器故障处理是透明的;
支持插入式序列化,允许丰富的Key和Value类型,包括列表和元组,也可以集成常见的序列化框架,如
Protocol Buffers,Thrift,Avro和Java Serialization
数据项支持版本化,即使在故障情况下,数据完整性也可以得到保障;
每个节点都是独立的,无需其他节点协调,因此也没有中央节点;
单节点性能优秀:根据机器配置、网络、磁盘系统和数据复制因素的不同,每秒可以执行10-20k操作;
支持地理分散式部署。
http://project-voldemort.com/

20、Tair
tair 是淘宝自己开发的一个分布式 key/value 存储引擎. tair 分为持久化和非持久化两种使用方式. 非持久化的 tair 可以看成是一个分布式缓存. 持久化的 tair 将数据存放于磁盘中. 为了解决磁盘损坏导致数据丢失, tair 可以配置数据的备份数目, tair 自动将一份数据的不同备份放到不同的主机上, 当有主机发生异常, 无法正常提供服务的时候, 其于的备份会继续提供服务.
http://code.taobao.org/trac/tair/wiki/intro

21、PostgreSQL
PostgreSQL 是一种非常先进的对象-关系型数据库管理系统(ORDBMS),目前功能最强大,特性最丰富和最先进的自由软件数据库系统。
http://www.pgsql.com/

cp使用--一次实现多个文件的拷贝

# 备份文件到当前目录
cp \
/etc/network/interfaces \
/etc/passwd \
/etc/group \
/etc/ssh/sshd_config \
/etc/rc.local \
/etc/sysctl.conf \
/etc/security/limits.conf \
/etc/securetty \
/etc/profile \
/etc/apt/sources.list \
.

Linux下python编译pyc

compile_pyc(){
cecho 'Compile *.py to *.pyc($1)...' blue
if [ -z '$1' -o '$1' = '/' -o ! -d '$1' ];then
cecho 'compile_pyc Error: DIR $1 is empty or /.' red
return 1;
fi
python -c 'import compileall;compileall.compile_dir('${1}')' |grep '^Compiling'|wc -l
}

#end compile_pyc

Iptables作网关

1.服务端设置
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

2.客户端设置
#删除默认配置
route del default gw
#添加新的gw
route add default gw 192.168.0.2

ubuntu下键盘映射

其实在linux下键盘中的(.)用的颇为频繁。像脚本的后缀,ping等命令的使用。
笔记本上该键完全失效,于是想起用其他少用的键实现映射。
实现过程:

# 看一下需要映射的键名称和编码(KEYSYMNAME, NUMBER)
$ xmodmap -pk

$ xev
# 确定无效键的键名和编码,只能按相邻的键确定
#
keycode 59 (keysym 0x2c, comma)   # 对应键(< ,)的键名和编码
keycode 61 (keysym 0x2f, slash)   # 对应键(/?)的键名和编码

# keycode 60 (keysym 0x2e, period) # 无效键的键名和编码


# 实现--用指定键映射
# keycode 133 (keysym 0xffeb, Super_L)

$ xmodmap -e 'keycode 133 = period'