俞敏洪的佛学

###老俞的勉励 人的生活方式有两种, 第一种方式是像草一样活着, 你尽管活着,每年还在成长, 但是你毕竟是一棵草, 你吸收雨露阳光, 但是长不大。 人们可以踩过你, 但是人们不会因为你的痛苦,而他产生痛苦; 人们不会因为你被踩了,而来怜悯你, 因为人们本身就没有看到你。 所以我们每一个人, 都应该像树一样的成长, 即使我们现在什么都不是, 但是只要你有树的种子, 即使你被踩到泥土中间, 你依然能够吸收泥土的养分, 自己成长起来。 当你长成参天大树以后, 遥远的地方,人们就能看到你; 走近你,你能给人一片绿色。 活着是美丽的风景, 死了依然是栋梁之才, 活着死了都有用。 这就是我们每一个同学做人的标准和成长的标准。

每一条河流都有自己不同的生命曲线, 但是每一条河流都有自己的梦想—— 那就是奔向大海。 我们的生命, 有的时候会是泥沙。 你可能慢慢地就会像泥沙一样, 沉淀下去了。 一旦你沉淀下去了, 也许你不用再为了前进而努力了, 但是你却永远见不到阳光了。 所以我建议大家, 不管你现在的生命是怎么样的, 一定要有水的精神。 像水一样不断地积蓄自己的力量, 不断地冲破障碍。 当你发现时机不到的时候, 把自己的厚度给积累起来, 当有一天时机来临的时候, 你就能够奔腾入海, 成就自己的生命。

Published: 2013-04-17 — Comments

0.0块的介绍

###熟悉一下块

块通常是初级ruby开发者遇到的第一个易混淆的难点。什么是块?块为什么要存在?我们该如何使用块呢?

我会在这一课尽我所能回答所有这些问题

###什么是块?

块不是Ruby独有的。块的官方的定义是“组合在一起的一段的代码。”当然,我猜这不会帮助你太多。

一个简单的方法来描述块是“块是可以像任何其他对象存储在变量里的一段代码,并且根据需求来运行这些变量。”让我来帮你建立一个心理模型的代码来展示块,然后用Ruby块重构它。我们可以开始编写一些代码,做一些有意义的小事,比如两个数字相加?

puts 5 + 6

很棒。运行成功!然而,这只涵盖了第一个定义 - 它是一段代码。它并没有“组合在一起”, 而且,也不是存储在一个变量里。让我们需要做更多来符合上面的定义之前先看看组合吧。

a = 5
b = 6
puts a + b

又运行成功了。我们已经用变量替换了数字。但是,做加法的代码仍然没有存储在变量中。让我们做到这一点!

addition = lambda {|a, b| return a + b }
puts addition.call(5, 6)

现在你有了分组 - 完整的块!在Ruby中用来创建一个块,’lambda’关键字是最常用的。还有其他的方式做到这一点,但还是让事情简单一点吧。

这时,如果你正在想“等一下,这看起来非常像一个方法,并且没有类或对象”,那么你是绝对正确的。试着想像一下它是这样的:块像一个方法,但与任何对象没有半毛关系。让我们认真认识一下块。块是对象吗?是的,他们像Ruby中的几乎一切都是对象一样也是对象。

empty_block = lambda { }
puts empty_block.object_id
puts empty_block.class
puts empty_block.class.superclass

正如你可以看到,我们刚刚创建的块的object_id,属于类PROC(在Ruby里这被称为是一个块),PROC是Object的一个子类。

我们依据块跳过定义直接实现方法。一个方法是一个很容易绑定到对象的块,且可以访问对象的状态。

让我举例说明通过Ruby方法如何逆向产生一个块。这里有一个与前面的问题相比更传统的方法(请原谅我糟糕的对象建模):

class Calculator
  def add(a, b)
    return a + b
  end
end
puts Calculator.new.add(5, 6)

运行结果如你期望的一样,现在让我们做的多一点。

class Calculator
  def add(a, b)
    return a + b
  end
end

addition_method = Calculator.new.method("add")
addition =  addition_method.to_proc

puts addition.call(5, 6)

在这里你有了它 - 一个普通的老式方法转换到一个更酷的块!你要注意了!在下一节中,我们将扩展这个问题的范围,来让你变的更牛逼。

###写你的块!

让我们建立4个块,加减乘除。每块都应该接受两个值,执行该操作,并返回结果。我们已经为你做了更多,快点爽爽的写一下余下的例子吧。

Addition = lambda {|a, b| return a + b } # use this as your example!

Subtraction = lambda { } # your code between the braces

Multiplication = lambda { } # your code between the braces

Division = lambda { } # your code between the braces

参考: http://rubymonk.com/learning/books/4-ruby-primer-ascent/chapters/18-blocks/lessons/51-new-lesson

Published: 2013-04-11 — Comments

多巴胺和血清素

