yyyyyyyyyyyyyyyyyyyy

博客园 首页 新随笔 联系 订阅 管理

2016年4月30日 #

摘要: 数学算法那些事 1. 三种方法求最大公约数 1、连续整数检测法. 此算法比较简单: [php] view plain copy print? /** * greatest common divisor * * @param int $a * @param int $b */ function gcd 阅读全文
posted @ 2016-04-30 12:43 xxxxxxxx1x2xxxxxxx 阅读(188) 评论(0) 推荐(0)

摘要: 解读Google分布式锁服务 背景介绍 在2010年4月,Google的网页索引更新实现了实时更新,在今年的OSDI大会上,Google首次公布了有关这一技术的论文。 在此之前,Google的索引更新,采用的的批处理的方式(map/reduce),也就是当增量数据达到一定规模之后,把增量数据和全量索 阅读全文
posted @ 2016-04-30 12:43 xxxxxxxx1x2xxxxxxx 阅读(201) 评论(0) 推荐(0)

摘要: 链接分析算法之:HillTop算法 Hilltop算法是由Krishna Baharat 在2000年左右研究的,于2001年申请专利,但是有很多人以为Hilltop算法是由谷歌研究的。只不过是Krishna Baharat 后来加入了Google成为了一名核心工程师,然后授权给Google使用的。 阅读全文
posted @ 2016-04-30 12:42 xxxxxxxx1x2xxxxxxx 阅读(226) 评论(0) 推荐(0)

摘要: 细数二十世纪最伟大的十大算法 参考论文:The Best of the 20th Century: Editors Name Top 10 Algorithms。By Barry A. Cipra。地址:http://www.uta.edu/faculty/rcli/TopTen/topten.pd 阅读全文
posted @ 2016-04-30 12:42 xxxxxxxx1x2xxxxxxx 阅读(163) 评论(0) 推荐(0)

摘要: 链接分析算法之:SALSA算法 SALSA算法的初衷希望能够结合PageRank和HITS算法两者的主要特点,既可以利用HITS算法与查询相关的特点,也可以采纳PageRank的“随机游走模型”,这是SALSA算法提出的背景。由此可见,SALSA算法融合了PageRank和HITS算法的基本思想,从 阅读全文
posted @ 2016-04-30 12:41 xxxxxxxx1x2xxxxxxx 阅读(231) 评论(0) 推荐(0)

摘要: 链接分析算法之:主题敏感PageRank 前面的讨论提到。PageRank忽略了主题相关性,导致结果的相关性和主题性降低,对于不同的用户,甚至有很大的差别。例如,当搜索“苹果”时,一个数码爱好者可能是想要看 iphone 的信息,一个果农可能是想看苹果的价格走势和种植技巧,而一个小朋友可能在找苹果的 阅读全文
posted @ 2016-04-30 12:40 xxxxxxxx1x2xxxxxxx 阅读(245) 评论(0) 推荐(0)

