w1100n
This site is best viewed in Google Chrome
wiloon, 3/6/2012 12:17 | Tag:

云服务”现在已经快成了一个家喻户晓的词了。如果你不知道PaaS, IaaS 和SaaS的区别,那么也没啥,因为很多人确实不知道。 “云”其实是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或者运行在远程服务器端的应用,数据,或者服务。 任何一个使用基于互联网的方法来计算,存储和开发的公司,都可以从技术上叫做从事云的公司。然而,不是所有的云公司都一样。不是所有人都是CTO,所以有时候看到云技术背后的一些词可能会比较头疼。 云也是分层的 任何一个在互联网上提供其服务的公司都可以叫做云计算公司。其实云计算分几层的,分别是Infrastructure(基础设施)-as-a-Service,Platform(平台)-as-a-Service,Software(软件)-as-a-Service。基础设施在最下端,平台在中间,软件在顶端。别的一些“软”的层可以在这些层上面添加。 IaaS: Infrastructure-as-a-Service(基础设施即服务) 第一层叫做IaaS,有时候也叫做Hardware-as-a-Service,几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,让你的业务运行起来。 但是现在有IaaS,你可以将硬件外包到别的地方去。IaaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用。 一些大的IaaS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat.不过这些公司又都有自己的专长,比如Amazon和微软给你提供的不只是IaaS,他们还会将其计算能力出租给你来host你的网站。 PaaS: Platform-as-a-Service(平台即服务) 第二层就是所谓的PaaS,某些时候也叫做中间件。你公司所有的开发都可以在这一层进行,节省了时间和资源。 PaaS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在硬件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具等。 一些大的PaaS提供者有Google App Engine,Microsoft Azure,Force.com,Heroku,Engine Yard。最近兴起的公司有AppFog, Mendix 和 Standing Cloud SaaS: Software-as-a-Service(软件即服务) 第三层也就是所谓SaaS。这一层是和你的生活每天接触的一层,大多是通过网页浏览器来接入。任何一个远程服务器上的应用都可以通过网络来运行,就是SaaS了。 你消费的服务完全是从网页如Netflix, MOG, Google Apps, Box.net, Dropbox或者苹果的iCloud那里进入这些分类。尽管这些网页服务是用作商务和娱乐或者两者都有,但这也算是云技术的一部分。 一些用作商务的SaaS应用包括Citrix的GoToMeeting,Cisco的WebEx,Salesforce的CRM,ADP,Workday和SuccessFactors。 Iaas和Paas之间的比较 PaaS的主要作用是将一个开发和运行平台作为服务提供给用户,而IaaS的主要作用是提供虚拟机或者其他资源作为服务提供给用户。接下来,将在七个方面对PaaS和IaaS进行比较: 1) 开发环境:PaaS基本都会给开发者提供一整套包括IDE在内的开发和测试环境,而IaaS方面用户主要还是沿用之前比较熟悉那套开发环境,但是因为之前那套开发环境在和云的整合方面比较欠缺,所以使用起来不是很方便。 … Continue reading

wiloon, 3/1/2012 18:37 | Tag:

