Thomson-Blog ( 学习,学习,再学习;努力,努力,再努力。)
在学习的路上不断成长,成功之路就在脚下。
摘要: 1.如何获得当前文件路径常用:字符串类型:System.getProperty("user.dir");综合:package com.zcjl.test.base;import java.io.File;public class Test {public static void main(String[] args) throws Exception {System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));System.out.println( 阅读全文
posted @ 2014-02-25 15:22 Thomson-Blog 阅读(729) 评论(0) 推荐(0) 编辑
摘要: 在此仅仅讨论网络设备驱动的一般写法,有关硬件部分的相关代码由于硬件规格不同,予以省略。有什么地方错误,或补充,欢迎大家提出。1, 驱动模块的加载和卸载如果网络设备(包括wireless)是PCI规范的,则先是向内核注册该PCI设备(pci_register_driver),然后由pci_driver数据结构中的probe函数指针所指向的侦测函数来初始化该PCI设备,并且同时注册和初始化该网络设备。如果网络设备(包括wireless)是PCMCIA规范的,则先是向内核注册该PCMCIA设备(register_pccard_driver),然后driver_info_t数据结构中的attach函数 阅读全文
posted @ 2014-02-25 15:20 Thomson-Blog 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 一、概述1.Netfilter/IPTables框架简介 Netfilter/IPTables是继2.0.x的IPfwadm、2.2.x的IPchains之后,新一代的Linux防火墙机制。Netfilter采用模块化设计,具有良好的可扩充性。其重要工具模块IPTables连接到Netfilter的架构中,并允许使用者对数据报进行过滤、地址转换、处理等操作。 Netfilter提供了一个框架,将对网络代码的直接干涉降到最低,并允许用规定的接口将其他包处理代码以模块的形式添加到内核中,具有极强的灵活性。2.主要源代码文件Linux内核版本:2.4.21 Netfilter主文件:n... 阅读全文
posted @ 2014-02-25 15:19 Thomson-Blog 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn1. 前言netlink协议族是Linux内核网络部分的一个固定部分, 一旦在内核配置中选了网络支持就自动带了而不能单独去掉。netlink的实现源码在net/netlink目录下,主要是net/netlink/af_netlink.c文件。以下内核代码版本为2.6.19.2, 如无特别说明代码取自net/netlink/af_netlink.c。2. 数据结构netl 阅读全文
posted @ 2014-02-25 15:08 Thomson-Blog 阅读(1282) 评论(0) 推荐(0) 编辑
摘要: 一、简述 目前流行和成熟的kernel inline hook技术就是修改内核函数的opcode,通过写入jmp或push ret等指令跳转到新的内核函数中,从而达到修改或过滤的功能。这些技术的共同点就是都会覆盖原有的指令,这样很容易在函数中通过查找jmp,push ret等指令来查出来,因此这种inline hook方式不够隐蔽。本文将使用一种高级inline hook技术来实现更隐蔽的inlinehook技术。 二、更改offset实现跳转 如何不给函数添加或覆盖新指令,就能跳转到我们新的内核函数中去呢?我们知道实现一个系统调用的函数中不可能把所有功能都在这个函数中全部实现,它必定... 阅读全文
posted @ 2014-02-25 15:06 Thomson-Blog 阅读(1094) 评论(0) 推荐(0) 编辑
摘要: 内容基本上来自两篇文章:《Netfilter源码分析》—(独孤九贱http://www.skynet.org.cn/index.php)《Linux Netfilter实现机制和扩展技术》——(杨沙洲国防科技大学计算机学院)一、IP报文的接收到hook函数的调用1.1ip_input.cip_rcv()函数以接收到的报文为例,类似的还有ip_forward(ip_forward.c)和ip_output(ip_output.c)int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt, stru 阅读全文
posted @ 2014-02-25 15:04 Thomson-Blog 阅读(1007) 评论(0) 推荐(0) 编辑
摘要: 概要:前一篇文章我们总体介绍了Junit4的用法以及一些简单的测试。之前我有个疑惑,Junit4怎么把一个test case跑起来的,在test case之前和之后我们能做些什么?Junit4执行顺序是怎样的?带着这些问题,我写了这篇文章,仅供参考,不对之处,盼留言指正,感激万分。前一篇文章:【原创】Junit4详解一:Junit总体介绍Junit4 runner总体介绍Junit4编译器在执行TestCase的过程中利用反射机制,以便我们可以对测试的开始过程中进行一些预处理,如读取元数据信息,拦截异常,数据库操作等,由于Junit4默认的测试执行器是:BlockJUnit4ClassRunn 阅读全文
posted @ 2014-02-18 12:46 Thomson-Blog 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 安装步骤:一、获取开源相关程序:1、利用CentOS Linux系统自带的yum命令安装、升级所需的程序库:sudo -sLANG=Cyum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel bison pkgconfig glib2-devel gettext mak 阅读全文
posted @ 2013-10-25 09:37 Thomson-Blog 阅读(255) 评论(0) 推荐(0) 编辑
摘要: Emacs开发Java前言笔 者把多年UBuntu上用Emacs和Maven开发Java应用(包括TestNG和Web application)的技巧总结出来,希望对有志于Linux开发的朋友有帮助。我并不反对用IDE开发,但是很多时候,Emacs能够带来更快的速 度(同时对机器硬件要求也很小),对Java工程的更透彻了解,更容易和开源领域的工程师交流。我还不怎么喜欢用鼠标,Emacs让我能够解放我的右手。安装1.确保你已经安装了JDK2.确保你安装了Maven3.安装Emacs:sudo apt-get install emacs4.下载jdee-bin-2.4.0.1.zip和依赖文件el 阅读全文
posted @ 2012-05-16 16:22 Thomson-Blog 阅读(700) 评论(0) 推荐(0) 编辑
摘要: 打开 C:\Documents and Settings\用户名\Application Data\Skype 像我的是C:\Documents and Settings\Administrator\Application Data\Skype 里面有个 shared.xml 用记事本打开,<EventServers><Servers>193.88.8.59:12350 194.165.188.76:12350 212.8.163.76:12350 61.135.159.102:12350</Servers></EventServers>修改为& 阅读全文
posted @ 2012-04-23 09:09 Thomson-Blog 阅读(2792) 评论(1) 推荐(0) 编辑
摘要: From: http://comments.gmane.org/gmane.comp.handhelds.android.devel/143788Question: I built the SDK and when I tried to point the "SDK Location" for the "Android Preference" on Eclipse, I'd get "This Android SDK requires Android Developer Toolkit version 10.0.0 or above. 阅读全文
posted @ 2011-12-19 13:26 Thomson-Blog 阅读(1301) 评论(0) 推荐(0) 编辑
摘要: 最近在项目中使用 Spring 和 Hibernate 进行开发,有感于 Criteria 比较好用,在查询方法设计上可以灵活的根据 Criteria 的特点来方便地进行查询条件的组装。现在对 Hibernate的Criteria 的用法进行总结: Hibernate 设计了 CriteriaSpecification 作为 Criteria 的父接口,下面提供了 Criteria和DetachedCriteria 。 Criteria 和 DetachedCriteria 的主要区别在于创建的形式不一样, Criteria 是在线的,所以它是由 Hibernate Sessio... 阅读全文
posted @ 2011-11-24 15:07 Thomson-Blog 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 方法一:在servlet的init()方法中缓存数据当应用服务器初始化servlet实例之后,为客户端请求提供服务之前,他会调用这个servlet的init()方法。在一个servlet的生命周期中,init()方法只会被调用一次。通过在init()方法中缓存一些静态的数据或完成一些只需要执行一次的、耗时的操作,就可大大地提高系统性能。例如,通过在init()方法中建立一个JDBC连接池是个最好例子,假设我们是用jdbc2.0的DataSource接口来取得数据库连接,在通常的情况下,我们需要通过JNDI来取得具体的数据源。我们能够想象在一个具体的应用中,假如每次SQL请求都要执行一次JNDI 阅读全文
posted @ 2011-09-16 16:48 Thomson-Blog 阅读(246) 评论(0) 推荐(0) 编辑
摘要: Partitioned Table可伸缩性性是数据库管理系统的一个很重要的方面,在SQL Server 2005中可伸缩性方面提供了表分区功能。其实对于有关系弄数据库产品来说,对表、数据库和服务器进行数据分区的从而提供大数据量的支持并不是什么新鲜事,但 SQL Server 2005 提供了一个新的体系结构功能,用于对数据库中的文件组进行表分区。水平分区可根据分区架构,将一个表划分为几个较小的分组。表分区功能是针对超大型数据库(从数百吉字节到数千吉字节或更大)而设计的。超大型数据库 (VLDB) 查询性能通过分区得到了改善。通过对广大分区列值进行分区,可以对数据的子集进行管理,并将其快速、高效 阅读全文
posted @ 2011-09-16 15:31 Thomson-Blog 阅读(750) 评论(0) 推荐(0) 编辑
摘要: Kimberly L. TrippFounder, SQLskills.comJanuary 2005Applies to:SQL Server 2005Summary: Table-based partitioning features in SQL Server 2005 provide flexibility and performance to simplify the creation and maintenance of partitioned tables. Trace the progression of capabilities from logically and manu 阅读全文
posted @ 2011-09-16 15:29 Thomson-Blog 阅读(390) 评论(0) 推荐(0) 编辑
摘要: SQL Server数据库远程操作中,在使用openrowset/opendatasource前首先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的。1、启用Ad Hoc Distributed Queries的方法SQL Server 阻止了对组件'Ad Hoc Distributed Queries' 的STATEMENT'OpenRowset/OpenDatasource'的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用。sp_configure 启用 &# 阅读全文
posted @ 2011-09-16 11:10 Thomson-Blog 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 1.关于Openrowset和Opendatasource 这个技巧应该早有人会了,就是利用openrowset发送本地命令。通常我们的用法是(包括MSDN的列子)如下: select * from openrowset('sqloledb','myserver';'sa';'','select * from table') 可见(即使从字面意义上看)openrowset只是作为一个快捷的远程数据库访问,它必须跟在select后面,也就是说需要返回一个recordset 。 那么我们能不能利用它调用xp_cmdsh 阅读全文
posted @ 2011-07-06 13:40 Thomson-Blog 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 跨服务器查询(SQLSERVERDBLINK) 首先要开启一个选项启用Ad Hoc Distributed Queries:exec sp_configure 'show advanced options',1reconfigureexec sp_configure 'Ad Hoc Distributed Queries',1reconfigure 使用完成后,关闭Ad Hoc Distributed Queries:exec sp_configure 'Ad Hoc Distributed Queries',0reconfigureexec s 阅读全文
posted @ 2011-07-06 13:39 Thomson-Blog 阅读(964) 评论(0) 推荐(0) 编辑
摘要: 1、Object Spy的TipsHold the CTRL key to change the window focus or perform other mouse operations2、QTP为什么无法单步调试?安装Microsoft Script Debuger即可3、QTP如何访问Oracle数据库?Dim rs,sq,pkeyset conn=createobject("adodb.connection")set rs=createobject("adodb.recordset")' 需要安装Oracle客户端conn.open & 阅读全文
posted @ 2011-03-20 15:21 Thomson-Blog 阅读(913) 评论(0) 推荐(0) 编辑
摘要: Recently my friend Yoel had just a wonderful idea. We have an old Win32 C++ application, and we wanted to add a serious logging infraestructure so we can provide better support in case the application crashes.So Yoel came with the idea of using an existing framework for logging: LOG4NETThe only prob 阅读全文
posted @ 2011-03-10 11:02 Thomson-Blog 阅读(553) 评论(0) 推荐(0) 编辑
摘要: SwfDotNet是C#编写的,作者的C#水平,真是令我佩服。这是个特别好的读写Swf文件的库。但是,我要用在C++项目中,怎么让C++调用C#的DLL呢。今天一上午都在琢磨这个问题,耽误了很多时间,原因是编译是出现:warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失。 接着就是一大堆的0x01等等。自己做了个Sample,仔细分析发现还是自己没有搞清楚。正确的操作如下: 1 创建C# DLL,需要指定应用类型为“类库”,代码: namespace CSLib { publicclassClass1 { priv 阅读全文
posted @ 2011-03-08 09:27 Thomson-Blog 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 用C#编写Com组件供C++调用近期的北京项目需要将数据提供给用户C++6.0开发的Gis,可难倒我了,底层语言调高级语言??而且我完全不懂C++,好在北京公司有骨灰级C++高手川总(紫光拼音输入法的设计者)指导,首先在技术可行性上摆平了客户,并写出了相关示例,在此表示感谢。。后来用户嫌调用麻烦,改用方法二。方法一:直接在Com函数中返回结构体数组(不推荐,因为结构数组映射到Com里成了safearray,相当麻烦)C#using System;using System.Collections.Generic;using System.Linq;using System.Text;using 阅读全文
posted @ 2011-03-08 09:26 Thomson-Blog 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 摘要:现在COM组件的使用越来越广泛,在各个程序中调用COM组件我想大家都遇到过,这篇文章就是关于COM组件的编写和调用的,主要包含了使用VC6.0编写和调用COM组件,VS2005中使用C#编写和调用COM组件,以及在VC6.0和VS2005之间互相调用COM组件。关键字:VC6.0编写调用COM VS2005中C#编写和调用COM VC6.0和VS2005之间互相调用COM正文:前一阵在工作中做项目的时候,遇到了COM组件的调用和使用问题,当时研究和好一阵,才把中间的环节打通,现在写出来为大家提供方便,这里包含了四个类型:1、在VS2005中,C#编写DLL并使用C++调用2、在VS200 阅读全文
posted @ 2011-03-08 09:24 Thomson-Blog 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.codeproject.com/KB/cs/ManagedCOM.aspxDownload source - 5.21 Kb PrefaceCOM Interoperability is the feature of Microsoft .NET that allows managed .NET code to interact with unmanaged code using Microsoft's Component Object Model semantics.This article is geared towards C# programmers 阅读全文
posted @ 2011-03-08 09:20 Thomson-Blog 阅读(506) 评论(0) 推荐(0) 编辑
摘要: 文件操作是应用程序最为基本的功能之一,在Linux下,采用申请虚拟内存的方法,可以申请到2g以上的内存,但是能操过3g-程序本身所占内存大小。在Windows2000中,一般能申请1g以上的内存,不能超过2g-程序本身所占内存大小。经过特殊配置,windows2000可以申请到与linux相同的数量的内存。不过具体能够申请多少内存,还要开虚存空间中最大的连续地址空间是多大。同时,能够申请到的内存数量不受系统ram的限制,理论上每个进程都有4G(如果打开了EMT64,可以有64G)内存空间,但是一般操作系统要占用高端的1g或2g。内存映射文件是所有支持页式内存管理的操作系统必备的功能。 在lin 阅读全文
posted @ 2011-02-14 09:19 Thomson-Blog 阅读(1873) 评论(0) 推荐(0) 编辑
摘要: 2003.12.22 @ 8:48:47 PMI've got a D-Link DWL122 Wireless USB Adapter this weekend for $29.99. Not only the price was good, but it also stated "Mac OSX supported", which sort of encouraged me to go ahead and give it a try.I asked Mr. Goggle, who told me right away it uses a Prism2 chipset, and that i 阅读全文
posted @ 2010-12-07 09:34 Thomson-Blog 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 硬件: thinkpad t400 11b/g/n Wireless LAN Mini-PCI Express Adapter II 软件:linux 2.6.31-16 驱动下载地址:http://www.thinkwiki.org/wiki/ThinkPad_11b/g/n_Wireless_LAN_Mini-PCI_Express_Adapter_II [3]是32位的;[4]是64位的; 安装源码包: $ sudo apt-get install build-essential linux-source-2.6.31 或 $ sudo apt-get install build-ess 阅读全文
posted @ 2010-12-07 09:23 Thomson-Blog 阅读(775) 评论(0) 推荐(0) 编辑
摘要: 善用“人际沟通智能”的经理人,能够巧妙地处理管人的十大难题,在建立和谐的人际关系的同时,提升员工以及企业的绩效。 对于员工来说,今天的工作环境越来越复杂,竞争压力也越来越大。对于经理人来说,管理员工的绩效和行为也变得越发重要。如今,管理者在公司生活中面临的挑战主要有: 提高产出:在资源缺乏、士气低落之时还要提高团队的生产率并加强团队间的合作。 捏合团队:员工背景的多样化和工... 阅读全文
posted @ 2010-09-15 10:10 Thomson-Blog 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 1.创建一个新的表空间  create tablespace rainbow  datafile 'd:\oracle\oradata\oa_test5\rainbow01.dbf' size 10m;  2.在其中建表  create table test  (emp int)  tablespace rainbow;  3.插入数据  insert into test  (emp) value... 阅读全文
posted @ 2010-08-27 15:52 Thomson-Blog 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 以前的一篇删除重复记录的虽然还不错 但是在我遇到重量级的大表时还是显的力不从心,不小心想到一种新的方法  思路1、保存不重复的记录  2、保存重复记录中的一个rowid  //3、删除原表中rowid不为步骤2中rowid的记录 ,留下重复数据中的一条  3.找出记录中rowid为步骤2中rowid的记录  4 、1和3数据连接就是所要的数据了  具体操作例子  第一步:  SQL> cre... 阅读全文
posted @ 2010-08-27 15:51 Thomson-Blog 阅读(198) 评论(0) 推荐(0) 编辑
摘要: JMeter是一款性能测试工具。个人认为与其说他是一个工具,不如说他是一个框架。因为JMeter的支持范围非常广,目前常见的需要进行性能测试的应用几乎都能应用(如:files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers)。JMeter的一大好处就是它内部已经有实现好的线程机制,用户不用写任何关... 阅读全文
posted @ 2010-08-12 16:16 Thomson-Blog 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 对EJB进行一些性能基准测试是非常有必要和有帮助的,测试的方法和工具有很多,不过我最近发现,Apache JMeter是进行基准测试的一个优秀工具。可惜的是,JMeter没有提供一个可测试任意EJB的通用取样器(sampler),不过,我们可以自己动手来创建一个。  首先,让我们简单的了解一下Apache JMeter,它是一个100%的纯Java桌面应用,可用于压力测试和性能测量。它最初被设计用... 阅读全文
posted @ 2010-08-12 10:02 Thomson-Blog 阅读(233) 评论(0) 推荐(0) 编辑
摘要: There are various management views built into the product. On SQL 2000 you'd use sysprocesses. On SQL 2K5 there are more views like sys.dm_exec_connections, sys.dm_exec_sessions and sys.dm_exec_reques... 阅读全文
posted @ 2010-07-09 09:02 Thomson-Blog 阅读(387) 评论(0) 推荐(0) 编辑
摘要: JavaScript面向对象编程一、引言 随着Ajax等技术的广泛使用,YUI、Prototype等对JavaScript的应用可谓是淋漓尽致、出神入化。人们才发现原来JavaScript可以实现如此强大的功能,具备如此优雅的架构...二、准备1、概念JavaScript是一种弱类型语言。包括:基本类型:数字Number,字符串String,布尔值Boolean;复合类型:对象Object,数组A... 阅读全文
posted @ 2010-07-06 10:56 Thomson-Blog 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 一、前言:在经过一段时间的存储过程开发之后,写下了一些开发时候的小结和经验与大家共享,希望对大家有益,主要是针对Sybase和SQL Server数据库,但其它数据库应该有一些共性。  二、适合读者对象:数据库开发程序员,数据库的数据量很多,涉及到对SP(存储过程)的优化的项目开发人员,对数据库有浓厚兴趣的人。  三、介绍:在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就... 阅读全文
posted @ 2010-07-06 10:54 Thomson-Blog 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 影响SQL性能的原因 收藏 影响SQL性能的因素很多,如初始化参数设置不合理、导入了不准确的系统及模式统计数据从而影响优化程序(CBO)的正确判断等,这些往往和DBA密切相关。纯粹从SQL语句出发,笔者认为影响SQL性能不外乎以下四个重要原因: (1)在大记录集上进行高成本操作,如使用了引起排序的谓词等。 (2)过多的I/O操作(含物理I/O与逻辑I/O),最典型的就是未建立恰当的索引,导致对查... 阅读全文
posted @ 2010-07-06 10:54 Thomson-Blog 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 隔离级别(isolation level)l隔离级别定义了事务与事务之间的隔离程度。l隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好。lANSI/ISO SQL92标准定义了一些数据库操作的隔离级别:l未提交读(read uncommitted)l提交读(read committed)l重复读(repeatable read)l序列化(serial... 阅读全文
posted @ 2010-07-06 10:52 Thomson-Blog 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 1.有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析.2.A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程.请附code3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?4..Net中读写数据库需要用到哪些类?他们的作用5.ASP.net的身份验证方式有哪些?分别是什么原理?6.解释一下UDDI、... 阅读全文
posted @ 2010-07-06 10:50 Thomson-Blog 阅读(317) 评论(0) 推荐(1) 编辑
摘要: 虽然不能完全避免死锁,但可以使死锁的数量减至最少。将死锁减至最少可以增加事务的吞吐量并减少系统开销,因为只有很少的事务: 回滚,而回滚会取消事务执行的所有工作。 由于死锁时回滚而由应用程序重新提交。 下列方法有助于最大限度地降低死锁: 按同一顺序访问对象。 避免事务中的用户交互。 保持事务简短并在一个批处理中。 使用低隔离级别。 使用绑定连接。 按同一顺序访问对象如果所有并发事务按同一顺序访问对象... 阅读全文
posted @ 2010-07-06 10:46 Thomson-Blog 阅读(217) 评论(0) 推荐(0) 编辑
摘要: SQL 事务的隔离为了遵守ACID规则,事务必须与其他事务相隔离。这意味着在一个事务中使用的数据必须与其他事务相隔离。为了实现这种分离,每一个事务会锁住它使用的数据以防止其他事务使用它。锁定义在需要锁定的资源上,这些资源可以是索引、数据行或者表。SQL Server总会尝试精细地锁住资源。在大多数情况下,它会首先基于行级加锁。如果锁住的行太多,会提升锁至在表级。这个过程是自动完成的。在SQL Se... 阅读全文
posted @ 2010-07-06 10:45 Thomson-Blog 阅读(312) 评论(0) 推荐(0) 编辑