Quantcast
Channel: 阮一峰的网络日志
Browsing all 693 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

Stack的三种含义

学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈"。 理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分。 含义一:数据结构 stack的第一种含义是一组数据的存放方式,特点为LIFO,即后进先出(Last in, first out)。...

View Article


Image may be NSFW.
Clik here to view.

朴素贝叶斯分类器的应用

生活中很多场合需要用到分类,比如新闻分类、病人分类等等。 本文介绍朴素贝叶斯分类器(Naive Bayes classifier),它是一种简单有效的常用分类算法。 一、病人分类的例子 让我从一个例子开始讲起,你会看到贝叶斯分类器很好懂,一点都不难。 某个医院早上收了六个门诊病人,如下表。   症状  职业   疾病   打喷嚏 护士   感冒   打喷嚏 农夫   过敏   头痛  建筑工人...

View Article


Image may be NSFW.
Clik here to view.

PostgreSQL新手入门

自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选。 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手。以下内容基于Debian操作系统,其他操作系统实在没有精力兼顾,但是大部分内容应该普遍适用。 一、安装 首先,安装PostgreSQL客户端。 sudo apt-get install postgresql-client...

View Article

Image may be NSFW.
Clik here to view.

技术有什么未来?

今天是2014年的第一天,整个白天,我都关在屋里写东西。 晚餐后,我想出门走走,不知不觉来到热闹的商业区。 大商场正在跨年促销,"满500送300券"。据说从昨天早上开始,已经连着搞了36个小时。我到的时候,所有的专柜都像被洗劫过一样,收银台前还是排着长长的人龙。 正当我对人民的消费热情惊叹不已的时候,就在商场楼下的人行道上,看到了一个新玩意。 原来这是一台大型的户外移动广告播放平台。...

View Article

Image may be NSFW.
Clik here to view.

浙江温州的鲸鲨屠宰场

除夕夜,我收到英国摄影师Alex Hofford的邮件,他想让我帮忙曝光一件事。 几年前,我转载过他在宁波拍的《熔模铸造》系列图片,就这样认识了。后来,他和另一个摄影师Paul Hilton,在香港发起了野生动物保护组织Wildlife Risk 。 这一次,他们发现浙江省温州市有一个世界最大的鲸鲨屠宰场。 下面是维基百科对"鲸鲨"的介绍。 "鲸鲨(学名:Rhincodon...

View Article


Image may be NSFW.
Clik here to view.

SSL/TLS协议运行机制的概述

互联网的通信安全,建立在SSL/TLS协议之上。 本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和运行过程,不涉及具体的实现细节。如果想了解这方面的内容,请参阅RFC文档。 一、作用 不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。 (1) 窃听风险(eavesdropping):第三方可以获知通信内容。 (2)...

View Article

Image may be NSFW.
Clik here to view.

CSS动画简介

现在,我很少写介绍CSS的文章,因为感觉网站开发的关键还是在服务器端。 但是,CSS动画除外,它实在太有用了。 本文介绍CSS动画的两大组成部分:transition和animation。我不打算给出每一条属性的详尽介绍,那样可以写一本书。这篇文章只是一个简介,帮助初学者了解全貌,同时又是一个快速指南,当你想不起某一个用法的时候,能够快速地找到提示。 我的主要参考资料是,2013年10月,Lea...

View Article

Image may be NSFW.
Clik here to view.

Linux服务器的初步配置流程

开发网站的时候,常常需要自己配置Linux服务器。 本文记录配置Linux服务器的初步流程,也就是系统安装完成后,下一步要做的事情。这主要是我自己的总结和备忘,如果有遗漏,欢迎大家补充。 下面的操作针对Debian/Ubuntu系统,其他Linux系统也类似,就是部分命令稍有不同。 第一步:root用户登录 首先,使用root用户登录远程主机(假定IP地址是128.199.209.242)。 ssh...

View Article


Image may be NSFW.
Clik here to view.

undefined与null的区别

大多数计算机语言,有且仅有一个表示"无"的值,比如,C语言的NULL,Java语言的null,Python语言的none,Ruby语言的nil。 有点奇怪的是,JavaScript语言居然有两个表示"无"的值:undefined和null。这是为什么? 一、相似性 在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别。 var a = undefined;...

