Fork me on GitHub

2013年1月6日

摘要: 在上篇随笔《Winform开发框架之通用定时服务管理》介绍了我的框架体系中,通用定时服务管理模块的设计以及一些相关功能的展示。我们在做项目的时候,或多或少需要和其他外部系统或者接口进行数据交互,有些是单向的获取,有些是双向的操作。这个定时操作(可能是间隔的时间,也可以能是定在某一个时刻,也可以能是让它在某天某时刻运行),那么这就需要定时服务程序来管理了,通常我们把他寄宿在Windows服务里面(这也是一种最佳的方式),这种方式最好的地方,就是它的生命周期可以随着电脑的启动而启动,而且很少需要用户干预。1、通用定时服务管理模块框架设计首先我们回顾一下上面文章对通用定时服务管理模块的设计思路。整个 阅读全文
posted @ 2013-01-06 17:59 HackerVirus 阅读(241) 评论(0) 推荐(0)

2013年1月5日

摘要: Lucene是apache软件基金会jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一个基于Java的全文搜索,不是一个完整的搜索应用,而是一个代码库和API,可以方便地为应用提供搜索功能。 实际上Lucene的功能就是将开发人员提供的若干个字符串建立索引,然后提供一个全文搜索服务, 阅读全文
posted @ 2013-01-05 22:53 HackerVirus 阅读(189) 评论(0) 推荐(0)
摘要: 本篇我们主要总结和介绍一下利用属性标签方式对多线程进行方法同步和上下文同步,主要用到的是MethodImplAttribute 类 和 SynchronizationAttribute 类。这两个属于方法特性和类的特性,标识某个方法或类是同步方法,本质上还是基于Lock的实现的。首先我们还是来看一个例子,假如小明和小红两个人用都是主附银行卡,两个人都可以对帐户进行操作,比如帐户余额1000元,比如两个人几乎同时进行取钱600元的操作。代码如下:我们没有进行任何的同步措施,我们运行一下代码,看一下结果:(不同计算机执行结果可能不同)namespace ThreadAttribute{ cl... 阅读全文
posted @ 2013-01-05 22:49 HackerVirus 阅读(274) 评论(0) 推荐(0)
摘要: 一、作用AutoResetEvent和ManualResetEvent可用于控制线程暂停或继续,拥有重要的三个方法:WaitOne、Set和Reset。这三个方法的官方定义并不好理解,什么终止、非终止,乱七八糟的。在这里,我们以一种通俗易懂的概念来说明。二、比喻如果把每个线程比作一辆汽车的话,AutoResetEvent和ManualResetEvent就是公路上的收费站。其中,Reset关闭收费站车闸禁止通行(拦截车辆才好收费啊);WaitOne收费员等待下一辆车辆过来(然后收费);Set 开启收费站车闸放行(交钱了就让过去)。三、AutoResetEvent和ManualResetEven 阅读全文
posted @ 2013-01-05 22:46 HackerVirus 阅读(166) 评论(0) 推荐(0)
摘要: hadoop mapreduce 过程详解1:最简单的过程: map - reduce2:定制了partitioner以将map的结果送往指定reducer的过程: map - partition - reduce3:增加了在本地先进性一次reduce(优化) map - combin(本地reduce) - partition - reduce基本上,一个完整的mapreduce过程可以分为以上3中提到的4个步骤,下面以hadoop自带的wordcount为例,说明四个步骤的工作:假设输入文件的内容为:"hello word" 第一行"hello hadoop& 阅读全文
posted @ 2013-01-05 22:45 HackerVirus 阅读(176) 评论(0) 推荐(0)
摘要: 在使用DispatcherTimer之前,需要使用using System.Windows.Threading;命名空间;集成到按指定时间间隔和指定优先级处理的 Dispatcher 队列中的计时器。 在每个 Dispatcher 循环的顶端重新计算 DispatcherTimer。 不能保证会正好在时间间隔发生时执行计时器,但能够保证不会在时间间隔发生之前执行计时器。 这是因为 DispatcherTimer 操作与其他操作一样被放置到 Dispatcher 队列中。 何时执行 DispatcherTimer 操作取决于队列中的其他作业及其优先级。在使用时代码如下: publ... 阅读全文
posted @ 2013-01-05 22:41 HackerVirus 阅读(200) 评论(0) 推荐(0)
摘要: 一、查询优化1.使用索引 当表中的数据太多时,建立索引可以明显提高查询速度 创建索引sql> CREATE INDEX 索引名 ON 表(字段1[ASC,DESC],字段2[ASC,DESC]...) 删除索引sql> DROP INDEX 索引名 重建索引sql> REINDEX [索引名,表名]2.数据分析 对表的索引的分析,ANALYZE命令令集合关于索引的统计信息并将它们储存在数据库的一个特殊表中,查询优化器可以用该表来制作更好的索引选择。 若不给出参数,所有附加数据库中的所有索引被分析。若参数给出数据库名,该数据库中的所有索引被分析。若给出表名 作参数,则只有关联该 阅读全文
posted @ 2013-01-05 22:39 HackerVirus 阅读(138) 评论(0) 推荐(0)
摘要: 涉及到的技术概念 WCF,REST,AJAX,JSON遇到的问题:前台页面使用ajax请求后台rest服务,get请求没有问题,post请求时,后台接收参数总是nullrest方法属性,请求参数和返回参数都是json格式#region 创建数据库配置 /// <summary> /// 创建数据库配置 /// </summary> /// <param name="connectionconfig">connectionconfig表实体</param> /// <returns>返回受影响行数</retur 阅读全文
posted @ 2013-01-05 22:37 HackerVirus 阅读(166) 评论(0) 推荐(0)
摘要: 偶是在基家看到老外Coder中纷纷热议的Compilr,于是趁着订的午饭没有送到,中午抽空小研究了一番,顺便给大家做一个简单汇报。 Compilr 目标主要是做成一个云开发平台,其中集成了不同语言基于云计算的软件开发工具,在同一个框架下提供一个在线的云解决方案。 首先Compilr 是一个网页版的在线开发工具,可以让所有开发人员在线编写代码和学习代码,也支持编写后代码的在线运行。支持的语言方面Compilr不光支持C#,还能支持多种开发语言,而且支持同一语言的不同编译平台的版本,我大致整理了一下,Compilr 目前支持的语言和编译器见下表:开发语言平台版本/编译器版本CGCC4.7GCC.. 阅读全文
posted @ 2013-01-05 22:35 HackerVirus 阅读(256) 评论(0) 推荐(0)
摘要: 久不出技术类文章,我都忘了自己是一程序员啦......今天写一点工作中遇到的东西,大家共同学习,反正也比较浅显了。弹出窗口 我们在工作中,经常会碰到弹出窗口类应用,有时候还需要一点遮盖层:这类圆角弹出框其实用得还是很广泛的,用CSS3可以很容易的出现,但是考虑到浏览器兼容问题,这类还是需要用图片实现了主要代码如下:?//弹出层剧中functionpopup(popupName) {var_scrollHeight = $(document).scrollTop(); //获取当前窗口距离页面顶部高度_windowHeight = $(window).height(); //获取当前窗口高度_. 阅读全文
posted @ 2013-01-05 22:30 HackerVirus 阅读(171) 评论(0) 推荐(0)