12 2011 档案

摘要:sed 工具简介 在了解了一些正规表示法的基础应用之后,再来呢?呵呵~两个东西可以玩一玩的,那就是 sed 跟 awk 了! 这两个家伙可是相当的有用的啊!举例来说,鸟哥写的 logfile.sh 分析登录文件的小程序, 绝大部分分析关键词的取用、统计等等,就是用这两个宝贝蛋来帮我完成的! 那么你说,要不要玩一玩啊?! ^_^ 我们先来谈一谈 sed 好了,基本上, sed 可以分析 Standard Input (STDIN) 的数据, 然后将数据经过处理后,再将他输出到 standrad out (STDOUT) 的一个工具。 至于处理呢?可以进行取代、删除、新增、撷取特定行等等的功能呢! 阅读全文
posted @ 2011-12-21 19:41 tangr206 阅读(236) 评论(0) 推荐(0)
摘要:[转载] google ProtoBuf开发者指南google ProtoBuf开发者指南ProtoBuf开发者指南译者:gashero目录1 概览 1.1 什么是protocol buffer 1.2 他们如何工作 1.3 为什么不用XML? 1.4 听起来像是为我的解决方案,如何开始? 1.5 一点历史 2 语言指导 2.1 定义一个消息类型 2.2 值类型 2.3 可选字段与缺省值 2.4 枚举 2.5 使用其他消息类型 2.6 嵌套类型 2.7 更新一个数据类型 2.8 扩展 2.9 包 2.10 定义服务 2.11 选项 2.12 生成你的类 3 代码风格指导 3.1 消息与字段名 阅读全文
posted @ 2011-12-14 14:28 tangr206 阅读(268) 评论(0) 推荐(0)
摘要:用grep查找文件内容 -a, --text equivalent to --binary-files=text -I equivalent to --binary-files=without-match使用grep搜索文件内容——快捷、方便(1) 在当前目录下的所有文件的文件内容中查找哪个文件的内容中有findcontents(大小写不敏感,列出findcontents所在文件的所在行)——适合于当前目录下的文件及目录数目比较少,如果查找后列出内容过多,将会失去查找意义。grep -rin findcontents * (2) 如果查找后列出内容过多,就需要用如下命令(只列出findc... 阅读全文
posted @ 2011-12-09 20:56 tangr206 阅读(223) 评论(0) 推荐(0)
摘要:新鲜事服务相关知识学习服务部署方式icegrid学习(registry>>node>>icebox>>service>>*.so)新鲜事服务处理流程(feedassistant完成数据的前期处理,feedassistantN再次处理,然后dispatch,存入feedcache,由feednews取出cache中的数据,交给feedview处理)日报2011-11-151.学习了feedview下的代码,重要内容(feedviewI.cc;expandfeed.cc;body.inc;storage.inc;typetable.inc)渲染工作就 阅读全文
posted @ 2011-12-09 19:58 tangr206 阅读(438) 评论(0) 推荐(0)
摘要:张铁安:我今天跟大家分享这个内容是人人网系统架构,里面我们会讲到跟新鲜事相关的一些技术和开源一些项目,希望对大家今后工作有一些帮助。首先我要讲我 们新鲜事系统在SNS的主要功能。我要在人人网发一个日志,可以很及时高效迅速的在我朋友圈、粉丝圈子里面可以看到,我朋友可以很快回复跟我进行一个很快 的交互。我必须保证系统高效运转,同时要稳定。对于我们这样一个SNS网站来说,包括SNS还有微博这样一些系统,很重要一点是当发生特殊事件时会有一个 爆发效应。前两天世界杯,我不是一个足球迷,那天晚上我就睡了。两点我手机不停的响,我说怎么回事,我以为同事更新服务,想了想可能今天晚上是什么比赛比 较火,第二天早上 阅读全文
posted @ 2011-12-06 14:34 tangr206 阅读(248) 评论(0) 推荐(0)
摘要:Feed架构的两种设计模式Push(推)和Pull(拉),其中Push优点是实现简单,缺点在于分发量,而Pull优点是节约存储,缺点是计算量大和峰值挑战。1.推模式,feeds的存储可以根据用户uid进行数据的sharding,并不是存储在一张表。事实上,推模式的查询只需要SELECT id from feeds_X wheres uid=myuid ORDER BY id DESC LIMIT n 而上面拉模式的sql语句比这个要消耗更多的资源。2. 正是我说的时间分区拉模式。 目前更多的网站都倾向于推模式,人人网的新鲜事完全是推模式,新浪微博据说是推拉模式,不过感觉也是推为主的。 ... 阅读全文
posted @ 2011-12-06 13:55 tangr206 阅读(225) 评论(0) 推荐(0)
摘要:Boost.Circular_buffer维护了一块连续内存块作为缓存区,当缓存区内的数据存满时,继续存入数据就覆盖掉旧的数据。 它是一个与STL兼容的容器,类似于 std::list或std::deque,并且支持随机存取。circular_buffer 被特别设计为提供固定容量的存储大小。当其容量被用完时,新插入的元素会覆盖缓冲区头部或尾部(取决于使用何种插入操作)的元素。逻辑存储结构如图boost::circular_buffer is on the way…很多时候我们会用到缓冲区或者类似缓冲区的数据结构,如果能 事先估计出数据量多大,并尽可能的节约内存,可以使用环形(逻辑上)结构的缓 阅读全文
posted @ 2011-12-06 11:09 tangr206 阅读(859) 评论(0) 推荐(0)
摘要:Pool分配是一种分配内存方法,用于快速分配同样大小的内存块, 尤其是反复分配/释放同样大小的内存块的情况。1. pool 快速分配小块内存,如果pool无法提供小块内存给用户,返回0。 Example:voidfunc(){boost::pool<>p(sizeof(int));^^^^^^^^^^^指定每次分配的块的大小for(inti=0;i<10000;++i){int*constt=p.malloc();pool分配指定大小的内存块;需要的时候,pool会向系统申请大块内存。...//Dosomethingwitht;don'ttakethetimetofr 阅读全文
posted @ 2011-12-05 20:26 tangr206 阅读(249) 评论(0) 推荐(0)
摘要:、前言Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中 间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml),并由生成的代码负责RPC协议层和传输层的实现。本文组织结构如下:1)引言 2)架构3)支持的数据传输格式、数据传输方式和服务模型 4)Thrift安装 5)利用Thift部署服务关于th 阅读全文
posted @ 2011-12-05 18:45 tangr206 阅读(1518) 评论(0) 推荐(0)
摘要:在大型web应用中,缓存可算是当今的一个标准开发配置了。在大规模的缓存应用中,应运而生了分布式缓存系统。分布式缓存系统的基本原理,大家也有所耳 闻。key-value如何均匀的分散到集群中?说到此,最常规的方式莫过于hash取模的方式。比如集群中可用机器适量为N,那么key值为K的的数据 请求很简单的应该路由到hash(K) mod N对应的机器。的确,这种结构是简单的,也是实用的。但是在一些高速发展的web系统中,这样的解决方案仍有些缺陷。随着系统访问压力的增长,缓存系统不 得不通过增加机器节点的方式提高集群的相应速度和数据承载量。增加机器意味着按照hash取模的方式,在增加机器节点的这一. 阅读全文
posted @ 2011-12-05 18:15 tangr206 阅读(263) 评论(0) 推荐(0)
摘要:基本概念kafka的工作方式和其他MQ基本相同,只是在一些名词命名上有些不同。为了更好的讨论,这里对这些名词做简单解释。通过这些解释应该可以大致了解kafka MQ的工作方式。Producer (P):就是网kafka发消息的客户端Consumer (C):从kafka取消息的客户端Topic (T):可以理解为一个队列Consumer Group (CG):这是kafka用来实现一个topic消息的广播(发给所有的consumer)和单播(发给任意一个consumer)的手段。一个 topic可以有多个CG。topic的消息会复制(不是真的复制,是概念上的)到所有的CG,但每个CG只会把消息 阅读全文
posted @ 2011-12-03 17:43 tangr206 阅读(10692) 评论(0) 推荐(5)
摘要:有人说C++程序员可以分为两类,读过Effective C++的和没读过的。世界顶级C++大师Scott Meyers 成名之作的第三版的确当得起这样的评价。本书并没有你告诉什么是C++语言,怎样使用C++语言,而是从一个经验丰富的C++大师的角度告诉程序员:怎么样快速编写健壮的,高效的,稳定的,易于移植和易于重用的C++程序。本书共分为9节55个条款,从多个角度介绍了C++的使用经验和应遵循的编程原则。本系列文章分两部分概括介绍了《Effective C++》每个条款的核心内容,本文是第一部分,第二部分为:《Effective C++》读书笔记(第二部分)。1. 让自己习惯C++(Accus 阅读全文
posted @ 2011-12-03 17:42 tangr206 阅读(253) 评论(0) 推荐(0)
摘要:6. 继承与面向对象设计(Inheritance and Object-Oriented Design)条款32: 确定你的public 继承塑模出is-a 关系本条款告诉读者一个非常基本的继承思想:”public 继承”意味is唱。适用于base classes 身上的每一件事情一定也适用于derived classes 身上,因为每一个derived class 对象也都是一个base class 对象,但反之不然。条款33: 避免遮掩继承而来的名称(1) derived classes 内的名称会遮掩base classes 内的名称。在public 继承下从来没有人希望如此。举例:cl 阅读全文
posted @ 2011-12-03 17:42 tangr206 阅读(157) 评论(0) 推荐(0)