shitou's blog 

  • Home
  • About
  • Feed
  • 十人族
  • MIX BOY
  • 塌客
20
Apr

在gen_server中spawn新的进程

最近Joe在erlang mail lists中频繁现身,估计是因为许多人对gen_server的使用有很多误解,忍不住出来解救众生的...

其中Joe专门解释了怎样在gen_server中管理新的进程的问题 代码:
foo(X) ->
    gen_server:call(?Mod, {foo, X}).


%% Write a gen_server handle call method like this:

handle_call({foo, X}, From, State) ->
    State1 = func1(X, State),
    State2 = func2(X, State),
    spawn_link(fun() -> do_something(State1, X, From) end),
    {noreply, State2}.

do_something(State, X, From) ->
    Reply = func3(X, State),
    gen_server:reply(From, Reply).
上面的do_something可能是一个time-cost任务,为了不阻塞当前的gen_server进程,可以spawn一个新的进程来专门处理,do_something和当前gen_server进程会并行运行,gen_server会以State2继续运行,并且不会给client返回任何消息,client一直处于等待状态(因为这里是gen_server:call), do_something在处理完毕后会负责给client答复(gen_server:reply)

Tags: gen_server

2011-04-20 03:58:18, 473 reviews, comment

send to mailbox

Your email:

01
Apr

谷歌穿越搜索...

Google teleport

 

是的,谷歌穿越搜索,谷歌总是和我们这些草根网民走的这么近,其实这个搜索昨天就出来了的说,哥太忙了就忽视了,今天又看了看,发现哥昨天错了,昨天就应该穿越的,哥一直都在期望穿越啊混蛋,我们来穿越吧,对了,穿越前不要忘了热身,我们一起来做"穿越体操":

 

开始穿越, 引力场扭曲中~~

 

Tags: google

2011-04-01 20:12:03, 468 reviews, comment

send to mailbox

Your email:

01
Apr

Superfly - Wildflowers

前段时间在中国购买王上订的Superfly的CD: Wildflowers终于到货了(加运费小300RMB,钱包你怎么了,钱包你醒醒啊..),今年疯狂迷上了Superfly, 感觉她的嗓音很特别,

 

知道她还是因为去年年底时PSP上的游戏寄生前夜<第三次生日>的主题曲Eyes on me(没错, 和Final Fantasy VIII的主题曲同名,那首是由王菲唱的)就是她唱的,当时哥的抵抗力瞬间降为0, 她的声音初听给人特别有力和充满磁性,然后你又会觉得很温柔....之前在网上听了她的Wildflowers专辑,随后就觉得一定要收藏正版,下面是用手机拍的到货的CD:

 

http://www.ccok.me/photo/image/78/medium/___1.jpg

封面

 

http://www.ccok.me/photo/image/79/medium/___2.jpg

让我小心的打开..

 

http://www.ccok.me/photo/image/80/medium/___3.jpg

封底内

 

http://www.ccok.me/photo/image/81/medium/___4.jpg

封底外

 

 

Tags: superfly

2011-04-01 02:21:19, 471 reviews, comment

send to mailbox

Your email:

31
Mar

继续凸墙 for Mac OS

之前已经说过怎样用ssh tunnel来凸墙了, shitou一直用的Mac, 每次都需要使用时执行一次ssh的命令,然后就是进System Preferences中开启网络的sock代理,不用时还得kill掉ssh tunnel的进程,感觉还是麻烦的说,程序员不都是越来越懒惰的吗,所以就写了下面这个懒惰脚本,

用这个脚本的前提是:

1) 必须在Mac上
2) 必须以sudo的方式运行
3) 必须事先已经设置好socks代理的server ip和端口号,因为这个懒惰脚本不会帮你填代理的ip和端口号,你只需要设置一次就可以了,以后永远不用动了,设置socks代理的ip和端口的方法是System Preferences -> Network -> Advanced... -> Proxies -> SOCKS Proxy, 然后把ip和端口添进去就行了,下面脚本中会开启代理是127.0.0.1:8082, 我知道你也懒得改了,就按这个填吧...
4) 最后就是你最好设置好ssh使用无密码密钥登陆,不然每次都要敲ssh密码,要懒就懒极致...

好了,懒惰脚本在这里:
#!/bin/bash

#Parameters
USER=root
HOST=

#Configuration file
#Please check if the file exists
CONFIG_FILE=/Library/Preferences/SystemConfiguration/preferences.plist

