找到相关内容 303
需求驱动学习之Python(如何编写Python脚本替换文件中的多行字符?)
当一个人太执着于某一个东西的时候, 会错过很多美好的东西! Python值得学习的一个工具,不要局限在当前使用的语言中。 在大概3个月之前,Python对我来说一直是个迷。然而,就在3个月前我经理给我一个任务——删除(替换)所有项目源码文件中包含特定几行内容的所有注释。整个项目源码的大小有1G,在Linux服务器(中高档)上编译需要半个多小时,可见代码量之大,不可能手动去一个一个改。肯定得用脚本去处理,于是我想到了Python。在这之前没有接触过Python,花了2个星期一顿恶补之后,总算顺利交差了。 一直很想和大家分享一下碰到的问题及我如何解决的(可能我的方案并不好,但是他能够解决我的问题),但一直拖到现在是因为我感觉我还对Python的了解还不够。因为要在短时间内完成上面交下来的任务,在学习Python的时候,都是走马观花,对解决自己的问题不相关的直接跳过,看资
http://www.cyqdata.com/cnblogs/article-detail-244 
Oracle VM VirtualBox上安装windows server2008R2做SharePointServer2010开发(中)
非常遗憾,在我本子上没能装上,在windows更新上出现错误,没有找到原因,猜想是因为没有激活windows,等有时间再将本上的开发环境搞定。 由于公司开发需要,在公司的服务器上做了虚拟机器安装了Server2008R2,和SharepointFoundation2010及VS2010进行开发。 在安装完成Server2008R2后,需要配置一下应用程序配置才能继续安装SharepointFoundation2010,在安装时有几个需要注意的地方, 如果仅仅是在虚拟机上做开发,可以直接独立安装,如果有其他服务器的话,选择服务器场。 看到下面的图就说明安装基本完成了,接下来我们会做一个常用的webpart开发。 我们新建一个网站试试 配置站点 在你创建一个网站之后,如果想在根站点下再建立一个站点,那么创建界面就会是另外的样式 创建完毕后,在跟站点下
http://www.cyqdata.com/cnblogs/article-detail-243 
基于事件通信的轻量级MVP框架实现,附源码
    在.NET中,对于ASP.NET,有MVC;对于WPF、SILVERLIGHT,有MVVM。然而在桌面开发领域,似乎微软并没有推出什么强力的框架。但笔者在写程序的时候很不喜欢把代码全部混杂在一个类中。这个问题很容易解决,一种是使用现成的对平台没有依赖性的MVC框架,比如PureMVC,当然学习一个框架需要一些时间,另一种方法就是自己做一个小框架,恐怕称之为框架都有些太夸大了。     首先需要确定的是这个小框架要实现的功能。MVC虽然经典,但是View层的数据获取需要从Model直接获取,而View的操作行为则是需要通过Controller来更新Model。也就是说在View与Model通信过程中,Controller负责那些变更状态的事情。然而MVC中比较严重的问题是View需要引用Model,这就
http://www.cyqdata.com/cnblogs/article-detail-242 
使用匿名委托,Lambda简化多线程代码
      .net中的线程也接触不少了。在多线程中最常见的应用莫过于有一个耗时的操作需要放到线程中去操作,而在这个线程中我们需要更新UI,这个时候就要创建一个委托了来更新UI了,不然会报错的。下面我们就来设计一个简单的场景:窗体上有一个按钮和进度条,按钮按下后启动一个线程让进度条滚动。需要说明一下的是,我们这里不讨论使用匿名委托,lambda的好坏,我们只有一个目标就是使得我们的程序:短点,短点,再短点。   最“朴素”写法         我刚开始没有掌握匿名方法这些就是按照下面这些写的,说实话很痛苦。后来接触了匿名表达式,lambda后几乎都不想再想写这样的东西了,除非特殊的一些情况,比如需要自己定义委托。如果您现在还在按照下面这样写,那么这篇文章对你或许有
