??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久综合网站,国产精品一区二区精品视频观看,日韩一区二区三区avhttp://www.aygfsteel.com/killme2008/category/19802.html生活、程序、未?/description>zh-cnSun, 09 Dec 2012 22:26:16 GMTSun, 09 Dec 2012 22:26:16 GMT60博客搬迁http://www.aygfsteel.com/killme2008/archive/2012/12/10/392701.htmldennisdennisSun, 09 Dec 2012 17:24:00 GMThttp://www.aygfsteel.com/killme2008/archive/2012/12/10/392701.htmlhttp://www.aygfsteel.com/killme2008/comments/392701.htmlhttp://www.aygfsteel.com/killme2008/archive/2012/12/10/392701.html#Feedback1http://www.aygfsteel.com/killme2008/comments/commentRss/392701.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/392701.html很久没有更新博客Q没惛_更新是搬q公告。这个博客篏计的讉K量突破百万,是我建立的时候完全没有想q的事情。博客对我来说更多是记录、记忆的地方Q我时常因ؓ想不h个东西,来翻自己的博客,查找旧知Q发现新知。阅d多h的博客,也是我跟t、学习新知的主要方式。虽然微博兴P不过博客作ؓ更系l性的记录的地方,不会q时?br />
非常感谢blogjava提供q么优秀的^台。只是我今年l自q一个目标是建立自己的博客,因此现在要搬q,加上其实现在也写的少Q其实搬q不搬迁Q意义也不大了。算是一个通告Q有兴趣的可以订阅我的新博客Q没兴趣的请自行略过Q谢谢大家?br />
新博客地址Q?a >http://blog.fnil.net/
RSS地址Q?a >http://blog.fnil.net/index.php/feed

新博客的W一记忆是?a >Leiningen教程中文?/a>》,从现在开始,q个博客不再发布Q何新的文章,已有的也不会删除Q部分可能会导到我的知识库上厅R?br />
最后,福blogjava办好?br />

dennis 2012-12-10 01:24 发表评论
]]>
Clojure中文专业技术社?/title><link>http://www.aygfsteel.com/killme2008/archive/2012/09/25/388498.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Tue, 25 Sep 2012 04:51:00 GMT</pubDate><guid>http://www.aygfsteel.com/killme2008/archive/2012/09/25/388498.html</guid><wfw:comment>http://www.aygfsteel.com/killme2008/comments/388498.html</wfw:comment><comments>http://www.aygfsteel.com/killme2008/archive/2012/09/25/388498.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/killme2008/comments/commentRss/388498.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/killme2008/services/trackbacks/388498.html</trackback:ping><description><![CDATA[很久没写博客Q一是工作忙Q二是没有太多的事情可说?br /><br />最q在公司大{的支持下Q徏立了一个Clojure语言中文斚w的博客和问答|站Q欢qQ何对Clojureq门ZJVM之上的函数式语言感兴的童鞋贡献原创文章或者资料,甌帐号L<a >q里</a>?br /><br />博客地址Q? <a >http://blog.clojure.cn/</a><br />问答|站Q? <a title="http://ask.clojure.cn/">http://ask.clojure.cn/</a><br /><br />Ƣ迎转发和注册用,谢谢?br /><br />邮g列表仍然使用google groupQ?a >https://groups.google.com/group/cn-clojure/</a><img src ="http://www.aygfsteel.com/killme2008/aggbug/388498.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/killme2008/" target="_blank">dennis</a> 2012-09-25 12:51 <a href="http://www.aygfsteel.com/killme2008/archive/2012/09/25/388498.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作q况http://www.aygfsteel.com/killme2008/archive/2012/03/16/372074.htmldennisdennisFri, 16 Mar 2012 14:59:00 GMThttp://www.aygfsteel.com/killme2008/archive/2012/03/16/372074.htmlhttp://www.aygfsteel.com/killme2008/comments/372074.htmlhttp://www.aygfsteel.com/killme2008/archive/2012/03/16/372074.html#Feedback7http://www.aygfsteel.com/killme2008/comments/commentRss/372074.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/372074.html
    正式介绍下我们公司,大boss是youtube创始人查?#8226;赫利(Chad Hurley)和陈士骏(Steve Chen)Q我们在中国的boss是前google员工/耉的博?a >江宏帅哥Q更多关于团队成员的介绍Lq里Q我的同事们真的很强大,我要学习的地方很多。我们做的品是从雅虎手上买下来的delicious.comQ不q中国团队运作的是美味书{?#8212;—mei.fm。我们刚??号开始做public betaQ预计会?月䆾的时候正式对外开放注册。我们的团队博客?a >q里?br />
    我在团队里做的事情还是偏向后端,q一个月来做的事情更偏向q维之类Q搞搞solr复制、mysql复制、程序监控之c,原来只是简单了解过的东西动手做了一遍,能亲手实늚感觉不错。在此过E中要感谢锋爷和刘帅哥的帮助Q再ơ感谢。淘宝的同事们开源了metaq和geckoQ我也做了点工作Q都?a href="http://www.aygfsteel.com/killme2008/archive/2012/03/16/372019.html">q里。几个维护的开源项目都没有太大q展Q很惭愧Q还被h催发新版本,能承诺的是周末发xmemcached的新版本Q主要还是修bug。本来要写个clojure世界的系列文章,因ؓ响应寥寥Q也不是很有动力写下厅R杂七杂八读了几本书Q都没读完,q一个月杭州太冷了,雨下个不停,不过l于q一周开始晴天了Q希望老天爷别再掉眼泪?br />
    收拾收拾心情Q整装待发,希望新的一q里能做出点不同的东ѝ?br />    

dennis 2012-03-16 22:59 发表评论
]]>
W二ơcn-clojureU下聚会http://www.aygfsteel.com/killme2008/archive/2012/02/09/369655.htmldennisdennisThu, 09 Feb 2012 04:37:00 GMThttp://www.aygfsteel.com/killme2008/archive/2012/02/09/369655.htmlhttp://www.aygfsteel.com/killme2008/comments/369655.htmlhttp://www.aygfsteel.com/killme2008/archive/2012/02/09/369655.html#Feedback0http://www.aygfsteel.com/killme2008/comments/commentRss/369655.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/369655.html    dQ我靠,已经是去q了Q首ơ在上vl织了第一ơcn-clojure的线下聚会,详细可以?a href="http://www.aygfsteel.com/killme2008/archive/2011/08/09/356106.html">q篇blog。今q_我们在北京举行W二ơcn-clojure的聚会,旉大概?月底或?月初Q具体地点待定,Ƣ迎M对clojure语言或者Lisp语言感兴的朋友参加Q如果有惛_享的技术topic更好 :D?br />
    如果你要参加Q请参加下面的报名调查,填写真实的姓名和邮箱。如果有惛_享的topicQ可以填写调查或者直接邮件给我?br />    报名链接Q?a >http://www.diaochapai.com/survey584561

    我们在议程、时间和地点定后发邮gl报名的朋友Q确认参会的具体旉和地炏V?br />    邮g列表Q?a >http://groups.google.com/group/cn-clojure