SWITCH=0
case $1 in
  0|1)
    SWITCH=$1

    LINE=`grep -n 'SOCKSEnable' $CONFIG_FILE  | cut -d: -f1`
    sudo awk '{if(NR == "'$LINE'" + 1)print "'$SWITCH'";else print $0}' $CONFIG_FILE > $CONFIG_FILE.tmp
   sudo mv $CONFIG_FILE $CONFIG_FILE.bak
    sudo mv $CONFIG_FILE.tmp $CONFIG_FILE
    echo "Modify configuration file successfully!"

    if [[ $SWITCH == 1 ]]; then
      echo "*************"
      echo "Starting ssh tunnel.."
      ssh -Nf -D 0.0.0.0:8082  $USER@$HOST
      echo "Done!"
      echo "You are outsite the GFW now:-)"
    else
      echo "Stopping ssh tunnel.."
      kill `ps aux | grep "ssh -Nf" | grep -v grep | awk '{print $2}'` > /dev/null
      echo "You are insite the GFW now:-("
    fi
    ;;
  *)
    echo "need 0|1, exit"
    exit 1
esac

使用

首先你得保存下来,加入脚本名字是fuucck_gfw.sh, 然后填下USER和HOST两个变量,就是ssh登陆的用户名和主机,然后就完了.
sudo ./fuucck_gfw.sh 1
1是开启,0是关闭,执行完就OK了.

最后, 上面的脚本还不是最完善的, 原因在于, 每次修改完系统的Network配置后会重新载入当前的网络配置, 但是shitou怎么找都没找到在Mac中怎样用命令来reload网络配置的, 所以在你执行完上面的脚本后, 还需要在System Preferences中打开Proxies, 然后做一次SOCKS Proxy的配置改变, 就是点两下前面的单选框,然后点OK, Apply就行了, 有知道怎么在Mac中通过命令来reload网络配置的同学可以告诉我, 这样这个脚本就完善了, 真正的一键凸墙凹墙...

Tags: Mac,shell

2011-03-31 03:47:32, 559 reviews, comment

send to mailbox

Your email:

09
Mar

MongoDB Beijing 2011

MongoDB Beijing 2011已经结束好几天了,最近一直很忙,没时间来记录,今天使劲挤终于挤出了时间,下面简单说下整个过程吧。

 

会上用同事的iPhone 4拍了几张照片,照片不怎么清楚,主要光线的原因,

 

下午一点半到了会场,签到,拿纸和笔(让做笔记用)还有宣传小册,宣传小册上有一些mongodb的命令,挺专业的,门口图灵和华章两个出版社都摆了坛子,必须都是计算机类的图书了,凑到图灵的摊前看了看,发现了Pro HTML5 Programming这本书,正打算打印这本书的英文版呢,没想到这里居然遇到了,当然是中文版的,正要买,图灵说不卖,这是待会抽奖的赠品,赠品!?活了25年从来和赠品没什么关系,好吧,回去花钱到网上订。

 

进会场发现座位几乎已经坐满了,等了大概10分钟开始了,两个老外,一个是10gen(MongoDB背后的公司)亚洲区的产品xx, 另一个貌似也是产品xxx,英语没听清楚,

 

开场先是感谢CSDN..,靠,居然不感谢CCTV,不想在中国混了...

http://www.ccok.me/photo/image/74/medium/IMG_0204.jpg

上面是华丽丽的吊灯,我的眼。。。

 

http://www.ccok.me/photo/image/73/medium/IMG_0201.jpg

会场

 

开场主要由两个老外来做PPT,一个是说什么是MongoDB的,另一个主要是说一些高级应用的,如scaling, replica sets, sharding和performance相关的内容。

 

http://www.ccok.me/photo/image/75/medium/IMG_0205.jpg

在讲MongoDB入门的东西,什么是MongoDB,MongoDB和传统RDBMS的关系,模式设计,MongoDB的限制,事物,map/reduce, capped collection, tailable cursors, GEO indexing,以及一些简单的查询举例,现场还show了一下mongodb的下载和安装有多么的简单和快捷

 

在说到MongoDB的性能时,PPT只说了MongoDB是用C++编写的,所以具有high performance, 为什么用C++写的就有好的性能呢,难道是因为C++?,我觉得这里至少应该给出一些和RDBMS的benchmark数据才更具有说服力,当然MongoDB在安装,部署,索引创建,插入,查询等许多方面的确都比RDBMS有很多的优势,但大部分没有接触过NoSQL的人更关注的还是和当前RDBMS的性能比较,至于好不好用不是第一要考虑的问题。

 

至于和其他NoSQL的对比没有任何说明。

 

shitou听到的几点重要的是(之前还不知道的):

1) 已经删除的collection表空间虽然在磁盘空间占用中不会释放(类似于MySQL InnoDB的表空间),但会被之后的新数据重新利用。

2) 在将要发布的1.8 版本中单document的大小限制会从4M提升到16M。

 

然后就是提问时间,问的问题一个没听清。。。

 

http://www.ccok.me/photo/image/76/medium/IMG_0206.jpg

下面NO. 2老外上台(其实中间他还客串了一下帮NO. 1举话筒)

 

