2013年10月 ’ 的文章存档

Shell入门到复杂(一)

Shell变量详解

什么是变量?为什么要使用变量?

各种shell环境中都使用到了“变量”的概念,shell变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设置或系统环境的变化而相应的变化。通过使用变量,shell程序可以提供更加便捷灵活的功能,实用性和灵活性更强。

常见的shell变量类型包括自定义变量,环境变量,预定义变量,位置变量。
阅读全文

为什么有这么多 Python?

Python是出类拔萃的

然而,这是一句非常模棱两可的话。这里的”Python”到底指的是什么? 是Python的抽象接口吗?是Python的通用实现CPython吗(不要把CPython跟Cython搞混了)?亦或者指的完全是其他的东西呢?可能我另外指的是Jython,或者IronPython,或者是PyPy。也或者转而谈论的又是RPython或者RubyPython(这两者是完全不同的东西)。

上面提到的那些技术经常被提起和引用, 它们的使用目的和场景是完全不一样的(至少,它们的操作方式是完全不一样的)

自从我使用Python工作以来,我已经用过了各种各样的.*ython工具了。但是直到最近我才花时间去理解到底它们是干嘛的,它们是怎样工作的,为什么它们是不可或缺的。

在这篇文章里面,我会介绍各种Python的实现,最后以对PyPy的介绍结尾, 因为我个人认为它是Python的未来。
阅读全文

永远不要忘记数据库测试 数据库测试的重要性和测试要点说明

译者导读:本文分为三部分,第一部分是第1节,即说明“对数据库测试的根本误解”;第二部分从第2节至倒数第4节,详述“数据库测试测什么”的问题;第三部分是最后3节,引出“数据库测试怎么测”的问题,提出自动部署、自动化测试、持续集成的思路及工具。另,副标题是俺自行添上去的,以明示本文意图。

阅读全文

前端MV*框架的意义

经常有人质疑,在前端搞MV*有什么意义?也有人提出这样的疑问:以AngularJS,Knockout,BackBone为代表的MV*框架,它跟jQuery这样的框架有什么区别?我jQuery用得好好的,有什么必要再引入这种框架?

回答这些问题之前,先要理清一些历史,前端从什么时候开始有框架的? 阅读全文

我是如何反编译D-Link路由器固件程序并发现它的后门的

OK,又是周末晚上,没有约会,只有一大瓶Shasta汽水和全是快节奏的音乐…那就研究一下程序吧
阅读全文

shell脚本利用gnuplot绘制图片

我们都知道gnuplot可以绘制图片,但是时候,我们的数据是以date文件的形式存在,如何编写一个脚本帮助我们绘制出相应的图片:
以某个进程的CPU使用情况为例:

cat processX_CPU_Usage.log
Wed Oct 16 14:47:35 CST 2013:    Process    CPUsage(%)    Total
Wed Oct 16 14:47:37 CST 2013:    1828    17    2008
Wed Oct 16 14:47:39 CST 2013:    1828    17    1706
Wed Oct 16 14:47:42 CST 2013:    1828    12    1689
Wed Oct 16 14:47:44 CST 2013:    1828    21    1673
Wed Oct 16 14:47:46 CST 2013:    1828    15    1668
Wed Oct 16 14:47:48 CST 2013:    1828    8    1699
Wed Oct 16 14:47:50 CST 2013:    1828    17    1699
Wed Oct 16 14:47:53 CST 2013:    1828    17    2148
Wed Oct 16 14:47:55 CST 2013:    1828    15    1815
Wed Oct 16 14:47:57 CST 2013:    1828    32    1727
Wed Oct 16 14:47:59 CST 2013:    1828    11    1669
Wed Oct 16 14:48:01 CST 2013:    1828    4    1667
Wed Oct 16 14:48:03 CST 2013:    1828    8    1678
Wed Oct 16 14:48:05 CST 2013:    1828    16    1694
Wed Oct 16 14:48:08 CST 2013:    1828    9    1669
Wed Oct 16 14:48:10 CST 2013:    1828    26    1750
Wed Oct 16 14:48:12 CST 2013:    1828    6    1792
Wed Oct 16 14:48:14 CST 2013:    1828    14    1720
Wed Oct 16 14:48:17 CST 2013:    1828    12    1800
Wed Oct 16 14:48:19 CST 2013:    1828    24    1921
Wed Oct 16 14:48:21 CST 2013:    1828    11    1749
Wed Oct 16 14:48:23 CST 2013:    1828    9    1708
Wed Oct 16 14:48:25 CST 2013:    1828    15    1665
Wed Oct 16 14:48:27 CST 2013:    1828    3    1751
Wed Oct 16 14:48:30 CST 2013:    1828    10    1692
Wed Oct 16 14:48:32 CST 2013:    1828    15    1678
Wed Oct 16 14:48:34 CST 2013:    1828    19    1708
Wed Oct 16 14:48:36 CST 2013:    1828    14    1707
Wed Oct 16 14:48:38 CST 2013:    1828    15    1680
Wed Oct 16 14:48:40 CST 2013:    1828    18    1678

阅读全文

Hadoop中map数的计算

Hadoop中在计算一个JOB需要的map数之前首先要计算分片的大小。计算分片大小的公式是:

goalSize = totalSize / mapred.map.tasks

minSize = max {mapred.min.split.size, minSplitSize}

splitSize = max (minSize, min(goalSize, dfs.block.size))

totalSize是一个JOB的所有map总的输入大小,即Map input bytes。参数mapred.map.tasks的默认值是2,我们可以更改这个参数的值。计算好了goalSize之后还要确定上限和下限。

下限是max {mapred.min.split.size, minSplitSize} 。参数mapred.min.split.size的默认值为1个字节,minSplitSize随着File Format的不同而不同。

阅读全文

通过WebRTC获取摄像头影像

WebRTC(Web Real-Time Communication,网页实时通信),是一个支持网页浏览器进行实时语音对话或视频对话的API,目前已经是W3C的推荐标准。本文主要阐述如何通过WebRTC的接口获取摄像头影像并截图。 阅读全文

Storm:最火的流式处理框架

诞 生

在2011年Storm开源之前,由于Hadoop的火红,整个业界都在喋喋不休地谈论大数据。Hadoop的高吞吐,海量数据处理的能力使得人们可以方便地处理海量数据。但是,Hadoop的缺点也和它的优点同样鲜明——延迟大,响应缓慢,运维复杂。

有需求也就有创造,在Hadoop基本奠定了大数据霸主地位的时候,很多的开源项目都是以弥补Hadoop的实时性为目标而被创造出来。而在这个节骨眼上Storm横空出世了。
阅读全文

hadoop作业调优参数整理及原理

1 Map side tuning参数

1.1 MapTask运行内部原理


阅读全文