100天了,不知道是怎么度过的,北京的阴雨连绵又来了,好压抑,好想念,好伤心,好孤独。
爸妈,我100天没有见到你们了。不知道你们什么时候才会回来,也不知道咱们什么时候才能相见。
就连唯一能在梦里见到你们的机会,你们也不愿意给么?
100天了,不知道是怎么度过的,北京的阴雨连绵又来了,好压抑,好想念,好伤心,好孤独。
爸妈,我100天没有见到你们了。不知道你们什么时候才会回来,也不知道咱们什么时候才能相见。
就连唯一能在梦里见到你们的机会,你们也不愿意给么?
毕竟,人不能总是活在悲伤中,事情过去了20多天了,虽然我的情绪还是不是很稳定,但是基本上要比以前理智得多了,很多事情我们无法预测,看似完美的事情,也许只需要一瞬间,就能变得支离破碎,但是即使真的是支离破碎了,活着的人,总是仍然还要继续活下去,继续的奋斗,红尘之中,也许不知道自己哪天就要离开,但是我们都没得选择。
我现在的担忧开始渐渐的变多,可惜这些要来的事情是谁也无法阻止的,也许这就是生活,充满了戏剧性,不确定性,但是为什么我们的故事充满了悲剧,那么多幸福的人,我们就不能成为他们之中的一员么。我们注定就要悲剧下去么?
我很不服气,非常的不服气,妈的,为什么我就要这么悲哀,我要奋斗,我要奋斗!不管遇到什么困难,除非我死了,否则生命不息,奋斗不止!
我想我终于开始有资格提这2个字了,悲伤。原来这种感觉这么难以形容。甚至还有一种看破红尘的错觉,有人说悲伤的人心会痛,可是我却没有感觉到,我只是感觉到难以呼吸。无法入睡,闭上眼睛就是各种往昔的时光,像一部电影一样,不停的在眼前播放,憋得很久以后,就必须得从床上坐起来,然后再屋子内不停的踱步,也不知道目的是什么,反正就是要不停的踱步。这样似乎可以减少一下内心的憋闷,让呼气和吸气变得顺畅一些。有时候我会目不转睛地看着一些旧的物什,然后根据这个物什,回忆起当初的那些岁月来,有时候我会觉得空气中有某些灵异的存在,他们在看着我,担心着我,不放心我们能撑起这种悲伤,不放心我们将来能撑起这个家,然后照片中的他们却永远都是笑着的,也许是因为那只是记载了当初的心情吧。我很想知道他们在那边过得到底好不好,可是我越想知道就越觉得自己无法知道,有时候我想我应该快点死掉,这样就可以看到那边的光景了。就可以看到他们了,然后我就知道答案了,可是我又知道,生命不能重新来过。死了就不能再活了。有时候我空坐着,就是那么的空空的坐着,似乎人也是空着的,座子也是空着的。我在想什么呢,我在想过去,大部分都是过去,因为他们活在过去,然后我会想流泪,是悲伤的眼泪么,也许吧,于是我不打算让他们流下来,所以我开始想其他的事,想现在,现在还没有处理完的事情,可是这样我又开始烦乱,觉得没有希望,周围的人都在鼓励我,说没有过不去的坎儿,我觉得是有的,例如死亡,怎么也不能再活过来。当思绪怎么逃避不了的时候,我开始让自己转移注意力,想想工作,想想将来,想想我的女朋友。然后心情似乎就会稍微舒畅些。我和我哥都在和努力的想继承一些东西下来,除了这不算很小的家业外,倒也没什么其他的了,还好我们都是佛教徒,虔诚的很,所以对于生老病死也都还算看得开些吧。师傅也说,这应该也是前世业力吧。
using namespace std;
#include <iostream>
#include <ctime>
/**
* 实现线程休眠的函数
**/
int my_sleep(unsigned int sleepSecond)
{
timeval t_timeval;
t_timeval.tv_sec = sleepSecond;
t_timeval.tv_usec = 0;
select( 0, NULL, NULL, NULL, &t_timeval );
return 0;
}
int main (int argc, char * const argv[]) {
string fanguan[] = {
“我擦,恭喜你,得去吃烤肉啦!!”,
“冰城”,
“太熟悉”,
“肉饼”,
“面馆”,
“大成旺家”,
“驴火”
};
int fanguan_size = sizeof(fanguan)/sizeof(fanguan[0]);
cout << “一共有” <<fanguan_size<<”种选择:” << “\n”;
char quit = ‘a’;
bool already_selected = false;
srand(time(0));//声明一个随机时间种子
while (quit != ‘q’) {
if(!already_selected){
cout << “做好选餐馆的准备了吗?(Y/N)” ;
}else{
cout << “还要继续吗?(Y/N)” ;
}
cin >> quit;
if (quit == ‘d’ || quit == ‘D’) {
cout << “让我们屏息以待。。。。。。。。。。。\n”;
my_sleep(2);
for(int i=0; i<100; i++){
int result_index = rand()%time(NULL)%(fanguan_size – 1 );
cout << “\n激动人心的结果出来了:” << fanguan[result_index] << “\n”;
}
already_selected = true;
}else if (quit == ‘Y’ || quit == ‘y’) {
cout << “让我们屏息以待。。。。。。。。。。。\n”;
my_sleep(2);
int result_index = 1 + rand()%time(NULL)%(fanguan_size – 1 );
cout << “\n激动人心的结果出来了:”<< fanguan[result_index] << “\n”;
already_selected = true;
}else {
cout << “我知道,你的手在颤抖。。。。。\n”;
already_selected = true;
}
}
return 0;
}
http://taeky.javaeye.com/blog/575257
留个记号,以便将来忘记
int a = 1;//假设这是权限设置第一位
int b = 2;//第二位
int c = 4;//第三位
int d = 0;//第四位没有设置,如果设置的话应该是8
int e = 16;//第五位
System.out.println(b | a | c | d | e);//
System.out.println(25 & e);//
关于Rose,rose是人人web页面使用的一种web框架,基本上是一种遵循着约定优于配置的基于spring封装的一层简化配置的框架。具体可参考 http://code.google.com/p/paoding-rose/
我介绍的是Rose中的portal,一种基于多线程的servlet模块化读取技术。一般较适用于大规模流量的网站和商业化个性化较严重的广告页面。目前成熟的作品有 人人网首页:http://www.renren.com/home,公共主页:http://www.renren.com/home#//page/?from=homeleft
Portal的优点是显而易见的,它可以随时切掉那些因为数据读取缓慢而超时的页面模块,还可以提供可供配置的后台,来给同样的页面以各种不同的展现,例如公共主页的皮肤,广告位等都是可以随意插拔的。
下面介绍Rose的基本原理:
基本原理是在一个servlet中,启动一个master线程,他负责管理和控制其他逻辑线程用来获取页面数据。加入有3个slave线程在运作加载一个页面的3个模块,我们将面临以下几个问题:
1.如何把数据写入到一个request当中,从而返回一个完整页面?
2.如何保证线程之间的request对象不会互相污染?
3.如果数据库挂了,刚好读取当前库业务逻辑这个线程应该做怎么做?
问题1答案:当我们从1个servlet中获取1个request对象的时候,将会全部传递到后续线程中进行参数的读取。这样,线程中将可以取到页面参数,从而进行逻辑组合。
问题1将会导致假如线程1修改了request中的某一个参数,将可能导致线程2,3取不到预期的结果。也就是页面传递过来的参数被线程1改变了。
问题2就是为了解决上述问题而产生的,我们可以在request对象传递过来的时候生成一个不变副本,线程2,3从不变副本中读取信息,从而解决了问题1所引发的问题。
问题3答案是我们一般会在一个超时间设置抛弃处理,这个模块将不会在页面上被显示。当时如数据库速度较慢的时候,规定时间你取不到数据,也有可能会被抛弃。此事线程将回收到线程池中。
我们会最终将获取到的动态信息置入request对象中,从而返回给页面。这样不但加快了页面访问速度,还给予了用户的最佳体验。
为什么要抛弃SVN?
我自己有几个理由:
1.相对臃肿,比起git来,SVN不是一般的臃肿
2.整合困难,和apache整合经常会出现各种诡异问题。
3.版本管理艰难,不够清爽
4.每个文件夹下都有.svn文件夹,当你想让一个项目断绝和svn的链接,这种文件夹都成了垃圾文件,当你想打包的时候,这种问文件夹也会被打包进去。
这时候我发现了git,安装简单,配置轻量,在版本管理方面有很大的优势,和linux简直就是完美整合。
关于git的安装和配置可以参考这里
http://progit.org/book/zh/ch4-4.html
还有
http://www.thoughtrails.com/episodes/14-git-server-setup-using-gitosis-for-Centos
这两篇文章都是有问题的文章,很不靠谱,他们并没有把一个完整的搭建过程描述清楚,当时2篇一起看,你会发现问题,这里我就不再赘述了。
关于安装的时候遇到的一些问题:
1.如果你的git没有安装在/usr/bin下面那么你需要为他配置环境变量,例如我的配置是vim /etc/profile/底部添加了
export PATH=/opt/git/bin:/opt/git/libexec/git-core:/opt/git/libexec/git-core/git-upload-pack:$PATH
这样还不行,还是会遇到git-receive-pack和git-upload-pack找不到的问题,这个时候我的解决方案是加软连接
ln -s /opt/git/libexec/git-core/git-upload-pack /usr/bin
ln -s /opt/git/libexec/git-core/git-receive-pack /usr/bin
2.当执行git push projectname master命令的时候,遇到了:
这个是因为你的本地目录下面为空,没有任何引用被提交。自己随便写个文件,然后重新执行git add -A
git commit -am “msg” git push projectname master 就好了。
[client]
socket=/tmp/mysql.sock
[mysqld]
datadir=/var/lib/mysql
user=mysql
port = 3306
socket = /tmp/mysql.sock
pid-file = /var/lib/mysql/mysql.pid
#skip-locking
skip-name-resolve
back_log = 1024
set-variable = max_connections=5000
set-variable = max_connect_errors=100
set-variable = key_buffer_size=384M
set-variable = read_buffer_size=4M
set-variable = sort_buffer_size=4M
set-variable = max_allowed_packet=16M
set-variable = table_cache=168384
set-variable = query_cache_size=64M
#thread_cache_size = 8
#thread_concurrency = 8
#thread_stack = 256K
#write_buffer_size = 4M
#thread_cache_size = 64
#tmp_table_size = 256M
#wait_timeout = 10
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
log-error=/var/log/mysqld.log
log-slow-queries
long-query-time = 1
log-long-format
#innodb_data_home_dir = /usr/local/mysql/data/
#innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
#innodb_log_group_home_dir = /usr/local/mysql/data/
# You can set .._buffer_pool_size up to 50 – 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 2G
innodb_additional_mem_pool_size = 20M
innodb_file_io_thread= 8
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 500M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
以上试用InnoDB存储引擎。
innodb_flush_log_at_trx_commit = 2
//值为1的时候是每次事务都提交。值为2的时候每次都写到系统缓存。这样可以大大降低磁盘的IO。使得InnoDB和Myisam的茶具缩小很多
1.windows下面eclipse的提示有中文乱码,还有doc的导出也会出现乱码,前者可以到window-preference-general-contentTypes里面设置,注意里面有很多中文件编码这是方式,择情而定
2.xmemcaced和spring集成,这个比较悬,官方给出的文档也不完整, 还是自己玩出来的
1). xmemcached.xml
<?xml version=”1.0″ encoding=”UTF-8″?>
<beans xmlns=”http://www.springframework.org/schema/beans” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd “>
<bean name=”memcachedClientBuilder”>
<!– XMemcachedClientBuilder have two arguments.First is server list,and second is weights array. –>
<constructor-arg>
<list>
<bean>
<constructor-arg>
<value>119.57.16.83</value>
</constructor-arg>
<constructor-arg>
<value>11000</value>
</constructor-arg>
</bean>
<bean>
<constructor-arg>
<value>119.57.16.83</value>
</constructor-arg>
<constructor-arg>
<value>12000</value>
</constructor-arg>
</bean>
<bean>
<constructor-arg>
<value>119.57.16.83</value>
</constructor-arg>
<constructor-arg>
<value>13000</value>
</constructor-arg>
</bean>
<bean>
<constructor-arg>
<value>119.57.16.84</value>
</constructor-arg>
<constructor-arg>
<value>11000</value>
</constructor-arg>
</bean>
<bean>
<constructor-arg>
<value>119.57.16.84</value>
</constructor-arg>
<constructor-arg>
<value>12000</value>
</constructor-arg>
</bean>
<bean>
<constructor-arg>
<value>119.57.16.84</value>
</constructor-arg>
<constructor-arg>
<value>13000</value>
</constructor-arg>
</bean>
</list>
</constructor-arg>
<constructor-arg>
<list>
<value>2</value>
<value>2</value>
<value>2</value>
<value>2</value>
<value>2</value>
<value>2</value>
</list>
</constructor-arg>
<property name=”connectionPoolSize” value=”6″></property>
<property name=”commandFactory”>
<bean></bean>
</property>
<property name=”sessionLocator”>
<bean></bean>
</property>
<property name=”transcoder”>
<bean />
</property>
</bean>
<!– Use factory bean to build memcached client –>
<bean name=”memcachedClient” factory-bean=”memcachedClientBuilder” factory-method=”build” destroy-method=”shutdown” />
</beans>
2)。代码如此初始化:
private MemcachedClient memcachedClient;
@Autowired
public void setMemcachedClient(MemcachedClient memcachedClient) {
this.memcachedClient = memcachedClient;
}
———————end