2012年11月30日星期五

语义网是给人用的

语义网是给人用的

这个题目好像是废话。不是给人用的,难道是给机器用的?

不幸而言中。

语义网研究的早期(其实现在还有不少人),有种看法,就是传统的Web是给人读的,而语义网是让机器来读网页,”Machine Understandable”。例如,Tim Berners-Lee在1998年的一个Design Issues(注:TBL的design issues,就当教皇的敕令好了),Semantic Web Road map里说

The Web was designed as an information space, with the goal that it should be useful not only for human-human communication, but also that machines would be able to participate and help. One of the major obstacles to this has been the fact that most information on the Web is designed for human consumption… the Semantic Webapproach instead develops languages for expressing information in a machine processable form.

后来有很多年,对语义网的宣传就是这样讲的:让机器来读网页的内容,并理解网页。

这么说,本来并不错。语义网技术的发展,也基本按TBL在1998年就定下的调子走。

问题是,就算经是好的,念经的和尚难免把经念歪了。这导致了后来的一系列问题。

从TBL的road map出发,大家的思路自然是,那我们先去设计一种语言,帮人来做网页的元数据标注(metadata annotation),不就好了。于是就有了RDF, SHOE, DAML, OIL, DAML+OIL, OWL,等等。无数的银子砸进去。

听到一点点响。

后来(2006年),大家觉得是不是经有问题?为什么大企业大多都不跟进呢?是不是太复杂了?后来就有了对语义网技术栈的简化。TBL又发了一条敕令:Linked Data。又是无数的银子砸进去。

