设计模式学习总结-代理模式
一、简介
代理模式的作用是:
为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
代理模式一般涉及到的角色有:
1) 抽象角色:声明真实对象和代理对象的共同接口;
2) 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。
3) 真实角色:代理角色所代表的真实对象,是我们最终要引用的对象。[……]
如何使用Google Analytics异步跟踪代码
Tracking Sites with the Asynchronous Snippet
使用异步代码跟踪网站访问者
最新的GA(Google Analytics)分析跟踪代码得到了增强。它能够利用浏览器支持的异步javascript来提高跟踪代码的加载速度。最新的跟踪代码也可以放在页面的顶端,这样也不会延迟渲染网页的速度。
更详细的关于跟踪代码的使用见这个link。
跟踪代码是一小段添加到你网页中的javascript代码。他激活并调用ga.js,这个js是插入到你网页中的。拷贝以下代码到你的网页中,替换UA-XXXXX-X为你自己的ID。
<script t[......]<p class="read-more"><a href="http://neoremind.com/2010/05/howto_user_google_analytics_trackingnippet/">继续阅读</a></p> |
Google Analytics的WordPress插件
通告:neoremind.net升级成功,新增了用户访问统计功能,是利用Google Analytics的wordpress插件——Google Analyticator来完成的。
下面简单介绍以下使用说明:
1. 首先你需要注册你的网站到Google Analytics
2. 记下你的profile ID。 Log into your Google Analytics account. Before you select “View Report” for any particular domain, select “Edit” on the right hand side[……]
eclipse打不开可以尝试下java -jar startup.jar
一台Linux机器上的RSA死活打不开,报以下错误:
Error Information
[tsadmin@rfidic14 SDP70]$ ./eclipse
JVMSHRC020E An error has occured while opening semaphore
JVMSHRC017E Error code: -308
JVMSHRC028E Permission Denied
JVMJ9VM015W Initialization error for library j9shr23(11): JVMJ9VM009E J9VMDllMain failed
Co[……]
Collaborative Systems Development using IBM Rational tools
上周做了主题为Collaborative Systems Development using IBM Rational tools的培训给同事,以下记录下training上的要点,主要还是introdcution level的东西。
1. Introduction to C/ALM
C/ALM = Collaborative Application Lifecycle Management
C/ALM is a discipline as well as a product category
C/ALM doesn’t support specific life-cycle act[……]
Atomicity原子事务在产品中的应用
1. Atomicity简介
Atomic is one of the four properties defined in acronym that defines that a transaction must execute completely or not at all. This means atomicity guarantees that the operations with in a transaction work on the all-or-nothing paradigm means either all the database updates are perfo[……]
Mock测试中遇到找不到message properties文件问题解决过程
最近做iFix GVT测试工作,要测试中文的mock(关于Mock Testing,见附1)
可以发现部署好mock的测试环境后,不管是用IE还是FF都无法打开UI,错误异常信息如下:
Error page exception The server cannot use the error page specified for your application to handle the Original Exception printed below. Please see the Error Page Exception below for a description of th[......]<p class="read-more"><a href="http://neoremind.com/2010/05/mock%e6%b5%8b%e8%af%95%e4%b8%ad%e9%81%87%e5%88%b0%e6%89%be%e4%b8%8d%e5%88%b0message-properties%e6%96%87%e4%bb%b6%e9%97%ae%e9%a2%98%e8%a7%a3%e5%86%b3%e8%bf%87%e7%a8%8b/">继续阅读</a></p> |
你有重构的勇气么?
这一阵一直在继续TAF的开发,只是发现现存的架构与代码维护与更新的话需要的effort确实很大,正好看到一篇代码重构的文章,说的很好,特此转帖: 原文地址http://iove.net/1687/ 项目发展到一定程度,因为功能的增多,就会变得越来越臃肿,原来的架构,就会不能满足现有的需求,因为我们有很多最初规划的时候没有想到的事情,比 如说在网站或者软件规模小的时候,我们并没有考虑到国际化,但随着发展,我们走出亚洲奔向世界了,这个时候我们需要全世界的人来用我们的产品,这个时候就 需要重构了。 有人会问,既然这样,为什么我们不在软件最初架构搭建的时候把这些东西都想进去呢?因为我们在产品的前[……]
Oracle启停与sqlplus登陆命令笔记
1. How does one use the SQL*Plus utility?
Start using SQL*Plus by executing the “sqlplus” command-line utility from the $ORACLE_HOME/bin directory. Some of the command line options:
userid/password@db — Connection details
/nolog — Do not login to Oracle. You will need to do it you[……]
哈佛管理世界中看到这样一篇小文_VP share的
一:沉稳
(1)不要随便显露你的情绪。
(2)不要逢人就诉说你的困难和遭遇。
(3)在征询别人的意见之前,自己先思考,但不要先讲。
(4)不要一有机会就唠叨你的不满。
(5)重要的决定尽量有别人商量,最好隔一天再发布。
(6)讲话不要有任何的慌张,走路也是。
二:细心
(1)对身边发生的事情,常思考它们的因果关系。
(2)对做不到位的执行问题,要发掘它们的根本症结。
(3)对习以为常的做事方法,要有改进或优化的建议。
(4)做什么事情都要养成有条不紊和井然有序的习惯。
(5)经常去找几个别人看不出来的毛病或弊端。
(6)自己要随时随地对有所不足的地方补位。
三:胆识[……]
Java内存管理与垃圾回收
OutOfMemory Error出现了,你该如何是好? 怎么找到问题症结,再次避免同样的错误再次发生? 你需要对Java的内存模型、分配以及垃圾回收有一定了解,根据实际的环境进行Performance Tuning。下面内容将会cover上面提到的问题。
1. Java内存模型
堆和栈是JVM中最重要的两个内存区域。
每一个java 线程都拥有自己的内存栈,用来存放局部变量和返回值,栈是在线程启动的时候分配的。
而所有的线程都共享一个内存堆,所有运行时的内存分配都在堆上进行,换句话说,所有的对象都是在堆上创建的。堆是在JVM启动的时候分配的,它的空间由GC控制.
Jav[……]
Java对象占用内存空间的大小
基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。
在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句:
Object ob = new Object(); |
这样在程序中完成了一个Java对象的生命,但是它所占的空间为:4byte+8byte。4byte是上面部分所说的Java栈中保存引用的所需要的空间。而那8byte则是Java堆中对象的信息。因为所有的Java非基本类型的对象都需要默认继承Object对象,因此不论什么样的Java对象,其大小都必须是大于8byte[……]
WAS参考学习网站 StevenCharlesRobinson
发现一个WAS,WMQ的高人博客,里面有很多Jacl脚本的例子与高级的shell脚本
Shell中数组的应用
基本用法 数组可以使用declare –a来显示声明,数组下标的范围没有任何限制,同时也不必使用连续的分量。可以通过${array[i]}.访问数组中的元素。如果不指定元素,则表示第一个元素。@ 与*相同,但是使用时加引号,并在引号中返回每个参数,*则作为一个整体的字符串返回。 # A=(a b c def) # echo ${A[@]} a b c def # echo ${A} a #echo ${A[*]} a b c def #for i in "${A[@]}"; do echo $i done[……]
利用Tivoli Storage Manager做系统备份
前一阵刚刚给我们组搭建了一台CVS服务器,用于管理我们的Auomation TAF代码,美国的同事说必须要用TSM做备份,防止这些资源的意外丢失不可恢复。这是公司对于Property保护的必要措施。起初连TSM是什么都不清楚,后来终于了了解了,还是在本地搭一个吧,用SVL TSM Server一是慢,二是自己的管理权限不够。于是就有了下篇的文章,记录我从搭一个TSM server,并把我们的CVS server座位client,把backup保存在TSM Server上的过程。
1. Tivoli Storage Manager Introduction
TSM is storage ma[……]