摘要: 链接分析算法之:HITS算法 HITS(HITS(Hyperlink - Induced Topic Search) ) 算法是由康奈尔大学( Cornell University ) 的Jon Kleinberg 博士于1997 年首先提出的,为IBM 公司阿尔马登研究中心( IBM Almade 阅读全文
posted @ 2016-04-30 12:40 xxxxxxxx1x2xxxxxxx 阅读(240) 评论(0) 推荐(0)

摘要: 1. PageRank算法概述 PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名。 是Google创始人拉里·佩奇和谢尔盖·布林于1997年构建早期的搜索系统原型时提出的链接分析算法,自从Google在商业上获得空前的成功后,该算法也成为其他搜索引擎和学术界十分关注的计算模 阅读全文
posted @ 2016-04-30 12:39 xxxxxxxx1x2xxxxxxx 阅读(156) 评论(0) 推荐(0)

摘要: B-树和B+树的应用:数据搜索和数据库索引 B-树 1 .B-树定义 B-树是一种平衡的多路查找树,它在文件系统中很有用。 定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树;⑵若根结点不是叶子结点,则至少有两棵子树; ⑶除根结点之外的所有非终端结点至少 阅读全文
posted @ 2016-04-30 12:38 xxxxxxxx1x2xxxxxxx 阅读(158) 评论(0) 推荐(0)

摘要: 八大排序算法 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速 阅读全文
posted @ 2016-04-30 12:37 xxxxxxxx1x2xxxxxxx 阅读(154) 评论(0) 推荐(0)

摘要: 查找 -数据结构 几种查找算法:顺序查找,折半查找,分块查找,散列表 查找 -数据结构 几种查找算法:顺序查找,折半查找,分块查找,散列表 一、顺序查找的基本思想: 从表的一端开始,向另一端逐个按给定值kx 与关键码进行比较,若找到,查找成功,并给出数据元素在表中的位置;若整个表检测完,仍未找到与k 阅读全文
posted @ 2016-04-30 12:37 xxxxxxxx1x2xxxxxxx 阅读(133) 评论(0) 推荐(0)

摘要: 五大主流数据库模型 导读:无论是关系型数据库还是非关系型数据库,都是某种数据模型的实现。本文将为大家简要介绍5种常见的数据模型,让我们来追本溯源,窥探现在流行的数据库解决方案背后的神秘世界。 什么是数据模型? 访问数据库中的数据取决于数据库实现的数据模型。数据模型会影响客户端通过API对数据的操作。 阅读全文
posted @ 2016-04-30 12:36 xxxxxxxx1x2xxxxxxx 阅读(663) 评论(0) 推荐(0)

摘要: 1. 前言 熵的概念最早起源于物理学,用于度量一个热力学系统的无序程度。 在信息论里则叫信息量,即熵是对不确定性的度量。从控制论的角度来看,应叫不确定性。信息论的创始人香农在其著作《通信的数学理论》中提出了建立在概率统计模型上的信息度量。他把信息定义为“用来消除不确定性的东西”。在信息世界,熵越高, 阅读全文
posted @ 2016-04-30 12:35 xxxxxxxx1x2xxxxxxx 阅读(804) 评论(0) 推荐(0)

摘要: 海量数据处理 算法总结 前面我们说海量数据处理提到,从算法的角度去考虑处理海量数据。 1. Bloom Filter 【Bloom Filter】Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否 阅读全文
posted @ 2016-04-30 12:31 xxxxxxxx1x2xxxxxxx 阅读(191) 评论(0) 推荐(0)

摘要: Trie树:应用于统计和排序 Trie树:应用于统计和排序 1. 什么是trie树 1.Trie树 (特例结构树) Trie树,又称单词查找树、字典树,是一种树形结构,是一种哈希树的变种,是一种用于快速检索的多叉树结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统 阅读全文
posted @ 2016-04-30 12:28 xxxxxxxx1x2xxxxxxx 阅读(135) 评论(0) 推荐(0)

摘要: 海量数据处理算法—Bit-Map 1. Bit Map算法简介 来自于《编程珠玑》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 2、 Bit Map的基本思想 我们先来看一个具体的例 阅读全文
posted @ 2016-04-30 12:28 xxxxxxxx1x2xxxxxxx 阅读(197) 评论(0) 推荐(0)

摘要: 使用Storm实现实时大数据分析 使用Storm实现实时大数据分析 摘要:随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战。Shruthi Kumar和Siddharth Patankar在Dr.Dobb’s上结合了汽车超速监视,为我们演示了使用Storm进行实时大数据分析。CSDN 阅读全文
posted @ 2016-04-30 12:27 xxxxxxxx1x2xxxxxxx 阅读(223) 评论(0) 推荐(0)

摘要: 用Redis bitmap统计活跃用户、留存 用Redis bitmap统计活跃用户、留存 Spool的开发者博客,描述了Spool利用Redis的bitmaps相关的操作,进行网站活跃用户统计工作。 原文:http://blog.getspool.com/2011/11/29/fast-easy- 阅读全文
posted @ 2016-04-30 12:27 xxxxxxxx1x2xxxxxxx 阅读(475) 评论(0) 推荐(0)

摘要: 大数据计算:如何仅用1.5KB内存为十亿对象计数 Big Data Counting: How To Count A Billion Distinct Objects Using Only 1.5K This is a guest post by Matt Abrams (@abramsm), fr 阅读全文
posted @ 2016-04-30 12:27 xxxxxxxx1x2xxxxxxx 阅读(193) 评论(0) 推荐(0)

摘要: 6个用于大数据分析的最好工具 大数据是一个含义广泛的术语,是指数据集,如此庞大而复杂的,他们需要专门设计的硬件和软件工具进行处理。该数据集通常是万亿或EB的大小。这些数据集收集自各种各样的来源:传感器,气候信息,公开的信息,如杂志,报纸,文章。大数据产生的其他例子包括购买交易记录,网络日志,病历,军 阅读全文
posted @ 2016-04-30 12:26 xxxxxxxx1x2xxxxxxx 阅读(188) 评论(0) 推荐(0)

摘要: 谷歌三大核心技术(一)The Google File System中文版 The Google File System中文版 译者:alex 摘要 我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了 阅读全文
posted @ 2016-04-30 12:23 xxxxxxxx1x2xxxxxxx 阅读(393) 评论(0) 推荐(0)

摘要: 谷歌三大核心技术(三)Google BigTable中文版 谷歌三大核心技术(三)Google BigTable中文版 Bigtable:一个分布式的结构化数据存储系统 译者:alex 摘要 Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的 阅读全文
posted @ 2016-04-30 12:22 xxxxxxxx1x2xxxxxxx 阅读(538) 评论(0) 推荐(0)

摘要: 谷歌三大核心技术(二)Google MapReduce中文版 Google MapReduce中文版 译者: alex 摘要 MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一个Map函数处理一个基于key/value pair的数据集合,输出中间的基 阅读全文
posted @ 2016-04-30 12:22 xxxxxxxx1x2xxxxxxx 阅读(491) 评论(0) 推荐(0)

摘要: Hadoop Hive与Hbase整合+thrift 1. 简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapR 阅读全文
posted @ 2016-04-30 12:21 xxxxxxxx1x2xxxxxxx 阅读(288) 评论(0) 推荐(0)

摘要: Hadoop Hive sql语法详解 Hadoop Hive sql语法详解 Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL 阅读全文
posted @ 2016-04-30 12:20 xxxxxxxx1x2xxxxxxx 阅读(141) 评论(0) 推荐(0)

摘要: 用PHP编写Hadoop的MapReduce程序 Hadoop流 虽然Hadoop是用Java写的,但是Hadoop提供了Hadoop流,Hadoop流提供一个API, 允许用户使用任何语言编写map函数和reduce函数.Hadoop流动关键是,它使用UNIX标准流作为程序与Hadoop之间的接口 阅读全文
posted @ 2016-04-30 12:20 xxxxxxxx1x2xxxxxxx 阅读(109) 评论(0) 推荐(0)

摘要: MapReduce数据流 Hadoop的核心组件在一起工作时如下图所示: 图4.4高层MapReduce工作流水线 MapReduce的输入一般来自HDFS中的文件,这些文件分布存储在集群内的节点上。运行一个MapReduce程序会在集群的许多节点甚至所有节点上运行mapping任务,每一个mapp 阅读全文
posted @ 2016-04-30 12:20 xxxxxxxx1x2xxxxxxx 阅读(165) 评论(0) 推荐(0)

摘要: Hadoop HDFS分布式文件系统设计要点与架构 Hadoop简介:一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File Sy 阅读全文
posted @ 2016-04-30 12:19 xxxxxxxx1x2xxxxxxx 阅读(137) 评论(0) 推荐(0)

摘要: 使用python来访问Hadoop HDFS存储实现文件的操作 原文:http://rfyiamcool.blog.51cto.com/1030776/1258292 在调试环境下,咱们用hadoop提供的shell接口测试增加删除查看,但是不利于复杂的逻辑编程 查看文件内容 www.xiaorui 阅读全文
posted @ 2016-04-30 12:19 xxxxxxxx1x2xxxxxxx 阅读(1522) 评论(0) 推荐(0)

摘要: hadoop安全模式在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也 阅读全文
posted @ 2016-04-30 12:18 xxxxxxxx1x2xxxxxxx 阅读(118) 评论(0) 推荐(0)

摘要: hbase安装配置(整合到hadoop) hbase安装配置(整合到hadoop) 如果想详细了解hbase的安装:http://abloz.com/hbase/book.html 和官网http://hbase.apache.org/ 1. 快速单击安装 在单机安装Hbase的方法。会引导你通过s 阅读全文
posted @ 2016-04-30 12:17 xxxxxxxx1x2xxxxxxx 阅读(155) 评论(0) 推荐(0)

摘要: HBase技术介绍 HBase简介 HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,类似Google Bigtab 阅读全文
posted @ 2016-04-30 12:17 xxxxxxxx1x2xxxxxxx 阅读(131) 评论(0) 推荐(0)

摘要: Hadoop集群配置(最全面总结) 通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves\ 官方地址:(http://Hadoop.apache. 阅读全文
posted @ 2016-04-30 12:16 xxxxxxxx1x2xxxxxxx 阅读(413) 评论(0) 推荐(0)

摘要: Hadoop简介 Hadoop的概要介绍 Hadoop,是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。 简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。该平台使用的是面向对象编 阅读全文
posted @ 2016-04-30 12:16 xxxxxxxx1x2xxxxxxx 阅读(290) 评论(0) 推荐(0)

摘要: Hadoop实战实例 Hadoop实战实例 Hadoop 是Google MapReduce的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同java程序员可以不考虑内存泄露一样, MapReduce的run-time系统 阅读全文
posted @ 2016-04-30 12:16 xxxxxxxx1x2xxxxxxx 阅读(208) 评论(0) 推荐(0)

摘要: 摘要:Admaster数据挖掘总监 随着互联网、移动互联网和物联网的发展,谁也无法否认,我们已经切实地迎来了一个海量数据的时代,数据调查公司IDC预计2011年的数据总量将达到1.8万亿GB,对这些海量数据的分析已经成为一个非常重要且紧迫的需求。 随着互联网、移动互联网和物联网的发展,谁也无法否认, 阅读全文
posted @ 2016-04-30 12:15 xxxxxxxx1x2xxxxxxx 阅读(208) 评论(0) 推荐(0)

摘要: 跟上节奏 大数据时代十大必备IT技能 新的想法诞生新的技术,从而造出许多新词,云计算、大数据、BYOD、社交媒体……在互联网时代,各种新词层出不穷,让人应接不暇。这些新的技术,这些新兴应用和对应的IT发展趋势,使得IT人必须了解甚至掌握最新的IT技能。 新的想法诞生新的技术,从而造出许多新词,云计算 阅读全文
posted @ 2016-04-30 12:14 xxxxxxxx1x2xxxxxxx 阅读(194) 评论(0) 推荐(0)

摘要: 深入解析:分布式系统的事务处理经典问题及模型(转载分享) 摘要:分布式系统需要在数据完整、一致性和性能间做平衡。本文系统介绍了处理分布式数据一致性的技术模型,如:Master-Slave,Master-Master,2PC/3PC,经典的将军问题,Paxos,以及Dynamo的NRW和VectorC 阅读全文
posted @ 2016-04-30 12:13 xxxxxxxx1x2xxxxxxx 阅读(139) 评论(0) 推荐(0)

摘要: Hive深入浅出 1. Hive是什么 1) Hive是什么? 这里引用 Hive wiki 上的介绍: Hive is a data warehouse infrastructure built on top of Hadoop. It provides tools to enable easy 阅读全文
posted @ 2016-04-30 12:13 xxxxxxxx1x2xxxxxxx 阅读(155) 评论(0) 推荐(0)

摘要: 数据分析≠Hadoop+NoSQL 数据分析≠Hadoop+NoSQL 目录(?)[+] 目录(?)[+] Hadoop让大数据分析走向了大众化,然而它的部署仍需耗费大量的人力和物力。在直奔Hadoop之前,是否已经将现有技术推向极限?这里总结了对Hadoop投资前可以尝试的10个替代方案,省时、省 阅读全文
posted @ 2016-04-30 12:12 xxxxxxxx1x2xxxxxxx 阅读(178) 评论(0) 推荐(0)

摘要: 你的数据根本不够大,别老扯什么Hadoop了 本文原名“Don’t use Hadoop when your data isn’t that big ”,出自有着多年从业经验的数据科学家Chris Stucchio,纽约大学柯朗研究所博士后,搞过高频交易平台,当过创业公司的CTO,更习惯称自己为统计 阅读全文
posted @ 2016-04-30 12:11 xxxxxxxx1x2xxxxxxx 阅读(275) 评论(0) 推荐(0)

摘要: 海量数据处理 海量数据处理 海量数据处理是基于海量数据上的存储、处理、操作。 所谓海量,就是数据量很大,可能是TB级别甚至是PB级别,导致无法一次性载入内存或者无法在较短时间内处理完成。面对海量数据,我们想到的最简单方法即是分治法,即分开处理,大而化小,小而治之。我们也可以想到集群分布式处理。 1 阅读全文
posted @ 2016-04-30 12:09 xxxxxxxx1x2xxxxxxx 阅读(143) 评论(0) 推荐(0)

摘要: 海量数据处理算法—Bloom Filter 海量数据处理算法—Bloom Filter 1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。 Bloom Filter(BF)是一种空间效率很高的随机数据 阅读全文
posted @ 2016-04-30 12:09 xxxxxxxx1x2xxxxxxx 阅读(172) 评论(0) 推荐(0)

摘要: PHP通过Thrift操作Hbase HBase是一个开源的NoSQL产品,它是实现了Google BigTable论文的一个开源产品,和Hadoop和HDFS一起,可用来存储和处理海量column family的数据。官方网址是:http://hbase.apache.org 一 、HBase访问 阅读全文
posted @ 2016-04-30 12:08 xxxxxxxx1x2xxxxxxx 阅读(275) 评论(0) 推荐(0)

摘要: 每个程序员都该知道的10大编程格言 每个程序员都该知道的10大编程格言 编程格言1:无风不起浪 (There is no smoke without fire) 编程格言2:预防为主,治疗为辅(An ounce of prevention is worth a pound of cure:) 编程格 阅读全文
posted @ 2016-04-30 12:03 xxxxxxxx1x2xxxxxxx 阅读(501) 评论(0) 推荐(0)

摘要: 设计模式原则详解 设计模式原则详解 我们在应用程序开发中,一般要求尽量两做到可维护性和可复用性。 应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本,恰当的复用还可以改善系统的可维护性。而在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则,遵循 阅读全文
posted @ 2016-04-30 12:03 xxxxxxxx1x2xxxxxxx 阅读(194) 评论(0) 推荐(0)

摘要: UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 2) 在系统中,每个类具有一定的职责,职责指的是类所担任 阅读全文
posted @ 2016-04-30 12:02 xxxxxxxx1x2xxxxxxx 阅读(201) 评论(0) 推荐(0)