这会听到的响多一些。linked data (http://linkeddata.org) 的数量,现在有300多个数据集,300多亿triple。在用在Watson等系统里了,效果不错。

不过,这又过了5年,对语义网质疑的声音,依然是远远超过支持它的声音。大企业的跟进,依然是笛卡尔对宗教的那种态度:试一试,试一试。说实在的,在这样的环境下,没有一点宗教的热忱或者愚蠢,那是不容易坚持下去的。

问题出在哪里?

某年我参加了一个研讨会。会上大家畅所欲言,说了推理啊,查询啊,界面啊,种种问题。然后有人问了一个问题:数据呢,数据在哪里?

主持人就问:大家说说看,你们在用什么数据?

一种不大不小的尴尬在会场蔓延。是的,在场的绝大多数人都没有从用户那里来的“真实”的数据,更不用说元数据。

从用户那里,很难拿到高质量数据,几乎不可能拿到大量的用户添加过元数据的数据。

用户都是人。人做一件事,是要考虑成本和收益的。人是有心理和感情的。人是有极大的认知局限的。大多数人本性是爱偷懒和虚荣的。我们现在的教育,没有教会大多数人怎么管理数据(因为直到不久以前,大多数人的问题是数据太少而不是太多)。如果从人那里来的就是垃圾数据,那你休想指望从中提取出太多有用的信息(除非你只关心一些宏观的统计指标)。

我开始觉得,语义网的问题,其实不在机器的语言设计的是不是简单,是不是可以推理、理解,也不是可扩展性。核心问题,其实在人,在人能不能被激励去做一些事情,然后机器才可以去做 一些相对简单的事。在设计一个语义应用前,我要问自己一系列问题:

  • 数据在哪里?谁提供数据?
  • 元数据会一并提供吗?
  • 用户会不会提供元数据?他们会因此得到什么好处?他们的心理是什么?到什么程度他们会烦?
  • 产生数据和元数据的代价是多大?用户需要付出多大的努力?
  • 用户需要多长时间才会从提供元数据得到好处?
  • 总用户里,有多少会主动提供元数据?在这些人里,又有多少会提供高质量的元数据?
  • 数据的依赖性如何?是不是要等很多用户都来提供数据了,系统才能有用?单个用户的数据有多少用?
  • 需要多少数据/元数据系统才会有一点用?明显有用?要几天,几个月,还是几个世纪才能达到?
  • 什么样的元数据是对用户/客户对有价值的?如果没有,有多大可能用工具获得?
  • 对现有系统,需要多大的改动?现有的工作模式是不是会被改变?这些人有动机做这种改变吗?会不会有抵触?怎么解决?
  • 在这个应用的全生命周期,哪些人会参与? 有多少人需要重新培训?培训的代价是多少?
  • 等等,还有很多这里不说了

语义网是给人用的。语义网上的数据,除了一些用来科研和生产的(比如天文观测和工业仪表),大头还是要由人的活动来产生。要抓住人性,才能抓住数据,然后才有后来的一切。

语义网这场革命,正如社交网络(social network),主要是一种社会的革命,模式的变迁(Paradigm Shift),而以技术支持为手段。

语义网,是要为人民服务。不要把自己关在屋里想,去设计社会该什么走,什么是“合理”的。反之,应该走出去,抓住人的欲望和能力,体察社会的趋势,从“存在”中寻找合理性,那些有助于机器来帮助”人理解人”的合理性。

至于这个东西还叫不叫语义网,已经不重要了。

【8090在职场】个人提升方法三部曲:行动,记录、总结

【8090在职场】个人提升方法三部曲:行动,记录、总结

作者:warfalcon

编者注:这是作者对知乎问题「在你所熟知的领域,有哪些知识或思维方法非常重要,业外人士常常因不知道而陷入困境?」的回答。答案中关于个人提升的方法,值得职场人士借鉴。欢迎在微博私信@bigla 邮件件brian@socialbeta.cn 给我们反馈与你的职场经验分享投稿。

大道至简,实际上最有用的方法最简单,就三步:行动,记录、总结(分析、思考、改进 ) 。 有明确的目标,长时间坚持在特定的方向中反复进行这三步就足够了。

我现在对专家的理解

  • 特定范围内试过足够多错误的人,
  • 能在日常工作中知道如何去避免错误
  • 出现错误之后如何处理和解决
  • 可以通过一些细节提前发现错误

如果你从刚开始工作时就刻意的去记录自己所遇到的事情,包括正常工作、学到的经验,遇到的问题,每周或每月花了1、2天时间去分析自己的记录,不断的总结、分析和思考,你工作的一年时间可能比别人三年经验还要强,这个方法在目前我看到的所有行业和岗位中都适用。

拿程序员为例,大多数程序员前半年到一年左右成长提高的最快,2-3年时间可以从一无所知的菜鸟变成有丰富经验的技术经理,而很多人到达这个阶段之后就停止长成,如果没有特别的机会很能难继续成长为框架设计师。项目经理(独立带人完成整个项目,从前期到售后都包括在内)可能要2-3年左右,大约从5-10个普通程序员中出现一位。而一个好一点的核心构架设计师大约需要5-8年,经历并参加过二、三个大项目的核心设计,大致30-50个或上百个程序员中能出现一位。而这些人刚进入公司时,教育程度、水平、学习机会都相类似,但经过1-2年左右,就能看出差距所在。

同样是五年经验的程序员,有的人是一年的经验重复了五年,有的人是五年,每周每月都在记录和总结中不断提高,一、二年可能差距不太大,3-5年的差距会大到难以想象。

我觉得这三步是最主要和基础的,其他的,包括好奇心、兴趣、学习能力,阅读,积极主动、乐观、沟通能力、观察能力,只要这三步坚持下去都有所增强,至于能达到什么程度很难说,每个人投入的精力和时间不一样,关注的方向不一样,环境和心境也不同,比如刚参加工作、工作三年后和结婚后的表现又不一样。
这三步缺一不可,总结的前提是建立了详细的记录,坚持长时间的定期总结能让你认识到自己的不足,并不断改正自己的缺点,而改正缺点就逼迫你去大量阅读和学习别人的优点,而你学到的优点就直接反应到你的行动上。

这三步有很多种类似的说法,比如时间统计法、1万小时中的刻意练习、PDCA循环,作法都类似,但方向和角度有所不同,有兴趣的可以去我的Blog看看类似的文章。  时间管理中用处最大的方法:柳比歇夫的时间统计法

(1)总结:每天一小结,每月一大结,年终一总结。

每天一小结 :

记下工作的起讫时间,误差不超过5分钟。

不断看表,无休无止的进行自我工时标定。任何活动-休息、看报、散步,都记下时间,多少小时,多少分钟。小结所用的时间也奥记录。他的每篇论文都有时间成本。(多年来经常看表的结果,柳比歇夫肯定形成了一种特殊的时间感。借助于一种内在的注意力,感觉的到时间的流逝)–什么都记下起始时间。

他的日记很简短,只记和自己工作或自身相关的事。国家大事在上面基本没有反应。–记录所用语句很短

每天临睡前进行时间统计。计算时间花在什么地方了,花了多少。最后算出基本消耗时间。每天只合计第一类的工作时间。(他每天的统计,结算,详细到了无情的地步,什么也不隐瞒,什么也不缩小。)–每天小结,睡前,纯时间的工作统计,总类统计,分类统计。

计算的是纯时间,即刨除工作中的任何间歇。毛时间就是用在这项工作上的所有时间,包括毛时间和休息时间。

每月小结

将每天第一类工作时间合计出来,第二类的。等。然后是第一,二类的工作的一览表。借助图和表的形式。

–每月小结,详细统计这月中的时间消耗。模式:总类,分类,详表。

第一类的非常详细,第二类的同样非常详细。

年终总结:

根据月小结做份年度总结,列出一览表,旁边注着数字,又是加又是乘。要求进行自我分析、自我研究,效率有什么变化,为什么?

年度总结:篇幅巨大,很详尽。什么记录都有。看了多少书,什么书,各国文字的文艺作品看了多少等。

再统计一遍。把所有干了的,读了的,看了的统统收集到一起,加以计算,分门别类。一年来的工作和休息-简直什么事都要结算累计。例:娱乐-六十五次。接着列清单,列举看过的戏、电影、听过的音乐会、参观过的展览会

年度总结有个欠债的账单,列着每月看完的书留下的尾巴。每年重复一次,没有减少。

每份小结、总结的末尾都注明了他们的代价-花了多少小时多少分钟。

个人总结 :

每天一小结,每月一大结,年终一总结。统计加比较分析。统计时间流向,比较两个阶段,分析原因

  • 什么都记下起讫时间
  • 记录所用语句很短
  • 每天小结,睡前,纯时间的工作统计,总类统计,分类统计。
  • 每月小结,详细统计这月中的时间消耗。模式:总类,分类,详表。

年终总结,按总类、分类、详表的模式,统计这一年。并自我分析,研究。效率有什么变化,为什么。

总结出自己的工作能力,找到适合自己的精力安排方式。

例:

乌里扬诺夫斯克。一九六四年四月八日。分类昆虫学:鉴定袋蛾,结束–二小时二十分。开始写关于袋蛾的报告–一小时五分(1.0)。附加工作:给达维陀娃和布里亚赫尔写信,六页–三小时二十分(0.5)。路途往返–0.5。休息–剃胡子。《乌里扬诺夫斯克真理报》–十五分,《消息报》–十分,《文学报》–二十分;阿・托尔斯泰的《吸血鬼》,六十六页–一小时三十分。听里姆斯基-柯萨科夫的 《沙皇的未婚妻》。基本工作合计–六小时四十五分。 这部分只是总结,他的计划部分也非常的强悍

(2)计划:有月计划,年计划,五年计划

月计划先是通过时间统计法,了解到自己每天,每月能用于工作的时间有多少,以此为标准容器;通过时间统计法,还了解到自己做每样工作需要消耗的时间,于是以这两个标准,安排工作和活动。

每天分为必须活动,非必须活动。睡觉,吃饭、这是必须的标准活动。一般约消耗十一二个小时;非标准活动,即办公、学术工作、娱乐等,约占十二至十三小时,这是毛时间。纯可利用时间是十小时,分成三个单位,或六个半单位。根据自己身体的节律,精神状态去安排工作、活动进行计划安排。这样每月预算三百小时。总结、计划占百分之一,顶多百分之二,即三到六个小时。计划就是挑时间,规定节律,使一切各得其所。用去的时间,应该同他从事的工作相称(我觉得是说时间花费的多少和工作的重要,紧急程度相符)。需要高深学识的工作,一天至多干七八小时。除最富于创造性的第一类工作,所有规定的工作量都竭力完成。

第一类工作包括中心工作(写作、搞研究)和例行工作(看参考书、做笔记、写信等)。第二类工作包括做学术报告、讲课、开学术讨论会、看文艺作品,不属直接科研工作的活动都包括在内。

年计划总结完上一年,就该制定下一年计划了。下一年计划是根据柳比歇夫提出的任务大致安排的。

五年计划除年度计划,他把一生时间,制定成一个个五年计划。每过五年,把度过的时间和干过的事分析一通,做个总的鉴定。

做月计划,年计划,五年计划,总结时比对完成情况,原因是什么。

关于本专栏

【8090在职场】是SocialBeta新推出的栏目,会在每周二和周四为年轻读者提供提高工作效能的职场管理类文章。内容包括职场心理、任务管理和职场效率等,以期为大家提供一份内容全面和精辟独到的社会化职场指南。欢迎在微博私信@bigla 邮件件brianlai2010@gmail.com 给我们反馈与你的职场经验分享投稿。

过去文章一栏 

提高效率的七个小贴士

2012年11月29日星期四

转载::深入研究DataList分页方法


转载::深入研究DataList分页方法


此文章转至http://www.tobrush.com/archives/617301(隋心所欲)

从Asp.net 1.1开始,我们就开始使用DataGrid、DataList、Repeater控件,到了Asp.net 2.0又增加了GridView控件。GridView控件在DataGrid上做了优化和改进,功能很强大,但是自定义性不够强。Repeater自定义性非常高。而DataList则兼而有之,其他方面本文不谈。这里就说下怎么给DataList分页。
给DataList分页有两个办法:1、自己写 2、用第三方控件(如AspNetPager
使用第三方控件的方法我就不说了,这里主要说说如何自己实现分页方法。
我的DataList分页方法的核心原理是利用PagedDataSource对象,PagedDataSource类封装了DataGrid 控件的属性,这些属性使 DataGrid 可以执行分页,下面是PagedDataSource的公共属性:
AllowCustomPaging 获取或设置指示是否启用自定义分页的值。
AllowPaging 获取或设置指示是否启用分页的值。
Count 获取要从数据源使用的项数。
CurrentPageIndex 获取或设置当前页的索引。
DataSource 获取或设置数据源。
DataSourceCount 获取数据源中的项数。
FirstIndexInPage 获取页中的第一个索引。
IsCustomPagingEnabled 获取一个值,该值指示是否启用自定义分页。
IsFirstPage 获取一个值,该值指示当前页是否是首页。
IsLastPage 获取一个值,该值指示当前页是否是最后一页。
IsPagingEnabled 获取一个值,该值指示是否启用分页。
IsReadOnly 获取一个值,该值指示数据源是否是只读的。
IsSynchronized 获取一个值,该值指示是否同步对数据源的访问(线程安全)。
PageCount 获取显示数据源中的所有项所需要的总页数。
PageSize 获取或设置要在单页上显示的项数。
VirtualCount 获取或设置在使用自定义分页时数据源中的实际项数。
那么如何使用 PagedDataSource对象进行DataList分页呢?(网上有很多的讲DataList分页的文章,有一些是糊弄人的,有的还无法起作用,我被骗过一次,本文是我经过个人实践经验得到,可以顺利执行。希望对大家有所帮助。)
现在开始拉!
第一步,取出数据到datatable中,然后获得dataview,付给PagedDataSource对象
DataView objView = objTable.DefaultView;
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = objView;
第二步,PagedDataSource对象objPds的设置
objPds.AllowPaging = true;
objPds.PageSize = 4;
objPds.CurrentPageIndex = int.Parse(ViewState[“pageindex”].ToString());
上面的这两段代码都是写在BindData()函数中的,供每次点击分页按钮时调用。BindData()函数如下:
private void BindData()
{
string sql = “SELECT * From team”;
DataTable objTable = data.GetDataTable(sql);
if (objTable != null && objTable.Rows.Count > 0)
{
DataView objView = objTable.DefaultView;
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = objView;
objPds.AllowPaging = true;
objPds.PageSize = 4;
objPds.CurrentPageIndex = int.Parse(ViewState[”pageindex”].ToString());
if (!objPds.IsFirstPage)
{
lkPre.Visible = true;
}
else
{
lkPre.Visible = false;
}
if (!objPds.IsLastPage)
{
lkNext.Visible = true;
}
else
{
lkNext.Visible = false;
}
dlData.DataSource = objPds;
dlData.DataBind();
}
}
blockquote>
到此为止,我们已经将数据交给了PagedDataSource,剩下的分页将利用PagedDataSource 进行处理。可能大家注意到了,这个数据交付是完整的数据交付,如果数据量很大会造成一定的效率低下,不过这里暂时不考虑这个问题。有兴趣的朋友可以一起探讨一下。
上面的第三行代码中的 ViewState[“pageindex”] 是用来控制PagedDataSource的当前页的,我们在Page_Load事件中和第三步将要将的函数中来具体讲解如何利用 ViewState[“pageindex”]控制当前页。
BindData()函数中后面的部分是控制向前向后按钮的显隐的,不再多说。
第三步,分页控制
第二步中说过利用 ViewState[“pageindex”] 来控制当前页,为了在页面加载的时候就显示第一页,我们当然要在Page_load事件中将 ViewState[“pageindex”]置为0。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState[“pageindex”] = “0″;
BindData(); }
}
我们需要加两个按钮(Previous、Next)来点击进行分页控制。
<asp:DataList ID=”dlData” runat=”server” RepeatColumns=”4″ >
<ItemTemplate>
<asp:Label ID=”lblName” runat=”server” /><br />
<asp:Label ID=”lblTime” runat=”server” />
</ItemTemplate>
</asp:DataList>
<asp:linkbutton ID=”lkPre” OnCommand=”IndexChanging” CommandArgument=”pre” runat=”server” >PREVIOUS PAGE></asp:linkbutton>
<asp:linkbutton ID=”lkNext” OnCommand=”IndexChanging” CommandArgument=”next” runat=”server” >NEXT PAGE</asp:linkbutton>
两个按钮的 OnCommand都是IndexChanging()函数,我们通过CommandArgument(pre和next)来区分到底是向前翻还是向后翻。下面是IndexChanging()函数
protected void IndexChanging(object sender, EventArgs e)
{
string strCommand = ((LinkButton)sender).CommandArgument.ToString();
int pageindex = int.Parse(ViewState[“pageindex”].ToString());
if (strCommand == “pre”)
{
pageindex = pageindex - 1;
}
else
{
pageindex = pageindex + 1;
}
ViewState[“pageindex”] = pageindex;
BindData();
}
至此,我们的分页函数已经写完了。这里还有一些东西没有说,比如显示一共多少条记录,当前第几页,一共多少页以及每一页的页码。相信看懂了上面所说的后这些东西还是容易写出来的。
总结一下,我们在前台写好DataList等待数据,而数据是由PagedDataSource提供的,分页通过我们新加的两个ImageButton来控制ViewState进而达到控制PagedDataSource的CurrentPageIndex来实现的。所以,其实DataList也没干啥事,就是显示了每一页的数据而已。有一点需要说明,PagedDataSource的CurrentPageIndex是从0开始的,这也是为什么在Page_load事件中要讲ViewState置为0而不是1的缘故。
OK了~听着周杰伦的“阳光宅男”写完了这篇blog,希望对大家有所帮助 。

