Favor Soup | 反胃书屋

斯是陋室,惟吾德馨。
posts - 34, comments - 18, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

今天在机子的进程中看到有p2psvr.exe进程,后在服务项中查看有p4p service服务.后经查看是捜狗直通车程序.

个人认为这种程序很是可恶.

删除方法:

在开始运行中输入regedit进入注册表编辑器.找到

(1)HKEY_LOCAL_MACHINE.依次展开:SYSTEM-----CurrentControlSet----services下删除在服务中存在的p4p service服务.

(2)HKEY_LOCAL_MACHINE.

依次展开:SYSTEM-----CurrentControlSet----control---safeboot---

1>minimal中:删除:PNP FILTER.

2>network中:删除:pnp fiter

重启,OK。

posted @ 2007-01-12 11:20 D主 阅读(567) | 评论 (1)编辑 收藏

        钻石显然是十分贵重的东西,正因为贵重,所以我们会严肃的区分真品和膺品。确定钻石是真是假的一个简单而(至少在电影里)流行的测试是让它在一片玻璃上滚。因为钻石是众所周知最坚硬的材料,真正的钻石很容易切割玻璃表面;而赝品,尤其是用玻璃本身制作的赝品,则无法做到。
        对软件开发人员来说,数据库也有这么贵重。如果使用数据库的话,需要确保它安全存储数据并允许您将来检索数据。您还希望数据库允许多个程序使用数据库而不会相互干扰。为了演示,假设您拥有一个银行。银行的数据库必须具备下列功能:
    • 安全存储合适的数据
    • 快速检索合适的数据
    • 支持多个并行的用户会话
        这些任务可以合称为 ACID 测试;ACID 是 Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)和 Durability(持久性)的缩略词。 
 
        原子性 指数据库操作可以组合到一起,当作单个单元处理。 

         一致性 保证此单个单元(或事务)中的所有操作要么都成功执行,要么都不执行。换句话说,数据库不能处于未完成状态。要了解这些特征为何如此重要,可考虑这样一个银行事务:即钱从储蓄帐户转到支票帐户。如果在将钱从储蓄帐户减去之后、加到支票帐户之前,转帐处理失败,那么您就会变穷,而银行将会有一个愤怒的(前)客户!原子性使得这两个操作 —— 从储蓄帐户减钱和向支票帐户加钱 —— 被当作单个事务进行处理。一致性保证事务中的这两个操作同时成功或同时失败。这样,您的钱就不会丢失了。

        隔离性 指独立的数据库事务集合以不相互冲突的方式执行。仍使用这个银行类比,考虑两个客户同时在帐户之间转移资金。数据库必须分别跟踪两个转帐;否则,资金可能进入错误的帐户,而银行可能得多两个愤怒的(前)客户。

        持久性 保证数据库是安全的,不会异常终止。当电源断电时,如果电视或计算机不工作,这可能是小麻烦,但同样的事情对于数据库来说就不一样了。如果银行计算机在转移资金时掉电,导致交易丢失,您就不会是个快乐的客户了。持久性保证如果数据库在资金转移期间异常终止,则当数据库重新启动时,它将能够恢复交易并继续正常的操作。

posted @ 2007-01-09 14:38 D主 阅读(1190) | 评论 (0)编辑 收藏

        持久化是将Java虚拟机对象持久保存,而不是将数据库映射为对象,通常数据的存储是用数据库实现的;当然,如果你有更好的存储系统,也可以映射到系统中的存储设备中,这可能需要你自行开发持久化框架来进行持久化一个Java对象。如果是持久化到数据库,现在已经涌出许多ORM框架,像Hibernate,轻量级的ibatis,都是不错的选择。
 
        现在大部分数据库还是关系型的,而Java是面向对象的语言,很明显将一个对象型的数据如何保存到关系型数据库中呢?这就要借助强大的ORM框架解决这个问题。 比如ibatis框架,使用时只要配置好sqlMapConfig及相应的sqlMap配置文件,只要保存对象或更新对象及可,编程时不再需要写sql才能操作数据,查找时同样查到的是对象数据而不是关系型数据,通过对象set(para),get()方法插入及取得对应数据,Hibernate也是同样的,这里不再祥述。
         
        以数据库为核心的软件时代已经过去,数据库时代早已结束,当我看到J2EE征途中那么多人在对象和数据库之间彷徨痛苦ing的时候,我想我该出来喊一声了。   
        其实这句话在几年前肯定有人喊过,因为中间件时代的来临,实际意味着数据库时代终结,正所谓一山无二虎:如果你重视数据库,你的J2EE系统就无法完全OO,只有你忽视数据库,你的系统才有可能完全迈向OO,至于数据库性能调优等特定功能都可交由EJB容器或O/R Mapping工具实现。   
        很多年前,包括我自己在内的大部分企业程序员都是从数据库开始我们的职业生涯,最早的是dBase/FoxPro,后来有了 SQL系列数据库, Oracle将数据库时代推向了顶峰。   
        每当有一个新项目时,第一步就是首先设计出数据表结构(Table Schema),然后开始使用SQL语句实现业务逻辑,这种开发模式一直重复,就是后来加入了DelPhI/VB,他们也只是承担图形显示实现,这种C/S结构带来最大问题是:非常难于维护,修改起来,迁一动百。   