dennis 2012-02-09 12:37 发表评论
]]>
最q做的一些事?/title><link>http://www.aygfsteel.com/killme2008/archive/2012/01/15/368548.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Sun, 15 Jan 2012 04:50:00 GMT</pubDate><guid>http://www.aygfsteel.com/killme2008/archive/2012/01/15/368548.html</guid><wfw:comment>http://www.aygfsteel.com/killme2008/comments/368548.html</wfw:comment><comments>http://www.aygfsteel.com/killme2008/archive/2012/01/15/368548.html#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://www.aygfsteel.com/killme2008/comments/commentRss/368548.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/killme2008/services/trackbacks/368548.html</trackback:ping><description><![CDATA[<br />    很久没写blog了,写写最q做的一些工作,l感兴趣的朋友做参考?br />    首先是我们的<a >kafka</a>?#8220;复制?#8221;metamorphosis做了1.4版本Q实C同步复制ҎQbroker本n也做了很多优化,M而言meta是一个非常成熟可用的产品了。甚臛_以说是我在淘宝做的最好的一个品。有些朋友L问我们ؓ什么不直接用kafkaQ而要另写一个?q里做个l一的解{?br />Q?Qkafka是scala写的Q我对scala不熟悉,也不待见Q考虑到维护和语言熟悉E度Q用java重写仍然是最好的选择?br />Q?Q其ơ,kafka的整个社区非怸z跃Q发展太慢,而我又不愿意d习scala来参与社区发展,那么唯一的出路就是自己写?br />Q?Qkafka的一些工作不能满x们的要求Q比如一开始它qproducer的负载均衡都没有Q它的消费者API设计q是比较蛋疼的。它也不支持事务Q没有考虑作ؓ一个通用的MQpȝ来用。ƈ且它也没有高可用和数据高可靠的方案?br />Q?Q我们做了什么呢Q?br />a.用javad重写整个pȝQ除了原理一_整个实现是彻底重新实现的?br />b.我们提供了生产者的负蝲均衡Q仍然是ZzkQ,重新设计了消费者APIQ更W合 JMS的用习惯?br />c.我们提供了事务实玎ͼ包括producer和consumer端的Q包括本C务和W合XA规范的分布式事务实现?br />d.我们提供了两U数据高可靠ҎQ类似mysql的异步复制和同步复制Ҏ。通过消息复制到多个节点上来保证数据的高可靠?br />e.我们提供了http协议的实玎ͼq且本n使用协议也是cMmemcached的文本协议,内部也增加了很多l计目Q可以以memcached的stats协议的方式来获取U文本的l计信息。整个系l运l很方便?br />f.提供了很多扩展应用:q播消费者的实现Q多Uoffset存储的实玎ͼ默认的zookeeperQ还有文件和mysql)Qtail4j用于作ؓagent发送日志,log4j appender扩展用于透明C用log4j发送消息,hdfs writer用于消息写入hdfsQstorm spout用于消息接入storm做实时分析,基本上Ş成一套完整的工具铑֒扩展?br />g.一些其他功能点Qgroup commit提升数据可靠性和吞吐量,q接复用Q集下的顺序消息发送,消息数据的无痛迁Ud水^扩展Qweb理q_{?br /><br />    meta未来会走开源的路子Q不q不会是我来推动的,估计是在今年会有q展?br /><br />    我最q还写了一些小目值得一提,首先?a >aviator</a>q个轻量U的表达式执行引擎发布了2.2.1版本Q主要是q么几个改进Q?br />Q?Q支持多l数l变量的讉KQ如a[0][0]<br />Q?Q添加Expression#getVariableNames()用于q回表达式的变量列表<br />Q?Q添加AviatorEvaluator#execҎ来简化调?br />Q?Qbug修正{?br />    maven直接升Q?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; "> </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />                        </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">com.googlecode.aviator</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />                        </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">aviator</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />                        </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">2.2.1</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />        </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span></div><br />    其次Q?a >hs4j</a>q个handler socket的客LQ由新浪微博的@赵鹏城实Cinc/dec协议Q添加了incr和decrҎ用于更新计数Q感谢他的A献,如果你需要这两个功能可以自己从github拉取源码q构建打包,暂时不准备发布到maven?br /><br />    W三Q关注高可用的Transaction Manager实现的可以关注下我的<a >ewok</a>目Q这是一个基?a >BTM</a>q个开源JTA实现Q提供基于bookkeeper的高可用的TM目。将事务日志写到高可用的bookkeeper上,q利用zookeeper来做到故障的透明q移Q某个TM挂了Q可以在其他机器上从bookkeeper拉取日志q恢复。代码已l稳定ƈ做了性能试Q没有做q一步的破坏性测试?a >BTM</a>是一个比JOTM和atomikos更靠q开源JTA实现Qƈ且性能也好上很多,代码质量更不用说Q徏议有兴趣的可以看一下。我也ؓ它A献了<a >一个事务日志写入优化的patch</a>Q日志写入性能提升了近一倍?br /><br />    最后,我在clojure上做了一些事情,首先是ؓ<a >storm</a>目贡献了两个patchQ利用curator做zookeeper交互和添加storm.ui.context.path选项Q前者被作者接受,后者暂时只Ҏ们有用。前者让storm跟zk的交互更可用Q后者是为storm uid了可选的相对路径。你都可以在<a >我fork的分支上</a>试Qcurator的patch在storm 0.6.2上发布,现在q是snapshot状态。昨天晚上牙痛睡不着Q半夜写了个<a >clojure STM profiler</a>Q用于统计分析clojure STMq行状况Q诸如事务运行次数和旉Q事务的重试原因和次数等Q可以针Ҏ个dosync的form做统计,有兴也可以看下。不q我其实更想这个功能加入到clojure核心Q会试提交下pull request?br /><br />   q有个工作上的变q,我将??h式从呆了q三q的淘宝职Q加入一支充满活力的创业团队。从E_的大公司出来Q去加入一家初创公司,不能说没有风险,但是我还是想L受新的挑战,愿意更新我的知识l构Q愿意向牛h们学习。我在某个blog上说我今q遇C人生中最大的挑战和{折,q不是说q个事情Q而是我的儿子今年患了一场重病,庆幸在很多h的帮助和兛_下,他勇敢地Zq来Q度q最困难的一养I现在q在l箋ȝ。我要感谢很多hQ感谢淘宝,感谢我的TL华黎和锋寒,感谢我的同事和朋友林轩,感谢我们的HRQ感谢三q后打交道的很多同事。没有他们,我今q真的过不了养I没有他们Q我也不能进入淘宝ƈ呆上快三q?br /><br />   最后的最后,我要特别感谢我的儿子Q谢谢你的降生,谢谢你今q的勇敢Q谢谢你l我们全家带来的快乐Q谢谢你l箋陪着我们 Q也希望你新ql勇敢地坚持下去Q我们必战胜一切?nbsp;     <br />   <img src ="http://www.aygfsteel.com/killme2008/aggbug/368548.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/killme2008/" target="_blank">dennis</a> 2012-01-15 12:50 <a href="http://www.aygfsteel.com/killme2008/archive/2012/01/15/368548.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的一些“偏见?/title><link>http://www.aygfsteel.com/killme2008/archive/2011/11/30/365238.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Wed, 30 Nov 2011 14:50:00 GMT</pubDate><guid>http://www.aygfsteel.com/killme2008/archive/2011/11/30/365238.html</guid><wfw:comment>http://www.aygfsteel.com/killme2008/comments/365238.html</wfw:comment><comments>http://www.aygfsteel.com/killme2008/archive/2011/11/30/365238.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://www.aygfsteel.com/killme2008/comments/commentRss/365238.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/killme2008/services/trackbacks/365238.html</trackback:ping><description><![CDATA[<br />    在豆瓣发了一些牢骚,索性多说一些我个h对h对事的偏见,既然是偏见,׃会让服,事先声明是扯淡,不想费旉的h略过?br /><br />1.我们要远L微博,新浪微博跟twitter不一Ptwitter是ؓ了让每个人的信息的更好更快地传播而设计的Q而新微博是Z让权威的声音更好更快C播而设计的。迷恋上新浪微博Q你要么是权威,要么是跟随权威。成为权威的Q免不了沾沾自喜Q真以ؓ自己成了“权威”。更可怕的是你不可避免地要生活在相互吹捧和喧嚣中?br /><br />2.在编写代码之外,我们可能需要更多的手艺傍nQ例如木匠或者厨师,以免在ؕ世的时候因Z需要程序员而饿歅Rps.计算弚w轨迹的程序员除外?br /><br />3.据说真正的牛Z不蟩槽,作ؓ大多C是牛人,以及已经q离牛h行列的我们(x过3ơ以上)Q蟩槽仍然是你提升自q有效途径Q无论是薪水q是技术?br /><br />4.写简历的技巧,我慢慢领悟到了,点技术术语,多点成效和应用,打动了HRq了W一关之后,再去跟技术h员扯淡?br /><br />5.历要定时更新Q你可以理解成定时提醒下猎头和HRQ关注我啊,x我啊?br /><br />6.强烈地拥抱文本化Q配|文本化Q没Z脑残地用二进制当配置文g吧?Q,协议文本化,婚姻文本化?br /><br />7.一切不以加薪ؓ目的的挽留,都是耍流氓,q不是我的原创?br /><br />8.有趣比实用重要,没趣味的东西Q给׃不去做(好吧Q我说假话)?br /><br />9.Ҏ潮的东西保持一点警惕,如果q个东西三个月后q有人在谈论Q那可以x?br /><br />10.代码永远比文档、博客真实和靠谱Q阅M码习惯了Q跟阅读文档没啥区别?br /><br />11.关注博客和新闻Q戒掉看google reader的习惯。现在更多地看maillist上的讨论和问题,真正重要的东西你永远不会错过?br /><br />12.不追求完,{你完美的时候别人已l是事实标准?br /><br />13.大型的技术聚会不是ؓ技术h员准备的Q这是大公司l员工的度假利和领g的吹水时间。只有在型的技术聚会上才能看到一些有价值的东西QQ何稍微跟商业沾一点边的几乎都没有太大价|我说的是国内?br /><br />14.80%的分享都只对演讲者有益,该sb的还是sbQ该牛b的还是牛b。最有效的分享是l对~程和结对review。分享和培训最大的意义是让行政们觉的自q存在价值很大?br /><br />15.国内译国外l典>国内原创_֓>国外原版Q这个原则对p好的人除外?br /><br />16.极其讨厌要求强制~进的语aQ比如python?br /><br />17.标榜是一Uh生态度Q装B装久了你q牛B了?br /><br />18.凭啥不造轮子,你们造轮子舒坦了Q爽快了Q就不让别h造了。我造轮子我快乐?br /><br />19.偏见不全是坏事,坏的是不愿意改变偏见?br /><br /><br />    扯E旉l束?img src ="http://www.aygfsteel.com/killme2008/aggbug/365238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/killme2008/" target="_blank">dennis</a> 2011-11-30 22:50 <a href="http://www.aygfsteel.com/killme2008/archive/2011/11/30/365238.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我写的这些opensource目http://www.aygfsteel.com/killme2008/archive/2011/10/09/360311.htmldennisdennisSun, 09 Oct 2011 12:23:00 GMThttp://www.aygfsteel.com/killme2008/archive/2011/10/09/360311.htmlhttp://www.aygfsteel.com/killme2008/comments/360311.htmlhttp://www.aygfsteel.com/killme2008/archive/2011/10/09/360311.html#Feedback15http://www.aygfsteel.com/killme2008/comments/commentRss/360311.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/360311.html    自己在googlecode和github上的所有项目过了一遍,整理一张列表,列下一些还有点价值和用处的项目,都不是什么great jobQ纯_ҎZ工作需要或者乐写的东西,看官要是有兴也可以瞧瞧?br />
 一 Java相关

1.XmemcachedQ还是比较多h使用的一个java memcached clientQ优Ҏ效率和易用性,~点是代码写的不怎么P两年前发展到现在的东西,以后q会l箋l护?br />
2.HS4JQ看handlersocket的时候顺手写的客LQ我们公司内部某些项目在用,可能q有其他公司外的朋友在用Q后来同事聚矌A献了一个扩展项?a >hs4j-kitQ更易于使用Q他写的代码很优雅漂亮,推荐一看。暂时没有精力维护?br />
3.AviatorQ一个很初的表辑ּ执行引擎Q行家看到肯定要W话我。不q语法上很符合我自己的口呻I我们自己的项目在用,也有几个朋友在用Q会l箋l护?br />
4.JeventQ一个玩P其实是模仿libevent的一个java实现Q对nio或者libevent的实现机制感兴趣的还可以看看?br />
5. KilimQ我fork的kilim实现Q修改了nio调度器,使用多个reactor做调度效率更高,q添加了一个HttpClient的实现?br />
?Android目