http://www.cyqdata.com/cnblogs/article-detail-241 
《NewBluePill深入硬件虚拟机》- 新书预览
一、 概述 在这一章中,我们先介绍一些贯穿全书的概念,比如Hypervisor,VT-x,VT-d,SVM等等。然后我们会简略介绍下NewBluePill项目背景及其所采用的硬件虚拟化技术。 这一章只是介绍这些技术大致的轮廓,详细内容会在后面各章节中逐一介绍。 虚拟化技术概述 虚拟化的历史 在讨论Hypervisor之前首先谈谈虚拟,虚拟(virtualization)指对计算机资源的抽象,一种常用的定义是“虚拟就是这样的一种技术,它隐藏掉了系统,应用和终端用户赖以交互的计算机资源的物理性的一面,最常做的方法就是把单一的物理资源转化为多个逻辑资源,当然也可以把多个物理资源转化为一个逻辑资源(这在存储设备和服务器上很常见)” 实际上,虚拟技术早在20世纪60年代就已出现,最早由IBM提出,并且应用于计算技术的许多领域,模拟的对象也多种多样,从整台主机到一个组件,其实打
http://www.cyqdata.com/cnblogs/article-detail-240 
方法的长度
《重构之美》之三 我曾经在一次演讲中,问过听众这样一个问题:“一个方法的理想行数最多不超过多少行?”如果问一千个人,或许会有一千条答案吧。   这是一个见仁见智的问题。在《软件开发沉思录》一书中,ThoughtWorks的技术负责人Jeff Bay认为:“一个常见的原则是将方法的行数控制在5行之内……”很多人对此感到不可思议。窃以为,关键不在于方法的最大行数,而是要合理理解方法的微粒度能为我们带来什么好处?   Jeff Bay提倡“利用IDE提供的‘提取方法’功能,不断地提取方法中的行为,直到它只有一级缩进为止。如果方法过长,不可能达到如此清晰的可读性。”Robert C. Martin则强调:“方法的第一规则是要短小。第二条规则还要更短小。”   短小的方法更容易理解,更容易重用。这一点毋庸置疑。不过,短小的方法会导致方法数量的急剧
http://www.cyqdata.com/cnblogs/article-detail-239 
JavaScript(JS) 压缩 / 混淆 / 格式化(美化) 工具算是完美了。
我是对javascript有特殊情结的…… (被人各种各样的鄙视) 奈何对javascript本身水平不够的, 可是我那么热爱js所以就想在前人的基础上制作一个功能武装到牙齿的js在线工具应该还是可以的吧。 也给自己方便,于是这个工具就诞生了。   http://jscompress.sinaapp.com/   本工具是在线版工具,有以下的功能.好不好请大家验证一下吧。 本工具是基于新浪云计算开发的,应该是很稳定的~~   压缩 (可选) js minify  (默认的压缩,只会清除注视空行空格,不替换变量语法。) yui compressor (这个应该是目前世界上最好的压缩机了吧?姑且这么认为。) Google Closure Compiler  (google 使用的JS压缩机,而且还能优
http://www.cyqdata.com/cnblogs/article-detail-238 
[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://www.cyqdata.com/cnblogs/article-detail-237 
VS2010实践RUP4+1架构模型
  RUP4+1架构方法 RUP4+1架构方法采用用例驱动,在软件生命周期的各个阶段对软件进行建模,从不同视角对系统进行解读,从而形成统一软件过程架构描述.                    图 1. RUP4+1架构图 用例视图(Use Cases View),最初称为场景视图,关注最终用户需求,为整个技术架构的上线文环境.通常用UML用例图和活动图描述。 逻辑视图(Logical view),主要整个系统的抽象结构表述主要关注系统提供最终用户的功能,不涉及具体的编译即输出和部署,通常在UML中用类图,交互图,时序图来表述,类似与我们采用OOA的对象模型。 开发视图(Development Vi
http://www.cyqdata.com/cnblogs/article-detail-235 
MonoDevelop/MonoTouch SDK开发iOS程序体验!
作者:不及格的程序员-八神 首先从http://monotouch.net/官网下载了三个必须的安装文件 Mono for mac 框架,这个大约70M大小,再下载MonoDevelop,这个开发IDE大概10多M,最后下载了Monotouch SDK,这个大约22M. 之后就是一步步安装了很顺利,由于我的mac mini 装的是中文系统,当第一次打开MonoDevelop时,界面居然是乱码,文字全是方块,或是空字符. 后来在设置窗口中的User interface language设置成了英文,界面算是正常了. 乱码的界面: 正常的界面:   下面创建一个Hello World的程序吧.托一个按钮,给按钮加一个事件委托,真的是非常简单.而且根本不用管理对象释放的问题,而且代码的智能提示要比xCode提高一个档次,有点类似VS2010. 工程类型选择: 代码: 默认情况
http://www.cyqdata.com/cnblogs/article-detail-234 
敏捷宣言准则4-6和一些颠覆式的注解
敏捷开发的12准则(这里我们着重于准则4-6):   准则4:Business people and developers must work together daily throughout the project.  翻译:业务人员和开发人员在项目开发过程中应该共同工作。  注释:客户从一开始就参与项目,这意味着开发团队能比较准确地了解用户的需求,能够根据客户的需求变化及时的作出相应的调整,无疑能对客户的需求理解得最为透彻,能够对需求变化作出最敏捷的反应。    在实际开发中,这个准则一般是很难被满足的,大部分客户会很忙,没有时间坐在开发工程师的身边进行来帮助开发。所以出现了一种新的职业—商务分析师,在下面的例子里,一位来自ThoughtWorks项目团队的的商务分析师就详细描述了其在项目团队里扮演的角色和一些
http://www.cyqdata.com/cnblogs/article-detail-233 
棋盘覆盖问题
虽然这个问题已经在网上被讨论遍了,但是最近从新拾起算法,感觉有必要夯实一下基础。棋盘覆盖问题:首先大致描述一下题目:在一个2^k×2^k个方格组成的棋盘中,若有一个方格与其他方格不同,则称该方格为一特殊方格,且称该棋盘为一个特殊棋盘.显然特殊方格在棋盘上出现的位置有4^k种情形.因而对任何k≥0,有4^k种不同的特殊棋盘.下图–图(1)中的特殊棋盘是当k=2时16个特殊棋盘中的一个:   图(1)题目要求在棋盘覆盖问题中,要用下图—图(2)所示的4种不同形态的L型骨牌覆盖一个给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖.  图(2)思路分析:当k>0时,将2^k×2^k棋盘分割为4个2^k-1×2^k-1子棋盘,如下图–图(3)所
http://www.cyqdata.com/cnblogs/article-detail-232 
C#实现外部图片的拖拽到应用程序的简单功能,附全部源码,供有需要的参考
通用权限管理系统组件源码里,有职员管理的功能,实现了直接可以把照片拖拽过来的功能,用起来会很方便。 管理软件能支持拖拽功能,会好用很多,用户体验也会改善很多。想做好一个组件需要把放放面面都彻底做好才可以。   想要控件支持拖拽,需要设置 AllowDrop 属性。   还需要写下面的2个事件。   参考代码如下,有需要的可以参考一下,把有需要的代码参考一下就可以了。   代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//-----------------------------------------------------------// All Rights&nb
http://www.cyqdata.com/cnblogs/article-detail-231 
也谈Asp.net 中的身份验证
  钱李峰 的这篇博文《Asp.net中的认证与授权》已对Asp.net 中的身份验证进行了不错实践。而我这篇博文,是从初学者的角度补充了一些基础的概念,以便能有个清晰的认识。   .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:12px; font-family: "Courier New" , "Consolas" , "Fixedsys" , "BitStream Vera Sans Mono", courier,monospace,serif} .codearea
http://www.cyqdata.com/cnblogs/article-detail-230 
个人管理:从昨天的一个设计评审来谈如何与人交流你的设计思路
昨天项目组进行了一个设计评审,主要是对OpenExpressApp的AutoUI部分进行重构,我相当于评审人。大家也可以把这个评审过程当做与人交流你的设计思路的一个过程,以下从我评审的一些要素来谈谈与人交流设计思路时需要考虑的内容,也许对大家在实际工作中的架构、设计和沟通都有所帮助。   评审并不是审判,你直接说出结果之后,然后等着判官下笔,评审一定是基于特定主题进行的,所讨论的东西都围绕这个主题,那么如何让人先清晰你的这个主题是需要考虑的。对于不同人来说,每个人关注视角不一样,所以还需要针对这个主题,对于不同场合、不同参与者,你需要使用什么方式来讲哪些内容才能够让参与者都清晰。 影响我评审关注的一些观点 技术是为业务服务的,再考虑技术时一定需要想想为实际业务做了什么 你清楚的别人不一定清楚一般自己做的设计会觉得很简单,可维护很好,但是没有做过的人理解起来很可能是相反的 你觉得简单的别人
http://www.cyqdata.com/cnblogs/article-detail-229 
键盘监控的实现Ⅱ——容易产生误解的CallNextHookEx函数
在上文“键盘监控的实现Ⅰ——Keyboard Hook API函数”中介绍了键盘的Hook API函数。   重点就在按键消息处理函数   Private Function KeyboardHookProc(ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As IntPtr) As Integer      Dim MyKeyboardHookStruct As KeyboardHookStruct = DirectCast(Marshal.PtrToStructure(lParam, GetType(KeyboardHookStruct)), KeyboardHookStruct)      
http://www.cyqdata.com/cnblogs/article-detail-228 
这里的程序员基础太差!!!
博客园里人们的基础都太差了,可能多数都是刚参加工作或是还没毕业吧,有点基础的都走了...   一个关于类型问题的也能讨论好几天,不难想象大家有多菜了.很简单的答案,与一个有毛病的问题,哪些是变量,哪些关键字还没分清简单的测试,就是传递变量给函数,值传递,与引用传递区别立刻就分清了   值传递的变量修改后不会影响传递之前的变量值.引用传递后则效果相返.    作者: 不及格的程序员-八神 发表于 2010-12-08 10:19 原文链接
http://www.cyqdata.com/cnblogs/article-detail-225 
[VSTO系列]一、Getting Start!
我们的目标: 在这次的系列文章中,我们通过一些小例子,来循序渐进的学习VSTO for excel这个已经出现很久的技术,在平常的使用时,我很少发现比较全面或者具体的文章作介绍,当然,除了MSDN。 在我的博客开始这个系列,一为了巩固自己的相关技术知识,二也是为了和大家一起交流分享自己的技术心得和体会,希望能够获得更多宝贵的经验! 这个系列第一期大致有如下文章: Getting Start(Add-In级别) 简单的UI设计(Robbin) 批量操作(附带一个qq联系人导出例子,Add-In级别)J 丰富的自定义UI交互(Add-In级别) 部署Add-In组件到客户端 第二期将根据第一期的情况做灵活修改和调整,欢迎大家拍砖! 什么是VSTO:  是啊,什么是VSTO呢,其实很多朋友包括MSDN都给出了很好的定义,在此我就不再罗嗦,请大家通过如下网址进行查阅吧: 引用:
http://www.cyqdata.com/cnblogs/article-detail-224 
Silverlight与HTML双向交互
Silverlight具备很好的用户体验,但有时需要在页面的布局上进行特殊处理,比如作为webpart集成到Sharepoint中等等。 HTML和Silverlight之间的双向交互可以更灵活的使用Silverlight进行开发,上午摸索了一下,记录在此。 一,向Silverlight传递数据,实现个性化加载 Silverlight在HTML中的引用是: <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="ClientBi
http://www.cyqdata.com/cnblogs/article-detail-222 
WPF中的自定义ListBox(一)
上周侯捷大师来京做了一次讲座,有幸和他聊聊。当别人排队,而我也在排队。有意思的是当别人在找侯捷大师签名时,而我确有幸为侯捷大师签了一次名,当然是在我的《葵花宝典——WPF自学手册》上签下了自己难看的名字。这不是重点,重点是他提到他的人生中几件关键的事情。其中一件,如果我的记忆没有错的话,应该是Windows 3.0来的时候的冲击,他当时还在一个台湾的研究所里工作,在考虑窗口,控件如何“Message Based,Event Driven”(以消息为基础,事件驱动之)。Windows3.0来了,一下他的模糊思路明晰起来,尽管侯大师考虑的只是一个雏形,而Windows是实实在在真正的产品。但这并不重要,重要的是他们的思路不谋而合。这样他不至于在DOS到Windows巨变的情况下“死在沙滩上”。很多程序员由于无法从DOS的编
http://www.cyqdata.com/cnblogs/article-detail-221