软件的生命在于运动,当它需要发展时,最棒的软件人员如果对他也束手无策,这是谁的悲哀?   
        现在更多人开始接受B/S结构,但是他们中很多人还没有真正明白为什么需要B/S结构,B/S代表的多层架构才是真正目的(因此,伪多层的B/S系统遍地皆是)。   
        多层架构实际是将以前系统中的显示功能、业务运算功能和数据库功能完全分开,杜绝彼此的耦合与影响,从而实现松耦合和良好的可维护性。
   
一. 从设计上说:由于实现层次完全分离,业务运算功能成为一种中间功能(中间层),它不依赖具体的表现层技术(Jsp/Html Applet等),也不依赖具体数据库技术(Oracle/SQL Server),业务运算功能运行在J2EE应用服务器中,当我们的业务运算功能不再依赖数据库时,是否意味着数据库已经不是重点?
   
二. 当然,多层结构带来了性能问题:客户端访问数据库中的数据时,通常需要经过多个层次,非常耗费性能, 如何尽量减少数据库访问是J2EE应用系统首要解决的问题,使用存储过程并没有解决这个问题,存储过程的执行还是属于后端,并没有缩短客户端请求所要经历的坎坷路途。
   
        解决性能问题的根本解决之道是使用对象缓存,现在, 64位CPU提供的巨大内存空间为单台缓存计算提供了硬件基础,更重要的是,这种缓存计算是可伸缩的,通过集群的缓存机制(如JBossCache), 通过增加应用服务器的数量,可以提高整个业务逻辑层的缓存计算能力,抛弃过去那种为内存斤斤计较的老思维吧。
  
三. 在系统分析之初是否首先需要数据表设计呢?回答是否定的, 以UML为代表面向对象的分析设计方法已经成为强大工具,随着面向模型驱动分析设计(MDA)的普及, 面向数据库分析方法正在逐步被抛弃,拥有深厚传统数据库分析习惯的程序员必须面对和接受这种挑战。
   
        纵观整个J2EE系统开发过程,数据库已经从过去的中心位置降为一种纯技术实现,数据库只是状态持久化的一种手段(文件是另外一种实现手段);什么是持久化?这是相对于内存缓存状态而言,持久化就是当内存断电情况下能永久保存状态数据,但是如果J2EE应用服务器是7X24小时集群运行;几乎永不当机,是否有持久化的必要呢?
  
        很显然,数据库已经沦为与操作系统中文件系统同样的层面,以它为中心的时代真的结束了,IBM早期将DB2数据库开源已经强烈向我们昭示这点。
   
        对于J2EE初学者来说,尽早抛弃过去的两种影响:过程语言编程习惯和以数据库为中心的设计习惯,从全新的面向对象角度(OOA、OOD和OOP、AOP)来设计开发你的J2EE系统,J2EE设计开发三件宝:Model、Patterns和Framework。
   
        以上不只是理论,而是我每天正在做的,如果你也是或赞同请广为传播,唤醒更多彷徨痛苦的初学者。

posted @ 2006-12-18 14:40 D主 阅读(218) | 评论 (0)编辑 收藏

注意:如果所建项目是servlet2.4的,那么在web.xml中写taglib就要加一个
<jsp-config>标记,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="
http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <display-name>
 TagStudy2
 </display-name>
 
  <jsp-config>
       <taglib>
           <taglib-uri>/hello</taglib-uri>
           <taglib-location>/WEB-INF/HelloTag.tld</taglib-location>
      </taglib>
  