摘要: 重构与模式:改善代码三部曲中的第三部 重构与模式:改善代码三部曲中的第三部 一、改善代码的三部曲 《设计模式》-> 《重构》-> 《重构与模式》。也就是设计->重构->重构出新设计。 《设计模式》主要详细说明20几种模式,为我们带来了常见设计问题的经典解决方案,从而改变了整个面向对象开发的面貌。为设 阅读全文
posted @ 2016-04-30 12:00 xxxxxxxx1x2xxxxxxx 阅读(200) 评论(0) 推荐(0)

摘要: 《设计模式》(GOF):不推荐初学者看。这四人都是Phd级别,就是他们最先提出了设计模式,理论水平高,虽然薄薄一本,但是文字相对晦涩,也缺乏容易理解的例子。等你到一定程度了,有兴趣的话可以看一下。《Head First设计模式》:好书,里面的例子生活化,而且非常贴切,读起来比较有乐趣,一步一步推进, 阅读全文
posted @ 2016-04-30 11:30 xxxxxxxx1x2xxxxxxx 阅读(377) 评论(0) 推荐(0)

摘要: Java开发中的23种设计模式详解(转) 设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无 阅读全文
posted @ 2016-04-30 11:16 xxxxxxxx1x2xxxxxxx 阅读(129) 评论(0) 推荐(0)

