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

Image may be NSFW.
Clik here to view.

如何识别图像边缘?

图像识别(image recognition)是现在的热门技术。 文字识别、车牌识别、人脸识别都是它的应用。但是,这些都算初级应用,现在的技术已经发展到了这样一种地步:计算机可以识别出,这是一张狗的照片,那是一张猫的照片。 这是怎么做到的? 让我们从人眼说起,学者发现,人的视觉细胞对物体的边缘特别敏感。也就是说,我们先看到物体的轮廓,然后才判断这到底是什么东西。...

View Article


Image may be NSFW.
Clik here to view.

母鸡与前端工程师

(说明:本文原载2016年第29期《财新周刊》) 1. 新闻说,今年全国高校毕业生达到空前的756万,又赶上很多传统行业压缩产能,就业压力很大。 很多曾经的"明星专业",都已经就业困难。我考大学的时候,国际贸易是最热门的专业之一,大家认定这个专业容易赚钱。但是现在这个专业的毕业生,想找一份好工作会很难,上海将它列入10大预警专业,即最难就业的十个专业之一。...

View Article


Image may be NSFW.
Clik here to view.

布尔代数入门

布尔代数是计算机的基础。没有它,就不会有计算机。 布尔代数发展到今天,已经非常抽象,但是它的核心思想很简单。本文帮助你理解布尔代数,以及为什么它促成了计算机的诞生。 我依据的是《编码的奥妙》的第十章。这是一本好书,强烈推荐。 一、数理逻辑的起源 19世纪早期,英国数学家乔治·布尔(George Boole,1815-1864)突发奇想:人的思想能不能用数学表达?...

View Article

Image may be NSFW.
Clik here to view.

那些无用的人----《人类简史》读后感

(说明:本文原载2016年第32期《财新周刊》。文后还会介绍一个新网站"海棠学院"。) 1. 最近,我读完了《人类简史》(中信出版社,2014)。 它是以色列学者尤瓦尔·赫拉利写的畅销书,主要讲人类这个物种(即智人)的历史。全书最大特点就是,作者完全用自己的想法解释历史,有大量的独特观点。它不是学术著作,而是表达个人的历史观。 最惊人的一个观点,大概是他对人类的前途相当悲观,认为人类可能即将灭绝。...

View Article

Image may be NSFW.
Clik here to view.

HTTP 协议入门

HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点。 本文介绍 HTTP 协议的历史演变和设计思路。 一、HTTP/0.9 HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。 最早版本是1991年发布的0.9版。该版本极其简单,只有一个命令GET。 GET...

View Article


Image may be NSFW.
Clik here to view.

HTTPS 升级指南

上一篇文章我介绍了 HTTP/2 协议 ,它只有在 HTTPS 环境才会生效。 为了升级到 HTTP/2 协议,必须先启用 HTTPS。如果你不了解 HTTPS 协议(学名 TLS 协议),可以参考我以前的文章。 《HTTPS 协议概述》 《图解 HTTPS 协议》 《HTTPS 协议的七个误解》 《HTTPS 协议的延迟有多大?》 本文介绍如何将一个 HTTP 网站升级到 HTTPS 。...

View Article

Image may be NSFW.
Clik here to view.

软件架构入门

软件架构(software architecture)就是软件的基本结构。 合适的架构是软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。 O'Reilly 出版过一本免费的小册子《Software Architecture Patterns》(PDF), 介绍了五种最常见的软件架构,是非常好的入门读物。我读后受益匪浅,下面就是我的笔记。...

View Article

Image may be NSFW.
Clik here to view.

程序员小测试:保守派 vs 自由派

最近,我在阅读 Steve Yegg 的文集《程序员的呐喊》。 这是一本非常有趣的书,里面甚至包含了一个小测试(原文),区分一个程序员到底是保守派还是自由派。 下面一共有十个问题,每个问题都有 A 和 B 两个选项,请选择你的答案。 问题一:Bug 还没修复,软件能不能上线? (A)软件发布前,应该编写完整测试,充分调试,尽量修复所有bug。 (B)不管多努力,bug...

View Article


Image may be NSFW.
Clik here to view.

亚马逊如何变成 SOA(面向服务的架构)?

上一篇文章,我摘录了《程序员的呐喊》。这本书有趣的内容太多,今天再摘录一段。 1、 亚马逊公司不仅是世界最大的网络书店,还是世界最大的云服务商。它是怎么实现从电商到云商的转变呢? 一切都是CEO杰夫·贝索斯促成的,他对市场有着超乎常人的理解和预见。 2、...

View Article


Image may be NSFW.
Clik here to view.

Content Security Policy 入门教程

跨域脚本攻击 XSS 是最常见、危害最大的网页安全漏洞。 为了防止它们,要采取很多编程措施,非常麻烦。很多人提出,能不能根本上解决问题,浏览器自动禁止外部注入恶意脚本? 这就是"网页安全政策"(Content Security Policy,缩写 CSP)的来历。本文详细介绍如何使用 CSP 防止 XSS 攻击。 一、简介 CSP...

