找到相关内容 303
随机化算法(5) — 蒙特卡罗(Monte Carlo)算法
已出连载: 1.《随机化算法(1) — 随机数》 2.《随机化算法(2) — 数值概率算法》 3.《随机化算法(3) — 舍伍德(Sherwood)算法》 4.《随机化算法(4) — 拉斯维加斯(Las Vegas)算法》   正文: 蒙特卡罗法(Monte Carlo method)是以概率和统计的理论、方法为基础的一种计算方法,将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解,故又称统计模拟法或统计试验法。 蒙特卡罗算法在一般情况下可以保证对问题的所有实例都以高概率给出正确解,但是通常无法判定一个具体解是否正确。 设p是一个实数,且1/2 <p <1。如果一个蒙特卡罗算法对于问题的任一实例得到正确解的概率不小于p,则称该蒙特卡罗算法是p正确的,且称p ̵
http://www.cyqdata.com/cnblogs/article-detail-356 
立体涂鸦的草图渲染
立体涂鸦(3D Street Painting, 3D Chalk Art, 3D Graffiti...)是一种很有意思的东西。前些年在网上经常能看到国外玩家的作品,比如这里;最近也有些国内的作品出现,比如这里。这玩意的原理其实很简单,比如前几天就有牛人写了一篇教程。我以前也尝试弄过,不过我对3d max不是很熟,也没有数码相机,没有他搞得那么专业,就是先渲染一张图,然后用light的projector map打在一个平面上,看起来效果也还不错。 当然,如果不借助于3d max这样的软件,自己写个程序直接渲染出立体涂鸦的草图也并不是件难事。比如有一个模型o,放在一张纸p上,摄像机的位置为c,那么需要做的仅仅就是将模型o中的任意顶点v按照cv的方向投影到p上。也可以把摄像机看成是一个光源,那么这里需要得到的就是o投影到p上的阴影。为了做到这一点,大概可以有以下一些方法: 光线跟踪。如果手头
http://www.cyqdata.com/cnblogs/article-detail-354 
Step by Step-构建自己的ORM系列-配置管理层
一、开篇         距离上篇《Step by Step-构建自己的ORM系列-数据访问层》的时间间隔的太久了,很对不住大家啊,主要是因为在写《设计模式-系列索引系列》必须提前先写完,才能 继续这个系列,当然我也在写这几个系列的过程中,对ORM这个系列中的原来的实现的想法有了新的认识和改进,当然这些都不是说是很先进的思想或者认识,也可能是大家见过 的思路吧,希望后面我能在写设计模式系列的过程中,穿插讲解ORM系列,当然我的这个构建的系列,也只能说是很简易的,自己平时开发个小应用工具或者什么的,可能用他, 因为是自己开发的嘛,毕竟使用起来还是比较顺手的!符合自己的操作习惯嘛。         当然我写这个系列的过程中,也会有自己认识偏激的地方,或者
http://www.cyqdata.com/cnblogs/article-detail-353 
Windows Phone 7 优秀开源项目概览
    在介绍正题之前,先向大家推荐一个非常好的网站,它的维护者是微软前Silverlight程序经理。此网站提供了关于Windows Phone 7的大量开发资源,包括很多框架,控件,开源项目和Metro风格的图标以及其他珍贵内容,可以说是保罗万象,强烈推荐!下面是网站的截图,点击可进入:     现在进入正题,我在CodePlex网站中精心挑选了一些与Windows Phone 7相关的开源项目,这些项目对我们开发人员来说是宝贵的资料,从中可以学习很多知识。我选择的这些项目都是Stable版的,可以直接用在项目当中,列表如下: Open Data Protocol:此框架现在已经支持Windows Phone 7,更多的信息可以参见http://www.odata.org。 Microsoft Silverlight