http://book.51cto.com/art/201012/240956.htm   7.2  创建索引 创建索引是指在某个表的一列或多列上建立一个索引,以便提高对表的访问速度。创建索引有3种方式,这3种方式分别是创建表的时候创建索引、在已经存在的表上创建索引和使用ALTER TABLE语句来创建索引。本节将详细讲解这3种创建索引的方法。 7.2.1  创建表的时候创建索引(1) 创建表时可以直接创建索引,这种方式最简单、方便。其基本形式如下: CREATE TABLE  表名 ( 属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件], …… 属性名 数据类型 [ UNIQUE | FULLTEXT | SPATIAL ]  INDEX | KEY [ 别名 ]  ( 属性名1  [(长度)]  [ ASC | DESC] ) ); 其中,UNIQUE是可选参数,表示索引为唯一性索引;FULLTEXT是可选参数,表示索引为全文索引;SPATIAL也是可选参数,表示索引为空间索引;INDEX和KEY参数用来指定字段为索引的,两者选择其中之一就可以了,作用是一样的;”别名”是可选参数,用来给创建的索引取的新名称;”属性1″参数指定索引对应的字段的名称,该字段必须为前面定义好的字段;”长度”是可选参数,其指索引的长度,必须是字符串类型才可以使用;”ASC”和”DESC”都是可选参数,”ASC”参数表示升序排列,”DESC”参数表示降序排列。 1.创建普通索引 创建一个普通索引时,不需要加任何UNIQUE、FULLTEXT或者SPATIAL参数。 【示例7-1】 下面创建一个表名为index1的表,在表中的id字段上建立索引。SQL代码如下: CREATE  TABLE  index1 (id    INT , name   VARCHAR(20) , sex    BOOLEAN , INDEX ( id) ); 运行结果显示创建成功,使用SHOW CREATE TABLE语句查看表的结构。显示如下: mysql> SHOW CREATE TABLE index1 \G *************************** 1. row *************************** Table: index1 Create Table: CREATE TABLE `index1` ( `id` int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `sex` tinyint(1) DEFAULT NULL, KEY `index1_id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec) 结果可以看到,id字段上已经建立了一个名为index1_id的索引。使用EXPLAIN语句可以查看索引是否被使用,SQL代码如下: … Continue reading

wiloon, 2/8/2012 10:18 | Tag:

事务隔离级别 标准ANSI SQL规范中定义了四种隔离级别: 未提交读(Read Uncommitted):最低隔离级别,一个事务能读取到别的事务未提交的更新数据,很不安全,可能出现丢失更新、脏读、不可重复读、幻读; 提交读(Read Committed):一个事务能读取到别的事务提交的更新数据,不能看到未提交的更新数据,不可能可能出现丢失更新、脏读,但可能出现不可重复读、幻读; 可重复读(Repeatable Read):保证同一事务中先后执行的多次查询将返回同一结果,不受其他事务影响,不可能出现丢失更新、脏读、不可重复读,但可能出现幻读; 序列化(Serializable):最高隔离级别,不允许事务并发执行,而必须串行化执行,最安全,不可能出现更新、脏读、不可重复读、幻读。 隔离级别越高,数据库事务并发执行性能越差,能处理的操作越少。因此在实际项目开发中为了考虑并发性能一般使用提交读隔离级别,它能避免丢失更新和脏读,尽管不可重复读和幻读不能避免,但可以在可能出现的场合使用悲观锁或乐观锁来解决这些问题。 按照SQL:1992 事务隔离级别,InnoDB默认是可重复读的(REPEATABLE READ)。MySQL/InnoDB 提供SQL标准所描述的所有四个事务隔离级别。你可以在命令行用–transaction-isolation选项,或在选项文件里,为所有连接设置默认隔离级别。 例如,你可以在my.inf文件的[mysqld]节里类似如下设置该选项: transaction-isolation = {READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE} 用户可以用SET TRANSACTION语句改变单个会话或者所有新进连接的隔离级别。它的语法如下: SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | … Continue reading

wiloon, 12/16/2011 6:39 | Tag:

http://lobert.iteye.com/blog/1604122 ON DUPLICATE KEY UPDATE重复插入时更新 博客分类:mysql mysqlDUPLICATEUPDATEkey mysql当插入重复时更新的方法: 第一种方法:   示例一:插入多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句:   Sql代码 INSERT INTO clients (client_id,client_name,client_type) SELECT supplier_id,supplier_name,’advertising’ FROM suppliers WHERE not exists(select * from clients where clients.client_id=suppliers.supplier_id); 示例一:插入单条记录   Sql代码 INSERT INTO clients (client_id,client_name,client_type) SELECT 10345,’IBM’,’advertising’ FROM dual WHERE not exists (select * from clients where clients.client_id=10345); 使用 dual 做表名可以让你在 select 语句后面直接跟上要插入字段的值,即使这些值还不存在当前表中。 第二种方法:   INSERT 中ON … Continue reading

