自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

回顾2010,展望2011

一晃2010年过去了,看看2010年打算做的事情,嗯,该总结一下了。   2010年,最大的一件事情就是宝贝出生,看着他慢慢长大,生活有了新的追求,很幸福!   2010年初计划的事情,大部分都在进行或者在扫尾中。相对满意的是:镜像、应用监控、后台任务管理,过程和结果都不错,碰到很多困难,好歹都过去了,基本问题已经解决,后续持续优化即可。   不是很满意的:自动化、cache集群的管理...

2011-01-06 01:59:51 139

springsource 收购rabbitmq,vmware继续完善云计算布局

SpringSource 收购了RabbitMQ,http://www.springsource.com/newsevents/springsource-acquires-rabbitmq-cloud-messaging   而SpringSource是VMWare的一个Division,VMWare继续布局云计算平台,从虚拟计算节点的管理,应用开发,应用服务器的部署和管理,现在又有异步的消息...

2010-04-13 22:47:07 190

原创 2010年,想做的事情

这段时间一直在做规划,2010年要做的事情还是挺多的,这里大概列一下,有的是工作需要,有的是自己的打算,姑且记录在这里,年底的时候好回顾一下   网站镜像 这是一个大头,现在刚开始,其实要考虑的事情很多,数据库同步,关联文件的同步,各个系统之间的关系,应用的一些设计上可能还需要考虑,还没完全想明白呢。 双A的镜像没那么好做,而且系统本身非常复杂,各种业务,n个系统,oracle,mys...

2010-02-05 20:49:34 128

如何应对表结构经常变化?

作为架构师或者开发人员,面对业务方提出的数据结构变化的需求总是很头痛的,今天让你加个描述字段,明天让你再加个什么标记,后天又需要增加一个时间戳,千奇百怪,层出不穷,实在头痛。但是,我们不能随意的指责什么,因为业务在发展,而且我们不能也不应该因为技术或者实现的原因去否决一些业务变化,毕竟技术是什么?真正产生价值的还是业务!   那,在实践中,我们如何面对这种无法避免而且往往很难预期的数据结构变化...

2009-12-25 16:29:30 660

MVC中被忽略的View层

现在市面上这么多的java web 开发框架,struts2,spring mvc,wicket,tapestry,stripes,click....随便列一些就很多了,在web应用开发和维护的时候,我们会关注哪些功能呢?   提到现在的web框架,我们的第一印象是什么?POJO controller?支持spring,支持guice,支持EJB3?至于View呢,我们支持jsp、freem...

2009-09-19 21:21:25 259

大规模集群下的http 状态解决方案

Http本身是没有状态的,因为我们需要,才有了cookie和session,在不同的应用里面我们会有不同的解决方案,因为很多节点集群,因此基本上不会考虑应用服务器自己的方案。   1.简单的cookie方案    将请求状态保存在cookie里的,严格限制个数、大小,每一个attribute对应一个cookie, 然后,加密解密啥的,这个阶段一个CookieUtil就搞定,应用里面直接使用...

2009-09-19 20:03:08 146

读了一下hotwheels的代码

上次提到的一个挑战,公开出来的一些代码,这两天抽时间仔细读了一下,感觉对OTP了解更多了(以前没怎么接触过完整的应用),下面是一些阅读笔记和简单的分析   hotwheels   程序入口 hotwheels,启动app hotwheels,通过hotwheels.app查看入口模块, app的入口模块hotwheels_app,作为一个application,定义了几个子进程: * ...

2009-08-31 11:56:09 246

java虚拟机调优常识

  jvm的调整没什么技巧,只有一些原则,要根据自己应用的特点来设定调优的目标,这里收集了一些内容,权当记录   Java heap (Xmx, Xms) 和java进程的heap是两回事情 java进程的heap包含:    Java Heap    Permanent Generation    Thread stacks    Native code    Directly...

2009-08-31 10:01:10 80

没有灵魂的软件不是一个优秀的软件

我们说不要重新发明轮子,其实不是这样的,我们要“发明”轮子,而不是制造轮子。发明是需要有创新的,有新的价值出来的,制造只是按照图纸生产而已!生产出来的轮子是没有灵魂的!   做为优秀的软件,他应该是有灵魂的,或者说有自己的特色,有气质,有核心价值。一般来说,一提到某个优秀的软件,你想到的第一个用来评价的词,往往就是这个软件的灵魂所在。   先说说spring吧,大家都熟悉,...