这个讲内容挺多的,都是一些比较高级的主题,比如

  • Scaling mongodb
  • Linked model design or embed document
  • Data model effects performance
  • Any performance problem can be resolved by changing schema
Scaling mongodb主要就是说的mongodb的master/slave, master/master, replica sets, shading等特性,说目前不推荐在production中使用master/master的模式。

 

由于mongodb是基于JSON的存储方式,所以你可以随意设计你的数据结构,“Just do whatever you want to do",这是官方的说法,不过究竟嵌套文档的层次有多深这个只有自己去做测试,目前shitou在项目中嵌套已经达到6,7层了,性能仍有不错的表现。

 

从“Any performance problem can be resolved by changing schema”可以看出mongodb对自己在简单存储模式(没有大量sub-document)下海量数据的查询还是很有信心的,shitou之前做个测试在400w数据查询的时候性能表现的确不错,感兴趣的同学可以看这里(亿级测试)。

 

好了,中场休息,有吃的,盘子在哪儿?

 

下面就是几个公司的交流PPT, 换场地,分两场同时进行PPT演讲, shitou所在的公司在另一个大厅,
http://www.ccok.me/photo/image/77/medium/IMG_0218.jpg
这是shitou的同事在做PPT,之后就是提问,感觉大家还是对查询,数据量这类问题比较感兴趣,不多说了。

 

下面是同事的PPT,摸我


Tags: MongoDB

2011-03-09 02:28:02, 636 reviews, comment

send to mailbox

Your email:

01
Mar

Mongo Beijing开发者聚会

MongoDB北京开发者聚会这个月3号要在北京知春路举行了,MongoDB开发者Roger Bodamer也将到会,shitou所在的公司受邀也参加这次聚会,而且会做一个半个小时的PPT演讲,不过不是shitou露脸的,由我们一同事要来做,主要就是介绍我们在MongoDB方面的一些使用经验和遇到的问题,等这次聚会过后shitou会放出PPT的下载链接,有兴趣的同学可以3号去参加,貌似不收费的说,具体信息在这里,

 

 

 

链接: http://www.10gen.com/conferences/mongobeijing2011

 

Tags: MongoDB

2011-03-01 06:59:54, 437 reviews, comment

send to mailbox

Your email:

上一页 1 2 3 ... 34 35 下一页

Tags

json Impactjs Canvas fun gen_server superfly PS3 Webgame HTML5 jquery SSH tenerer MooseFS gearman-ruby Gearman MongoDB MochiChat TCP U-ka saegusa IN db command Mai Kuraki Norah Jones log iPhoneException ACG Mac Safari objective-c CouchDB LVS AJAX debian 推荐 AMQP google mail bug gettext Erlang 北京 iptables 架构 tips mysql backup function 我看 postfix 监控 SEO cache Etag memcache thread 进程 线程 无锡 yield file column mixboy xml rss gems ruby shitou shell lighttpd 安全 csrf 公司 nginx linux 模块 apache webserver 朋友 大学 生活 尼古拉斯凯奇 movie 文件同步 笑笑 歌词 auto complete plugin rails music ubuntu blog

Category

  • HTML5[3]
  • iPhone[17]
  • Erlang[11]
  • google[13]
  • 生活[45]
  • 音乐[13]
  • 电影[11]
  • linux[29]
  • web server[6]
  • mail server[3]
  • cluster[1]
  • system manage[9]
  • ruby[20]
  • ruby on rails[28]
  • 开源[4]

Episode

  • MongoDB
  • MochiChat
  • iPhoneException
  • shell
  • thread
  • memcache


Popular Posts

  • 准备开始学习Erlang了(恶狼, 二郎..)
  • Ruby遍历MemCached的key
  • 服务器监控小脚本
  • MySQL Innodb备份
  • [转载]5个有用的ruby gems

Recommended Posts

  • Tri-survive - HTML5 Game
  • Cut the rope - HTML5版
  • json_formatter
  • 在gen_server中spawn新的进程
  • Superfly - Wildflowers
  • 继续凸墙 for Mac OS
  • MongoDB Beijing 2011
  • MongoDB删除map_reduce生成的tmp collection
  • Mai Kuraki - Future Kiss
  • Erlang OOP
  • 用SSH tunnel凸墙
  • Google的语法高亮工具包
  • 大量数据的批量操作
  • 再次被和谐-_-
  • 十人族: 上线了

Friends' blogs

  • levy
  • sphance
  • andreas
  • yangkunlun
  • {:dev=>:wxianfeng}
  • bheye
  • joeydarko

Login

   注册

留言 查看留言

留言

   取消

留言 查看留言


Statistics

  • 访问次数: 316230
  • 今天访问: 25
  • 日志: 213
  • 评论: 4967
  • 音乐: 9
  • 用户: 1758


少年,不点下广告吗!

 

all by shitou

blog comments powered by Disqus

close