学习android完全是玩性质Q有3个项目,对初学android开发的可能有点参考h倹{?br />
1.WhetherWeatherQ一个天气预报和告警的widget插gQUI太丑了?br />2.UniqRecorderQ写来记录儿子体重变化的工P可以自定义项目和生成曲线图,我自p在用?br />3.UniqTaskQ最q写的杀q程工具Q绝对轻量Q没q告Q也是我自己在用?br />
?Clojure目

1.cschemeQ一个用clojure实现的scheme解释器,Zsicpq本书的解释器实现?br />2.clojure-controlQ类?a >node-control的分布式部v和管理的DSL实现Q挺好玩的,也有朋友在用Q我自己q用不上,sunny有写了个很方便的lein插gnode-control?br />
clojureq写了一堆烂N目,׃拿出来恶心h了?br />
?其他

1.node-zk-browserQ一个展现和理zookeeper的web应用Q我们自己在用,Znode.js实现?br />2.erlwshQ一个erlang的web shell实现Q可以在览器里做erlang~程Q被一些开源项目比如membase用到了?br />
    写这些东西对我自己最有好处,如果能顺便给他h带来好处Q那是额外的好处。最q正处于我自׃生中也许是最大的转折兛_Q不能更新blog了,最后,求诸天佛能带来奇qV?img src ="http://www.aygfsteel.com/killme2008/aggbug/360311.html" width = "1" height = "1" />

dennis 2011-10-09 20:23 发表评论
]]>
记首ơcn-clojureU下聚会http://www.aygfsteel.com/killme2008/archive/2011/08/09/356106.htmldennisdennisTue, 09 Aug 2011 06:09:00 GMThttp://www.aygfsteel.com/killme2008/archive/2011/08/09/356106.htmlhttp://www.aygfsteel.com/killme2008/comments/356106.htmlhttp://www.aygfsteel.com/killme2008/archive/2011/08/09/356106.html#Feedback3http://www.aygfsteel.com/killme2008/comments/commentRss/356106.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/356106.html
    q个聚会是由江宏首先提议的,我参与协助。目的是让长三角地区?a >clojure语言感兴,或者正在用的朋友当面认识和交一下。会议的l织q程一波三折,首先是会议地Ҏ来定在了上vgoogle办公室,但是后来google那边又说不让q去Q我再联pM原来淘宝|的同事火狐Q经q他的努力和帮助Q最l将地点定在了上v大众点评。要感谢大众点评|和火狐的帮助,不然q次zd估计黄了。会议的日期选定也比较偶Ӟ跟七夕撞在了一天,q且8?可天说台风“梅花”要在江浙一带登陆,上v要刮多少U多的大风,加上我和杭州的几个朋友过去要坐高铁,那心里就七上八下了,搞不好就要被“掩埋”了。我们还开玩笑说最好买火R中段车厢的票为妙?br />
    8?日一早,和同在淘宝的杨冬Q加上两位做ROR的朋友一起出发,天气没有惌的糟p,高铁一个小时就CQ{地铁到大众点评网大概也才中午12点左叟뀂打了电话给火狐Q一起吃了饭然后q奔大众点评网。大众点评网的前台大厅装修也是非常熟悉的色Q很意外?有很多hQ后来才知道是在搞招聘会和培训。这时候,江宏他们也从昆山赶到了,火狐帮我们定的会议室很大Q够容U?0号h左右。陆l有刎ͼ到约定的1点的时候,我记的是来了大概11q是12个hQ还有几个朋友在路上Q因此我们决定推q到1点半再开始。最l来的h估计?5个以上,估计报名的都来了?br />
    1点半正式开始,首先是我来讲《clojure概览》这个topicQ主要是一个clojure语言的介l。这个是我上周开始准备的Q在d《clojure的魅力》的基础上做了删减和增加Q听取江宏的意见增加了示例和引子。上周也在我们的团队讲过一ơ。轻车熟路,也ؓ了给后面的topic留出旉Q我讲的比较快,大概40分钟q束了?br />
    接下来是孙宁Qsunng87)讌Ӏclojure开发的生命周期理》,我对clojure的周边工具ƈ不熟悉,机更好C解了很多 clojure开发过E中用到的工具和资料Q推荐对clojure开发感兴趣的朋友看下。尝试了?a >cloojQ比我预期的要好Q遗憄是还没有语法高亮Q推荐初学clojure的朋友可以尝试下q个轻量U的IDE。目前最好的clojure IDEq是idea里的La Clojure插g。最后孙宁顺便广告了?a >lein-control插gQ这是孙宁构建的一?a >clojure-control的lein插gQ他qA献了一个类似python?a >fabric的clojure DSL实现Q让clojure-control更易用?br />
    接下来是江宏介绍他们开?a >trakrapp.comq个Uclojure实现的网站中使用的技术,以及遇到的问题和l验。这个网站基?a >compojureq个框架实现的,前端采用backbone.jsQ后端是MongoDB和postgresqlQ可以说都是非常“新潮”的技术。他在谈遇到问题的时候,提到clojure的stack trace又长又丑Q这一Ҏ有体会,clojure的异常堆栈包含了java和clojure的,整个调用铄对较长,非常不利于问题的排查Q不知道后箋clojure会不会对q一点做出改q?br />
    接下来是林晴介绍他们一个用scala实现的类似domino的企业OApȝQ不q他q个例子l我的感觉更多是发挥了mongodb的schema free的特点,没有体现Z用scala的好处来。我对scala的观点一直很明确Qscala惛_JVM上的c++Q从个h角度不喜Ƣ这U多范式的语aQƈ且语法不W合我的胃口Q特别是cdpȝq块特别复杂Q我怕我在写scala的时候还要参考一本厚厚的referenceQ这不是我想要的。而clojure的核心就非常,相对W合我的期望?br />
    作ؓ东道ȝ火狐介绍?a >大众点评|?/a>的新架构以及他们?net往javaq移的经验,他们的新架构也是做服务化和中心化Q对?net和javaq_来说Q迁UL多是从h力成本和一些其他因素决定的Q当Ӟq移最重要的还是要有公叔R层的全力支持Q特别重要的一Ҏ如何让老员工也参与q个q程。因员工对现有pȝ和业务最熟悉Q将他们排除在外闭门造R是注定要p|的?br />
    最后是同样来自昆山文石的吴哲介l如何在半天内实C个HTML 5的游戏,他介l的processing.js非常有趣Qprocessing本n是一门编E语aQ有人将它移植到了js上,可以直接在支持html5上浏览器展现Q效果相当cool。y合的是我在回d的第二天M店的时候,竟然在某个角落看到?a >processing互动~程艺术》这本书Q买了下来准备了解下。做数据囑Ş化的同学可以x下?br />
    M来讲Q这ơ聚会的效果过我的预期Q在强台风的阴׃和七夕爱情的感召下还有这么多q来Q作为组l者之一非常感动。ƈ且topic讲也让我学习了一些东西,最重要的是当面认识了一些网上交过的朋友,l我印象深刻的是看v来非常老成的孙宁,完全不像?5后。还有个印象深刻的细节是现场?Q?台mbpQ这里面q是因ؓ有同学是在搞ROR的因素?br />
    最后,l下slide的链接如下:

1Q我的?a >clojure概览》,源码?a >github上?br />2Q孙宁的?a >Clojure开发的生命周期理》,lein-control?a >clojure-control?br />3Q江宏的?a >Clojure web development》,他们开发的|站
4Q吴哲的?a >How to build a html5 game in half a day?br />5Q火狐的?a >大众点评|新架构?br />6Q?a >cn-clojure主页
 

dennis 2011-08-09 14:09 发表评论
]]>
~程语言的选择很重?/title><link>http://www.aygfsteel.com/killme2008/archive/2011/08/06/355926.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Sat, 06 Aug 2011 15:51:00 GMT</pubDate><guid>http://www.aygfsteel.com/killme2008/archive/2011/08/06/355926.html</guid><wfw:comment>http://www.aygfsteel.com/killme2008/comments/355926.html</wfw:comment><comments>http://www.aygfsteel.com/killme2008/archive/2011/08/06/355926.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.aygfsteel.com/killme2008/comments/commentRss/355926.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/killme2008/services/trackbacks/355926.html</trackback:ping><description><![CDATA[    最q看了篇在google reader里分享非常多的文章,我表C很无语Q文章在<a >q里</a>Q题目是?a >Peter NorvigQ编E语a的选择q不重要</a>》。简单来讲这文章是鼓吹python的,然后举了很多例子说python描述法比LispҎ。这个无需多说Q图灉|型本来就比lambda演算更适合描述法?br /><br />    我想说的是,文中明明提了QPeter norvig说的是:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">更一般意义上的编E而言Q在Google和其他地方,我认a的选择q不如其他方面的选择那么重要Q如果你有了正确的M架构、正的E序员团队、正的开发过E(能够快速开发、持l改善)Q那么很多语a都能胜QQ但如果以上的东西你没有Q那无论选择什么语aQ你都会陷入一团糟?/span></div><br />   q句话的意思很明显Q在google或者其他什么地方,~程语言的选择Q比之正的架构Q正的团队以及正确的开发过E,ҎlQ务的完成影响不是那么大。但q所?~程语言的选择不重?#8220;Q这U断章取义的题目除了吸引眼球外,没有M益处?br />    很多~程语言都可以胜M要完成的~程dQ你完全可以用CdCGIQ用汇编d消息中间Ӟ只要你有正确的架构,正确的团队和开发过E,你应该总能完成d。但是选择适当的编E语a可以让你事半功倍,更少的代码,更高的开发效率。从ROR以及动态语a的流行来看,选择~程语言Q真的很重要?br /><br />    除非你的规模辑ֈgoogle的程度,性能意味着元Q一U的优化意味着成千甚至上亿的dollar的时候,也许你可以说下编E语a的选择不重要?br /><br />    最后,我还想鄙视下分nq篇文章的大爷们Q你们真的看了文章吗Q还只是冲着q标题,急急忙忙地献宝式地分n了?׃淡定点行不?<img src ="http://www.aygfsteel.com/killme2008/aggbug/355926.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/killme2008/" target="_blank">dennis</a> 2011-08-06 23:51 <a href="http://www.aygfsteel.com/killme2008/archive/2011/08/06/355926.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>长三角地区的技术交活?/title><link>http://www.aygfsteel.com/killme2008/archive/2011/07/27/355154.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Wed, 27 Jul 2011 08:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/killme2008/archive/2011/07/27/355154.html</guid><wfw:comment>http://www.aygfsteel.com/killme2008/comments/355154.html</wfw:comment><comments>http://www.aygfsteel.com/killme2008/archive/2011/07/27/355154.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/killme2008/comments/commentRss/355154.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/killme2008/services/trackbacks/355154.html</trackback:ping><description><![CDATA[转自 <a >http://hjiang.net/archives/484</a><br /><br />Clojure-CN要组l周期性的U下技术交活动了。如果你热爱E序设计的相x术,q且住在长三角一带,Ƣ迎来参与活动。只要填一下这个调查表可以:<br /><a href=" http://www.diaochapai.com/survey548296"> http://www.diaochapai.com/survey548296</a><br /><br />更多Q?br />    x我的blog的朋友应该都知道我这一q都一直在x<a >clojure</a>q门语言Q后来还搞了?a >cn-clojure的google group</a>?a >hjiang</a>的公司在使用clojure做商业项目,他们公司可能是国内唯一在用clojure的商业团体,他上周跟我提h搞这么个zdQ促q对clojure学习和用的交流Qƈ且不局限在clojure语言本n。今q其实给自己一个目标也是去试推动一些事情,我对clojureUa是技术上的兴,未来也不排除L一份专职写clojure的工作,如果你或者他Q她Q对clojure语言(或者函数式语言Q感兴趣Q欢q来参加q次聚会Q填写下q个调查表:<a > http://www.diaochapai.com/survey548296</a>?br /><br />    我们在调查完成后l计下大家的兴趣点和地理分布Q最后决定在哪里丑֊Q以及确定talk列表和聚会Ş式等?br /><br />    我还甌了一个域?<a >http://cnlojure.org</a>Q在github上徏了个pageQ这件事的进展会攑ֈq个|页上?br /><br /><img src ="http://www.aygfsteel.com/killme2008/aggbug/355154.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/killme2008/" target="_blank">dennis</a> 2011-07-27 16:19 <a href="http://www.aygfsteel.com/killme2008/archive/2011/07/27/355154.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>做基产品的体?/title><link>http://www.aygfsteel.com/killme2008/archive/2011/05/22/350752.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Sun, 22 May 2011 02:30:00 GMT</pubDate><guid>http://www.aygfsteel.com/killme2008/archive/2011/05/22/350752.html</guid><wfw:comment>http://www.aygfsteel.com/killme2008/comments/350752.html</wfw:comment><comments>http://www.aygfsteel.com/killme2008/archive/2011/05/22/350752.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.aygfsteel.com/killme2008/comments/commentRss/350752.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/killme2008/services/trackbacks/350752.html</trackback:ping><description><![CDATA[<br />      一个公司大了,L部分d一些通用的东西给大家用,我这里说的基产品是q类通用性质的东西,不一定高U技Q但是一定很多h依赖你的东西来完成各U各L功能。做q样的东西,有些体会可以说下?br /><br />    首先Q能集中存储的,׃要分布存储,数据集中存储有单点的危险Q但是比之分布式存储带来的复杂度不可同日而语。况且集中式的存储也可以利用各种机制做备份,所谓单炚w险远没有惌中那么大?br /><br />   其次Q能利用开源框架的Q就不要重复造轮子。程序员都喜Ƣ造轮子,但是造轮子的周期长,q且不一定造的更好。在开发效率的互联|时代,如果能直接利用现有框架组装出你想要的东西Q迅速占领市场,比你造的高性能、高可用、高U技的轮子更实用。这个跟做新产品开发有点类|q速组装,高效开发,然后再想办法改进?br /><br />   W三Q要文本Q不要二q制。协议要文本化,配置要文本化。不要担心性能Q在可见的时间里Q你基本不会因ؓ文本化的问题遇到性能瓉?br /><br />   W四Q要透明Q不要黑盒。基产品其需要对用户透明Q你的用户不是小白用P他们也是E序员,而程序员天生寚w盒性质的东西充满厌Ӟ他们L知道你的东西背后在做什么,q对于查N题分析问题也很重要。怎么做到透明呢?设计Q统计,监控Q日志等{?br /><br />   W五Q要拥抱标准Q不要另搞一套。已l有了久l考验的HTTP协议Q你׃要再搞个STTPQ有了AMQP协议Q你׃要再搞个BMQP。被q泛认可的标准是一些业界的尖专家制定出来的,他们早就你没有考虑到的问题都考虑q去了。你自己搞的那一套,随着旉推移你会发现跟业界标准越来越像,因ؓ面对的问题是一L。用标准的额外好处是,你有一大堆可用的代码或者类库可以直接用,特别是在面对跨语a的时候?br /><br />    W六Q能Share nothingQ就不要搞状态复制。无状态的东西是最可爱的,天然的无副作用。水qx展不要太Ҏ?br /><br />    W七Q要你的系l做的越?#8220;重要”好Q如果太多的产品依赖你的pȝQ那么当你的pȝ故障的时候,整个应用完蛋了。我们不要担q个责QQ我们要系l做的越来越“不重?#8221;Q别Z一没了你也能重启,也能一定时间内支撑正常的工作?br /><br />    W八Q要专注眼前Q适当x未来。有q见是好事,但是太多q见容易好高骛q。ؓ很小可能性设计的东西Q没有机会经历实际检验,当故障真的发生的时候,你也不可能完全信赖它。更好的办法是将pȝ设计得可介入Q可在紧急情况下人工M入处理,可介入是不够的,q要Ҏ介入?br /><br />    W九Q不要对用户有假设,假设你的用户都是smart programmerQ假设你的用户不需要位q算Q假设你的用戯同步不要异步。除非你对这个领域非常熟悉ƈ实际使用q类似的东西Q否则还是不要假设?br /><br />    W十Q咳咻Ig没有W十了,一大早憋了q么无头无脑的BlogQ大伙将q看?br /><br /><br /><br /><br /><br /><img src ="http://www.aygfsteel.com/killme2008/aggbug/350752.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/killme2008/" target="_blank">dennis</a> 2011-05-22 10:30 <a href="http://www.aygfsteel.com/killme2008/archive/2011/05/22/350752.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CN-Clojure组建立http://www.aygfsteel.com/killme2008/archive/2011/01/28/343727.htmldennisdennisFri, 28 Jan 2011 11:39:00 GMThttp://www.aygfsteel.com/killme2008/archive/2011/01/28/343727.htmlhttp://www.aygfsteel.com/killme2008/comments/343727.htmlhttp://www.aygfsteel.com/killme2008/archive/2011/01/28/343727.html#Feedback5http://www.aygfsteel.com/killme2008/comments/commentRss/343727.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/343727.html     在国内,Clojure语言的用户估计是众中的众Q没有多h听说Q也没有多少Z用,资料也大多数是英文的Q讨Z只能上国外论坛。因此,我想建立一个CN-Clojure的google groupQ供大家交流和学习clojure语言。群l地址Q需要翻墙)Q?a >http://groups.google.com/group/cn-clojure

   现在没hQ就我一?img src="/CuteSoft_Client/CuteEditor/images/emteeth.gif" alt="" align="absmiddle" border="0" />。我也会在群l里放些学习资料Q欢qQ何对clojure感兴的朋友加入?br />