View Article


Image may be NSFW.
Clik here to view.

《ECMAScript 6入门》上线了

过去的一个月,我写了一本书《ECMAScript 6入门》,今天上线了。 网址:es6.ruanyifeng.com ES6是JavaScript语言的下一个版本,预计将在2014年底正式发布。它对JavaScript做了大量改造,提高了灵活性和应用性,使得这门语言真正成为了企业级开发工具。...

View Article

Image may be NSFW.
Clik here to view.

理解OAuth 2.0

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。 一、应用场景 为了理解OAuth的适用场合,让我举一个假设的例子。...

View Article

Image may be NSFW.
Clik here to view.

RESTful API 设计指南

网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。...

View Article

Image may be NSFW.
Clik here to view.

我的博客文集上架了!

这个博客写了十年,累积了1000多篇文章。 我一直想整理一本文集,这个月终于完成了。 书名叫做《如何变得有思想?》,电子版已经上架了。目前有两个版本。 (1)百度阅读:浏览器阅读体验较好。 (2)图灵社区(上册,下册):EPUB、MOBI、PDF格式下载。 十年(2004-2013)的思想漫游,100篇精华文章,20万字,只售15元!...

View Article


Image may be NSFW.
Clik here to view.

Git远程操作详解

Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。 Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。 git clone git remote git fetch git pull git push...

View Article

Image may be NSFW.
Clik here to view.

Airbnb与创投

最近,网上有一篇文章《黑暗创投圈》引起了争论,新浪科技的杜丹编辑向我约稿,谈谈对它的看法。 那篇文章抨击了国内创投圈的乱象,感慨国内缺乏导师型的创投,多的是职业投资人出身的创投。这导致了一方面,投资人像评估银行贷款一样地评估创业项目;另一方面,创业者日益重视项目的包装和概念,而忽视"内功"。...

View Article


Image may be NSFW.
Clik here to view.

数据库的最简单实现

所有应用软件之中,数据库可能是最复杂的。 MySQL的手册有3000多页,PostgreSQL的手册有2000多页,Oracle的手册更是比它们相加还要厚。 但是,自己写一个最简单的数据库,做起来并不难。Reddit上面有一个帖子,只用了几百个字,就把原理讲清楚了。下面是我根据这个帖子整理的内容。 一、数据以文本形式保存 第一步,就是将所要保存的数据,写入文本文件。这个文本文件就是你的数据库。...

View Article

Image may be NSFW.
Clik here to view.

中文字体网页开发指南

字体的选择,是网页开发的关键因素之一。 合适的字体,对网页的美观度(或可读性)有着举足轻重的影响。 但是,相比英文字体,中文字体的网页开发有着极大的局限性。因为,一套中文字体最少也要有几千个字符,体积为几个MB;单单为了浏览网页,开发者不可能让用户去下载字体,只能依靠操作系统的预装字体。(*注:确实有网站提供中文字体的web服务,从技术角度,我不推荐这样做。)...

View Article


Image may be NSFW.
Clik here to view.

数据压缩与信息熵

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

View Article

Image may be NSFW.
Clik here to view.

前端模块管理器简介

模块化结构已经成为网站开发的主流。 制作网站的主要工作,不再是自己编写各种功能,而是如何将各种不同的模块组合在一起。 浏览器本身并不提供模块管理的机制,为了调用各个模块,有时不得不在网页中,加入一大堆script标签。这样就使得网页体积臃肿,难以维护,还产生大量的HTTP请求,拖慢显示速度,影响用户体验。 为了解决这个问题,前端的模块管理器(package...

View Article

Image may be NSFW.
Clik here to view.

图解SSL/TLS协议

本周,CloudFlare宣布,开始提供Keyless服务,即你把网站放到它们的CDN上,不用提供自己的私钥,也能使用SSL加密链接。 我看了CloudFlare的说明(这里和这里),突然意识到这是绝好的例子,可以用来说明SSL/TLS协议的运行机制。它配有插图,很容易看懂。 下面,我就用这些图片作为例子,配合我半年前写的《SSL/TLS协议运行机制的概述》,来解释SSL协议。...

View Article
Browsing all 693 articles
Browse latest View live