两个男人的故事
一位农民在一位好心大哥的帮助下,走过了苦难并渐渐脱贫,而正当他要开始致富的时候,好心大哥却得了白血病。为了治好这位大哥的病,他卖掉家里的十几头肥猪后,又毅然卖掉了自己的房子……
最近,这则发生在两个男人之间的催人泪下的真情故事,在北方大地广为传诵;而为之感动不已的人们又纷纷加入了拯救行动。爱心如潮涌动,这位身患血癌的好心大哥,终于有救了……
十年真情相助
事情还得从10年前说起——1994年6月21日中午12点多,一位20多岁的小伙子气喘吁吁地跑进了辽阳市急救中心305病房。他满头大汗地对病床上的一位老人说:“爷爷,我又借到了300元,你别急,我会凑够 ...
- 22:21
- 浏览 (351)
- 评论 (0)
六、event
event这个概念,可以说是我的DJ语言中,最为核心的概念。因此值得细细道来。我之所以要敲响OO时代的丧钟,最大的一个原因,就是Object是静态封装的。为了“保证数据的安全”,面向对象从“抽象数据类型”一步步发展而来,带来了无数的问题,引发了重重的困难,大多数的对于OO的批评与改进,都很少触及这个根源,也很少想过打破对象封装这样的事情,直到近年来出现的AOP、Mixin以及越发强大的各种动态语言,开始来做这方面的努力。而这些技术和语言,在试图打破封装的时候,做得并不彻底,往往还是“从OO的基本语义出发,做一些有益的补充”。而我的打算则是,彻底反思封装的意义,然后采用一 ...
- 22:51
- 浏览 (370)
- 评论 (0)
《【东早社论】超级女声:数千万人对数千万人的民意决选》
这篇blog的作者,是颇有些名气的记者安替。下面是我的回复:
安替同志啊,你还真是幼稚得可以。
“超级女声”这个事情:
老百姓不过是把它当成个娱乐。
湖南卫视不过是把它当成个生意。
媒体记者不过是把它当成个炒作题材。
只有你这样的幼稚知识分子,才会把它当成“民主样板”!
而且为了把它说成是“民主样板”,对于其中的种种黑幕完全是视而不见。这种手机短信投票的事情,你都能相信是民意,你也太容易被骗了。
你这样的知识分子,倒是让我想起当年入了政协就喜气洋洋的“民主党派代表们”。他们也像你一样,真诚的相信自己“参与了民主进程”。
- 22:13
- 浏览 (372)
- 评论 (0)
五、dclass
本来我就在两个关键字之间犹豫,一个是djclass,另一个是dclass。后来想想,还是dclass显得大气一些,也少一个字母呀
dclass UserObj{
key_datatype:
int user_id;
datatype:
User user;
channel:
init UserInitChannel uic;
UserPOJOChannel upc;
relation:
UserForum:right;
GroupUser ...
- 23:11
- 浏览 (396)
- 评论 (0)
DJ是一个精心设计的语言,之所以敢于夸耀这个语言,在于我在设计这个DJ语言的时候,不但在考虑语法的表达的能力,更加在考虑基于DJ语言的开发模式与设计模式。而在此之前的大多数语言,大多仅仅考虑了功能,在这方面最值得一提到Java语言,这个语言的设计也算得上是相当用心了,虽然不能说是近乎完美,但是与同时代的语言相比,可以说java是最注意考虑“java将被如何用于开发”的语言了。
遗憾的是,java是基于OO的固有思路的一种语言,在有些方面的设计,是过于OO化了。比如它的Exception体系。而我现在要设计一种新的语言,自然不能停留在10年前的设计水平上,而应该考虑得更多。
...
- 22:27
- 浏览 (374)
- 评论 (0)
最近实在是太忙了。进了一家新的公司,开发一个全新的产品,使用的是以前从来没有用过的Delphi,每周一、三、五晚上加班到11点,周六在加班一整天。生活忙碌、充实而又疲惫不堪。脑子倒是一直没有闲着,想写的东西也很多,先预告一下吧,8月应该能空下来了。1、《还账之陈升与刘若英》,看了那期桃色蛋白质之后的感想2、《MDA与DSL》,与徐X的一些讨论3、《青岛游记》,去青岛旅游的经历4、《最近读的一些书》,主要是晚清历史方面的5、《Web2.0中的生产、消费与交易费用》,从经济学的角度探讨Web2.06、《对抓虾、豆瓣、途牛的一些建议》,一些思考和设想7、《印客通介绍》,介绍我们最近在开发的这个产品8 ...
- 22:03
- 浏览 (352)
- 评论 (0)
四、channel与contract
如果我们要对UserChannel进行校验,可以在两个层面进行。
一个是每个方法,都可以写check:与test:。
另一个是在整个channel层面,还可以再写同时牵涉到多个方法的test:。
channel UserChannel<datatype User user>{
public String getUserName(){
return user.name;
check:
......
test:
........
}
publ ...
- 20:50
- 浏览 (370)
- 评论 (0)
三、Channel的定义
关于Channel,我一时找不到好的中文来称呼它。当然,在我思考的时候,我的心里面想的是中文“管道”。但是管道这个词我一直觉得不太好,所以也没有深入想,就直接起个英文名词Channel算了。先看一下Channel是如何定义的。
channel UserChannel<datatype User user>{
public String getUserName(){
return user.name;
}
public void setUserName(String name){
user.n ...
- 21:14
- 浏览 (377)
- 评论 (0)
这两天在javaeye发生的争吵,相当令人不快。
ajoo也算是“成名高手”了,依然孜孜不倦的跟我纠缠当初吵了几十帖的“给OO下个定义”这样的“八股”问题。既然是“八股问题”,就不是无理取闹!是的,他有道理,而且是有大道理,但是这样的“学究道理”,实在是令人厌烦。这次更是将矛头对准整个javaeye,还搞了个新词叫做“民科”。
javaeye的民科倾向
gigix也是名人了,老是拿SICP出来砸人,也很令人气闷。
求证:“一切皆对象”即“一切皆过程”
最有趣的是,他拿来砸人的书以及说了“那句很有气势的话”的本人,说起话来,都似乎没有他那么有气势。
以至于dlee写了一篇我们是否 ...
- 15:02
- 浏览 (419)
- 评论 (0)
与麦田关于Web 2.0的讨论《Web2.0 只对1.5%的网民有效》
麦田兄的很多观点,我是很赞同的,但是赞同的就不多说了,说说不同意的部分吧。
“1% rule”也好,“1.5%”也罢,这个不是问题。我们可以认为,为互联网贡献内容的,永远是少数人。
就算不提Web2.0的概念,大家都还在1.0的时代,那时候贡献内容的人,也是少数,可能会比“1%”更少,但是如果考虑到BBS、邮件列表、原创文学网站,主页大巴,这样的形态,能够贡献内容的,只怕也不会比“1%”更少。
我的第一个结论是:“Web 2.0,并不能提高贡献内容者的比例”
那么,2.0和1.0的区别在哪里呢?是 ...
- 11:46
- 浏览 (347)
- 评论 (0)
今天与buaawhl讨论DJ语言的事情时,对于DBC有了更深入的思考与认识。
具体的讨论过程就不描述了,说说我的思考的结论吧。
1、检查
DBC的核心是检查、更加严格的检查。这其实是强类型语言之后,进一步的增强。
一段程序,不但应该通过注释告诉别人,自己需要什么数据,自己能够做些什么。
更应该直接用代码进行强制的检查,这样的说明效果会更好,程序运行也会更加稳定。
2、对于检查的分类
a.类型检查:仅仅对于输入数据与返回数据的类型进行检查
b.前置检查:检查输入数据的合法性——是否合格,可以认为是更加严格的输入类型检查,但是还可以包括多参数的关联检查。比如,假设A为True,则B必须 ...
- 23:53
- 浏览 (320)
- 评论 (0)
《宏论·注脚》是gigix在7月19日的一篇blog。应该是评论我的《OO丧钟》的系列文章的吧。虽然没有什么直接的评价,除了“越写越没料”、“已然是开始扯淡了”算是一个评价之外。然后呢?然后他就祭出了一个大大的法宝:《SICP》,中文名称是:《计算机程序的构造和解释》。这书赫赫有名,最近o6z也在推荐大家去看:赶快去学习sicp、从直觉到自觉的迈进。
SICP这本书我看过没有呢?我的确是很认真、很认真的看过的。不但看过,而且思考过,不但思考过,而且还有了很多收获和自己的结论。否则我的《OO丧钟》系列中,也不会举SICP中提到的例子。gigix的话没有错,他引用的TrustNo1的第 ...
- 10:20
- 浏览 (478)
- 评论 (0)
二、方法/函数定义
定义一个函数的办法其实很简单,几乎和java的函数定义没有什么两样——如果你不使用DJ的高级特性的话。
User getUser(UserList ul,String name){
for(int i=0;i<ul.size();i++){
User item=ul.item(i);
if(item.name.equals(name)){
return item;
}
}
return null;
}
给getUser函数一个用户列表和一个用户名,然后getUs ...
- 00:08
- 浏览 (416)
- 评论 (1)
与数据类型定义相关的,还有一些小问题,这里再讨论一下。
1、final修饰符
datatype作为校验的依据,其实分为两个部分:是否存在某一特定名称与类型的变量;变量是否符合一组check条件。因此,任何数据,只要能够事实上通过abc类型的校验条件,就可以算作是abc类的数据,并不需要在定义中显式的声明为as abc云云。这个语法设定,并没有考虑到一种特殊条件——满足条件,但是有多余数据的情况。因此我们需要在datatype之前,再加上final修饰符,这就意味着,如果有数据通过了所有的判据,但是还有多余的变量,我们将认为这个数据并不属于abc类型。
与java中的 ...
- 23:02
- 浏览 (333)
- 评论 (0)
1、窃书不为偷,那是风雅;抄豆瓣不算抄,那是尊重用户的使用体验。
送给那些豆瓣的抄袭者。
偶像豆瓣,粉丝成群
2、成功是成功者的演讲稿,失败是失败者的墓志铭。
送给百度
3、blog给人以“所有感”,BBS给人以“归属感”,Wiki给人以“成就感”,
但是成就感最不值钱。归属感最容易使人沉迷。所有感其实是虚假的。
想通了一些问题
4、Blog+Digg+Dzone的展现方式,是一个不错的发展方向
与江南白衣聊天时想到的
- 23:28
- 浏览 (353)
- 评论 (0)
让我们接着昨天的数据类型来讨论。
datatype Triangle as Polygon{
check: lines.size()==3;
}
这样的判断,其实是有漏洞的。假设多边形中,有一条以上的直线,长度为0,那么这个多边形,就不是一个三角形了。因此,我们需要修改Line的类型定义:
datatype Line{
Point p1;
Point p2;
check: length(this)>0;
checkMethods:
double length(this){
}
}
OK,有了这样的Line以后,我们得到的三角形 ...
- 23:18
- 浏览 (371)
- 评论 (0)
DynamicJava——DJ
一种新的语言
一、数据结构
要定义数据类型,首先需要明确数据的概念。在我看来,数据,就是在数据就是在内存的数据区里存放的内容。那么如何才能决定这块内存中的数据的具体类型呢?说实话,精确定、规范的定义一种语言,我并不擅长,还是让我们举当初的OO失败案例,来看看新的DJ,会如何处理这个难题吧。
为了定义一个几何图形,我们首先要定义点的概念:
datatype Point{
double x; double y; }
一个点需要有x和y两个座标,x和y都是系统的基本类型:double。
然后是线:
datatype L ...
- 22:20
- 浏览 (351)
- 评论 (0)
今天这篇是关于OO VS. RDB的,OO作为一种编程范型,主要是集中于处理“操作”,而RDBMS作为一种数据管理工具,主要是集中于“数据”。但是,在一个需要数据库的系统中,必然的情况是:操作的对象自然是各种各样的数据,而数据的管理,自然要通过操作。因此,OO与RDB,从最初浅的角度来理解,虽然分别位于“业务逻辑层”与“数据层”,但是相互之间却又有着非常紧密的联系。在OO与RDB之间存在着的紧张关系,其根源在于:“OO世界中的数据是被封装的孤立数据;RDB世界中的操作是针对行集的。”
因此,一个对象实例内部的数据,应该保存到数据库中的哪些表、哪些行、哪些列,是一个非常复杂的问题。反 ...
- 22:45
- 浏览 (460)
- 评论 (0)
《Ajax大赛第二轮公告》
《Ajax大赛第二轮结果》
我写的总结
如果和超级女生这样的大赛相比的话,Ajax大赛应该被称之为“Ajax小赛”吧。250名初赛选手,10多名复赛选手,三个来自于一个网站“Ajax中国”的评委。这样的比赛意义在哪里呢?
仅仅看数量,是看不出来的。
Ajax是Web应用的一种,而且可以肯定的说,是Web应用中最为复杂的一种,一个Web项目,我们通常都会分为“美工”、“Web静态页面制作”、“Server端系统开发”这样几个工种。而Ajax应用则同时需要Server端与Client端复杂的端到端编程技术。
对于参赛选手而 ...
- 21:30
- 浏览 (295)
- 评论 (0)
6月17日~6月25日是第九届上海电影节。这次电影节可谓盛况空前,在9天时间里,放映了155部中外影片!可惜啊,又正好是世界杯,最后我和老婆只看了其中的四场电影,的确都很不错,当然,不是每一部都是最好的。
《The 25th Hour》
一部很不像美国电影的美国电影。情节简单至极,但是因为演员的功力非凡,所以使得整部片子给人以极其强烈的震撼。兄弟之间的感情,人性的矛盾与人生的困惑,绝望与安慰,诅咒与祝福,理性与情感,冲动与诱惑。。。。。。最后的结局令人有点迷惑,猜测导演的意图,是不希望大家都太绝望了。
另外有一篇影评写得不错:
一切都该死,但那就是我们。
...
- 00:19
- 浏览 (342)
- 评论 (0)
原本这一篇我是打算写《设计模式批判(2)》的,但是经过权衡,我决定放弃原本的进度计划,将攻击已有技术成果的文字大大缩短,尽快开始写我的设计方案部分。因此,设计模式的批判我将改变批判的方式,不是直接空对空的批判,而是在提出了自己的设计方案之后,通过对比,向大家表明,使用新的思维模式与技术手段,原有的设计模式需要解决的问题,现在能够得到更加灵活、易懂的解决。
同样的,对于AOP、CGLIB、Mixin之类的新技术,我也将通过实际的例子证明,在我的新方案内,这些技术所带来的灵活性,同样能够自然、安全、方便的得到。
在JavaEye的讨论中,JavaCup给了我一堆非常好的地址,我 ...
- 22:09
- 浏览 (398)
- 评论 (0)
世界杯正在德国如火如荼的踢着,我的blog里却只字未提。那天半夜在MSN上遇到远在非洲的大头,他问:“你在干啥?”,我说:“看球呀。”,他说:“你看什么足球,你个伪球迷。”那天开幕式德国队4:2胜了,胜得酣畅淋漓,我就对老婆说:“其实啊,我也是喜欢看球的呀。”
这段话,作为草稿,在我的Blog里躺了15天,如今世界杯都已经结束了,我才能来写这篇blog...
心里的遗憾,真是......
JavaEye都已经吵翻天了,我也说不出什么话来,转几个link,大家欣赏。
有一种失败,比黄金昂贵,比金杯高贵 http://blog.donews.com/zrde/archive/200 ...
- 21:53
- 浏览 (327)
- 评论 (0)
为什么要批判设计模式?设计模式不是OO开发的救星吗?作为“可复用的面向对象”的基础设施,设计模式大大的超越了OO设计原则给予我们的承诺,还记得我们前面的分析吗?OO设计原则并不担保你在设计之前就能避免错误,相反的,你往往需要在屡屡受伤之后,才会明白设计原则的真谛。而设计模式是如此的伟大,他甚至可以帮你提前避免问题,只要你可能遇到的问题,符合设计模式手册中,所描述的那种场景,基本上你就可以直接采用相应的设计方案了。如果找不到正好合适的,你也可以改造自己面对的问题,使得他看起来究就像设计模式手册中描述的那样,然后你就可以放心使用相应的设计方案了。如果你无法在那23个模式中找到合适的答案——你可 ...
- 21:10
- 浏览 (610)
- 评论 (1)
OO设计原则!
这是很多开发资源网站必备的一个栏目、专题、至少也要转载一篇放在自己的网站上的东西。所有的程序员,如果你不开发面向对象的程序也就罢了——反正你已经落伍很久了,如果你要想开发OO程序,而竟然没有把那些OO设计原则熟读背诵,搞得滚瓜烂熟。那么你就完了,一个公司面试你的时候,问你:“你对SRP的理解是怎么样的?”,而你居然不知道SRP是什么,那么这家公司你也就别想进去了。作为OO程序员的《旧约圣经》(设计模式自然是《新约圣经》)他怎么就会那么神圣呢?
介绍OO设计原则的文章很多,我在google上搜索了一下:“约有58,200项符合OO设计原则的查询结果”。真正能够介绍得透彻的 ...
- 11:28
- 浏览 (1232)
- 评论 (7)
先说句提外话,由于徐昊的推荐,我在网上找到了《Modern C++ Design》繁体中文版的前四章PDF文件。果然不出我所料,Loki的设计思路与我的随后将会介绍的自己的设计实现,实有异曲同工之妙。对于C++的熟悉程度超过Java的某同学,可以先去看看这本书,如果能够同意书中的观点,再来与我讨论,相信会得到更多的收获。
程序员都是聪明人,没有谁愿意干重复劳动这样的傻事,因此,程序中出现重复代码是程序员的耻辱。就算不能消除重复代码,至少也可以对于相同的功能,用不同的代码来实现所以发明新轮子的程序员才会那么多。
面向对象作为一种横空出世的新技术,首先承诺的就是“更好的重用性 ...
- 20:46
- 浏览 (563)
- 评论 (0)
写技术文章,例子其实很难举,特别是找到有杀伤力的,决定性的例子,相当困难。昨天我接着看《对象揭密》,总算被我找到一个,当然,它那上面的解说,实在是比较模糊,因此我决定用自己的话重新叙述一遍,代码示例用Java的泛型语法,但是要表达的意思,确实所有的具有泛型的OO语言都需要面对的。
java代码:
public class X { protected int i; public void add(int a){ i=i+a; } } public class Y1 extends X { ...
- 13:33
- 浏览 (588)
- 评论 (0)
- 浏览: 705679 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
匪夷所思
共 19 张
共 19 张
最近加入圈子
最新评论
-
外国大牛也不过如此——《 ...
我们做的是项目,要赚钱的。他们做的是理想,要引导我们赚钱的。所以大牛还是大牛,我 ...
-- by defrag_sly -
IT开发与管理——新收获
为什么需要注册 写道引用1、锐道公司的范浩:“欲望不要超过自己的能力,就不会失败 ...
-- by soartju -
IT开发与管理——新收获
blueshoes 写道做这行的就是会吹水忽悠人,加钱加福利最实际,让员工看到未 ...
-- by xuwenhao -
IT开发与管理——新收获
欲望还是要稍微超过一点能力,好有前进的动力,不过欲望能力不匹配,人就会浮起来 [ ...
-- by xuwenhao -
IT开发与管理——新收获
写得太好了,受益匪浅
-- by miaomiao0307






评论排行榜