dennis 2011-01-28 19:39 发表评论
]]>
2010q的小ȝhttp://www.aygfsteel.com/killme2008/archive/2011/01/01/342110.htmldennisdennisSat, 01 Jan 2011 01:08:00 GMThttp://www.aygfsteel.com/killme2008/archive/2011/01/01/342110.htmlhttp://www.aygfsteel.com/killme2008/comments/342110.htmlhttp://www.aygfsteel.com/killme2008/archive/2011/01/01/342110.html#Feedback3http://www.aygfsteel.com/killme2008/comments/commentRss/342110.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/342110.html     首先Q还是利用下q个工?/a>Q查看下?0q读q的书,看过的电?br />



    MQ读的太,也可以看刎ͼ技术方面的更少Q如果要说推荐,我只会推荐《Programming Clojure》作为学习clojure的入门,q且推荐《构建高性能web站点》作Z解一个网站构建的Ҏ面面的入门书?br />
    电媄Q今q进电媄院的ơ数也寥寥无几,主要q是重看了莱昂纳多的作品Q《盜梦空间》很惊艳Q《钢铁侠2》很失望?br />
     d的愿望:d《算法导论》—?/3Ql深入ErlangQ探索Erlang在工作中的实际应用——几乎没有,加强对其他系l的了解以及大型|站构徏斚w的学习——小一些了解,希望能全家一起去旅游一ơ,希望能将老爸老妈接过来玩一D|间——没有做到?br />   
     工作Q状态ƈ不好Q还是尝试努力去做了一些事情,包括参与一些分享,更多参与他h的代码复查和设计审查{。抱怨、牢骚少了一些,相对淡定了?br />
     2011q_q是不谈大的愿望Q从以往的经验来_很难靠谱。也许有一个相Ҏ晰的目标Q提高自制力和计划性?br />



dennis 2011-01-01 09:08 发表评论
]]>
我的W一个androidl习http://www.aygfsteel.com/killme2008/archive/2010/12/11/340361.htmldennisdennisSat, 11 Dec 2010 11:35:00 GMThttp://www.aygfsteel.com/killme2008/archive/2010/12/11/340361.htmlhttp://www.aygfsteel.com/killme2008/comments/340361.htmlhttp://www.aygfsteel.com/killme2008/archive/2010/12/11/340361.html#Feedback2http://www.aygfsteel.com/killme2008/comments/commentRss/340361.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/340361.html。入手了一台moto xt701Q下单后悔来x里程,但是京东打包太快Q客服不让换Q这个很奇怪,我想用更多钱C西反而被拒绝Q看来京东处理太快也不一定是优点?br />
    C几本android相关的书Q下军_好好学习一下,在读完一本加半本的情况下军_开始做个练习程序,最后的l果是Z天气q个Y件。ؓ乐天气不仅仅是个烂大街的天气预报软gQ它从google weather api抓取天气状况信息q显C在桌面widgetQ还提供了两个我个h很需要但q没有在其他天气软g上看到的功能Q恶劣天气告警和气温变化告警——当有雨雪天气或者气温变化超q一定幅度的时候主动通知我,q对我这个常怸知道带伞q且安有小孩的人比较有用。来几张q行在xt701上的截图Q?br />





  

    写程序d׃3天,E序虽小Q但基本上覆盖了android提供的一些基本机ӞActivity昄lg、service负责信息抓取、桌面widget、通过intent在组件之间交互、handler处理界面更新、国际化和资源管理、利用preferences保存配置以及使用Application保存全局数据{等。Android开发给我的感觉是,入门q是相当Ҏ的,如果熟悉Java甚至J2MEQ那么学习android的入门成本还是很低的Q因此从长期来看Q做q一行的一般应用门槛不高,也会像现在的Java市场一样吸引大量开发者。如果说对独立开发者特别有价值的方向Q应该还是游戏方向,做游戏不仅仅是技术,更多q是创意和推q,另外惛_android做出效果非常的游戏,q需要去学习OpenGL和数学算法之c,需要熟悉c/c++Q本质上跟传l的游戏开发没有太大区别,q个门槛q寚w一些?br />
   我将q个程序发C国内的几个marketQ从下蝲情况来看Q尽都非常,但是91助手的应用汇q是最多,其次是安卓市场,再后面是q软g商店Q从后台体验上来_最好的q是eoeAndroidC֌的优智市场,不过人气貌似不旺?br />     从我接触Ud开发的q一周来看,我很兴奋Q原来现在这个行业已l这么火热,有太多新鲜的东西我没有尝试过Q有太多很有创意的小应用游戏存在,有大量的开发者早在从事q个Ȁ动h心的领域Q我太out了,希望现在xq来得及?br />

dennis 2010-12-11 19:35 发表评论
]]>
我的Java学习推荐书目http://www.aygfsteel.com/killme2008/archive/2010/11/11/337788.htmldennisdennisThu, 11 Nov 2010 03:13:00 GMThttp://www.aygfsteel.com/killme2008/archive/2010/11/11/337788.htmlhttp://www.aygfsteel.com/killme2008/comments/337788.htmlhttp://www.aygfsteel.com/killme2008/archive/2010/11/11/337788.html#Feedback9http://www.aygfsteel.com/killme2008/comments/commentRss/337788.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/337788.html     一直有q么个想法,列一下我个h认ؓ在学习和使用Javaq程中可以推荐一ȝ书籍Q给初学者或者想深入的朋友一些徏议,帮助成长。推荐的的都是我自己读过Q也会推荐一些朋友读qƈ且口不错的书籍?br />
一、基c?br /> 1、《Thinking in java》,入门W一位是建立正确的概c?br /> 2、《Core Java》,我没pȝ读过Q这本书更脓q实践,更多API的介l,同样Q更C更频J?br />
二、进阶类
1、《Effective Java》,在熟悉语法、API之后Q你需要知道最佛_践和陷阱Q没有比q本更好的?br /> 2、?span class="pl2">Java Puzzlers》,通过谜题介绍一些你可能没有注意到的边角料,作ؓ味ȝ也不?br /> 3、《深入Java虚拟机》,译一般,但不可不读,最好结合最新的JVM规范来读?br />
三、特定领?br /> 1、网l编E:
Q?Q?/span> O'Reilly的《Java nio》,很多人都推荐Q我个h觉的一般,基本上只是个API更详l的说明文档,O'reilly的javapd很多都是q样?br /> Q?Q我更推荐这本《Fundamental networking in java》,由浅入深教你怎么做java|络~程Qƈ且介l很多背景知识,甚至介绍了各U最佛_c网l编E模型以及Java socket在不同^C间的差异{等?br />
2、ƈ发编E:
Q?Q?span class="pl2">Java Concurrency in Practic》,q发领域必读l典?br /> Q?Q《Javaq发~程Q设计原则与模式》,同样是Doug lea的作品?br /> Q?) 《java threads》,入门ȝ?br />
3、web~程Q这块我怹未接触了Q就不推荐了Q有兴趣的朋友可以补充下?br />
四、模式与设计