</jsp-config>
  

 <welcome-file-list>
  <welcome-file>default.jsp</welcome-file>
 </welcome-file-list>
 

</web-app>

从servlet2.4开始,taglib的uri是在标签库描述符中(tld)指定的,就像下面:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag 
Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"
>

<taglib>
  
<tlibversion>1.0</tlibversion>
  
<jspversion>1.1</jspversion>
  
<shortname>bean</shortname>
  
<uri>http://jakarta.apache.org/struts/tags-bean</uri>

任何需要使用这个标签库的页面都可以通过下面的页面级指令来引用它。标签库不需要再在web.xml文件中引用:
<%@ taglib
        
uri="http://jakarta.apache.org/struts/tags-bean"

        prefix
="bean" %>

下面一个表是struts标签的uri:

Table 2-1. Struts 标签库URI

Tag library

Struts 1.1 URI

Struts 1.2 URI

struts-bean

http://jakarta.apache.org/struts/tags-bean

http://struts.apache.org/tags-bean

struts-html

http://jakarta.apache.org/struts/tags-html

http://struts.apache.org/tags-html

struts-logic

http://jakarta.apache.org/struts/tags-logic

http://struts.apache.org/tags-logic

struts-nested

http://jakarta.apache.org/struts/tags-nested

http://struts.apache.org/tags-nested

struts-template

http://jakarta.apache.org/struts/tags-template

不再包括,被Tiles代替

struts-tiles

http://jakarta.apache.org/struts/tags-tiles

http://struts.apache.org/tags-tiles

struts-bean-el

http://jakarta.apache.org/struts/tags-bean-el

http://struts.apache.org/tags-bean-el

struts-html-el

http://jakarta.apache.org/struts/tags-html-el

http://struts.apache.org/tags-html-el

struts-logic-el

http://jakarta.apache.org/struts/tags-logic-el

http://struts.apache.org/tags-logic-el

        sturts标签的可以直接通过uri引用,也可以通过在web.xml中声明再使用。直接通过uri引用,则不再需要tld文件,如果是web.xml的话,灵活性比较大,uri以后改变的话,只需要在web.xml中改变,不用在其他页面中改变。

posted @ 2006-12-01 10:15 D主 阅读(1290) | 评论 (1)编辑 收藏

当我们要丢掉电脑中多余的启动程序时,自然会想到用Msconfig.exe这个系统配置实用程序。可惜在Windows 2000中并没有提供这项功能。我们今天就讲讲怎样把Windows 98和Windows XP中的这个实用程序移植到Windows 2000中来,实现“资源共享”。

一、移植Windows 98中的Msconfig
将Windows 98中System文件夹内的Msconfig.exe文件复制到Windows 2000(安装后的文件夹为Winnt)中System文件夹内;双击运行Msconfig.exe,这时将出现一些错误提示信息,告诉你找不到CONFIG.SYS、AUTOEXEC.BAT、SYS.INI、Win.INI这四个系统文件。此时不要慌张,连续按四次“确定”,怎么样?看到你熟悉的“系统配置实用程序”了吧:)

二、移植Windows XP中的Msconfig
Windows XP中的Msconfig做了进一步的改进,比如:增加了Boot.ini的诊断、服务诊断,对于配置和解决系统的启动问题非常有帮助。 从Windows XP的系统文件夹中将以下两个文件:Msconfig.exe(一般位于Windows XP所在的分区的Windows\pchelth\Helpctr\binaries目录下)、Msconfig.chm(一般位于Windows XP所在的分区的Windows\Help目录下)分别复制到Windows 2000所在的分区的Winnt\System目录下和Winnt\Help目录下。

移植完毕后,在Windows 2000中点击“开始→运行”,输入Msconfig,然后回车,便可运行系统配置实用程序了。

posted @ 2006-11-10 10:55 D主 阅读(174) | 评论 (0)编辑 收藏

经常遇到这样的情况:某个程序已经卸载掉了,但其注册的系统服务还在。可以通过如下办法删除:
1. 執行regedit或是regedt32
2. 瀏覽到以下的機碼 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services
3. 刪除相對應的服務
4. 重新開機