摘要: http://www.runoob.com/design-pattern/factory-pattern.html 阅读全文
posted @ 2016-04-30 11:15 xxxxxxxx1x2xxxxxxx 阅读(161) 评论(0) 推荐(0)

摘要: 目录 创建型 1. Factory Method(工厂方法) 2. Abstract Factory(抽象工厂) 3. Builder(建造者) 4. Prototype(原型) 5. Singleton(单例) 结构型 6. Adapter Class/Object(适配器) 7. Bridge( 阅读全文
posted @ 2016-04-30 11:13 xxxxxxxx1x2xxxxxxx 阅读(131) 评论(0) 推荐(0)

摘要: 设计模式 ( 二十 ) 访问者模式Visitor(对象行为型) 1.概述 在软件开发过程中,对于系统中的某些对象,它们存储在同一个集合collection中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同。 例子1:顾客在超市中将选择 阅读全文
posted @ 2016-04-30 11:06 xxxxxxxx1x2xxxxxxx 阅读(224) 评论(0) 推荐(0)

摘要: 设计模式 ( 十九 ) 模板方法模式Template method(类行为型) 1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。例子1:银行业务办理流程在银 阅读全文
posted @ 2016-04-30 11:05 xxxxxxxx1x2xxxxxxx 阅读(158) 评论(0) 推荐(0)

摘要: 设计模式 ( 十八 ) 策略模式Strategy(对象行为型) 1.概述 在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查 阅读全文
posted @ 2016-04-30 11:04 xxxxxxxx1x2xxxxxxx 阅读(176) 评论(0) 推荐(0)

摘要: 设计模式 ( 十七) 状态模式State(对象行为型) 1.概述 在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接的解决方案是将这些所有可能发生的情况全都考虑到。然后使用if... ellse语句来做状态判断来进行不同情况的处理。但是对复杂状态的判断就显得“力不从心了”。随着增加 阅读全文
posted @ 2016-04-30 11:04 xxxxxxxx1x2xxxxxxx 阅读(482) 评论(0) 推荐(0)

摘要: 设计模式 ( 十六 ) 观察者模式Observer(对象行为型) 1.概述 一些面向对象的编程方式,提供了一种构建对象间复杂网络互连的能力。当对象们连接在一起时,它们就可以相互提供服务和信息。 通常来说,当某个对象的状态发生改变时,你仍然需要对象之间能互相通信。但是出于各种原因,你也许并不愿意因为代 阅读全文
posted @ 2016-04-30 11:03 xxxxxxxx1x2xxxxxxx 阅读(205) 评论(0) 推荐(0)

摘要: 设计模式 ( 十五 ) 中介者模式Mediator(对象行为型) 设计模式 ( 十五 ) 中介者模式Mediator(对象行为型) 1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各个对象中。 对于一个模块或者系统, 阅读全文
posted @ 2016-04-30 11:02 xxxxxxxx1x2xxxxxxx 阅读(117) 评论(0) 推荐(0)

摘要: 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型) 1.概述 类中的面向对象编程封装应用逻辑。类,就是实例化的对象,每个单独的对象都有一个特定的身份和状态。单独的对象是一种组织代码的有用方法,但通常你会处理一组对象或者集合。 集合不一定是均一的。图形用户界面框架中的 Window 对象 阅读全文
posted @ 2016-04-30 11:02 xxxxxxxx1x2xxxxxxx 阅读(144) 评论(0) 推荐(0)

