Fork me on GitHub

2013年8月20日

摘要: C#采集代理服务器ip并设置IE代理--HtmlAgilityPack实战代码今天在博客园看到一篇文章,说是C#采集某某的数据,其实做采集小软件很久了,用的最好的还是HtmlAgilityPack,真的没话说,非常方便快捷。这里有详细介绍[.Net解析html文档类库HtmlAgilityPack完整使用说明--采集软件开发尤其好用].本文不做详细说明了。主要还是上代码啊。毕竟业务应用才是我们开发人员努力编码的最终目的,谁也不会为了单纯写点代码就自我满足了,满足业务需求才是主要的。最近朋友叫我帮忙写一个小程序,获取某个网站的代理。也不怕大家知道了,就是这个网站http://www.youdai 阅读全文
posted @ 2013-08-20 09:50 HackerVirus 阅读(596) 评论(0) 推荐(0)
摘要: 摄像头、麦克风、扬声器测试程序(附源码)在开发类似语音视频聊天或视频会议这样的系统时,它们通常都包含一个测试音视频设备的功能 -- 通过该测试,用户可以选择要使用的音视频设备(对于程序内部而言,就是确定要使用设备的Index),就像QQ的语音测试向导和视频设置。这里,我介绍一下如何使用OMCS来实现类似的功能,只需少量代码即可搞定。先上测试程序运行起来后的截图:如果声卡没有安装,或设备无效,会给出相应的提示,就像下面这样:1.实现思路(1)由于OMCS是基于网络的语音视频框架,是标准的C/S结构,所以必须要有服务端的存在。(2)虽然OMCS服务端可以部署在有网络连接的任何地方,但是,为了方便起 阅读全文
posted @ 2013-08-20 09:44 HackerVirus 阅读(589) 评论(0) 推荐(0)
摘要: 依赖注入(IOC)背景介绍在设计模式中,尤其是结构型模式很多时候解决的就是对象间的依赖关系,变依赖具体为依赖抽象。平时开发中如果发现客户程序依赖某个或某类对象,我们常常会对他们进行一次抽象,形成抽象的抽象类、接口,这样客户程序就可以摆脱所依赖的具体类型。这个过程中有个环节被忽略了------谁来选择客户程序需要的满足抽象类型的具体类型呢?通过后面的介绍你会发现很多时候创建型模式可以比较优雅的解决这个问题,但另一个问题出现了,如果您设计的不是具体的业务逻辑,而是公共库或框架程序呢,这时候你是一个‘服务方’,不是你调用那些构造类型,而是它们把抽象类型传给你,怎么松散地把加工好的抽象类型传递给客户程 阅读全文
posted @ 2013-08-20 09:40 HackerVirus 阅读(171) 评论(0) 推荐(0)

2013年8月19日