1、《设计模式》,GOF的经典?br /> 2、《设计模式精解》,应该有最新版Q个为更适合入门?br /> 3、《Head first设计模式》,更轻杄入门ȝ?br /> 4、《企业应用架构模式?br /> 5、《分析模式——可复用对象模型?br /> 6、《面向模式的软g体系l构》,国内貌似译?Pl对l典Q可惜翻译较差?br /> 7、《重构——改善既有代码设计?惛_好代码必诅R?br /> 8、《重构与模式》,l我印象很深?xml构徏的例子,在我的代码里应用C?br />
五、方法论
1、《敏捯Y件开发?br /> 2、《测试驱动开发》,你不一定要TDDQ但是你一定要学会做单元测试?br /> 3、《Agile Java》,也可以作为java入门ȝ?br /> 4、《快速Y件开发?br /> 5、《面向对象分析与设计》,OO设计必读?br /> 6、《Unix~程艺术》,打开你的眼界?br />
六、Java之外
0、《代码大全》,~程的百U全书,必读?br /> 1、《unix|络~程》,学习|络~程必读书?br /> 2、《C++|络~程》上下两P介绍ACE的,但是其中对各U模式运用的介绍非常值的一诅R?br /> 3、《Joel说Y件》,~程文化
4、《h月神话》、《h件?br /> 5、《卓有成效的E序员》,l我很大启发的一本书?br /> 6、《程序员修炼之道?br /> 7、《计机E序的构造与解释》,必读
8、《算法导论》,可以作ؓ参考书
9、《深入理解计机pȝ?br /> 10、《编译原理》龙书,最新版用java解释Q我没有dQ顺便提下?br />





