阮一峰每周分享摘录(更新到 2019 年 3 月 15 号 47 期)

电子书/文章/教程

前端

前端开发技术日报

每日分享互联网上的前端技术、前端资讯。(@kujian 投稿)

你可能不需要单页应用(SPA)(英文)

作者认为,网站做成单页应用的这种趋势,有滥用的嫌疑。他提出,大多数情况应该使用传统网页,只有那些强调实时响应、富交互、状态分享的场景,才应该使用单页应用。

Chrome 浏览器支持跳转到指定文字(英文)

Chrome 将支持跳转到指定文字,而不需要锚点。做法是 URL 里面设置 #targetText=hello%20world ,然后就会跳转到网页的第一个hello world的地方。

React 教程

一个入门教程,需要下载到本地运行。通过一个个练习和演示,帮助读者完成开发实际的 React 应用。

Chrome 的隐藏插件

Chrome 浏览器启动的时候,会加载一些系统插件,不会在插件页显示。这里介绍如何查看这些隐藏插件。

public-apis

这个仓库收集免费的 API,已经有100多个了。

前端开发精选工具库

收集前端开发各方面的工具。(@xiaohesong 投稿)

Jsonnet 比 Yaml 更适合配置文件(英文)

作者谈了 PHP 过去三年的改进,以及为什么更适合架设他们的网站。

一段混淆过的 JS 脚本剖析(英文)

作者收到一封诈骗 Email,比较特别的是,它不是引诱用户点击链接,而是提供了一个网页附件,让用户打开,里面是一段混淆过的 JS 脚本。

Finally 代码块的解释(英文)

随着 JS 引入 async/await ,开发者不可避免地会更多使用 try/catch/finally ,本文解释 finally 代码块的一些容易混淆的点。

CDN 提供商2019介绍

该文介绍了全球25家 CDN 服务提供商,并提供简单的测评。

未来的 JavaScript 语言(英文)

本文介绍 TC39 委员会正在考虑的、加入 JavaScript 语言的一些新功能。

Deno 运行时介绍(英文)

Deno 是一个 JS/TypeScript 运行时,用来取代 Node。它的最大特点就是不支持 CommonJS,只支持 ES6 模块。

前端早报

一个个人开发者的前端开发的分享日报。(@wubaiqing 投稿)

页面加载动画

这篇文章收集了近20个加载页面的优秀动画效果。

开发不需要"编译"的 WebApp(中文)

作者介绍如何使用 Web Components 技术开发一个网页音乐播放器。(@mantou132_ _投稿)

JSON 操作命令行工具 fx(英文)

fx 可以方便地在命令行操作 JSON 数据,本文是 fx 用法的教程。

UI gradients

一个收集渐变色样式的网站。(@valenzhou 投稿)

React 视频课程(英文)

React 的短视频课程,几分钟一集,共有45集。

如何写一个 Node 命令行验证码图像识别工具(中文)

Node 命令行工具的开发实例,从 0 开始写。(@ringcrl_ _投稿)

Chrome 开发者工具如何使用断点?(英文)

本文通过实例讲解,如何设置事件监听断点和 watch 表达式。

target = "_blank" 的危险性(英文)

HTML 网页的<a>元素打开的子网页,可以用window.opener.location.replace()方法替换掉父窗口的网址,这会带来风险。

MVC 框架的误解(英文)

作者提出,现在那些 MVC 应用其实改叫 MVA 更合适,也就是把 Controller(控制器)改成 Adapter(适配器)。

Flutter 框架印象(英文)

作者较深入地评论了目前 Flutter 框架开发手机应用的优缺点,总体上还是鼓励大家使用它。

Vue.js 框架的作者尤雨溪专访(英文)

介绍了 Vue.js 的发展历程,以及背后的想法。(@M1seRy_ _投稿)

使用 Cloudflare Worker 加速谷歌字体加载(英文)

网页加载谷歌字体的最大问题是加载速度较慢,会影响网页体验。Cloudflare 提供 Worker 方案,可以改写用户的字体请求,从而加速字体加载。

高级 Web 安全主题(英文)

本文收集各种网页入侵的技术,已经收集了十多种。

实用排版指南(英文)

免费电子书,介绍网页排版的知识。

可以编译成 JS 的语言列表

许多语言可以编译成 JavaScript,从而在浏览器运行,这张列表收集所有已经有编译工具的语言。提醒,这是一张很长的列表。

package.json 大数据分析(英文)

有人分析了 GitHub 上面56万个项目的 package.json 的依赖项,得到了一些结论,比如过去一年被依赖最多的30个模块。

2018年 JavaScript 开发者调查(英文)

2018年 JS 开发者的调查报告,主要是各种框架、工具的使用情况。

使用 TypeScript 两年后(英文)

作者回顾了使用 TypeScript 两年的经历,总体上还是推荐的,也提出了一些值得注意的问题。

地址表单不应该分成两行(英文)

本文提出地址输入不应该有两个输入框,而是应该只是一个 textarea。

JavaScript 如何复制对象(英文)

JavaScript 的对象复制默认是浅拷贝,本文介绍如何深拷贝。

调试 Node 应用的最简单方法:VS Code(英文)

本文介绍如何使用 VS Code 编辑器调试 Node 代码。

GraphQL 之路

开源电子书,介绍如何使用 React.js 和 Node.js 开发 GraphQL 应用。

登录页设计

登录页的各种页面设计,可以免费下载模板。

GraphQL 全栈课程(英文)

Prisma 公司推出的免费课程,分成基础知识、前端、后端三个部分。

网页加载Three.js、Rust 和 WebAssembly(英文)

本文通过一个简单的实例,介绍网页如何加载用 Rust 写的 WebAssembly 模块。

如何定制一个调色板(英文)

本文介绍如何为自己的应用定制一个调色板,指定各种颜色。

使用 Go 编写前端 Web 框架(英文)

本文使用 Go 语言编写一个非常简单的前端单页应用,然后将它编译成 WebAssembly。所有功能,包括前端组件和前端路由,都是用 Go 写的。看上去,网页编程即将不再是 JS 的专利了。

React.js 小书

国人编写的 React 入门教程。(@LeeChar 投稿)

你可能不需要单页应用(英文)

现在的前端开发大量使用单页应用 SPA,使得前端的复杂性急剧增加。这篇文章提出,SPA 可能被过度使用了,大部分情况下,你可能不需要单页应用。

33 个 JS 程序员需要知道的概念

按照主题,收集 JS 学习资源的仓库。

IPv6 采用率

谷歌有一个公开网页,展示使用 IPv6 访问谷歌的比例。最近,这个比率来到历史最高的25%。

Web Performance 101(英文)

网页性能的基础知识,针对初学者,内容比较全。

YAML 格式的问题(英文)

YAML 格式虽然比 JSON 格式易读易写,但也有很多问题。这种格式其实很复杂,并不是配置文件的理想格式。

停止无限滚动(英文)

本文提出网页的无限滚动并不是一个好的设计,应该限制使用或者停止使用。

zxcvbn

评估密码强度的 JS 库,强度越强,密码越不容易破解。

React Router v4 教程(英文)

前端框架 React 的路由库教程,提供在线代码运行示例,例子简洁能说明问题。(@Anderson-Liu 投稿)

HTML 网页的 head 元素 指南(英文)

网页的 <head> 元素可以放置很多东西,本文列出了其中一些主要的内容,可以当作参考手册。

GraphQL 入门教程(英文)

本文介绍 GraphQL 的概念和优点,演示如何用 Express.js 搭建一个 GraphQL 后端。

文本数据如何储存在 Canvas 图片?(英文)

网页从服务器拿到数据,需要保存下来,但是不想存在 Cookie 和 LocalStorage,怎么办?这篇文章的方法就是动态生成一张 Canvas 的 PNG 图片,将数据存在里面。

如何使用 Flutter 制作一个 iPhone 计算器?(英文)

Flutter 开发的一个简单教程。

如何阅读 RFC?(英文)

RFC 是很多互联网协议的标准,但是它是文本文件,不太容易阅读。本文介绍 RFC 文档的相关知识。

如何用 C++ 写网页?(英文)

本文教你如何用 C++ 写一个二进制程序,每当收到通过 CGI 网关发来的调用请求时,自动返回一个网页。其他后端语言也可以用来写网页,原理是一样的。

为什么要使用 GraphQL ?(英文)

GraphQL 是客户端请求服务器数据的一种新技术,本文分析的它的优点和局限。

精通 JavaScript 模块

开源电子书,介绍如何编写模块化的 JavaScript 代码。

网页性能的准确测量(英文)

本文讨论如何使用window.requestAnimationFrame() 测量脚本操作的准确耗时。

如何将 Web 应用做成 Docker?(英文)

本文通过一个很简单的单页应用,演示如何将 Web 应用放到 Docker 里面,然后通过 Docker 运行。

为什么 Reason 语言合适写 React 应用?(英文)

简单的歌词通常有重复的内容。这篇文章使用压缩算法,比较现在的歌词与过去的歌词,看看哪个压缩得更小,内容更简单。

你不需要Momentjs(英文)

本文列举如何用 date-fns 或者原生方法,取代 moment.js。

为什么 GraphQL 可以取代 Redux?(英文)

本文解释了 Redux 想要解决的问题,而 GraphQL 可以解决同样的问题。但是,该文没有给出细节。

跨站点请求的七种情况(英文)

网页可以向第三方站点发出请求,这是 CSRF 攻击的主要原因。这篇文章总结了可能发出第三方请求的七种情况。

Presentation API(英文)

Chrome 66 支持 Presentation API,这个 API 允许浏览器定制投射到第二块屏幕的内容,使用脚本进行控制。

<input> 元素的三个属性(英文)

HTML 网页的 <input> 元素有几十个属性,本文介绍其中三个开发者比较不熟悉的属性。

网页设计博物馆

该博物馆展出了900多个精心挑选和分类的网站,展示了1995年至2005年间的网页设计趋势。上图是苹果公司2001年的主页。

如何将 WordPress 站点发布成 Gitlab 静态页面站点?(英文)

WordPress 是常用的博客软件,虽然方便易用,但是容易产生安全问题。作者提供了一个脚本,可以将 WordPress 网站的 HTML 页面,部署到 Gitlab Pages 服务,做成一个静态网站。

使用 Webview 开发跨平台桌面应用(英文)

跨平台桌面应用一般用 Electron 开发,打包体积很大。对于纯静态应用,其实有另一种轻量级选择。

操作系统都有自己的 Webview,Mac 是 webview,Windows 是 MSHTML,Linux 是 gtk-webkit2。这篇文章教你怎么用 Webview,开发一个跨平台的桌面打飞机游戏。

《Node.js 调试指南》

《Node.js 调试指南》一书的开源版。

axios 内部设计分析(英文)

axios 是一个非常流行的 JavaScript 语言的 HTTP 请求库,本文分析它的内部设计。

网页设计的常见错误(英文)

本文使用图片对比,列出网页外观设计的15个注意点。上图左侧是改造前的网页,右侧是改造后。

如何制作一个节能的网站?(英文)

臃肿肥胖的网页会消耗更多能源,释放更多二氧化碳。为了保护地球,我们应该制作简单节能的网页,作者演示了如何制作一个只有 7KB 的 Wordpress 网站。

断言库 Power Assert 介绍(英文)

为什么 Power Assert 是更好的断言库?

如何通过 npm 窃取信用卡密码?(英文)

本文讲述了作者通过 npm 发布恶意代码的种种手段,非常值得一读。其中有一个技巧,就是package.js 与 package.min.js 的代码不同,恶意代码只放在后者。

Acceptance Test Driven Development with React

中国开发者写的英语专著,介绍前端测试。书放在 Leanpub,付不付费、付多少钱都是自愿的。

SVG 动画入门:以加载转子为例

本文手把手教你如何写一个最简单的 SVG 动画。

如何使用 Node 优化图片?(英文)

本文教你使用 JS 的 imagemin 模块,压缩图片的大小。

Webpack 4 入门教程(英文)

Webpack 是 JS 代码的打包器,现在前端开发的主流工具。Webpack 4 是它的最新版本。

SVG 背景(英文)

这篇文章教你如何手写一个 SVG 文件,作为网页的背景图案。

Chrome 浏览器开发者工具教程(英文)

介绍 Chrome 开发者工具各个部分的用法。

如何写一个模块打包器(英文)

Webpack 是现在最流行的模块打包器,可以将脚本依赖打包成一个文件。这到底是怎么实现的?如果自己写一个打包器,应该怎么写?

Chrome 的缓存浏览模式(英文)

Chrome 可以启用"show saved copy" 按钮。如果网站下线,而本地又有以前访问时的缓存,就能看到缓存的版本。

深入理解 flutter 的编译原理与优化(中文)

闲鱼是国内最早使用 Flutter 的 App 之一,这个系列的文章是他们对 Flutter 的使用总结。

Unicode 字符与 CSS 背景(英文)

Unicode 字符用作 CSS 背景,可以产生一些非常独特的背景。此文还有续篇

如何生成 localhost 的证书?(英文)

本地开发时,我们常常使用 localhost 访问本地服务,怎样才能生成证书,让 localhost 提供 https 服务呢?

Flutter 入门介绍(英文)

现在的跨平台App开发工具分成两类:(1)容器包了Web View,App实际是一个本地网站;(2)原生控件的跨平台抽象。Flutter走了不一样的路:自己开发了一套原生控件,每个平台实现一遍,然后把渲染引擎(这套控件)打包在每个应用里面,因此性能没有问题,平台差异也很小。

Flutter 试用感受(英文)

Flutter 是谷歌推出的跨平台App开发工具。只要写一次代码,就能同时编译出安卓和iOS两个平台的App。这篇是一个 iOS 开发者的试用报告,他说他对 Flutter 感到非常满意。

纯 CSS 效果展示

网页如何适配 WatchOS5

苹果手表的最新系统 WatchOS5,可以在手表上浏览网页。WWDC 2018 放出一段8分钟视频,介绍网页如何适配苹果手表,还算挺简单的。

Puppeteer 的一些使用经验(英文)

Puppeteer 是谷歌推出的 Chrome 无头浏览器,是目前的浏览器自动化首选工具。本文介绍了作者的使用经验。

Testcafe 教程(英文)

Testcafe 是一个 UI 测试框架,可以在各大浏览器进行 UI 测试。相比 Puppeteer,它提供各种专门针对测试的封装好的方法。

V8 改进垃圾清理机制(英文)

V8 引擎宣布"垃圾清理机制"的重大改进。我们知道,对于大型程序,垃圾清理很影响性能,因为程序必须暂停,让引擎识别哪些内存不再需要。V8 现在允许内存识别不暂停程序,而是并发进行,使得程序停顿时间减少70%左右。引擎如何识别不再需要的对象,希望了解具体实现的朋友,可以看看上面这篇文章。

Eloquent JavaScript 3rd edition 中文版

一本开源的 JavaScript 语言的入门教材。

Material-UI

大家知道,谷歌的材质化组件(Material Design)是 Angular 专用的。社区维护的 React 移植版Material-UI,今天发布 1.0 版,已经完全可用了。以后,React 项目照样可以有官方安卓 UI 的那种材质化效果。

响应式表格的两种解法

手机怎么显示表格?常见的方法是将表格转为键值对。Lea Verou 给出了两种纯 CSS 的解法,不需要任何多余的 HTML 标签。

一种是使用 text-shadow 属性复制表头,另一个使用 element 方法复制表头。但是,这两种方法都有局限,前者是单元格里不能有换行,后者是只有 Firefox 支持。

不必要的 HTTP 头信息(英文)

本文统计了30个最常见的 HTTP 头信息,逐个讨论哪些是必要的,哪些是没必要的。

Elm + Rust 开发桌面应用

目前,使用 Web 技术开发桌面应用,主要通过 Electron。它的缺点是,有时你只是想要在桌面上展示一个网页,不需要跟本地文件系统交互,但是不得不把整个 Chromium 浏览器和 V8 引擎包含在这个应用里面,导致不管逻辑是否复杂,任何一个 Electron 应用都至少有几十MB的大小。
这个项目展示了另一种开发桌面应用的可能。它的原理是,任何操作系统都有自己的 WebView,也就是说可以在应用程序里面调用 WebView 展示网页。那么可以使用 Rust 语言打包 WebView,而 JS 脚本部分交给 Elm 语言生成。由于 WebView 是系统提供的,所以打包出来非常小,一般只有几百KB,资源占用也很少。

《React in patterns》

React 如何使用各种编程模式?

Node 10 的异步遍历器

上个月底发布的Node 10 支持异步遍历器,对 Stream 操作有重大影响。这篇文章介绍了如何用这个新语法读取文件内容,写法变得很自然。

Canvas: Draw on the web

国产的 HTML5 Canvas 教程。从零基础开始,到Canvas API,再到基本动画与高级动画的实现,还会介绍视音频的处理、移动应用,最后如果有时间会扩展说一说3D、多人应用、游戏制作等。

Optimizing React: Virtual DOM explained

React 的虚拟 DOM 机制的详细解释, JSX 代码如何变成虚拟 DOM 的数据结构。

WebAssembly 周刊

每周给你发送一封邮件,介绍本周值得关注的 WebAssembly 消息。

Meet the New Dialog Element

HTML 5.2 新增了 dialog 元素,这个元素将来一定会广泛使用,因为它提供了浏览器原生 Modal 窗口。

React - Basic Theoretical Concepts

React 官方关于 React 原始设计思想的解释。

后端/数据库/分布式/架构

Amazon Lambda 的通俗解释(英文)

本文使用最简单的语言解释 Lambda 服务,如果你不知道它是什么,可以看看。当然不涉及细节。

3从 Google Analytics 迁移到 Fathom(英文)

如何自己架设开源的 Fathom 服务,统计网站访问情况。

为什么我们从 Go 转向 PHP?(英文)

作者谈了 PHP 过去三年的改进,以及为什么更适合架设他们的网站。

你应该记住的 DNS 地址(英文)

作者介绍了几个常用的 DNS 服务器地址,简单谈了它们之间的差异。

Apache Guacamole

浏览器里面的远程桌面连接器,可以在网页上登录远程桌面,支持 VNC、RDP、SSH。(@barrer 投稿)

SQLi Hall of of Shame

该网站收集 SQL 注入的各种真实案例。

AdGuard 公司的 DNS

AdGuard 宣布提供免费的 DNS 服务:76.103.130.130176.103.130.131 ,还支持 DNS over HTTPS。

SQLite 用作搜索服务(英文)

SQLite 有很强的读取性能,作者提出它可以用作小型网站的搜索数据库。

如何使用树莓派架设各种网络服务(英文)

作者介绍使用一台树莓派,架设个人使用的反向代理服务器、Git 服务、看板服务的过程。

浏览器的 gRPC 协议支持(英文)

gRPC 是谷歌提出的一套远程服务调用的解决方案,只能用于服务器之间。本文介绍了 gRPC-Web 这个项目,旨在让浏览器也可以使用 gRPC。

mkcert 制作 localhost 证书(英文)

mkcert 是一个签发本地证书的工具,用于开发环境,最大特色是可以签发 localhost 的证书。

Docker 的优缺点(英文)

一篇很简单的对 Docker 技术的评论。(@lanzhiwang 投稿)

HTTP 协议简史(英文)

介绍 HTTP 协议的由来和发展。(@gusibi 投稿)

Netlify Lambda 的一个应用实例(英文)

本文使用 Netlify Lambda 服务,每当网站更新的时候,就自动到推特发一个消息。

使用 Docker 部署React(英文)

本文介绍如何制作 React 应用的 Docker 容器,并将其部署到服务器。