posted @ 2006-11-10 10:45 D主 阅读(201) | 评论 (0)编辑 收藏

        怎样让JBuilder不要影响Eclipse的正常使用(Error:could not find Java 2 runtime Environment)?这个问题曾经困扰我好久,虽然后来不怎么用JBuilder,而且Eclipse也可以用startup.jar来启动,但是还是有像我这样赌气非用eclipse.exe不可的。网上也是说法各异,有说改CLASSPATH的、还有改注册表的,还有重装JDK的。我尝试的结果是在环境变量里把path变量的java\bin放在最开始的位置就OK了...sign,就是这么简单,只要Eclipse能找到标准的JRE或JDK的bin目录下的javaw.exe而不是JBuilder自带的JDK。

posted @ 2006-11-08 23:29 D主 阅读(202) | 评论 (0)编辑 收藏

症状:后缀为Htm和Html的文件图标显示为未关联的应用程序图标,(看着很是不爽!)并且通过常用的设置文件夹属性的方式修改不起作用,右键属性里改变默认打开程序也不起作用。

病因:装了Office之后又装了某个改变Htm/Html文件设置的程序(具体不详,可能是火狐狸也可能是其他)。

处理:修改注册表,将Htm/Html文件默认的图标关联改回默认。
具体操作:主要在注册表里确认两处默认值。一处是HKEY_CLASSES_ROOT\htmlfile\ShellEx\IconHandler,确认其右侧默认值为{42042206-2D85-11D3-8CFF-005004838597}(XP下面为此值,不保证其他系统下相同),如果不是请改回此值(包括花括号);另一处是HKEY_CLASSES_ROOT\CLSID\{42042206-2D85-11D3-8CFF-005004838597}\Old Icon\htmlfile\DefaultIcon,确认其右侧默认值是C:\Program Files\internet explorer\IEXPLORE.EXE,1,否则请改回此值。保存,刷新,这个时候应该就OK了。

补充:做完上诉几步,如果只有Html图标恢复正常,而Htm图标还是没改回来,请确认HKEY_CLASSES_ROOT\.htm右侧默认值是htmlfile,否则请改回,再保存、刷新,一切就OK了。

posted @ 2006-11-05 19:53 D主 阅读(2641) | 评论 (9)编辑 收藏

打开页面链接和浏览器的关联
         
         默认安装之后,Notes是不支持直接点击信件里的链接打开浏览器窗口的。如果你点击链接会看到错误窗口提示:“Web Navigator Retrieval Process is not running”。需要按以下步骤进行设置:

1. Click on the "Office" button on the bottom right hand corner of your Lotus Notes screen (gray area next to the picture of the key). This is your "location document".

2. Select Edit Current

3. Click the Internet Browser button

4. For Internet Browser, select Notes with Internet Explorer

5. You should see a new field pop up: 'Retrieve/open pages'

6. Make sure that field says from Notes workstation

7. Go back to Internet Browser and select Microsoft Internet Explorer

8. You will notice that the 'Retrieve/open pages' field becomes hidden

9. Click on Save and Close

10. Close out Lotus Notes and try opening the message again. See if the problem goes away.


打开Notes遇到“encountered a problem”之类的问题而无法打开

         这种情况多半是上次关闭时出了问题,这时首先通过任务管理器关闭nlnotes.exe和ntaskldr.exe两个进程(如果还在的话),关闭NotesBuddy,然后再重启Notes,应该就OK了。

posted @ 2006-11-03 14:40 D主 阅读(692) | 评论 (2)编辑 收藏

mock测试:就是在测试过程中,对于某些不容易构造或者 不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。

mock对象:这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。

mock对象使用范畴:

  1. 真实对象具有不可确定的行为,产生不可预测的效果,(如:股票行情,天气预报)
  2. 真实对象很难被创建的
  3. 真实对象的某些行为很难被触发
  4. 真实对象实际上还不存在的(和其他开发小组或者和新的硬件打交道) 等等...

使用mock对象测试的关键步骤:

  1. 使用一个接口来描述这个对象
  2. 在产品代码中实现这个接口
  3. 在测试代码中实现这个接口

在被测试代码中只是通过接口来引用对象,所以它不知道这个引用的对象是真实对象还是mock对象。

posted @ 2006-10-26 10:10 D主 阅读(2288) | 评论 (0)编辑 收藏

仅列出标题
共4页: 1 2 3 4