ECUG Con 2010, Oct 16-17, Beijing, China - 讲师注册&Topic征集
【公告】ECUG Con 2010, Oct 16-17, Beijing, China - 讲师注册 Topic征集开始啦!详情参阅:http://ecug.org/ 。
ECUG Con 2010 讲师注册入口更新,不再需要翻墙
ECUG Con 2010 讲师注册及 Topic 征集入口更新了,不再需要翻墙 - http://www.ecug.org/2010:lecturer-register/ 。
javascript 网页版《植物大战僵尸》
javascript 网页版《植物大战僵尸》 - http://www.lonelystar.org/pvz/ 。 不过从这个案例我看到的不是 javascript 的强大,反而是让我对 javascript 在游戏开发上与 flash 相比上的可行性的忧虑。
孩子10岁前应该玩的32个游戏(转)
孩子10岁前应该玩的32个游戏: 对于今天的10岁孩子们来说,每天花几个小时看电视或玩电脑似乎已经是家常便饭。但是,他们知道爬树、建沙堡或是在草地上打滚的乐趣吗? 英国专家最近提出了10岁以下儿童应该做的32件事,计算机游戏并不在列。 英国国际游戏协会的研究人员进行了一项调查,结果发现在如今孩子的生活中,很多曾经带给他们父母童年无限美好回忆的传统游戏已经消失了。为此,专家们制定出一个10岁以下儿童游戏清单,列出了他们应该做的32件事。 草地上打滚 做泥饼 玩面团 找蝌蚪 用花瓣做香水 做纸面具 建沙堡 爬树 在花园里挖地洞 用手和脚画画 过家家 描脸蛋化妆 在海边沙子里埋小朋友 自己烤面包 堆雪人 做泥塑 拾垃圾 在花园里露营 做简单的饭 养小动物 采草莓 耍棍子 区分五种鸟类 认识一些虫子 骑车过泥坑 放风筝 种树 用草和树枝造鸟巢 在公园里找到10片不同的树叶 种蔬菜 早上帮父母准备早餐...
周鸿祎:向用户、竞争对手学习,是360的微创新之源
...
方舟子遇袭
刚回家,就听到方舟子遇袭的消息。此时距离另一位敢于直言的调查记者方玄昌遇袭刚刚过去了67天,而那个案子至今毫无消息。 都说方舟子树敌太多,这才惹来如此大的麻烦。其实这个世界上敌人多的人远不止方舟子一人,但他的打假方式相当独特,不靠谩骂,不玩文字游戏,更不靠武力,只凭事实说话,依证据行事。这样的打假,被打者毫无反击之力,只能乖乖认错。不甘心认错的人就只有诉诸暴力这一条路可走了。 这就是科学和理性的力量。 他打假至今还没有失手过,这倒不是因为他特别博学或者特别聪明,而是因为他从事过很多年的科学研究,掌握了一整套科学的思维方式,知道去哪里找科学界的主流观点。换句话说,他的背后是一大帮全世界最聪明的大脑做后盾。 迄今为止,那些不同意他观点的人,统统拿不出任何证据来,于是便只能给他扣上一顶顶帽子,什么“科学教教主”啦,什么“美帝代言人”啦,等等等等。这些人最大的毛病就是自负,他们总觉得自己才是最牛逼的人,宁可相信自己的直觉而不相信大多数顶尖科学家的集体智慧。而方舟子恰恰是把自己个人好恶放到一边,只看证据。 这才是最大的谦虚,这才是真正的爱心。 希望警方早日抓获凶手。...
黄征:《卖》
中国房地产的真实写照。
财聚人散,财散人聚
独乐乐,不如众乐乐。
中国房地产 - 泡沫之母(The Mother Of All Bubbles)
所有泡沫之母将会破灭。只是个时间问题。基于历史经验,中国的房地产泡沫正在寻找它的那根针。
创业之困:恐龙必定会从地球上消亡
话说这年头创业也成了时尚潮流,各级领导到处忽悠年轻人去创业,拍胸脯保证让你免费搬进新建的办公大楼,呵呵,千万别让那些创业园区的高楼大厦给蒙住了眼晴,其实,中国的创业环境不知比美国差多少倍,差的不是硬件,差的是软实力;如果制度不变,中国打造不出硅谷。很想去给工商局的领导们每人发一本《天演论》,但恐怕这是对牛弹琴而已,因为恐龙并不会自己消亡,进化的动因是外部环境的变化。所以每个中国的孩子都应该出国看看,当他们知道什么是先进、什么是落后,那么有一天,工商局税务局里保准会上演一出《侏罗纪公园》的好戏。 恐龙曾经不可一世的主宰世界……但是恐龙必定会从地球上消亡。 转载自:http://blog.sina.com.cn/s/blog_5ce0a6480100k3d1.html ...
这些广告的受益者并非本人,而是 Wikidot。我个人从不掩饰对 Wikidot 的喜爱,它给了我想要的东西,我们为它赚点广告费,我觉得这是很正常事情。Wikidot 也是很有原则的一家公司,她对客户的尊重是我喜爱她的另一个重要原因,要想进入本站而不出现广告很简单,注册个 Wikidot 账号,在浏览本站的时候保持登录状态就好了,你会看到一个很干净的界面。
许哥,能说一下,go和erlang的一些比较吗?
哪一个更适合大规模的实际应用?
多谢
如果你不考虑具体的使用场景,建议选择 golang。erlang 的适用范围相对狭窄。
两者目前都重服务端,所以客户端开发来说,都不是特别适合,如果非要用,建议用 golang。
服务端开发,如果团队比较小,喜欢函数式编程,而且网络模块偏重 io,逻辑不复杂,用 erlang 可以获得比 go 更好的性能,目前 go 语言在性能上还没做过非常大力度的优化。其他情况我建议用 golang。
我用erlang做过手机银行的服务端,效果还是不错的
多谢许哥这么详细的说明,这样就清楚怎么选择了,多谢
在执行单元的公平调度方面,还是请指点下:
比如我要做一个管理大量设备(成千上万)的程序,需要即时监控设备状态,erlang进程的公平调度性是适合这个场景的,golang在这点上机制如何?
许哥您好:
看到您编写的winx, 我有一个问题请教, 为什么MFC的消息映射要提供_AFXDLL和非_AFXDLL两个implementation, 比如
#ifdef _AFXDLL
#define DECLARE_MESSAGE_MAP() private: static const AFX_MSGMAP_ENTRY _messageEntries[]; protected: static AFX_DATA const AFX_MSGMAP messageMap; static const AFX_MSGMAP* PASCAL _GetBaseMessageMap(); virtual const AFX_MSGMAP* GetMessageMap() const;
#else
#define DECLARE_MESSAGE_MAP() private: static const AFX_MSGMAP_ENTRY _messageEntries[]; protected: static AFX_DATA const AFX_MSGMAP messageMap; virtual const AFX_MSGMAP* GetMessageMap() const; #endif
为什么直接用非_AFXDLL的版本的不行? 非要用一个函数_GetBaseMessageMap()去取基类的messageMap?
许哥您好,请教一个问题:
golang http.ResponseWriter 的Write()方法,服务的QPS由3万降到7000。附上我的测试代码和boom测试结果:
现在我测试到的情况是这样的,如果我只填写http的header,那么服务端的处理速度很高,单纯测试(没有业务逻辑),QPS能达到3万,但是如果我添加payload,那么QPS就只能达到不足8000了,只有6000的样子。这个落差太大了,我尝试直接使用http.ResponseWriter 接口中的Write方法写入一个[50]Byte,效果一样。根据我的测试和你们的分析,应该是IO的问题,不过这个也太夸张了。
func handleHeader(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Length", "0") }
func handlePayload50(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Length", "50") w.Write(make([]byte, 50)) }
func handlePayload128(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Length", "128") w.Write(make([]byte, 128)) }
func handlePayload1024(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Length", "1024") w.Write(make([]byte, 1024)) }
func main() { runtime.GOMAXPROCS(runtime.NumCPU()) http.HandleFunc("/header", handleHeader) http.HandleFunc("/payload50", handlePayload50) http.HandleFunc("/payload128", handlePayload128) http.HandleFunc("/payload1024", handlePayload1024) host := fmt.Sprintf("%s:%d", "0.0.0.0", 5001) http.ListenAndServe(host, nil) }
and the boom test result: ./boom -c 1000 -n 500000 -cpus 12 XXXXXX/header 500000 / 500000 Boooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00 %
Summary: Total: 12.8799 secs. Slowest: 3.2799 secs. Fastest: 0.0018 secs. Average: 0.0239 secs. Requests/sec: 38810.4907
Status code distribution: [200] 499875 responses
Response time histogram: 0.002 [1] | 0.330 [499306] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 0.657 [0] | 0.985 [0] | 1.313 [312] | 1.641 [0] | 1.969 [0] | 2.297 [0] | 2.624 [0] | 2.952 [0] | 3.280 [256] |
Latency distribution: 10% in 0.0125 secs. 25% in 0.0172 secs. 50% in 0.0216 secs. 75% in 0.0257 secs. 90% in 0.0295 secs. 95% in 0.0327 secs. 99% in 0.0549 secs.
./boom -c 500 -n 500000 -cpus 12 XXXXXX/payload128 500000 / 500000 Boooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00 %
Summary: Total: 62.5205 secs. Slowest: 3.0714 secs. Fastest: 0.0112 secs. Average: 0.0601 secs. Requests/sec: 7997.1501 Total Data Received: 63998208 bytes. Response Size per Request: 128 bytes.
Status code distribution: [200] 499986 responses
Response time histogram: 0.011 [1] | 0.317 [495652] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 0.623 [0] | 0.929 [0] | 1.235 [4092] | 1.541 [0] | 1.847 [0] | 2.153 [0] | 2.459 [0] | 2.765 [0] | 3.071 [241] |
Latency distribution: 10% in 0.0405 secs. 25% in 0.0436 secs. 50% in 0.0481 secs. 75% in 0.0546 secs. 90% in 0.0629 secs. 95% in 0.0731 secs. 99% in 0.1054 secs.
许哥:go如何通过一个字串动态创建对象?
比如java里面,有myObject = class.forName("my.com.myObject");
假设有一个mysql库字串是 "github/mysql",我如何像java一样动态得到这个mysql的接口或结构?比如假设可以 sqltest=newObject("github/mysql")?
Post preview:
Close preview