http://www.cyqdata.com/cnblogs/article-detail-352 
找工作那些事儿——秋招亲身经历总结
在过去的几个月里,我经历了大学中最累人也是最有充实的一段日子,那就是——找工作。在此谈谈这波秋招的亲身经历,希望给正在努力找或者过两年才踏入职场的同学一些借鉴,当然也希望帮助已经工作的人回想他们当年的找工作史,找到些共鸣。   其实说起找工作,之前暑假就有找实习了。那段时候初出茅庐,有点不自信,面试也会紧张,反正最终一些大公司都华丽丽地鄙视我,有ebay、微软、淘宝等等。但我总每次笔面试完总结下缺了哪些知识点,再及时补补,这点我觉得还是很重要的。另外就是良好的心理暗示,希望自己这次比上次进步一些,比如这次笔试通过了,下次争取电面通过,再后面争取一面通过、二面通过等等。总之找实习那段日子,我体会到找工作不易,渴望自己能力被公司肯定。最后也算“幸运”,去了离家好近的华安基金公司信息技术部。之所以打引号,是因为当时觉得不错,后来才发现有点贱卖自己了
http://www.cyqdata.com/cnblogs/article-detail-351 
MultiRow发现之旅(二)- 详解属性管理器
上一篇提到MultiRow模板设计器中有一个“属性管理器”,这里就聊一聊这个属性管理器。在MultiRow模板设计器中一个非常给力的窗口是“属性管理器”。如果你用过Form设计器,你一定遇到过这样一种场景:我只需要查看/修改某个Control的某个属性,却不得不在一大堆Control中找到并选择这个Control,然后打开“属性”窗口,再在一大堆属性中找到我关心的属性,最后才是查看/修改这个属性值,是不是很麻烦 %>_<% 呢? 现在请点击工具栏上的第二个按钮,“属性管理器”也是一个标准的工具窗口,你可以和“输出”窗口、“错误列表”窗口等一起把它停靠在VisualStudio的下面: 顾名思义,“属性管理器”管
http://www.cyqdata.com/cnblogs/article-detail-350 
走向ASP.NET架构设计-第七章-阶段总结—实践篇—中篇
走向ASP.NET架构设计-第七章-阶段总结—实践篇—中篇   前言:本篇接着上篇来。   本篇的议题如下: 示例说明(上篇) Domain Model(上篇) Repository(上篇) 服务层(中篇)          数据契约          服务契约          服务实现          宿主程序 代理层(下篇) 客户层(下篇)      系列文章链接    &nb
http://www.cyqdata.com/cnblogs/article-detail-349 
OnLoad与Page_Load的差异分析
记得最开始学习ASP.NET的时候,我们就被告知:Page_Load方法里面可以写页面加载的代码。 于是我们就懵懵懂懂写了很长时间的Page_Load方法。最近回过头思考,为什么一个普通的方法, 能被自动调用呢?于是就得知了AutoEventWireup属性。 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %> 一般我们新建页面的时候,AutoEventWireup就为true。MSDN的解释是:指示控件的事件是否自动匹配 (Autowire)。 如果启用事件自动匹配,则为 true;否则为 false。默认值为 true。 那么我们先得到一个结论是:AutoEventWireup为true时,Page_Load、Page_Init之类的方法
http://www.cyqdata.com/cnblogs/article-detail-294 
OEA中AutoUI重构-新的Command生成设计
    OEA框架的核心之一是AutoUI,其职责是面向领域模型及UI元模型进行生成统一的界面。     在本次的迭代开发中,需要对命令按钮的生成方式进行一些定制。由于原来并没有为这样的需求留有特别的扩展点,加之原来的生成代码是过程式的代码、且也变得比较冗长,所以我们决定对这一部分的代码进行重构。 原来的模式     历史代码中,为某一实体类生成命令按钮的流程是这样的: 找到实体类可用的所有命令按钮元数据。 对它们进行过滤,依靠权限、版本的客户化元信息等。 构造几个生成控件的List容器,分别是:itemsInToolbar,itemsInContextMenu,itemsInGroup。 遍历所有的命令按钮,根据其对应的元数据,分别生成相应的控件(按钮、菜单等),然后添加到容器中。其中,还有