2012年11月26日星期一

我的.Net武器库 ------ 新.Net架构必备工具列表


我的.Net武器库 ------ 新.Net架构必备工具列表

113人收藏此文章, 我要收藏发表于6天前(2012-11-21 01:34) , 已有2764次阅读 ,共37个评论
工欲善其事,必先利其器。
N多年前微软官网曾发了.Net下必备的十种工具,N多年过去了,世异时移,很多东西都已经变化了,那个列表也似乎陈旧了。而且,该文也只是对十种工具独立的介绍,显得有些罗列的感觉,是不是每个工具都是同等重要,工具与工具之间是否有联系?等等,阐述得并不明确。
这里,我想从另一个角崖,重新归纳一个更新的更实际的武器库。更新,是因为有很多最近几年才出来的工具/框架库,更实际,是因为我自己的项目就完全依赖使用。

Visual Studio

这个似乎是不言而喻的,只是从严谨的角度,也列在这。实际上,现在也有一个开源的IDE开发环境发展也不错,叫SharpDevelop。我并没有仔细看,不敢妄评。而我因要用到之后会讲的Resharper,也迫使我只能用VS。

Resharper ---重构必备

无论是从其名称,还是实际功能,Resharper绝对称得上利器,一旦你用熟了你就再也离不开它了。我去年换工作,很大一部分原因就是因为原单位不让我使用Resharper。几个面试,我也总在重复提出我这一要求。直至最新版本6.1为止,Resharper已经是个多面手。早期,它还只是个重构的工具,如今它是反编译器(原来的Reflector.Net就用不上了),还是个代码审查工具(代码规范审查),还是代码生成器(Code Smith又用不上了),最后,它对键盘快捷键的组织使用,对无鼠标操作极其有益。一句话,Resharper能极大提高编码的效率,利器更是重器。