2009-08-21 21:31:10 134

非常讨厌大而全

有一段时间,我的状态一直是“非常讨厌大而全”,列举几个例子.   做数据库拆分方案的时候,一张很大的表,要在线使用的用户数据,我们要拆分出来,放到n个小数据库里去。 这时候就有人问了:那你们事务怎么做啊,不同数据库之间怎么保证一致性啊。 我就说:不同数据库之间我们不在这里考虑事务的问题,需要应用去考虑,我们这里解决的是超大数据量的问题。 曰:ACID都不行,那这个方案不行啊~~   ...

2009-08-21 21:08:10 140

不错的erlang tutorial

http://learnyousomeerlang.com/  写道 This guide is intended to be read by beginners, but if you're average or somewhat advanced you can probably learn a few things too!     作者写的很生动,很形象,比较适合初学者。...

2009-08-19 09:41:01 101

erlang 新书 "OTP and Erlang in Action"

一本新书,似乎还未完成,见 http://pokingarounderlang.wordpress.com/2009/08/17/otp-and-erlang-in-action/ http://www.manning.com/logan/   开始期待,看了Progrmming Erlang 和Erlang Progrmming(还没看完),感觉实践中还是需要一些指导,特别是OTP部分...

2009-08-17 17:40:40 92

erlang.org似乎挂了

从昨天起,erlang.org就无法访问了,ping能ping通,telnet erlang.org 80也能连上,但是GET /就无相应   还好,我以前把所有的manual pdf都下载了下来,不然没文档看了,哎,还是在线的方便啊...

2009-08-17 11:38:47 196

"下一代java编程风格"

Stephan Schmidt 在他的文章Go Ahead: Next Generation Java Programming Style里里建议的几点编程风格: 1. 使用final,尽量让每个东西都不可变 2. no setters,是为了配合1 3. 集合操作不要使用循环,向FP学习,使用list comprehension 4. 能写一行的代码都写到一行上 5. 使用很多的int...

2009-08-12 17:11:39 84

实现增强的java class hotswap (三) 解决方案 续

通过装载类时修改类名加上版本号来实现类重新装载,这时最核心的问题实际上已经解决了,至少类变化时可以马上装载进来使用了,但是同时带来一些问题:   * 类名被修改了,反射怎么办? 比如,我的类Test里面,有 worker = new Worker(),这时候返回的实际上是一个Worker_V_1的实例,正常的方法调用是没问题了,不过如果worker.getClass().getName()咋...

2009-08-11 13:51:29 186

vmware 收购了 springsource $420M

几年早些时候,springsource收购了一家做cloud management的公司hyperic,现在vmware又收购了springsource,这样,vmware,hyperic,spring,groovy,grails站在一家大门里了,可以有些什么想象空间呢?   vmware是个非常不错的东西,用了很多年了,从2.x开始使用,现在使用vmware server,非常方便,虚拟出来...

2009-08-11 08:47:39 454

ibatis3 beta 1 发布,新功能介绍

ibatis 3 beta 1 发布,可以去下载试用一下了,http://ibatis.apache.org/java.cgi?Preferred=http://www.apache.org/dist   大概读了一下User Guide,值得关注的几点: * Namespace 现在不是optional了,是required * 可以使用Java Annotation来配置这些sql了,...

2009-08-10 16:44:52 137

实现增强的java class hotswap (三) 解决方案

这段时间瞎忙,这篇文章没有写下去,被人鄙视是太监文,郁闷,只好抽时间继续。 ---------------------------- 上回说道我们要实现类字节码的动态装载,一个思路就是不让这个类真正的被装载进虚拟机,因为一旦真正的装载进来了,就无法对其进行结构上的修改,这些在前文中已经提到过了。那怎么才能不让类装载进来但是又能使用它呢?   这看起来像一个悖论,我们要在应用是使用一...

2009-08-10 10:32:26 538

为啥我的erlide超慢无比?

为啥我的erlide超慢无比?   刚下载的一个eclipse 3.5 platform,相当干净,然后就直接安装的一个erlide,版本是0.6.5   用的是刚下载的jdk 1.6.0_15,系统是ubuntu 9.10 beta,erlang也是最新的R13B01   使用的时候很卡,动一下,卡一下,动一下,卡一下   谁知道是为啥呢?咱就想不明白了。...

2009-08-06 16:08:04 91

昨天更新了ubuntu无法上网的解决

