01 2011 档案

摘要:吃饭的时候同事出了道趣味题助兴:[代码]第一反应就是1/4啊,另外一个是儿子应该是独立事件么。然而答案居然是13/27,一个非常奇怪的数字。原来这个概率跟星期几出生也有关系。这个问题可以通过穷举法解释,请看这里。英文版看这里。老外超级认真额,图示版其实我们用归纳法就比较容易理清思路了。首先等价转换一下题目,‘把周二出生’,改成有一个男孩生在二号箱子(总共七个箱子,不要管人道不人道了)。如果箱子只有一个,答案应该是1/3,因为只有三种情况,(男男,男女,女男)。如果有两个箱子的话,第一个男第二个女共有2种情况,1[男女][]和2[男][女]。所以第二个男第一个女也有2中。两个都是男生有三种1[男 阅读全文
posted @ 2011-01-31 23:22 dragonpig 阅读(4749) 评论(80) 推荐(4) 编辑
摘要:更新:感谢Dacey 韦恩卑鄙 dudu老大等人的建议我已添加了扩展方法版本。喜欢扩展方法这种空降兵的感觉 :)数据绑定似乎是ASP.NET老掉牙的东西了。可是你知道吗,只需要一点小小的改动就可以替换Eval,摆脱字符串依赖并且大大提高性能。首先在code behind中加入以下方法[代码]这段代码就是最核心的秘诀了,你完全可以忽视它到底在做什么。其实就是截获每一个被绑定的数据项,并进行强类型转换... 阅读全文
posted @ 2011-01-29 22:50 dragonpig 阅读(9867) 评论(31) 推荐(40) 编辑
摘要:各位不明真相的围观群众大家好,我承认自己有些标题党了,其实真正的题目应该是‘使用.NET4的dynamic类型与json数据相互映射’ :) (可是这个名字未免也太撮了点).NET4之前,数据的序列化都是基于某个具体类型,比如先要定义一个C# class,然后attribute,serializer... javascript则是动态语言,可以动态变化自己的属性(所谓的expando对象)。我们创建一个js对象var obj={}之后可以不断增加新属性,如obj.color='red'。正是由于类型是个弱化的概念,所以js常被称为object-based(基于对象)而非object-orien 阅读全文
posted @ 2011-01-29 03:23 dragonpig 阅读(2410) 评论(7) 推荐(8) 编辑
摘要:很多游戏都用雷达图来表示角色的能力值,比如主角的体智敏贤。接下来介绍一下我做的Silverlight雷达图还包含了动画功能。虽然很简单,但不失为一次很好的Silverlight开发体验。示例:首先创建一个叫Star的UserControl,作为独立可重用的组件。不需要改动前端的XAML Code,所有的绘画动作都有后台代码完成。假设现在是一个五星图,绘制五个端点的逻辑其实就是从正上方的点开始,每隔360/5放置下个点。Silverlight有一个多边形的类Polygon可以很好的完成任务。可是这里选用更加通用的Path类主要是为动画效果,由于Polygon的端点无法绑定到Storyboard, 阅读全文
posted @ 2011-01-28 02:16 dragonpig 阅读(4805) 评论(7) 推荐(5) 编辑
摘要:当年Java批判C++过于臃肿和迷宫般的语法特性,摒弃了一大堆东西包括运算符重载。ThinkingInJava一书中好像有对此事的评价,从负面讲,运算符重载的滥用容易导致语义的混乱,例如apple+person就很难推测出其背后的意图。但是没有它,像复数类Complex的四则运算就显得十分繁琐。运算符重载到底是不是鸡肋呢?个人觉得运算符重载还是有很多用武之地的,尤其适用于和数值相关的场景。下面介绍一个我遇到的案例。现在定义了一批0到1的数值:代码Discount(折扣)显然是0到1之间的某个值否则抛出异常。现在比较一下使用运算符重载之后的效果。代码这里用到了隐式类型转换也是运算符重载的一种。显 阅读全文
posted @ 2011-01-17 14:52 dragonpig 阅读(1958) 评论(7) 推荐(0) 编辑
摘要:随机排列是个很常用的算法,比如洗牌。算法思想很简单,比如有一副整理好的牌,每次随机抽取一张最后就组成一副随机的牌了,并且可以证明所有可能性的排列是等概率的。但是该算法的空间复杂度是O(n),如果每次抽牌都插入到头部,则最坏情况下的时间复杂度是O(n*n)。参考Introduction to Algorithm 5.3的算法,其实对第二种方法稍作改进就可以达到O(n)。算法如下:保持头部的以抽取队列,以及尾部的为抽取队列,一开始头为空,尾为满。从尾部随机抽牌,与尾部第一张交换,头部加一,尾部减一直到尾部为空以下是javascript代码[代码] 阅读全文
posted @ 2011-01-16 00:00 dragonpig 阅读(951) 评论(0) 推荐(0) 编辑
摘要:抽空做了个windows phone7的扫雷。由于时间有限只做了最基本的功能。个人觉得没有必要实现插旗突破,因为盲扫更有助于提高对雷型的感觉。准备在下一个版本中加入排行榜(可能支持在线)以及录制回放的功能。第一版是v0.1,下一版将开放源代码。希望大家能够喜欢。下载如何wp7越狱请参考这里 阅读全文
posted @ 2011-01-14 13:00 dragonpig 阅读(274) 评论(1) 推荐(0) 编辑
摘要:新浪微博的API很大程度上借鉴了Twitter,所以非常容易上手。不过现在有很多访问次数的限制,比如每小时只能发博30条。新浪仍然支持Twitter已经不再采用的Basic Auth。为了安全性当然应该使用OAuth,但作为示例代码Basic Auth相对容易编程。其实就是带验证的POST请求罢了。非常简单。 阅读全文
posted @ 2011-01-06 20:59 dragonpig 阅读(1311) 评论(1) 推荐(0) 编辑
摘要:在ASP.NET中,page其实就是一个HttpHandler,它处理请求,然后返回一大堆Html。那么是不是可以实例化一个Page类然后获得其处理的结果呢?一个简单的推理就能说明这是不行的。因为如果我们实例化Page,这样new Page(),这是一个标准的.net代码,编译器无法知道相关的Page.aspx的内容。所以需要PagePaser帮忙,并且PagePaser也是ASP.NET内部编译过程的关键步骤。下面看看使用方法:[代码]其中关键的步骤PageParser.GetCompiledPageInstance实例化了一个HttpHandler,并返回所有的Html。 阅读全文
posted @ 2011-01-06 13:05 dragonpig 阅读(498) 评论(0) 推荐(2) 编辑
摘要:这篇文章记录了用VS创建Windows Service详细步骤。Summary as follow:1. Add Windows Service2. Click Service3. Add Installer4. Setup StartType or ServiceName in ServiceInstaller5. Setup Account in ServiceProcessInstaller6. Create Visual Studio Installer project7. right-click Setup - Add - Project Output8. Select Serv 阅读全文
posted @ 2011-01-05 12:40 dragonpig 阅读(358) 评论(0) 推荐(0) 编辑
摘要:这篇文章很好的介绍了Isolated Storage。取其精华作为以后参考。Isolated Storage的结构示例代码如下: 阅读全文
posted @ 2011-01-03 21:24 dragonpig 阅读(407) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示