摘要: cat before.txt 输出: This is a line to be deleted This is a line that will be changed This is a line that will be unchanged cat after.txt 输出: This is a line that has been changed This is a line that will be unchanged This is a line that has been added #######################################... 阅读全文
posted @ 2012-12-14 17:35 aitao 阅读(2203) 评论(0) 推荐(0) 编辑
摘要: APUE 3.5关于重定向有个容易迷惑人的问题:./a.out > outfile 2>&1./a.out 2>&1 > outfile问两者区别。自己试了下, int main(){ printf("output to stdio\n"); fprintf(stderr,"output to stderr\n"); return 1;}// 结果如下:$ ./a.out > outfile 2>&1$ cat outfileoutput to stderroutput to stdin$ ./ 阅读全文
posted @ 2012-10-22 10:01 aitao 阅读(1004) 评论(0) 推荐(0) 编辑
摘要: C 风格(C-style)强制转型如下: (T) expression // cast expression to be of type T 函数风格(Function-style)强制转型使用这样的语法: T(expression) // cast expression to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧风格(old-style)的强制转型。使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。1、static_ca... 阅读全文
posted @ 2012-10-16 10:13 aitao 阅读(952) 评论(0) 推荐(0) 编辑
摘要: WEB服务器、应用程序服务器、HTTP服务器有何区别?IIS、Apache、Tomcat、Weblogic、WebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了:Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。因为Web服务器主要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是相等的(有没有支持除HTTP之外的协议的web服务器,作者没有考证过),说的是一回事。 应用程序服务器(简称应用服务器),我们先看一下微软对它的定义:"我们把应用程序服务器定义为“作为服务器 阅读全文
posted @ 2012-10-10 16:57 aitao 阅读(77324) 评论(6) 推荐(17) 编辑
摘要: 前言 云计算的概念近期可谓如火如荼,备受关注。我先前听到“云”这个名词时,很是觉得太过玄乎——也不知道它用在哪里,更不了解它如何实现,总有雾里看花的感觉! 好在近期工作需要的缘故,学习和开发过类似于“云计算”基础设施的内部系统,之后再回过头来看看业界两大寡头(Google,Amazon)推出各自的云计算服务,从认识上才算是真的将“云”这个天书般的概念落实。后面的文章中我将在个人理解的基础上,针对云计算的概念,体系结构,以及适用性等方面作一些不算很深入分析和对比,希望对大家理解云计算架构有所帮助。第一部分 什么是云计算 云计算的标准定义留给大家去Google吧,我这里谈谈我简化理解后的云计算是. 阅读全文
posted @ 2012-10-09 12:39 aitao 阅读(4008) 评论(0) 推荐(0) 编辑
摘要: C与C++的内存机制虽然非常相似,但还是有一些不同的地方。下面让我们一起来看看它们到底有什么区别吧。(一)C内存机制1. 栈(Stack): 位于函数内的局部变量(包括函数实参),由编译器负责分配释放,函数结束,栈变量失效。2. 堆(Heap) : 由程序员用malloc()/calloc()/realloc()分配空间,free()释放所申请的空间。如果程序员忘记free(),则会造成内存泄漏,程序结束时可能会由操作系统回收,也许就一直占用着直至关机。3. 全局区/静态区(Global Static Area): 全局变量和静态变量存放区,程序一经编译好,该区域便存在。并且... 阅读全文
posted @ 2012-10-05 21:15 aitao 阅读(1334) 评论(0) 推荐(0) 编辑
摘要: 求职不利,趁十一假期复习APUE v2线程和信号章节,两天时间看完。书中10.6和12.5两节分别是信号和线程的重入介绍。但是未对异步信号安全、线程安全、可重入概念做统一对比,难以彻悟。针对于此,写下本文。 1. 三个概念,线程安全,可重入,信号安全 先简单提一下, 线程安全,主要是针对数据竞争来说 阅读全文
posted @ 2012-10-03 19:50 aitao 阅读(5934) 评论(2) 推荐(4) 编辑
摘要: 曾任职于IBM中国研究院,从事与云计算相关研究的CSDN博客专家吴朱华曾写过一篇文章《探索Google App Engine背后的奥秘1—Google的核心技术》,对Google的核心技术和其整体架构进行详细的分析。 本篇将主要介绍Google的十个核心技术,而且可以分为四大类: 1.分布式基础设施:GFS,Chubby和Protocol Buffer。 2.分布式大规模数据处理:MapReduce和Sawzall。 3.分布式数据库技术:BigTable和数据库Sharding。 4.数据中心优化技术:数据中心高温化,12V电池和服务器整合。 注明:需要了解实现、部署细节的同... 阅读全文
posted @ 2012-10-01 22:43 aitao 阅读(876) 评论(0) 推荐(0) 编辑
摘要: R的依赖集闭包中,任一关系A->B,如果:1)依赖是平凡的;2)A是R的一个超码;则是BCNF,满足无损连接,但不一定依赖保持。如果不满足1)2),但满足:3)B-A中每个属性都在R的一个候选码中;则是3NF,满足无损连接,又满足依赖保持。基本概念:候选码、超码、依赖保持、无损连接分解。参见《数据库系统概念》 阅读全文
posted @ 2012-10-01 09:46 aitao 阅读(7586) 评论(0) 推荐(0) 编辑
摘要: 导读:苹果这样的公司通常会在面试过程中向求职者抛出一些逻辑的问题来考研面试者,所以,如果你对进入苹果感兴趣,或者向往类似的公司,又或者只是对逻辑问题感兴趣,这些面试难题值得你仔细研究。问题一:“你面前有两扇门,其中一扇门内藏着宝藏,但如果你不小心闯入另一扇门,只能痛苦地慢慢死掉……”这一听就是那种经典的最令人头痛的一类问题,但其实与其他问题相比,这只是个热身。在这两扇门后面,有两个人,这两个人都知道哪扇门后有宝藏,哪扇门擅闯者死,而这两个人呢,一个人只说真话,一个人只说假话。谁说真话谁说假话?那就要看你有没有智慧自己找出来了,游戏规则是,你只能问这两个人每人一个问题。那么,你问什么问题?问哪个 阅读全文
posted @ 2012-09-30 23:09 aitao 阅读(9607) 评论(0) 推荐(0) 编辑
摘要: 关于冒泡最优情况说明一下,O(n)是指在使用标志情况下,否则仍是O(n)。冒泡排序://本人习惯先把最大的选出来,放到右边void maopao(int arr[],int n){ int i,j,tmp;//tmp提前写上,或者及时补上! for (i=n-1;i>=0;i--)//不能少写等号! for(j=0;jarr[j+1])//不比较等于情况!否则就不稳定了! { tmp=arr[j+1]; arr[j+1]=arr[j]; arr[j]=tmp; } } return;}使用标志的冒泡排序,最好可达到O(n):void bubble_sort(int d[], i... 阅读全文
posted @ 2012-09-29 22:23 aitao 阅读(704) 评论(0) 推荐(0) 编辑
摘要: 1.Hash介绍 Hash这个在实现某些功能的经常会用到的数据结构,在java和c++ 里面都有相应的封装好的数据结构:C++ STL Map java 有HashMap TreeMap。计算理论中,没有Hash函数的说法,只有单向函数的说法。所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据。用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很容易计算出其结果来;而当给定结果的时候,很难计算出输入来,这就是单项函数。各种加密函 数都可以被认为是单向函数的逼近。Hash函数(或者成为散列函数)也可以看成是单向函数的一个逼近。即它接近于满足单向函数的定义。 阅读全文
posted @ 2012-09-29 09:48 aitao 阅读(4610) 评论(1) 推荐(0) 编辑
摘要: 一篇博文,未细考证,贴来学习。也可以参考LKD 4.6节 早期的Linux内核是不可抢占的。它的调度方法是:一个进程可以通过schedule()函数自愿地启动一次调度。非自愿的强制性调度只能发生在每次从系统调用返回的前夕以及每次从中断或异常处理返回到用户空间的前夕(这种强制性调度又叫用户抢占)。但是,如果在系统空间发生中断或异常是不会引起调度的。这种方式使内核实现得以简化。但常存在下面两个问题:如果这样的中断发生在内核中,本次中断返回是不会引起调度的,而要到最初使CPU从用户空间进入内核空间的那次系统调用或中断(异常)返回时才会发生调度。另外一个问题是优先级反转。在Linux中,在核心态... 阅读全文
posted @ 2012-09-26 23:29 aitao 阅读(3325) 评论(0) 推荐(0) 编辑
摘要: 【1】假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。由满6向空5倒,剩1升,把这1升倒5里,然后6剩满,倒5里面,由于5里面有1升水,因此6只能向5倒4升水,然后将6剩余的2升,倒入空的5里面,再灌满6向5里倒3升,剩余3升。【2】周雯的妈妈是豫林水泥厂的化验员。一天,周雯来到化验室做作业。做完后想出去玩。"等等,妈妈还要考你一个题目,"她接着说,"你看这6只做化验用的玻璃杯,前面3只盛满了水,后面3只是空的。你能只移动1只玻璃杯,就便盛满水的杯子和空杯子间隔起来吗?"爱动脑筋的周雯 阅读全文
posted @ 2012-09-26 09:29 aitao 阅读(1065) 评论(0) 推荐(0) 编辑
摘要: 原先在外企比较常见的智力面,如今也慢慢泛滥到了互联网公司,估计是国际化之必然趋势,亦是IT饱和之征兆。笔者之前搜集过一些智力题,但大多是数学题,甚至排列组合之类,但是这仅仅是冰山一角,真正的智力题绝不狭隘。下面是一些总结,先贴出来,以后慢慢看哈。一.最基本题型1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢(1分钟)2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?(5秒-1分钟)3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅.. 阅读全文
posted @ 2012-09-26 09:01 aitao 阅读(2591) 评论(0) 推荐(0) 编辑
摘要: 内存管理的目标是提供一种方法,为实现各种目的而在各个用户之间实现内存共享。内存管理方法应该实现以下两个功能:最小化管理内存所需的时间最大化用于一般应用的可用内存(最小化管理开销)内存管理实际上是一种关于权衡的零和游戏。您可以开发一种使用少量内存进行管理的算法,但是要花费更多时间来管理可用内存。也可以开发一个算法来有效地管理内存,但却要使用更多的内存。最终,特定应用程序的需求将促使对这种权衡作出选择。每个内存管理器都使用了一种基于堆的分配策略。在这种方法中,大块内存(称为堆)用来为用户定义的目的提供内存。当用户需要一块内存时,就请求给自己分配一定大小的内存。堆管理器会查看可用内存的情况(使用特定 阅读全文
posted @ 2012-09-25 09:47 aitao 阅读(1020) 评论(0) 推荐(0) 编辑
摘要: gzip软件核心算法deflate,是LZ77和Huffman压缩的结合。后者,一般教材都有介绍,本文对LZ77做个简要概述。 1977年,Jacob Ziv和Abraham Lempel描述了一种基于滑动窗口缓存的技术,该缓存用于保存最近刚刚处理的文本(J. Ziv and A. Lempel, “A Universal Algorithm for Sequential Data Compression”, IEEE Transaction on Information Theory, May 1977)。这个算法一般称为IZ77。 LZ77和它的变体发现,在正文流中词汇和短语(GI... 阅读全文
posted @ 2012-09-24 23:54 aitao 阅读(9654) 评论(0) 推荐(1) 编辑
摘要: 1. TCP的三次握手最主要是为了全双工的可靠建立: 如果采用两次的话,会出现下面这种情况: 比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机;于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接。传完东西后,断开。 结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上了(实际A已经断开),这个时候B机就再等待A传东西过去。2. 三次握手改成仅需要两次握手,死锁是可能发生 考虑计算机A和B之间的通信,假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建... 阅读全文
posted @ 2012-09-23 00:09 aitao 阅读(1304) 评论(0) 推荐(0) 编辑
摘要: 1. 负载均衡技术简介 现代企业信息化应用越来越多的采用B/S应用架构来承载企业的关键业务,因此,确保这些任务的可靠运行就变得日益重要。随着越来越多的企业实施数据集中,应用的扩展性、安全性和可靠性也越来越受到企业的重视。 负载均衡技术通过设置虚拟服务器IP(VIP),将后端多台真实服务器的应用资源虚拟成一台高性能的应用服务器,通过负载均衡算法,将大量来自客户端的应用请求分配到后端的服务器进行处理。负载均衡设备持续的对服务器上的应用状态进行检查,并自动对无效的应用服务器进行隔离,实现了一个简单、扩展性强、可靠性高的应用解决方案。解决了单台服务器处理性能不足,扩展性不够,可靠性较低的问题。 ... 阅读全文
posted @ 2012-09-21 22:10 aitao 阅读(6026) 评论(0) 推荐(2) 编辑
摘要: 从基本HTTP协议,服务器编写(只讲思路),到完整系统搭建(包括负载均衡LVS,IDC分布,DNS解析),到浏览器缓存的使用(重点讲述),结合线上实例图文讲解如何以最低廉的成本构建快速,高并发,高可用,可扩展的Web服务。最后将拿本公司一些线上产品做实例分析。如果能灵活应用这些方法,你也许会发现对于某些网站来说节约10倍成本,其实是个很保守的说法。一、服务器编写篇二、系统架构篇三、Cache为王篇四、实例分析篇五、动态应用篇------------------------------------------------------------------------------------.. 阅读全文
posted @ 2012-09-21 21:35 aitao 阅读(2167) 评论(0) 推荐(1) 编辑