摘要: 设计模式 ( 十三 ) 命令模式Command(对象行为型) 设计模式 ( 十三 ) 命令模式Command(对象行为型) 1.概述 在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命 阅读全文
posted @ 2016-04-30 11:02 xxxxxxxx1x2xxxxxxx 阅读(183) 评论(0) 推荐(0)

摘要: 设计模式(十二)职责链模式(Chain of Responsibility)(对象行为型) 1.概述 你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决,不能解决就推卸给另外个一个部门(对象)。至于到底谁来解决这个问题呢?政府部门就是为了可以避免屁民的请求与官员之间 阅读全文
posted @ 2016-04-30 11:01 xxxxxxxx1x2xxxxxxx 阅读(175) 评论(0) 推荐(0)

摘要: 设计模式(九)外观模式Facade(结构型) 1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。例子1:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。该电源总开关可以同 阅读全文
posted @ 2016-04-30 10:57 xxxxxxxx1x2xxxxxxx 阅读(136) 评论(0) 推荐(0)

摘要: 设计模式(十)享元模式Flyweight(结构型) 说明: 相对于其它模式,Flyweight模式在PHP实现似乎没有太大的意义,因为PHP的生命周期就在一个请求,请求执行完了,php占用的资源都被释放。我们只是为了学习而简单做了介绍。 1. 概述 面向对象技术可以很好地解决系统一些灵活性或可扩展性 阅读全文
posted @ 2016-04-30 10:57 xxxxxxxx1x2xxxxxxx 阅读(173) 评论(0) 推荐(0)

