编程语言的基石——Lambda calculus

Lambda calculus我们一般称为λ演算,最早是由邱奇(Alonzo Church,图灵的博导)在20世纪30年代引入,当时的背景是解决函数可计算的本质性问题,初期λ演算成功的解决了在可计算理论中的判定性问题,后来根据Church–Turing thesis,证明了λ演算与图灵机是等价的。

阅读全文

Mozilla 前世今生

用过 Firefox 的同学多多少少都应该对 Mozilla 有些了解,Mozilla 作为一老牌软件公司,诞生了很多传奇性的故事和人物,现在就让我们一起来探索上个世纪九十年代发生的那些激荡人心的时刻吧。

Mozilla这个词有三个含义:

  1. 以开发Firefox浏览器出名的软件套件,除此之外,产品还有ThunderbirdFirefox_MobileFirefox OS

阅读全文

Yarn概述

Yarn是随着hadoop发展而催生的新框架,全称是Yet Another Resource Negotiator,可以翻译为“另一个资源管理器”。yarn取代了以前hadoop中jobtracker(后面简写JT)的角色,因为以前JT的任务过重,负责任务的调度、跟踪、失败重启等过程,而且只能运行mapreduce作业,不支持其他编程模式,这也限制了JT使用范围,而yarn应运而生,解决了这两个问题。

阅读全文

两个水壶问题

问题描述是这样的:
假设有一个池塘,里面有无穷多的水。现有2个空水壶a,b,其容积分别为6升和5升。如何只用这2个水壶从池塘里取得3升的水**(最后,这三升水,在其中一个壶里)。

这个问题不难,大家自己完成可以推理出来,但是如何让计算机程序自己推算出来呢?一般而言,想把计算机理解这些自然问题,需要某些数学理论作为支撑,这里突然想起前些天看码农13期Lisp之父约翰•麦卡锡——不走寻常路的常识逻辑学家的一段关于用逻辑描述事实的话:

阅读全文

inter- intra- cept -ee -er词缀讲解

故事是这么开始的,我遇到了inter-organizational与intra-organizational这么两个词组,其实也很好区分,前面是“不同组织之间的”,后者是“同一组织内部的”,搞计算机的应该知道有个叫intranet的网,它是与internet不一样的,专指企业内部网络。我这里想以这两个词缀为基准,展开一系列联想,学英语的乐趣不就在于此嘛。

阅读全文

Yarn的安全模式与高可靠性安装总结

最近几天又重新把cdh的安全模块与高可靠性模块重新搭建了一遍,这次用是的目前最新的5.1.0的tar包安装,以前把MRv1搭建了好,这次主要是熟悉安装过程,并且把YARN的安全模块与HA模块成功搭建起来。遇到的错误还是不少,安装过程也是废了我好几天,现在想想很多错误都比较典型,现在此记录下我搭建过程中遇到的错误与心得,一方面为自己以后查阅,另一方面希望也能对遇到同样问题的人有所启发。

阅读全文

hadoop1.0 高可靠性(HA)安装与总结

继上次安装完Kerberos安全认证后,现在我在这基础上,又给CDH加上了HA(high availability),也就是高可靠性,具体来讲就是双NameNode,双Jobtracker(我还是在MRv1模式下),有了HA后,这下集群的健壮性就能够得到很好的保证了。

我还是按照官方文档来操作的,有了上次的经验,建议大家在具体操作实施前,先快速阅读一遍,做到心中有数,我还阅读了Apache官方的说明,也不用怎么详细,大概知道怎么回事就行了。

阅读全文

hadoop1.0 安全认证(kerberos)安装与总结

俗话说得好,万事开头难。在软件开发中,环境部署要算是第一门槛了。我最近折腾了一周时间把cdh5.0.2.tar.gz版本在MRv1模式下,成功集成了Kerberos安全认证,并且是在全分布式模式下。经过这次安装过程,对hadoop的了解又深入了一层。现在趁着自己刚搭建完环境,脑子还时不时的闪现遇到的错误,把我的安装过程记录于此,一方面方便自己今后查阅,另一方面希望对今后遇到同样问题人有所启发。

阅读全文

JVM 的类初始化机制

当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。

阅读全文

计算思维之三语义符号化表达与计算

0和1与逻辑——思维符号化表达与逻辑运算

阅读全文