Loading

摘要: 由于工作需要,调研过一段时间的工业控制方面的“组态软件”(SCADA)的开发,组态软件常用于自动化工业控制领域,其中包括实时数据采集、数据储存、设备控制和数据展现等功能。其中工控组件的界面展现的实现类似于Windows系统下的各种开发控件,通过各种控件的组装,和硬件协议的集成,就可以实现对相应设备的... 阅读全文
posted @ 2014-12-13 20:09 阿凡卢 阅读(22460) 评论(8) 推荐(9) 编辑
摘要: 记得以前就看过这篇文章:How to write a spelling corrector,文章将贝叶斯原理运用于拼写检查,二十几行简单的Python的代码就实现了一个拼写检查器。原作者python代码:import re, collectionsdef words(text): return re... 阅读全文
posted @ 2014-11-15 16:58 阿凡卢 阅读(4031) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章介绍了基于Mybatis对数据库的增、删、改、查。这一篇介绍下关联查询(join query)。 三张表:user article blog 表的存储sql文件: /* Navicat MySQL Data Transfer Source Server : localhost Source 阅读全文
posted @ 2014-10-19 19:07 阿凡卢 阅读(83380) 评论(4) 推荐(6) 编辑
摘要: 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain 阅读全文
posted @ 2014-10-19 16:16 阿凡卢 阅读(161098) 评论(5) 推荐(6) 编辑
摘要: Spring MVC简介 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化 阅读全文
posted @ 2014-10-12 17:27 阿凡卢 阅读(3021) 评论(0) 推荐(2) 编辑
摘要: 写一个函数交换两个变量的值。C:错误的实现:void swap(int i, int j) { int t = i; i = j; j = t;}因为C语言的函数参数是以值来传递的(pass by value),参数传递时被copy了,所以函数中交换的是复制后的值。正确的实现:指针版:v... 阅读全文
posted @ 2014-09-29 09:54 阿凡卢 阅读(2856) 评论(3) 推荐(0) 编辑
摘要: 介绍hessian主页:http://hessian.caucho.com/一个简单的例子学习hessian服务:服务端为Java,客户端为C#。先要准备好C#和Java的第三方类库:http://hessian.caucho.com/Hssiancharp.dllhessian-4.0.37.ja... 阅读全文
posted @ 2014-09-13 16:47 阿凡卢 阅读(8631) 评论(3) 推荐(1) 编辑
摘要: Netty的主页:http://netty.io/index.html 使用的Netty的版本:netty-4.0.23.Final.tar.bz2 ‐ 15-Aug-2014 (Stable, Recommended) Http 消息格式: Http request: Http response: 阅读全文
posted @ 2014-09-06 15:39 阿凡卢 阅读(89649) 评论(6) 推荐(2) 编辑
摘要: RabbitMQ主页:https://www.rabbitmq.com/ AMQP AMQP协议是一个高级抽象层消息通信协议,RabbitMQ是AMQP协议的实现。它主要包括以下组件: 1.Server(broker): 接受客户端连接,实现AMQP消息队列和路由功能的进程。 2.Virtual H 阅读全文
posted @ 2014-08-17 18:03 阿凡卢 阅读(160140) 评论(14) 推荐(38) 编辑
摘要: 一、多线程的优缺点多线程的优点:1)资源利用率更好2)程序设计在某些情况下更简单3)程序响应更快多线程的代价:1)设计更复杂虽然有一些多线程应用程序比单线程的应用程序要简单,但其他的一般都更复杂。在多线程访问共享数据的时候,这部分代码需要特别的注意。线程之间的交互往往非常复杂。不正确的线程同步产生的... 阅读全文
posted @ 2014-07-26 16:29 阿凡卢 阅读(43346) 评论(2) 推荐(7) 编辑
摘要: 一、单例模式的C#实现:(1)使用double-checked locking的方式:public sealed class Singleton{ private static volatile Singleton instance = null; private static read... 阅读全文
posted @ 2014-07-13 16:22 阿凡卢 阅读(728) 评论(0) 推荐(1) 编辑
摘要: Python多线程编程中常用方法:1、join()方法:如果一个线程或者在函数执行的过程中调用另一个线程,并且希望待其完成操作后才能执行,那么在调用线程的时就可以使用被调线程的join方法join([timeout]) timeout:可选参数,线程运行的最长时间2、isAlive()方法:查看线程... 阅读全文
posted @ 2014-07-06 13:49 阿凡卢 阅读(9832) 评论(1) 推荐(3) 编辑
摘要: 一 地图的加载与显示 关于GMap的介绍与使用可以看我以前的文章: GMap.Net开发之在WinForm和WPF中使用GMap.Net地图插件 GMap.Net是.Net下一个地图控件,可以基于Http协议加载各个公司的地图,如Google,Bing,ArcGIS的,主要原理是通过解析各个公司的地 阅读全文
posted @ 2014-06-22 14:52 阿凡卢 阅读(69165) 评论(46) 推荐(16) 编辑
摘要: DIP,IoC,DI基本概念依赖倒置原则(DIP,Dependency Inverse Principle):强调系统的“高层组件”不应当依赖于“底层组件”,并且不论是“高层组件”还是“底层组件”都应当依赖于抽象。抽象不应当依赖于实现,实现应当依赖于抽象。依赖(Dependency):组件A如果:①... 阅读全文
posted @ 2014-06-16 21:03 阿凡卢 阅读(1692) 评论(3) 推荐(3) 编辑
摘要: SQLite介绍SQLite is a software library that implements aself-contained,serverless,zero-configuration,transactionalSQL database engine.SQLite是一个开源、免费的小型R... 阅读全文
posted @ 2014-06-12 21:45 阿凡卢 阅读(160221) 评论(8) 推荐(18) 编辑
摘要: 如何判断一个点是否在多边形内部?(1)面积和判别法:判断目标点与多边形的每条边组成的三角形面积和是否等于该多边形,相等则在多边形内部。(2)夹角和判别法:判断目标点与所有边的夹角和是否为360度,为360度则在多边形内部。(3)引射线法:从目标点出发引一条射线,看这条射线和多边形所有边的交点数目。如... 阅读全文
posted @ 2014-05-11 21:52 阿凡卢 阅读(85326) 评论(7) 推荐(9) 编辑
摘要: 简单的Http Server 使用Libevent内置的http相关接口,可以很容易的构建一个Http Server,一个简单的Http Server如下: 通过Libevent的接口构建一个Http Server的过程如下: (1)初始化:在event_base上新建一个evhttp,将这个evh 阅读全文
posted @ 2014-05-02 23:01 阿凡卢 阅读(40508) 评论(7) 推荐(5) 编辑
摘要: 一些概念: 同步和异步 同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发I/O操作并等待或者轮询的去查看I/O操作是否就绪,而异步是指用户进程触发I/O操作以后便开始做自己的事情,而当I/O操作已经完成的时候会得到I/O完成的通知。 阻塞和非阻塞 阻塞和非阻塞是针对于进程在访问数据 阅读全文
posted @ 2014-04-26 17:28 阿凡卢 阅读(9676) 评论(2) 推荐(8) 编辑
摘要: Libevent官网:http://libevent.org/ windows 7下编译: 编译环境: windows 7 + VS2010 (1)解压libevent到F:\libevent\libevent-2.0.21-stable (2)打开Microsoft visual studio 2 阅读全文
posted @ 2014-03-16 15:34 阿凡卢 阅读(44476) 评论(10) 推荐(2) 编辑
摘要: 应用程序配置文件(App.config)是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。对于一个config文件: 对config配置文件的读写类:using System... 阅读全文
posted @ 2014-03-13 21:09 阿凡卢 阅读(106204) 评论(4) 推荐(5) 编辑