摘要: 设计模式(七)组合模式Composite(结构型) 设计模式(七)组合模式Composite(结构型) 1. 概述 在数据结构里面,树结构是很重要,我们可以把树的结构应用到设计模式里面。 例子1:就是多级树形菜单。 例子2:文件和文件夹目录 2.问题 我们可以使用简单的对象组合成复杂的对象,而这个复 阅读全文
posted @ 2016-04-30 10:56 xxxxxxxx1x2xxxxxxx 阅读(127) 评论(0) 推荐(0)

摘要: 设计模式(八)装饰器模式Decorator(结构型) 设计模式(八)装饰器模式Decorator(结构型) 1. 概述 若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许 阅读全文
posted @ 2016-04-30 10:56 xxxxxxxx1x2xxxxxxx 阅读(144) 评论(0) 推荐(0)

摘要: 设计模式(六)桥连模式Bridge(结构型) 1. 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度? 例子1:设想如果要绘制矩形、圆形、椭圆、正方形,我 阅读全文
posted @ 2016-04-30 10:55 xxxxxxxx1x2xxxxxxx 阅读(190) 评论(0) 推荐(0)

摘要: 设计模式(四)原型模式Prototype(创建型) 1. 概述 我们都知道,创建型模式一般是用来创建一个新的对象,然后我们使用这个对象完成一些对象的操作,我们通过原型模式可以快速的创建一个对象而不需要提供专门的new()操作就可以快速完成对象的创建,这无疑是一种非常有效的方式,快速的创建一个新的对象 阅读全文
posted @ 2016-04-30 10:54 xxxxxxxx1x2xxxxxxx 阅读(145) 评论(0) 推荐(0)

摘要: 设计模式(五)适配器模式Adapter(结构型) 1. 概述: 接口的改变,是一个需要程序员们必须(虽然很不情愿)接受和处理的普遍问题。程序提供者们修改他们的代码;系统库被修正;各种程序语言以及相关库的发展和进化。 例子1:iphone4,你即可以使用UBS接口连接电脑来充电,假如只有iphone没 阅读全文
posted @ 2016-04-30 10:54 xxxxxxxx1x2xxxxxxx 阅读(196) 评论(0) 推荐(0)

摘要: SINGLETON(单件)—对象创建型模式 几乎所有面向对象的程序中,总有一些类的对象需要是唯一的,例如,通过数据库句柄到数据库的连接是独占的。您希望在应用程序中共享数据库句柄,因为在保持连接打开或关闭时,它是一种开销。再如大家最经常用的IM,如QQ,在同一台电脑,一个帐号只能有唯一的登录。 1. 阅读全文
posted @ 2016-04-30 10:53 xxxxxxxx1x2xxxxxxx 阅读(132) 评论(0) 推荐(0)