OAuth 2.0 Servers

介绍如何搭建 OAuth 服务的电子书。

Wireguard 安装教程(英文)

介绍 Wirdguard 如何安装和配置。

为什么你应该尝试 hapi?(英文)

hapi 框架的作者介绍该框架的特点。这里还有一篇《值得关注的10个 Node.js 框架》

Docker 镜像中有什么?(英文)

Docker 的 Image 文件是分层的,本文简单介绍怎么查看每一层的内容,它们又是怎么组合成一个可以运行的 Image 文件。这里还有另外一篇类似的文章,通过控制分层来缩小 Image 文件尺寸。(@tifazxy 投稿)

何时不使用微服务?(英文)

微服务是目前流行的架构,但是会增加复杂性,比如一个 API 变成多个 API(上图)。本文讨论了哪些情况不应该使用微服务。

TOML 配置格式介绍(中文)

TOML 格式的介绍、中文文档翻译和解析工具。(@LongTengDao 投稿)

Caddy 中文文档

Caddy 是一个新的 HTTP/2 Web 服务器,该网站是志愿者翻译的中文文档。(@comdeng 投稿)

Netlify lambda 的最简单示例(英文)

Netlify 的 lambda 函数可能是现在最简单的 Serverless 实现,本文教你如何完成一个 hello world 示例。

testing-distributed-systems

一个搜集各种分布式系统的资料库。

图解 DNS over HTTPS(英文)

长期以来,DNS 请求一直是不加密的,这造成 DNS 可能被监听和篡改。最新的方案是推广 DNS over HTTPS,即对 DNS 请求加密,Mozilla 基金会的这篇文章解释了这是怎么回事。

HAProxy 的防 DDOS 机制(英文)

HAProxy 是一个负载均衡服务器,自带过滤 HTTP 请求的功能,可以防止应用层的 DDOS 攻击,这方面比 nginx 更强大。

为什么静态资源应该使用 CDN?(英文)

本文用一个简单的例子解释什么是 CDN,以及它的好处。

AWS 网络介绍(英文)

本文介绍亚马逊网络服务(AWS)对用户提供的子网服务。每个购买 AWS 的用户会分配到一个 VPC(虚拟私有云),即一个虚拟子网,比如 10.0.0.0/16,文章介绍与之相关的一些概念和知识。

IPFS 简介(英文)

本文介绍亚马逊网络服务(AWS)对用户提供的子网服务。每个购买 AWS 的用户会分配到一个 VPC(虚拟私有云),即一个虚拟子网,比如 10.0.0.0/16,文章介绍与之相关的一些概念和知识。

10月21日 GitHub 故障分析(英文)

10月21日,GitHub 发生了一次持续24小时的故障,本文是该公司的事后故障分析。主要原因是,当天两个数据中心之间的光纤断了43秒,导致主库与从库之间数据不同步,而且没法确定哪一个镜像是数据完整的,不得不从头做数据恢复。

Nginx 如何设置 IPv6 网站(英文)

本文介绍如何配置网站,接受 IPv6 的访问。

最早的域名(英文)

作者写了一个脚本,查询 whois 数据库里面最老的域名。最早的 .com 域名是 symbolics.com(1985-03-15 注册),最早的 .net 域名是 nordu.net(1985-01-01 注册)。

CSV 和 JSON(英文)

CSV 和 JSON 两种数据格式的介绍和比较。很多人忽略的一个事实是,最近几年 CSV 的使用量一直在上升。

Kubernetes 用于个人项目?不用了,谢谢!(英文)

本文是对上一篇文章的反驳。

Kubernetes:令人惊讶的个人项目平台(英文)

流行的观点认为,Kubernetes 是一种过于复杂的技术,只适用于非常大的机器群。我认为这可能是错的,Kubernetes 适用于小型项目。

树莓派如何搭建 NAS(英文)

想要搭建家用储存系统的朋友,可以看这篇教程,使用树莓派和移动硬盘,搭建一个 NAS,操作简单,可玩性高,费用便宜。

DNS 1.1.1.1

该网站提供指导,如何将各种操作系统或设备的 DNS 设为 1.1.1.1。

Pi-hole 拦截广告

如果你还在用广告拦截器,Pi-hole 是更好的选择。它是树莓派上的 DNS 服务器,架设在局域网里面,内置黑名单,拦截广告域名的 DNS 请求。从此,局域网所有设备都看不到广告。

微服务入门示例(英文)

本文解释了什么是微服务架构,并且给出了一个简单的示例,在 Docker 里面使用 Flask 框架和 ZeroMQ 搭建一个简单的微服务应用。

ActivityPub 协议介绍(英文)

ActivePub 是一种分布式的通信协议,本文以 Mastodon 为例,介绍为什么它可以改变互联网。

IPFS 介绍(英文)

IPFS 是一个具有 web 接口的分布式数据库,一旦写入,你的内容就将永远存在,且无法修改。本文是一篇很不错的介绍文章, Cloudflare 在文中宣布开通 IPFS 网关服务。如果你有自己的 IPFS 节点,就可以让 Cloudflare 的 CDN 网络分发你的内容。

Severless 的缺点(英文)

决定使用 Severless 架构之前,你应该读一下这篇文章,了解这种架构的一些问题。目前,最大的问题是,一旦用了它,就很难再摆脱对服务提供商的依赖。

谷歌数据集搜索

大数据研究需要数据集,谷歌推出数据集搜索,根据关键词找出相关的数据集。

SQL 开源教程(英文)

这是一本互动书籍,免费,帮助读者了解如何使用 SQL 对数据集运行查询。

Cloudflare worker 的一个使用实例(英文)

这篇文章很容易懂,解释怎么使用 serverless 服务,修改 HTTP 回应。这个服务看起来很好用,缺点好像是只有使用 Cloudflare CDN 的网站才能用。

使用 Google Cloud Functions 运行端对端测试(英文)

谷歌云服务最近内置了 Puppeteer。本文介绍如何使用这个功能,完成云端的端对端测试。

如何追踪 tab?(中文)

多个浏览器 tab 同时访问一个网站,服务器如何区分不同 tab?

答案是利用新建 tab 的时候会新建 Session 这个特点,可以创建一个 uuid 写入 sessionStorage,每个请求都附上这个 uuid,就可以区分 tab 了。

数据挖掘教材

《数据挖掘》(第二版)这本书本身没有全部开源,这个网页提供了所有章节的 PPT 教辅材料和实验代码。

Serverless 最佳实践(英文)

Serverless 作为服务导向架构的一种形式,有很多优点。本文介绍了使用这种架构时,应该注意的问题。

WireGuard 介绍(英文)

WireGuard 内部实现原理的一些介绍,以及与现有方案的比较。

如何搭建一个私有的 CDN?(英文)

大部分情况下,我们使用市场上现有的 CDN 服务。但是,你也可以自己搭一个,这篇文章教你怎么做。

.ipynb 文件和 Jupyter 云服务(英文)

.ipynb 文件是一种在网页上运行的代码运行时,可以实时看到运行结果,支持40多种语言的运行,包括 Python,R,Julia 和 Scala。它是由 Jupyter Notebook 生成的,本文介绍5种支持 Jupyter 的云服务。

about 协议的来历(英文)

"about: "开头的网址,返回与浏览器本身相关的内容,最常用就是空网址 about: blank ,以及 about:history

网站架构101(英文)

本文介绍大型网站架构的基本知识。

如何将 Swift 用于服务端编程?(英文)

Swift 语言一般用于开发 iPhone 的 App,现在开始有人尝试将它用于服务端编程。

如何用 Node 搭建一个推特机器人?(英文)

本文详细指导你搭建一个免费推特机器人,每当有人在推特 follow 你,就会收到一条欢迎私信。

如何对缓存服务器注入恶意代码?(英文)

用户发出的请求,很大一部分是缓存服务器响应的。这意味着,不一定需要感染源站,只要能在缓存服务器注入恶意代码,就能达到目的。本文给出了这方面的详细介绍以及实际的案例。

公共 DNS 比较(英文)

本文测试了几个全球性的公共 DNS 服务提供商,结果第一名是 Cloudflare,第二名是 Google。

鸽子传信解释 HTTPS(英文)

本文使用鸽子传信作为比喻,解释 HTTPS 协议。

WireGuard 介绍(英文)

WireGuard 仍然是一个实验性的新产品,目前只有 Linux 和安卓客户端。

Kubernetes 的起源(英文)

Google 官方介绍 Kubernetes 这个项目是怎么诞生的。

如何让 SSH 更安全?(英文)

提高 SSH 安全等级的一些知识。本文较难,需要密码学知识。

TLS 1.3 介绍(英文)

HTTPS 协议的最新版本 TLS 1.3,最近成为了国际标准 RFC 8446。本文详细介绍这个新协议,包括 TLS 1.2 的缺陷,以及 TLS 1.3 如何解决它。

新的 HTTP 头字段 Feature-Policy(英文)

继内容安全政策之后,现在又多了一个新的 HTTP 头字段 Feature-Policy,用来禁止网页执行某些功能。

谷歌云服务:The Good, Bad, and Ugly(英文)

作者从用户角度,对谷歌云服务的各个方面进行了评价。

最简单的反向代理服务器(英文)

本文介绍如何用 Go 语言实现一个最简单的反向代理服务器。

为什么选择 Java 作为后端开发语言?(英文)

本文介绍了 Java 语言用在后端开发的一些优势。

stackshare.io

收集各大网站使用的技术栈。

DNS over HTTPS(英文)

DNS 查询都是基于 HTTP 协议的,即使是加密通信,网络服务商依然可以知道你想访问的网站。现在有多种解决方案,本文介绍如何在 Firefox 浏览器打开设置,使得 DNS 协议走 HTTPS 协议。

网站可靠性工作手册

《网站可靠性工作手册》一书现在免费下载,谷歌官网提供,为期一个月。

为什么 Kubernetes 是新的应用服务器?(英文)

这篇文章解释,为什么以后发布应用的时候,不是直接发布在服务器上,而是通过 Kubernetes 发布。

ssh 端口为什么是 22?(英文)

SSH 的作者回忆, ftp 端口是21,telnet 的端口是23,他就挑了中间剩下的22。

如何设计 Web 应用的架构(英文)

大型 Web 应用最关键的就是架构,最难的也是架构。这份教程整理了这方面需要知道的知识。

什么是 Web 应用程序防火墙(WAF)?(英文)

WAF 是应用程序级别的防火墙,目前主要用在 Web 服务器软件。这篇文章简单介绍了 WAF 的概念。

Kubernetes 入门教程(英文)

Kubernetes 是现在最流行的容器集群管理工具,本文给出了一份上手教程,教大家怎么安装和使用它。

IP 地址 192.168.1.1 的由来(英文)

为什么是 192.168.1.1 这个地址,而不是别的地址被指定为内网 IP?

WordPress 编译为 .Net(英文)

有人把 WordPress 编译成了 .Net 代码,运行的时候只需要 .Net 环境,不需要 PHP 了。随着转码器的流行,以后这种事情可能越来越多。你用什么语言可能根本无所谓了,反正都可以转来转去。

微服务架构的简单解释(英文)

一篇比较简单的微服务架构的解释。

在 Google Bucket 托管静态网站(英文)

静态网站可以免费托管在很多地方,现在又多了一个选择:谷歌的云服务。这篇文章教你怎么做。

数据科学的必读免费书籍

网上有很多免费资源,这份书单是学习大数据的指南。

国内最大的 DDOS 攻击

4月8日,清明节后第一个工作日,腾讯云一个重要的棋牌游戏客户突然遭受大流量 DDoS 攻击,棋牌类游戏遭受攻击习以为常,但是本轮攻击流量峰值竟达到了1.23Tbps,刷新国内DDoS攻击最大流量记录。

为什么 SQL Server 的日期从1753年1月1日开始?

原因是1752年英格兰进行了日历改革,由于日历算法的差异,导致丢失了9月3日到9月13日的一共12天。为了避免计算天数的误差,SQL Server 就索性把最小日期定为1753年1月1日,更大的日期范围由 datetime2 类型提供。

Channel 服务介绍(英文)

Channel 是 Web Socket 协议的封装,提供服务器、PC端、手机端的库,做到客户端订阅服务器事件,或者服务器订阅客户端事件。

Web 技术史(英文)

这篇文章写于2014年,回顾了互联网开发技术的历史。客户端的部分看不看无所谓,服务器的部分写得很好。

socks5 技术简介(英文)

socks 是一种服务器的通信代理协议,本文介绍它的一些基本知识。

MySQL 数据库的字符集,要用 utf8mb4,而不是 utf8(英文)

MySQL 的 utf8 字符集不是真正的 UTF-8,只支持最多三个字节的字符。真正的 UTF-8 可能会出现四个字节的字符。MySQL 从来没有修复这个 Bug,而是使用另外的解决方法:真正的 UTF-8字符集改用 utf8mb4 的名字提供。.

网站流量指标的含义

UV、PV、跳出率(bounce rate)这些词到底是什么意思?怎么计算?

devops 工程师的职务(英文)

devops 是 IT 行业的一个新兴领域,这一类工程师的职务应该怎么分类呢?这篇文章认为可以分成三种职务:运维(Operations)、平台工程(Platform Engineering)、发布管理(Release Management)。

Google Analytics 的替代品

Google Analytics 是网站访问量的监控工具,这篇文章介绍了几个替代品。

IPFS 教程(中文)

如果你想把一个文件放到网上,从此任何人无法删除和屏蔽,别人只要想看就能看到,你可以使用 IPFS。

它是一个分布式网络,采用点对点通信。内部是一个区块链,文件写入以后就没法删除了,然后通过哈希可以读出文件。缺点是本地需要架设一个客户端,资源开销有点大。

Everything old is new again: Microservices

这篇短文讨论了 SOA 架构(服务导向架构)和微服务架构的差异,为什么 SOA 会演变成微服务。

只有 13 台 DNS 根域名服务器原因

我们经常听到 DNS 根域名服务有 13 台,那么是为什么呢? 今天我们来深入了解下。

分布式系统的全面介绍(英文)

什么是分布式系统?最简单的定义,分布式系统是一组计算机一起工作,对于最终用户只显示为一台计算机。这些机器具有共享状态,可以处理并发操作,如果其中一台机器发生故障,不会影响整个系统的正常运行。

互联网公司技术架构

作者收集的国内各大互联网公司技术架构的资料

高可用的部署技巧

Netflix 公司的工程师介绍,他们如何部署代码,提高服务的可用性,比如使用红黑部署、设置部署窗口等等。

Node.js 最佳托管商

现在,各大云服务商都支持 Node.js 主机,本文对比了最大的 6 家服务商各自的优缺点

Active Record 与 Data Mapper 的差异

关系型数据库的操作通常采用 ORM 库,将表格转换成对象。ORM 主要分成两种类型:Active Record 与 Data Mapper。本文讨论这两种模型的差异和适用场景。

分布式系统的几个基本概念

Uber 架构师分享在搭建分布式支付系统过程中,遇到的最重要的几个概念:SLA、scaling、Consistency、Durability、Idempotency等。

计算机/算法/计算机网络

AntzOS

一个用于实验和教学目的的操作系统,从零开始实现。(@CasterWx 投稿)

自学计算机科学(英文)

本文给出自学计算机科学所需阅读的书单,有中译。(@baibm 投稿)

计算机图形学教程

从数学基础开始教起的图形学教程,包含 C++ 源码。

数据结构可视化

该网站收集各种数据结构,并将它们用可视化的形式表现出来。

algorithm-visualizer

一个直观的算法可视化工具,你可以自由选择自己想学习的算法,每个算法它都清晰描绘了其原理和运作过程。(@nivance 投稿)

JPG 和 JPG2000 格式(英文)

JPG2000 图像格式的介绍,也解释了 JPG 和 PNG 格式。

计算机如何实现除法(英文)

对于计算机来说,加法和减法比乘法容易实现,而乘法又比除法容易实现。

LeetCode Animation

使用动画的形式呈现解 LeetCode 题目的思路。(@nivance 投稿)

计算机科学的自学方案

本文对于计算机科学各门课程的自学,给出了一个完整的方案。

文件系统的过去,现在和未来(英文)

文件系统的历史回顾,介绍各种文件系列的来历和特点。

Micro8

一个匿名作者写的渗透攻击教程,主要用于 Windows 主机。"适用于初中级安全从业人员,乙方安全测试,甲方安全自检,网络安全爱好者等,企业安全防护与提高"。

树莓派的项目

该网站收集各种树莓派的项目,目前已经有1000多项了。

树莓派的问题(英文)

作者谈了树莓派的一些局限,最大问题在哪里,哪些项目不适合使用它。

不要随意放置点文件(英文)

越来越多的软件会将自己的配置文件,以点文件(dotfile)的形式放在用户的主目录下面。作者呼吁不要这样做,而要采用已有的 XDG 目录规范,将配置文件和数据文件放在该规范指定的位置。

安装 Google BBR(中文)

Google 开源的 TCP BBR 拥塞控制算法,可以提升网速,适合 CentOS 等内核较老的云主机升级。本文介绍安装方法。(@ansiz 投稿)

MSIX文件:Windows 可执行文件的未来?(英文)

Windows有三种常见的安装程序格式: MSI,EXE 和 AppX。微软据称正在考虑推出 MSIX 格式,统一这三种格式。这种格式的最大特点就是,它是一个容器,因此有很多容器的好处。

dumb-crypto

常见加密算法的实现演示。作者用容易懂的代码、详细的注释帮助读者理解这些加密算法的实现。

Crypto 101

免费的加密学入门书籍,介绍基础原理,针对各种水平的读者。

安卓设备如何启用加密 DNS?(英文)

DNS 查询默认是不加密的,本文介绍如何在安卓手机上通过 cloudflare 的服务,启用加密 DNS 服务。

IPFS 文件系统的简单解释(英文)

本文以一种通俗易懂的方式解释 IPFS 这个基于 IP 协议的文件系统的原理。

HTTP 头信息的安全设置(英文)

本文介绍跟网页安全相关的一些 HTTP 头信息。

http3-explained

curl 作者写的小册子,介绍 HTTP/3 协议。此前,他也写了介绍 HTTP/2 的小册子。

谷歌代码搜索的工作原理(英文)

谷歌代码搜索的作者,介绍搜索的算法原理。

编译器基础(英文)

本文用 JavaScript 语言演示如何写解析器,将代码转为抽象语法树 AST,然后再写编译器,将其转为汇编语言。

程序员的实用密码学

密码学开源教材,全面介绍的密钥相关的各种基本知识。

如何编写一个硬盘启动程序?(英文)

本文教你如何向硬盘的主引导扇区 MBR 写入程序,使得计算机可以在没有操作系统的情况下运行程序,显示 Hello World。

QUIC 协议的注意事项(英文)

本文介绍了 QUIC 协议的一些优点。作者提出,QUIC 与其称为 HTTP/3,不如称为 TCP/2。

ZIP 压缩算法详细分析(中文)

使用通俗的语言介绍 ZIP 算法,文章较长。(@chowc 投稿)

不必要的 HTTP 头信息(英文)

本文统计了世界最大的前50万个网站返回的 HTTP 回应,其中最常见的30种 HTTP 头信息包括了很多错误的用法。

UDP 协议到底可不可靠?(英文)

UDP 协议不如 TCP 协议可靠,这是大家都知道,但是这个协议到底丢包率有多高?有人做了测试,结果发现丢包率并不高,主要的问题是数据包的顺序。

网站域名是否该有 www?(英文)