dennis 2010-11-11 11:13 发表评论
]]>
L文有?/title><link>http://www.aygfsteel.com/killme2008/archive/2010/11/02/336789.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Tue, 02 Nov 2010 05:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/killme2008/archive/2010/11/02/336789.html</guid><wfw:comment>http://www.aygfsteel.com/killme2008/comments/336789.html</wfw:comment><comments>http://www.aygfsteel.com/killme2008/archive/2010/11/02/336789.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.aygfsteel.com/killme2008/comments/commentRss/336789.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/killme2008/services/trackbacks/336789.html</trackback:ping><description><![CDATA[    q某文就?a >q篇文章</a>啦,׃不废话,不遮掩。几Ҏ惻I<br /> <br /> 1、首先,q篇文章很多?#8220;我听?#8221;?#8220;据说“、我?#8230;…聊脱Q他们都表示很郁?#8220;?#8220;我就听说q一?#8230;…”诸如此类的道听途说Q我觉的q不?#8220;工程?#8221;该说的话Q请不要用可能,好像Q听说这L字眼Q请l我数据Q给我地点,l我E序?br /> <br /> 2、其ơ,文中作者提到的yahoo的优U点,在淘宝我都发C传承Q我估计是学习yahoo中国的,比如发布程、比如知识库、比如很有特色的技术大学培训、比如鼓励创动化工具{等Q我不知道作者有没有在阿里集团的子公司待q,或者来淘宝待过Q如果来q呆q,我想不会没看见?br /> <br /> 3、第三,Google是商业公司,癑ֺ是商业公司,阉K更是商业公司Q没有销售h员的付出Q工E师的劳动成果何以体玎ͼ你的薪水从哪里来Q工E师文化或者销售文化,q不重要的,重要的是你能否认同,能否感受到尊重,不能可以用脚投票?br /> <br /> 4、个人感觉,阉K是非常富有理想主义的公司Q点滴改变着我们的生z,不知不觉Q淘宝、支付宝已经改变了很多h的生zR在我看来,q些都是很伟大的创造,伟大?#8220;技?#8221;Q创造的C会效益显而易见?br /> <br /> 5、脱d业的技术不存在Q计炮弹轨q的需求诞生了计算机,国国防部催生了互联|,|络购物的需要诞生了淘宝Q在不健全的信用C会|络交易的需要诞生了支付宝?br /> <br /> 6、关于个人崇拜,你是成年人,你有自己的hDQ你有自q世界观,如果你那么容易被人忽悠,那也是活该?br /> <br /> 7、如果哪天公司免费发淘公仔,我也L啊,哦,抢过一回口卡?br /> <br /> 8、以偏概全,会掩盖了很多人的努力工作?br />  <br /> <br /> <br /> <br /><img src ="http://www.aygfsteel.com/killme2008/aggbug/336789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/killme2008/" target="_blank">dennis</a> 2010-11-02 13:25 <a href="http://www.aygfsteel.com/killme2008/archive/2010/11/02/336789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>bambook使用感受http://www.aygfsteel.com/killme2008/archive/2010/08/15/328882.htmldennisdennisSun, 15 Aug 2010 04:56:00 GMThttp://www.aygfsteel.com/killme2008/archive/2010/08/15/328882.htmlhttp://www.aygfsteel.com/killme2008/comments/328882.htmlhttp://www.aygfsteel.com/killme2008/archive/2010/08/15/328882.html#Feedback3http://www.aygfsteel.com/killme2008/comments/commentRss/328882.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/328882.html     接下来是漫长的等待,本以Z到杭州最多两天,没想到查看订单状态一直停留在配货状态,q让习惯了京东神速的我很着急,不过看v来盛大文学还是一直在改进q个订单pȝQ后来将宅急送的订单查询也融合到订单里面Q用户可以查看自q东西当前在哪里?天后l于收到货,中间发生了一个小插曲Q我发现订单状态变成了完成Q显C我已经{收Q而我实际上没有收到快递公司的电话Q更何况{收Q打电话l客服,客服叫我别着急,他们先查查。后来才知道公司是统一代收快递,邮局代收了,l我发了邮g才知道。盛大的客服q是很负责Q的,后来打电话向我确认情冉|知道是虚惊一场,实在不好意思。物这块,我觉的盛大这ơ内做的ƈ不好Q看看bambook官方论坛那么多抱怨就知道Q发货太慢,q且客服的反馈都是复制粘帖,一律说什么品销售火爆,发货快不h的鬼话。这是内呀Q才发多台Q只能说前期准备不是特别充分?br />
    先看照片Q我儿子很喜Ƣbambook







     外观我觉的还是很漂亮Q我没有用过其他的电子书产品Qbambookl我的感觉还不错Q屏q是6寸的电子墨水屏,q有一些快捷键方便页、查看书架等Q还有一个摇杆作为确认键Q也可以页以及调整选项{。背面是奥运火炬的祥云图案,q些|上已经有很多评照片了Q我׃多说了。从g上,bambookq是很让我满意的。不q没有提供阅ȝ人遗憾,不知道会不会作ؓ配g提供Qthinkpad的键盘灯是非常棒的设计,如果能有阅读灯,那就可以不打扰家书了?br />
    q是我第一ơ接触电子墨水屏Q曹老大跟我说会有残q问题Q入手后发现果然有这个现象,但是不细看还是很隄出来Q对阅读没有M影响。相反,q种屏幕对读书还是极好,在阳光下也可以正帔R读,q且只有在有变化的时候费电,非常省电Q我拿到手连l看了两天小_甉|昄q至一格电。通过云梯——bambook提供的客L软gQ可以修改字体,修改成微软雅黑,l于不用捧着个笔记本在床上看书?br />
    bambook臛_提供?U上|方式:USBq接PC代理上网、WIFI以及3G|络。目?G卡还不行QUSB我没试。公司和安都是无线|络Q在公司可以正常q接Q但是在安却不行。后来发现这是因为bambook无法输入SIDQ而我家的SIDq播是禁止掉的,Z让bambook能联|,只好修改路由器配|了。这一点不是很好,对家庭用h_通常q是会禁止SIDq播。bambook上网只能q接盛大的云中书城,包括L、榕树下{盛大文学下面的|站。这些网站大多数是一些网l文学作品,我尝试搜索一些文史类的读物都没有扑ֈ。网l小说我q是会读Q比如最q又重新看《庆余年》(bamboook里这本书是免费的Q,但是买bambook可不仅仅是ؓ了读|络说。还是希望云中书城能多一些其他方面的书籍Q不q内容徏设是个长期的q程Q倒是不着急,毕竟q在内测阶段?br />
   bambook允许传入自有书籍Q但是需要{换成它的内部试Q利用云梯这个客L软g。云梯目前只支持windowsQ我的机器是ubuntuQ不q尝试了下在virtualbox虚拟Z的XP里也可以正常使用。我试转换了txt和pdf文gQ都可以正常转换Q比较离奇的是txt转换后的文gq更大。PDFq是重点Q我q是惛_bambook上阅M些技术文档,q些文档大多数是PDF格式。遗憄是bambook对PDF转换的支持ƈ不完善,章节索引没了不说Q{换后的格式在6寸屏q上的排版很p糕Q诸如图表、代码之cȝ跟原文档比v来很不适合阅读。事实上Q我是很不理解ؓ什么要自定义格式,如果说是Z保护商业版权Q但是你又允怸传自׃c,自由书籍q需要经q这么一个{换步骤,q不如原生支持一些常见格式。bambook的os是基于anroid开发的Q我怿原生支持PDFq样的常见格式肯定不是特别大的问题。pdf文档q个问题在官|上也有很多讨论Q从客服的反馈来看是有计划改q,拭目以待吧?br />
   接下来说说我认ؓbambook软g上可以改q的一些小地方Q首先是刚才提到的网l连接问题,允许用户输入隐藏的SID。网l在不用一D|间后会自动断开Q这个时间我估计了下?0-15分钟左右Q但是没有找到可以这个时间的地方Q这个选项q是应当开攄用户来选择。字体上我也希望能自定义字体Q目前是预先定义了几个大c,你只能在q几个大c里选,我还是希望能输入数D定义字体大小Q好像字体的讄q有个BugQ设|的字体不会保存Q在下次l箋阅读的时候还需要重新设|。另外,是那些提示框比较傻Q非要我点下认才消失,提示框应当在几秒内自动消失,q对用户体验更好。书架也应当允许分类Q现在是一股脑堆在一P几本书还好,多了比较麻烦了。书架的更新和内容的更新应当分离Q有时候我只是xC书架Qƈ不想更新内容?br />    g上我希望快Z套套Q这东西白的E里哗啦,很容易弄脏和摔坏Q有个套套比较好Q最好套套上能再带个阅读灯那更好了。充甉|式也应当再多样化一点,目前只能q到PC充电Qƈ且是无论如何都要会自动充电,应当让用户决定连接的时候是否充甉|寏V云梯在格式转换上还要下更大功夫才行Q当Ӟ我更希望是直接原生支持PDF了,不过从一个盛大的朋友那了解到q是比较困难的?br />
   MQ内?98q个Pbambookq是物有所值的Q硬件上很好QY件上问题不少Q内容徏设上q有很多要做的事情,例如我希望以后每天早上能直接用bambook看当天的报纸Q哪怕是要钱订阅的。在淘宝上查了下Qbambook内测q个版本转手也能卖到1200甚至更多Q还是挺抢手的。庆q的是bambook可以刷固Ӟ{哪天升U的时候,希望q些软g上的问题能有个比较好的解决Ҏ?br />
   



dennis 2010-08-15 12:56 发表评论
]]>
面试别h的感?/title><link>http://www.aygfsteel.com/killme2008/archive/2010/07/25/326687.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Sun, 25 Jul 2010 15:00:00 GMT</pubDate><guid>http://www.aygfsteel.com/killme2008/archive/2010/07/25/326687.html</guid><wfw:comment>http://www.aygfsteel.com/killme2008/comments/326687.html</wfw:comment><comments>http://www.aygfsteel.com/killme2008/archive/2010/07/25/326687.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/killme2008/comments/commentRss/326687.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/killme2008/services/trackbacks/326687.html</trackback:ping><description><![CDATA[<br /> <br />     今年我被分配了不参与面试应聘者的dQ大多数是做电话面试Q偶做F2F的面试。这是我W一ơ这么频J地面试别hQ过L都是被别人面试。主要想谈谈一些感惻I从面试官的角度给面试者一些徏议。因为做面试官的l验p么多Q我大概地讲Q有兴趣的大概地看?br /> <br />     面试者需要首先知道自己是惛_聘什么职位,很多人的历到我这里来Q都不知道自己是面试什么职位,那么聊的时候就l常对不上号Q原来你不是我们惌那种人,我不是去应聘你这个职位。我惛_投简历的时候需要明下自己xq家公司做什么,q样可以更明一些,节省大家旉。ƈ且面试者准备v来也能更充分一些?br /> <br />     做电话面试的时候,我比较怕那U声韛_的朋友Q听h费劲Q我问v来费劌Ӏ我提问的方式,一般是喜欢I到底Q根据对方的描述卛_发问Q一斚w查看知识掌握得牢Z牢固Q一斚w查看反应能力怎么栗如果你声音很小Q我发问的频率降低了Q我寚w试者的评h也自焉低了?br /> <br />     另外Q做电话面试Q面试者最好能在接电话的时候找个安静的地方Q背景的嘈杂也会影响面试的效果,有时候不得不我去提醒Ҏ找一个安静一些地斏V您老做其他公司的电话面试,q是别当着同事老板的面嘛?br /> <br />     公司q有做视频面试,视频面试的时候一般是通过旺旺Q做语音聊天Q这时候面试者还是需要注意下个h的D止。面寚w的时候,大家会小心注意一些,但是做视频面试的时候,׃你面对只是一个摄像头Q没有那么紧张,一些D止可能不恰当。有一ơ我视频面试一个同学,面试聊着聊着Q他都将脚抬到桌子上Q对着摄像头了Q尽我q不介意Q但是遇上其他面试官׃一定那么好说话了。这位同学最后没q,不过不是我这兛_下的了?br /> <br />     我看历的时候,一般都是先看项目经历,基本上你做过什么项目,大体能告诉我你擅长的技术方向,接下来看个h介,与你的项目经历是否符合,如果你描qC你擅长什么,_N什么,那么后箋的面试我问q些东西。当Ӟ如果你的技术方向跟我们的要求完全不dQ那我可能只是打个电话走q场?br />     历上能让人眼前一亮的地方包括Q除了Java之外Q你q会python、Ruby甚至Scheme之类的其他语aQ你参与了某些开源项目;你对某个领域的技术特别擅长,q且做过q方面的学习研究Q你做过性能优化Q系l调优之cȝ功能Q你描述了对某个pȝ做出的一些优化或者改q;你有自己的技术博客;你读q某些开源项目的源码Q你指导q别人的工作……<br />     历上让h疲倦的地方Q一堆同c项目的|列Q没有鲜明的描述Q没有说明你在项目里做了什么;只有目|列Q没有个人描qͼ只有l果Q没有过E;只有一堆名词,没有特别擅长的亮炏V?br /> <br />     q大半年来,也面试了不少牛hQ但是最后能q来的却是寥寥无几,我觉的特别牛的,可能老大们觉的某个方面不合适,也可能待遇上谈不拢,最l都来不了,很可惜。我也提议过改进面试的方式,不仅仅是聊天式的面试Q最好能增加一个上机面试,l一道很单的题目Q你做出来看看,不仅仅看E序写的对不对,更多看看你写的代码是否符合工E规范,是否有单元测试,变量命名是否合理Q在思\上有没有亮点{等。我总觉的简单地通过面谈来考察一个h是很NqQ程序员q是要以代码说话。后来也写了个上机面试的提纲Q不q最l这件事情也是不了了之?br /> <br />    另外Q面试通过其实应该是万里长征的W一步,公司在招q一个h之后Q基本上是不不问了Q这也可以理解,毕竟都是成年ZQ但是对于外地来的员工,很多都是独n一人就跑到杭州来的Q情感上适应是第一步,q有找房子、熟悉周边环境等{琐事。既然在前期招聘已经׃很大力气Q如果可以在员工入职后稍微关心下新入员工的状况,q是特别划算的买卖。入职刚转正的员工马上走人,q对公司的损失更大?br /> <br /><img src ="http://www.aygfsteel.com/killme2008/aggbug/326687.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/killme2008/" target="_blank">dennis</a> 2010-07-25 23:00 <a href="http://www.aygfsteel.com/killme2008/archive/2010/07/25/326687.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作随笔—?010-07-24http://www.aygfsteel.com/killme2008/archive/2010/07/24/327027.htmldennisdennisSat, 24 Jul 2010 12:51:00 GMThttp://www.aygfsteel.com/killme2008/archive/2010/07/24/327027.htmlhttp://www.aygfsteel.com/killme2008/comments/327027.htmlhttp://www.aygfsteel.com/killme2008/archive/2010/07/24/327027.html#Feedback1http://www.aygfsteel.com/killme2008/comments/commentRss/327027.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/327027.html     转眼间快?月,已经q去了两个季度,是时候稍微ȝ下干了什么,以后惛_什么。从春节到现在,我仍然是做淘宝的消息中间件Notify的开发,中间额外d了一个多月的另一个项目的开发,重拾了web开发的一些东ѝ?br />    
    q半q来Notify的改q集中在通讯层的攚w,引入AMQP的订阅模型,以及重要消息从oracleq移到mysql做HAҎQ这一q程是一个慢慢稳定系l的q程。新版本刚出来的时候有不少BUGQ有些BUG很严重,q运的是没有造成严重的后果,再一ơ提醒我心Q小心,再小心;心是一斚wQ工作有没有做到位是另一个方面,暴露出来的问题还是单元测试不全面Q以及麻痹大意心态下的不警惕Q对关键代码认识不清Qcode review也没有做C{等?br />
    Notify做到现在Q剩下的问题是一些很难解冻I又非常关键性的问题Q如消息的去重,消息的顺序性,以及消息的可靠存储。我说的q些问题都是在分布式集群环境下需要解决的问题Q如果仅仅是单台服务器,q些问题的解册不上特别困难。消息的去重Q基本的思\是在客户端和服务器之间各自维持一个状态,用于保存当前消息的处理情况,依据q个情况来做消息的去重,但是状态的保存Ҏ务器和客L来说都是一个额外的负担Qƈ且很隑ց到可靠的存储Q如果状态丢了,去重的目的就没办法做到。ActiveMQ里是在服务器和客L都维持了一个bitmap做重复的,但是q个bitmap大小必然是受限的Qƈ且无法持久保存的。消息的在集环境下的顺序性,涉及到集环境下的事件的旉序问题Q除了用分布式锁来保证一致性之外,暂时也没有好的思\去解冟뀂消息的可靠存储Q今q我们的目标臛_是脱oracleQ目前实现的HA mysql双写的实现已l开始部|到交易q样的核心系l上Q第三个季度慢慢地全部切换q去。下一步的目标是将消息存储到key-valuepȝ上,但是需要解决的是烦引的问题Q因为消息的恢复涉及到查询,q且需要根据一些特D条件做查询以应付诸如尽快恢复重要消息这L功能Q因此目前的一些key-valuepȝ要么在烦引功能上太弱Q要么在集群功能上太弱,要么在大数据量存储上有局限,因此不是特别切合我们的场景,因此一个可行的Ҏ是将消息的headerl箋存储在关pL据库Q方便做查询Q而将数据较大的body存储在key-value上,减轻数据库的负担。今q_我们q是希望能在以上3个方向某个方向做出突破?br />
   q半q来技术上的收PW一个季度业余时间都L游戏了,没方什么心思在学习和工作上Q后来去学习了下ASMQȝ对java的byte codeQ以及jvm执行byte codeq程有了个理解,然后利用ASML了aviatorq个目。接下来开始做服务器的SEDA攚w,q个q程完成了部分,但是不满意,SEDA的模型过于理论化Q模型是好的Q但是在stage controller的实C目前没有可供参考的l验Q做到资源的自动控制更需要实际的试和实践,基本的指导原则只能作为参考。另外,最q下军_去重构整个项目,从一个一个类看vQ看C爽的地方马上d重构Q这个过E,我又去重看了下《重构》中的原则,在谈如分布式、v量数据存储、云计算q样的大词之前,我需要的做的仍然是将代码写好Q写的漂亮。也许是时?span style="color: red;">回到本源Q再去重M《设计模式》,重读下《重构》,既然我还在写java代码Q那q是希望写的更好炏V?br />    另外Q我现在喜欢上了clojure语言Qƈ且正儿八l地找了本书好好学习Q从源码和bytecode入手ȝ解它的实现。我Z么喜Ƣclojure?
   首先Q它是LISP的方a之一QLISP的优点它全有QLISP的缺点它能想办法避免。Clojure也有宏,也有quoteQ也有将procedure as data的能力,Clojure的数据结构都是immutableQ此外还是persistenceQ避免了immutable数据大量拯带来的开销。Clojure的数据结构还天生是lazy的,表达能力上一个台阶。Clojure在语法上更多变化Q某些程度上降低了括L使用频率Q这一Ҏ利有弊。Clojure的内在原则是一致的Q核心语法非常简单,它没有多U范式可供选择Q因此没有scala那样复杂的类型系l,没有Z包容javaE序员引入的OO模型Q有替代品)Q用clojure最好的方式是函数式圎ͼ但是它的扩展能力允许你去试各种范式?br />
   其次QClojure对ƈ发的支持更符合一般程序员的理解,它只是将锁替换成了事务,利用STMM存可变状态,但是却避免锁带来的缺点——死锁、活锁、竞争条件。它没有引入新的模型Q这对习惯于用锁~程的同学来_STM没有很大差异Q你可以它理解成内存型数据库?br />
   W三Q最重要的一点,Clojure是实CJVM之上的,Java上的M东西它都能直接利用,q且利用type hint之类的手D可以做到性能上没有损失。尽Java语言有千般不是,但是寄生于整个^C上的开源生态系l是M其他C֌都很难比拟的Q放弃Javaq_q个宝库Q暂时还做不到。过d习schemeQ学习common lispQ更多的目的是开阔眼界,现在能实际地使用Q还能有比这更幸的事情吗?

   下半q技术上惛_习什么呢Q除了clojure之外Q我惛_看下haskellQ了解下什么是mondQ除此之外,是收收心将《算法导论》读完吧。另外,收v对awk和shell~程的偏见,好好熟悉下这两个工具Qdirty and quickly的干zL时候还是很重要的?br />
    我还是个典型的码农,喜欢写代码,喜欢试C西,臛_热情和好奇心q残存一些,那么ql当好码农吧?br />  


dennis 2010-07-24 20:51 发表评论
]]>
我的西大学历证书http://www.aygfsteel.com/killme2008/archive/2010/07/20/326594.htmldennisdennisTue, 20 Jul 2010 01:12:00 GMThttp://www.aygfsteel.com/killme2008/archive/2010/07/20/326594.htmlhttp://www.aygfsteel.com/killme2008/comments/326594.htmlhttp://www.aygfsteel.com/killme2008/archive/2010/07/20/326594.html#Feedback0http://www.aygfsteel.com/killme2008/comments/commentRss/326594.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/326594.html     本h的西大学历证书,如果你也惌一本,请到http://www.51by.com/wenping/diploma.php 自动生成?br />






dennis 2010-07-20 09:12 发表评论
]]>
告别圣托多http://www.aygfsteel.com/killme2008/archive/2010/07/10/325688.htmldennisdennisFri, 09 Jul 2010 16:10:00 GMThttp://www.aygfsteel.com/killme2008/archive/2010/07/10/325688.htmlhttp://www.aygfsteel.com/killme2008/comments/325688.htmlhttp://www.aygfsteel.com/killme2008/archive/2010/07/10/325688.html#Feedback0http://www.aygfsteel.com/killme2008/comments/commentRss/325688.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/325688.html 托尔?/a>正式宣布退役了Q下个赛季他会留在国际c_做青训方面的工作Q他?000q欧z杯上的l典表现永载史册。他为国际米兰效力了十年Q这也是我看国米比赛的十q?br />




dennis 2010-07-10 00:10 发表评论
]]>
阿根廷回家了http://www.aygfsteel.com/killme2008/archive/2010/07/04/325177.htmldennisdennisSat, 03 Jul 2010 16:08:00 GMThttp://www.aygfsteel.com/killme2008/archive/2010/07/04/325177.htmlhttp://www.aygfsteel.com/killme2008/comments/325177.htmlhttp://www.aygfsteel.com/killme2008/archive/2010/07/04/325177.html#Feedback0http://www.aygfsteel.com/killme2008/comments/commentRss/325177.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/325177.html    布尔q烦、dc_利斯q样的著名漏勺,q有古铁hq样的牛B后卫Q想q决赛完全在做梦?br />    什么艺术球,什么功利球,看看德国队的配合Q脸U不Q?br />    只会在弱队n上刷数据C瓜因Q给c_托擦鞋都不配?br />    梅球王被Ҏ得太多了Q相对于真小人的C|,动作、下阴招的梅球王l于带着0q球到记录回家了?8Q阿根hQ世界清净了。当Ӟ马上有一帮恶心阿qL情地q“阿根廷别为我哭泣”Z们的“潘帕斯雄?#8221;招魂呢?br />

  



