CMake之简单工程实践

Posted by & filed under Uncategorized.

  CMake之简单工程实践 转载出处:http://blog.csdn.net/cywosp/article/details/9763261 在实践CMake之前先让我们来看看cmake是什么,下面是从百度百科上摘抄下来的关于cmake的简介: CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 Read more […]

程序员为什么要加班

Posted by & filed under Uncategorized.

  首先,假设这个程序员是一位职场新手甲。他刚大学毕业,没有工作经验。来自产品的需求,他要理解很久才能做。然后开发的过程中会遇到各种问题,如果经验不足以支撑他快速完成任务,那么只能求助于网络,书籍,熟人。如果这些都帮助不了他。他需要求助于同事。但是次数频繁,同事会厌倦于帮他解答;他也会羞于咨询。这时,他一天下来,基本都会卡在一个很简单的问题上。下班了,他还没有完成任务。没错,他需要加班了,因为他的编程能力非常差。     大概没有人会知道他是因为需要处理一个并非高科技的问题。不懂技术的上司以为他是个勤奋的员工,非常看重他。可是,这什么进度还是会这么慢呢?创业的公司可等不起。这一切,如果招到一个有经验的开发人员,这一切的加班似乎都不需要。   Read more […]

Snmp学习笔记

Posted by & filed under Uncategorized.

  相关链接: Snmp学习笔记 使用snmp4j实现Snmp功能(一) 使用snmp4j实现Snmp功能(二) 使用snmp4j实现Snmp功能(三) SNMP是英文“Simple Network Management Protocol”的缩写,中文意思是“简单网络管理协议”。SNMP是目前最常用的环境管理协议。SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。SNMP是一系列协议组和规范,它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。 目前,几乎所有的网络设备生产厂家都实现了对SNMP的支持。领导潮流的SNMP是一个从网络上的设备收集管理信息的公用通信协议。设备的管理者收集这些信息并记录在管理信息库(MIB)中。这些信息报告设备的特性、数据吞吐量、通信超载和错误等。MIB有公共的格式,所以来自多个厂商的SNMP管理工具可以收集MIB信息,在管理控制台上呈现给系统管理员。 SNMP提供了一种统一的、跨平台的设备管理办法。 概念太抽象,先来看一个例子。 我们来做一个最简单的Snmp操作:获取一台机器的机器名,假设其IP是192.168.1.1。 首先要给192.168.1.1安装Snmp环境。Window组件的管理监视工具里包含Snmp,只需要安装一下就可以了。Snmp默认的通信端口是161/162,有的系统需要手动设置,这个可以通过创建筛选器列表来实现,具体怎么设置网上很多,大家可以去搜索一下。另外需要关闭192.168.1.1的防火墙。 接下来需要一个能够进行Snmp通信的工具,比较简单的有snmputil,大家可以去网上下载。 snmputil的命令规则是: snmputil Read more […]

Java串口通信简单实例

Posted by & filed under Uncategorized.

1 、下载 java 串口包   sun 的官方下载 http://java.sun.com/products/javacomm/ 只提供 solaris 平 台 x86/sparc 架构及 linux 平台 x86 架构的扩展 API ,目前最新版本为 3.0 。   windows 平台的扩展包到以下地址下载, http://llk.media.mit.edu/projects/cricket/software/javaSerial.zip (两个文 件夹里面有所需的 3 个文件), http://mdubuc.freeshell.org/Jolt/javacomm20-win32.zip 和(完整的 2.0 版本, 还有 examples )。   因为实在 win xp 平台中进行的开发测试,我下载的是 javaSerial.zip ,解压后 有两个文件夹 putInBin 和 putInLib ,分别存放的是 win32com.dll 和 comm.jar 与 javax.comm.properties 文件。   2 、配置 java 串口包   将解压得到的三个文件分别放入以下位置,   javax.comm.properties——–> Read more […]

jQuery EasyUi中的DataGrid