www.example.comexample.com 哪一个合适作为主站的域名?这里的关键问题是,example.com 设置的 Cookie 可以被子域名读取,并一起发送到服务器。

OI-wiki

收集编程竞赛的基础知识、常见题型、解题思路以及常用工具等内容。

Code I like

该网站使用图形和动画,解释一些常见的算法问题。链接是如何在二叉搜索树里面插入一个值的动画。

TCP 协议的堵塞控制算法(英文)

网络数据包如果一次发送太多,就会造成网络拥堵;如果发送太少,就浪费了带宽,延长了通信时间。TCP 协议有一个拥堵窗口机制,负责动态调整每次发送数据包的数量。本文通俗地解释了这种算法的细节。

压缩算法的解释(英文)

压缩是最常用的功能之一,压缩算法一般分成两大类:基于熵的压缩和基于字典的压缩。本文简单解释这两类算法的原理,以及将它们合在一起的 deflate 算法。

密码学简明教程(英文)

本文回顾了加密发展的几个阶段,每个阶段都给出了 Python 的小例子。

加密学导论

英文的开源电子书,介绍加密背后的数学知识,哈佛大学的本科生教材。

计算机网络:原理,协议和实践

英文的开源电子书,解释了计算机网络的主要原理以及互联网的关键协议,用于高年级本科网络课程。

DHCP 协议如何工作?(英文)

DHCP 协议全称是"动态主机配置协议",局域网的设备往往使用这个协议获得动态 IP 地址。本文解释这个协议的运作过程。

HTTPS 协议图解(英文)

图解 HTTPS 对话过程,非常形象,每一个字节的含义都讲到了。

区块链技术概述[PDF](英文)

美国国家标准技术研究所(NIST)编写的介绍区块链的小册子,针对一般读者,内容比较全面完整。

各种算法的 Python 实现

这个仓库收集 Python 语言实现的各种算法代码。

从零开始写一个操作系统

一个教程库,每一步都有指导,教你怎么写出一个简单的操作系统。

计算机组织导论:以树莓派和 ARM 汇编语言为例

开源教材,介绍计算机的底层实现,写得比较好懂。

《预测:原理与实践》

免费电子书,如何通过数据进行预测。

六种虚拟私有网络工具(英文)

一些虚拟私有网络的相关知识。

网络协议入门(英文)

本文从协议设计的顶层角度,总体上解释互联网协议的设计思想。

二叉树算法介绍:go 语言实现为例(英文)

这篇文章很不错,用最简单的语言介绍了二叉树和 go,还有大量配图。

什么是区块链?(英文)

一篇针对普通读者的区块链入门介绍,写得比较好懂,还带有互动性的示例。

计算机科学:以 Julia 语言为例

开源教材,以 Julia 语言的教学,讲解计算机科学的基本概念和原理。

计算机网络:系统方法

《计算机网络:系统方法》英文原版开源了(下载地址)。

如何维持缓存的一致性?(英文)

有一句名言:"计算机科学有两大难题:缓存不一致和变量命名。"本文就介绍缓存与源数据不一致的基本知识。

Just World License

JWL 是一种软件许可证,称为公平世界许可证。采用这个许可证的软件,不道德的行业不得使用,包括烟草,赌博,贩卖人口,奴役,仇恨言论的提供者等等。 它是BSD 3许可证的扩展。

MacOS system6

MacOS system6 是 Macintosh计算机的操作系统,1988年由苹果公司发布。这里用虚拟机在浏览器里面启动这个操作系统。

计算机系统导论:以汇编语言与 Linux 系统为例(英文)

介绍计算机底层知识的免费电子书。

如何写一个脚本语言的虚拟机?(英文)

这组系列文章介绍脚本语言的运行虚拟机(VM)怎么写。

幽灵文字

Unicode 里面有一些不存在的汉字,称为"幽灵文字"。它们是怎么进入标准的?原来,1978年,日本制定本国编码标准 JIS 时有一些错误,创造出这些文字,后来 Unicode 又全部继承了 JIS。

如何自学计算机科学?(英文)

作者给出了各门课程的参考书单和学习资源,以及一些建议。

Emulator 101

开源电子书,从零开始讲解如何写一个8080处理器的模拟器。

斐波那契数列的计算公式(英文)

如果不用递归,直接算出斐波那契数列的任意项,应该怎么计算?

Hash 算法简介(英文)

Hash 算法的概念性介绍。

汇编语言初学者教程(PDF)

开源电子书,从零开始介绍汇编语言,读者必须懂一点 C 语言。内容很全,也非常厚。

PDF 格式有什么用?(英文)

作者认为应该避免使用 PDF 格式。一般情况下,HTML 格式是更好的选择。如果要求保证精确的打印效果,可以使用压缩的 Postscript 格式。

图数据结构入门(英文)

图(graph)是一种数据结构,由点(vertex)和边(edge)组成。本文介绍图结构的算法基本知识。

Crafting Interpreters

开源电子书。如何写一个解释器,其实也就是如何自己设计并实现一门语言。

Learn command line

一本开源的初级命令行教程,特色是配有大量的手绘图。

Timsort 入门(英文)

Python 的默认排序算法是 Timsort,它的表现据说好于快排(quicksort)。本文解释了这种算法的基本原理。

如何破解路由器?(英文)

一份简单的教程,如何获得局域网路由器的 root 权限。

数据结构参考(英文)

一份很好的数据结构教程,图文并茂,简明扼要,列出每种结构的定义和优缺点,非常适合初学者。

如果没有 if 语句

一篇很有意思的文章,讨论如果不使用 if ... else 语句,应该怎么写代码。他的意思是,某些情况下 if 属于误用,会造成代码冗余或不利于阅读,这时应该减少 if 的使用。

GPU 知识介绍(英文)

这篇文章介绍什么是 GPU,为什么不用 CPU 进行图形渲染,GPU 的基本概念等等。

GRAIL 笔迹识别算法(英文)

这篇教程详细介绍一种手写识别算法,并且附有多个可视化示例可以操作。这篇的英语看起来有点费劲,但是耐心看一定可以看懂,因为解释得很好,也没有复杂的数学。

各种数据结构的 JavaScript 实现(英文)

这篇文章针对初学者,介绍 Array、HashMaps、Sets、Linked Lists、Stacks、Queues 这六种数据结构的 JavaScript 实现。

应用加密法的研究生教材(英文)

这是开源教材,介绍密钥加密的知识。因为是研究生教材,内容不容易。

高性能矩阵乘法(英文)

矩阵乘法需要计算每一行与所有列的乘积之和,如果矩阵很大,乘法计算是非常耗时的。这篇文章讨论如何实现一个高性能的矩阵乘法算法。

JavaScript 算法与数据结构(中文)

这个仓库收集了30多种算法的 JavaScript 实现。

马尔可夫决策过程(英文)

如何利用马尔可夫链建立一个决策模型,文章较好懂。

最简单的马尔可夫链图解

下面是最简单的马尔可夫链图解。系统包括 A 和 B 两个状态。一共有四种转化路径:A 到 A、A 到 B、B 到 A,B 到 B。每种路径的可能性都是 50%,就得到了随机的运动轨迹。一个通俗的实例是,每天有"晴天"和"下雨"两种天气,天气变化的概率是50%,那么马尔可夫链就可以生成一个未来一周天气的模型。

Cosmos

收集各种算法的代码实现的仓库。

SHA256 的实现

SHA256 是目前常用哈希算法里面最可靠的,Git 和比特币都依赖这种算法。本文解释了它的实现。

《计算与推断:数据科学基础》

本书是加州大学伯克利分校《数据科学导论》课程的教材,现在开源了。

Probability Theory (For Scientists and Engineers)

一个概率论的概览性介绍,每个章节后面有一个 R 语言的小例子。

数据回归的15种类型

回归(regression)是数据处理的常用技术,用来找出数据的模式。本文介绍数据回归的15种拟合。

D3 Graph Theory

图理论(graph theory)是重要的数学分支,在数据处理领域有着重要应用。这个教程采用可视化库 D3,把图理论变成了可视化互动教程。

Low Level Bit Hacks You Absolutely Must Know

位运算(bit operation)的用途,有很多例子。

人工智能/机器学习

TensorFlow.js 介绍(英文 PDF)

本文描述了TensorFlow.js 的设计、API 和实现,并重点介绍了一些使用实例。

K 线图的机器学习(英文)

K 线图经常用于股市预测,如果使用人工智能分析 K 线图会怎样?有人真的搞了一个机器学习模型,用无数 K 线图训练,然后去预测股价。结果非常糟糕,亏损严重,我们终于有了一个人工智能无能为力的领域。

如何识别音频广告?(英文)

作者通过机器学习和音频指纹,识别出音频里面的广告,从而可以过滤广播里面的广告,只听节目的部分。也可以分辨谈话和音乐,做到只听音乐。

计算机如何识别图像?(英文)

本文较通俗地介绍了神经网络的历史发展和计算原理。

强化学习导论(第二版)

《Reinforcement Learning: An Introduction》,2018年出版的新书,作者开源了。

亚马逊的机器学习课程

亚马逊公司推出了官方的机器学习课程,学完以后,还能参加付费考试,通过者可以获得 AWS 机器学习认证。

如何创建一个具有机器学习能力的 Sketch 插件(英文)

本文用浅显的语言介绍,如何写一个简单能够识别热狗图像的 Sketch 插件。(@Anderson-Liu 投稿)

机器学习书籍清单

这份书目的特别之处在于,它是一份树状的互动图表。(@nivance 投稿)

NLP 学习资源(英文)

本文列出初学者学习自然语言处理(NLP)时,比较有用的一些资源。

DeOldify

老照片着色的机器学习库。

ml5.js

一个基于 TensorFlow.js 的机器学习封装库,提供方便易用的 API,可以用于图像分类和视频分类等常见用途。

DeepLearningProject

哈佛大学深度学习开源教程,附有代码实例。

新人要学习的机器学习十大算法(英文)

本文介绍了机器学习最基本的十种算法,比如线性回归、朴素贝叶斯、KNN聚合等。

基于模型的机器学习

开源电子书,通过真实案例掌握机器学习。

TensorFlow-Course

针对新手的 TensorFlow 教程。

lip-reading-deeplearning

一个使用深度学习,从嘴唇变化识别语言的库。

TensorFlow.js 自动化 Chrome 恐龙游戏(英文)

本文介绍如何使用 TensorFlow.js 进行深度学习,自动玩 Chrome 浏览器的恐龙跳跃游戏。

机器学习解释

开源电子书,尝试用通俗的语言解释机器学习。

人脸检测服务对比(英文)

本文比较了谷歌、微软、亚马逊、IBM 四家公司的人脸检测服务的准确性。

深度学习(英文)

fast.ai 免费的深度学习课程。

Bloomberg 机器学习课程

这个培训课程帮助学员深入理解机器学习的概念,技术和数学框架。一共30个讲座,包括一整套课后作业。

判断油画的年代(英文)

上面这幅欧洲油画是什么时候画的,15世纪还是17世纪?

这种问题恐怕要熟悉欧洲艺术的专家才能回答。现在,有人写了一个神经网络教程,介绍如何用算法判断油画的年代。

机器学习指南

谷歌推出的机器学习各个领域的初学者指南,目前只有两个专题。

人工智能编程范式(英文)

这本书(Paradigms of Artificial Intelligence Programming)是人工智能领域的名著,Peter Norvig 写于 1992 年,探讨 Lisp 语言在这方面的应用,现在开源了。

faceai

一款入门级的人脸、视频、文字检测以及识别的项目。

机器学习50个最佳免费数据集

这里列出50个可以用来训练模型的免费大型数据集。

while True: learn()(游戏)

一个帮助玩家学习人工智能的游戏。你扮演一个人工智能专家,在游戏的引导下解决各种问题。

深度学习在线课程比较(英文)

深度学习是目前很热名的主题,各大网校都有这方面的课程。这篇文章比较了美国三大教育平台的深度学习课程:Coursera、Udemy 和 Udacity。

前端人工智能?TensorFlow.js 学会游戏通关(中文)

作者使用 TensorFlow.js,让程序自动完成 Chrome 浏览器的内置小游戏"恐龙快跑"。

决策树模型入门

决策树模型(Decision Tree)是最简单的机器学习模型,也最容易理解。当决策受到多个因素影响时,这个模型相当有用。

《Machine Learning Yearning》

吴恩达(Andrew Ng)是斯坦福大学的教授,人工智能领域的权威,曾经担任过百度的首席科学家。
他的新书《Machine Learning Yearning》现在可以免费订阅。今后几个月里面,他每完成一个部分,你就会得到邮件通知,可以立即读到。根据说明,这本书大概100页左右,每章的长度很短,非常容易阅读。内容主要关于如何实现你自己的机器学习项目,重点不是算法,而是如何运用算法到真实项目。

编程语言/框架

Go by Example

通过示例学习 Go 语言的教程。

sicp-py-zh

加州大学伯克利分校的 SICP 的 Python 版教程中译。(@Ming-Lei 投稿)

我爱 Ruby(英文)

Ruby 语言的开源入门电子书。

Python NumPy 实例教程(英文)

NumPy(Numerical Python 的缩写)是一个开源 Python 库,用于进行科学计算。这篇是详细教程,通过大量实例介绍这个库的用法。

xs 语言

国人开发的编程语言,目的是提高读写效率,减轻记忆语法负担。(@kulics 投稿)

Java 开发人员调查结果 2018(英文)

一份针对全世界 Java 开发者的调查统计,有不少有趣的结果。上图是 IDE 的选择。

编程语言都有中央包存储库吗?(英文)

许多语言都有中央软件包存储库,比如 npm、PyPI 和 CRAN。但是,每种编程语言都有这些吗?答案是只有39种语言有。

Python 3 的入门教程

一个很简单的入门级教程,但是 Python 3 的最基本语法都提到了。

《组合程序》(Composing Programs)

加州大学伯克莱分校以 SICP 为范本,使用 Python 3 语言解释编程原理的教程。

取消 C++ 的预处理器(英文)

本文作者建议,不要使用预处理器定义宏(Macro),甚至不要使用(自定义的)宏。

函数式编程的好处(英文)

著名程序员 John Carmack 谈了函数式编程对 C++ 语言的好处。不涉及代码,只是概念上的讲解。

Java 语言如何实现线程间通信(英文)

一篇简单的教程,Java 语言如何实现多线程编程。

How to Design Programs(第二版)

麻省理工学院以前用著名的 SICP 作为编程教程,但是该书使用 Scheme 语言作为示例,再加上出版多年,现在已经不用了。作为改进,2001年出版了《如何设计程序》这本教材(缩写为 HTDP),2018年又出版了该书的第二版,使用 Racket 语言的图形界面 DrRacket 作为示例,内容全部开源。

advanced-java(中文)

Java 互联网开发的知识笔记,涉及MQESRedis等周边工具。(@LanjianNUll* *投稿)

Golang Example

该网站收集 Go 语言的各种应用实例。

JavaScript 互动教程

一份简短的入门课程,直接在浏览器里编写代码,学习 JavaScript 语言的基本语法。

Dart 语言的异步编程(英文)

Dart 是 Flutter 框架的开发语言,语法与 JS 高度类似,也是单线程。本文介绍 Dart 语言的异步操作,可以比较与 JS 的异同。

3万行代码从 Flow 迁移到 TypeScript 的经验(英文)

一篇 TypeScript 的使用体会,以及一些使用经验。

Essential C(PDF)

一本入门级别的 C 语言简单教程。

TypeScript 写一个词法解析器(英文)

词法解析器(lexer)的作用是将源码转成一个个词元(token),本文介绍如何用 TypeScript 写一个简单的解析器。

Python 类型系统入门教程(英文)

介绍 Python 新引入的数据类型系统。

Python 算法与数据结构(第二版)

开源教程《Problem Solving with Algorithms and Data Structures Using Python》。网上有网友翻译的中文版

12 款助你学编程的免费游戏

本文中,我们评选出12个热门网站,你可以通过玩游戏学习编程。(@Ynjxsjmh 投稿)

现在最流行的网站技术栈是什么?(英文)

这是一个论坛的讨论帖,有人问这个问题,下面一堆回答,流行的技术基本上都提到了。

FizzBuzz 的10种语言解答(英文)

FizzBuzz 是考验编程初学者的经典题目,本文用10种语言写出答案,比较各种语言的不同。

Python 的 Dict 数据结构的实现(英文)

本文介绍 Dict 结构的实现原理,从最简单的哈希数组的实现讲起。

《Rust 编程语言》

《Rust 编程语言》的 EPUB 版本下载,可以从这本书开始学习 Rust 语言。

我不喜欢 Python 的原因(英文)

作者谈了他不喜欢的8个 Python 语法。

30秒系列

该系列专门收集30秒以内可以解答的问题。目前有以下6个库:(1)30秒 JS 问题;(2)30秒 CSS 问题;(3)30秒面试问题;(4)30秒 React 问题;(5)30秒 Python 问题;(6)30秒 PHP 问题

学习 C++

CodeCademy 的 C++ 在线课程。

Erlang 语言的20年历史(英文)

2018年12月8日是 Erlang 语言发布20年的纪念日,本文从一个历史参与者的角度回顾了这20年。

为什么使用 F#?(英文)

F# 语言的特点介绍。

C ++ Annotations(英文)

C++ 开源教程,主要针对那些了解 C 语言,希望学习 C++ 的程序员。

Code Combat(游戏)

一款学习编程的网页游戏。(@Ynjxsjmh 投稿)

edabit

