Monitor Wait 与 Pulse
Monitor说明 Enter, TryEnter 获取对象锁。此操作同样会标记临界区的开头。其他任何线程都不能进入临界区,除非它使用其他锁定对象执行临界区中的指令。 Wait 释放对象上的锁以便允许其他线程锁定和访问该对象。在其他线程访问对象时,调用线程将等待。脉冲信号用于通知等待线程有关对象状态的更改。 Pulse (信号), PulseAll 向一个或多个等待线程发送信号。该信号
http://cyqdata.cn/cnblogs/article-detail-3450
SplitContainer控件扩展之收缩面板
前几天路过一个网站时看到一个关于SplitContainer控件美化的文章,实现的效果如图:(直接引用自那个站)
说起这个站看到的这篇文章,我还真是生气。本来觉得这个效果蛮好的,也想学习下。结果这玩意TMD整个一篇废文,
地址在这里
为什么我要生气呢,这边文章只是展示了最终效果,并且贴了一点点无关紧要的代码,连如何实现,什么原理完全木有讲。给我
http://cyqdata.cn/cnblogs/article-detail-3170
SplitContainer控件扩展之收缩面板
前几天路过一个网站时看到一个关于SplitContainer控件美化的文章,实现的效果如图:(直接引用自那个站)
说起这个站看到的这篇文章,我还真是生气。本来觉得这个效果蛮好的,也想学习下。结果这玩意TMD整个一篇废文,
地址在这里
为什么我要生气呢,这边文章只是展示了最终效果,并且贴了一点点无关紧要的代码,连如何实现,什么原理完全木有讲。给我
http://cyqdata.cn/cnblogs/article-detail-3152
ASP.net的地址重写(URLRewriter)实现原理及代码示例
ASP.net的地址重写(URLRewriter)实现原理及代码示例
吴剑 http://wu-jian.cnblogs.com
一、概述
访问者输入:http://wu-jian.cnbolgs.com/default.aspx,实际请求和响应的地址却是:http://www.cnblogs.com/wu-jian/default.aspx, 这就是UrlRewrite,除了实现二级域名功能,它在简化用户输入地址、SEO、网站版本迭代更新等多个方面发挥着重要作用。
微软曾在.net framework 1.1中提供过一个名为URLRewriter的小工具供开发人员轻松实现UrlRewrite,下载地址为:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MS
http://cyqdata.cn/cnblogs/article-detail-2625
SharePoint2010 ContentEditorWebPart的一个bug
1.在CEWP中使用CSS
CEWP是SharePoint 2010中一个内置的webpart,我们可以在CEWP中使用自定义的CSS和JS,下面我们在CEWP中使用自定义的CSS来隐藏左边栏,在页面中添加CEWP:
在CEWP的HTML Source中输入下面css代码:
<style type="text/css">
body #s4-leftpanel{display:none;}
.s4-ca {margin-left:0px}
</style>
2.Bug重现
我们一样也可以在CEWP中使用js,不过在使用js的时候有个小bug,就是我们如果使用document.write的时候,每次保存都会复制一份write的内容。我们同样通过上面的方式添加一段js:
保存后显示正常
如果你再次编辑WebPart保存后就会出现重复了
http://cyqdata.cn/cnblogs/article-detail-2291
CSS3:transform与transition背后的数学原理
(很多同学看到大段的数学公式就会发昏,我以人格担保,这里面的数学公式简单的不能再简单了......)
transform的原理是计算机图形学中的2D矩阵变换,
在开始之前,首先来复习下一个简单的线性代数知识:矩阵与向量乘法。太复的用不到,只需要3维向量与3x3矩阵的乘积:
接下来我们来说说transform跟矩阵乘法的关系,我们的任何一个html元素渲染完成后可以得到一张位图,把这张位图上所有的点都做一次矩阵运算,将得到一张的新的位图,这就是transform的基本含义。
首先来看最简单的transform,translate。我们都知道tansform:translate(tx,ty);的基本含义是将一个元素的显示位置平移tx,ty。在矩阵变换中,translate体现为下面的矩阵运算:
tansform:scale(sx,sy);将一个元素拉伸或者压缩指定的倍数,它对应的矩阵变换是
http://cyqdata.cn/cnblogs/article-detail-2264
Silverlight杂记- 图片及WriteableBitmap的使用(画分形1)
支持的图片格式 从一个UI中获取为图片 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->WriteableBitmap bmp = new WriteableBitmap(SP1, null); img3.Source = bmp; 画图 先看效果吧,还是挺漂亮的 Code highlighting produced by Actipro CodeHighlighter (freeware)http:/
http://cyqdata.cn/cnblogs/article-detail-2175
[项目过程中所遇到的各种问题记录]编辑器篇——使用FCKeditor生成静态分页HTML
继续编辑篇的内容,本文是编辑器篇的最后一篇,前面2篇分别是FCKeditor相关知识及各种常见使用问题和FCKeditor自定义上传路径配置,今天这篇文章主要是介绍如何使用fckeditor来生成静态分页HTML。
以下是本文所要介绍的内容:
1、生成静态化分页HTML分析
2、具体实现
一、生成静态化分页HTML分析
在实际的网站开发过程中,我们总是想通过各种方式提高网站的性能,其中比较有效的方式就是:缓存、网页静态化、异步加载等等,今天这边主要讨论的是静态化页面的生成。
在一般的资讯网站上使用静态化的页面比较多,因为像新闻等资讯时效性比较强,一般生成了一个静态页面就可以一直使用,而需要生成静态页面
http://cyqdata.cn/cnblogs/article-detail-390
[项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor相关知识及各种常见使用问题
马上2010年就要结束了,所以这几天准备花点时间把这一年中在开发过程中遇到的问题及解决方案记录下来,以备日后使用,目前先规划了:编辑器篇(仅针对asp.net开发中的fckeditor)、图表篇(winforms中的MSChart和asp.net中的FLASH图表FunsionCharts)、ORM篇(主要是针对NHibernate)
就目前来说fckeditor已经算是比较老的开源编辑器了(现在已经有新的CKeditor),但是其优秀的功能及可用性在目前WEB开发中占有很大的分量,今天这篇文章主要记录下fckeditor的各种常见配置及一些所遇到的问题的解决方案。
以下是本文所要介绍的内容:
1、fckeditor的使用
2、fckeditor的config介绍及
http://cyqdata.cn/cnblogs/article-detail-357
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://cyqdata.cn/cnblogs/article-detail-290
mongodb分片集群(sharding with replica set)配置
一共有4台机器,各自挂接一个存储,希望实现:
尽量节约存储
高可用性
存储大量数据
配置方案:
每一台机器做一个分片的主数据库
每一台机器做一个分片的后备数据库
每一台机器做一个分片的仲裁服务
两个两个一组交叉作对方的后备
有三台机器开配置服务
有一台机器开路由服务(生产环境可以在每一台Windows App服务器上开路由服务,App服务器集群做负载均衡)
这样的话,任何一台服务器完全离线(或者交叉的两台服务器离线),都能保证整个系统正常运行。不过在服务器和服务器起来之后需要:
在升级成为主数据库的那个后备数据库上运行rs.StepDown(100)来让它让出主数据库的位置,因为每一个分片的活动数据库都应该由独立服务器担当,以获得最好的性能
配置服务和后备数据库起来之后不需要做任何调整
192.168.129.142
mkdir -p /usr/data/shar
http://cyqdata.cn/cnblogs/article-detail-283
使用Repository模式支持产品的客户化
本篇博客简单描述了Repository模式在OEA中的应用。 不使用Repository时的问题 OEA框架中使用了DDD的思想,面向领域对象进行开发。在DDD中,有很多重要的概念,例如:聚合实体对象、值对象、仓储、工厂、服务等。(不太了解的Repository和DDD的朋友,可以看Evans写的《Domain Driven Design》。) 在OEA中,实体的实现框架使用了CSLA分布式框架。原来为了简单并保持和CSLA开发模式的兼容,一直都把实体的获取模式直接以静态方法的方式直接写在实体的对应列表类中。例如下面这段代码: 随着应用的慢慢深入,出现了一些问题: 不易支持客户化。OEA是基于产品线的开发,如果采用前面的开发模式,
http://cyqdata.cn/cnblogs/article-detail-250
[EntLib]微软企业库5.0 学习之路——第十步、使用Unity解耦你的系统—PART4——Unity&PIAB
在前面几篇有关Unity学习的文章中,我对Unity的一些常用功能进行介绍,包括:Unity的基本知识、管理对象之间的关系、生命周期、依赖注入等,今天则是要介绍Unity的另外一个重要功能——拦截(Interception)。
以下是本文所要介绍的内容:
1、Unity与PIAB的关系。
2、使用Unity来接管PIAB的功能实现。
一、Unity与PIAB的关系
Unity中的Interception可以通过Unity的Container或独立的API(Intercept)来实现,这些具体的实现没有包含在Unity本身的类库中,而独立放在Unity.Interception这个类库中,想深入了解的朋友可以查看下这个类的具体源
http://cyqdata.cn/cnblogs/article-detail-237
选择结构(if..else..,switch,try..catch..)的拆分
编程中经常遇到很多条件,以及条件套条件的情况,以至于一个方法会写得非常地长。有多种方法可以规避这个问题。比如反射,策略模式,表驱动等等。先抛开这些方法不讲,从根本需求来探索这个过程。
一个switch结构可能是这样:
swicth(case)
case 1:
//do1
break;
case 2:
//do2
break;
.....
这里注释的do部分代码可能会是很多很多行,以及嵌套switch,if结构。
进一步,这个模型演化成
swicth(case)
case 1:
do1();
break;
case 2:
do2();
break;
.....
do1(){}
do2(){}
也就是将里面的代码模块化。这个方法有效的减小了一个方法的代码长度。实际上
http://cyqdata.cn/cnblogs/article-detail-166
Think in SharePoint 2010 OOTB Project: Site Columns & Site Content Type
SharePoint 2007 OOTB 项目力求快速开发SharePoint Portal,项目上主要是以OOTB Feature为主,在开发上大部分是在用SharePoint Designer。
这样的模式有以下缺点:
1. 没有应用程序周期管理的支持(ALM),没有源代码管理工具,没有利用解决方案包进行部署。
2. 所有自定义的内容都在数据库中,不能利用文件模板(Ghosted Page)来增强访问效率。
没有源代码管理工具对站点进行开发的风险是很大的,没有用Solution Package 部署这样会对效率上造成一些影响。开发这类型的站点如果部署Solution 也必须要在Farm级别,这也是直接用SPD的原因了。
目前SP 2010 + VS2010 + TFS2010开发站点,再加上Sandbox Solution不需要Farm管理员只要Site C
http://cyqdata.cn/cnblogs/article-detail-162
关于ASP.NET 中站点地图sitemap 的使用
.codearea{ color:black; background-color:white; line-height:18px; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; overflow:auto; text-align:left; font-size:14px; font-family: "Courier New" , "Consolas" , "Fixedsys" , "BitStream Vera Sans Mono", courier,monospace,serif}
.codearea pre{ color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-colo
http://cyqdata.cn/cnblogs/article-detail-141