Fluent nHibernate --- 域驱动DDD必备

这件武器其实分为两部分,一个是Fluent,一个是nHibernate (这不是废话)。nHibernate知道了解的人很多,就是一个ORM工具,而加上Fluent之后就知之甚少了。从功能上,Fluent只是在原来ORM工具基础加上一层封装,以Fluent Interface形式提供了使用nHibernate的API。可是别小看这一层封装,从使用体验和效率提高方面,Fluent nHibernate有着卓越的功效。就我个人经历,就是在Fluent nHibernate之后,才真正使用,喜爱上nHibernate本身。让大多数人比较头疼的创建映射XML文化,被全部C#文件代替,甚至可以完全省略。可以说这两部分是一个完美的结合,后者提供强大的基础功能,前者提供完美的使用接口。这不是一个成功软件必须的两个要素吗?什么是ORM,不会吧,放狗搜搜就知道了。我只想强调的是,不要把它仅仅看作一个功能库,它更是个架构设计的利器。从架构的角度,它把业务域和数据层隔离,使得数据模型和业务域模型独立设计成为可能。这一点的影响是非常深远的。

nUnit + Machine Specification + Rhino Mock + AutoMocking --- 单元测试必备

啊呀,不得啦。上一武器,我一下子介绍俩,这一次白送四个。这也体现我写本文的指导思想,从开发使用的角度来叙述而不是从工具提供者来还分。这四个套件在一起实在是太完美了!nUnit又是一个众所周知的测试框架,它提供了测试的基础功能和概念。MSpec从BDD的角度,封装了一下nUnit,也可以说是重构了一下语法,使测试可具有可读性,提供良好的测试组织结构,进而可以测试完了,直接生成一个完美的测试结果文档。Rhino Mock也是一个熟客了,但是旧中有新,新的几个版本也加入了一些可圈可点的新性能,如所谓AAA语法(Arrange, Action, Assert 这与MSpec的 Establish, Because, It关键词完全契合)。而从我的角度,看到的亮点仍然是可读性的改进。最后,AutoMock的出现又让事情更加简单了,连创建Mock对象的语句都省掉,只要你把依赖类的接口,在被测试的类的构造器中声明传入,AutoMock就自动为你创建Mock对象就,如同它的名字所表达的一样自动Mock。当然,还有高级应用,暂不赘叙。

