`
ostrichmyself
  • 浏览: 38779 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
似乎现在已经把cruisecontrol和持续集成划上了完美的等号,  目前三个小部门公用了一个持续集成环境, 那情况真的一个字: 惨. 持续集成最后成了应付领导审查的一个工具, CI报表没人理会,最后CI大厦轰然倒塌. 这篇文章所做的, 就是审视失败的原因, 建立起新的CI流程, 抛弃cruisecontrol,从最基础最实用的角度, 实践持续集成
Android应用程序基础: Android 应用程序由Java编写。被编译好的java文件,跟数据以及资源文件一起,被aapt tool 打包成一个单独的apk文件。 从很多方面看来,一个.apk文件代表的应用程序生存在自己的世界中: 1: 默认情况下:所有的应用程序在各自的Linux进程中运行。 2: 每个进程有自己的VM,因此运行的代码和其它所有的应用程序是隔离的。 3: 默认情况下:每个应用程序分配给一个Linux User ID. Linux的权限设定,使得可执行程序文件只能够被 这个User和这个应用程序可见。——当然,也有方法可以将这些应用程序暴露给其它的应用程序。 将两个应 ...
敏捷(Agile)作为一种开发流程, 目前为各大公司所采用, 敏捷流程的具体实践有XP 和Scrum, 似乎很少有文章介绍这两者的区别, 发现一篇外文, 见解非常深刻, 特将其翻译一把. 原文(DIFFERENCES BETWEEN SCRUM AND EXTREME PROGRAMMING )在此: http://blog.mountaingoatsoftware.com/differences-between-scrum-and-extreme-programming 文章来源: http://blog.csdn.net/ostrichmyself
机器太破了,所以只能采用较早的Linux版本,选择了一个Fedora 9.0来安装。 遇到N多问题: 1. 本来有张DVD光盘, 但机器的光驱是VCD的... 2. 改为Tomcat Http server的方式安装,不成功 3. 通过其他机器的DVD光驱,copy一份, 然后通过网络传输到目标PC 下面讲安装, 从xp系统引导硬盘安装, 套路是: 1. 将系统启动引导grub4dos C:\grldr="GRUB for DOS" 一般的做法是将grub4dos的exe, menulist,等copy出来,个人觉得完全不要这样, 改改路径就好了。 因为如果 ...
一些托业复习资料的下载链接,可根据需要自行下载 http://www.hjenglish.com/down/list/105/ http://www.beikoo.com/ 托业考试的台湾官方网站 http://www.toeic.com.tw/ 还有一个托业的论坛,里面有很多资料和经验分享 http://bbs.diandian.net/showforum-141.aspx http://toeic.blog.hexun.com/16991441_d.html 以下资料名称: Complete Guide Of The TOEIC Test 托业词汇 http://bbs.t ...
zz: http://www.ooophone.com/redirect.php?tid=1929&goto=lastpost $su #cd /sdcard/download/ #cp com.metago.astro.apk /data/app/ #cd /data/app #chmod 644 com.metago.astro.apk #chown system.system com.metago.astro.apk #exit 原理非常简单,android的apk文件分两类,一类放在system/app目录下,是Android自带的应用程序,另外一类放在data/app目录 ...
ubuntu软件源相当于一个包含所有ubuntu常用软件的的软件库,ubuntu在添加软件源后 ,会下载ubuntu源里的软件列表,ubuntu自带的新立得里面就能看到你的软件源里所有的软件,apt-get就是用命令将软件源里的软件下载并安装到你电脑上,而新立得也是一样,但相对简单—直接从里面查找所需软件,选择下载安装。像xp上能用的360安全卫士,不是有一个软件管理么,可以一键下载安装常用软件,原理差不多。
星期六的学习资料
Tree,作为数据的器皿, 数据结构,同样是为了这个目的。为了适应处理方便处理不同的数据结构, 衍生出大量的Tree, 最常见的是二叉树。二叉树,再继续细分为红黑树,平衡二叉树,等等。 既然这些树都有各自特点,所以,提供访问的接口,自然不同, 就像消防栓,提供的接口是高压皮套, 解开水就喷涌而出,茶壶是涓涓溪流,饮水机的冷热开关... 二叉树用到最多,来看看它的集中形式: 二叉平衡树: 左右子树的深度相差不超过1. 二叉查找树:左节点小于父节点,有节点大于等于父节点(或者相反) 二叉平衡查找树:查找树,同时是平衡的。 AVL树: 是一种二叉查找树,每个节点记录平衡因子, 通过旋转的方 ...
树概览: 全局来看: 组成: 根节点 + 方法 即:知道根节点,然后提供方法, 就能将这棵树的信息全部搞定, 从根节点开始, 攀爬到你需要的任何叶子或者枝干上去。 所以,如果你想写一颗树, 则应该这样: Tree的类, 1. 这个类有一个Field,叫root, 类型为Node类型; 根节点下面会延伸出其他节点,也为Node 2. 这个类有无数的访问方法,大体是顺着节点去摸索其他的节点,让你方便的找到树中,你需要的任意信息 . OK, 就这些!够简单! 然后再深入一点点:提到的类型Node,还没有定义,怎样定义一个节点? 定义一个Node主要有以下: 1. 她自己所描述的数 ...
学习Python的BT序幕. 现有工具的算法是用JavaScript写的,但这个算法要被其它工具用到, 对方要求务必用Python实现, 理由XXXXX一堆, 经过一下午激烈的争吵, 对方出一个人来协助写算法. 不得已, 开始学习. 其实本人还是对Python有很强烈的兴趣的. GAE有一个Python实现的WIKI, 觉得还不错,所以Copy过来了, 惊讶于他的简介. 启动学习序幕: 从同事那边收集到的几个信息: 1. Python脚本执行, 没有像java那样类似的.class中间文件. 2. Python占地面积非常小,占用硬盘空间不大. 3. 执行效率和 ...
    public Object newInstance(String ClassName, Object[] args) throws Exception     {         Class newone = Class.forName(ClassName);         Class[] argsClass = new Class[args.length];         for (int i = 0; i < args.length; i++)         {             argsClass[i] = args[i].getClass();         ...
一般正则表达是都会选择最大的方式匹配如: 对象: abcdqqqqd 正则表达式: abc.*d 匹配的将不是abcd而是:abcdqqqqd 如果要匹配abcd,则需要在匹配处增加"?": abc.*?d 这里: .*表示的就是贪婪匹配: 先把输入字符全部纳入, 看看是否匹配,不匹配则吐出最后一个字符,然后再匹配,不断进行这样的过程。 .*?表示的是勉强.先纳入第一个字符,看是否匹配,然后逐渐将后面的字符放入,找到就OK, 并且能找到尽量多的符合条件。 另外还有一个: .*+表示侵占, 这个不常用到,跟贪婪算法一样,也是把字符全部纳入, ...
预定义 1. 定义基本变量 #define  STAT_TIME_XXX 3000 2. 定义CString类型 #define  RUNLOG_TABLE "(\ `ID` bigint(20) NOT NULL auto_increment,\ `frameNo` smallint(6) NOT NULL,\ `slotNo`  smallint(6) NOT NULL,\ `subSysId` smallint(6) NOT NULL,\ `boardType` smallint(6) NOT NULL,\ `startTime` int(11) NOT NULL,\ ...
void process(A a){} 当process发生调用时,如 A b; process(b); 这个时候发生的故事,是b的值(此时是对象值)复制, 将该对象传给process, 因此process中的改变,对b没有影响。 ----我们喜欢将这个归结为值传递。 void process(A* a){} 发生调用A b; process(&b); 这个时候发生的故事,是&b的值(b的地址)赋值, 该地址传给Process, process中,通过地址,找到对象,并改变原对象。 所以,b发生改变。 ----我们喜欢将其归结为传引用。 其实永远都是传值,但函数中操作的方式 ...
Global site tag (gtag.js) - Google Analytics