摘要: 1. 概述 在软件开发的过程中,当遇到一个“复杂的对象”的创建工作,该对象由一定各个部分的子对象用一定的算法构成,由于需求的变化,复杂对象的各个部分经常面临剧烈的变化,但将它们组合在一起的算法相对稳定。 例子1:买肯德基 典型的儿童餐包括一个主食,一个辅食,一杯饮料和一个玩具(例如汉堡、炸鸡、可乐和 阅读全文
posted @ 2016-04-30 10:53 xxxxxxxx1x2xxxxxxx 阅读(185) 评论(0) 推荐(0)

摘要: 设计模式一到二十都是Gof《设计模式》内容的总结,并使用php说明实现,Gof《设计模式》提到的代码都是c++。举例也不是特别典型。 目前我在开发项目的框架里面,使用的模式有给外观模式,代理模式,适配器等模式,这些不是为了模式而去模式,用这些模式去组织代码后,对维护和阅读代码的人都有很大的好处。 我 阅读全文
posted @ 2016-04-30 10:51 xxxxxxxx1x2xxxxxxx 阅读(165) 评论(0) 推荐(0)

摘要: 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之 阅读全文
posted @ 2016-04-30 10:49 xxxxxxxx1x2xxxxxxx 阅读(156) 评论(0) 推荐(0)

摘要: 1.1.1 摘要 在我们日常的工作中经常需要在应用程序中保持一个唯一的实例,如:IO处理,数据库操作等,由于这些对象都要占用重要的系统资源,所以我们必须限制这些实例的创建或始终使用一个公用的实例,这就是我们今天要介绍的——单例模式(Singleton)。 使用频率 高 单件模式(Singleton) 阅读全文
posted @ 2016-04-30 10:47 xxxxxxxx1x2xxxxxxx 阅读(173) 评论(0) 推荐(0)

摘要: 陈皓 单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了。这个设计模式主要目的是想在整个系统中只能出现一个类的实例。这样做当然是有必然的,比如你的软件的全局配置信息,或者是一个Factory,或是一个主控类,等等。你希望这个类在整个系 阅读全文
posted @ 2016-04-30 10:46 xxxxxxxx1x2xxxxxxx 阅读(148) 评论(0) 推荐(0)

摘要: singleton单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 解析: Singleton模式其实是对全局静态变量的一个取代策略,singleton模式的两个作用在C++中是通过如下的机制实现的: 1)仅有一个实例,提供一个类的静态成员变量,大家知道类的静态成员变量对应类的所有对 阅读全文
posted @ 2016-04-30 10:45 xxxxxxxx1x2xxxxxxx 阅读(131) 评论(0) 推荐(0)

