用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
我心目中计算机软件科学最小必读书目[zz]

发信人: sky (sky), 信区: SoftDesign  标  题: 我心目中计算机软件科学最小必读书目  发信站: 北邮人论坛 (Tue Nov 24 18:41:07 2009), 站内  数据结构部分修改于2010年1月30日  程序语言部分修改于2010年3月18日  本科不是念计算机的,师弟链接了大牛amiao版内开的书目,感觉太多了,对于不是计算机科班出身的人来说,是很难看完那么多的。仔细删减了再删减,列一下我觉得的计算机软件学科至少应该过一遍的8本,只涵盖“程序语言(C & C++)”、“数据结构”、“操作系统”、“计算机网络”和“计算机系统”五个主题,其他的诸如编译原理,汇编语言,数据库,Java,软件工程,面向对象等等相对外围的主题我觉得不是绝对必要的。     里面说了很多废话,其实就是8本书,我觉得是真正的必读,也是我觉得比较实际,能在一年之内看完的:   程序语言(C) + 程序语言(C++) + 数据结构 + 操作系统概念 + 操作系统实践 + 计算机网络概念 + 计算机网络实践 + 计算机系统    1. 程序语言   《The C Programming language》(C程序设计语言)(Brian W. Kernighan & Dennis M. Ritchie)   (ps. […]

Read more
敏捷开发者必读书籍[转载]

这是几本每个信仰敏捷开发的程序员都应该读一下的书籍,因为这几本书表达了跟我们相同的信念,并且内涵了极丰富的价值。这里推荐的这几本书都是很常规且通用的,并不是局限在某一领域(像《Effective Java》)。书目我尽量精简,大概就4-5本,我会不时的对这个清单进行修订。 下面就是这几本书,以及为什么我深信它们如此重要的原因。 1. 《Implementing Lean Software Development: From Concept to Cash》 Mary and Tom Poppendieck, 2006 (amazon) 薄但却极其丰富的一本书,对精益(Lean)软件开发思想及其各个方面做了精彩的描述。难以置信这边书里容下了如此多有价值的观点。它不仅向我们传递了为什么精益软件开发的可行性,并且向我们介绍了如何在实践中实现它。 关键词:消除浪费,延迟决定,可持续性节奏,提供质量 2. 《Running Lean: Iterate from Plan A to a Plan That Works》 Ash Maurya, 2012 (amazon) 敏捷开发倡导者相信,精益创业方法不仅是针对新公司,对于现有的公司也是激发革新创造的正确方法。而革新创造是我们前进的动力,能帮助我们在日趋激烈的市场竞争中生存下来的保障。如果你已经对什么是精益创业有基本的了解,那这本书正适合你。跟Eric Ries的《The Lean Startup》相反,这本书更有实践价值,它介绍了很多在实践中如何做假设前提测试的方法。 关键词:用户中心,测量,面谈,消除浪费,未知方案 3.《 代码整洁之道(Clean Code)》 Robert C. Martin (Uncle Bob), 2008 (amazon) 对于任何一个有上进心的软件专业人士来说都是一本非常重要的书,它能让我们认识什么是好的代码,如何写出好的代码。它会影响你写代码的方式。每个人都听说过方法、类应该简单、只做一件事、有自我说明的名称、测试驱动等。这本书对这些都做了说明,并解释了为什么要这样。 关键词:单一责任原则,TDD,YAGNI, DRY 4. 《Working Effectively with Legacy […]

Read more
Design Pattern

  Purpose Design Pattern Aspect(s) That Can Vary Creational Abstract Factory (87) families of product objects Builder (97) how a composite object gets created Factory Method (107) subclass of object that is instantiated Prototype (117) class of object that is instantiated Singleton (127) the sole instance of a class Structural Adapter (139) interface to an object Bridge (151) implementation of an object […]

Read more
bash-scripting tips

${var#Pattern} Remove from $var the shortest part of $Pattern that matches the front end of $var. ${var##Pattern} Remove from $var the longest part of $Pattern that matches the front end of $var.

Read more
[转载]CHS-Cylinder/Head/Sector-柱面/磁头/扇区

英文原义:Cylinder/Head/Sector 中文释义:柱面/磁头/扇区 注 解:FDISK在分区期间所需的磁盘信息。 CHS寻址模式: ① CHS寻址模式将硬盘划分为磁头(Heads)、柱面(Cylinder)、扇区(Sector)。 △磁头(Heads):每张磁片的正反两面各有一个磁头,一个磁头对应一张磁片的一个面。因此,用第几磁 头就可以表示数据在哪个磁面。 △柱面(Cylinder):所有磁片中半径相同的同心磁道构成“柱面”,意思是这一系列的磁道垂直叠在一起,就形成一个柱面的形状。简单地理解,柱面数=磁道数。 △扇区(Sector):将磁道划分为若干个小的区段,就是扇区。虽然很小,但实际是一个扇子的形状,故称为扇区。每个扇区的容量为512字节。 ② 知道了磁头数、柱面数、扇区数,就可以很容易确定硬盘的容量,其计算公式是:硬盘容量=磁头数×柱面数×扇区数×512字节。

Read more
文件中行尾^M符号

由windows系统和类unix系统使用不同的行结尾符引起的, windows中使用0x0D0A (carriage return + line feed).而类unix系统使用0x0A (a line feed). 而^M就是字符0x0D在类unix系统中的显示。 要去除^M符号,可以使用dos2unix工具,或者在vi中,使用命令::%s/^M//g (用ctrl+v,ctrl+M输入^M)。  

Read more
www.000webhost.com