dennis 2010-07-04 00:08 发表评论
]]>
~存的分?/title><link>http://www.aygfsteel.com/killme2008/archive/2010/06/05/322822.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Sat, 05 Jun 2010 02:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/killme2008/archive/2010/06/05/322822.html</guid><wfw:comment>http://www.aygfsteel.com/killme2008/comments/322822.html</wfw:comment><comments>http://www.aygfsteel.com/killme2008/archive/2010/06/05/322822.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.aygfsteel.com/killme2008/comments/commentRss/322822.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/killme2008/services/trackbacks/322822.html</trackback:ping><description><![CDATA[    Java的垃圾收集算法是分代的,因ؓҎ2/8原则Q?0%的Java对象都是速生速灭的,因此Java Heap划分为new和oldQ对两个区域采用不同的垃圑֛收算法,在new代存zM来的对象转移到old区,q样一来大大提高了Java GC的效率?br />     cM分代的思想在很多地方可以用刎ͼ分代的本质是Ҏ对象生命周期的不同做区别处理Q而不是采取一刀切的方式来提高系l的处理效率。推而广之,比如~存的用,现在很多web应用都采用了cMmemcachedq样的缓存挡在数据库前面分担负蝲Q那么你可以memcached理解成new代,而数据库是old代。memcached中存储的是查询的热点数据Q新鲜火热,但是易失Qƈ且在数据更新的时候被U除Q而数据库保存了所有的数据Q当~存没有命中的时候才L询数据库q存储到~存。new和oldq只是简单的二代划分Q事实上现在来多的系l是多~存Q页面缓存、memcached~存、JVM内部~存、查询缓存等{直到数据库Q从web面到后端是一个越来越old的过E,~存对象持箋的生命周期逐渐增长直到persist状态?br />     具体到JVM内部~存Q我们通常使用LRU法来实C个安全有限的~存Q如直接l承LinkedHashMap可以实C个简单的LRUMap。基于内存用上的考虑Q我们会lLRUMap讑֮一个最大的capacityQ当数据量超q这个capacity的时候将最q最访问的元素U除来容Ux的元素。这样处理生的问题是这个capactity不能讄得太大,因ؓ怕内存不够用Q但是不够大的结果可能是命中率没有那么高Q跟你的场景相关Q,那么如何在保存内存安全的前提下更q一步缓存更多的对象呢?{案也是分代。LRUMap默认存储的都是对象的强引用,我们知道Javaq有其他3U引用类Qsoft,weak?span id="ArticleContent1_ArticleContent1_lblContent"><span style="font-size: 9pt; color: black; font-family: 宋体;"><span lang="EN-US">phantom</span></span></span>。其中Soft引用是在jvm内存不够的时候进行回Ӟweak引用是在垃圾回收到的时候会被回Ӟ昄weak->soft->strong三类引用的生命周期可以划分ؓ3个代Q我们将可以实现一个可以容Ux多对象的LRUMapQLRUMap讄两个阀|一个是强引用的最大阀|q个不能太大Q一个是软引用的最大数目,当超q第一个阀值的时候,不是LRU替换出来的对象移除,而是替代转换Y引用存储Q如果Y引用的数目也过阀|那么可以Y引用q个Map里的对象LRU替换成Weak引用存储或者简单移除。处理元素查询的时候,多了一个步骤,在查询强引用未果的情况下Q需要再L询Y引用集合Q不q都是O(1)复杂度的查询Q不会成为明昄瓉。通过缓存对象分代,我们实现了容难更多缓存对象的目标Q大部分对象以强引用的Ş式存储,被LRU替换出去最q最访问的元素以Y引用存储Q它们在内存不够的时候被垃圾回收Q保证了内存使用上的安全性。我们在pȝ中采用了cMq样的缓存,~存的命中率有了明显的提高?br />     题目是《缓存的分代》,其实谈的是分代这U常见的设计或者说技巧,在需要处理大量对象的场景中,不采用一刀切的方式Q而是Ҏ对象的特点进行适当的分代处理,带来的效率提升可能是惊h的?br /> <br />     PS.关于q个<a href="http://www.aygfsteel.com/killme2008/archive/2010/06/03/322630.html">招聘</a>|嗦两句Q我是这个小l的成员Q有疑我的目的是Z赚推荐费Q这个不能说没有Q不q主要目的还是招人,我们很缺人。那么多要求可以归结Z句话Q我们找Java基础良好、对q发通信有丰富实늻验、写代码相对靠谱、ؓ人相寚wq人。那些要求ƈ非硬性,如果你觉的合适,管投简历,谢谢。我们小l做的东西我认ؓq是有h值的Q也很有挑战Q淘宝内部的很多应用都在使用Q如果你希望你做的品被成千上万的h每天使用Q欢q加入?br /> <br />       <br /> <br />     <br /> <br /><img src ="http://www.aygfsteel.com/killme2008/aggbug/322822.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/killme2008/" target="_blank">dennis</a> 2010-06-05 10:13 <a href="http://www.aygfsteel.com/killme2008/archive/2010/06/05/322822.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最q写的一些bughttp://www.aygfsteel.com/killme2008/archive/2010/06/05/322813.htmldennisdennisFri, 04 Jun 2010 17:06:00 GMThttp://www.aygfsteel.com/killme2008/archive/2010/06/05/322813.htmlhttp://www.aygfsteel.com/killme2008/comments/322813.htmlhttp://www.aygfsteel.com/killme2008/archive/2010/06/05/322813.html#Feedback0http://www.aygfsteel.com/killme2008/comments/commentRss/322813.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/322813.html     毫不惭愧地说Q我也是今年才开始有意识地去做回bugqg事情Q今天回下最q写出来的这几个BUGQ三个是ȝ大意D的,一个是switch语句竟然没写breakQ一个是q发BUGQ一个是考虑问题不全面导致的问题。这里主要还是想讲那三个ȝ大意写出来的BUGQ都是在急匆匆修攚w题的情况下写出来的,本意是ؓ了解军_有的BUG,在自以ؓ很有信心地情况下匆忙C改代码,没有认真做reviewQ没有添加单元测试,在解决问题的同时引入了新的问题?br />     q些愚蠢的BUG修正h非常单,但是Z么那个时候却没有发现呢?我自省下Q还是盲目自信导致的Q因为快速地修复BUGg很能lh一U虚假的快感Q瞧Q这个问题我修正h很快Q我是代码快枪手Q哦ӞQ修复也qŞ了,如果能再补充下测试,也许q些问题p避免Q但是我却又一ơ自信过了头。我在想Q如果下ơ还遇到q种需要快速修攚w题的时候我该怎么做,我该先深呼吸下,停一停,先想x么改再动手Q想想风险点Q改完之后至review三遍Qƈ且一定要dq些情况的测试。尽我怿以后我还会写下一些愚蠢的BUGQ但是希望能让自己少后悔一点点?br />


dennis 2010-06-05 01:06 发表评论
]]>
淘宝分布式品组诚聘Java工程?此招聘长期有效)http://www.aygfsteel.com/killme2008/archive/2010/06/03/322630.htmldennisdennisThu, 03 Jun 2010 08:05:00 GMThttp://www.aygfsteel.com/killme2008/archive/2010/06/03/322630.htmlhttp://www.aygfsteel.com/killme2008/comments/322630.htmlhttp://www.aygfsteel.com/killme2008/archive/2010/06/03/322630.html#Feedback27http://www.aygfsteel.com/killme2008/comments/commentRss/322630.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/322630.html联系邮箱Q?boyan@taobao.com
历格式: 最好是U文本格?br />
淘宝分布式品组诚聘Java工程师,有兴的误p,谢谢Q此招聘长期有效。具体职位和要求如下Q?br />
消息中间件资深Java工程?
工作地点Q杭?br /> 职位描述:
负责消息中间件的设计、开发等工作

职位要求Q?br /> 1、扎实的Java开发基知识
2、Java多线E、ƈ发以及网l通信有深厚的l验
3、熟悉大规模分布式系l架构,熟悉分布式存储系l?br /> 4、热爱技术,Ҏ术有不懈的追求?br /> 5、熟悉消息中间gQƈ了解消息中间件原理的优先考虑

分布式数据层资深Java工程?
工作地点Q杭?br /> 职位描述:
负责分布式数据层的设计、开发等工作

