加载中…
个人资料
新技术笔记
新技术笔记
  • 博客等级:
  • 博客积分:0
  • 博客访问:399,522
  • 关注人气:197
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
搜博主文章
评论
加载中…
博文
标签:

杂谈

分类: 技术荟萃

关于Storm

Twitter将Storm正式开源了,这是一个分布式的、容错的实时计算系统,它被托管在GitHub上,遵循 Eclipse Public License 1.0。Storm是由BackType开发的实时处理系统,BackType现在已在Twitter麾下。GitHub上的最新版本是Storm 0.9.2,基本是用Clojure写的。

Storm为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。这是管理队列及工作者集群的另一种方式。Storm也可被用于“连续计算”(continuous computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。 Storm的主工程师Nathan Marz表示:

Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm之于实时处理,就好比 Hadoop之于批处理。Storm保证每个消息都会得到处理,而且它很快——在一个小集群中,每秒可以处理数以百万计的消息。更棒的是你可以使用任意编程语言来做开发。

Storm的主要特点如下:

  1. 简单的编程模型。类似于MapReduce降低了并

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: 技术荟萃
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: 技术荟萃

在NoSQL存储系统选型中,有很多的维度可以区分系统给的特定优势所在,这里挑选几种维度介绍,注意不全面,也不是唯一的区分方式。没有哪种方案能够完美的解决问题,重要的是正确的评估需求,然后做出明智的选择,有需要的话甚至可以采用混合使用的方案。对于一个问题,我们只有知道了有哪些可用的解决方案,然后才能找到最合适解决该问题的方案。

1、数据模型

数据有多种存储的方式,包括键/值对(类似HashMap),半结构化的列式存储和文档结构存储。用户的应用如何存储数据?同时数据模式是否随着时间而变化?

2、存储模型

内存还是持久化?一旦考虑持久化存储,就需要考虑选择的方案是否会影响到访问模式。

3、一致性模型

严格一致性,还是最终一致性?一致性可能会影响操作延时,即系统响应读写请求的速度。

4、物理模型

分布式模式还是单机模式?系统的扩展性如何?

5、读/写性能

需要考虑自己的应用程序的访问模式,是读多写少,还是读写相当,或者写多读少?是用范围扫描数据好,还是用随机读请求数据更好?有些系统可能仅对这些情况中的一种支持的好。

6、辅助索引

辅助

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: 技术荟萃

BeautifulSoup是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树。通常用来分析爬虫抓取的web文档。对于不规则的Html文档,也有很多的补全功能,节省了开发者的时间和精力。

1 BeautifulSoup安装

方法一:下载安装

安装BeautifulSoup很简单,下载BeautifulSoup源码。解压运行python setup.py install。

测试安装是否成功。键入import BeautifulSoup如果没有异常,即成功安装

方法二:easy-install BeautifulSoup;需要先安装了setuptools: sudo apt-get install python-setuptools

方法三:在ubuntu上,sudo apt-get install python-BeautifulSoup

2 在线文档

Beautiful Soup 的官方文档齐全,将官方给出的例子实践一遍就能掌握。官方英文文档中文文档

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: 搜索引擎

Python写个简单爬虫,并作网页解析,还是非常高效的。

1. 获取HTML页面

urllib2是urllib得增强版,httplib更为底层,可以理解为urllib是对httplib的抽象。

httplib是一个相对底层的http请求模块,其上有专门的包装模块,如urllib内建模块,goto等第三方模块,但是封装的越高就越不灵活,比如urllib模块里请求错误时就不会返回结果页的内容,只有头信息,对于某些需要检测错误请求返回值的场景就不适用,所以就得用这个模块了。

httplib2,一个第三方的开源库,它比http.client更完整的实现了http协议,同时比urllib.request提供了更好的抽象。

示例,最基本的抓站,两句话就可以了:

import urllib2
content = urllib2.urlopen('http://XXXX').read()

这样可以得到整个 html 文档,关键的问题是我们可能需要从这个文档中获取我们需要的有用信息,而不是整个文档。这就需要解析充满了各种标签的 html。

2. 使用HTMLParser解析网页

HTMLParser是python用来解析html的模块。它可以分析出html里面的标签、数据等等,是一种处理html的简便途径。 HTMLParser采用的

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: 技术荟萃

本文将与你分享我多年来在服务器开发方面的一些经验。对于这里所说的服务器,更精确的定义应该是每秒处理大量离散消息或者请求的服务程序,网络服务器更符合这种情况,但并非所有的网络程序都是严格意义上的服务器。使用“高性能请求处理程序”是一个很糟糕的标题,为了叙述起来简单,下面将简称为“服务器”。

本文不会涉及到多任务应用程序,在单个程序里同时处理多个任务现在已经很常见。比如你的浏览器可能就在做一些并行处理,但是这类并行程序设计没有多大挑战性。真正的挑战出现在服务器的架构设计对性能产生制约时,如何通过改善架构来提升系统性能。对于在拥有上G内存和G赫兹CPU上运行的浏览器来说,通过DSL线路进行多个并发下载任务不会有如此的挑战性。这里,应用的焦点不在于通过吸管小口吮吸,而是如何通过水龙头大口畅饮,这里麻烦是如何解决在硬件性能的制约.(作者的意思应该是怎么通过网络硬件的改善来增大流量)

一些人可能会对我的某些观点和建议发出置疑,或者自认为有更好的方法, 这是无法避免的。在本文中我不想扮演上帝的角色;这里所谈论的是我自己的一些经验,这些经验对我来说, 不仅在提高

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2014-08-08 12:35)
标签:

杂谈

分类: 技术荟萃

vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。

——————————正文开始——————————

你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。

Vim the Six Billion Dollar editor

Better, Stronger, Faster.

学习 vim 并且其会成为你最后一个使用的文本编辑器。没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用。

我建议下面这四个步骤:

  1. 存活
  2. 感觉良好
  3. 觉得更好,更强,更快
  4. 使用VIM的超能力
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: 技术荟萃

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Maintainer:
      Amir Salihefendic
      http://amix.dk - amix@amix.dk
"
" Version:
      5.0 - 29/05/12 15:43:36
"
" Blog_post:
      http://amix.dk/blog/post/19691#The-ultimate-Vim-configuration-on-Github
"
" Awesome_version:
&

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: 推荐技术

全文转载自:http://blog.sciencenet.cn/blog-3075-588779.html

个性化推荐很多读者都知道,但其中不乏认识上的误区。有的人觉得个性化推荐就是细分市场和精准营销,实际上细分市场和精准营销往往是把潜在的用户分成很多群体,这固然相比基于全体的统计有了长足的进步,但是距离“给每一个用户量身定做的信息服务”还有很大的差距,所以,只能说个性化推荐是细分市场的极致!实际上,信息服务经历了两次理念上的变革,第一次是从总体到群体,第二次是从群体到个体。第二次变革正在进行中,所要用到的核心技术就是这篇文章要讨论的个性化推荐技术。

还有读者觉得个性化推荐就等同于协同过滤,这可能是因为协同过滤应用比较广泛并且比较容易为大众理解。实际上协同过滤只是个性化推荐技术中的一个成员。它与很多更先进技术相比,就好像流行歌曲和高雅音乐,前者广受欢迎,而且一般人也可以拿个麦克风吼两声,但是说到艺术高度,流行歌曲还是要差一些。当然,流行歌曲经济价值可能更大,这也是事实。总的来说,协同过滤只

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

杂谈

分类: 技术荟萃

不管你是初学一门计算机语言或技术,还是想学习别人的经验和创意。做为一个开发人员,都会经常需要到搜索一些代码,下面是7个地方可以帮助你快速寻找到你需要的代码。

GitHub Code Search

http://github.com/search

热门的开源代码库和和版本控制服务。 GitHub 在最近启动了 Code Search .即使它才启动不久,但凭借GitHub 的受欢迎度和成千上万的代码库,GitHub 的这项代码搜索服务已经非常受欢迎。

Krugle

Krugle 是一个为开发人员量身定做的代码搜索引擎,他们宣称可搜索超过25亿行的开放源代码,是互联网最大的源代码搜索引擎之一。和传统搜索引擎不同, Krugle 专门用来搜索代码,不管是压缩包文件,还是展示在 blog 、网页上的代码,只要是在网络开放的空间内, Krugle 都能找到,并且 Krugle 还可以自动生成某个特定代码的 API 报告 ( 尚处实验阶段 ) 。

Krugle 能提供和代码相关问题的解答。 允许开发人员对搜索结果进行评论,并通过创建 tag 的方式来帮助其他人更好的找到所需的代码,实现共享。Krugle 具有较快的搜索速度,能

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有