wiloon, 12/14/2011 10:10 | Tag:

RPC 是远程过程调用(Remote Procedure Call)的缩写形式,Birrell 和 Nelson 在 1984 发表于 ACM Transactions on Computer Systems 的论文《Implementing remote procedure calls》对 RPC 做了经典的诠释。RPC 是指计算机 A 上的进程,调用另外一台计算机 B 上的进程,其中 A 上的调用进程被挂起,而 B 上的被调用进程开始执行,当值返回给 A 时,A 进程继续执行。调用方可以通过使用参数将信息传送给被调用方,而后可以通过传回的结果得到信息。而这一过程,对于开发人员来说是透明的。 https://waylau.com/remote-procedure-calls/

wiloon, 12/9/2011 2:24 | Tag:

作业:作业是指用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合。它包括程序,数据及其作业说明书。 程序:程序是为解决一个信息处理任务而预先编制的工作执行方案,是由一串CPU能够执行的基本指令组成的序列,每一条指令规定了计算机应进行什么操作(如加、减、乘、判断等)及操作需要的有关数据。 进程:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。 线程:线程是进程中的一个实体,是被系统独立调度和执行的基本单位。 管程:管程实际上是定义了一个数据结构和在该数据结构上的能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。 关系 (1)作业是在较早的多道批处理系统中提出的,现代操作系统基本没有这个概念。一般来说作业是可以包含多个程序或数据集,但至少有一个程序。怎么理解呢?个人任务程序和作业可以从功能的角度来理解。打个比方,今天班主任要求我们进行班级大扫除,这可以看做一个作业。而这个作业被我们分成擦窗户,洗地板等等,这些所谓的“子作业”可以看成是一个一个的程序。 (2)一个程序可以有多个进程,一个线程可以包含多个程序。前半句比较好理解,那上面那个例子来说,比如说实现擦窗户这个程序。有些人(资源)去准备好布(资源)和水(资源),供别人擦洗;有些人(资源)接布进程擦窗户。这便可以理解为实现这个程序功能的两个线程。而为什么又说一个线程可以包含多个程序?仔细看清楚是“包含”。其实便是在这个进程里面直接调用其他程序,也就是使用程序的功能。 (3)一个进程至少有一个线程. 线程的划分尺度小于进程,多个线程共享进程内存。多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。还是拿上面的例子来讲,实现擦窗户这个功能的程序创建了两个进程。需要的资源有:人、布、水。这些资源早在创建的时候就已经申请了。第一条进程“有些人(资源)去准备好布(资源)和水(资源),供别人擦洗“现在可以开辟多个线程来细化这个任务。可以叫其中一个人去打水,其中一个人负责洗布,其中一个人传递干净的布等,这便是一个个线程。而无论开辟多少个线程,使用的资源都是来自进程已申请的,无法脱离进程而独自存在。另外,线程之间是独立的,打水的,洗布的,传递的,只要自己干好自己的活,没有必然的相互依赖的关系。而且可以同时进行,这便是多线程的好处所在。 (4)而对于管程呢?通俗的理解就是”管理进程“。死锁问题的存在导致管程于1971年被Dijkstra提出,说道:把所有进程对某一种临界资源的同步操作都集中起来,构成一个所谓的秘书进程。凡要访问该临界资源的进程,都需先报告秘书,由秘书来实现诸进程对同一临界资源的互斥使用。 管程由四部分组成: 1).管程内部的共享变量。 2).管程内部的条件变量。 3).管程内部并行执行的进程。 4).对于局部与管程内部的共享数据设置初始值的语句。 回到例子,上面说道两个进程中,有些人去准备布和水的工作,有些人要擦窗户。那么问题来了。准备布工作的人的名单中却写着准备水的人,那么问题来了,这个人到底该干吗?如果准备布工作要了这个人,这个人一直工作着,而准备水的工作一直等着他去做,那么就一直等着吗?更极端的情况下,这个一直在洗布就不去换水,这便是死锁的一个情形。没关系,此时班主任来了,看到在场的情形,他决定了此时这个人应该去干嘛,解决了用人冲突的问题,其作用类似管程。 http://blog.csdn.net/u010794180/article/details/41774101