收集各种编程语言(JS、Python、Ruby、Swift、PHP、Java、C#、C++)练习题的网站,可以在线编码,然后验证答案。

C++ 程序设计

北京大学的视频课程《C++ 程序设计》,要求学习者具有 C 语言基础。该课程有 B 站镜像。(@lianmt_ _投稿)

Clojure 语言入门教程(英文)

如果你想从头学习 Clojure 语言,可以读这篇教程,内容非常详尽。

使用 Swift 解析 Excel 电子表格(英文)

本文使用 Swift 语言操作 Excel 电子表格。文中解释了 Excel 的格式,理论上其他语言也可以做到。

Python 的数据序列化(英文)

本文介绍 Python 的各种数据序列化方案,包括 XML、JSON、MsgPack、Protobuf、Thrift等。

Go modules by example

一个代码示例库,解释 Go 语言的 module 功能。

C/C++ 面向 wasm 编程---- Emscripten 工程实践

中文开源电子书,大部分还没有写完。本书从 Emscripten 基本用法开始介绍如何使用 C/C++ 开发 WebAssembly 模块。

Python 使用数字与字符串的技巧(中文)

本文是《Python 工匠》系列的第三篇,介绍在 Python 中编写与数字和字符串相关代码的建议与技巧。(作者@piglei_ _投稿)

使用 Pandas 处理 CSV 文件(英文)

Pandas 是一个用于数据操作和分析的 Python 库,本文通过一个范例,介绍如何使用它对 CSV 文件进行数据处理。

符号清单

常用符号的 Unicode 码点、HTML 代码和 HTML 实体写法。(@amenzai_ _投稿)

Erlang by Example

Erlang 语言的入门教程。

需要学习的是编程,而不是编程语言(英文)

作者注意到,编程与编程语言几乎没有关系,学生可能只是在学编程语言,而不是在学编程。

我为什么喜欢 Java 语言?(英文)

一个程序员解释他眼中 Java 语言的优点。

WebAssembly 的未来(英文)

WebAssembly 目前只是 MVP(最小可行产品)阶段,本文介绍了这种编译语言未来可能具有的功能。

Common Lisp 实战教程

开源的 Common Lisp 教程。

奇特的代码缩进风格(英文)

本文总结了几种奇特的缩进方式。比如,每一层缩进都是前两层缩进之和,这就叫做斐波拉切缩进。

如何让不纯的函数变纯?(英文)

通过 JavaScript 代码解释函数式编程的一些基本概念。

learn-python3

Python 3 教程库。

Go 语言与 Rust 语言的比较(英文)

本文谈了这两种语言各自的长处和短处。

Java 线程与 Go 线程的根本差异(英文)

作者注意到一个现象,同一台机器,Java 线程最多只能建几千个,但是 Go 线程可以建数百万个。他研究后发现,这跟线程的内存占用有关,每个 Go 线程竟然只占用4KB。

如何制作命令行动画?(英文)

本文介绍如何使用 ncurses 这个 C 语言标准库,写一个简单的命令行动画。

使用 Qt 为 Python 脚本添加图形界面(英文)

Qt 是一个 C++ 写的跨平台控件库,PyQt 将其移植到 Python,可以很方便地为 Python 脚本添加图形界面。

Python 语言互动教程

通过网页上的互动实例,教授 Python 语法。

C# 语言免费教程(英文)

C#(发音为" C Sharp ")是一种简单,现代,面向对象且类型安全的编程语言。C#源于C语言,与 Java 编程大致类似,主要用来开发在 .NET Framework 上运行的 Windows 应用程序。

Julia语言简介(第1部分)(英文)

Julia 是一种新兴语言,设计目录是兼具 C 的速度和 Python 的灵活语法。本文介绍它的基本语法。

如何使用 PySimpleGUI 开发 GUI?(英文)

PySimpleGUI 是一种为 Python 脚本加入图形界面的简单方案。

如何编译 GIF 解析的 WebAssembly 代码?(英文)

本文以一个 C 语言的 GIF 解析库为例,介绍怎么把它编译成 WebAssembly 用在浏览器。

Common Lisp 的学习途径(英文)

Lisp 是函数式语言的鼻祖,入门难度较高。作者给出了学习途径。

Java 与 Node / JavaScript 的对比(英文)

作者原来是一个 Java 开发者,后来转为使用 Node。他比较了这两种语言。

Go 模块简介(英文)

Go v1.11 引入了模块(module)的概念,主要为了使用语义版本,解决依赖升级的兼容性问题。

Python魔术方法指南(英文)

Python 有大量的魔术方法(方法名前后有两个下划线),本文给出了一个完整的介绍。

OCaml 语言入门教程(英文)

OCaml 是一种通用语言,在函数式编程里面加入了命令式编程和面向对象编程的特性。

Swift 学习材料

免费的 Swift 学习材料,包括视频和代码练习,从零开始教起。

Go 高级编程

开源电子书,涵盖CGO、Go汇编语言、RPC实现、Web框架实现、分布式系统等高阶主题。

提高 Python 程序性能的七个方法(英文)

Python 的长处不是性能,但是采用本文的方法,可以减少一些不必要的资源浪费。

Go 与 Python 的比较(英文)

本文介绍 Go 语言对比 Python 的优点。

Kotlin 标准库的一些优点(英文)

Kotlin 是安卓设备替代 Java 的一种编程语言,本文介绍了它的一些胜过 Java 的地方。

正则表达式中隐藏的陷阱(英文)

从一个失败的正则表达式解释正则引擎的运行原理。

C 程序员应该选择哪一种语言?(英文)

本文从 C 程序员的角度比较 C++、Go、Rust 这三种语言。

Python 面向对象编程(英文)

Python 初级语法教程。

Composing Programs

一本开源电子书,使用 Python 语言实现 SICP 一书的主要概念。

Python 语言如何生成随机数?(英文)

如果你需要在 Python 语言用到随机数,看这篇文章就够了。

Elm 语言学习资源

如果你想学习 Elm 语言,建议参考这个页面列出的各种资源。

WebAssembly 的发展方向(英文)

WebAssembly 是浏览器可以执行的字节码,使得非 JS 编写的程序可以在浏览器运行。它现在的功能非常少,还处在 MVP(最小可用产品)状态。这篇文章介绍了一些很可能采纳的 WebAssembly 提案。

CheatSheet 汇总

这个网站收集各种软件的 Cheat Sheet(常用操作表)。

10本 Java 语言好书

这个书单推荐了10本学习 Java 语言的必读书,前三名是 Effective Java、Clean Code 和 Java Concurrency in Practice。

Python 语言教程:基本统计学指标(英文)

一篇很好的初级 Python 教程,教你用最基本的语法,算出平均数和标准差。

learn-python3

学习 Python 3 的实例教程。通过各种可以在网页运行的小例子,学习 Python 3。

C 语言教程:构建 Lisp 编译器(中文英文

一本免费电子书,从零开始讲解 C 语言,目标是写出一个 Lisp 语言的编译器。

vjtools

唯品会的 Java 编程规范。

Web Assembly 和 Go(英文)

Go 1.11 将支持 Web Assembly,作者尝试用 Go 写了一个 TodoMVC。他的结论是:"WebAssembly是 Web 开发的未来。两年后,Go、Swift、Rust 将占到前端代码的三分之一。

这里还有一篇文章,展示了两个用 Go 语言写的 WebAssebmly demo。

WebAssembly 现状与实战(中文)

WebAssembly 并不是一门编程语言,而是一份字节码标准,需要用高级编程语言编译出字节码放到 WebAssembly 虚拟机中才能运行, 浏览器厂商需要做的就是根据 WebAssembly 规范实现虚拟机。本文重点介绍如何使用 AssemblyScript 来编写 WebAssembly。

Python 类型系统的现状(英文)

众所周知,Python 是动态类型语言,运行时不需要指定变量类型。这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发者指定变量类型。它的主要作用是方便开发,供IDE 和各种开发工具使用,对代码运行不产生影响,运行时会过滤类型信息。

Go101(英文)

*Go 101 *是一本介绍 Go 语言的语法和各种细节的开源电子书,帮助读者深入彻底地了解 Go。

Rust 初学者指南:初识 Rust(中文)

Rust 是一种静态的编译型语言,实现了CC++ 大部分的功能。但是不同于 CC++,Rust 还可以进入 C# 和 Java 长时间统治的领域:自动内存管理。Rust 语言既有低级语言的速度优势,同时又不用手动管理内存,还不存在麻烦的垃圾收集机制。

Python 的数据类型: list 与 tuple 的区别(英文)

Python 语言之中,元组(tuple)和列表(list)都表示数据的序列。最大的区别是 tuple 是不可变的,即不能新增、删除、修改 tuple。

C 语言学习资料

收集各种网上可以免费得到的 C 语言学习资料,不过都是英语资源。

编写 Markdown 解析器(英文)

一组三个部分的系列文章,介绍如何从零开始写一个 Markdown 解析器。作者是用 Ruby 语言实现,但是一些基本知识的介绍跟语言无关,写得挺好的。

Docker and Go(英文)

2013年的时候,Docker 团队介绍他们为什么使用 Go 语言写 Docker。

awesome-ruby-china

Ruby China 论坛的精华贴整理。

Python - 100天从新手到大师(中文)

一本针对初学者的 Python 教程。

Flask 教程的中文版(中文)

Flask 是 Python 的 Web 开发框架。这个教程教你如何用 Python 和 Flask 来创建 Web 应用。

如何用 Python 实现一个简单的 JSON 解析器?(英文)

代码还算简单,可以作为编译器的训练。

C Primer(英文)

一张网页的《C 语言的入门教程》,比较注重内存部分的讲解。写得不是很易读,但是还是可以看一下。

为什么 go 结构是有害的?

多线程编程之中,有一种 go 结构,就是主线程之外分出一个线程,这个线程完成任务以后,再回到主线程。作者认为,这种结构是有害的。他的最精彩观点就是:如果允许使用 go 结构,那么所有的语言功能都可以用这种结构实现,程序很快就会乱做一团。

Python 列表的用法

列表(list)是最基本的数据结构,这篇文章通过实例讲解 Python 如何操作列表。很容易读,就是内容比较浅,只适合刚刚开始学 Python 的初学者。

Rust 的内存安全革命(中译原文

Rust 语言不需要手动管理内容,却也没有垃圾回收机制,这是怎么实现的?本文集中介绍 Rust 最重要的核心特性:内存管理。这是 Rust 的主要创新之一,它的许多独特的特点是基于此的。本文写给不知道 Rust 或刚刚开始学习它的程序员的。对于熟悉 C、C++ 或其他使用手动管理内存以及使用垃圾回收器语言的读者来说会更容易理解 Rust 的特点。

A Gentle Introduction To Rust

Rust 语言入门教程

Linux/Unix

Linux Crontab 生成器

通过 Web 界面生成 Crontab 配置。(@DoctorLai 投稿)

笨办法学 Vimscript

开源的中级 Vim 教程,将 Vimscript 作为一门编程语言,帮助读者掌握。(@douchuan 投稿)

Vim Adventure

通过游戏学习 Vim,看上去比较有趣。(@lenkenlau 投稿)

apt 与 apt-get 的差异(英文)

Debian 系统安装软件包有 apt 和 apt-get 两种命令,本文介绍了它们的异同。

《Linux 命令行(第五版)》

介绍 Linux 命令行基础用法的开源书籍。

SimpleKernel

一个操作系统内核的简单实现,提供了各个阶段完成度不同的内核,可以用来练手和学习。(@MRNIU 投稿)

Linux 桌面设置(英文)

本文介绍了作者如何配置 Linux 桌面开发环境。

cat 命令的历史(中文)

本文介绍了 Unix 系统的 cat 命令的由来和发展。(@pad0van_ _投稿)

让你的生活更轻松的9个 Bash 快捷别名(英文)

本文介绍9个实用的 Bash 函数,你可以参考他的方式,将自己常用的操作封装成函数,然后设置别名。

Linux 内核揭密(中文)

本书是《Linux inside》一书的中译,介绍 Linux 内核知识,从计算机通电讲起,需要 C 语言和汇编语言的知识。(@imilano 投稿)

vimdiff 教程(英文)

vimdiff 是一个显示文件 diff 的命令行工具,本文主要介绍怎么改用其他算法,以不同的格式显示 diff。

放弃 Linux,试试 FreeBSD 或 Illumos?(英文)

本文提出 FreeBSD 或者基于 Solaris 的 illumos 在功能上优于 Linux,更值得尝试。

tldr

Linux 系统的 man 帮助文件通常很冗长,难以查阅,这个项目提供简化的 man 文件。(@chenylvia 投稿)

2018 最佳 Linux 桌面发行版(英文)

本文对三个层次的(初级、中级、高级)用户,介绍最合适的 Linux 发行版,用于桌面系统。对新手有一定的参考价值。

Manjaro 发行版介绍(英文)

Manjaro 是一个新的 Linux 发行版,内核采用 Arch Linux,UI 采用 Deepin,集灵活性和易用的 UI 于一体。

为什么使用 i3 窗口管理器?(英文)

Linux 发行版一般都自带桌面环境,如果你需要的只是一个好用的命令行,那么你可以放弃桌面环境,改用窗口管理器。i3 就是一个很好用的平铺式窗口管理器,本文给出了五个推荐理由。如果你有兴趣的话,这里还有一篇简单教程

Linux 内核与 Mac 内核的差异(英文)

Linux 内核与 Mac 内核虽然都源于 Unix,但是差别较大。Mac 内核继承 BSD Unix,有一些很老的代码,并且做了大量的定制。

命令行脚本的运行原理(英文)

脚本的第一行为什么以 #! 开头?Shell 内部又是如何处理脚本的?

了解 Linux 容器技术(英文)

容器实际上是 Linux 进程的一种特殊封装,这组系列文章介绍了容器的底层知识。

.snap vs .deb(英文)

.snap 是一种新的 Linux 安装包格式,最大特点就是自带依赖,某种程序上很像容器。

XINU

XINU 是普渡大学开发一个教学操作系统,属于简化版的 Unix。

Vi 的来源(英文)

Vi 是 Unix 系统的常见编辑器。它最初是 ed 编辑器的改写,vi 表示 ed 的 visual 模式,后来有人写了增强版 vi improved,这就是 vim 的来历。

Debian 系统小知识

Debian 是历史最悠久、使用最广泛的 Linux 发行版之一。今年8月16日是它25周年的生日,本文介绍一些它的小知识。

XV6

麻省理工学院开发的一个类似 Unix 的教学操作系统。

MacOS 内核与 Linux 内核的差异(英文)

介绍 MacOS 内核的历史演变,跟 Linux 的差异还是很大的。

dd 命令教程

dd 命令通常用来克隆整块磁盘,或者制作 Linux 系统的 USB 启动盘。这篇文章教你怎么用,其实很简单。

Bash 操作指南

收集各种 Bash 常用操作的仓库,比如分割字符串、倒转数组等等。

Unix 就是 IDE(中文)

集成开发环境(IDE)作为文件结构、代码编写、代码维护、测试和排错工具于一体的应用程序,对程序员们非常有价值。这个教程展示如何用 Unix 命令行工具完成 IDE 的功能。

Devuan

现在的各种 Linux 发行版往往都使用 SystemD 管理启动进程和服务,但是很多人仍然想用 init.d。Devuan 就是使用 init.d 的 Debian。

为什么 Linux 用户更喜欢命令行?(英文)

这篇文章讨论了为什么程序员更喜欢使用命令行,而不是图形界面。

tcpdump 示例教程(英文)

tcpdump 是一个 Linux 命令行工具,用来查看 TCP 通信。

初学者在 Linux 上安装比特币完整节点指南(2018年版)(英文)

这篇文章教你如何在没有任何 Linux 经验的情况下,全新安装Kubuntu 18.04系统,并在这个系统安装比特币完整节点,加入比特币网络。

Awk 编程语言(英文)

awk 是 Unix 命令行处理文本的有用工具,这里是1988年出版的 awk 教程。Unix 命令行高度稳定,所以这本教材也没那么过时。

Termux

安卓设备的终端仿真器,用来在安卓设备上模拟 Linux 环境。

谷歌官方的 Bash 脚本风格要求(英文)

Bash 脚本的语法远比编程语言宽松,你很容易写出难以阅读、风格混乱的脚本,可以参考谷歌如何写 Bash 脚本。

PacVim(英文)

通过吃豆子(PacMan)游戏学习 Vim 操作的命令行游戏。

Linux: a Portable Operating System(英文)

这是 Linus Torvalds 的硕士毕业论文,介绍 Linux 系统如何适配不同的硬件架构。这篇论文不涉及代码,只介绍一些概念性的东西,但也不是那么好懂,至少我没有完全看懂。对内核和操作系统感兴趣的朋友,可以读一下。

ed 命令的一种用法(英文)

ed 是 Unix 系统里面最古老的命令行编辑器,但是功能并不弱。这篇文章介绍了一个使用 ed 的简单实例。

软件开发

MIT 许可证逐句解释(英文)

MIT 是常见的开源许可证,但是很多人并没有看过它的条文。本文逐句解释该许可证的每一句话。

超越 DRY(英文)

DRY 原则指的是"不要重复自己",意思是如果代码有重复,就应该把它提炼出来。本文提出,这条原则不应过分严格地使用,有时候代码冗余对软件是有利的。

Cordova,React-Native 和 Swift(英文)

作为一个 iOS 开发者,作者谈了自己使用标题里面的三种技术,开发 App 的感受。

软件创新和软件专利(英文)

本文总结了历史上重大的软件创新,进而提出专利制度不适合软件业,应该废除软件专利。

文档站点生成工具(英文)

本文以 JS 项目为例,介绍各种生成文档站点的工具。

极简主义软件工程师宣言(英文)

作者解释了什么是极简主义的态度开发软件。

新版 Gmail 代码一瞥(英文)

新版的 Gmail 用谷歌自家的 Lighthouse 评估性能,100分里面只得了2分。下载的脚本有6MB,完全渲染需要9秒,其中一半代码可能根本用不到。有人分析了代码,发现过时的早期代码都还在。猜测由于过于复杂,现有团队可能没有能力升级底层,只做了一些样式的更新。

如何撰写技术文档(英文)

技术文档(documents)分成四种:教程(tutorial)、指导(guide)、解释(explanation)和参考(reference)。本文解释了每一种文档的特点,并给出了写作建议。

异常处理是错误的设计(英文)

许多主流语言都采用抛出异常的方式处理错误,这篇文章认为,这种设计是错误的,传统的返回值是更好的方式。抛出异常的主要好处是,可以将业务代码与错误处理代码分开,缺点是它改变了控制流,有点像 goto 语言,可以随意跳转。

如何在应用商店成功?

开源电子书,介绍 App 发布到应用商店,怎样才能取到满意的结果。

如何拿到 Homebrew 的代码提交权?(英文)

作者讲述了,他如何在30分钟内发现 Homebrew 的一个漏洞,从而可以向代码库提交代码。Homebrew 是 Mac 环境最广泛使用的开发工具之一,一旦注入恶意代码,后果非常严重。这个事情提醒我们,使用网上下载的任何代码,都必须非常小心。

逆向工程初学者教程(英文)

向初学者介绍逆向工程的知识。

DiscoverDev.io(英文)

该网站每天列出5~10篇当天值得阅读的软件文章。

软件测试的误区

本文讨论了13种软件测试的错误做法,比如:(1)单元测试与集成测试的比例不正确;(2)太相信 TDD(即写代码之前就写测试);(3)写了大量很慢的测试;(4)手动运行测试;(5)没有把生产环境的错误写成测试等等。

可视化

人大代表的可视化

第十三届全国人民代表大会的代表数据可视化。(@jdk137 投稿)

数据可视化基础

O'Reilly 新书《数据可视化基础》一书的在线预览版。

代码行数的可视化

本文给出一个可视化展示,比较不同软件的代码行数。

14000种鸟叫

谷歌的一个数据可视化项目,将14000种鸟叫进行分类,可以在页面上选择收听这些鸟叫。

deck.gl

Uber 开源的基于地图的数据可视化框架。

D3 In Depth

可视化引擎 D3 的教程。

工作/面试

扼杀应用(英文)

马丁·福勒认为重写重要系统的较好做法,是逐步扼杀它,而不是一次性取代。

如何成为一个优秀工程师(英文)

作者谈了自己在 Stripe 公司担任 SRE (系统可靠性)工程师的经历。

Chris Dixon 的12个创业观点(英文)

Chris Dixon 是一个很有名的美国创业者,在网上分享过很多关于创业的想法。本文介绍他的12个观点。

去瑞典当工程师,是否值得?(英文)

一个中国开发者移居到瑞典当工程师。十年之后,他对自己这个决定的看法,留在国内好,还是去瑞典好?

什么是真正的程序员(中文)

本文是一篇译文,作者仿照《小王子》中的情节,通过小 printf 遇见的不同类型的程序员,最后悟出什么才是真正的程序员!(@LanjianNUll_ _投稿)

rejected.us

该网站收集优秀程序员面试没通过的经历,用来鼓励面试失败者不要灰心。

谷歌的技术文档写作指南(英文)

谷歌的英语技术文档的写作手册,讲解了程序员写文档的各种要求。

Gitlab 手册

Gitlab 将公司的所有内部政策,做成一份2000页的手册,公开在网上,以做到"透明公司"的承诺。

水平看板(英文)

看板(kanban)是管理 issue 的流行方式,一般的看板是垂直的。本文提出,这是因为日本文字是直排的,而看板是日本人发明的,西方文字是横排的,所以看板应该改成水平。

Levels.fyi

每个公司都有自己的内部等级,该网站比较各公司的等级对应关系,收录了北美20多家互联网公司。上图是谷歌、脸书、微软的工程师等级。

创业公司的20个指标(英文)

一位风险投资家的观点,如何判断一家创业公司是否值得投资。

破坏程序员生产力的12件事(英文)

本文列出了影响程序员工作效率的常见情景:工作经常被打断、领导进行微观管理、产品需求不断扩大等等。

ScriptOJ

国人开发的前端题库,可以用作评测系统,带有讨论区。(@LeeChar 投稿)

我为什么起诉 PinScreen?(英文)

一个硅谷工程师起诉了他的华人老板,还制作了一个极其详细的网页。我觉得这招很好,值得借鉴。不管官司能否赢,我要让你曝曝光。

Linux 系统管理的面试题(英文)

这个仓库收集了200多道 Linux 服务器管理的面试题,涉及的面很广,着重考察基础知识。

C++ 编程题

25道 C++ 的编程题,经常用于面试。

Java 面试的算法问题(英文)

本文讲解了 Java 面试经常遇到的各种算法问题。

深度学习/机器学习面试笔记(中文)

这个仓库收集深度学习/机器学习面试经常问到的问题,以及基础知识。

Java 面试知识点

这个库收集各种 Java 面试的知识点。

Google CTF 的试题

这个是试题库,收集了 Google 主办的黑客安全大赛 CTF 的题目。

《技术面试需要掌握的基础知识整理》

技术面试需要掌握的基础知识整理。

Google 面试自学手册

一份爱好者整理的 Google 面试准备指南。

科普/数学

魔方数学(PDF)

麻省理工学院的课程材料,介绍魔方里面包含的数学。

如何获取全球航班的实时位置?(英文)

很多应用可以显示全球航班的实时信息(上图),这是怎么做到的?原来每架民用客机都配备了一个特殊设备,发送自身的各种数据,使用 1090MHz 未加密的无线电频率,因此个人可以接收到这些数据。

AltaVista 的历史(英文)

Statistics Done Wrong

一本介绍统计学常见错误的书籍,可以在线阅读。

条形码如何工作?(英文)

怎么解读条形码,本文还给出了 Python 的扫码实现。

如何计算月相(英文)

地球看到的月亮形状是不一样的,本文通过可视化图形,解释如何通过三角函数计算月相。

线性代数

美国本科生的线性代数教材,免费下载。

磁极的改变意味着什么?(英文)

最近,地球磁极的 N 极突然加速改变,这篇《国家地理》的报道详细介绍了背景知识。

Seeing Theory

概率和统计学入门教程,有网页图形版和免费的 PDF 电子书下载。

电子的轨道(英文)

上面是一张常见的原子模型的图片,但是这张图片其实是错的。电子的运动其实不存在图中那种轨道,所谓电子轨道实际上是电子的能量级,至于电子真正的运行方式,我们并不知道。

《几何原本》在线版

在线还原1847年的欧几里得《几何原本》的彩色版本。(@arbeitandy 投稿)

3Blue1Brown 视频的中文官方账号(视频)

3Blue1Brown 是著名的数学科普视频制作者。(@guerbai 投稿)

月光和放大镜可以点火吗?(英文)

假设放大镜可以无限大,能够聚焦月光以点火吗?答案是不能。

熵是什么?(英文)

一篇科普文章,不仅介绍了物理意义的熵,还介绍社会内部的熵、公司内部的熵等。

本月分子(英文)

英国布里斯托大学化学系制作的网站,每个月介绍一种化合物的分子。

互联网技术的发展

该网站使用彩带图,以可交互的形式展现了互联网技术的发展和演变。(@tifazxy_ _投稿)

线性代数入门

本教程帮助初学者掌握,深度学习所需要的线性代数知识,每一部分都包含代码、示例和图表。

QR 二维码是怎么生成的?(英文)

本文通过一个实例,一步步演示二维码的生成算法。

圆周率 Pi 需要使用多少位小数?(英文)

美国国家航天局计算时,使用 Pi 小数点后15位。这样的话,即使轨道半径是250亿英里,计算误差也小于手指的长度(几厘米)。

等待时间悖论(英文)

公共汽车的间隔时间为10分钟,那么平均等待时间应该为5分钟,但是如果进行抽样,你会发现抽样得到的平均时间为10分钟,这是为什么?简单说,原因就是等待时间越长的人,越容易被抽样到。

微积分很容易

有名的微积分教材,版权已经过期。虽然年代比较久了,但是内容很经典。

进入纯数学

一本英文的纯数学教材,免费下载,从简单的自然数讲起,包括代数、数论、集合运算、概率和微积分等章节。我觉得,至少对于了解数学的符号体系很有好处。

Pokemon Go 为什么成功?(英文)

Pokemon GO 是一个在地图上捕捉口袋妖怪的游戏,初看起来相当无聊,不需要任何游戏技能。但是该游戏取得了惊人的成功,这是为什么?

神奇物理学:树木中的水(英文)

一个有趣的问题是,树木为什么会长得这么高?加州红杉可以长到100米,到底什么决定了树木长高的极限?

有一点是肯定的,树木需要将水从根部运送到顶部。如果树高100米,树木内部有什么机制可以将水运送得这么高?要知道,一个大气压的情况下,吸管最多只能将水吸到10米的高度,要达到100米,树的内部难道存在10个大气压?

FPGA 是什么?(英文)

现在,程序员编程都是针对某种硬件架构,比如 CPU 或 GPU,但是也可以为某种计算定制电路,这种电路专门用来完成这种计算,这就叫做 FPGA。本文介绍 FPGA 的特点,长处和短处。

为什么国际航线的航路如此混乱?(英文)

《南华早报》的长篇可视化报道,解释为什么国际航线弯弯曲曲,不采用最近的直线距离飞行。本文图文并茂的呈现方式,值得借鉴。

阿里巴巴的18位创始人(英文)

1999年,阿里巴巴集团成立,当时共有18位创始人,大部分是马云的同事、朋友和学生。这篇文章汇总了这18个人的公开资料。

现在的歌词变简单了吗?(英文)

简单的歌词通常有重复的内容。这篇文章使用压缩算法,比较现在的歌词与过去的歌词,看看哪个压缩得更小,内容更简单。

PyPy 的十五年(英文)

PyPy 是用 Python 编写的 Python 解释器,这也是它名字的来源。该项目的创始人回顾了走过的十五年。

东京防灾手册

遇到灾难(地震、洪水、大雪等等)怎么办?东京市政府编写的免费电子书,这里是简体中文版的下载。

谷歌放弃的产品

谷歌推出了很多产品,许多后来都放弃了。这个网页列出所有被谷歌放弃的产品,目前有70个。

V8 引擎十周年回顾(英文)

本文是 V8 官方团队写的历史回顾,介绍 V8 每一年在技术上的突破。

戴维·霍夫曼的人生(英文)

本文介绍著名的压缩算法霍夫曼编码的发明人戴维·霍夫曼的故事。

为什么技术有利于暴政?(英文)

《人类简史》的作者尤瓦尔·赫拉利的最新文章。他提出,人工智能有利于政府,可以将权力集中在少数精英手里。唯一可能的解决方法,是寻找分布式的技术方案,防止资源的集中。

计算机之前的计算设备

这是一本免费电子书,介绍计算机出现之前的人类计算设备,从算盘、差分机、穿孔计算机,直到电子计算器。

地中海为什么没有潮汐?(中文)

地中海沿岸,很多城市最热闹的大街就在海边。我一直很奇怪,难道他们不怕涨潮吗?现在终于确认了,地中海几乎没有潮汐。

Cherry 公司的历史(英文)

Cherry 是世界最著名的机械键盘品牌,这篇文章介绍这个品牌的历史。

Android 9.0 特性介绍(中文)

Android 9.0 就是早先推出 Beta 版的 Android P。现在我们知道,P 代表的甜点就是派(Pie)。

图像 EXIF 方向错误(英文)

你有没有遇到,照片在手机里面方向正确,上传到网站却左右颠倒或上下颠倒?这篇文章告诉你为什么。

Meteor Wrongs

华盛顿大学维护的一个网站,收集各种假陨石的照片,并附上说明,讲解为什么某块石头不是陨石。

为什么飞机驾驶舱不使用触摸屏?(英文)

现在的飞机驾驶舱还是使用物理仪表盘,而不是触摸屏,这是为什么?主要的原因还是物理按钮会形成肌肉记忆,比操作触摸屏更快。

少子化和人口老龄化综述(英文)

全世界发达国家都有少子化和人口老龄化的趋势,这篇文章是我看过的最好的这方面的综述,有大量的数据和事实。除了非洲,其他大洲的人口都接近峰值了,将要开始下降,这意味着许多国家将不得不依靠移民,解决本国人力不足问题。

气候变暖的入门介绍(英文)

全球气候正在变暖,这到底是怎么一回事,原因是什么。本文是我读过最好的这方面的入门读物。

高中物理笔记(英文)

高中物理要点讲解,配有插图和动画。

相关系数与余弦相似性(英文)

上面是相关系数的计算公式,这是统计学的基础公式。我一直不知道它是怎么推导出来的,为什么这个公式就能断定两个矢量的相关性,我读过的教科书都不解释这一点。

这里有一篇论文,给出相关系数的十三种解释,但都写得不太容易理解。后来,我又读到了标题里面的那篇论文,指出相关系数就是两个矢量的余弦相似性,所以完全相关是+1或-1,完全不相关是0,一下子就看懂了。

数码照相机如何工作(英文)

本文介绍数码相机 CMOS 芯片的感光原理,彩色的光线是如何变成数字信号的。

气压的知识(英文)

气压就是大气的压力,一个标准大气压等于760毫米汞柱。有的地方气压高,有的地方气压低,这是风形成的根本原因,台风就是巨大的热带低气压。地球上,赤道由于高温蒸发是低压区,极地由于冷空气下降是高压区,这就形成了地球的风带。

Color: From Hexcodes to Eyeballs

人眼如何感受到色彩,读懂这篇文章需要一点物理学知识。

其他

成为亿万富翁的工程师(英文)

79岁的 Herbert Wertheim 拥有大约23亿美元的财富,是美国少数白手起家的亿万富翁。他没有创办过任何企业,纯粹靠投资股票致富。他以前是工程师,靠阅读专利选择投资目标。本文是他的故事。

BeOS 如何输给 NeXT(英文)

1996年,陷入困境的苹果公司决定从外部购买一个操作系统,当时有两个候选者:BeOS 和 NeXT。最后,他们选择了 NeXT,让乔布斯重新回到苹果。本文作者是 BeOS 的开发者,谈了当时的情况。

Windows 10 新版本可以直接访问 Linux 文件(英文)

下一次2019年春季的 Windows 10 更新,将允许 Windows 的文件资源管理器,直接访问和编辑 Linux 文件,不过必须是 Windows Subsystem for Linux(WSL)里面的文件。

WOWA

一个收集免费音乐的网站,可以下载用来制作视频的背景音乐。该网站的目标是成为免费音乐的 Unsplash。

贝佐斯的秘密是如何泄漏的(英文)

亚马逊公司老板贝佐斯的婚外情,被媒体披露,让他陷入了麻烦。媒体如何得知贝佐斯的秘密呢?这篇文章认为,原因是黑客进入了他女友的邮箱,因为该邮箱的密码早就泄漏了。

科技资讯的聚合网站

该网页聚合多个英文科技咨询网站的消息,一个地方就能看到所有资讯。(@shouldsimple 投稿)

Last-Statement-of-Death-Row

美国得州的政府网站,有该州死刑犯的遗言数据库。周刊读者编写了 Python 脚本,去抓取所有遗言,输出 CSV 文件。(@wansho 投稿)

死刑犯的遗言

美国得州政府有一个网页,专门收集犯人执行死刑前的遗言。

戴尔49寸显示器使用感受(英文)

戴尔49英寸超宽显示器的最高分辨率为5120 x 1440,可以分成两个27英寸的16:9视图。作者谈了这台显示器的一些限制,以及使用感受。

回忆理查德·费曼(英文)

理查德·费曼是当代最著名的物理学家之一,作者在1970年代读本科期间,听过费曼的课,并与他有密切的接触。本文回忆了一些往事,主要是费曼对碰到的新问题如何做出反应。

不要忘了控件的背景颜色(英文)

Mac 系统提供深色背景以后,网页如果忘了设置控件的背景色,可能就会出现上图的结果,控件变成了系统默认的深色背景。

数字世界中的纸张----理解 PDF(中文)

一篇面向一般用户的 PDF 格式介绍,覆盖了 PDF 的适用场景、内部结构、常见误区。(@jerrylususu 投稿)

周刊资源整理

读者对这个周刊提到的内容进行了分类整理。(@wanmaoor 投稿)

30年的梦想失败是什么感觉?(英文)

一个发明家受鸵鸟奔跑姿势的启发,发明了一种弹簧鞋。他为这个梦想投入了30年,依然没有成功。现在专利即将到期,30年可能就是白忙一场。

谷歌搜索的运算符(英文)

本文详细介绍谷歌搜索的运算符,用来定制搜索结果。

GitHubDaily

每日不定时在社交媒体推送一批 GitHub 优秀的开源项目给开发者, 帮助开发者们发现当下最火的开源项目。(@PansonPanson 投稿)。

技术的极限

一个国内开发者分享阅读与思考的专栏。(@fanfeilong* *投稿)

10、实时动画将是下一个热点(英文)

随着 GPU 日益强大,实时渲染高质量的 3D 动画已经成为现实,这将改变许多行业,个人将可以制作完整的电影。

我的 NAS 损坏经历(英文)

作者的家用 NAS 的电路板损坏,导致所有数据都无法读出,他不得不把4块 1TB 硬盘插到台式机里面恢复数据。

安全上网指南(英文)

一份安全上网清单,从专业角度告诉你,应该做哪些事情,怎样才能安全地使用互联网。

我如何搭建家庭机房(英文)

作者回顾了六年来自己在家里搭建机房的过程,有大量图片。

电话键盘与计算器键盘为什么不同?(英文)

左侧是电话的拨号键盘,右侧是计算机的输入键盘,它们的排列方式为何不同?

2018年最佳笔记本电脑(英文)

这个网站评选了2018年最好的10款笔记本电脑。

我如何做日本糖果的邮寄服务?(英文)

一个芬兰程序员搬到日本,介绍他如何创造一个向全世界邮寄日本糖果的服务,从而赚到自己在日本的所有生活费。

我的必备 iOS 软件,2018年版(英文)

一个软件工程师介绍自己安装的 iOS 软件。

10年博客的经验(英文)

作者写了10年博客,介绍怎么可以通过博客取得最佳效果。

开源人物肖像

该项目专门拍摄推动计算机革命的开源程序员的肖像。

为什么复印店老板都是湖南人?(中文)

这是一篇2010年的论文,作者是北京大学社会学博士,他经过调查研究后发现,全国70%的复印店老板都是湖南新化人。(@yuanjingsong 投稿)

25 个改变世界的芯片(英文)

本文列出了人类历史上25个最重要的集成电路。

No More goole

该网站收集各种谷歌服务的替代品,让你可以不使用谷歌。(@Ynjxsjmh 投稿)

GNU 壁纸

自由软件基金会为 GNU 操作系统提供的壁纸。

日本农村待售的房屋

看看日本乡下,几万元人民币可以买到的房子一大堆,都是买来就可以直接入住,还带土地产权。

Best-websites-a-programmer-should-visit

该仓库收集对程序员有用的网址,包含问题查找、技术新闻、技术博客、开源社区、英文提升、新奇的玩意儿、视频教程、在线工具等数十个方向的内容。(@qiurenbo 投稿)

《荒野大镖客:救赎2》制作记(英文)

这篇长篇报道介绍 RockStar 游戏公司和它开发的游戏《Red Dead Redemption 2》。

解密英语语法 (中文)

王垠老师的《解密计算机科学》还没写完,又开始写第二本书《解密英语语法》。发布第一章以后,第二天他又把这个计划取消了,"我曾经想过把这写成一本完整的语法书,可是后来发现似乎一篇文章足矣。"(@wblovezqy_ _投稿)

网咯追查俄罗斯间谍(中文)

英国一个民间机构如何使用互联网公开资料,追查两个俄罗斯间谍的故事。

旅行者二号的海报

1977年发射的旅行者二号(Voyager 2)最近飞出了太阳系,成为飞得最远的人类飞行器。美国宇航局为了庆祝这个事件,在官网发布了一系列可以下载的海报。

DOS 游戏博物馆

该站收集 DOS 游戏,可以在线游戏。另外还有一个"中文家用游戏博物馆"。(@Brenner8023 投稿)

Chinese-Podcasts

收集中文播客资源。(@alaskasquirrel 投稿)

3D 病毒浏览器

该网站对各种病毒 3D 建模,可以缩放、旋转观看病毒模型。

一个人如何开发游戏《星露谷》(英文)

畅销游戏《星露谷》(Stardew Valley)作者只有一个人埃里克·巴罗恩,从编码到美术音乐都靠自己。大学毕业后,他没找工作,而是待在公寓写了四年游戏。唯一收入是晚上打工,在电影院门口收电影票。

上线前,唯一测试就是女朋友玩了几天。如果卖不出去(绝大多数游戏的结局),四年就浪费了,幸好成功了。不过,这个游戏借鉴了任天堂的《牧场物语》,有人认为他抄袭了。

FreePizza.io

概念性网站,用户在上面发布自己想要主办的各种活动,赞助商选择活动进行赞助,提供现场的披萨。作为回报,用户在举办活动的过程中,必须在社交媒体上曝光赞助商。

《超人特工队2》的设计过程(英文)

《超人特工队2》的设计师介绍他们如何从现实生活吸收灵感,设计画面,多图。

FPGA 入门网站

FPGA 是可编程的逻辑电路。该站是 FPGA 入门与学习的网站,有关于FPGA概念和原理的介绍,以及一系列的实例。每个实例包含了详细的设计过程与 Verilog 源码,提供源码下载和电路图。(@tifazxy 投稿)

城市模型

使用 WFC 模型生成的城市模型,没有游戏功能,但是可以无限漫游,有飞行模式,只支持 Windows 系统。

大峡谷全景地图

效果不错,但是目前只做了几个点,无法在地图上自由移动,操作也不够便利。

艺术品图像

芝加哥艺术学院的网站提供5万多张艺术品图片,全部都是高分辨率,而且可以免费使用。

工具/网站

资源

粉碎棱镜

该网站收集不对用户进行监控的开源桌面软件。(@Ynjxsjmh 投稿)

Awesome Mac(中文版)

收入各种好用的 Mac 软件。(@jaywcjlove 投稿)

Linux 命令搜索引擎

Linux 命令的搜索入口,提供中文解释。(@jaywcjlove_ _投稿)

Maths is fun

该网站是数学知识科普,覆盖了代数,几何,统计,微积分等领域。有一个爱好者翻译的中文镜像。(@rolitter 投稿)

GetTheFont.com

字体搜索引擎。

DevTube

该网站收集 Youtube 上面的软件开发视频。

木材数据库

该网站收集全世界各种木材的信息。链接给出的是全世界硬度最高的十种木材。

科幻界面

该网站收集科幻影视作品里面出现的计算机界面设计。

纸飞机

收集纸飞机折纸方法的网站,目前有40种纸飞机。

轻量级网站列表

很多网站有一个轻量级版本(lite version),这个仓库收集这些网站的清单。

Youtube 资源

该网站列出分类的最受欢迎 Youtube 频道。如果你不知道 Youtube 上看什么,可以浏览一下这个网站。

Youtube 的教育视频

如果你不知道 Youtube 上可以学什么,就来看看这个帖子。当然,所有资源都是英语的。

JCSprout

一个收集 Java 核心知识的中文库。

OpenStax.org

该网站收集各个学科开源的大学教材。

OSX-KVM

OSX-KVM

通过虚拟机在 Linux 系统安装 MacOS。

Mac 系统免费软件

Mac 的一大烦恼,就是各种软件都要钱。有人整理出了一份 Mac 系统免费软件清单,看看有没有你需要的。

FiraCode

开源的代码字体。

机器人数据库

Robots   The Old Robots Web Site.png | center | 340x363

这个数据库收集人类历史上生产的各种型号的机器人。

Sci-hub 的论文 BT 种子文件

Sci-hub 是最大的免费论文下载网站,几个主要的论文数据库公司都在起诉它。现在,它放出了它的所有论文的 BT 下载种子文件。

黑苹果安装学院

自从苹果采用 Intel 的处理器,OS X 被黑客破解后可以安装在 Intel CPU 与部分 AMD CPU 的机器上。从而出现了一大批非苹果设备而使用苹果操作系统的机器,被称为黑苹果(Hackintosh)。这个仓库收集了各种型号的黑苹果安装方法。

ArchiveOS

收集所有开源的操作系统的网站。

love2.io

一个收集开源书籍的网站。

命令行/脚本

ExplainShell.com

Bash 命令的可视化解释工具。遇到复杂的 Bash 命令,可以输入到这个网站,查看该命令的解释。(@weineel 投稿)

musicbox

网易云音乐的命令行客户端。(@ChungZH 投稿)

hexyl

一个命令行的文件十六进制查看工具。它能够以不同的颜色,表示不同的字节内容。

wee-slack

一个 Slack 的命令行客户端。

python-uncompyle6

Python 反编译工具,可以将 Python 字节码 pyc 文件反编译回源码 py 文件。

LiteCLI

一个 SQLite 数据库的命令行客户端,借鉴了 pgclimycli 项目。

lsix

命令行查看图片的工具。

curl 转换器

一个将 curl 命令转为 Python、Node.js、R、PHP、Go 代码的在线工具。(@zjyfdu 投稿)

Steward

一个类似 Alfred 的浏览器内的命令起动器,支持 Chrome / Firefox 两种浏览器。(@solobat 投稿)

asciinema

一个录制、分享命令行操作的工具,支持Linux, macOS(@kt286 投稿)

juicesync

各种云服务之间转移文件的命令行工具。

aminal

一个使用 Go 语言开发的命令行终端模拟器。

ssh-chat

Go 语言实现的 SSH 服务端,用于登录用户之间的聊天,可以用 ssh chat.shazow.net 命令体验。(@zrt 投稿)

groupImg

groupImg 是一个 Python 脚本,使用 k-means 算法进行图片分类。我试了一下,效果不太好。但是代码简单,可以用作学习参考。

nnn

Linux 系统的命令行文件管理器,号称是最快的文件管理器。

webtty

一个使用 WebRTC 协议分享命令行对话的工具,特点就是点对点的分享,不需要中间代理,而且可以在浏览器之中使用。

ydcv

有道辞典的命令行版本。(@Seven-Steven_ _投稿)

BaiduPCS-Go

百度网盘的命令行客户端,使用 Go 语言开发。(@Seven-Steven 投稿)

ervy

命令行打印图表的库。

autojump

Linux 系统 cd 命令的替代工具,可以记住常用路径,然后只要输入路径的一部分即可。(@wisezhao 投稿)

percollate

命令行抓取网页,生成 PDF 文件的工具。

命令行 2048 游戏

C++ 编写的2048游戏。

nvtop

Linux 服务器的 top 命令可以查看 CPU 的状态。nvtop 命令则是用来查看 NVidia GPU 的状态。

xonsh shell

一个基于 Python 的 Shell,最大特点就是跨平台。

xsv

一个快速、强大的 CSV 文件的命令行处理工具,使用 Rust 语言开发。

Kitty

一个使用 GPU 进行渲染的终端模拟器。理论上,视觉效果将非常顺滑,尤其是长文本滚动和窗口切换。

命令行工具的增强(英文)

这篇文章给出增强版命令行工具的清单,比如 bat 取代 cat,htop 取代 top 等等。

bat

bat 是 cat 命令的加强版,同样在命令行输出文件内容,但是带有高亮和分页,并且与 Git 集成。

Crontab UI

cron 是设置 Linux 系统定时任务的工具,只能在命令行下使用。现在,这个软件为它提供了图形界面。

tizonia

一个命令行音乐播放器,支持 Spotify, Google Play Music, YouTube 等服务。

taskbook

任务管理的命令行小工具。

termgraph

termgraph 是一个命令行脚本,可以在命令行画出柱状图。

Browsh

Browsh 是一个基于 Firefox 的命令行脚本,可以在命令行打开网页,并且渲染出大致的样子。它也可以用作移动端网页浏览的处理方案。

cheat.sh

一个只能在命令行访问的文档查询网站,使用方法就是命令行执行 curl cheat.sh 。

termtosvg

你需要录制命令行操作吗?一般的做法是录制成视频,这个工具让你可以录制成 SVG 动画。

fusuma

直接将 Markdown 文档转换生成幻灯片。

usql

命令行如何执行 SQL 语句?每个数据库都有自己的方式,彼此不同。现在出现了一个工具 usql,提供统一的方式,在命令行下操作不同的数据库。

neofetch

一个显示 Linux 服务器信息的命令行工具。

hiper

一个查看网页加载性能的命令行程序。

wtf

在终端窗口显示控制台面版。

ShellCheck

Bash 脚本的开源语法检查器。

Pyre

Facebook 推出 Python 的静态类型检查工具,有点像 Flowtype 对于 JS 代码的作用。

bat

命令行的 cat 命令用来显示文件的内容,bat 命令完全跟 cat 一致,只有一个地方不一样,就是现在的内容会带有行号和代码高亮。

ReLaXed

一个将 HTML 文件转为 PDF 文件的命令行工具。

React Slate

一个使用 React 组件写命令行脚本的框架。

rebound

有人终于把这个工具写出来了,一旦 Python 或 JS 脚本报错,就到 Stack Overflow 取回报错信息的解释。

web开发

theme-ad

Hexo 的开源博客主题,针对大屏进行过优化。(@dongyuanxin 投稿)

Iconfu

一个可以在线定制、修改图标的网站。

send

Mozilla 的文件上传服务 send.firefox.com 的源码,基于 Nodejs。(@roojay520 投稿)

LitElement

Polymer 项目推出的一个 JS 基类库,基于这个基类,可以方便快速地创建 Web 组件。

Mermaid 在线作图

Mermaid 是一个网页作图的 JS 库,该页面可以实时编辑预览 Mermaid 图形。

api-document

一个 Java Spring 项目的文档处理器,可以自动生成文档。(@liuanxin 投稿)

Sane

一种配置文件格式,基于对 Yaml 和 Toml 格式的改进。

x-spreadsheet

一个基于 Canvas 的 JS 电子表格库。

MazeSolverGenerator

一个在 <canvas> 元素上绘制和解决迷宫的 JavaScript 库。

revery

一个构建跨平台桌面应用的框架,跟 Flutter 的思路有点像,也是内置了自己的控件,保证了跨平台一致的体验。它使用 Reason 语言编写,使用 React + Redux。

rrweb

一个可以录制网页操作的 JS 库,不是录制成视频,而是将用户的每一个操作,录制成可复现的脚本。(@rolitter 投稿)

archivarix

该工具可以用来从 Achive.org 的 Wayback Machine 里面,下载某个网站在指定日期的所有网页。

colorSpace

一个网页工具,可以去除图像里面的用户指定的颜色,对去除背景很有用。

pagedraw

一个 UI 原型设计的桌面软件,可以输出 JSX 代码。

rbx

基于 CSS 框架 Bluma 的 React 组件库。

香港地铁站的颜色

一个 CSS 颜色库,使用每一个香港地铁站的颜色命名 CSS 变量。

sketch-code

人工智能生成前端网页的工具,已经可用了。自动将手绘图,变成 HTML 网页。作者还写了一篇文章介绍原理

C++ 网页编辑器

一个 C++ 代码的网页 IDE。

guns-lite

一个基于 spring boot 的后台管理系统,前台是 Vue.js。(@enilu 投稿)

super-inspire-end

使用 Docker 起一个 Linux 系统的容器,然后就可以在浏览器访问 Docker 里面的 Linux 系统。(@hileix 投稿)

Nginx Office Hours

一个 Nginx 模块,使得网站只能在工作时间访问,一到下午五点,网站就自动下线。

frp

一个反向代理服务器,可以让公网访问架设在内网的服务。(@Seven-Steven 投稿)

MyPerf4J

Java 应用的性能监控工具。(@LinShunKang 投稿)

FlatIcon

一个图标搜索引擎。(@LanjianNUll 投稿)

Fossil 与 Git 的对比(英文)

Fossil 是专为 SQLite 开发的版本管理系统,与 Git 采用不一样的模型,总体上来说,比 Git 更简单。

jetpack

Webpack 的一个封装,目的是简化 Webpack 的配置,让大多数情况下可以不写配置文件,直接使用 Webpack。

countly-server

一个开源的网站统计后端,带有 Web 界面,可以作为 Google Analytics 的替代。

flutter-desktop-embedding

谷歌官方推出的一个兼容库,将 Flutter 框架的 API 用于开发跨平台的桌面应用。文档说,只要把手机应用的源码改改,就能编译成桌面应用。如果可行的话,Flutter 就是全平台框架了。

CDNPerf

这个网站通过请求速度,比较各大 CDN 的性能表现。

Vector Logo Zone

该网站提供 SVG 格式的各种 Logo 文件下载,目前一共有 1,080个公司/项目的3,458个 Logo。

swc

终于有人觉得 Babel 太慢,用 Rust 语言重写了一遍,速度提高了十几倍,一分钟的编译可以缩短为5秒。下一步该是重写 Webpack 吧。

monaco-editor

微软 VS Code 内置的代码编辑器的官方开源版本,可以在浏览器运行。

SVGOMG

一个 SVG 图像的在线代码优化工具,用来降低 SVG 文件的大小。

es_data_export

ElasticSearch 数据导出工具,目前支持json、txt。20亿的索引表中导出4000W数据只用到不到15分钟。(@760515805 投稿)

最小化的 Google Analytics 代码

原始的 Google Analytics 代码是 73KB,可能拖累网页性能,经过简化以后,只需要 1.4KB。当然,功能也简化了,只能统计当前页面访问量。

Debucsser

一个用于 CSS 的调试库,鼠标悬浮的时候,网页会显示区块的 CSS 信息。

Better Dev 周刊

每周一期的开发者周刊(英文)。

theme-bmw

一款 Hexo 的主题,提供更好的用户体验和更清爽的UI设计。(@dongyuanxin 投稿)

element-admin

基于 vue + elementUI 构建的网站管理后台脚手架。(@umi-soft_ _投稿)

puppeteer-firefox

Puppeteer 现在不仅封装 Chrome,还开始封装 Firefox 了,API 完全一样。以后,浏览器自动化可能只用它就可以了,其他库都要被干掉了。

portabletext

一种将 HTML 转成 JSON 格式的规范标准。

kbd-audio

这个库可以根据击打键盘的声音,分析用户的输入内容。

jerverless

jerverless 是一个 Web 服务器,可以将任何语言的程序转为 Serverless 函数,从网络调用。它会把源程序放在 Docker 容器里面运行,然后提供 Web 接口与用户通信。

tabulator

一个生成网页互动表格的 JS 库,提供很多功能。

Dweb.page

这是一个写入 IPFS 的网关,可以匿名分享文件,最大不超过 1GB,有效期三天。这里有一篇介绍

Reactide

Reactide 是 React Web 应用开发的专用 IDE。

htm

JSX 语法必须使用 Babel 才能编译,现在 preact 的作者出手了,写了一个模板函数。只要把 JSX 写成模板字符串,就可以摆脱 Babel 了。

sky

一个形成动态背景的 React 组件。

construct-ui

一个基于 Mithril.js 框架的前端 UI 组件库。

betwixt

一个使用 Chrome 控制台的网络面板,可以查看命令行 HTTP 请求的工具。

sr.ht

一个提供代码基础服务(比如 Git 和持续构建)的网站,界面简单,具有黑客风格。

q

一个对 CSV 文件使用 SQL 数据查询的工具。

snyk

一个在线工具,检查项目的依赖模块有没有漏洞。(@Chorola 投稿)

strapi

一个 Node 的图形界面的 API 生成框架。(@JsonLeex 投稿)

react-text

一个简单的 React 国际化解决方案。

nginxconfig.io

你在网站上填写一些信息,就会自动生成 nginx 的配置文件。(@Syzq 投稿)

WebAssembly Studio

一个 WebAssembly 的在线 IDE,支持 C / C ++ / Rust 程序在线编译成 WASM。该项目由 Mozilla 基金会开发,这里有一篇介绍

Bootswatch

Bootstrap 是最常用的 CSS 框架,这个网站收集免费的 Bootstrap 主题。类似的网站还有 bulmaswatch,收集 Bluma 框架的免费主题。

DropIt

一个浏览器拖放文件上传的 JS 库。

spectre.css

Spectre.css 是一个轻量级,响应式的、现代 CSS 框架。

codeadvice

一个支持在线协同和聊天的网页代码编辑器。

strapdown

Markdown 文件直接部署成静态网站,不需要编译。

GoJS

GoJS 是一个功能丰富的 JS 库,用于在浏览器上实现自定义交互式图表和复杂的可视化图表。 (@nivance 投稿)

stickybits

CSS 的 position: sticky 是一个很有用的设置,但是老的浏览器不支持。这个 JS 库是该功能的垫片库。

JSCity

该工具可以将 JS 项目的源代码显示为一座城市。还有一个类似的项目,专用于 Go 语言。

signale

一个 Node 的日志格式库,自带16个级别,可以定制颜色和 Emoji。

dive

我们知道,Docker 的 image 文件不是一个单一文件,而是包含了许多层。该工具用来查看并定制 image 文件的每一层。

ace

一个可以嵌入网页的代码编辑器,使用 JavaScript 开发。

Captisa

一个创建在线表单的网站,并提供数据储存,可以在后台查看表单收集的数据。

howler.js

支持各种网页音频格式解码的 JS 库。

localroast

一个根据 JSON 文件快速生成 API 的 Web 服务端,主要用了测试和开发环境。

使用 Neovim 进行 JavaScript 开发(英文)

如果你喜欢 Vim 的便捷,又喜欢 VS Code 的图形界面,那么可以试试 Neovim。本文介绍如何配置 Neovim,以适应 JavaScript 开发。

ByteScout SQL Trainer

一个互动式的在线 SQL 语法教程,针对新手。答对一个问题,才能进入下一个。

fastscan

JS 的敏感词过滤库,基于 ahocorasick 字符串匹配算法,浏览器和服务端都可以使用。 (@ctolib 投稿)

Gophish

开源的网络钓鱼框架,用来评估网络钓鱼的风险。它首先导入像素级别的网页钓鱼模板,然后发出钓鱼邮件,并且提供后台,监控结果。

texme

一个自动渲染 Markdown + Latex 文档的 JS 库。

Pandoc 生成静态网站(英文)

Pandoc 是一个文档格式转换工具,本文介绍如何使用它,将 Markdown 源码转成网页,发布到 AWS S3。

irondb

irondb 是一个浏览器 key-value 储存的封装库,把 Cookies、IndexedDB、LocalStorage、SessionStorage 统一成一个接口。它的最大特色就是数据冗余机制,即使某种底层储存机制失效,它可以从其他机制恢复数据。

gRPC-Web

gRPC-Web 是一个JavaScript客户端库,使 Web 应用程序能够直接与后端gRPC服务通信,不需要 HTTP 服务器充当中介。这意味着可以构建真正的端到端 gRPC 应用程序体系结构。

CommentBox.io

一个类似 Disqus 的网站评论服务。

arwes

一个质量不错的科幻风格 React UI 组件库。(@Anderson-Liu 投稿)

svg-inject

这个 JS 库可以将网页上的外联 SVG 图像,变为内嵌的 SVG 图像,从而使得全局的 CSS 样式文件可以对这个图像生效。

WebPerl

通过把 Perl 5 解释器编译成 WebAssembly,从而在网页上运行 Perl 代码。

AWS 的所有 IP 地址

Amazon 公司提供一个 JSON 文件,列出 AWS 服务用到的所有 IP 地址。

AdGuard

美国一家创业公司发布家用 DNS 服务器,可以提供局域网的 DNS 服务,最大功能是自动屏蔽广告。它的软件是开源的,也可以安装在其他硬件上(比如树莓派)。(@ctolib 投稿)

重定向侦测

该网站用来查看某个网址的重定向(redirect)情况。

Lab62

一个简单的人类可读的随机 ID 生成库。

fullPage.js

有的网页每次滚动就是一屏,fullPage.js 就是制作这种效果的一个 JS 库。

flyer-maker

flyermaker 是一个 Java 项目的脚手架工具,支持 SpringBoot 和 SpringFramework,它允许动态生成工程代码和单元测试。(@vancefantasy 投稿)

walt

前端程序员使用 WebAssembly 的最大障碍,就是它要求你深入掌握一门后端语言。于是,就有人尝试把 JS 代码编译成 WebAssembly。Walt 就是这样的一个项目,它可以把 JS 代码稍加修改,然后用 Webpack 打包成 WASM 在浏览器加载。

retejs

可视化编程的 JavaScript 框架。

Mixnode

Mixnode 是一个收集了全世界网页的数据库,允许使用类似 SQL 的语法查询网页。

dbxfs

dbxfs 允许用户将 Dropbox 目录挂载到本地文件系统。

Caddy

Caddy 是一个支持 HTTP/2,自带 HTTPS 功能的跨平台、易于使用的 Web 服务器。

sqlfmt

SQL 语句格式化的在线工具。

Cephes

Cephes 是 JavaScript (准确说是 WebAssembly)的数学函数库,类似 Python 的 SciPy。

ReactXP

微软基于 React Native 开发的框架,沿用了 React Native 的 API,可以用同一套代码编译出 Web、手机 和 Windows 应用。

perkeep

perkeep 是一个开源工具,可以将你的文件同步储存到多个节点,保证不会丢失。它可以用作个人的储存系统,可以看作是亚马逊 S3 服务的本地实现。

v8.dev

v8 引擎新的官方网站。为了体现 v8 高效快速的特点,这个网站故意做得很简单,能够快速加载。

Storybook 图书馆

各大公司的 UI 组件库的 Storybook 展示。Storybook 是一种 React 组件的展示工具。

mdwiki

一个前端脚本,将 Markdown 文件自动转成静态网站。

image-charts.com

该服务通过 URL 接受参数,然后生成图表,以图片形式返回。

PyPy.js

网页上的 Python 运行环境。

JSCPP

有人用 JS 写了一个 C++ 的解释器,可以在 Node 或浏览器直接运行 C++ 代码。

fastgif

一个 webassembly 的 GIF 图片解析库,性能较好。另外还有一个 JS 的 GIF 解析库 gifuct-js,用法较友好。

algo

Wireguard 的自动化安装脚本。

codesandbox.io

codesandbox.io 是一个前端代码的在线编辑器,支持各种不同的框架,可以随时预览代码的运行结果。

Mithril

Mithril 是一个类似 React 的轻量级前端端架,比 React 简单。主要特点有两个:一个是路由、状态管理、fetch 这些主要功能都内置了,二是体积很小(8kb)。

termtosvg

一个命令行操作录制成 SVG 动画的工具,效果不错。

wcpp

Node 脚本里面加载 wasm 模块的处理器,即让 Node 可以方便地运行 wasm 模块。

eno

eno 是类似 yaml、 toml 的一种配置语言。

node best practices

一个收集 Node 最佳实践的仓库。

unicode-style

Unicode 本身就带有粗体、斜体字符(只限于拉丁字母),这个工具就采用这些字符进行文本的格式化。然后,不管复制到那里,文本都带有格式。

dumper.js

一个用于调试时方便打印变量值的 JS 库。

Electron fiddle

一个 Electron 的实验环境。对于小型项目,把代码贴进去,自动编译出一个 Electron 窗口供调试。编辑完还可以把所有代码发上 Github Gist,用来分享。

TinyEditor

一个极小的只有400字节的网页代码编辑器,可以实时查看效果,类似 jsbin 和 jsFiddler,能够作为书签保存。

Publii

一个生成静态网站的内容管理系统,所有管理都在本地进行,生成静态网页之后推送到服务器。

pygmy

Python 语言写的短网址服务,前后端代码都包括。

teleport

团队登录服务器的 SSH 管理工具。

Web 排版资源

该网站针对英文排版,有一个小测试和游戏,讲解如何制作出阅读舒服的网站。

react-particle-effect-button

一个 React 组件,按钮点击后会像粒子状消解。

chroma.js

一个处理颜色的 JS 库。

Glances

Glances 是一个用Python编写的跨平台系统监视工具。它自带 Web UI,可以远程监控。

Malvid

一个构建 Web Components 的工具,并且能够自动生成文档。_ _

jsinspect

软件项目中,同一段逻辑不应该有多个实现。jsinspect 就是用来查出重复代码的工具。

fnMatch

一个让对象进行选择性解构赋值的 JS 库。

Neutralinojs

一个使用系统原生组件开发桌面应用的框架,相比 Electron,好处就是打包出来的体积比较小。

Vialer-js

一个基于 WebRTC 技术的实时通讯平台,可以实现 P2P 的文字聊天、语音和视频对话。

thumbor

有的图片 CDN 可以对图片进行实时处理,允许指定图片的大小和方向。thumbor 就是这样一种图片服务器。

BGP 图像格式

BGP 图像比 JPG 图像有更好的压缩比,但是它的解析需要加载一个前端 JS 库。

v8n

一个浏览器的表单验证库,采用链式写法,特点是易读易写。

Fastpack

又一个新的 JS 打包器问世了,企图替代 Webpack。

asmttpd

asmttpd 是一个用汇编语言写的 Web 服务器,非常小,二进制包只有 6KB,功能比较少,但性能很好。

网站访问统计服务

这篇文章介绍了 Google Analytics 等8个网站统计工具。

daze

强制 TCP 连接经过本地端口的工具。

Feather App

有人为 Flutter 写了 Windows 和 Mac 的渲染器。也就是说,Flutter 写好的 App 不仅能在手机上跑,还能在桌面跑。理论上,Flutter 能在任何操作系统运行,它是一套独立控件,只要能编译出来,就能运行。

vertigo

一个 Go 语言写的博客内核,适合在它的基础上进行开发。最大特点就是所有功能都提供 REST 接口。

Jib

谷歌开源的 Java 应用容器生成工具,不用写 Dockerfile,构造过程中自动生成一个 Docker 容器。

react-beautiful-dnd

Atlassian 公司推出的 React 拖放操作的库。

Clock Shop

这个网站收集各种时钟的代码。

微软 Office365 的 React 组件库

微软正在使用 React 重写 Office365(Office 的在线版),为此专门写了一个 React 的 Office UI 组件库,完全开源。

mkcert

生成本地 HTTPS 加密证书的工具,一个命令就可以生成证书,不需要任何配置。图片是就是它默认为 localhost 生成的加密证书。

lightify

一个反向代理服务器,主要特点是进行了各种优化和压缩,号称可以把网站速度提高3到4倍。

wink-lemmatizer

am, are, is 都会转成 be,这是自然语言处理必须的。

letterpad

Node 语言编写的博客建站工具。

react-native-windows

微软推出的 React Native 渲染器,允许用 RN 编译成 Windows 10、Windows 10 mobile、Xbox one 应用。

vivid.js

一个 SVG 图标库。SVG 图标的最大好处,就是可以定制大小和颜色。

maid

Node 项目的任务运行器,特点是用 Markdown 格式写配置文件。

Lottie

Airbnb 推出的动画效果库,可以把 Adobe After Effects 制作的动画用于 Web、安卓和 iOS。

Reach router

React router 的两位创始人闹翻了,其中一位另起门户,写了一个功能相同的 Reach router

sucrase

一个新的 JavaScript 转码器,号称比 Babel 快20倍。

wired-elements

一个有手绘效果的网页组件库。但是,真正特别之处在于它的底层是 Web components,让我们看到了除了React/Vue之外,还有其他的路。

Chromely

Electron 的挑战者越来越多,这个是 .NET 框架包装的 Chrome 浏览器内核。你现在可以使用 .NET 开发类似 Electron 的桌面应用。

Jadesktop

一个使用 HTML5、CSS、JavaScript 和 Python 开发 Linux 桌面应用的工具。对的,你不需要 Electron。

libui

一个使用 C 语言写的 UI 组件库,具有很好的跨平台性,可以在不同的平台上获得相同的图形界面。

tlsh-js

一个生成字符串哈希的 JavaScript 库。它的特点是,字符串越相似,或者重复同样的模式,生成的哈希也越相似,可以用来计算两个字符串的相似程度。

Feature Icons

一个开源图标库,提供一些 24x24 的常用图标。

ow

JavaScript 语言没有类型检查,运行时无法知道函数的参数是否为指定的类型。这个库就用来检查函数参数的类型,如果不符合要求就抛错。

css-protips

一个收集 CSS 使用技巧的库。

Dojo 2.0

前端框架 Dojo 发布了2.0版,它跟 jQuery 是一个年代的,至今不放弃也算值得尊敬了。我看了一下 API,核心概念也是虚拟 DOM,没看到任何令人眼前一亮的创意,我不觉得它有机会赢得大量用户。

RSUITE

RSUITE(React Suite)是一套用于企业系统产品的 React 组件库。由 HYPERS 前端团队和 UX 团队共同构建,主要服务于公司的大数据产品。

Mustard UI

一个简洁、好看的 CSS 框架,压缩后只有5.28KB。

浏览器工具

operationRecord

浏览器操作录屏工具,提供 Web 管理后台。(@asdjgfr 投稿)

FP-Glossary

一个 Chrome 浏览器插件,每次打开一个空白页,会显示一个函数式编程的概念。

C4

一个在浏览器运行的 C 语言运行时,功能较为简单。(@chai2010 投稿)

Vanilla Dashboard

Chrome 浏览器插件,可以为空白 Tab 设置背景图,显示当前时间。

Vimium

Chrome 浏览器的扩展,使用类似 Vim 的快捷键,通过键盘操作浏览器。(@Seven-Steven 投稿)

twitter2facebook

推特同步到 Facebook 的工具,最大特点是不使用 Facebook API,而是使用无头版的 Chrome。

Polar

离线浏览器,可以保存网页在本地浏览,还可以添加标记和注释。

Colorblindly

Colorblindly 是一个浏览器的色盲插件,让所有图片转成色盲患者看到的样子。上图左侧是正常人看到的世界,右侧是蓝色色盲的人看到的世界。

the great suspender

Chrome 以吃内存著称。这个插件可以冻结不使用的 tab,以释放内存。(@Scheinin 投稿)

如何写一个 Chrome 浏览器的扩展(英文)

想写 Chrome 浏览器的扩展吗?可以看这篇教程,很容易懂。原始代码有一些小问题,我重新做了一个 Demo

ytdl-webserver

搭建 Web 服务下载 Youtube 视频的工具。

nodebook

一般情况下,Node REPL 环境只能在命令行使用。这个工具起了一个服务,让你在浏览器里就能使用 REPL 环境。

Cookiepedia

Cookiepedia 是一个分析 Cookie 的在线工具,可视化显示某个网站留下的所有 Cookie。上图是京东主页设置的22个Cookie。

puppeteer-recorder

Chrome 插件,可以将用户在浏览器里面的操作,自动生成对应的 Puppeteer 脚本。

Puppeteer 网页爬虫和自动化测试教程(中文)

想要学习浏览器自动化的同学,可以看看这篇中文教程。

Favioli

Favioli 是一个很好玩的 Chrome 浏览器插件。它可以将网页的 Favicon 替换成 Emoji。

PublicWWW

一个网页源码的搜索引擎,可以搜索哪些网页使用 react.min.js,或者服务器是 Server: nginx/1.4.7"

SimilarWeb 插件

通过这个插件,你可以在访问某个网站时,直接查看它的统计数据,比如访问量、访问来源、每个用户的浏览时长等等。

StyleURL

我们有时会在 Chrome 浏览器的开发者工具里面,修改 CSS 样式表。这个浏览器插件会比较修改前后的样式表,生成 diff 文件,并存入 GitHub Gist。

Vim in WebAssembly

有人把 Vim 编译成了 WebAssembly,从而可以在浏览器里面使用 Vim 了。网友开玩笑,这样使用 Vim,就不会不知道如何退出了,只要点击浏览器 Tab 页右上角的 x 即可。

sonarwhal

微软推出的开源网页 lint 工具(源码仓库),可以在线扫描网页,提供无障碍、互通性、性能、PWA、安全五个方面的扫描结果,给出改进点。

Remote Browser

一个浏览器自动化框架,可以用脚本控制已经打开的浏览器

软件

Skype for Web

微软发布新版 Skype for Web,可以在浏览器直接拨打世界各地的电话,不用安装应用程序。

Volt

跨平台的桌面应用,将一些常用服务(比如 Gmail、Slack、Twitter、Facebook 等)聚合在一起。

Notebooks_

在线编写 ipynb 文档的工具,可以在网页上直接编写和执行 Python、R、Julia 代码。(@jialigit 投稿)

SpaceVim

一个配置好的 Vim 开发环境,用作编程 IDE。(@wsdjeg 投稿)

MakeCode Arcade

一个基于 Web 的初学者友好的代码编辑器,用于为 Web 和专用硬件创建复古的街机游戏。你可以很容易地制作一款游戏,然后在浏览器里玩,也可以在专用硬件上玩。

Polar

一个桌面的文档管理器,支持 PDF 文档和 HTML 文档,有云端同步、注释、笔记功能。

cim

一个自己实现的即时通讯系统,通过它提供的底层和组件,开发者可以定制自己的即时通讯系统 (@crossoverJie 投稿)。

3DDFA

端到端的三维人脸重建,基于 MobileNet 网络框架,在 CPU 上能达到实时。(@cleardusk 投稿)

Asciidoctor

AsciiDoc 的渲染引擎,还提供 AsciiDoc 格式的教程。

CopyTranslator

PDF 文件即时翻译工具。只要选中 PDF 文件里面的文字,就自动调用谷歌翻译的 API,将其翻译成中文,粘贴出来就是中文。(@chempeng 投稿)

Tox

Tox 是一个开源的实时通信协议,不需要中央服务器,提供多种跨平台的客户端。

trilium

一个开源的笔记软件,可以安装桌面版,也可以自己架设服务器,使用它提供 Web 界面。

notable

一个用 Markdown 语法做笔记的桌面软件。

prime

TypeScript 写的内容管理系统,最大特点是使用 GraphQL API。

Musicoco

一个 Android 音乐播放器,适合初学者借鉴学习。(@DuanJiaNing 投稿)

cow

一个将命令行 socks 代理转为 http 代理的工具。另一个软件 graftcp 也有类似功能。

keyzen

测试打字速度的工具。(@tifazxy 投稿)

Command-Cache

一个桌面软件,可以搜索命令行的操作历史,只在 Mac 和 Linux 上可用。

Source Player

国人开发的 MacOS 视频播放器,特点是点击文本字幕,会显示英语单词的中文解释,英语学习者的小帮手。

ExifShot

一个以美观的形式展示照片 EXIF 信息的在线工具。

cloc

统计代码行数的工具,可以用于压缩文件(如zip tar等),包括空行和特殊字符的处理与统计,生成多种格式的结果。安装简单且轻量,对于阅读源码,分析项目代码的场景非常实用。(@tifazxy 投稿)

GAN Paint

很神奇的工具,可以任意在线重绘建筑物的照片,比如在大门上一划,就变成了墙。麻省理工学院人工智能实验室开发。

writefreely

一个 Go 语言写的博客软件,类似 WordPress,特点是非常简洁。

ISH

ISH 通过使用一个 x86 模拟器,在iOS 设备上面模拟 Linux Shell。

SimpleNote

一个多端支持的笔记软件,开发商就是 WordPress 的开发商。(@JsonLeex 投稿)

微博秒拍视频下载工具

该网站可以解析微博视频的网址,从而下载,但是解析速度较慢。(@DoctorLai 投稿)

Whaler

该软件可以从 Docker image 逆向还原出 Dockerfile。

Photopea

在线图像编辑器,免费,可以替代 PhotoShop 的一部分功能。

HTML-notepad

一个所见即所得的轻量级、跨平台桌面笔记本,大小为 2MB。

NVDA

供盲人使用的网页屏幕阅读器。如果你想体验盲人怎么浏览网页,可以下载这个软件试试看。

haroopad

跨平台的 Markdown 桌面编辑器,多种界面皮肤,支持 vim 快捷键,多格式输出。(@wisezhao 投稿)

Mu

一个针对初学者或儿童的 Python 编辑器。

turtle.audio

一个通过绘制视觉形状,进行谱曲的网页编辑器。

发送短消息的 App

谷歌官方推出了一个网页应用,使你可以在浏览器上远程通过自己的手机发短消息。有人使用了它的底层 API,做成一个桌面 App,可以在电脑桌面上发短信。

Process On

免费在线作图,可以实时协作。ProcessOn 支持流程图、思维导图、原型图、UML、网络拓扑图、组织结构图等。(@wuzhenda_ _投稿)

Sketch 2 Code

微软的在线工具,将手绘草图转成 HTML 代码。(@xiaohesong 投稿)

Screen to GIF

一个可以录制 GIF 图片的开源工具,同时还具备编辑帧、调用摄像头录制、录制画板等功能。(@winshu 投稿)

百度脑图

一个免费、开源、好用的思维导图工具。离线版可以跨平台使用,支持 Windows、Linux、Mac OS。(@topcss 投稿)

微软 Access 的开源替代库

Access 是一种桌面数据库,本文列出了四种开源替代品。

qutebrowser

一个 Qt 库制作的最简化浏览器,内核是 Chromium。最大特点就是它自带命令行,可以完全用键盘操作。

富文本编辑器 Trix

Rails 框架的创造者 Basecamp 公司,开发了一个富文本编辑器 Trix,发布1.0版了。

Airdroid

Airdroid 是一个手机 App,可以将安卓手机与桌面电脑相连,用来传递文件。只需在手机上安装,然后桌面电脑访问一个局域网网址即可。

react-proto

React 应用的原型设计工具。

RSSHub

直接提供各种 Web 应用的 RSS 供订阅。代码开源,可以自己部署。

FetchRSS

将任何网页转为 RSS 的工具。

wexond

一个在 Electron 里面使用 React 开发的浏览器。

fsearch

Linux 的桌面应用,用来文件搜索,可以替代 find 命令。

Anbox

Anbox 是一个 Linux 系统运行安卓应用的容器,理论上可以把安卓应用安装在任何 Linux 系统,但是目前只支持 Ubuntu。

25种团队通信工具

Slack 是目前最流行的团队协同通信工具。这篇文章列出了25种 Slack 的替代品。

Sayonara

一个 Linux 系统的开源音乐播放器。

SnippetStore

一个管理代码片段的桌面 Electron 应用。

Mastodon 简介(英文)

Mastodon 是开源的 Twitter 克隆。它的最大特点是允许多个实例(即服务器)之间的互相联系,比如引用一个用户需要给出他所在的实例地址(@foo@mastodon.instance),有点像 Email 的概念。

Ghost

Ghost 是一个博客软件,类似 Wordpress。最近发布了2.0版,更换了编辑器,并且提供很多新功能。新编辑器的最大特点是增加了 Card,可以嵌入各种资源。

Standups

一个适用于远程办公团队的 App,它要求每个成员每天贴一段自己的视频"露露脸"。

Tox

一个点对点通信的聊天工具,主打信息加密。

Framer

一个用于原型产品 UI 设计的桌面软件,类似 Sketch。

Zotero

管理各种论文和报告的免费桌面软件。

μPad

一个开源的多端笔记本工具,兼容 Evernote。

Video Hub

一个管理本地视频的免费桌面软件,可以预览、搜索、分类各类视频文件。

微软 Whiteboard

微软推出了一个团队协作工具,可以让用户在多种设备上,远程实时分享电子白板。目前,它只有 Windows 10 的客户端,但马上就会推出 iOS 客户端和 Web 版本。

tui.image-editor

开源的在线图像编辑器。

lockbox

Firefox 推出的管理密码的 App,最大特色是浏览器和手机同步。某个网站的密码,浏览器输入了,手机里也能看到,反之亦然,基本上就是有桌面同步功能的 1Password。目前只有 iOS 版本。

Stencila

Stencila 是一套开源的办公套件,只包含文字处理器和电子表格。

微软 Teams

微软的团队协作工具 Teams 推出免费版了,可以聊天、视频、上传文件、内部集成了 Office。

vnote

一个写 Markdown 笔记的桌面应用,跨平台。

tusk

一个非官方的 Evernote 桌面客户端。

MATLAB 处理照片

你还是使用 PhotoShop 处理照片吗?可以考虑试试看 MATLAB。

如何使用 AWS LAMBDA 做一个 YOUTUBE MP3 下载器(英文)

作者做了一个 Bookmarklet。浏览 Youtube 的时候,只要按一下这个书签工具,就会把请求发到 AWS LAMBDA,然后抓取 Youtube 流文件,转码成 mp3 文后以后存到 S3,再返回下载地址。

Drawpile

多人实时协同作画的桌面应用。

AutoCAD 在线版

三月份的消息,今天才看到。AutoCAD 浏览器版上线了,跟桌面版基本一致,背后的技术是 Webassembly。

Winds 2.0

一个开源的桌面 RSS 阅读器。

DocHub

个人写的百度文库的开源仿制品。

PhoenixGo

腾讯公司根据 AlphaGo 的论文,实现的开源围棋软件。

Crunch

一个效果非常好的 PNG 图片压缩工具。

Git/GitHub

GitNews

该网站实时显示 GitHub 趋势、HackerNews 和 Reddit 里面出现的热门代码仓库。

gita

git 命令只能用于一个库,而这个工具可以一条命令管理多个 git 仓库。

GitHub Courses

GitHub 官方的课程中心,教你如何使用该网站的一些功能。

gitsome

一个 Git / GitHub 的命令行客户端,提供强大的自动补全功能。(@ChungZH 投稿)

Project Showcase

该工具根据你的 GitHub 个人项目,自动生成一张个人介绍页面。(@lanffy 投稿)

HelloGitHub

分享 GitHub 上有趣、入门级的开源项目的周刊,帮你找到编程的乐趣。(@521xueweihan 投稿)

Git quick statistics

一个 Git 仓库的命令行统计工具,可以生成当前仓库的统计报告。

devhub

将 GitHub 动态以 TweetDeck 形式展示的开源工具。

Gitless

Git 的版本模型对新手来说,并不是很容易理解。Gitless 试图将 Git 变得更容易理解,它基于 Git,但是用自己的概念和命令替换了 Git,比如把 git add 改成 gl track

Get Github User's Public Events

查看某个用户的所有 GitHub 公开活动。(@able8 投稿)

HelloGitHub

一个分享 GitHub 上有趣的、入门级开源项目的月刊,每个月 28 号发布。(@521xueweihan 投稿)

Git bisect 命令解释(英文)

如果你不知道哪个提交引入了错误代码,就可以使用 git bisect 命令利用二分法,逐步定位到错误的提交。

gitbase

该工具允许使用 SQL 语法查询 Git 仓库。

谷歌的代码托管服务

谷歌重新推出了自己的 Git 代码托管服务,可以建多个私有仓库,免费版一个仓库最多5个用户,带有自动构建和测试。

GitHub Timeline

只要输入用户名,就能看到该用户自己看到的 GitHub 时间线。

GitHub 十大最佳实践(英文)

如何才能最好地使用 GitHub 管理项目,本文提供了具有可操作性的十条建议。

Github 的语义搜索(英文)

Github 正在测试语义搜索,匹配的依据不再是关键字,而是搜索的语义。比如,搜索"连接两个字符串",就会跳出相关的代码。本文介绍实现细节。

lazygit

Git 操作,你喜欢使用命令行还是图形界面?这个项目可以在命令行提供 Git 的图形界面。

diffconflicts

Git 的合并算法是三方合并(three-way),有人认为这种算法并不是最好的。这里是一个两方合并算法,有兴趣的人可以用它替换到 Git 的合并算法。

snibox

开源的代码片段管理的服务,类似 Github Gists。

GitTorrent

一个采用 BitTorrent 协议的 GitHub 替代品,真正做到了无中心。虽然这个项目很久没有更新了,但是可以阅读上面的文章,了解它的原理。

git push --force-with-lease(中文)

不要用 git push --force,而要用 git push --force-with-lease 代替。在你上次提交之后,只要其他人往该分支提交给代码,git push --force-with-lease 会拒绝覆盖。

Gource

Gource 是一个很好玩的可视化工具,可以将代码仓库的历史变成视频,支持 Git 和 SVN 等多种格式。只要在仓库目录执行 gource 命令,就能看到提交历史的视频。

arl

各种语言最受欢迎的项目,按照 GitHub Star 的数量排行。

GitHub Desktop

GitHub 官方的桌面 App。

github-contributions-chart

GitHub 的用户主页有一张图,每一天就是一个小格子。你只要在这一天提交了代码,这个格子就是绿色。但是,这张图只显示过去的一年,即365个格子. 这个工具可以生成从你加入 GitHub 那天起的所有格子。

.gitignore 文件的命令行生成工具

.gitignore 文件设置了哪些文件可以不用进入 Git 版本管理。这个命令行工具可以根据项目类型,自动生成 .gitignore 文件。

Gitea

类似于 GitHub 和 GitLab 的开源项目,用于个人架设 Git 代码托管服务,使用 Go 语言实现。

isomorphic-git

Git 的 JavaScript 实现,这意味着你可以在 JS 里进行 Git 操作,比如从抓取/提交 commit,进行 diff 或 merge 等等。

其他

声音地图

该网站将不同情绪对应的声音,画成一幅地图。鼠标移到每个点上,都会听到声音,比如包含了50%的敬爱、33%的同情、17%满意的声音。

FlightGear

开源的飞行模拟器,可在 Linux,MacOS 和 Windows 上运行。

My Brand New Logo

你提供产品的描述,该网站会自动生成 Logo 图案。

wechat-format

微信公号编辑器,可以把 Markdown 代码转为微信公号格式。(@Y024 投稿)

双拼输入法练习

在线练习双拼输入法的网站,漂亮的键位图,支持多种双拼方案。这里还有一个同类网站。(@pad0van 投稿)

react-meme-generator

图片上加文字的在线工具,支持摄像头,可以制作表情包。(@ lijinke666 投稿)

B4X

Basic 语言开发工具,支持几乎所有平台,源码会被转译为对应平台的代码,比如Java、Objective-C、JavaScript。(@xulihang 投稿)

Image Inpainting

nvidia 官方的在线图像修复,自动生成图像缺失的部分。

Puffer

斯坦福大学的一个视频算法实验项目,可以免费观看美国的电视直播,画质1080P。

如果保留后台进程

手机为了节省电力,会主动杀死后台进程,有时这种行为不是用户希望的。该网站收集各品牌安卓手机的做法,如何关闭主动杀死后台进程这个功能。

TravelAdapter.xyz

该网站收集各国的电压、插头和插座资料。

chinese-programmer-wrong-pronunciation

中国程序员容易发音错误的单词。(@taoweicn* *投稿)

80s TV

一个上世纪80年代的电视的模拟器,可以切换频道和进行其他操作。(@chensiun_ _投稿)

atree

使用正弦函数绘制一棵圣诞树。

semiconductor

谷歌的一个 AI 试验,用户对着摄像头做出指挥的动作,谷歌会识别动作,然后配上乐队的音乐。

remove.bg

去除照片背景的在线工具。

谷歌地图:探索国际空间站

谷歌地图提供了国际空间站的实景地图,可以在里面四处逛逛。

免费图库

图库网站列表,提供免费的商业级高清晰度图片下载。

全球空气污染地图

实时查看全球各个地点的 PM2.5 指数,看上去整个美国西海岸的空气质量,都比较一般。

地球时间线

网页展示地球演化的46亿年。(@chensiun 投稿)

Google Earth Studio

谷歌官方推出的使用 Google Earth 制作 3D 动画的工具。

Comixify

一个波兰团队做了非常好玩的工具,可以把视频自动转成漫画,上图是他们提供的 demo,效果很棒。

WBO

一个多人实时分享的在线白板。

火星全景照片

该网站提供美国的好奇号火星车拍摄的多张火星全景照片,各种不同的地貌,可以360度旋转观看。

Maze Battles

一个在线的迷宫游戏网站,支持多人同时游戏。我玩了一局,还挺有意思。

Earth Wind

一个查看全球风向的网站。

vs

输入一个产品的名字,该工具会根据谷歌的自动搜索提示,生成一张图,上面是经常与该产品进行对比的其他产品。(@nivance_ _投稿)

Yandex Image Translate

俄罗斯搜索引擎 Yandex 的图片 OCR 服务,可以将图片里面的文字翻译成另一种文字。(@holoto_ _投稿)

tus

文件上传到一半突然断了,往往只能重新上传。tus 是一个允许断点上传的轻量级协议,可以从中断的地方继续上传。官方提供开源的客户端和服务端实现。

goboy

跨平台的 Gameboy 游戏模拟器。

Diagram

手绘图,然后保存成 PPT 的在线服务。

jabcode

JAB 码是彩色二维码方案,可以比黑白二维码写入多得多的信息。

lint-md

Markdown 的 lint 工具,检查编写格式是否规范。(@hustcc_ _投稿)

Emoji Builder

自定义 Emoji 图片。(@kt286_ _投稿)

Squoosh

谷歌推出的图像压缩工具,代码开源。官网可以在线压缩图片,而且可以转换图片格式(比如 webp 转 jpg)。(@Seven-Steven 投稿)

Pwned Passwords

该网站收集已经泄漏的密码。你可以输入自己的密码,看看有没有泄漏。(@DoctorLai_ _投稿)

CycleGAN

图像处理软件,可以把马变成斑马、苹果变成橙子。(@nivance_ _投稿)

pydub

可以编辑、修改各种音频文件的 Python 库。

人间乐园

《人间乐园》是15世纪荷兰画家博斯的著名作品,该网站将这幅画进行了多级扫描,做成了类似网上地图那样可以自动移动,多级放大的版本。

console.love

很多公司会在浏览器的控制台隐藏信息,这个网站收集这类有隐藏信息的网站。

如何在安卓手机里清除谷歌?(英文)

本文作者讲述如何将红米手机重刷系统,剔除了所有谷歌相关的服务。

I Ching

有人用中国古代《易经》的六十四卦象,作为二维码的图像,编码和解码库都已经开源了。

互联网的历史文件

互联网早期是没有 DNS 系统的,所有域名与 IP 地址的映射关系都保存在一个 hosts.txt 文件里面,该文件起到 DNS 系统的作用。这个网站收集了各个时期的 hosts.txt 文件。

排版入门(英文)

介绍排版的基本知识。

Osada

一个分布式的社交网络,使用 ActivePub 协议,可以与其他使用该协议的应用交换信息。

色彩测试

这个网站测试你的色彩分辨能力,检测有无色盲。它显示四个色带,每个色带头尾的色块是固定的,中间的色块都打乱了,你必须将它们还原成正确的顺序。

draw.io

在线图表制作工具。(@wisezhao 投稿)

漫威 API

漫威公司将自己的漫画资源做成 API 开放。

Thonny

一个针对初学者的 Python IDE(集成编程环境),界面清爽简单,可用于儿童的编程教育。

Pentax SDK

Pentax 相机开放了 SDK,开发者可以自己编写程序,从 PC 或手机控制相机。

MkDocs

Markdown 文档站点生成器。

EXIF.tools

EXIF 是照片包含的元数据,这个网站可以查看照片的元数据。

markdownlint

JavaScript 语言编写的 Markdown 文章风格检查器。

VPS 搜索工具

通过各种搜索条件,比较不同的主机商品,看看哪个云主机最好用。(@DoctorLai 投稿)

全球假日 API

该数据库覆盖全球180多个国家的公众假期。

OpenCC

中文繁体和简体互相转换的开源工具,C 语言开发的。

Sans Forgetica

一种字体,据称有助于增强记忆。

dbxfs

dbxfs 允许用户将 Dropbox 目录挂载到本地文件系统。

remi

Python 的图形界面库,最大特点就是采用了 HTML 界面。脚本加入这个库以后,可以生成网页接口,使用浏览器访问。

开源火星车

美国航空航天局开源了火星漫游车的设计。完全使用市场上可以买到的材料,爱好者就能做出自己的漫游车。它使用树莓派作为车载控制中心,使用安卓手机或 xbox 手柄遥控。

camelot

从 PDF 文件(非扫描)里面提取表格的 Python 库。

Bing 的图像搜索

与谷歌一样,Bing 也提供图像搜索。但是,它还带有裁剪功能,可以只搜索图像的一部分。

创业公司

一个网页游戏,玩家是创业公司的创始人,模拟经营这家公司,完成各种任务。

wwwbasic

一个可以在网页运行的 BASIC 语言实现。

Snipper.io

一个代码协同的网站。你新建一个代码片段,然后把网址分享给其他人,就可以看到他们的实时编辑。

Carbon

将代码保存成图片的开源服务,可以用来上传到社交媒体。

MS Paint IDE

一个有点玩笑性质的项目。它可以将 Windows 画板程序制作的程序图片,编译执行。

ktmm

有时候,系统通过鼠标判断用户是否走开了。这个工具可以让鼠标保持运行。

bellwoods

一个 13KB 的网页小游戏。

LiteraryClockScreenSaver

Mac 的屏保程序,会显示一段文学作品的段落,里面包含了当前时间。

Hacklily

一个在线编写五线谱的工具,可以实时听到编写的旋律。

reminiscence

一个架设在本地的网络书签管理系统,会自动抓取书签内容,并生成标签和摘要,使用 django 框架开发。

PixelPin

谁说密码一定是字符?这个网站的密码是图片。图片密码有两种用法,一种用法是上传某张图片作为密码,另一种是给定一张图片,你在上面点击几个只有自己知道的位置。

snowy

一个用于操作图片的 Python3 模块。

Reddit Digest

该服务通过 URL 接受参数,然后生成图表,以图片形式返回。

Picular

Picular 会抓取谷歌的图片搜索结果,提取并显示每张图片的主要颜色。上图是搜索"夏天"的颜色

Windows 95 App

Windows 95 被做成了一个 Electron App,可以用来玩 DOS 游戏,底层是 x86 的JS虚拟机。

Windows 2000 的浏览器版

Windows 2000 通过 WebAssembly,可以在浏览器里运行了。

mobiledoc-kit

mobiledoc 是一种数据格式,用于所见即所得编辑器的底层数据。mobiledoc-kit 是这种数据格式的开发工具,开发者可以基于这套工具方便地做出编辑器。

Kakoune

Kakoune 是一个类似 Vim 的编辑器,它的主要特点是更友好合理的命令语法。 Vim 的命令是"动词 + 对象",Kakoune 的命令是"对象 + 动词"。

Symmetry Groups

一个生成对称图形的网站,可以用来生成墙纸。

世界各国护照效力排名

中国护照排在第55位,免签国29个,落地签国49个。

dev.to

dev.to 是一个互联网开发者社区,最近开源了自身的代码,使用 Ruby 语言。你可以用它搭建自己的社区。

Basic Engine

这是一个开源的低成本单板电脑,可以在家里自己制造。

火星车

美国航天局 NASA 开源了火星车的简化版本,它的原型是真正的火星漫游车。据说这个项目全部采用市面能买到的材料,爱好者可以搭建自己的火星车。

ArdaCraft

ArdaCraft 是一个在 MineCraft 里面重现电影《魔戒》的中土世界的项目。

mdx-deck

用于将 Markdown 文件转为幻灯片,并在独立窗口播放的工具。

chinese-xinhua

新华字典数据库和 API,收录 14032 条歇后语,16142 个汉字,264434 个词语,31648 个成语。

superthread

一个在线聊天网站,可以随意新建聊天频道。用户在某个频道里面聊天。

Byte 杂志

Byte 杂志是上个世纪很有影响的 IT 杂志,archive.org 提供免费下载。

机械键盘

这个网站收集各种各样的机械键盘。

Code with Mu

一个 Python 语言专用的代码编辑器。

模拟电路生成器

生成模拟电路的网站。

nouns

一个侦测用户眨眼的装置,让用户通过眨眼控制电脑,可以供霍金那样的用户使用。

prose

Go 语言写的自然语言处理工具,目前只能处理英语。

Nand Game

一个网页游戏,玩家通过组合虚拟电路,组装出一台计算机。

汉字卡片

一个波兰程序员为了学中文,制作了一个工具:输入常用汉字,自动生成学习卡片。

CoNumber

该网站提供50个国家或地区的虚拟电话号码,可以用来接收当地短信或来电。

C/C++ 混淆器

在线的混淆器工具(obfuscator),将 C/C++ 改成混淆难懂的代码。

Deluminate

这是一个 Chrome 浏览器的插件,可以让任何网站变成"夜晚模式"。

Skia 图形库

Skia 是一个由C++编写的开源图形库,能在低端设备如手机上呈现高品质的2D图形。截至2017年,它已被应用于 Mozilla Firefox、Google Chrome、Chrome OS、Sublime Text、Android、Flutter 框架,作为底层图形库。

Heraclos Game

一款类似塞尔达的 WebGL 游戏,制作非常精美,推荐试玩。

风琴音乐

一个美国程序员业余喜欢演奏风琴。他把自己的50多首演奏录音,免费放到网上,我觉得很好听。

docz

有些文档需要有代码效果演示,docz 就是这一类文档的专用生成工具,可以定制页面组件。

openzaly

私有的聊天服务器,即自己搭建类似 QQ 的聊天服务。

抖音机器人

作者用 Python + ADB 做的 Bot。它会自动打开 APP 对视频截图,然后请求腾讯的 人脸识别 API,当颜值大于门限值 BEAUTY_THRESHOLD时,点赞并关注,接着翻到下一页,重复进行该过程。

black

Python 语言的格式要求特别高,因为它通过缩进判断语法区块。现在有了这个工具,就可以自动化格式化 Python 代码,所以你不用担心写出风格一团糟的代码。

Cool Backgrounds

自动生成背景图片的工具网站,现在提供五种风格,每种都可以定制,看上去赏心悦目。

self-driving-toy-car

一个开源的自动驾驶玩具车,在小车上面绑了一个树莓派和摄像头。

Asteriod OS

开源的手表操作系统。

CalVer

语义版本(SemVer)现在很流行,就是根据 API 的变动为版本编号。这个网址提出另一种编号方法:根据日历编号,版本号就是发布日期。很多软件已经在用了,最有名的就是 Ubuntu,它的版本格式是 yy.mm,比如 16.04。

nomulus

谷歌开源自家的顶级域名注册管理系统,也就是 https://registry.google 背后的系统。如果你是域名注册商,可能用得到这个东西。

jGoBoard

我在寻找围棋软件的时候,发现了这个生成互动式围棋棋盘的 JavaScript 库,觉得功能和样式都满足需要。另外,AlphaGo 官网也提供一个棋盘生成器, 基于 WGO.js

IPBlade

有的网络服务限制 IP 地址,比如只有中国的 IP 地址才能使用。这个 Chrome 插件点击一下就可以改变浏览器的 IP 地址,从而绕过这些限制。免费版只能改成美国的 IP 地址。

goproxy

Go 语言实现的高性能 http、https、websocket、tcp、udp、socks5 代理服务器。

ReactOS

ReactOS 是一个开源的操作系统,目标是兼容 Windows,能够运行 Windows 的应用程序和驱动程序。它只能安装在 FAT16 或者 FAT32 的硬盘分区上面。

视频/公开课

黑客工具课程

麻省理工学院的入门课程,介绍 Linux 系统使用者需要掌握的各种基本工具,适合刚入门的初级用户。

中国科大计算机学院课程资源

该仓库收集中科大计算机学院的课程资源, 包括课程电子版书籍、参考书、slides(ppt)、考试试卷、学习心得、一部分习题答案。(@mbinary 收集)

crashcourse.club

Crash Course 是一个 Youtube 的教育频道。B站上面有很多翻译小组。他们组成了一个联盟防止翻译重复,并提供了索引。(@showerc 投稿)

600门在线课程

过去9年,全球超过600所高校,在网上发布了超过10000门公开课程。本文收集了最近发布的600门课程,基本都是英文的。

CrashCourse

Youtube上有一个 CrashCourse 系列课程,介绍各个学科的比较基础的知识,对初学者很有用。不仅有理科的数据、计算机科学,也有生物、历史之类的课程。B 站有 CrashCourse 字幕组。(@chixuchao 投稿)

GEB 公开课程(英文)

《哥德尔、埃舍尔、巴赫》一书的解读。

计算机科学速成课(英文中字)

志愿者从 Youtube 搬到 B 站的40集视频教程。

哈佛大学游戏开发课程(英文)

哈佛大学游戏开发课程 CS50,提供讲课视频、课程笔记、PPT 和作业等资料。

Facebook 的机器学习视频教程(英文)

《Facebook 机器学习指南》是由 Facebook 广告机器学习团队开发的六部分的视频系列。该系列分享了最好的现实世界实践,并提供了如何将机器学习功能应用于实际问题的实用技巧。

哈佛大学《CS109:数据科学基础》的课程资料

1xx 编号的课程都是本科生的基础课程,我看了一下,讲的是 Python、基础的统计学知识和数学模型,提供免费的课程视频和PPT 下载.

GitHub 最受欢迎的20个课程仓库

很多开放课程的仓库放在 GitHub 上面,GitHub 官方列出了最受欢迎的20个仓库。

《Foundations of Data Science》

加州大学伯克利分校的视频课程《Foundations of Data Science》(数据科学基础),现在上网了。报名学习是免费的,如果需要证书才收费。 课程分成三个部分,每个部分需要5个星期学习,都由加大的老师亲自教授。整个课程针对初学者,不需要任何统计学或编程的基础。
第一部分:Python 数据处理
第二部分:抽样推断
第三部分:预测与机器学习