代码改变世界

随笔档案-2010年03月

最容易令初学者混乱的F#命令

2010-03-31 12:39 by Jeffrey Zhao, 6477 阅读, 收藏, 编辑
摘要: 话说,其实我也是F#的初学者,至少相对于C#等语言来说一定是这样的。而对于初学者,或是C#和F#混用的程序员来说,我认为最F#中最容易令人混乱的命令是Reference Cells的取值操作了。下面便详细谈谈这么说的原因,及建议的应对方法。 阅读全文

如何成为一名优秀的博主(PPT)

2010-03-29 22:27 by Jeffrey Zhao, 9630 阅读, 收藏, 编辑
摘要: 如何成为一名优秀的博主?这是一个问题。我一直到处建议别人写博客,写技术博客,但是还真没想过或总结过这个问题。上个星期微软“社区经营计划”讲解了微软内部关于撰写优秀博客的一些方法和注意事项——同时微软的朋友也希望我分享一下我的经验,于是我制作了这份PPT。后来发现,我写的内容和微软的内部资料倒有相当部分不谋而合的地方,自然微软的资料更为美观,图示丰富,而我的内容则相对更有山寨的感觉。 阅读全文

盛大创新院赞助.NET技术会议意见征询

2010-03-26 15:54 by Jeffrey Zhao, 10020 阅读, 收藏, 编辑
摘要: 各位可能大都知道,我于不久前加入了盛大创新院。最近我了解到,创新院这边对于社区开展技术会议的活动也是相当支持的,并且对每个社区的会议会有资金和人员上的支持。这几天我和副院长聊了一下,他表示只要组织得当,创新院也支持把技术交流会办成一个有规律的活动,定期举行。事实上,创新院已经赞助过多次Flash及产品设计方面的技术会议。当然,会议的目的是进行技术交流,对观众自然是完全免费的。因此,我打算在5月或6月份在上海举办一次.NET技术会议,在此征求一下您的意见。 阅读全文

新博客评论使用方式介绍

2010-03-24 14:09 by Jeffrey Zhao, 5103 阅读, 收藏, 编辑
摘要: 新博客终于上线了,与旧博客不同的是,我在评论方面花了许多精力,希望可以提供一个优秀的评论方法。我对优秀的定义是“格式丰富,使用简单”,再加上由于是技术博客,因此对于代码片段也要有较好的支持。最终,我选择使用Markdown作为评论的输入标记。Markdown是一个轻量的标记规则,但对于评论应用来说也已经足够丰富了。Markdown的运用非常广泛,例如著名的编程网站Stack Overflow也使用了这种标记语言。事实上,我这篇评论使用方式的介绍也有相当部分是翻译自Stack Overflow编辑器的帮助,自然还有部分自定义的内容(主要是对于代码片段的支持)。 阅读全文

F#中的异步及并行模式(3 - 下):代理的进一步使用

2010-03-21 18:19 by Jeffrey Zhao, 6165 阅读, 收藏, 编辑
摘要: 之前的文章中我们了解了F#中并行及交互式程序的编程方式。在本系列的第3部分中,我们会来探索F#中轻量级的,交互式的代理,以及与代理有关的一些模式,包括隔离的内部状态。(译注:由于原文内容较多,译文拆成两段进行。在上半段文章中讨论了代理的基本使用方式,而下半段则讨论关于代理使用中更进一步的模式。) 阅读全文

F#中的异步及并行模式(3 - 上):代理的基本使用

2010-03-15 01:35 by Jeffrey Zhao, 7154 阅读, 收藏, 编辑
摘要: 之前的文章中我们了解了F#中并行及交互式程序的编程方式。在本系列的第3部分中,我们会来探索F#中轻量级的,交互式的代理,以及与代理有关的一些模式,包括“隔离的内部状态”。(译注:由于原文较长,因此译文分为两段,目前是第一段,讲解了F#中异步代理的基本使用方式。) 阅读全文

一种以ID特征为依据的数据分片(Sharding)策略

2010-03-09 21:51 by Jeffrey Zhao, 19411 阅读, 收藏, 编辑
摘要: 假如您有一个应用程序,随着业务越来越有起色,系统所牵涉到的数据量也就越来越大,此时您要涉及到对系统进行伸缩(Scale)的问题了。系统的扩展方式往往分为“向上伸缩”和“向外伸缩”两种,而从“硬件成本”或是“系统极限”的角度来说,“向外伸缩”一般都会优于“向上伸缩”,因此大部分上规模的系统都会在一定程度上考虑“向外”的方式。由于许多系统的瓶颈都处在数据存储上,因此一种叫做“数据分片(Database Sharding)”的数据架构方式应运而生,本文便会讨论这种数据架构方式的一种比较典型的实现方式。 阅读全文

F#中的异步及并行模式(2):反馈进度的事件(包含Twitter示例)

2010-03-08 00:33 by Jeffrey Zhao, 7382 阅读, 收藏, 编辑
摘要: 上一篇文章中谈到,“异步CPU并行”与“异步I/O并行”两个模式的限制之一便是无法通知组合操作的进度或结果。在这篇文章中,我们讲关注一个常见的异步模式:反馈进度的事件(Reporting Progress with Events),这是一种用于强大而优雅的做法,用于在某个边界之后对并行的执行过程加以封装,并同时汇报执行的结果或是进度。在文章最后,我们会使用这个设计模式开发一个示例,从Twitter中获取一系列记录。 阅读全文

谈谈微软技术,以及对待技术应有的态度

2010-03-04 23:20 by Jeffrey Zhao, 20969 阅读, 收藏, 编辑
摘要: 昨晚在家上网,一边对那些有趣而奇妙的微软技术感叹不已,同时却又产生出一种忿忿之情。为什么?因为在国内的技术圈子里,经常有一种在我看来莫名奇妙的鄙视微软技术的风气。这样的风气在国内的推特圈里也非常明显,基本上只有我一个人对微软的技术抱有好感并“勇于”和大量意见向左的人争辩。忿忿之余,我便在推特上不断表达我对这种风气的抱怨及否定,在这个过程中也基本表达了我在这方面的大部分看法,在这里也进行一番总结总结吧。同时,我也想对微软社区的许多弟兄讲一些话。 阅读全文

F#中的异步及并行模式(1):并行CPU及I/O计算

2010-03-03 23:37 by Jeffrey Zhao, 9088 阅读, 收藏, 编辑
摘要: F#是一门并行(parallel)及响应式(reactive)语言。这个说法意味着一个F#程序可以存在多个进行中的运算(如使用.NET线程进行F#计算),或是多个等待中的回应(如等待事件或消息的回调函数及代理对象)。 F#的异步表达式是简化异步及响应式程序编写的方式之一。在这篇及今后的文章中,我会探讨一些使用F#进行异步编程的基本方式──大致说来,它们都是F#异步编程时使用的模式。我们从两个简单的设计模式开始:CPU异步并行(Parallel CPU Asyncs)和I/O异步并行(Paralle I/O Asyncs)。 阅读全文