http://www.cyqdata.com/cnblogs/article-detail-293 
一个Quicksort究竟可以写到多么短
一个Quicksort究竟可以写到多么短 说实话,我从来没有能一次写对一个快速排序,总是有各种各样的错误。 快排麻烦就麻烦在,没办法去调试它,因为它是生成递归的,只能去静态调试,或者是不断的打印数组的状态以推测错误的可能性。 然而快排的基本思想却是极其简单的:接收一个数组,挑一个数,然后把比它小的那一摊数放在它的左边,把比它大的那一摊数放在它的右边,然后再对这个数左右两摊数递归的执行快排过程,直到子数组只剩一个数为止。 下面我先用最常用的C语言来写一个快速排序: 首先可以先写出一些伪代码: void quicksort(int array[], int left, int right) { //Do nothing if left <= right //p <- Get a number from array //Put elements <= p
http://www.cyqdata.com/cnblogs/article-detail-292 
新浪微博PC客户端(DotNet WinForm版)——功能实现分解介绍
上一篇:新浪微博PC客户端(DotNet WinForm版)—— 初探 说明一下:只是兴趣,并不是想发布为一个软件,说实在的,如果要作为一个软件发布,要做的工作还有很多。  新浪微博API地址:http://open.t.sina.com.cn/wiki/index.php/API%E6%96%87%E6%A1%A3?retcode=0。目前提供的SDK: 1 Adobe Air2 Flash SDK3 PHP4 C++5 C#6 Java SDK7 Python SDK8 Javascript SDK(JSSDK)9 iOS SDK10 OAuth Library其它的不清楚,C#的还不完善,而且不是官方的。 当前已
http://www.cyqdata.com/cnblogs/article-detail-291 
Working with FBX SDK (2)
Working with FBX SDK (2) 仅供个人学习使用,请勿转载,勿用于任何商业用途 作者:clayman      上一篇文章介绍了fbx sdk的基本用法,接下来我们继续讨论如何取得normal,tangent,binormal和uv信息。先介绍一些关于KFbxLayer对象的概念。KFbxLayer对象是一个容器,对mesh来说,它包含了除控点,多边形信息以外大部分数据,比如normal,tangent,vertex color,uv等等。一个mesh可以包含多个KFbxLayer对象,不同layer之间的元素类型,个数通常都不相同。下面是一个简单的mesh结构关系: mesh ---- layer 0 { KFbxLayerElementNormal, KFbxLayerElementTangent, KFbxLayerElementUV&
http://www.cyqdata.com/cnblogs/article-detail-290 
Gamemonkey编程---高级进阶3
这些东西是平时遇到的, 觉得有一定的价值, 所以记录下来, 以后遇到类似的问题可以查阅, 同时分享出来也能方便需要的人, 转载请注明来自RingOfTheC[ring.of.the.c@gmail.com]      继续翻译GameMonkey脚本语言的文章, 这些文章都是在GameDev网站上找到的. 在翻译的过程中, 更加深了我对GM的了解和兴趣, 它的协程机制确实比Lua的协程在原生支持方面争强了很多, so enjoy! 上次GM参考手册的翻译放在了一篇文章, 感觉显的太长了, 所以这次我决定将这些长篇翻译分成多篇文章, 这样阅读起来比较方便, 而且可以避免一次信息过大 原文地址: http://www.gamedev.net/reference/programming/features/gmScriptAdv/page2.asp &nbs
http://www.cyqdata.com/cnblogs/article-detail-289 
.NET 4.0网络开发入门之旅——我在“网” 中央
.NET 4.0网络开发入门之旅--    我在“网” 中央(上)注:     这是一个针对网络开发领域初学者的系列文章,可作为《.NET 4.0 面向对象编程漫谈 》一书的扩充阅读,写作过程中我假设读者可以对照阅读此书的相关章节,不再浪费笔墨重复介绍相关的内容。     对于其他类型的读者,除非您已经有相应的.NET 技术背景与一定的开发经验,否则,阅读中可能会遇到困难。     我希望这系列文章能让读者领略到网络开发的魅力!     另外,这些文章均为本人原创,请读者尊重作者的劳动,我允许大家出于知识共享的目的自由转载这些文章及相关示例,但未经本人许可,请不要用于商
http://www.cyqdata.com/cnblogs/article-detail-288 
C#基础之进程管理
今天 我们来讲一个很基础的东西--进程,我们知道一个Win32程序都会被分配到一个进程里面,进程之间是相互独立的个体,一个进程出现了问题停止工作不会影响其它的进程。那我们怎样用C#来获取当前系统中运行的进程呢?我们来看看下面这段代码   Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> Process[] ps = Process.GetProcesses(); foreach (Process p in ps) { Console.WriteLine("{0}, {1}", p.ProcessName, p.Id); }  
http://www.cyqdata.com/cnblogs/article-detail-287 
写在项目开工之前--一些心得
新的项目马上就要开始了,我一个人负责Android平台,这是第一次自己完全掌控一个软件的开发,心里有些忐忑,怕自己能力不够,做不好,但是没有办法,只好咬紧牙关迎头赶上。回想以前的项目经历,有些感悟,总结一下。 1. 在进行界面布局的时候,一定要考虑到横竖屏的切换,尽量做到后期不用适配很多的机器。 2. 对于Activity的生命周期的控制,一定要严谨,考虑周全,什么时候查询,什么时候移除监听器,activity的三种生命周期的切换,保存界面信息,恢复界面信息,都要在代码编写之前尽量考虑周全,切不可跟着bug走。 3. 经常整理代码,类中用不到的属性,方法,一定要删除,不要想着以后可能用到,99%的情况是以后绝对用不到,这样做可以避免以后代码整理的混乱 4. 工作台的编码和工程的编码统一使用utf-8,同时将家里的电脑上的工作台与之同步,避免乱码。 5. 要做好工作记录,公司小,没有开
http://www.cyqdata.com/cnblogs/article-detail-286 
canvas的魔法,X光效果
一 图片预览 HTML5给web开发带来很多好东西,可以说,它将开创新一代web开发。 其中canvas就是它带来的东西之一,canvas非常强大,可以做到很多东西,不过我觉得学习canvas几乎等于在学习一种独立的技术了。这里只是展示一个简单的canvas效果。如下图: 二 原理介绍 我在代码中通过ctx.getImageData(0,0,width,height);获取canvas里面的imagedata对象,而这个对象就是这个效果实现的关键。 我们可以通过imagedata.data来获取一个数组,这个数组的length是canvas像素数量的四倍,其中每四个项代表一个像素。在每四个项里,他们一次代表rgba,rgb就很明显了,而a就代表透明,当a为255的时候完全不透明,当a为0的时候就是透明的。而这次的效果无需用到透明,所以没对这个进行操作。 最后我通过ctx.putImage
http://www.cyqdata.com/cnblogs/article-detail-284 
mongodb分片集群(sharding with replica set)配置
一共有4台机器,各自挂接一个存储,希望实现: 尽量节约存储 高可用性 存储大量数据 配置方案: 每一台机器做一个分片的主数据库 每一台机器做一个分片的后备数据库 每一台机器做一个分片的仲裁服务 两个两个一组交叉作对方的后备 有三台机器开配置服务 有一台机器开路由服务(生产环境可以在每一台Windows App服务器上开路由服务,App服务器集群做负载均衡) 这样的话,任何一台服务器完全离线(或者交叉的两台服务器离线),都能保证整个系统正常运行。不过在服务器和服务器起来之后需要: 在升级成为主数据库的那个后备数据库上运行rs.StepDown(100)来让它让出主数据库的位置,因为每一个分片的活动数据库都应该由独立服务器担当,以获得最好的性能 配置服务和后备数据库起来之后不需要做任何调整   192.168.129.142 mkdir -p /usr/data/shar
http://www.cyqdata.com/cnblogs/article-detail-283 
自创用于节点操作的API,颠覆原生操作HTML DOM节点的API --- 敏捷开发
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。第一次看到敏捷开发的定义,我就被敏捷开发迷住了。通俗来说,敏捷开发可以让我们用过的代码可以再次重用,因为是再次重用,所以相对安全,再次调试也没有第一次那么费心,省时省力。不断重用代码的过程中把存在的bug不断的修复,也因为不断的去重用, 这个模板变得起越来越独立,适用的情况越来越广范,最后在安全方面达到铜墙铁壁,在开发方面达到随心所欲,在维护方面达到从容面对。敏捷开发的确是利害,但如何练就这种深奥的武功呢?就我自身的情况靠人传授武功是不可能了,因为公司就我一个做开发的,苦思幂想之后,决定从开源的优秀框架入手,把它一行一行代码看懂,然后再为我所用。因为是一个人开发,前台和后台都得包办,哪从那一面做起呢? 之前有过一二个月的开发经验,觉得前台的
http://www.cyqdata.com/cnblogs/article-detail-281 
GSM蜂窝基站定位基本原理浅析
位置服务已经成为越来越热的一门技术,也将成为以后所有移动设备(智能手机、掌上电脑等)的标配。随着人们对BLS(Based Location Serices,基于位置的服务)需求的飞速增长,无线定位技术也越来越得到重视。GSM蜂窝基站定位,以其定位速度快、成本低(不需要移动终端上添加额外的硬件)、耗电少、室内可用等优势,作为一种轻量级的定位方法,也越来越常用。本文简单介绍一下各种基于GSM蜂窝基站的定位方法及基本原理,给开发人员作为参考。我将尽量尝试用开发人员熟悉的方式来描述问题。 预备知识:GSM蜂窝网络基础结构 我们知道,GSM网络的基础结构是由一系列的蜂窝基站构成的,这些蜂窝基站把整个通信区域划分成如图所示的一个个蜂窝小区(当然实际上,一个基站往往不并不只是对应一个小区,但是这个与我们讨论的主题关系不大,我们不做深究)。这些小区小则几十米,大则几千米。如下图所示,我们用移动设备在G
http://www.cyqdata.com/cnblogs/article-detail-280