View Article

Image may be NSFW.
Clik here to view.

Redux 入门教程(一):基本用法

一年半前,我写了《React 入门实例教程》,介绍了 React 的基本用法。 但是,React 只是 DOM 的一个抽象层,并不是 Web 应用的完整解决方案。也就是说,只用 React 没法写大型应用。 为了解决这个问题,2014年 Facebook 提出了 Flux 架构的概念,引发了很多的实现。2015年,Redux 出现,将 Flux...

View Article

Image may be NSFW.
Clik here to view.

Redux 入门教程(二):中间件与异步操作

上一篇文章,我介绍了 Redux 的基本做法:用户发出 Action,Reducer 函数算出新的 State,View 重新渲染。 但是,一个关键问题没有解决:异步操作怎么办?Action 发出以后,Reducer 立即算出 State,这叫做同步;Action 发出以后,过一段时间再执行 Reducer,这就是异步。 怎么才能 Reducer...

View Article

Image may be NSFW.
Clik here to view.

Redux 入门教程(三):React-Redux 的用法

前两篇教程介绍了 Redux 的基本用法和异步操作,今天是最后一部分,介绍如何在 React 项目中使用 Redux。 为了方便使用,Redux 的作者封装了一个 React 专用的库 React-Redux,本文主要介绍它。 这个库是可以选用的。实际项目中,你应该权衡一下,是直接使用 Redux,还是使用 React-Redux。后者虽然提供了便利,但是需要掌握额外的...

View Article


Image may be NSFW.
Clik here to view.

React 技术栈系列教程

上周中秋节,我待在家里,写完了 Redux 教程。 至此,《React 技术栈系列教程》算是比较完整了。 ES6 语法:教程 Babel:教程 React:教程,示例库 Webpack:教程 React 项目脚手架:代码库 Flex 布局:教程,示例 CSS Modules:教程,示例库 React-Router:教程,示例库 Flux 架构:教程,示例库 Redux 架构:教程一、教程二、教程三...

View Article

Image may be NSFW.
Clik here to view.

npm scripts 使用指南

Node 开发离不开 npm,而脚本功能是 npm 最强大、最常用的功能之一。 本文介绍如何使用 npm 脚本(npm scripts)。 一、什么是 npm 脚本? npm 允许在package.json文件里面,使用scripts字段定义脚本命令。 { // ... "scripts": { "build": "node build.js" } }...

View Article


Image may be NSFW.
Clik here to view.

网络文凭,你要不要

(说明:本文原载2016年第35期《财新周刊》。) 1. 我一直相信,互联网教育是未来的方向。美国三个主要的在线教育网站----Udacity ,Coursera,可汗学院----我都经常访问。 今年四月,Udacity 进入中国,推出了中文版"优达学城",一下子引起了我的兴趣。因为它干了一件没有先例的事情:颁发网络文凭。它办了一个网上的"硅谷大学",自己发文凭,名称是"纳米学位"。...

View Article

Image may be NSFW.
Clik here to view.

中文技术文档的写作规范

很多人说,不知道怎么写文档,都是凭着感觉写。 网上也很少有资料,教你写文档。这已经影响了中文软件的发展。 英语世界里,文档非常受重视,许多公司和组织都有自己的文档规范,清楚地规定写作要求,比如微软、MailChimp、Apple、Yahoo、docker、Struts 等等(维基百科有一份完整的清单)。中文的也有不少,但都不令人满意,要么太简单,要么不太适用。...

View Article


Image may be NSFW.
Clik here to view.

IntersectionObserver API 使用教程

网页开发时,常常需要了解某个元素是否进入了"视口"(viewport),即用户能不能看到它。 上图的绿色方块不断滚动,顶部会提示它的可见性。 传统的实现方法是,监听到scroll事件后,调用目标元素(绿色方块)的getBoundingClientRect()方法,得到它对应于视口左上角的坐标,再判断是否在视口之内。这种方法的缺点是,由于scroll事件密集发生,计算量很大,容易造成性能问题。...

View Article

Image may be NSFW.
Clik here to view.

JavaScript 全栈工程师培训教程

我现在的技术方向,前端是 React,后端是 Node,时间都投入在这两方面。 最近有一种感觉,我可以融汇贯通了,使用 JavaScript 全栈解决各种问题。 最初,我只是想整理一份技术清单,理清思路。但是内容越写越多,索性就做成一个教程,放在 Github 上面。这份教程一共四章,可以在两天内学完,适合那些已掌握前端基本技能(HTML、CSS、JS)、想进一步进修、成为 JavaScript...

View Article

Image may be NSFW.
Clik here to view.

理解字节序

1. 计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。 举例来说,数值0x2211使用两个字节储存:高位字节是0x22,低位字节是0x11。 大端字节序:高位字节在前,低位字节在后,这是人类读写数值的方法。 小端字节序:低位字节在前,高位字节在后,即以0x1122形式储存。 同理,0x1234567的大端字节序和小端字节序的写法如下图。...

View Article
Browsing all 693 articles
Browse latest View live