职位要求Q?br /> 1、扎实的Java开发基知识
2、Java多线E、ƈ发以及网l通信有深厚的l验
3、对JDBCQJPAQJTA有深厚的理解
4、熟悉常见的分布式存储解x?br /> 5、热爱技术,Ҏ术有不懈的追?br /> 6、熟悉数据层的原理和应用
7、熟悉关pL据库模型、有分布式事务相关经验优?br />
Java框架和工具开发工E师
工作地点Q杭?br /> 职位描述:
1?设计、开发、改q基于Java的工具和框架?br /> 2?指导开发团队用工具和框架Q解决疑N题?br />
职位要求Q?br /> 1?熟悉q自如运用Java语言及JDKcdQ具备良好的~程习惯?br /> 2?熟悉多种Java开源项目,_N目前主的Java开源项目的使用Ҏ和设计理c有独到见解者更佟?br /> 3?熟悉OOP理念及常见设计模式?br /> 4?熟悉Eclipse开发^収ͼ了解Eclipse Plugin的开发?br /> 5?视野qKQ了解业内发展动态?br /> 6?喜爱专研Q精益求_,有较强的学习能力?br /> 7?善于交流Q乐于分享?br /> 8?具备英文阅读能力和书写能力?br />
应用理工具开发工E师
工作地点Q杭?br /> 职位描述:
1、承担应用、系l管理工具及其他相关的工兗应用的开?br /> 2、大规模应用理相关技术的预研工作

职位要求Q?br /> 1、两q及以上开发Java或Php开发经?br /> 2、对技术充满兴,有扎实的~程基础
3、对l历q的产品、项目有深入的理解,而不仅停留在开?br />


联系邮箱Q?boyan@taobao.com
历格式: 最好是U文本格?br />
附注Q?如果理员觉的放在首不合适,h下,不好意思,招h不容易啊?br />


dennis 2010-06-03 16:05 发表评论
]]>
爸爸和儿子的对话http://www.aygfsteel.com/killme2008/archive/2010/06/01/322429.htmldennisdennisTue, 01 Jun 2010 03:18:00 GMThttp://www.aygfsteel.com/killme2008/archive/2010/06/01/322429.htmlhttp://www.aygfsteel.com/killme2008/comments/322429.htmlhttp://www.aygfsteel.com/killme2008/archive/2010/06/01/322429.html#Feedback0http://www.aygfsteel.com/killme2008/comments/commentRss/322429.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/322429.html
爸爸Q你今天乖不乖?
儿子Q啊
爸爸Q有没有想爸爸?
儿子Q啊
爸爸Q吃饭了没?
儿子Q哦
爸爸Q有没有吃饱啊?
儿子Q呃
……
     今天是儿童节Q昨天晚上带家伙去买玩P儿子很替老爸省钱Q自己只挑了气球。最后还是老爸老妈狠狠心给他买了画板和音乐屋子,庆幸的是儿子很喜Ƣ,一个晚上在那边“打电?#8221;。儿子,节日快乐Q希望你健康成长Q快乐每一天?br />





dennis 2010-06-01 11:18 发表评论
]]>
冠了http://www.aygfsteel.com/killme2008/archive/2010/05/23/321647.htmldennisdennisSat, 22 May 2010 21:53:00 GMThttp://www.aygfsteel.com/killme2008/archive/2010/05/23/321647.htmlhttp://www.aygfsteel.com/killme2008/comments/321647.htmlhttp://www.aygfsteel.com/killme2008/archive/2010/05/23/321647.html#Feedback0http://www.aygfsteel.com/killme2008/comments/commentRss/321647.htmlhttp://www.aygfsteel.com/killme2008/services/trackbacks/321647.html







dennis 2010-05-23 05:53 发表评论
]]>
代码自我审查的一些体?/title><link>http://www.aygfsteel.com/killme2008/archive/2010/05/18/321219.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Mon, 17 May 2010 16:28:00 GMT</pubDate><guid>http://www.aygfsteel.com/killme2008/archive/2010/05/18/321219.html</guid><wfw:comment>http://www.aygfsteel.com/killme2008/comments/321219.html</wfw:comment><comments>http://www.aygfsteel.com/killme2008/archive/2010/05/18/321219.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/killme2008/comments/commentRss/321219.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/killme2008/services/trackbacks/321219.html</trackback:ping><description><![CDATA[<br /> 1、首先态度需要端正,做代码的自我审查q不是否定自己,而是l自己将工作做得更好的一ơ机会。在审查q程中要量自׃Z个旁观者的心态去审查自己的代码,管q比较困难?br /> <br /> 2、代码审查离不开重构Q在审查q程中发CQ何坏味道都请使用重构L善,发现~Z试的地方要及时补充试Q不要让BUG遗漏?br /> <br /> 3、代码的自我审查可能不是早好Q隔一D|间之后回ȝ自己写的东西Q对一些设计上的选择能有更客观的评hQ在审查的过E中可能需要重新去理解代码Q在此过E中可以查自׃码的可读性,q思考如何改善可L,<strong>切记代码首先是给?/strong>?br /> <br /> 4、审查过E中需要记录下一些犯下的错误Q以及当时ؓ什么会犯下q样的错误,建立自己的bug数据库,q时常reviewQ在以后的工作中避免同样的错误?br /> <br /> 5、代码的自我审查应该是一个持l性的q程Q而非特定旉的特定行动,时常审查自己的代码,不仅能L析自q得失Q还能够q一步提高自己在未来工作中的设计能力和预见能力?br /> <br /> 6、代码的自我审查跟团队成员之间的怺reviewq不矛盾Q在怺review之前做一个自我审查,有助于提高review的效率,包括可读性的提高和一些一般错误的避免?br /> <br /> 7、代码自我审查的一些常见注意点Q?br /> Q?Q自认ؓl不会出错,q且从来没有审查q的代码?br /> Q?Q注意else语句Qif条g下的子语句通常可能是个正常的流E,而else意味着异常的情冉|者特D的场景Q你可能特别注意怎么处理正常的情况,却忽略了else子句的实现细节,如该释放的锁没释放,该递减的计数没有递减Q该赋予Ҏ值却没有赋予{等?br /> Q?Q注意空的方法,没有Ҏ体的ҎQ是不需要实玎ͼq是忘了实现Q?br /> Q?Q注意switch语句Q有没有忘了breakQ这U错误通过findbugs之类的静态代码检查工具都能避免?br /> Q?Q注意大块的注释Qؓ什么这么多注释Q是代码写的很糟p?q是遗留的注释?遗留的注释会误导人,要及时删除?br /> Q?Q注意一些看h“不合常理”的代码,q样的代码很多都是基于所谓性能考虑而优化过的代码,q样的优化是否还需要?是否能去除这?#8220;奇?#8221;的代码也能实现正常的需求?<br /> Q?Q对客户端的使用有假讄代码Q假讄户只会这么用Q假讄户只会用到返回对象中的某些属性,其他属性一定不会用刎ͼ不要对客户代码做假设Q这个客户代码包括外部用户和调用q个模块的内部代码?br /> Q?Q标注了FIXME、TODO之类task标签的代码,是否忘了修复BUGQ实现功能?<br /> Q?QQ何超q?5行以上的ҎQ这些方法是否能拆分成更l粒度的ҎQƈ保持在同一个抽象层ơ上Q?br /> Q?QQ何在代码中出现的帔R|是否应该提取出来成ؓ单独的常量,帔R的默认D|是否合理?<br /> Q?0) M持有容器的代码,提供了放入容器的ҎQ是否提供了从容器中U除对象的方法?保没有内存泄漏的隐患?br /> Q?1Q重构中提到的其他坏味道Q别放过它们Q但是也不要q求完美QOO不是圣杯Q如果能单的实现一个算法,你不要引?个对象和4个接口?br /> Q?2Q在review最后能列出一张清单,开列下该项目面临的风险点,q提军_法,然后按照q张清单去review关键代码Q着重检查异常情况下的处理。风险点的reviewQ我可以攑֜后面Q在一般性错误解决之后进行,此时你对代码也将再度变的熟悉?br /><img src ="http://www.aygfsteel.com/killme2008/aggbug/321219.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/killme2008/" target="_blank">dennis</a> 2010-05-18 00:28 <a href="http://www.aygfsteel.com/killme2008/archive/2010/05/18/321219.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ƨ冠半决赛的一张销图?/title><link>http://www.aygfsteel.com/killme2008/archive/2010/04/29/319719.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Thu, 29 Apr 2010 10:54:00 GMT</pubDate><guid>http://www.aygfsteel.com/killme2008/archive/2010/04/29/319719.html</guid><wfw:comment>http://www.aygfsteel.com/killme2008/comments/319719.html</wfw:comment><comments>http://www.aygfsteel.com/killme2008/archive/2010/04/29/319719.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/killme2008/comments/commentRss/319719.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/killme2008/services/trackbacks/319719.html</trackback:ping><description><![CDATA[    W死我了<br /> <br /> <img alt="" src="http://www.aygfsteel.com/images/blogjava_net/killme2008/3fff6f1646bd5469f2de3202.jpg.gif" height="237" width="400" /><br /><img src ="http://www.aygfsteel.com/killme2008/aggbug/319719.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/killme2008/" target="_blank">dennis</a> 2010-04-29 18:54 <a href="http://www.aygfsteel.com/killme2008/archive/2010/04/29/319719.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>妈妈Q我不想?/title><link>http://www.aygfsteel.com/killme2008/archive/2010/03/24/316398.html</link><dc:creator>dennis</dc:creator><author>dennis</author><pubDate>Wed, 24 Mar 2010 01:48:00 GMT</pubDate><guid>http://www.aygfsteel.com/killme2008/archive/2010/03/24/316398.html</guid><wfw:comment>http://www.aygfsteel.com/killme2008/comments/316398.html</wfw:comment><comments>http://www.aygfsteel.com/killme2008/archive/2010/03/24/316398.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/killme2008/comments/commentRss/316398.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/killme2008/services/trackbacks/316398.html</trackback:ping><description><![CDATA[妈妈Q我不想?br /> ——纪念不qR去的孩子们Q?br /> 妈妈<br /> 你ؓ什么在哭泣<br /> 今天不是我的生日<br /> Z么在我n旁点燃红?br /> 没有歌声<br /> 也没有小朋友<br /> 只有你的泪水<br /> 在不停地淌流<br /> 妈妈,拽紧我的?br /> 我不惌<br /> 妈妈<br /> 你ؓ什么在哭泣<br /> 今天我又惹你生气<br /> 是我没完成作?br /> q是我偷偷在玩游?br /> 你打我吧<br /> 你骂我吧<br /> 千万不要把我抛弃<br /> 妈妈,拽紧我的?br /> 我不惌<br /> 妈妈<br /> 你ؓ什么哭?br /> 是老天不公<br /> q是你的爱没我留住<br /> 天堂没有阛_<br /> 也没有鸟语花?br /> 我不去那边当天<br /> 今生只想做你的心头肉<br /> 妈妈Q拽紧我的手<br /> 我不惌<br /> <br /> 来自|易|友评论Q新闻链接?a >徏南^男子在校门口杀宛_名小学生</a>?br /> <br /> <img alt="" src="http://www.aygfsteel.com/images/blogjava_net/killme2008/baihua.jpg" height="375" width="500" /><br /><img src ="http://www.aygfsteel.com/killme2008/aggbug/316398.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/killme2008/" target="_blank">dennis</a> 2010-03-24 09:48 <a href="http://www.aygfsteel.com/killme2008/archive/2010/03/24/316398.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">۽</a>| <a href="http://" target="_blank">گ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">书</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">բ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank">պ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ֶ</a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank">ո</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">԰</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">³ƶ</a>| <a href="http://" target="_blank">ʶ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ȫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>