摘要: 类型如何设计一门语言(九)——类型类型是了解编程语言的重要一环。就算是你喜欢动态类型语言,为了想实现一个靠谱的东西,那也必须了解类型。举个简单的例子,我们都知道+和-是对称的——当然这只是我们的愿望了,在javascript里面,"1"+2和"1"-2就不是一回事。这就是由于不了解类型的操作而犯下的一些滑稽的错误。什么,你觉得因为"1"的类型是string所以"1"+2就应该是"12"?啐!"1"的类型是(string | number),这才是正确的做法。了解编程语言的基本 阅读全文
posted @ 2013-08-19 15:36 HackerVirus 阅读(320) 评论(0) 推荐(0)
摘要: AaronYang的C#私房菜[二][提供编程效率的技巧]前言 我的文章简单易懂,能学到东西。因为复杂的东西,讲起来,好累。阅读者只是膜拜,学不到东西,就是没用的东西,好多文章都是看不下去。我写不出来《大话设计模式》那种为了读者的书,因为没有时间写,这真的是实话。写篇文章真的其实很花时间的,最近一直看别人的东西,所以没怎么写了。有的人文章写 情感,而有的写技术。这篇文章属于中间的,你将物超所值,让代码飞起来,让技术加速。 写代码的人,我简称 Coder,简写 CD 了看网页 1. 作为一个合格的CD,遇到问题,第一件事情,不要去问别的 CD(你的导师或者上司),而是应该先去百度或者谷歌。 中文 阅读全文
posted @ 2013-08-19 15:34 HackerVirus 阅读(308) 评论(0) 推荐(0)
摘要: Fluent Nhibernate code frist简单配置前言在以前的项目开发过程中使用nhibernate做完orm映射工具需要编写大量的xml映射文件,项目过程中往往会因为一个字段等小小的映射错误而很难去发现问题所在而且非常繁琐,后来我们的项目中采取了第三方的映射插件Nhibernate.Mapping.Attribute直接在实体类上标记生成映射文件,最近的新项目中打算使用fluent nhibernate,这个工具中提供了一个方法让你不再需要去写NHibernate的标准映射文件(.hbm.xml),而是可以把映射文件都使用C#来写。这样做,方便了我们的代码重构,提供了代码的易读 阅读全文
posted @ 2013-08-19 15:32 HackerVirus 阅读(242) 评论(0) 推荐(0)
摘要: Ubuntu环境搭建系列—JavaEE篇恩,其实我是一时兴起,所以就写了目前这几篇环境的博文,希望能给自己做一个笔记,同时也能够给一些新手带来一些帮助,不会在配置方面那么迷茫。本篇文章主要就是针对Java web开发进行环境搭建。一、Tomcat的下载安装1下载地址:http://tomcat.apache.org/download-70.cgi2.选择zip版本或者tar.gz版本的压缩包并且下载 1)如果下载的是zip压缩包,直接使用unzipapache-tomcat-7.0.42.zip进行解压 2)如果下载的是.tar.gz压缩包,直接使用tar -zxvf apache-tomca 阅读全文
posted @ 2013-08-19 15:29 HackerVirus 阅读(278) 评论(0) 推荐(0)
摘要: Lazy 对象的创建方式,始终代表了软件工业的生产力方向,代表了先进软件技术发展的方向,也代表了广大程序开发者的集体智慧。以new的方式创建,通过工厂方法,利用IoC容器,都以不同的方式实现了活生生实例成员的创生。而本文所关注的Lazy也是干这事儿的。不过,简单说来,Lazy要实现的就是按“需”创建,而不是按时创建。我们往往有这样的情景,一个关联对象的创建需要较大的开销,为了避免在每次运行时创建这种家伙,有一种聪明的办法叫做实现“懒对象”,或者延迟加载。.NET 4.0之前,实现懒对象的机制,需要开发者自己来实现与管理它的定义如下:[Serializable]public class Laz. 阅读全文
posted @ 2013-08-19 14:09 HackerVirus 阅读(234) 评论(0) 推荐(0)
摘要: select、poll、epoll之间的区别总结[整理]select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。关于这三种IO多路复用的用法,前面三篇总结写的很清楚,并用服务器回射echo程序进行了测试。连接如下所示:select:http:/.. 阅读全文
posted @ 2013-08-19 14:04 HackerVirus 阅读(140) 评论(0) 推荐(1)
摘要: (1)要运用STL的算法,首先必须包含头文件,某些STL算法用于数值处理,因此被定义于头文件(2)所有STL算法都被设计用来处理一个或多个迭代器区间,第一个区间通常以起点和终点表示,至于其他区间,多数情况下你只需提供起点便足以,其终点可以自动以第一个区间的元素数量推断出来,调用者必须保证这些区间的有效性。STL算法采用覆盖模式而非安插模式,所以调用者必须保证目标区间拥有足够的元素空间,当然你也可以运用特殊的安插型迭代器将覆盖模式改变为安插模式。(3)尾词_if:如果算法有两种形式,参数个数都相同,但第一形式的参数要求传递一个值,第二形式的参数要求传递一个函数或仿函数,那么尾词_if就派上了用场 阅读全文
posted @ 2013-08-19 14:01 HackerVirus 阅读(280) 评论(0) 推荐(0)