摘要: 自从苹果的IPHONE及IPAD成为时尚潮人的专属装备后,苹果即一发而不可收,国内企业却总是盯着人家屁股,跟着人家学,拣点残羹剩饭。真的不能在创新上做点文章击败苹果吗?最近,老婆的哥哥(小舅子)从美国捎了台IPAD3, 老婆自然兴奋了一把,但使用起来感觉比较失望,最闹心的一点就是复制粘贴太麻烦了。(没有鼠标没法活呀),解决这一点应该不难,成本最低的方式就是像PSP那样在设备上再增加若干按钮,负责剪贴、粘贴等操作(还可以做其他的,比如游戏控制类)。只要解决了复制粘贴的问题,手持设备在文本处理的能力上应该就会后显著的提升。到那时在辅助些更有操作感的游戏等,击败苹果并不是不可能的事情。 阅读全文
posted @ 2012-05-19 22:04 窗户纸 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 当今社会的程序员聚在一起争论的,往往是哪种开发语言好,于是乎JAVA、C++、c#等等程序员之间必定要掐的一塌糊涂,都觉得自己的好别人的差,(现在貌似C#4.0也开始鄙视C#2.0了,不知何时是个头). 但站在软件开发角度讲,所有程序开发出来的应用都不可避免的面临着后期优化的问题,只要优化得当,各种语言其实都可以达到很理想的执行效率的。 在 《软件分层开发架构的另一种思考》博文中,我们已经探索了优化的原因及细节。而所用的手段,诸如多线程、异步处理、并发处理、数据缓存应用是各种语言都可以实现的(除了悲催的Javascript),我在此仅以C#做个例子,其实这些方法是放之四海皆可的。 如果一个.. 阅读全文
posted @ 2012-04-27 22:58 窗户纸 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 在软件开发中,从事架构设计的人员往往都很推崇三层或多层架构,使数据库、业务和界面分离开发,而对于底层的开发人员来说,又多对此有很多抱怨,一方面是因为其所处角度及阅历不同,另一方面的原因也是真多了多层开发体系的一些弱点而言。就两方的矛盾而言,其实也可以考虑这换个思路来利用三层架构。 首先,三层架构使界面层和业务层的编程人员不用考虑数据库的设置问题,而按照相应的需求自行开发,提高了多方协同工作的效率,从整体上加快了编程速度。 但任何并行化带来的实际是总体工作量的增加,而不是减少,包括接口设计、架构设计,代码组织等,但为什么会提高进度呢,根本原因是更大限度的提高了每个人的开发效率。 三层开发的另一个 阅读全文
posted @ 2012-04-12 14:15 窗户纸 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 在.net framework4.0以后,出现了并行编程的概念,使用 Parallel.For(0, N, i =>{ ... },很容易就可以实现我们自定义的并行化循环操作,在并行循环体中,还可以操作外部的变量,这个特性是很多其他语言所没有的,当然其他语言,诸如JAVA之类,完全可以采用我们在第二篇所介绍的方法自己生成并行化操作。 由于.net framework使用环境的局限性,以及“庞大的身躯”,和安装时必须向微软“报到”的限制。很多开发商并不喜欢用,完全可以采用我所介绍的方式实现并行化,与微软的并行化的区别只是他的循环体是使用了lamda表达式,而我的方式是使用委托而已。再发散一 阅读全文
posted @ 2012-04-11 13:05 窗户纸 阅读(892) 评论(0) 推荐(0) 编辑
摘要: 【引】在上一篇有关并行化的《有关对耗时很大循环进行并行化优化的探讨 之一:并发搜索的处理》博文中,我们看到,不使用并行语言,而使用基本的编程语言配合多线程可以进行并行化处理,本文进一步将并行化操作进行一个简单封装,并开始完成一个并行化的数据操作,以供大家参考。【多重循环的操作】有很多方法可以实现并行查询,必须并行化Linq就是很不错的途径,相比linq to entity,真正实现了性能的有效提升,但如果考虑在循环中进行复杂的业务处理,进行独立的并行化编程会更有效的帮助我们实现系统的优化。下面我们以一个简单的操作为例,看看如何自己做一个并行化的程序: 在如下的例程中,我们自定义了一个继承于d. 阅读全文
posted @ 2012-04-02 21:05 窗户纸 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 在对程序优化过程中,我们往往对循环体有着刻骨的仇恨,因为它对性能的损耗尤其之大,比如如下例程,是个简单的循环例程,全部执行需要30秒以上(痛苦): public enum HandleRst { 完成, 错误_手术刀忘肚子里了, 失败_药物过敏, 失败_家属不签字, } public class Obj_Fath { private int _SonLen; public int SonLen { get { return _SonLen; } set { _SonLen = value; } } public Obj_Fath(string myt) { _T = myt; _SonOb.. 阅读全文
posted @ 2012-03-09 13:57 窗户纸 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 使用微软 SQL SERVER MANAGEMENT Studio的人都经常发现,他打开表显示数据的速度很快,而且,如果有数万条记录不能立即显示时,数据表格会自动的加载数据,而不影响整个界面的操作,那么这个效果是如何完成的呢? 肯定的一点是,他用到了多线程,数据的提取线程和界面操作不在一个线程中,这样就可以做到数据随提取,随时送到界面的表格控件中。 实现的方式就不废话了,给个代码,大家自然很容易就看懂了public partial class Form2 : Form { private DDD _D; public Form2() { InitializeComponent(); _D =. 阅读全文
posted @ 2012-02-26 21:39 窗户纸 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 为什么要对字段封装属性? 每次有新人来,都要问这个问题,我直接对字段操作多省事呀,就像这样 public class A { publicstring _Name; } public Class B { private A _MyA; public void DoB(string n) { _MyA._Name=n; } } 很多砖家会毫不犹豫的说,你这样“封装不好”,于是新人眨着两只无神而又水汪汪的大眼睛,分明是在说:“这不脱了裤子放X吗”,心里一肚子不服气。 但从编程角度说,封装为属性除了从外面看起来“顺眼”些,还有啥实际作用呢? 牛人会巴拉巴拉讲出一大套,我就说一点简单而实用的,那就.. 阅读全文
posted @ 2011-12-09 19:05 窗户纸 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 【引】 流程引擎是诸多业务系统的基础,也是SAAS型云计算体系的基础,目前的流程体系有很多问题,需要建立一个新的理论体系解决它,我无意中找出了这其中的部分端倪,就抛砖引玉的为大家讲讲这些事情,希望有耐心的看客能够有所启发。目前绝大部分工作流软件都采用了Petrinet作为核心架构机制,而Petrinet很重要的流转环节-“令牌”的生成机制却大有问题。在Petrinet中,每一次变迁的实施时,都会取走原有的令牌,而产生新的令牌,即使对于高级Petri网(多维染色Petrinet), 试图用在一个流程实例中保有多个令牌的系统,其基础流转仍是令牌的传递而已,具体到系统实现,大多是采用子流程处理。这种 阅读全文
posted @ 2011-10-05 16:46 窗户纸 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 自打前年买了个D60后,一直也没有太怎么用,随着儿子越长越大,老婆就越发抗议我要不就不给儿子照相,要不就照的太难看的问题,于是绞尽脑汁终于总结出一些小窍门:1. 儿童摄影最好是使用长焦镜头在远一些的位置照,有如下几个好处: - 孩子及旁边的大人都比较自然 - 长焦镜头的景深小,可以产生虚背景的效果 但由于长焦镜头手持不太稳定,同时其曝光量也要大一些,因此很容易虚,最好先苦练手持功夫,我就是照了半年双手分开式产生了大量虚照片,被老婆臭骂后才发现,要一手贴在身上握住相机才会更稳(我说了这个感悟后又挨了老婆一顿猛批,)。2. 很多时候光线条件并不好,侧逆光,逆光现象很多,这时把相机跳到光圈优先,然后 阅读全文
posted @ 2011-04-16 14:35 窗户纸 阅读(90) 评论(0) 推荐(0) 编辑