一时兴起,升级到了ubuntu 9.10 (karmic) beta3,昨天更新kernel 到2.6.31-5之后无法上网   不管是无线网络还是插上网线都不行,重启network也不行,reboot到带network的root shell发现错误信息:Open a socket for LPF: Operation not permitted,于是放狗,在bug库里找到bug408907,...

2009-08-05 20:45:30 226

emacs 23.1 released

Emacs version 23 has a wide variety of new features, including: Improved Unicode support. Font rendering with Fontconfig and Xft . Support for using X displays and text terminals in one ...

2009-07-30 13:54:21 85

Django 1.1 released

Django 1.1 正式release ,详细见 release notes ,摘几条: Model inprovements:支持unmanaged models:不和数据库表一一对应的model,proxy models 在原有model上增加额外python-level的方法和表现,也不需要有表对应 ORM上的改进:支持聚合函数,例如:count,max,min等 和以前不兼容...

2009-07-29 15:36:51 109

HadoopDB : Hadoop + RDBMS

HadoopDB 是耶鲁大学的一些研究人员在进行的一个Opensource项目,类似GreenPlum,Aster Data,描述如下: A hybrid of DBMS and MapReduce technologies that targets analytical workloads Designed to run on a shared-nothing cluster of ...

2009-07-22 14:13:30 151

erlang 程序性能优化挑战

OpenPoker 的作者Joel Reymont 发起的挑战,优化一个程序的性能,问题在这里 ,还有这里 ,过程应该比较有意思,看了他的程序 ,似乎和我想要的一个东西比较想,要好好看看,哈哈。...

2009-07-20 12:03:31 274

erlang programming 比programming erlang这本书好

这两本书我都是看英文pdf的,看了TheBook之后,没啥感觉,就是介绍性质的,现在在看TheOtherOne,看了一部分,大概1/4,感觉很不错,很实在,很多东西完全是一些实际经验,而不是简单的介绍功能。   估计和作者的经历很相关,Joe 就是一个布道者,要向大家介绍erlang,推广erlang,erlang能这样,能那样,有这个,有那个,这里好,那里好;而Francesco他们呢,纯粹...

2009-07-15 16:38:17 213

twitter 的一些运营经验

http://assets.en.oreilly.com/1/event/29/Fixing%20Twitter_%20Improving%20the%20Performance%20and%20Scalability%20of%20the%20World's%20Most%20Popular%20Micro-blogging%20Site%20Presentation.pdf   Key p...

2009-07-15 09:51:02 560

erlang中的message发送的几个事实

这个世界是并行的,我们每个人都有自己的思想,你没法知道我想什么,只能我告诉你。   在erlang的世界里,每个进程有自己的状态(其实就是那些传来传去的参数,不考虑进程字典这个不干净的东西好了),无法直接将一个进程的状态分享给其他进程,只能通过消息,发送到对方的邮箱里去,看他啥时候有空处理一下。   erlang里发消息很简单   PID ! Message,就可以了,PID是一种数据类型...

2009-07-13 17:59:07 295

在ubuntu上编译erlang with wx

因为ubuntu维护的erlang版本太旧,因此从某时开始,我就开始自己维护我使用的erlang版本,下载源代码来编译   以前编译的时候总是有odbc和wx两个无法链接,因为不使用到,也就忽略过去了,这次因为想看看debugger的东西,需要wx支持,才去想办法编译wx的driver,不过碰到一些问题,留给大家   首先,下载了源代码,configure一下,发现无法link odbc和...

2009-07-12 09:10:40 124

Memcached 1.4.0 released

盼望已久的memcached 1.4.0终于release了,这里面包含了很多值得期待的功能: *binary protocol ,无疑会带来不错的性能提升和很多扩展的可能性 *几个锁拿掉了,比如统计信息的锁,现在放到每条工作线程上了,这样对性能影响就很小了 *自动会使用多个工作线程,在多核的cpu上性能应该会更好 *增加了一些统计信息 *一些bugfix   非常值得升级啊。  ...

2009-07-11 14:24:56 115

并不是所有的时候都应该选择尾递归

要实现一个函数,参数是一个list,结果是将list里每个数字都+1,返回一个新的list,会怎么实现呢?   看代码,哪个函数性能最好?(除了add2,因为他的结果是不正确的) -module(t). -compile(export_all). add1([]) -> []; add1([H|T]) -> [H+1|add1(T)]. add2(R) -&g...

2009-07-08 17:06:56 119