摘要: 引子 “请写一个Singleton。”面试官微笑着和我说。 “这可真简单。”我心里想着,并在白板上写下了下面的Singleton实现: 1 class Singleton 2 { 3 public: 4 static Singleton& Instance() 5 { 6 static Single 阅读全文
posted @ 2016-04-30 10:44 xxxxxxxx1x2xxxxxxx 阅读(150) 评论(0) 推荐(0)

摘要: Key-value存储简介 Key-value存储简介 具备高可靠性及可扩展性的海量数据存储对互联网公司来说是一个巨大的挑战,传统的数据库往往很难满足该需求,并且很多时候对于特定的系统绝大部分的检索都是基于主键的的查询,在这种情况下使用关系型数据库将使得效率低下,并且扩展也将成为未来很大的难题。在这 阅读全文
posted @ 2016-04-30 02:53 xxxxxxxx1x2xxxxxxx 阅读(413) 评论(0) 推荐(0)

摘要: 在过去的十年中,计算世界已经改变。现在不仅在大公司,甚至一些小公司也积累了TB量级的数据。各种规模的组织开始有了处理大数据的需求,而目前关系型数据库在可缩放方面几乎已经达到极限。 在过去的十年中,计算世界已经改变。现在不仅在大公司,甚至一些小公司也积累了TB量级的数据。各种规模的组织开始有了处理大数 阅读全文
posted @ 2016-04-30 02:44 xxxxxxxx1x2xxxxxxx 阅读(457) 评论(0) 推荐(0)

摘要: 搭建VPN 国外主机的最常见用处就是VPN了,当然这也是拜伟大的G**所赐。今天来讲一下搭建VPN的过程 CentOS 5.4 64位机器 搭建VPN 国外主机的最常见用处就是VPN了,当然这也是拜伟大的G**所赐。今天来讲一下搭建VPN的过程 CentOS 5.4 64位机器 yum instal 阅读全文
posted @ 2016-04-30 02:42 xxxxxxxx1x2xxxxxxx 阅读(49) 评论(0) 推荐(0)

摘要: python 多线程两种实现方式 原创 Linux操作系统 作者:杨奇龙 时间:2014-06-08 20:24:26 44021 0 目前python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,而threading模块 阅读全文
posted @ 2016-04-30 02:39 xxxxxxxx1x2xxxxxxx 阅读(268) 评论(0) 推荐(0)

摘要: pycURL的内存问题 pycURL的内存问题 最近用pycURL写了一个工具,注册账号用的。写是写好了,但是发现内存占用超大。40个线程运行一天跑到了3.7G的内存。 于是着手调查这个问题。 调查方法就是用python的gc啦。 关于python gc的特性神马的我就不赘述了,google都能搜到 阅读全文
posted @ 2016-04-30 02:38 xxxxxxxx1x2xxxxxxx 阅读(201) 评论(0) 推荐(0)

摘要: 开了自己域名的博客,第一篇就得来个重磅一点的才对得起这4美金的域名。作为一个技术从业者十年,逛了十年发现有些知识东一榔头西一棒槌的得满世界看个遍才整理出个头绪,那咱就系统点的从头一步一步的说,一个从日几千访问的小小网站,到日访问一两百万的小网站,怎么才能让它平滑的度过这个阶段,别在技术上出现先天不足 阅读全文
posted @ 2016-04-30 02:32 xxxxxxxx1x2xxxxxxx 阅读(141) 评论(0) 推荐(0)

摘要: 今天下载了《MongoDB The Definitive Guide》电子版,浏览了里面的内容,还是挺丰富的。是官网文档实际应用方面的一个补充。和官方文档类似,介绍MongoDB的内部原理是少之又少,只有在附录的一个章节中介绍了相关内容。 对于大多数的MongoDB的用户来说,MongoDB就像是一 阅读全文
posted @ 2016-04-30 02:30 xxxxxxxx1x2xxxxxxx 阅读(142) 评论(0) 推荐(0)

摘要: Python调用C库 Python可以利用ctypes库很方便地调用C的库函数。 C库例程: Python调用C库 Python可以利用ctypes库很方便地调用C的库函数。 C库例程: # file: a.c int sum(int a, int b){ int t = 0; int i = 0; 阅读全文
posted @ 2016-04-30 02:28 xxxxxxxx1x2xxxxxxx 阅读(315) 评论(0) 推荐(0)

摘要: 浅尝key-value数据库(二)——MongoDB的优与劣 浅尝key-value数据库(二)——MongoDB的优与劣 MongoDB的名字取自英文单词"humongous"的中间五个字母,是一个C++开发的基于分布式文件存储的数据库开源项目。他的文件存储格式是BSON(Binary JSON) 阅读全文
posted @ 2016-04-30 02:27 xxxxxxxx1x2xxxxxxx 阅读(860) 评论(0) 推荐(0)

摘要: 浅尝key-value数据库(三)——MongoDB的分布式 浅尝key-value数据库(三)——MongoDB的分布式 测试了单机MongoDB的随机读和写入性能,这一节来讲一讲MongoDB的分布式。 MongoDB的分布式分成两种,一种是Replication,一种是Sharding。我们主 阅读全文
posted @ 2016-04-30 02:27 xxxxxxxx1x2xxxxxxx 阅读(284) 评论(0) 推荐(0)

摘要: 浅尝key-value数据库(一)——一览NoSQL 浅尝key-value数据库(一)——一览NoSQL 最近由于一个项目的关系,研究了一下key-value数据库这个最近很火的概念。本系列从项目需求的角度分析并测试了几个key-value数据库的性能。 key-value数据库,又称作NoSQL 阅读全文
posted @ 2016-04-30 02:26 xxxxxxxx1x2xxxxxxx 阅读(391) 评论(0) 推荐(0)

摘要: devise、cancan和rolify这三个组件结合,可以建立完整而强大的用户权限模型。 devise介绍,负责用户注册、登录、退出、找回密码等操作。细节参考devise on github cancan介绍, 负责角色建立、对角色授权、在页面中根据授权是否显示元素,以及模型中超出授权时抛出异常。 阅读全文
posted @ 2016-04-30 02:23 xxxxxxxx1x2xxxxxxx 阅读(275) 评论(0) 推荐(0)

摘要: Java三大主流开源工作流引擎技术分析 Java三大主流开源工作流引擎技术分析 Java三大主流开源工作流引擎技术分析 首先,这个评论是我从网上,书中,搜索和整理出来的,也许有技术点上的错误点,也许理解没那么深入。但是我是秉着学习的态度加以评论,学习,希望对大家有用,进入正题! 三大主流工作流引擎: 阅读全文
posted @ 2016-04-30 02:18 xxxxxxxx1x2xxxxxxx 阅读(481) 评论(0) 推荐(0)