SQLite  --- 集成测试必备

什么,数据库也算?是的,不过这里SQLite不是我的产品数据库,而是用它的内存数据库做集成测试的工作,可以说是集成测试的利器。I\O读写历来是性能的瓶颈,而敏捷编程对测试的高度依赖,也是对测试性能的高度要求。即使是高度覆盖率的单元测试也仍然不够,我们依然希望能在持续构建(CI)中,每次能自动运行集成测试。而如果要有真正独立、干净的集成/用例测试,最好是每个测试用例完全重建数据库,重置测试数据,这样的要求,只有内存数据才能得到良好的性能。使用SQLite证的内存库后,不光集或服务器可以轻快的完成集成测试。开发人员本地,也把集成测试很快的运行完。这样,我们的敏捷流程中不仅包括单位测试必须通过,甚至也包括了集成测试。它的名字叫用户故事。
不过这个工具有个小小的问题,因为SQLite是基于C开发的,针对32位和64位系统,它分别发布了两套控件,所以你必须根据自己的平台,3引用不同的Dll文件。而且,VS项目编译设置还必须明确指明是x86还是x64,不能设为Any CPU。就为这个由题,我很是头疼了几天,最后才找到这个解决方安案。使用上,由于前面使用了Fluent nHibernate,除了配置,不用对代码做任何改动。如果要改改了,也就不是真正的集成测试了,不是吗?

Git  --- 源代码管理必备

