DFS架构
话说到今天为止,使用FDFS已经有一年零2天时间了,在fish和测试兄弟小黑的帮助下一年下来算是没出啥岔子,目前DFS可以说是公司内最稳定的服务之一(其实可以把之一去掉)。最近FDFS在fish的主导下越做越大,论坛起来了,群也起来了,版本迭代也更快了。不过这篇文章是应群中几个朋友的邀约,写下当初自己在使用FDFS时的架构和一些想法。随便,这篇文章是在我女儿出生24小时后在医院抽女儿睡觉时间写下的,在此我先谢谢我可爱的大眼睛女儿给爸爸写这篇bloger的时间。 首先来一张图: 这张图其实是一个组内部署的简单示意图,组间的架构示意图其实没有什么好画的,无非就是copy一份相同的而已。那么下面开始讲解
http://www.cyqdata.cn/cnblogs/article-detail-394
[项目过程中所遇到的各种问题记录]编辑器篇——使用FCKeditor生成静态分页HTML
继续编辑篇的内容,本文是编辑器篇的最后一篇,前面2篇分别是FCKeditor相关知识及各种常见使用问题和FCKeditor自定义上传路径配置,今天这篇文章主要是介绍如何使用fckeditor来生成静态分页HTML。
以下是本文所要介绍的内容:
1、生成静态化分页HTML分析
2、具体实现
一、生成静态化分页HTML分析
在实际的网站开发过程中,我们总是想通过各种方式提高网站的性能,其中比较有效的方式就是:缓存、网页静态化、异步加载等等,今天这边主要讨论的是静态化页面的生成。
在一般的资讯网站上使用静态化的页面比较多,因为像新闻等资讯时效性比较强,一般生成了一个静态页面就可以一直使用,而需要生成静态页面
http://www.cyqdata.cn/cnblogs/article-detail-390
将WPF UI单元复制到剪贴板
大家在日常工作中应该遇到过这样的问题:需要对应用程序界面进行截屏操作,然后将截屏内容拷贝到其他文档中使用。通常情况下我们会使用一些截屏软件或者“Ctrl+PrtSc ”,本篇将介绍如何在WPF 程序中将UI 单元直接以图片形式复制到剪贴板,以达到为应用程序界面制作快照(Snapshot)的功能。 以我之前做过的一个“WPF 员工卡”的文章为例。首先,要为程序添加一个自定义命令(Command):CopyUI。该命令的快捷键方式为“Ctrl+U”,在命令中定义两种事件CanExecute、Executed。关于自定义命令可以参考这里。 <Window.Resources>
<Storyboard x:Key="flashClose">
http://www.cyqdata.cn/cnblogs/article-detail-386
IE中jQuery.fn.text, jQuerey.fn.val 和 dom.innerText, dom.value 的换行与tab问题
最近使用jQuery的过程中发现关于.text, .val 和dom自身的.innerText, .value 在取值与赋值方面存在的差异.
以及IE7与IE8的pre标签的呈现差异(即white-space:pre). 现与大家分享一下.
在IE中, 对pre标签的文本取值与赋值, 可以使用$("p").text("1\n2"), 亦可使用$("p")[0].innerText = "1\n2";
不知道大家是否知道, 这两种方式的取值与赋值得到的结果, 产生的效果是存在差异的.
换行符
看过jquery-1.4.4的代码以后发现, 在最新版本的jQuery中, text取值使用的是获得最基础的textNode的nodeValue, 也就是说, text取值和innerText取值的差异在于 nodeValue和innerText的差异:
对网页
http://www.cyqdata.cn/cnblogs/article-detail-383
用于php二进制操作和socket二进制通讯的phpbuffer v0.1开源发布
[文章作者:孙立 链接:http://www.cnblogs.com/sunli/ 更新时间:2010-12-17]
项目来源
php语言是当前比较流行的一种web开发语言,它能够实现快速开发,方便代码发布和部署,性能也还不错,但是随着web的快速发展,一个网站往往是多种语言结合的模式。为了提高性能,各种语言之间的通信往往会采用二进制,PHP虽然支持二进制,但是非常不方便,不能像java那种可以writeInt(int),writeLong(long)那样方便的进行二进制
http://www.cyqdata.cn/cnblogs/article-detail-380
[项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor相关知识及各种常见使用问题
马上2010年就要结束了,所以这几天准备花点时间把这一年中在开发过程中遇到的问题及解决方案记录下来,以备日后使用,目前先规划了:编辑器篇(仅针对asp.net开发中的fckeditor)、图表篇(winforms中的MSChart和asp.net中的FLASH图表FunsionCharts)、ORM篇(主要是针对NHibernate)
就目前来说fckeditor已经算是比较老的开源编辑器了(现在已经有新的CKeditor),但是其优秀的功能及可用性在目前WEB开发中占有很大的分量,今天这篇文章主要记录下fckeditor的各种常见配置及一些所遇到的问题的解决方案。
以下是本文所要介绍的内容:
1、fckeditor的使用
2、fckeditor的config介绍及
http://www.cyqdata.cn/cnblogs/article-detail-357
[SharePoint 2010]在SharePoint中几种访问域用户profile的方法
在SharePoint2010中,我们可以选择几种不同的方式来访问域用户的profile,下面简单介绍3种方法: 1.通过客户端直接调用user profile service来访问 例如项目中有silverlight模块想显示当前用户的profile信息,可以这么作: 首先添加Service Reference,输入service url http://rootsite/sites/subsite/_vti_bin/UserProfileService.asmx?WSDL rootsite & subsite请根据实际情况替换。然后我们为我们的Service reference取名为UserProfileServiceProxy。 其次在maipage方法中加入调用service 代码以及回调方法代码: public MainPage() &nb
http://www.cyqdata.cn/cnblogs/article-detail-319
新浪微博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.cn/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.cn/cnblogs/article-detail-290
一个.net客户端通讯框架的设计(二)---准备FastBuffer和BOConverter
在网络编程中,我们会频繁用到两个东西,一个是buffer。一个是bit-order。把数据填充到buffer中,然后通过buffer读写我们所需要的基本数据,还好.NET为我们提供了BitConverter这个非常好用的util,方便我们编写自己的Buffer和字节序转换器。 IBuffer 通常Buffer会有如下几个概念;position,limit,capacity,flip,mark,reset,free position:即将读/写的位置 limit:有效读/写的极限位置 capacity:buffer的最大长度 flip:limit设为置position,position设为0 mark:记录当前的position,对应reset操作 reset:将position设置为之前mark的位置 free:将缓冲标识为空闲,可在入池前调用。 比
http://www.cyqdata.cn/cnblogs/article-detail-258
WPF企业内训全程实录(下)
摘要
WPF企业内训全程实录由于文章比较长,所以一共拆分成了三篇,上篇WPF企业内训全程实录(上)主要讲了基础,中篇WPF企业内训全程实录(中)主要讲解开发模式、团队协作及应用框架,起着承上启下的作用,主要讲解开发模式、团队协作及应用框架。这篇作为该实录的下篇——终结篇,起着总结的作用,主要讲解其他技术的引用、WPF项目及性能优化、部署与更新等议题。
其实如果大家仔细看目录,可以发现我安排的顺序是首先讲解最基本的概念和基础内容、然后过渡到开发模式及框架、最后结合其他技术和项目实际运用,这也是学习并应用一门技术最好的流程。上篇实际上主要有两个侧重点:一则就是理清脉络——历史渊源、概念引入及基本阐述;二则是讲解WPFBasic——主要细究WPF的每个知识点,基本涵盖了WPF的方方面面;如果大家感兴趣,可以下载代码并
http://www.cyqdata.cn/cnblogs/article-detail-254
Silverlight DataGrid使用WCF RIA Service实现Load-on-demand的数据加载
在Windows或者ASP.NET Web应用程序中,我们经常可以看到在Grid控件上通过Load-on-demand的方式来提高系统性能,提升用户体验。 所谓Load-on-demand就是在最初表格数据加载时只加载当前表格中用户可以看到的行数,当用户向下滚动或拖拽纵向滚动条时,再将需要显示的数据通过某种方式动态加载进来。 那么对于Silverlight,我们可以使用DataGrid通过WCF RIA Service来实现这个功能。 1. WCF RIA Service 我们将会使用WCF Service来提供数据,并且将这个WCF Service host到ASP.Net应用程序中。 - 定义数据对象 [DataCont
http://www.cyqdata.cn/cnblogs/article-detail-246
WPF自定义ListBox(二)
Helloj2ee的自定义ListBox(一),虽然很用心,但看出来反响不强烈。只能这一篇再给力一点。虽然评论很少,但是也看出一些讯息。
讯息之一,就是Helloj2ee的WPF看不懂。的确在这里写的不是基本的东西,而是对其WPF的相关基础概念掌握了之后,才能看的一个系列。自定义控件在《葵花宝典——WPF自学手册》一书中,是放到第六卷——华山之巅,足见其高阶。因此Helloj2ee在后面列出的参考文献,就很有价值了。因为您若是看不懂,不妨去参考相关文献,即便您没有葵花宝典一书,但总可以知道需要掌握的相关概念是什么,参阅其他书又何妨?
讯息之二,是提供的源码无法打开,那么Helloj2ee已经更新过。如果解压还是失败,您不妨在下面的回帖中告诉我。
说到给力,那么只有让这个控件在本章当中酷起来或者炫起来,才是给力的王道。
Circu
http://www.cyqdata.cn/cnblogs/article-detail-245
WPF中的自定义ListBox(一)
上周侯捷大师来京做了一次讲座,有幸和他聊聊。当别人排队,而我也在排队。有意思的是当别人在找侯捷大师签名时,而我确有幸为侯捷大师签了一次名,当然是在我的《葵花宝典——WPF自学手册》上签下了自己难看的名字。这不是重点,重点是他提到他的人生中几件关键的事情。其中一件,如果我的记忆没有错的话,应该是Windows 3.0来的时候的冲击,他当时还在一个台湾的研究所里工作,在考虑窗口,控件如何“Message Based,Event Driven”(以消息为基础,事件驱动之)。Windows3.0来了,一下他的模糊思路明晰起来,尽管侯大师考虑的只是一个雏形,而Windows是实实在在真正的产品。但这并不重要,重要的是他们的思路不谋而合。这样他不至于在DOS到Windows巨变的情况下“死在沙滩上”。很多程序员由于无法从DOS的编
http://www.cyqdata.cn/cnblogs/article-detail-221
灯塔,大海,大风。Final.
终于是把它做完了,吃了不少苦头,走了不少弯路,不过一切都是值得的,也收获了很多。
最终结果虽然也有很多不足,可是它占用的时间和学到的东西还是成正比的,所以也就不纠结了。结果并没有预期的满意,希望以后再做这样的东西的时候能避免一下问题,争取得到最好的效果。
先看视频吧。这个是最终效果,然后是流体的渲染对比,后面重复几遍最终版为了拖延时间得到Youku的HD转码(Youku这点就没有Vimeo好,Vimeo只要是够尺寸了,不管多长都是HD的,真麻烦)。
这个是WIP视频,可以看到几乎所有的中间步骤。
稍微详细说一下制作思路吧。
首先是浪面的制作,这个我用到了一个叫DisplaceD的插件,它可以根据图片,函数和节点来驱动几何体的顶点的位置,具体用法和功能可以去Google一下,我就不细说了。我用Maya的Ocean贴图程序节点控制的浪的形态,大
http://www.cyqdata.cn/cnblogs/article-detail-209
【STM32 .Net MF开发板学习-23】DHT11温湿度传感器通信(下)
在上一篇《DHT11温湿度传感器通信(上)》中,我们介绍了DHT11的通信原理及实现通信的底层代码,当时由于没有封装成托管代码库,所以应用开发的用户还不能直接获取DHT11的数据。不过今天这个工作我们已经完成,用户仅需编写几行代码就可以获取传感器数据了。
我们封装后的类库如下:
public sealed class DHT11
{
public DHT11(DHT11.Timer timer, DHT11.Channels channel);
public bool Read(out float tempe
http://www.cyqdata.cn/cnblogs/article-detail-190
Web在线操作Office文件
最近公司有个项目,需要直接在IE浏览器中操作Word文档,随后在网上搜了一些资料,感觉都不是很理想.
不过,最后还是找到了一个功能比较强的控件,是老外开发的控件,需要注册.还好,没有注册时,只是在页面关闭时弹出一个对话框,如果某人能把它…掉,本人非常感激,嘿嘿
好了,废话不多说.先说说最近搜集的成果,不同级别的功能有不同级别的对应方案,要看大家需要了,这里我提三个方案.
第1个方案,原汁原味
Word,Excel或Vioso文档等Office,2003以后的版本,是都可以进行转换的,比如转换为Xml或Html,所以最简单的方案就是直接通过代码将Word文档转为Html格式,这样就可以在线浏览,只是在线浏览,是不能编辑的.
其中,Excel文件如果转为Xml
http://www.cyqdata.cn/cnblogs/article-detail-182
深入浅出Flex Viewer 2.1(二)——体系结构
一、概述
在上一篇文章《深入浅出Flex Viewer 2.1(一)——概述》中,笔者对Flex Viewer用于构建以地图为中心的富客户端(RIA)应用的原型的功能和价值做了简要地介绍。在本文中,笔者将继续介绍该框架的体系结构。通过本文,读者可以详细了解到Flex Viewer框架源代码的关键目录和文件结构,以及这些文件中所包含或涉及到的系统的哪些构件(第二章);以及这些构件间的逻辑关系和连接这些构件所用的关键技术,如:消息总线(EventBus)、配置项管理(Config Manager)、数据共享机制(DataManager)的基本介绍(第三章)。
二、框架源码的结构视图
一般来说默认的Flex Viewer框架的源代码的结构如下图所示,
http://www.cyqdata.cn/cnblogs/article-detail-180
WCF面向服务应用程序系列之十五:托管(Hosting)-WAS托管
WAS托管:Windows激活服务(WAS)是一个系统服务,是IIS7的一部分,也可以独立的安装与配置。IIS与WAS的主要区别在于WAS并不局限使用HTTP,它支持所有可用的WCF传输协议、端口与队列,支持的协议包括:HTTP、TCP、IPC、MSMQ。
WAS提供了大量基于自托管的强大功能,包括应用程序池、回收机制、空闲时间管理(Idle Time Mannagement)、身份管理(Identity Management) 以及隔离(Isolation);宿主进程可以根据情况选择使用这些功能。
下面我们通过一个DEMO来介绍WAS托管(net.tcp绑定)。
&n
http://www.cyqdata.cn/cnblogs/article-detail-177
选择结构(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://www.cyqdata.cn/cnblogs/article-detail-166