不知何时染上了读书的习惯,买了大量的书后,发现时间根本不够,尤其是读一些单词之类的工具书。我们的时间是固定不变的,从生到死就这一生,如何在一生读取更多书,进而获取更多的知识,增强自己的理解力呢?答案就是提高阅读速度, 从快速阅读中了解到两种人体大脑需要物质:

###多巴胺

当我们身体上释放大量多巴胺时,就会感到精神百倍,我把它叫做兴奋剂使然。比如酒精,尼古丁,色诱香水,及其它各种毒品,经过一段高峰期兴奋后,会有反作用,我们的意志会更加消沉低落,甚至在心理有失败感。

多巴胺可治抑郁症,帕金森氏症,老年痴呆症。也有助于提高记忆力,当快速阅读一目十行时,需要大量多巴胺来加速理解力,因此健康的身体是快速阅读的基本保证。

瑞典科学家Arvid Carlsson确定多巴胺为脑内信息传递者的角色使他赢得了2000年诺贝尔医学奖。

###血清素

通过饮食适量提高血清素含量能改善睡眠,让人镇静,减少急躁情绪,带来愉悦感和幸福感,带给人更多快乐。

血清素可增加记忆力,较高的血清的人,心态也年轻,可减慢衰老进程。所以心情好,活到老。

一般来说女人的血清素是男人的一半,这或许是女人容易心情不好的原因吧。

坐禅、丹田呼吸、嚼口香糖、以及一些有规律的相对简单的活动都是可以促进血清素的分泌的

如果以上两种物质在体内减少,那么我们就会觉得脑子不好使了

###科学饮食提高效率

维生素C可提高大脑工作效率和思维能力,它能促进多巴胺的生成。此外还有维生素E和维生素B1,B6,B12。 新鲜蔬菜如青菜、韭菜、菠菜等,新鲜水果如桔子、柚子、红枣、山楂、猕猴桃可补充生素C。

脂肪酸足够的话,可释放大量能量,可使人拥有充足的精力和最佳的工作状态,需要植物油来补充。

氨基酸是人类的生命基础,多吃水果和蔬菜,适量奶,蛋,肉鱼类即可。

Published: 2013-04-03 — Comments

使用ruby-fog连接Eucalyptus

###使用fog连接Eucalyptus的报错

ruby-1.9.2-p320/gems/excon-0.20.1/lib/excon/middlewares/expects.rb:10:in `response_call': 403 Forbidden</Code><Message>Message was generated in the future (times in UTC): Timestamp=2013-03-22T04:14:29Z</Message></Error></Errors><RequestID>Message was generated in the future (times in UTC): Timestamp=2013-03-22T04:14:29Z</RequestID></Response>", :headers=>{"Content-Type"=>"text/plain; charset=UTF-8"}, :status=>403, :remote_ip=>"10.68.19.40"}, @body="<?xml version=\"1.0\"?><Response><Errors><Error><Code>403 Forbidden => Message was generated in the future (times in UTC): Timestamp=2013-03-22T04:14:29Z (Fog::Compute::AWS::Error)

###解决方案

sudo ntpdate -u 0.pool.ntp.org

准确时间的服务器然后通过一种协议来同步我们的系统时间,那么这个协议就是NTP

由于ntpdate是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。

服务器慎用此命令,可用ntpd平滑过渡。

Published: 2013-03-22 — Comments

安装rvm,ruby,rails,passenger,nginx在centos

###版本 centos 6.4 ruby 2.0.0 rails 3.2.12

###第一步:安装rvm

sudo yum update
sudo yum install curl
curl -L get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh

rvm requirements
yum install gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel

###第二步:安装ruby

rvm list known 
rvm install 2.0.0

ruby -v
gem list
gem sources -l
gem sources --remove 要删除的源
gem sources -a http://ruby.taobao.org/

###第三步:安装rails

gem install rails
rails -v

###第四步:安装passenger

gem install passenger
passenger -v

找到passenger的bin目录

./passenger-2.2.14/bin/passenger-install-nginx-module

###第五步:安装nginx

nginx安装需要pcre and openssl

官网:http://www.pcre.org/

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.tar.gz
tar zxvf pcre-8.32.tar.gz
cd pcre-8.32
./configure
make
make install

官网:http://www.openssl.org

wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
tar zxvf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config
make
make install
wget http://nginx.org/download/nginx-1.3.14.tar.gz
tar zxvf nginx-1.3.14.tar.gz
./configure --prefix=/usr/local/nginx
make
make install
 /user/local/nginx/sbin/nginx 

###第六步:安装mysql

系统自带mysql yum install mysql-devel gem install mysql2

参考: http://www.cnblogs.com/edwardlost/archive/2012/12/10/2811616.html http://www.wiseg.net/?p=207 http://hideto.iteye.com/blog/853913

Published: 2013-03-14 — Comments