如果你能一天就把代码写完,你就不需要源代码管理,你能吗?做为一个源代码管理的新秀, Git的发展是极其迅猛的。我看好它,是它优秀的底层设计,优秀的业务模型. 如果要了解什么是DDD,Git是一个非常好的典范。一般的源代码管理,都是基于单个文件的版本控制,而Git一开始设计就是基于每个提交(代码文件树)来追溯版本。你可能会不赞同我的说法,因为,很多代码控制仍然提供了项目级的分支或者版本,其实那只是一个假像。VSS,SVN,TFS的最底层,都先是文件版本控制,在这个基础之上,再提供项目版本的功能。而Gif却恰恰相反。这个很重要吗?是的,区别非常之大。引用DDD的思维,即然,从用户的角度,代码控制版本是基于文件树的,为什么你的业务模型却不是呢?所以,我把耙VSS,SVN等的这种实现方式,看作打补丁/修补方式,总有一天,补了摞补了,至于最后,再也不能修补了。还有一点Git是分布式代码管理库。

TeamCity  --- 持续构建必备

嘘(抹汗),总算到讲到最后一个,已经写得太长太多了,写者累,看者烦。从CI工具的鼻祖CCNet升级到TeamCity之后,感觉确实不一样,鸟枪换炮。为什么要CI,好像不是我这一篇短文可以讨论清楚的。
TC的好处,第一:是商业软件并且免费,一般这两点很难同时出现。当然有个限制,如果你只使一个编译代理服务的话,这个对我来说已经足够。第二:它对很多三方工具支持做得很好。如, nUnit, MSpec,Git等。最重要的是它是CI服务器!

好了,这就是目前我的兵器,已经足够了,让开发的流程顺畅,让你新的想法得以实现。敏捷在哪里,就在这些工具里。是否对你有用,欢迎点评,反馈。仍然还在看一些其它的工具,希望在真正使用获益之后,再为这个推荐列表添加更多成员。

2012年11月23日星期五

博士逃离科研教中学遭质疑 称没兴趣了厌恶科研


博士逃离科研教中学遭质疑 称没兴趣了厌恶科研

