用wget同步通过http共享的repository

最近公司新build的发布共享从文件共享,也就是通过smb和AFP协议共享,转变为web方式,也就是http协议共享。

之前写的自动下载脚本不再起作用了,在之前的脚本中用的是rsync命令,这是非常实用的文件夹同步工具。

转到web发布后,我曾修改脚本为用curl来下载,主要是curl是mac自带的工具,而wget则需要另外安装。

Read more
Document Object Model

DOM是为应用程序创建和操作各种文档而设计的一个接口,最主要的实现就是html网页,但也可有其它文档类型的实现。谈谈个人对DOM的一些理解。 DOM将文档以一种结构化的方式呈现,文档内部的各种元素和内容用对象来代表,每个元素对象都定义了相应的读取和设置等操作。这样一种面对对象的设计结构使得各种编程语言都能通过相对一致和简单地来操作实现了DOM接口的文档,实现内容的动态展现。 同时DOM元素对象还定义了很多的事件,用于响应用户在浏览器中的各种操作。 由历史发展而来,DOM有好几层的标准,从DOM Level 0到目前的DOM Level 3. 当一个浏览器加载一个页面的时候,它解析HTML文档的内容,并创建一个由页面元素,属性,内容等结点构成的树状结构。 每一个结点对象都有各自的方法和属性,但每一个都实现了Node接口。 DOM Level 3中有12种不同的object: Document — Element (maximum of one), ProcessingInstruction, Comment, DocumentType (maximum of one) DocumentFragment — Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference DocumentType — no children EntityReference — Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference Element — Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference Attr — Text, EntityReference ProcessingInstruction — no children Comment — no children Text — no children CDATASection — no children Entity — Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference Notation — no children   在网页中操作DOM主要使用的是JavaScript语言,以实现页面的客户端动态化。 w3c的DOM标准  

Read more
C语言:内存字节对齐详解[转载]

一、什么是对齐,以及为什么要对齐: 1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按照适合其平台的要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为 32位)如果存放在偶地址开始的地方,那么一个读周期就可以读出,而如果存放在奇地址开始的地方,就可能会需要2个读周期,并对两次读出的结果的高低 字节进行拼凑才能得到该int数据。显然在读取效率上下降很多。这也是空间和时间的博弈。 二、对齐的实现 通常,我们写程序的时候,不需要考虑对齐问题。编译器会替我们选择适合目标平台的对齐策略。当然,我们也可以通知给编译器传递预编译指令而改变对指定数据的对齐方法。 但是,正因为我们一般不需要关心这个问题,所以因为编辑器对数据存放做了对齐,而我们不了解的话,常常会对一些问题感到迷惑。最常见的就是struct数据结构的sizeof结果,出乎意料。为此,我们需要对对齐算法所了解。 对齐的算法: 由于各个平台和编译器的不同,现以本人使用的gcc version 3.2.2编译器(32位x86平台)为例子,来讨论编译器对struct数据结构中的各成员如何进行对齐的。 设结构体如下定义: struct A { int a; char b; short c; }; 结构体A中包含了4字节长度的int一个,1字节长度的char一个和2字节长度的short型数据一个。所以A用到的空间应该是7字节。但是因为编译器要对数据成员在空间上进行对齐。 所以使用sizeof(strcut A)值为8。 现在把该结构体调整成员变量的顺序。 struct B { char b; int a; short c; }; 这时候同样是总共7个字节的变量,但是sizeof(struct B)的值却是12。 下面我们使用预编译指令#pragma pack (value)来告诉编译器,使用我们指定的对齐值来取代缺省的。 #progma pack (2) /*指定按2字节对齐*/ struct C { char b; int […]

Read more
www.000webhost.com