Fork me on GitHub

2013年8月7日

摘要: 使用SQLite数据库和Access数据库的一些经验总结在我的《Winform开发框架》中,可使用多种数据库作为程序的数据源,除了常规的Oracle数据库、SqlServer、MySql数据库,其中还包括了SQLite数据库、Access数据库,后两个数据库都是在单机版程序中常用到的数据库,各自有着自己的特点,在我的《Winform开发框架》的提炼和多个项目的反复使用过程中,对SQLite数据库、Access数据库的一些特点进行了一些总结,以期达到常用常新,避免走弯路的目的。1、简化数据库的地址,使用|DataDirectory|代替运行目录可以使用这种|DataDirectory|的方式,这 阅读全文
posted @ 2013-08-07 23:14 HackerVirus 阅读(420) 评论(0) 推荐(0)
摘要: 实现Avl平衡树一、介绍 AVL树是一种自平衡的二叉搜索树,它由Adelson-Velskii和Landis于1962年发表在论文《An algorithm for the organization of information》中。AVL树的特点是,其左右子树的高度差的绝对值小于2(空树的高度定义为 -1,无子树的树高度为0)。如下图所示,左边的二叉树为AVL树,而右边的二叉树root节点的左子树高度为2,右子树高度为0,高度差为2,不是AVL树。与普通二叉树相同的是查找和遍历;但是插入和删除操作可能会破坏AVL的平衡结构,这也是实现AVL树的难点所在。二、定义 AVL的特点是平衡,每个.. 阅读全文
posted @ 2013-08-07 23:12 HackerVirus 阅读(311) 评论(0) 推荐(0)
摘要: ASP.NET 使用Ajax之前在Ajax初步理解中介绍了对Ajax的初步理解,本文将介绍在ASP.NET中如何方便使用Ajax,第一种当然是使用jQuery的ajax,功能强大而且操作简单方便,第二种是使用.NET封装好的ScriptManager。$.ajax向普通页面发送get请求这是最简单的一种方式了,先简单了解jQuery ajax的语法,最常用的调用方式是这样:$.ajax({settings}); 有几个常用的setting,全部参数及其解释可以去jQuery官方API文档查询1. type:请求方式 get/post2. url:请求的Uri3. async:请求是否为异步4. 阅读全文
posted @ 2013-08-07 23:10 HackerVirus 阅读(154) 评论(0) 推荐(0)
摘要: .NET接口和类 反射的差异性发现1 背景在项目中使用反射,反射出某类型的所有属性(Property)和对应的属性值。起初为了性能考虑在模块首次加载就反射类型的所有属性并将其存入字典。根据一般的编程规范——基于接口编程,所以首次传入的反射类型是一个接口。所以程序必然出现了异常否者就没有此文了。2 重现实验代码代码其实很简单,主要是比较接口反射和类反射的不同interface ILevel0{ string LevelZero { get; set; }}interface ILevel1 : ILevel0{ string LevelOne { get; set; }}class Base.. 阅读全文
posted @ 2013-08-07 23:08 HackerVirus 阅读(415) 评论(0) 推荐(0)
摘要: Guacamole 介绍以及架构目前在从事一些虚拟化解决方案方面的工作,最近项目有需求,希望能在浏览器上远程操作虚拟机。 此时发现了Guacamole,一个提供远程桌面的解决方案的开源项目,通过浏览器就能操作虚拟机,适用于Chrome,Firefox,IE10等浏览器(浏览器需要支持HTML5)。我只是对Guacamole做了些修改,适配目前的项目,比如做成自动登录的,加上项目权限验证等。Guacamole有比较完善的英文wiki,中文的文档相对较少,故有此想法,学习应用的同时尝试着翻译下,加深理解。英文wiki:http://guac-dev.org/doc/gug/guacamole-ar 阅读全文
posted @ 2013-08-07 23:06 HackerVirus 阅读(1601) 评论(0) 推荐(1)
摘要: [ASP.NET MVC 小牛之路]04 - 依赖注入(DI)和Ninject本文目录:1.为什么需要依赖注入2.什么是依赖注入3.使用NuGet安装库4.使用Ninject的一般步骤5.Ninject如何提高编码效率6.Ninject的绑定方式7.在ASP.NET MVC中使用Ninject为什么需要依赖注入在[ASP.NET MVC 小牛之路]系列的理解MVC模式文章中,我们提到MVC的一个重要特征是关注点分离(separation of concerns)。我们希望应用程序的各部分组件尽可能多的相互独立、尽可能少的相互依赖。我们的理想情况是:一个组件可以不知道也可以不关心其他的组件,但通 阅读全文
posted @ 2013-08-07 22:56 HackerVirus 阅读(359) 评论(0) 推荐(1)
摘要: 堆排序学习笔记Posted on2013-08-07 22:40DM张朋飞阅读(22) 评论(0)编辑收藏一.基础准备 这个算法研究了两天,整整两天啊,中间水了一道线段树,好在皇天不负有心人,嘿嘿。 1991年计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了著名的堆排序算法(Heap Sort )。堆排序是高效的排序方法。没有最坏情况(即与平均情况一样),空间占用又小,综合效率比快速排序还好。 数据结构中的堆和操作系统中的堆、堆栈(栈)是没有关系的,不要有误解。 说道堆排序就不得不先 阅读全文
posted @ 2013-08-07 22:55 HackerVirus 阅读(176) 评论(0) 推荐(0)
摘要: 可在广域网部署运行的QQ高仿版 -- GG叽叽(源码)前段时间看到园子里有朋友开发了QQ高仿版的程序,我也非常有兴趣,以前一直有个做即时聊天程序的梦,趁这段时间工作不是很忙,就开始动手来做这个事情。根据我以往积累下来的项目经验,实现QQ的基本功能,问题应该不大。当然,我的目标并不是做一个QQ高仿版的玩具,而是希望做成一个能能够真正使用的产品(当然是免费的),并持续维护下去。想为这个聊天工具取个名字,就抽取了“叽叽歪歪”中的“叽叽”(GG)作为暂时的名称吧。一.GG的功能规划我想分成几个阶段来开发GG,每个阶段一个版本,从简单到复杂,从玩具到产品。大体规划如下:1.GG V1.0(1)登录、好友 阅读全文
posted @ 2013-08-07 22:54 HackerVirus 阅读(689) 评论(1) 推荐(0)
摘要: 14个支持响应式设计的流行前端开发框架 在几年前,并没有真正意义上的前端开发。随着网络技术的发展,网站和Web应用程序变得越来越复杂,前端部分的工作独立出来逐渐成为现在的前端开发。如今,我们可以看到越来越多的公司在招聘前端开发岗位。 前端开发并不容易,除了掌握基本的HTML、CSS和Javascript之外,因为不同版本的浏览器和平台,你需要知道如何做一个跨浏览器的网站。而最新的发展趋势——响应式设计,它不仅使 Web 项目开发更难,也需要花费更多的开发时间。 不过,有很多优秀的框架可以帮助到你,这篇文章挑选了14个响应式的前端框架,列出了每个框架的 UI 组件和 Javascript 插.. 阅读全文
posted @ 2013-08-07 22:50 HackerVirus 阅读(207) 评论(0) 推荐(0)
摘要: nodejs 平台的 webscoket 的实现新手入门,没办法,只能选择不断不断的google吧。找了很多的例子都跑不了,不知道什么原因。后,自己在git搜索吧,选择了一个下面的例子:nodejs-web-socket经过我的改造,改成我自己想要的方式。只是将客户端发送的数据直接原封不动发回客户端。先说说运行环境:window 7 ,nodev0.10.5,全局安装了websocket.io模块,chrome 28浏览器。(注:以下提到的两个js文件放在同一层目录下面即可,html文件随便放置)这是后台的js代码:1、将其存为socketServer.js文件里面,并且进行module导出。 阅读全文
posted @ 2013-08-07 22:48 HackerVirus 阅读(271) 评论(0) 推荐(0)
摘要: 【原创】Aspose.Words组件介绍及使用—基本介绍与DOM概述(一)我之前博客有一篇开源的Word读写组件的介绍:http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html,引起了不少人的关注,机缘巧合,也使得我结识了一些朋友,由于DocX的一些原因(不稳定,更新很慢),我了解到了Aspose.Words这个组件,非常好,文档齐全,案例丰富,功能也很多,支持非常完善。所以我业余时间就把官方的文档和例子翻译和总结了一下,希望对大家有点帮助,同时也对自己是一个提高。我决定把这个组件的使用作为一个系列,目前已经有2篇的内容,后面 阅读全文
posted @ 2013-08-07 22:46 HackerVirus 阅读(660) 评论(0) 推荐(0)
摘要: 我的LESS编译方案2013-08-07 10:22 by 逆风之羽,469阅读,2评论,收藏,编辑背景近期项目前端决定使用less,简单介绍一下,详细信息有兴趣查看官方文档(http://www.lesscss.net/article/home.html)LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量、继承、运算、函数等,更方便CSS的编写和维护。简单来说,它自定义了一套语法规则,在css中提供公共变量的抽取,简单的函数运算等功能,最终通过编译器或解析器将其编译或解析为相对应的css代码。但是LESS文件在何时编译 阅读全文
posted @ 2013-08-07 22:44 HackerVirus 阅读(710) 评论(0) 推荐(0)
摘要: 对高并发系统架构的认识(1)对于一个需要处理高并发的系统而言,可以从多个层面去解决这个问题。1、数据库系统:数据库系统可以采取集群策略以保证某台数据库服务器的宕机不会影响整个系统,并且通过负载均衡策略来降低每一台数据库服务器的压力(当然用一台服务器应付一般而言没啥问题,找一台当备机放着应付宕机就行,如果一台应付不了,那么再加一台,但是备机还是要的,至少一台),另外采取读/写分离的方法降低数据库负载,再加上分库和分表进一步降低数据库负载,从而可以从容地应对高并发问题。当然成本会比较高,毕竟要这么多服务器。2、分布式缓存系统:建立分布式缓存系统是至关重要的,所有的读写都先进入缓存系统,然后由缓存系 阅读全文
posted @ 2013-08-07 22:40 HackerVirus 阅读(204) 评论(0) 推荐(0)
摘要: Discuz开源论坛本地部署自动生成数据库这个版本可能比较有点老,但是万变不离其宗,再新的版本都是在已有的基础上更新的,所以掌握方法是最重要的!先上几张安装成功后的图(安装成功的论坛首页)(后台管理登录页)下面说一下安装步骤第一步:在E盘新建一个文件夹命名为:Discuz。注意:我这里就随便放在E盘了,你们自己看着。第二步:将dnt_3.1.0_sqlserver文件夹下的upload_files文件复制的Discuz文件夹下,并把upload_files文件重新命名为BBS。第三步:更改Web.Config配置文件的信息 改成 -->第四步:将BBS文件夹下的bin文... 阅读全文
posted @ 2013-08-07 22:39 HackerVirus 阅读(1892) 评论(0) 推荐(0)
摘要: 线段树初探Posted on2013-08-07 09:56DM张朋飞阅读(287) 评论(0)编辑收藏一.基础准备 自己发现:n个点的话,共n-1个非叶子节点,不过没证明过,直接看图。 线段树,也叫区间树(有人说实际不一样),是一个完全二叉树,它在各个节点保存一条线段,因而常用于解决数列维护问题,树的根节点表示是“整体”的区间,左右子树分别表示这个区间的左半边和右半边。 线段树是一个满二叉树,假设共n个节点,区间为[0,n-1],那么共2*n-1个节点,深度log(2*n-1),即O(logn),这基本上述所有操作的复杂度。 线段树缺点:数列中的数不能添加或者删除。 查询的时候为什么也需要h 阅读全文
posted @ 2013-08-07 22:38 HackerVirus 阅读(166) 评论(0) 推荐(0)
摘要: UML在需求分析与系统设计中之实战讲解(完整UML图形演示)小序:从学生时代就接触到UML,几年的工作中也没少使用,各种图形的概念、图形的元素和属性,以及图形的画法都不能说不熟悉。但是怎样在实际中有效地使用UML使之发挥应有的作用,怎样捕捉用户心中的需求并转换成明确的UML图形,怎样把自己心中的设计意图通过UML图形准确地表达出来,以及各职责人员如何通过UML图形进行有效沟通,关于这些,却深感迷茫。最近有幸得到了一个台湾人赖信仁写的《UML团队开发流程与管理》这本书,才拜读了前两章,就已经爱不释手了,颇有点欣喜若狂的感觉,看了半本书之后,上述的种种疑惑均已雾开云散了。这本书与我之前看到过的任何 阅读全文
posted @ 2013-08-07 17:19 HackerVirus 阅读(836) 评论(0) 推荐(2)
摘要: 在复制中,有的时候会出现订阅端被人修改,导致发布端插入数据的时候主键冲突,这个时候我们要做的不是直接的初始化太过暴力,而对于生产环境来说,这样的操作代价也会很大。下面会说几种方法来处理冲突:1、 查看出错的复制命令的具体内容如果在复制监视器的订阅详细信息中查看分发代理出错信息时,如果发错发生在应用复制命令时,则可以看到类似信息:尝试的命令: If @@TRANCOUNT > 0 rollback tran (事务序列号:.......) 错误消息:违反了primary key 约束'%s'。不能在对象'%S'中插入重复键.如下例子:尝试的命令:if @@t 阅读全文
posted @ 2013-08-07 16:59 HackerVirus 阅读(643) 评论(1) 推荐(0)
摘要: javascript语言精粹mindmap最近刚刚读完《javascript语言精粹》,感觉其中的内容确实给用js作开发语言的童鞋们提了个醒——js里面坑很多啊不过,我也并不完全认同书中所讲的所有内容,有些书中认为是糟粕的特性,我觉得其实也无伤大雅。根据自己的理解和认识,做了个归纳,方便以后自己时不时温习一下。如需转载,请注明转自:http://www.cnblogs.com/silenttiger/p/3243430.html标签:javascript 不知道你是否会有这样的感概,当自己想自学某门新技术时,或是动手写点小程序时,亦或者找个logo,图标诸如此类等等等等,你觉得很简单,却... 阅读全文
posted @ 2013-08-07 16:56 HackerVirus 阅读(244) 评论(0) 推荐(0)
摘要: 安装和配置jBPM4,并举个hello.w至于网上很复杂,但又不懂的插件,我们先不鸟他。myeclipse8\dropins这里就是给我们放插件的,类似SVN之类的。所以小生也修改了下,共享了下。只有放在目录下,打开应该可以的。下面是链接。http://pan.baidu.com/share/link?shareid=2893731881&uk=3307409781重启下myeclipse,我们会很自然发现:这说明我们成功了一步,然后我们慢慢配置对于我们有利的。配置jBPM4的配置环境:1.选择 Window→ Preferences2.选择Jboss jBPM4里面→Runtime 阅读全文
posted @ 2013-08-07 10:21 HackerVirus 阅读(655) 评论(0) 推荐(0)
摘要: DDD:谈谈数据模型、领域模型、视图模型和命令模型背景一个类型可以充当多个角色,这个角色可以是显式的(实现了某个接口或基类),也可以是隐式的(承担的具体职责和上下文决定),本文就讨论四个角色:数据模型、领域模型、视图模型和命令模型。四个角色数据模型:面向持久化,数据的载体。领域模型:面向业务,行为的载体。视图模型:面向UI(向外),数据的载体。命令模型:面向UI(向内),数据的载体。这是四种角色,可以由一至四个类型来承担,具体选择几个类型需要考虑项目的上下文,但不同的选择对编程的要求是不同的,下面举几个例子。数据模型和领域模型采用统一个类型,采用EntityFramework进行持久化。这种设 阅读全文
posted @ 2013-08-07 10:03 HackerVirus 阅读(420) 评论(0) 推荐(0)
摘要: 多个文件目录下Makefile的写法1、前言 目前从事于linux下程序开发,涉及到多个文件,多个目录,这时候编译文件的任务量比较大,需要写Makefile。关于Makefile的详细内容可以参考网上流传非常广泛的《跟我一起写Makefile》http://blog.csdn.net/haoel/article/details/2886/,作者是个大牛,非常佩服。2、简单测试 测试程序在同一个文件中,共有func.h、func.c、main.c三个文件,Makefile写法如下所示: 1 CC = gcc 2 CFLAGS = -g -Wall 3 4 main:main.o func.... 阅读全文
posted @ 2013-08-07 10:00 HackerVirus 阅读(264) 评论(0) 推荐(0)
摘要: 谈谈.NET程序集(一)谈谈.NET程序集(一)The Assembly in .NETby 唐小崇http://www.cnblogs.com/tangchong在.NET出现之前, Windows的程序有一些非常困扰人的问题:1.当安装一个新的应用程序,有些时候会发现,它莫名其妙地损坏了已安装的应用程序(事实上是在系统的Win32文件夹内添加了与之前重名的dll文件,导致该dll被覆盖)。这种困境被称大家称为“DLL灾难”。2.大部分的程序安装会影响到所有的系统部件。比如:要在不同的位置拷贝文件,要在注册表中添加信息。这个问题在于不能将应用程序作为一个单一的实体,这同时也导致了程序不便于拷 阅读全文
posted @ 2013-08-07 09:53 HackerVirus 阅读(221) 评论(0) 推荐(0)
摘要: Ajax初步理解最近在项目中经常会使用Ajax技术,用法上倒是熟练了,但是只知其然,不知其所以然,抽时间读了读JavaScript高级程序设计中关于Ajax的介绍有了些初步的理解,在此总结一下。什么是AjaxAjax是Asynchronous JavaScript and XML的缩写,这一技术能够向服务器请求额外的数据而无需卸载整个页面,会带来良好的用户体验。传统的HTTP请求流程大概是这样的,浏览器向服务器发送请求-〉服务器根据浏览器传来数据生成response-〉服务器把response返回给浏览器-〉浏览器刷新整个页面显示最新数据,这个过程是同步的,顺序执行。AJAX 在浏览器与 We 阅读全文
posted @ 2013-08-07 09:52 HackerVirus 阅读(185) 评论(0) 推荐(0)