2012年11月23日03:00
来源:新京报
原标题 [博士逃离科研教中学遭质疑]
科学网转载程代展的长信《昨夜无眠》后,引发网友的热议。网络截屏
科学网转载程代展的长信《昨夜无眠》后,引发网友的热议。网络截屏
  新京报讯 “昨夜无眠,为了一个学生。”11月13日,中国科学院博士生导师程代展陷入困惑,他在清华的学生博士萧杨(化名)突然放弃留校继续做科研的机会,与北京一所重点中学签约做数学老师。程代展在博客上写下3000多字的长信,表达惋惜与困惑。
  “大材小用”、“太过现实的社会环境让人才流失”……这封信引起网友热议。
  18日,萧杨在一个社交网站上贴出一封长信回复老师,“我已经厌恶科研了。”
  导师
  他是我最有天赋的学生
  “他的选择让我很惊讶,我彻夜失眠也没想明白。他是我遇到过的最有天赋的学生。”昨日,程代展盯着办公桌上放着的他与萧杨合著的英文书籍,眉头紧皱。
  程代展称,萧杨曾在系统控制领域的国际顶级专业期刊(IEEE TAC)上,以第一作者的身份发表数篇长论文。“中国系统控制领域的博导没有几人在这本期刊上发过文章。”
  “想当然地认为他会从事高端的科研”,程代展说,矛盾出现在半年前,萧杨突然告诉他,毕业后想去银行或者到中学当教师,并已经考过会计师。当时,程代展以为这只是“年轻人一时头脑发热。”
  但11月初,萧杨突然告知导师,他已经被北京某中学录用,即将签约。
  网友
  钱学森之问PK自由选择
  “你这样做,中国,甚至世界可能会失去一个优秀的科学家。”那天晚上,程代展彻夜难眠,在博客上发表了一封公开信《今夜无眠》。
  随后,这封信被科学网转载,激起网友热议。
  “为什么我们的学校总是培养不出杰出的科研人才?”钱学森之问再次成为关注的焦点。不过,也有一部分公众认为萧杨有自由选择的权利,“中学老师的贡献不比高校科研人员低。”
  学生
  唯一原因就是没兴趣了
  对于导师的不理解和网友的议论,日前,萧杨也在网上贴出长信,称“其实很简单,唯一的原因就是没兴趣了。没兴趣还算个比较中性的词的话,我其实可以说我已经厌恶科研了。”“做科研太累,当我决定退出科研的时候,心里是久违的无比的轻松。”
  “我肯定不是科研界需要的人才,对科研没有兴趣的人不可能做出真正有意义的成果,我希望自己是教育界需要的人才。”萧杨表示,对去中学当老师充满期待,他很喜欢教会别人知识的那种成就感。
  对话
  导师
  博士教中学是人才分配的失衡
  新京报:为什么极力反对萧杨放弃科研?
  程代展:他是我从事科研30多年来见过最有天赋的学生,是科研界很少见的好苗子。他在清华读了四年本科,数学功底打得很扎实,头脑很灵活,他善于发现问题的实质,并提出解决方案,和他讨论数学是一种享受。他也非常勤奋。已经有三所国外的大学邀请他去读博士后,他的科研前途很光明,就这么放弃了,太可惜了。
  新京报:你问过萧杨对自己研究的领域感兴趣吗?
  程代展:这点我需要反思,我从没有问过。我一直认为有兴趣才能做得好,能在国际顶级杂志上发表文章是一件很让人高兴的事情。我完全没想到他对自己的研究成果不感兴趣,没有体会到成就感。这点到现在仍使我困惑。
  新京报:有人认为做中学老师的贡献并不比做科研的贡献低,你怎么看?
  程代展:我决不怀疑中学教师的重要性,我的数学兴趣也是被几位中学教师培养起来的。但是我坚持认为博士当中学教师是一种浪费,特别是像萧杨这样有天赋的理工科博士。他在博士阶段的积累几乎用不到中学教学中去,国家的投入、导师的心血、个人的努力,几乎白费。难道让他去和中学生讲微分流形、鞅不等式等知识?
  让博士们,特别是像萧杨这样优秀人才去教中学,是教育制度的失败,社会人才分配的失衡。
  博士
  我只是被教育成听话的好孩子
  前日,记者联系到尚在美国访问留学的萧杨,他表示,已将自己的全部观点写在信中。
  新京报:老师对你的选择很失望,你怎么认为?
  萧杨:我深知程老师对我寄予厚望,我说出来他肯定非常失望的,我甚至一直在想就这样坚持搞科研搞下去,但真正到了该抉择的时候,我还是选择了自私地按自己的意愿。
  退出科研界是因为很累,也没觉得自己是很有能力的人。(此前一直坚持科研)不是程老师强迫的,只是因为我从小被教育成“听话的好孩子”,只要别人给了我任务并且应该是我做的任务,不管我喜不喜欢,都会尽力去完成,不只是科研问题,甚至是帮实验室干杂活,都是完成的既快又好。这样的结果就是导致了程老师以为我喜欢做科研。
  新京报:家人对你的选择是否支持?
  萧杨:11月11日,我回姥姥家和家人开了个会。并不是他们劝我赶紧去挣钱,而是我想问问他们对我选择中学这样一个地位不高,挣钱也不多还挺累的职业有没有意见。最后大家一致认为,我真的厌恶科研的话,坚持干一辈子科研一定不会幸福的,而他们并不在意我的名利地位什么的,中学老师也挺好。
  新京报:不少人认为博士去当中学教师屈才了?
  萧杨:我觉得我有足够能力应对中学数学的知识。这与我觉得我完全没能力做有价值的科研工作形成了鲜明的对比。我也很喜欢教会别人知识的那种成就感。我做过家教,我觉得当几个小时的家教比搞几个小时的科研舒服多了。
  今年寒假我还帮一个微积分挂科的大一孩子补了两天课,当她告诉我她补考得了90多分的时候,那成就感啊,杠杠的。
  此外,做教师比较稳定,虽然收入不高。我也真的是没时间找其他工作,找工作的黄金时间因为我在美国访问留学错过了。
  声音
  我不了解详情,不评论具体的人和事。
  中国社会对智力的追求一直比较低,以前科研被认为是比较时髦的职业,大家认为科研能带来财富、地位、名誉,对科研很热衷,一旦他们发现实际情况并非如此,就纷纷离去。此外,中国社会还存在一种小富即安的可能性,缺少更高的追求。
  学生不想继续从事科研,那就让他走好了,真正喜欢科研的人会留下来做,没有什么好遗憾的。
  北京大学生命科学学院院长饶毅
  程代展是老一代的知识分子,他更重视为国家培养人才,强调贡献精神,萧杨是新一代青年人,更强调个人的价值和兴趣,这应该是时代的进步。每一个个体能够按照自己的意愿生活,而不是为了集体压抑自己的兴趣,每一个个体好了,社会才会更加和谐。而且萧杨表示对科研没有兴趣,程代展看到的是萧杨的天赋,但天赋不等同于兴趣,只有兴趣作为原始推动力才能在科研方面走得更远。北京大学生命科学学院教师郝雪梅
  既然想的那么清楚,不是盲目的,那就只有尊重他的选择了。放弃科研也许跟老师的教育方式有问题,逼得太紧或者压力太大。学生去当中学老师,是想换个环境放松自己,也许有一天,他还会发觉学术界的好,回到学术界。
  北京理工大学文学院教授,著名教育和文化学者 杨东平
  这位博士生如果去中学任教,也许他将来对社会的贡献要比发几篇SCI文章大得多得多!也许程老师的课题组损失了一个优秀的博士、一个未来优秀的研究员;但他将来也许会为国家培养出更多的优秀博士或研究员。网友 赵明
  我们现在处在一个全球学术界大浮躁大跃进的年代,这种浮躁的背后,其实是科研人员待遇的普遍低下。待遇低了,那么人就只好玩各种短平快的招数来改善自己的生存状态,无论是离开学术界去银行,还是留在学术界发大量垃圾论文拿奖金,都是如此。科学网网友 王晓明
  本版采写/新京报记者 萧辉 石明磊

2012年11月17日星期六

国内YunFile网盘注册赚钱教程-注意如何推广


国内YunFile网盘注册赚钱教程

作者:春曦围观人数:700人围观评论次数:3

http://www.wangz5.com/webImage/task/yunfile.jpg
起付金额:10
支付工具: 支付宝
项目点评:目前支持国内支持赚钱的网盘不多,才几家,其有信誉比较良好的有YunFile、千军万马网盘。YunFile为千脑的合作伙伴,在站长群体中有良好的信誉和口碑。注册提供50G空间,1000次下载最高可得50元,是国内最高的。而千军万马网盘1000次下载只有5元,但支持高速下载。
下载费率:

YunFile.com 1000次文件下载的费率

文件大小
费率
0-5 MB
5.00
5-50 MB
8.00
50-100 MB
12.00
100-200 MB
20.00
200-450 MB
30.00
450 MB
50.00
第一步:注册YunFile网盘


点击链接注册:www.yunfile.com ,简单注册就可以了。
第二步:选择资源


建议专攻某种类型的资源,这样可以关注、集中去推广。最简单的寻找资源方法:资源互补,假如专做视频电影这类的话,可以去搜索一些电影论坛,把资源(电影一般是种子,只有几十k)下载并上传至网盘,再分享至另一个电影论坛上。这样寻找资源也不必像大海捞针一样,只是将资源在几个论坛间互补。关注电影动态,有新电影放出马上寻找获取,特别是热门电影会让你赚得更爽。
第三步:上传资源 FTP上传、远程上传专题


国外网赚网盘通常有三种上传方式:网页上传、FTP上传、远程上传。
第四步:发布资源 整理可以做网盘的国内外论坛


把上传至网盘得到的文件下载链接发布到网络上。如百度空间、QQ空间等。有能力有时间有条件 也可以专门做一个资源分享的博客网站,当然得懂得去推广。对于新手而言,先体验一下,不用太急,到人气高流量大的论坛去发布资源,论坛其实是最佳选择。
第五步:收款


到达20元人民币可在帐户管理页面申请提现. 每周一支付上一周的提现申请.目前支持支付宝发放.
赚钱建议:
   由于此网盘与传统的网盘不同,为了更好的获得赚钱效果, 特提以下建议:
   1) 建议上传较大(50MB以上)和更高价值需求的文件。
   2) 上传更多的文件和让更多的人来访问下载。
   如果我们希望网盘能够健康的成长,做的一个很重要的事情就是每天上传文件和发贴子,不要小看这两件事情,能坚持下来的网友比较少,其实大家刚开始做网盘的时候都是想着要把它给做好,但缺乏的是每天坚持上传文件和发贴子的动力,不行动,就不会有收益。劳者多得是做网盘的准则。
»转载文章请注明,转载自:网赚屋 [http://www.wangz5.com]

分享国内三大可以赚钱的网络硬盘


分享国内三大可以赚钱的网络硬盘

2012-11-02 08:08 作者:  来源: 本站 9条评论 字号:   
摘要: 网络硬盘可以赚钱?相信这个早已不是新闻了。如何利用网络硬盘赚钱?简单来说就是将资源文件上传至可以网赚的网盘,网盘自动生成下载链接提供给大家下载,通过下载次数来获得收益。现在国内外的赚钱网盘有很多,做的比较出名的有千军万马、城通网盘和YunFile,今天就由免...
网络硬盘可以赚钱?相信这个早已不是新闻了。如何利用网络硬盘赚钱?简单来说就是将资源文件上传至可以网赚的网盘,网盘自动生成下载链接提供给大家下载,通过下载次数来获得收益。现在国内外的赚钱网盘有很多,做的比较出名的有千军万马、城通网盘和YunFile,今天就由免费天空网为大家简单的概括这三款可以赚钱的网络硬盘

1、千军万马   www.qjwm.com
千军万马提供无限存储空间,单个文件限制100M,并且永久保存上传的文件,支持拥有个人下载专页(你的用户名.qjwm.com)。每千次下载根据活跃度分成16-40元不等,另外推广注册可获得下线20%的收入提成。金额满10元即可结算。

2、YunFile   www.yunfile.com
Yunfile免费提供50G的存储空间,永久的保存上传的文件。上传的单个文件最大支持2G,佣金标准由文件大小、会员星级计算,每万次下载佣金由70-1500元不等,可获得下线用户20-30%的收入提成。金额满20元即可结算。

3、城通网盘   www.ctdisk.com
城通网盘免费提供400G的存储空间,免费会员永久保存10M的文件,其他文件保质期90天,允许手动续期(15天),另外文件支持FTP上传及下载、支持开通关闭下载收益(关闭下载收益后,用户下载将不会产生费用,下载页面干净无广告),每万次下载300元。金额满20元即可结算。

点评:先说说Yunfile,Yunfile在这三个网盘里面应该属于广告最少的了,但是下载速度没有千军万马、城通网盘这两家好(这个是我自己测试的,不知道大家是不是也是这样),不过界面很简单,有点偏欧美风的网站风格,深受一些粉丝喜爱。再来说说城通网盘,城通现在已经开始慢慢转型偏重于绿色无广告供付费会员下载模式,现在也没有重点打出网盘赚钱的推广了,但是目前还没有放弃网盘赚钱这一业务,相信今后提供的服务肯定是多元化供大家选择。最后说说千军万马,千军万马的弹窗广告是在是让我有点无语了,但是通过我的几次下载发现下载速度还可以,另外它的优势在于上传空间无限并且永久保存文件,但是缺点在于目前上传文件限制在100M以内而且下载广告是在太多,如果今后能够改善一下相信是个非常不错的赚钱网盘。