期权知识 第598页

  • 数据压缩与信息熵

    数据压缩与信息熵

    1992年,美国佐治亚州的WEB Technology公司,宣布做出了重大的技术突破。 该公司的DataFiles/16软件,号称可以将任意大于64KB的文件,压缩为原始大小的16分之一。业界议论纷纷,如果消息属实,无异于压缩技术的革命。 许多专家还没有看到软件,就断言这是不可能的。因为根据压缩原理,你不可能将任意文件压缩到16分之一。事实上,有一些文件是无法压缩的,哪怕一个二进制位,都压缩不掉。 后来,事实果然如此,这款软件从来没有正式发布。没过几年,就连WEB Technology公司都消失了。...

    期权知识 2020-08-18 443 0
  • 为什么文件名要小写?

    为什么文件名要小写?

    上周,《中文技术文档写作规范》加入了文件的命名规则。 "文件名建议只使用小写字母,不使用大写字母。" "为了醒目,某些说明文件的文件名,可以使用大写字母,比如README、LICENSE。" 网友看见了,就提问为什么文件名要小写? 说实话,虽然这是 Linux 传统,我却从没认真想过原因。赶紧查资料,结果发现四个很有说服力的理由,支持这样做。 下面就是这四个理由。另外,文后我还会发布一条前端培训的消息。 一、可移植性 Linux 系统是大小写敏感的,而 Windows 系统和 Mac 系统正...

    期权知识 2020-08-18 445 0
  • 编译器的工作过程

    编译器的工作过程

    源码要运行,必须先转成二进制的机器码。这是编译器的任务。 比如,下面这段源码(假定文件名叫做test.c)。 #include <stdio.h> int main(void) { fputs("Hello, world!\n", stdout); return 0; } 要先用编译器处理一下,才能运行。 $ gcc test.c $ ./a.out Hello, world! 对于复杂的项目,编译过程还必须分成三步。 $ ./configure $ make $...

    期权知识 2020-08-18 529 0
  • 函数式编程入门教程

    函数式编程入门教程

    你可能听说过函数式编程(Functional programming),甚至已经使用了一段时间。 但是,你能说清楚,它到底是什么吗? 网上搜索一下,你会轻松找到好多答案。 与面向对象编程(Object-oriented programming)和过程式编程(Procedural programming)并列的编程范式。 最主要的特征是,函数是第一等公民。 强调将计算过程分解成可复用的函数,典型例子就是map方法和reduce方法组合而成 MapReduce 算法。 只有纯的、没有副作用...

    期权知识 2020-08-18 516 0
  • 图解 Monad

    图解 Monad

    函数式编程有一个重要概念,叫做Monad。 网上有很多解释(这里和这里),但都很抽象,不容易看懂。我尝试了好多次,还是不明白Monad到底是什么。 昨天,我读到了Aditya Bhargava的文章,他画了很多图。我想了半天,终于恍然大悟。下面,我就用这些图来解释Monad。 1. 软件最基本的数据,就是各种值(value)。 2. 处理值的一系列操作,可以封装成函数。输入一个值,会得到另一个值。上图的"(+3)"就是一个函数,对输入的值加上3,再输出。 3. 函数很像漏斗,上...

    期权知识 2020-08-18 525 0
  • 技术的热门度曲线

    技术的热门度曲线

    全球最大的 IT 咨询公司高德纳(Gartner),有一个"技术热门度曲线"模型(Gartner Hype Cycle)。 该模型认为,一门技术的发展要经历五个阶段。 (1)启动期(Innovation Trigger) 该技术刚刚诞生,还只是一个概念,不具有可用性,无法评估商业潜力。媒体有所报道,引起了外界的兴趣。 (2)泡沫期(Peak of Inflated Expectations) 该技术逐步成型,出现了个别成功的案例,一些激进的公司开始跟进。媒体开始大肆报导,伴有各种非理性的渲染,产品的...

    期权知识 2020-08-18 472 0
  • 为什么主引导记录的内存地址是0x7C00?

    为什么主引导记录的内存地址是0x7C00?

    《计算机原理》课本说,启动时,主引导记录会存入内存地址0x7C00。 这个奇怪的地址,是怎么来的,课本就不解释了。我一直有疑问,为什么不存入内存的头部、尾部、或者其他位置,而偏偏存入这个比 32KB 小1024字节的地方? 昨天,我读到一篇文章,终于解开了这个谜。 首先,如果你不知道,主引导记录(Master boot record,缩写为MBR)是什么,可以先读《计算机是如何启动的?》。 简单说,计算机启动是这样一个过程。 通电 读取ROM里面的BIOS,用来检查硬件 硬件检查通过...

    期权知识 2020-08-18 412 0
  • CSS in JS 简介

    CSS in JS 简介

    1、 以前,网页开发有一个原则,叫做"关注点分离"(separation of concerns)。 它的意思是,各种技术只负责自己的领域,不要混合在一起,形成耦合。对于网页开发来说,主要是三种技术分离。 HTML 语言:负责网页的结构,又称语义层 CSS 语言:负责网页的样式,又称视觉层 JavaScript 语言:负责网页的逻辑和交互,又称逻辑层或交互层 简单说,就是一句话,不要写"行内样式"(inline style)和"行内脚本"(inline script)。比如,下面...

    期权知识 2020-08-18 525 0
  • DNS 原理入门

    DNS 原理入门

    DNS 是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。 本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作。我的目标是,读完此文后,你就能完全理解DNS。 一、DNS 是什么? DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本。 举例来说,如果你要访问域名math.stackexchange.com,首先要通过DNS查出它的IP地址是151.101.129.69。 如果你不清楚为...

    期权知识 2020-08-18 419 0
  • Emoji 简介

    Emoji 简介

    一、含义 Emoji 是可以插入文字的图形符号。 它是一个日语词,e表示"絵",moji表示"文字"。连在一起,就是"絵文字"。 Emoji 在上个世纪90年代,由日本电信商引入服务,最早用于在短消息之中插入表情。2007年,苹果公司的 iPhone 支持了 Emoji,导致它在全世界范围的流行。 二、Unicode 标准化 早期的 Emoji 是将一些特定的符号组合替换成图片,比如将:)替换成。这种方法很难标准化,能够表达的范围也有限。 2010年,Unicode 开始为 Emoji...

    期权知识 2020-08-18 516 0