Posted by & filed under Uncategorized.

 $(function(){ $(‘#tt’).datagrid({ title:’datagrid小例子’, iconCls:’icon-ok’, width:500, height:320, pageSize:5, pageList:[5,10,15,20], nowrap:false, striped: true, collapsible:true, url:’easyAction.action’, loadMsg:’数据装载中……’, sortName:’code’, sortOrder:’desc’, remoteSort:false, frozenColumns:[[ {field:’ck’,checkbox:true} ]], columns:[[ {title:’学号’,field:’id’,width:’50’,rowspan:2,align:’center’}, {title:’姓名’,field:’name’,width:’60’,rowspan:2,align:’center’}, {title:’性别’,field:’sex’,width:’50’,rowspan:2,align:’center’}, {title:’年龄’,field:’age’,width:’50’,rowspan:2,align:’center’}, {title:’出生日期’,field:’birthday’,width:’120′,rowspan:2,align:’center’}, {title:’班级’,field:’className’,width:’100′,rowspan:2,align:’center’} ]], pagination:true, rownumbers:true }); $(‘#tt’).datagrid(‘getPager’).pagination({ displayMsg:’当前显示从{from}到{to}共{total}记录’, onBeforeRefresh:function(pageNumber, Read more […]

jquery easyui datagrid 数据绑定问题

Posted by & filed under Uncategorized.

①首先肯定需要有一个table标签,给它定义一个id,在js中通过id.datagrid方法即可创建表格 <table id=”tt”></table> $(‘#tt’).datagrid(options); ②创建表格的列名有两种方式:第一种是直接在table标签中定义,第二种是在js中定义: 我使用的是第一种方式: <!– 表格 –> <table id=”loginInfoTable” title=”用户信息一览” border=”0″ cellspacing=”0″ cellpadding=”0″ iconCls=”icon-edit” width=”98%” idField=”loginId” pagination=”true” remoteSort=”false” singleSelect=”false” showFooter=”false” striped=”true” url=”<%=root%>/ospm/loginInfo/doLoginInfoSearch.jhtml”> <thead> <tr align=”center”> <th field=”ck” width=”20″ checkbox=”true” width=”20″></th> <th Read more […]

java串口通信

Posted by & filed under Uncategorized.

Java提供了 CommunicationAPI(包含于javax.comm包中)用于通过与机器无关的方式,控制各种外部设备。Communications API,是标准的Java的扩展部分,它在JavaAPI中是没有附带的。因此,必须先在SUN公司网站的Java站点(www.java.sun.com)上下载这个扩展类库。 1.1Communications API 简介 Communications API 的核心是抽象的CommPort类及其两个子类:SerialPort类和ParallePort类。其中,SerialPort类是用于串口通信的类,ParallePort类是用于并行口通信的类。CommPort类还提供了常规的通信模式和方法,例如:getInputStream( )方法和getOutputStream( )方法,专用于与端口上的设备进行通信。 然而,这些类的构造方法都被有意的设置为非公有的(non-public)。所以,不能直接构造对象,而是先通过静态的CommPortIdentifer.getPortIdentifiers()获得端口列表;再从这个端口列表中选择所需要的端口,并调用CommPortIdentifer对象的Open( Read more […]

【转】迅雷下载原理

Posted by & filed under Uncategorized.

1.迅雷是什么? 迅雷是基于P2SP的一款下载软件,能够大大增强下载速度,可谓迅雷不及掩耳盗铃之势如破竹。 P2SP的道理不复杂,就是指:如果多个服务器上有某个相同的文件,当某个用户下载其中一个服务器上的这一文件时,迅雷会自动查找到另外的几个服务器,同时下载这一文件,达到提速的目的。 迅雷比较流氓,在用户没有得到任何提示毫不知情的情况下,偷偷上传用户的本地文件,在所有网络流量的统计中排到了第7位。(注:CERNET上似乎可以进三强)迅雷比较小气,不说源代码不是公开的,连原理也不公开。 迅雷比较聪明,她的架构让人佩服啊佩服,佩服啊佩服,佩服啊佩服…… 2 下载原理 还记得百度的mp3搜索么?你到mp3.baidu.com上搜索一个mp3,百度会给你列出她知道的所有服务器列表(这些服务器都是别人的),你可以在百度上点击该连接下载mp3,而不用登陆真正的服务器。 迅雷就是把这个过程自动化了,并且增加了判断文件唯一性的功能,画个图简单说明一下: 1.用户点击1.2.3.4上的QQ_1.exe文件的连接 2.用户客户机上的迅雷得到该文件的唯一的校验值。 3.迅雷自动向自己的资源服务器上搜索,查找到存放同一文件的其他的服务器列表 4.得到文件在该服务器上的目录和文件名(红色部分,有可能和原始连接中的文件名不相同),http://www.cnblogs.com/erwin/admin/ftp://1.2.3.5/QQ_2.exe,http://1.2.3.6/QQ_3.exe,以及公网用户1.2.3.7有QQ.exe 5.迅雷自动向1.2.3.5和1.2.3.6上下载该文件的不同文件块,以达到加速下载的目的(紫色部分)。 6.用户向公网用户1.2.3.7发送一个UDP资源请求 7.1.2.3.7回应一个资源请求说:偶这儿有你要的文件 8.用户向公网用户1.2.3.7的3077端口发起请求,并传输数据。 9.下载完毕后,如果迅雷资源服务器上,该文件的服务器列表中没有目前用户点击下载的服务器1.2.3.4,则将这个新的服务器地址加入到该文件的服务器列表(蓝色部分)。 注: 1.上述过程中的6、7、8步骤中隐含了一个过程:判断用户是否是公网用户。 如果是公网用户,则该用户的IP地址和提供下载服务的端口也将记录在迅雷的资源服务器中,后续用户可以从该用户处下载;第三节有这个过程的说明。 2.迅雷如何区分不同的文件?很多文件名字不同但是内容相同,很多文件名字相同但是内容不同。搜索迅雷的相关信息只是得到了几句无关痛痒的废话:迅雷还使用了独创的文件校验机制,保证了用户下载文件的正确性和完整。至于什么方法不得而知 3.我们如何查看迅雷搜索到的资源列表? 在迅雷搜索到一系列的资源列表并且任务没有完成时,会在相同下载目录下建立一个临时文件,里面有搜索到的资源信息,其中peer就是搜索到的包含要下载文件的公网用户。 3 Read more […]

【转】效率不高的7个原因

Posted by & filed under Uncategorized.

  你是否感到很失望,不管你怎样努力,似乎做事都是效率低下?如果是这样,你必须立即行动起来,因为躺在那里是并不能解决问题,也不会有奇迹发生。 从哪里开始呢?这总是找出问题的第一步,这里列出了7种常见的效率低下的原因: 原因之一:你痛恨你所做的事 如果你对所做的事没有强烈的要做大的愿望,想要高效率的确是个挑战。你的效率不会高,你会把生活中的一切当作琐事看待,换句话说,长远来看,你将会失去很多。 原因之二:没有安排好优先权 简单的忙碌并不能把事情搞定。你可能整天忙碌,筋疲力尽,但却没有意识到,你并没有完成哪些真正值得你去做的事情。如果你真的想要高效率,那就要区分出哪些事情值得做,哪些事情应该抛弃,不值得去做。 原因之三:你不习惯工作 我很抱歉打断你的工作。但是,如果你习惯了朝九晚五的工作,坐在办公室里却并不积极工作,你无法期待会有高的工作效率。不管你多么强烈地希望能高效工作,但不可能一夜之间看到结果。只要你一步步努力,就会朝着正确的方向发展。 原因之四:你容易分心 如果你不能集中精力于当前任务,如果任何事情能能造成你分心,那么恐怕你需要认真解决这个问题。通过一些小事帮你集中精力,比如在一个特定屋子或房间里面工作,拿走电话等。 原因之五:太多事情扰乱你 正常的打扰没什么,但是,你必须知道,什么时候这种打扰太多了,并采取办法。 原因之六:你的生活方式不健康 所有的不眠之夜都将回头伤害你,这点无需置疑。拥有健康的生活方式是对自己的投资,你所能做的最重要的事情就是,不再忽略自己的健康,并对此负责。 原因之七:你从不学习 每个人都会犯错误,这是很正常的,也是人类生活的一部分。但是,如果你不从错误中学习,这是无法接受的。朋友,如果你不从中汲取教训,那么将来你还会不断犯下同样的错误。 转载自:http://www.cnblogs.com/erwin/archive/2008/05/05/1183475.html Read more […]

【转】当我想要···

Posted by & filed under Uncategorized.

如果我要找资源,我会选GOOGLE 如果我要找中文资源,我也许还会再试试百度 如果我要找歌和电影,百度是我的主要选择(我从不直接去所谓的什么免费电影网站,大多是骗人的) 如果我要用地图,我会选百度,当然本地也有一个 桌面搜索,我用GOOGLE   如果我要做一个项目,我会首选考虑跨平台的解决方案,我不想让自己绑定在某一种硬件或OS上 如果要开发B/S,WEB框架我会首先选用STRUTS,其次是JSF,SPRING MVC也可以一试 IOC/AOP,我会用SPRING O/R:HIBERNATE和IBATIS 开发服务器,我会选择TOMCAT或JBOSS 轻量级数据库我会用HSQLDB或DERBY,当然,ACCESS也不错 开发工具我会用ECLIPSE和JBUILDER 大型数据库我会用ORACLE或DB2,mySQL也是常考虑的(虽然不大型) 如果需要工作流,那我会先考虑开源的osworkflow 如果需要规则引擎,我也会先考虑开源的drools 如果需要CACHE,我会先考虑oscache 如果需要日志,没有如果,我会有log4j,也许再使用上面的common-logging,也许自己在封装一下 如果需要同异构系统关联,我会先考虑webservices,其次是corba,或是自定义的文本协议(用随便一种传输协 议交互,如HTTP,FTP) 如果要有消息传输,我会有JMS,其次是JGROUP 如果要数据同步,我会首先考虑数据库的内置方案,我也会考考虑syn4j 如果需要版本控制,我会首先CVS,其次是sourcesafe,还有cc 如果需要需求管理,我只用过DOORS 普通的项目计划,我一般用project 如果要用JAVA做应用界面,我会先考虑SWING,其次是SWT,界面框架ECLIPSE Read more […]