erlang 中case语句的使用

在erlang中,至少有三种可互换的流程控制方式:函数声明上的pattern match,case语句,if语句   这里讲将case语句和函数声明上的pattern match的区别。   case语句的格式如下:   case conditional-expression of Pattern1 -> expression1, expression2, .. ;, ...

2009-07-07 13:16:30 1197

erlang 中带下划线变量的使用

在erlang里'_'是一个特殊的变量(其实erlang里不应该叫“变”量,照顾习惯,姑且这么叫吧),它可以代替任何东西,在match的时候非常有用,例如: {A, _, [B|_], {B}} = {abc, 23, [22, 23], {22}}  这样,就是把_当作一个占位符,表示,match的时候这里有一个值,但是我不关心他是什么   在erlang里,使用下划线'_'开头的变量名...

2009-07-03 15:39:58 356

原创 好久没更新了

好久没更新了,最近比较忙   接下来决定做几件事情: *阅读couchdb的erlang代码 *阅读Erlang Programming这本书(不是Joe老头那本)   希望能有一些收获。...

2009-07-02 12:04:38 113

erlang 发布了一个新的小版本R13B01

主要是一个bug fix版本,也有一些SMP方面的增强:   Erlang/OTP R13B01 has been released. R13B01 is a service release for R13B. There are mostly error corrections but also some new functions. Some highligh...

2009-06-11 11:07:49 135

原创 friendfeed如何使用mysql

读完这一篇How FriendFeed uses MySQL to store schema-less data ,颇有感触   文中主要表达了几个意思: *数据量相当大的时候,维护mysql本身的索引非常困难,新增/删除索引都很费资源 *新的方案使用mysql,但是只是用他基本“数据库”的功能,而不使用“关系”的功能,就是说,只用mysql来保存数据,以及简单的单表查询,不使用join...

2009-06-08 17:09:17 496

jdk1.6.0 update 14中包含了Garbage First(G1)

在jdk 1.6.0 update 14中终于包含了Garbage first,在release notes 里有这么一段: Although G1 is available for use in this release, note that production use of G1 is only permitted where a Java support contract has b...

2009-05-31 13:38:53 143

也说企业开发自主框架

看到几个帖子,都在讨论自主研发框架的问题,如何看待企业自主研发框架 ,“山寨”框架3宗罪 ,也来谈谈我的看法(我们这里提到的框架,是比较泛的,不局限于某个特定用途,特定领域的框架)   首先,要不要自主研发框架,要看开发这个框架是来干嘛的 ,如果没有现成的适合自己目的的框架,如果没有,并且从长远来看,又是需要这个一个框架的,那没的选择,必须开发。不过,虽然是需要一个框架,我还是不建议一开...

2009-05-24 15:14:06 304

一个投票游戏,一个博弈的问题

前段时间参加一个培训,老师出了一道题,是一个游戏,规则如下: 总共4个人投票,分别代表一个组 每个人能投X或者Y,总共进行4局,每一局根据投票结果记分: 4X 每组输一分 3X 每组赢一分, 1Y 输3分 2X 每组赢2分, 2Y每组输2分 1X 赢3分, 3Y 每组输1分 4Y 每组赢一分 每组可以讨论5分钟,然后开始投票 4名投票人在游戏的第二局和第三局开始前可以进行1分钟...

2009-05-24 11:54:29 283

如何提高缓存服务器的可用性

上一篇我们讨论到了问题 ,现在我来讲讲我的解决方法。   首先要明确几点: *缓存服务器不是数据库,是允许部分失败的,也是允许一定程度上的不一致的 *我们要解决的是分布式缓存的整体可用性,而不是单台服务器的可用性   如果场景不是这样,或者不同意我对缓存服务器的作用的假设,下面就没必要看了。   首先,我们肯定是在客户端来解决这个问题,在我看来,服务器端解决,让每个服务节点知晓其...

2009-05-23 23:13:52 172

关于如何使用内存擦车的

也学人家来一次标题党,其实就是如何使用memcached,对不起,我使用的是中英文混合翻译法。这里讨论的问题不是针对memcached,实际上是通用的缓存策略。   前两天,公司技术部群里,大家针对如何使用cache服务器进行了一次热烈的讨论。事情起因是因为对一组cache服务器的维护导致了前台应用的报警。大家讨论很热烈,经过多次发散和收敛,大致的观点有几种: *cache应该是可有可无的,...

2009-05-23 06:47:19 134

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除