wiloon, 12/9/2011 1:44 | Tag:

http://www.cnblogs.com/pcat/p/5467188.html linux里source、sh、bash、./有什么区别 在linux里,source、sh、bash、./都可以执行shell script文件,那它们有什么不同吗? 1、source source a.sh 在当前shell内去读取、执行a.sh,而a.sh不需要有”执行权限” source命令可以简写为”.” . a.sh 注意:中间是有空格的。 2、sh/bash sh a.sh bash a.sh 都是打开一个subshell去读取、执行a.sh,而a.sh不需要有”执行权限” 通常在subshell里运行的脚本里设置变量,不会影响到父shell的。 3、./ ./a.sh #bash: ./a.sh: 权限不够 chmod +x a.sh ./a.sh 打开一个subshell去读取、执行a.sh,但a.sh需要有”执行权限” 可以用chmod +x添加执行权限 4、fork、source、exec 使用fork方式运行script时, 就是让shell(parent process)产生一个child process去执行该script,当child process结束后,会返回parent process,但parent process的环境是不会因child process的改变而改变的。 … Continue reading

wiloon, 12/6/2011 9:48 | Tag:

http://www.blogjava.net/coderdream/archive/2007/08/17/137642.html 1、最简单的: CREATE TABLE t1( id int not null, name char(20) ); 2、带主键的: a: CREATE TABLE t1( id int not null primary key, name char(20) ); b:复合主键 CREATE TABLE t1( id int not null, name char(20),    primary key (id,name) ); 3、带默认值的: CREATE TABLE t1( id int not null default 0 primary key, name char(20) default ‘1’ ); 转贴的: CREATE TABLE PLAYERS (PLAYERNO      INTEGER NOT NULL PRIMARY KEY, NAME          CHAR(15) NOT NULL, INITIALS      CHAR(3) NOT NULL, BIRTH_DATE    DATE, SEX           CHAR(1) NOT NULL … Continue reading

wiloon, 11/11/2011 8:53 | Tag:

jinfo可以输出并修改运行时的java 进程的opts。用处比较简单,用于输出JAVA系统参数及命令行参数。用法是jinfo -opt pid 如:查看2788的MaxPerm大小可以用 jinfo -flag MaxPermSize 2788 jinfo -flag MaxHeapSize 13112 打印命令行标识参数和系统属性键值对。 -flag name 打印指定的命令行标识参数的名称和值。 -flag [+|-]name 启用或禁用指定的boolean类型的命令行标识参数。 -flag name=value 为给定的命令行标识参数设置指定的值。 -flags 成对打印传递给JVM的命令行标识参数。 -sysprops 以键值对形式打印Java系统属性。 -h 打印帮助信息。 -help 打印帮助信息。 http://www.softown.cn/post/182.html

wiloon, 11/11/2011 8:51 | Tag:

#http://www.wiloon.com/wordpress/?p=4781 #http://www.wiloon.com/wordpress/?p=4219 #http://www.wiloon.com/wordpress/?p=4117 #http://www.wiloon.com/wordpress/?p=19

wiloon, 8/8/2011 3:41 | Tag:

set objElement = objPage.WebElement(“html tag:=TD”,”innertext:=xxxxxx”, “index:=1”).object logger(objElement.outerHtml) Set objElement = objElement.parentElement logger(objElement.outerHtml) Set objElement = objElement.firstChild logger(objElement.outerHtml) Set objElement = objElement.firstChild logger(objElement.outerHtml) logger(objElement.status) objElement.checked=true logger(objElement.status)

辽ICP备14012896