Chrome 将支持跳转到指定文字,而不需要锚点。做法是 URL 里面设置 #targetText=hello%20world ,然后就会跳转到网页的第一个hello
world
的地方。
一个入门教程,需要下载到本地运行。通过一个个练习和演示,帮助读者完成开发实际的 React 应用。
Chrome 浏览器启动的时候,会加载一些系统插件,不会在插件页显示。这里介绍如何查看这些隐藏插件。
这个仓库收集免费的 API,已经有100多个了。
收集前端开发各方面的工具。(@xiaohesong 投稿)
Finally 代码块的解释(英文)
随着 JS 引入 async/await ,开发者不可避免地会更多使用 try/catch/finally ,本文解释 finally 代码块的一些容易混淆的点。
该文介绍了全球25家 CDN 服务提供商,并提供简单的测评。
这篇文章收集了近20个加载页面的优秀动画效果。
一个收集渐变色样式的网站。(@valenzhou 投稿)
HTML 网页的<a>
元素打开的子网页,可以用window.opener.location.replace()
方法替换掉父窗口的网址,这会带来风险。
作者提出,现在那些 MVC 应用其实改叫 MVA 更合适,也就是把 Controller(控制器)改成 Adapter(适配器)。
作者较深入地评论了目前 Flutter 框架开发手机应用的优缺点,总体上还是鼓励大家使用它。
介绍了 Vue.js 的发展历程,以及背后的想法。(@M1seRy_ _投稿)
网页加载谷歌字体的最大问题是加载速度较慢,会影响网页体验。Cloudflare 提供 Worker 方案,可以改写用户的字体请求,从而加速字体加载。
本文收集各种网页入侵的技术,已经收集了十多种。
免费电子书,介绍网页排版的知识。
许多语言可以编译成 JavaScript,从而在浏览器运行,这张列表收集所有已经有编译工具的语言。提醒,这是一张很长的列表。
有人分析了 GitHub 上面56万个项目的 package.json 的依赖项,得到了一些结论,比如过去一年被依赖最多的30个模块。
2018年 JS 开发者的调查报告,主要是各种框架、工具的使用情况。
作者回顾了使用 TypeScript 两年的经历,总体上还是推荐的,也提出了一些值得注意的问题。
本文提出地址输入不应该有两个输入框,而是应该只是一个 textarea。
JavaScript 的对象复制默认是浅拷贝,本文介绍如何深拷贝。
本文介绍如何使用 VS Code 编辑器调试 Node 代码。
开源电子书,介绍如何使用 React.js 和 Node.js 开发 GraphQL 应用。
登录页的各种页面设计,可以免费下载模板。
Prisma 公司推出的免费课程,分成基础知识、前端、后端三个部分。
本文通过一个简单的实例,介绍网页如何加载用 Rust 写的 WebAssembly 模块。
本文介绍如何为自己的应用定制一个调色板,指定各种颜色。
本文使用 Go 语言编写一个非常简单的前端单页应用,然后将它编译成 WebAssembly。所有功能,包括前端组件和前端路由,都是用 Go 写的。看上去,网页编程即将不再是 JS 的专利了。
国人编写的 React 入门教程。(@LeeChar 投稿)
现在的前端开发大量使用单页应用 SPA,使得前端的复杂性急剧增加。这篇文章提出,SPA 可能被过度使用了,大部分情况下,你可能不需要单页应用。
按照主题,收集 JS 学习资源的仓库。
谷歌有一个公开网页,展示使用 IPv6 访问谷歌的比例。最近,这个比率来到历史最高的25%。
网页性能的基础知识,针对初学者,内容比较全。
YAML 格式虽然比 JSON 格式易读易写,但也有很多问题。这种格式其实很复杂,并不是配置文件的理想格式。
本文提出网页的无限滚动并不是一个好的设计,应该限制使用或者停止使用。
评估密码强度的 JS 库,强度越强,密码越不容易破解。
前端框架 React 的路由库教程,提供在线代码运行示例,例子简洁能说明问题。(@Anderson-Liu 投稿)
网页的 <head>
元素可以放置很多东西,本文列出了其中一些主要的内容,可以当作参考手册。
本文介绍 GraphQL 的概念和优点,演示如何用 Express.js 搭建一个 GraphQL 后端。
网页从服务器拿到数据,需要保存下来,但是不想存在 Cookie 和 LocalStorage,怎么办?这篇文章的方法就是动态生成一张 Canvas 的 PNG 图片,将数据存在里面。
Flutter 开发的一个简单教程。
RFC 是很多互联网协议的标准,但是它是文本文件,不太容易阅读。本文介绍 RFC 文档的相关知识。
本文教你如何用 C++ 写一个二进制程序,每当收到通过 CGI 网关发来的调用请求时,自动返回一个网页。其他后端语言也可以用来写网页,原理是一样的。
GraphQL 是客户端请求服务器数据的一种新技术,本文分析的它的优点和局限。
开源电子书,介绍如何编写模块化的 JavaScript 代码。
本文讨论如何使用window.requestAnimationFrame()
测量脚本操作的准确耗时。
本文通过一个很简单的单页应用,演示如何将 Web 应用放到 Docker 里面,然后通过 Docker 运行。
简单的歌词通常有重复的内容。这篇文章使用压缩算法,比较现在的歌词与过去的歌词,看看哪个压缩得更小,内容更简单。
本文列举如何用 date-fns 或者原生方法,取代 moment.js。
本文解释了 Redux 想要解决的问题,而 GraphQL 可以解决同样的问题。但是,该文没有给出细节。
网页可以向第三方站点发出请求,这是 CSRF 攻击的主要原因。这篇文章总结了可能发出第三方请求的七种情况。
Chrome 66 支持 Presentation API,这个 API 允许浏览器定制投射到第二块屏幕的内容,使用脚本进行控制。
<input>
元素的三个属性(英文)HTML 网页的 <input>
元素有几十个属性,本文介绍其中三个开发者比较不熟悉的属性。
该博物馆展出了900多个精心挑选和分类的网站,展示了1995年至2005年间的网页设计趋势。上图是苹果公司2001年的主页。
WordPress 是常用的博客软件,虽然方便易用,但是容易产生安全问题。作者提供了一个脚本,可以将 WordPress 网站的 HTML 页面,部署到 Gitlab Pages 服务,做成一个静态网站。
跨平台桌面应用一般用 Electron 开发,打包体积很大。对于纯静态应用,其实有另一种轻量级选择。
操作系统都有自己的 Webview,Mac 是 webview,Windows 是 MSHTML,Linux 是 gtk-webkit2。这篇文章教你怎么用 Webview,开发一个跨平台的桌面打飞机游戏。
《Node.js 调试指南》一书的开源版。
axios 是一个非常流行的 JavaScript 语言的 HTTP 请求库,本文分析它的内部设计。
本文使用图片对比,列出网页外观设计的15个注意点。上图左侧是改造前的网页,右侧是改造后。
臃肿肥胖的网页会消耗更多能源,释放更多二氧化碳。为了保护地球,我们应该制作简单节能的网页,作者演示了如何制作一个只有 7KB 的 Wordpress 网站。
为什么 Power Assert 是更好的断言库?
本文讲述了作者通过 npm 发布恶意代码的种种手段,非常值得一读。其中有一个技巧,就是package.js 与 package.min.js 的代码不同,恶意代码只放在后者。
中国开发者写的英语专著,介绍前端测试。书放在 Leanpub,付不付费、付多少钱都是自愿的。
本文手把手教你如何写一个最简单的 SVG 动画。
本文教你使用 JS 的 imagemin 模块,压缩图片的大小。
Webpack 是 JS 代码的打包器,现在前端开发的主流工具。Webpack 4 是它的最新版本。
这篇文章教你如何手写一个 SVG 文件,作为网页的背景图案。
介绍 Chrome 开发者工具各个部分的用法。
Webpack 是现在最流行的模块打包器,可以将脚本依赖打包成一个文件。这到底是怎么实现的?如果自己写一个打包器,应该怎么写?
Chrome 可以启用"show saved copy" 按钮。如果网站下线,而本地又有以前访问时的缓存,就能看到缓存的版本。
闲鱼是国内最早使用 Flutter 的 App 之一,这个系列的文章是他们对 Flutter 的使用总结。
Unicode 字符用作 CSS 背景,可以产生一些非常独特的背景。此文还有续篇。
本地开发时,我们常常使用 localhost 访问本地服务,怎样才能生成证书,让 localhost 提供 https 服务呢?
现在的跨平台App开发工具分成两类:(1)容器包了Web View,App实际是一个本地网站;(2)原生控件的跨平台抽象。Flutter走了不一样的路:自己开发了一套原生控件,每个平台实现一遍,然后把渲染引擎(这套控件)打包在每个应用里面,因此性能没有问题,平台差异也很小。
Flutter 是谷歌推出的跨平台App开发工具。只要写一次代码,就能同时编译出安卓和iOS两个平台的App。这篇是一个 iOS 开发者的试用报告,他说他对 Flutter 感到非常满意。
苹果手表的最新系统 WatchOS5,可以在手表上浏览网页。WWDC 2018 放出一段8分钟视频,介绍网页如何适配苹果手表,还算挺简单的。
Puppeteer 是谷歌推出的 Chrome 无头浏览器,是目前的浏览器自动化首选工具。本文介绍了作者的使用经验。
Testcafe 是一个 UI 测试框架,可以在各大浏览器进行 UI 测试。相比 Puppeteer,它提供各种专门针对测试的封装好的方法。
V8 引擎宣布"垃圾清理机制"的重大改进。我们知道,对于大型程序,垃圾清理很影响性能,因为程序必须暂停,让引擎识别哪些内存不再需要。V8 现在允许内存识别不暂停程序,而是并发进行,使得程序停顿时间减少70%左右。引擎如何识别不再需要的对象,希望了解具体实现的朋友,可以看看上面这篇文章。
一本开源的 JavaScript 语言的入门教材。
大家知道,谷歌的材质化组件(Material Design)是 Angular 专用的。社区维护的 React 移植版Material-UI,今天发布 1.0 版,已经完全可用了。以后,React 项目照样可以有官方安卓 UI 的那种材质化效果。
手机怎么显示表格?常见的方法是将表格转为键值对。Lea Verou 给出了两种纯 CSS 的解法,不需要任何多余的 HTML 标签。
一种是使用 text-shadow 属性复制表头,另一个使用 element 方法复制表头。但是,这两种方法都有局限,前者是单元格里不能有换行,后者是只有 Firefox 支持。
本文统计了30个最常见的 HTTP 头信息,逐个讨论哪些是必要的,哪些是没必要的。
目前,使用 Web 技术开发桌面应用,主要通过 Electron。它的缺点是,有时你只是想要在桌面上展示一个网页,不需要跟本地文件系统交互,但是不得不把整个 Chromium 浏览器和
V8 引擎包含在这个应用里面,导致不管逻辑是否复杂,任何一个 Electron 应用都至少有几十MB的大小。
这个项目展示了另一种开发桌面应用的可能。它的原理是,任何操作系统都有自己的 WebView,也就是说可以在应用程序里面调用 WebView 展示网页。那么可以使用 Rust 语言打包
WebView,而 JS 脚本部分交给 Elm 语言生成。由于 WebView 是系统提供的,所以打包出来非常小,一般只有几百KB,资源占用也很少。
React 如何使用各种编程模式?
国产的 HTML5 Canvas 教程。从零基础开始,到Canvas API,再到基本动画与高级动画的实现,还会介绍视音频的处理、移动应用,最后如果有时间会扩展说一说3D、多人应用、游戏制作等。
React 的虚拟 DOM 机制的详细解释, JSX 代码如何变成虚拟 DOM 的数据结构。
每周给你发送一封邮件,介绍本周值得关注的 WebAssembly 消息。
HTML 5.2 新增了 dialog 元素,这个元素将来一定会广泛使用,因为它提供了浏览器原生 Modal 窗口。
React 官方关于 React 原始设计思想的解释。
浏览器里面的远程桌面连接器,可以在网页上登录远程桌面,支持 VNC、RDP、SSH。(@barrer 投稿)
该网站收集 SQL 注入的各种真实案例。
介绍如何搭建 OAuth 服务的电子书。
Docker 镜像中有什么?(英文)
微服务是目前流行的架构,但是会增加复杂性,比如一个 API 变成多个 API(上图)。本文讨论了哪些情况不应该使用微服务。
TOML 格式的介绍、中文文档翻译和解析工具。(@LongTengDao 投稿)
Caddy 是一个新的 HTTP/2 Web 服务器,该网站是志愿者翻译的中文文档。(@comdeng 投稿)
Netlify 的 lambda 函数可能是现在最简单的 Serverless 实现,本文教你如何完成一个 hello world 示例。
一个搜集各种分布式系统的资料库。
长期以来,DNS 请求一直是不加密的,这造成 DNS 可能被监听和篡改。最新的方案是推广 DNS over HTTPS,即对 DNS 请求加密,Mozilla 基金会的这篇文章解释了这是怎么回事。
HAProxy 是一个负载均衡服务器,自带过滤 HTTP 请求的功能,可以防止应用层的 DDOS 攻击,这方面比 nginx 更强大。
本文用一个简单的例子解释什么是 CDN,以及它的好处。
本文介绍亚马逊网络服务(AWS)对用户提供的子网服务。每个购买 AWS 的用户会分配到一个 VPC(虚拟私有云),即一个虚拟子网,比如 10.0.0.0/16,文章介绍与之相关的一些概念和知识。
本文介绍亚马逊网络服务(AWS)对用户提供的子网服务。每个购买 AWS 的用户会分配到一个 VPC(虚拟私有云),即一个虚拟子网,比如 10.0.0.0/16,文章介绍与之相关的一些概念和知识。
10月21日,GitHub 发生了一次持续24小时的故障,本文是该公司的事后故障分析。主要原因是,当天两个数据中心之间的光纤断了43秒,导致主库与从库之间数据不同步,而且没法确定哪一个镜像是数据完整的,不得不从头做数据恢复。
本文介绍如何配置网站,接受 IPv6 的访问。
作者写了一个脚本,查询 whois 数据库里面最老的域名。最早的 .com 域名是 symbolics.com(1985-03-15 注册),最早的 .net 域名是 nordu.net(1985-01-01 注册)。
CSV 和 JSON 两种数据格式的介绍和比较。很多人忽略的一个事实是,最近几年 CSV 的使用量一直在上升。
本文是对上一篇文章的反驳。
流行的观点认为,Kubernetes 是一种过于复杂的技术,只适用于非常大的机器群。我认为这可能是错的,Kubernetes 适用于小型项目。
想要搭建家用储存系统的朋友,可以看这篇教程,使用树莓派和移动硬盘,搭建一个 NAS,操作简单,可玩性高,费用便宜。
该网站提供指导,如何将各种操作系统或设备的 DNS 设为 1.1.1.1。
如果你还在用广告拦截器,Pi-hole 是更好的选择。它是树莓派上的 DNS 服务器,架设在局域网里面,内置黑名单,拦截广告域名的 DNS 请求。从此,局域网所有设备都看不到广告。
本文解释了什么是微服务架构,并且给出了一个简单的示例,在 Docker 里面使用 Flask 框架和 ZeroMQ 搭建一个简单的微服务应用。
ActivePub 是一种分布式的通信协议,本文以 Mastodon 为例,介绍为什么它可以改变互联网。
IPFS 是一个具有 web 接口的分布式数据库,一旦写入,你的内容就将永远存在,且无法修改。本文是一篇很不错的介绍文章, Cloudflare 在文中宣布开通 IPFS 网关服务。如果你有自己的 IPFS 节点,就可以让 Cloudflare 的 CDN 网络分发你的内容。
决定使用 Severless 架构之前,你应该读一下这篇文章,了解这种架构的一些问题。目前,最大的问题是,一旦用了它,就很难再摆脱对服务提供商的依赖。
大数据研究需要数据集,谷歌推出数据集搜索,根据关键词找出相关的数据集。
这是一本互动书籍,免费,帮助读者了解如何使用 SQL 对数据集运行查询。
这篇文章很容易懂,解释怎么使用 serverless 服务,修改 HTTP 回应。这个服务看起来很好用,缺点好像是只有使用 Cloudflare CDN 的网站才能用。
谷歌云服务最近内置了 Puppeteer。本文介绍如何使用这个功能,完成云端的端对端测试。
多个浏览器 tab 同时访问一个网站,服务器如何区分不同 tab?
答案是利用新建 tab 的时候会新建 Session 这个特点,可以创建一个 uuid 写入 sessionStorage,每个请求都附上这个 uuid,就可以区分 tab 了。
《数据挖掘》(第二版)这本书本身没有全部开源,这个网页提供了所有章节的 PPT 教辅材料和实验代码。
Serverless 作为服务导向架构的一种形式,有很多优点。本文介绍了使用这种架构时,应该注意的问题。
WireGuard 内部实现原理的一些介绍,以及与现有方案的比较。
大部分情况下,我们使用市场上现有的 CDN 服务。但是,你也可以自己搭一个,这篇文章教你怎么做。
.ipynb 文件是一种在网页上运行的代码运行时,可以实时看到运行结果,支持40多种语言的运行,包括 Python,R,Julia 和 Scala。它是由 Jupyter Notebook 生成的,本文介绍5种支持 Jupyter 的云服务。
"about: "开头的网址,返回与浏览器本身相关的内容,最常用就是空网址 about: blank
,以及 about:history
。
本文介绍大型网站架构的基本知识。
Swift 语言一般用于开发 iPhone 的 App,现在开始有人尝试将它用于服务端编程。
本文详细指导你搭建一个免费推特机器人,每当有人在推特 follow 你,就会收到一条欢迎私信。
用户发出的请求,很大一部分是缓存服务器响应的。这意味着,不一定需要感染源站,只要能在缓存服务器注入恶意代码,就能达到目的。本文给出了这方面的详细介绍以及实际的案例。
本文测试了几个全球性的公共 DNS 服务提供商,结果第一名是 Cloudflare,第二名是 Google。
本文使用鸽子传信作为比喻,解释 HTTPS 协议。
WireGuard 仍然是一个实验性的新产品,目前只有 Linux 和安卓客户端。
Google 官方介绍 Kubernetes 这个项目是怎么诞生的。
提高 SSH 安全等级的一些知识。本文较难,需要密码学知识。
HTTPS 协议的最新版本 TLS 1.3,最近成为了国际标准 RFC 8446。本文详细介绍这个新协议,包括 TLS 1.2 的缺陷,以及 TLS 1.3 如何解决它。
继内容安全政策之后,现在又多了一个新的 HTTP 头字段 Feature-Policy,用来禁止网页执行某些功能。
作者从用户角度,对谷歌云服务的各个方面进行了评价。
本文介绍如何用 Go 语言实现一个最简单的反向代理服务器。
本文介绍了 Java 语言用在后端开发的一些优势。
收集各大网站使用的技术栈。
DNS 查询都是基于 HTTP 协议的,即使是加密通信,网络服务商依然可以知道你想访问的网站。现在有多种解决方案,本文介绍如何在 Firefox 浏览器打开设置,使得 DNS 协议走 HTTPS 协议。
《网站可靠性工作手册》一书现在免费下载,谷歌官网提供,为期一个月。
这篇文章解释,为什么以后发布应用的时候,不是直接发布在服务器上,而是通过 Kubernetes 发布。
SSH 的作者回忆, ftp 端口是21,telnet 的端口是23,他就挑了中间剩下的22。
大型 Web 应用最关键的就是架构,最难的也是架构。这份教程整理了这方面需要知道的知识。
WAF 是应用程序级别的防火墙,目前主要用在 Web 服务器软件。这篇文章简单介绍了 WAF 的概念。
Kubernetes 是现在最流行的容器集群管理工具,本文给出了一份上手教程,教大家怎么安装和使用它。
为什么是 192.168.1.1 这个地址,而不是别的地址被指定为内网 IP?
有人把 WordPress 编译成了 .Net 代码,运行的时候只需要 .Net 环境,不需要 PHP 了。随着转码器的流行,以后这种事情可能越来越多。你用什么语言可能根本无所谓了,反正都可以转来转去。
一篇比较简单的微服务架构的解释。
静态网站可以免费托管在很多地方,现在又多了一个选择:谷歌的云服务。这篇文章教你怎么做。
网上有很多免费资源,这份书单是学习大数据的指南。
4月8日,清明节后第一个工作日,腾讯云一个重要的棋牌游戏客户突然遭受大流量 DDoS 攻击,棋牌类游戏遭受攻击习以为常,但是本轮攻击流量峰值竟达到了1.23Tbps,刷新国内DDoS攻击最大流量记录。
原因是1752年英格兰进行了日历改革,由于日历算法的差异,导致丢失了9月3日到9月13日的一共12天。为了避免计算天数的误差,SQL Server 就索性把最小日期定为1753年1月1日,更大的日期范围由 datetime2 类型提供。
Channel 是 Web Socket 协议的封装,提供服务器、PC端、手机端的库,做到客户端订阅服务器事件,或者服务器订阅客户端事件。
这篇文章写于2014年,回顾了互联网开发技术的历史。客户端的部分看不看无所谓,服务器的部分写得很好。
socks 是一种服务器的通信代理协议,本文介绍它的一些基本知识。
MySQL 的 utf8 字符集不是真正的 UTF-8,只支持最多三个字节的字符。真正的 UTF-8 可能会出现四个字节的字符。MySQL 从来没有修复这个 Bug,而是使用另外的解决方法:真正的 UTF-8字符集改用 utf8mb4 的名字提供。.
UV、PV、跳出率(bounce rate)这些词到底是什么意思?怎么计算?
devops 是 IT 行业的一个新兴领域,这一类工程师的职务应该怎么分类呢?这篇文章认为可以分成三种职务:运维(Operations)、平台工程(Platform Engineering)、发布管理(Release Management)。
Google Analytics 是网站访问量的监控工具,这篇文章介绍了几个替代品。
如果你想把一个文件放到网上,从此任何人无法删除和屏蔽,别人只要想看就能看到,你可以使用 IPFS。
它是一个分布式网络,采用点对点通信。内部是一个区块链,文件写入以后就没法删除了,然后通过哈希可以读出文件。缺点是本地需要架设一个客户端,资源开销有点大。
这篇短文讨论了 SOA 架构(服务导向架构)和微服务架构的差异,为什么 SOA 会演变成微服务。
我们经常听到 DNS 根域名服务有 13 台,那么是为什么呢? 今天我们来深入了解下。
什么是分布式系统?最简单的定义,分布式系统是一组计算机一起工作,对于最终用户只显示为一台计算机。这些机器具有共享状态,可以处理并发操作,如果其中一台机器发生故障,不会影响整个系统的正常运行。
作者收集的国内各大互联网公司技术架构的资料
Netflix 公司的工程师介绍,他们如何部署代码,提高服务的可用性,比如使用红黑部署、设置部署窗口等等。
现在,各大云服务商都支持 Node.js 主机,本文对比了最大的 6 家服务商各自的优缺点
关系型数据库的操作通常采用 ORM 库,将表格转换成对象。ORM 主要分成两种类型:Active Record 与 Data Mapper。本文讨论这两种模型的差异和适用场景。
Uber 架构师分享在搭建分布式支付系统过程中,遇到的最重要的几个概念:SLA、scaling、Consistency、Durability、Idempotency等。
从数学基础开始教起的图形学教程,包含 C++ 源码。
该网站收集各种数据结构,并将它们用可视化的形式表现出来。
一个直观的算法可视化工具,你可以自由选择自己想学习的算法,每个算法它都清晰描绘了其原理和运作过程。(@nivance 投稿)
使用动画的形式呈现解 LeetCode 题目的思路。(@nivance 投稿)
本文对于计算机科学各门课程的自学,给出了一个完整的方案。
一个匿名作者写的渗透攻击教程,主要用于 Windows 主机。"适用于初中级安全从业人员,乙方安全测试,甲方安全自检,网络安全爱好者等,企业安全防护与提高"。
该网站收集各种树莓派的项目,目前已经有1000多项了。
不要随意放置点文件(英文)
越来越多的软件会将自己的配置文件,以点文件(dotfile)的形式放在用户的主目录下面。作者呼吁不要这样做,而要采用已有的 XDG 目录规范,将配置文件和数据文件放在该规范指定的位置。
Google 开源的 TCP BBR 拥塞控制算法,可以提升网速,适合 CentOS 等内核较老的云主机升级。本文介绍安装方法。(@ansiz 投稿)
Windows有三种常见的安装程序格式: MSI,EXE 和 AppX。微软据称正在考虑推出 MSIX 格式,统一这三种格式。这种格式的最大特点就是,它是一个容器,因此有很多容器的好处。
常见加密算法的实现演示。作者用容易懂的代码、详细的注释帮助读者理解这些加密算法的实现。
免费的加密学入门书籍,介绍基础原理,针对各种水平的读者。
curl 作者写的小册子,介绍 HTTP/3 协议。此前,他也写了介绍 HTTP/2 的小册子。
本文用 JavaScript 语言演示如何写解析器,将代码转为抽象语法树 AST,然后再写编译器,将其转为汇编语言。
密码学开源教材,全面介绍的密钥相关的各种基本知识。
本文教你如何向硬盘的主引导扇区 MBR 写入程序,使得计算机可以在没有操作系统的情况下运行程序,显示 Hello World。
本文介绍了 QUIC 协议的一些优点。作者提出,QUIC 与其称为 HTTP/3,不如称为 TCP/2。
使用通俗的语言介绍 ZIP 算法,文章较长。(@chowc 投稿)
本文统计了世界最大的前50万个网站返回的 HTTP 回应,其中最常见的30种 HTTP 头信息包括了很多错误的用法。
UDP 协议不如 TCP 协议可靠,这是大家都知道,但是这个协议到底丢包率有多高?有人做了测试,结果发现丢包率并不高,主要的问题是数据包的顺序。
www.example.com
和 example.com
哪一个合适作为主站的域名?这里的关键问题是,example.com
设置的 Cookie 可以被子域名读取,并一起发送到服务器。
收集编程竞赛的基础知识、常见题型、解题思路以及常用工具等内容。
该网站使用图形和动画,解释一些常见的算法问题。链接是如何在二叉搜索树里面插入一个值的动画。
网络数据包如果一次发送太多,就会造成网络拥堵;如果发送太少,就浪费了带宽,延长了通信时间。TCP 协议有一个拥堵窗口机制,负责动态调整每次发送数据包的数量。本文通俗地解释了这种算法的细节。
压缩是最常用的功能之一,压缩算法一般分成两大类:基于熵的压缩和基于字典的压缩。本文简单解释这两类算法的原理,以及将它们合在一起的 deflate 算法。
本文回顾了加密发展的几个阶段,每个阶段都给出了 Python 的小例子。
英文的开源电子书,介绍加密背后的数学知识,哈佛大学的本科生教材。
英文的开源电子书,解释了计算机网络的主要原理以及互联网的关键协议,用于高年级本科网络课程。
DHCP 协议全称是"动态主机配置协议",局域网的设备往往使用这个协议获得动态 IP 地址。本文解释这个协议的运作过程。
图解 HTTPS 对话过程,非常形象,每一个字节的含义都讲到了。
美国国家标准技术研究所(NIST)编写的介绍区块链的小册子,针对一般读者,内容比较全面完整。
这个仓库收集 Python 语言实现的各种算法代码。
一个教程库,每一步都有指导,教你怎么写出一个简单的操作系统。
开源教材,介绍计算机的底层实现,写得比较好懂。
免费电子书,如何通过数据进行预测。
一些虚拟私有网络的相关知识。
本文从协议设计的顶层角度,总体上解释互联网协议的设计思想。
这篇文章很不错,用最简单的语言介绍了二叉树和 go,还有大量配图。
一篇针对普通读者的区块链入门介绍,写得比较好懂,还带有互动性的示例。
开源教材,以 Julia 语言的教学,讲解计算机科学的基本概念和原理。
《计算机网络:系统方法》英文原版开源了(下载地址)。
有一句名言:"计算机科学有两大难题:缓存不一致和变量命名。"本文就介绍缓存与源数据不一致的基本知识。
JWL 是一种软件许可证,称为公平世界许可证。采用这个许可证的软件,不道德的行业不得使用,包括烟草,赌博,贩卖人口,奴役,仇恨言论的提供者等等。 它是BSD 3许可证的扩展。
MacOS system6 是 Macintosh计算机的操作系统,1988年由苹果公司发布。这里用虚拟机在浏览器里面启动这个操作系统。
介绍计算机底层知识的免费电子书。
这组系列文章介绍脚本语言的运行虚拟机(VM)怎么写。
Unicode 里面有一些不存在的汉字,称为"幽灵文字"。它们是怎么进入标准的?原来,1978年,日本制定本国编码标准 JIS 时有一些错误,创造出这些文字,后来 Unicode 又全部继承了 JIS。
作者给出了各门课程的参考书单和学习资源,以及一些建议。
开源电子书,从零开始讲解如何写一个8080处理器的模拟器。
如果不用递归,直接算出斐波那契数列的任意项,应该怎么计算?
Hash 算法的概念性介绍。
开源电子书,从零开始介绍汇编语言,读者必须懂一点 C 语言。内容很全,也非常厚。
作者认为应该避免使用 PDF 格式。一般情况下,HTML 格式是更好的选择。如果要求保证精确的打印效果,可以使用压缩的 Postscript 格式。
图(graph)是一种数据结构,由点(vertex)和边(edge)组成。本文介绍图结构的算法基本知识。
开源电子书。如何写一个解释器,其实也就是如何自己设计并实现一门语言。
一本开源的初级命令行教程,特色是配有大量的手绘图。
Python 的默认排序算法是 Timsort,它的表现据说好于快排(quicksort)。本文解释了这种算法的基本原理。
一份简单的教程,如何获得局域网路由器的 root 权限。
一份很好的数据结构教程,图文并茂,简明扼要,列出每种结构的定义和优缺点,非常适合初学者。
一篇很有意思的文章,讨论如果不使用 if ... else 语句,应该怎么写代码。他的意思是,某些情况下 if 属于误用,会造成代码冗余或不利于阅读,这时应该减少 if 的使用。
这篇文章介绍什么是 GPU,为什么不用 CPU 进行图形渲染,GPU 的基本概念等等。
这篇教程详细介绍一种手写识别算法,并且附有多个可视化示例可以操作。这篇的英语看起来有点费劲,但是耐心看一定可以看懂,因为解释得很好,也没有复杂的数学。
这篇文章针对初学者,介绍 Array、HashMaps、Sets、Linked Lists、Stacks、Queues 这六种数据结构的 JavaScript 实现。
这是开源教材,介绍密钥加密的知识。因为是研究生教材,内容不容易。
矩阵乘法需要计算每一行与所有列的乘积之和,如果矩阵很大,乘法计算是非常耗时的。这篇文章讨论如何实现一个高性能的矩阵乘法算法。
这个仓库收集了30多种算法的 JavaScript 实现。
如何利用马尔可夫链建立一个决策模型,文章较好懂。
下面是最简单的马尔可夫链图解。系统包括 A 和 B 两个状态。一共有四种转化路径:A 到 A、A 到 B、B 到 A,B 到 B。每种路径的可能性都是 50%,就得到了随机的运动轨迹。一个通俗的实例是,每天有"晴天"和"下雨"两种天气,天气变化的概率是50%,那么马尔可夫链就可以生成一个未来一周天气的模型。
收集各种算法的代码实现的仓库。
SHA256 是目前常用哈希算法里面最可靠的,Git 和比特币都依赖这种算法。本文解释了它的实现。
本书是加州大学伯克利分校《数据科学导论》课程的教材,现在开源了。
一个概率论的概览性介绍,每个章节后面有一个 R 语言的小例子。
回归(regression)是数据处理的常用技术,用来找出数据的模式。本文介绍数据回归的15种拟合。
图理论(graph theory)是重要的数学分支,在数据处理领域有着重要应用。这个教程采用可视化库 D3,把图理论变成了可视化互动教程。
位运算(bit operation)的用途,有很多例子。
K 线图的机器学习(英文)
K 线图经常用于股市预测,如果使用人工智能分析 K 线图会怎样?有人真的搞了一个机器学习模型,用无数 K 线图训练,然后去预测股价。结果非常糟糕,亏损严重,我们终于有了一个人工智能无能为力的领域。
亚马逊公司推出了官方的机器学习课程,学完以后,还能参加付费考试,通过者可以获得 AWS 机器学习认证。
本文用浅显的语言介绍,如何写一个简单能够识别热狗图像的 Sketch 插件。(@Anderson-Liu 投稿)
本文列出初学者学习自然语言处理(NLP)时,比较有用的一些资源。
老照片着色的机器学习库。
一个基于 TensorFlow.js 的机器学习封装库,提供方便易用的 API,可以用于图像分类和视频分类等常见用途。
哈佛大学深度学习开源教程,附有代码实例。
本文介绍了机器学习最基本的十种算法,比如线性回归、朴素贝叶斯、KNN聚合等。
开源电子书,通过真实案例掌握机器学习。
针对新手的 TensorFlow 教程。
一个使用深度学习,从嘴唇变化识别语言的库。
本文介绍如何使用 TensorFlow.js 进行深度学习,自动玩 Chrome 浏览器的恐龙跳跃游戏。
开源电子书,尝试用通俗的语言解释机器学习。
本文比较了谷歌、微软、亚马逊、IBM 四家公司的人脸检测服务的准确性。
fast.ai 免费的深度学习课程。
这个培训课程帮助学员深入理解机器学习的概念,技术和数学框架。一共30个讲座,包括一整套课后作业。
上面这幅欧洲油画是什么时候画的,15世纪还是17世纪?
这种问题恐怕要熟悉欧洲艺术的专家才能回答。现在,有人写了一个神经网络教程,介绍如何用算法判断油画的年代。
谷歌推出的机器学习各个领域的初学者指南,目前只有两个专题。
这本书(Paradigms of Artificial Intelligence Programming)是人工智能领域的名著,Peter Norvig 写于 1992 年,探讨 Lisp 语言在这方面的应用,现在开源了。
一款入门级的人脸、视频、文字检测以及识别的项目。
这里列出50个可以用来训练模型的免费大型数据集。
一个帮助玩家学习人工智能的游戏。你扮演一个人工智能专家,在游戏的引导下解决各种问题。
深度学习是目前很热名的主题,各大网校都有这方面的课程。这篇文章比较了美国三大教育平台的深度学习课程:Coursera、Udemy 和 Udacity。
作者使用 TensorFlow.js,让程序自动完成 Chrome 浏览器的内置小游戏"恐龙快跑"。
决策树模型(Decision Tree)是最简单的机器学习模型,也最容易理解。当决策受到多个因素影响时,这个模型相当有用。
吴恩达(Andrew Ng)是斯坦福大学的教授,人工智能领域的权威,曾经担任过百度的首席科学家。
他的新书《Machine Learning
Yearning》现在可以免费订阅。今后几个月里面,他每完成一个部分,你就会得到邮件通知,可以立即读到。根据说明,这本书大概100页左右,每章的长度很短,非常容易阅读。内容主要关于如何实现你自己的机器学习项目,重点不是算法,而是如何运用算法到真实项目。
通过示例学习 Go 语言的教程。
加州大学伯克利分校的 SICP 的 Python 版教程中译。(@Ming-Lei 投稿)
我爱 Ruby(英文)
Ruby 语言的开源入门电子书。
一个很简单的入门级教程,但是 Python 3 的最基本语法都提到了。
加州大学伯克莱分校以 SICP 为范本,使用 Python 3 语言解释编程原理的教程。
麻省理工学院以前用著名的 SICP 作为编程教程,但是该书使用 Scheme 语言作为示例,再加上出版多年,现在已经不用了。作为改进,2001年出版了《如何设计程序》这本教材(缩写为 HTDP),2018年又出版了该书的第二版,使用 Racket 语言的图形界面 DrRacket 作为示例,内容全部开源。
该网站收集 Go 语言的各种应用实例。
一份简短的入门课程,直接在浏览器里编写代码,学习 JavaScript 语言的基本语法。
Python 算法与数据结构(第二版)
开源教程《Problem Solving with Algorithms and Data Structures Using Python》。网上有网友翻译的中文版。
本文中,我们评选出12个热门网站,你可以通过玩游戏学习编程。(@Ynjxsjmh 投稿)
《Rust 编程语言》的 EPUB 版本下载,可以从这本书开始学习 Rust 语言。
该系列专门收集30秒以内可以解答的问题。目前有以下6个库:(1)30秒 JS 问题;(2)30秒 CSS 问题;(3)30秒面试问题;(4)30秒 React 问题;(5)30秒 Python 问题;(6)30秒 PHP 问题。
CodeCademy 的 C++ 在线课程。
C++ 开源教程,主要针对那些了解 C 语言,希望学习 C++ 的程序员。
一款学习编程的网页游戏。(@Ynjxsjmh 投稿)
收集各种编程语言(JS、Python、Ruby、Swift、PHP、Java、C#、C++)练习题的网站,可以在线编码,然后验证答案。
如果你想从头学习 Clojure 语言,可以读这篇教程,内容非常详尽。
本文使用 Swift 语言操作 Excel 电子表格。文中解释了 Excel 的格式,理论上其他语言也可以做到。
本文介绍 Python 的各种数据序列化方案,包括 XML、JSON、MsgPack、Protobuf、Thrift等。
一个代码示例库,解释 Go 语言的 module 功能。
中文开源电子书,大部分还没有写完。本书从 Emscripten 基本用法开始介绍如何使用 C/C++ 开发 WebAssembly 模块。
本文是《Python 工匠》系列的第三篇,介绍在 Python 中编写与数字和字符串相关代码的建议与技巧。(作者@piglei_ _投稿)
Pandas 是一个用于数据操作和分析的 Python 库,本文通过一个范例,介绍如何使用它对 CSV 文件进行数据处理。
Erlang 语言的入门教程。
作者注意到,编程与编程语言几乎没有关系,学生可能只是在学编程语言,而不是在学编程。
一个程序员解释他眼中 Java 语言的优点。
WebAssembly 目前只是 MVP(最小可行产品)阶段,本文介绍了这种编译语言未来可能具有的功能。
开源的 Common Lisp 教程。
本文总结了几种奇特的缩进方式。比如,每一层缩进都是前两层缩进之和,这就叫做斐波拉切缩进。
通过 JavaScript 代码解释函数式编程的一些基本概念。
Python 3 教程库。
本文谈了这两种语言各自的长处和短处。
作者注意到一个现象,同一台机器,Java 线程最多只能建几千个,但是 Go 线程可以建数百万个。他研究后发现,这跟线程的内存占用有关,每个 Go 线程竟然只占用4KB。
本文介绍如何使用 ncurses 这个 C 语言标准库,写一个简单的命令行动画。
Qt 是一个 C++ 写的跨平台控件库,PyQt 将其移植到 Python,可以很方便地为 Python 脚本添加图形界面。
通过网页上的互动实例,教授 Python 语法。
C#(发音为" C Sharp ")是一种简单,现代,面向对象且类型安全的编程语言。C#源于C语言,与 Java 编程大致类似,主要用来开发在 .NET Framework 上运行的 Windows 应用程序。
Julia 是一种新兴语言,设计目录是兼具 C 的速度和 Python 的灵活语法。本文介绍它的基本语法。
PySimpleGUI 是一种为 Python 脚本加入图形界面的简单方案。
本文以一个 C 语言的 GIF 解析库为例,介绍怎么把它编译成 WebAssembly 用在浏览器。
Lisp 是函数式语言的鼻祖,入门难度较高。作者给出了学习途径。
作者原来是一个 Java 开发者,后来转为使用 Node。他比较了这两种语言。
Go v1.11 引入了模块(module)的概念,主要为了使用语义版本,解决依赖升级的兼容性问题。
Python 有大量的魔术方法(方法名前后有两个下划线),本文给出了一个完整的介绍。
OCaml 是一种通用语言,在函数式编程里面加入了命令式编程和面向对象编程的特性。
免费的 Swift 学习材料,包括视频和代码练习,从零开始教起。
开源电子书,涵盖CGO、Go汇编语言、RPC实现、Web框架实现、分布式系统等高阶主题。
Python 的长处不是性能,但是采用本文的方法,可以减少一些不必要的资源浪费。
本文介绍 Go 语言对比 Python 的优点。
Kotlin 是安卓设备替代 Java 的一种编程语言,本文介绍了它的一些胜过 Java 的地方。
从一个失败的正则表达式解释正则引擎的运行原理。
本文从 C 程序员的角度比较 C++、Go、Rust 这三种语言。
Python 初级语法教程。
一本开源电子书,使用 Python 语言实现 SICP 一书的主要概念。
如果你需要在 Python 语言用到随机数,看这篇文章就够了。
如果你想学习 Elm 语言,建议参考这个页面列出的各种资源。
WebAssembly 是浏览器可以执行的字节码,使得非 JS 编写的程序可以在浏览器运行。它现在的功能非常少,还处在 MVP(最小可用产品)状态。这篇文章介绍了一些很可能采纳的 WebAssembly 提案。
这个网站收集各种软件的 Cheat Sheet(常用操作表)。
这个书单推荐了10本学习 Java 语言的必读书,前三名是 Effective Java、Clean Code 和 Java Concurrency in Practice。
一篇很好的初级 Python 教程,教你用最基本的语法,算出平均数和标准差。
学习 Python 3 的实例教程。通过各种可以在网页运行的小例子,学习 Python 3。
唯品会的 Java 编程规范。
Go 1.11 将支持 Web Assembly,作者尝试用 Go 写了一个 TodoMVC。他的结论是:"WebAssembly是 Web 开发的未来。两年后,Go、Swift、Rust 将占到前端代码的三分之一。
这里还有一篇文章,展示了两个用 Go 语言写的 WebAssebmly demo。
WebAssembly 并不是一门编程语言,而是一份字节码标准,需要用高级编程语言编译出字节码放到 WebAssembly 虚拟机中才能运行, 浏览器厂商需要做的就是根据 WebAssembly 规范实现虚拟机。本文重点介绍如何使用 AssemblyScript 来编写 WebAssembly。
众所周知,Python 是动态类型语言,运行时不需要指定变量类型。这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发者指定变量类型。它的主要作用是方便开发,供IDE 和各种开发工具使用,对代码运行不产生影响,运行时会过滤类型信息。
*Go 101 *是一本介绍 Go 语言的语法和各种细节的开源电子书,帮助读者深入彻底地了解 Go。
Rust 是一种静态的编译型语言,实现了C
或 C++
大部分的功能。但是不同于 C
和 C++
,Rust
还可以进入 C#
和 Java 长时间统治的领域:自动内存管理。Rust 语言既有低级语言的速度优势,同时又不用手动管理内存,还不存在麻烦的垃圾收集机制。
Python 语言之中,元组(tuple)和列表(list)都表示数据的序列。最大的区别是 tuple 是不可变的,即不能新增、删除、修改 tuple。
收集各种网上可以免费得到的 C 语言学习资料,不过都是英语资源。
一组三个部分的系列文章,介绍如何从零开始写一个 Markdown 解析器。作者是用 Ruby 语言实现,但是一些基本知识的介绍跟语言无关,写得挺好的。
2013年的时候,Docker 团队介绍他们为什么使用 Go 语言写 Docker。
Ruby China 论坛的精华贴整理。
一本针对初学者的 Python 教程。
Flask 是 Python 的 Web 开发框架。这个教程教你如何用 Python 和 Flask 来创建 Web 应用。
代码还算简单,可以作为编译器的训练。
一张网页的《C 语言的入门教程》,比较注重内存部分的讲解。写得不是很易读,但是还是可以看一下。
多线程编程之中,有一种 go 结构,就是主线程之外分出一个线程,这个线程完成任务以后,再回到主线程。作者认为,这种结构是有害的。他的最精彩观点就是:如果允许使用 go 结构,那么所有的语言功能都可以用这种结构实现,程序很快就会乱做一团。
列表(list)是最基本的数据结构,这篇文章通过实例讲解 Python 如何操作列表。很容易读,就是内容比较浅,只适合刚刚开始学 Python 的初学者。
Rust 语言不需要手动管理内容,却也没有垃圾回收机制,这是怎么实现的?本文集中介绍 Rust 最重要的核心特性:内存管理。这是 Rust 的主要创新之一,它的许多独特的特点是基于此的。本文写给不知道 Rust 或刚刚开始学习它的程序员的。对于熟悉 C、C++ 或其他使用手动管理内存以及使用垃圾回收器语言的读者来说会更容易理解 Rust 的特点。
Rust 语言入门教程
通过 Web 界面生成 Crontab 配置。(@DoctorLai 投稿)
开源的中级 Vim 教程,将 Vimscript 作为一门编程语言,帮助读者掌握。(@douchuan 投稿)
通过游戏学习 Vim,看上去比较有趣。(@lenkenlau 投稿)
介绍 Linux 命令行基础用法的开源书籍。
一个操作系统内核的简单实现,提供了各个阶段完成度不同的内核,可以用来练手和学习。(@MRNIU 投稿)
本文提出 FreeBSD 或者基于 Solaris 的 illumos 在功能上优于 Linux,更值得尝试。
本文对三个层次的(初级、中级、高级)用户,介绍最合适的 Linux 发行版,用于桌面系统。对新手有一定的参考价值。
Manjaro 是一个新的 Linux 发行版,内核采用 Arch Linux,UI 采用 Deepin,集灵活性和易用的 UI 于一体。
Linux 发行版一般都自带桌面环境,如果你需要的只是一个好用的命令行,那么你可以放弃桌面环境,改用窗口管理器。i3 就是一个很好用的平铺式窗口管理器,本文给出了五个推荐理由。如果你有兴趣的话,这里还有一篇简单教程。
Linux 内核与 Mac 内核虽然都源于 Unix,但是差别较大。Mac 内核继承 BSD Unix,有一些很老的代码,并且做了大量的定制。
脚本的第一行为什么以 #!
开头?Shell 内部又是如何处理脚本的?
容器实际上是 Linux 进程的一种特殊封装,这组系列文章介绍了容器的底层知识。
.snap 是一种新的 Linux 安装包格式,最大特点就是自带依赖,某种程序上很像容器。
XINU 是普渡大学开发一个教学操作系统,属于简化版的 Unix。
Vi 是 Unix 系统的常见编辑器。它最初是 ed 编辑器的改写,vi 表示 ed 的 visual 模式,后来有人写了增强版 vi improved,这就是 vim 的来历。
Debian 是历史最悠久、使用最广泛的 Linux 发行版之一。今年8月16日是它25周年的生日,本文介绍一些它的小知识。
麻省理工学院开发的一个类似 Unix 的教学操作系统。
介绍 MacOS 内核的历史演变,跟 Linux 的差异还是很大的。
dd 命令通常用来克隆整块磁盘,或者制作 Linux 系统的 USB 启动盘。这篇文章教你怎么用,其实很简单。
收集各种 Bash 常用操作的仓库,比如分割字符串、倒转数组等等。
集成开发环境(IDE)作为文件结构、代码编写、代码维护、测试和排错工具于一体的应用程序,对程序员们非常有价值。这个教程展示如何用 Unix 命令行工具完成 IDE 的功能。
现在的各种 Linux 发行版往往都使用 SystemD 管理启动进程和服务,但是很多人仍然想用 init.d。Devuan 就是使用 init.d 的 Debian。
这篇文章讨论了为什么程序员更喜欢使用命令行,而不是图形界面。
tcpdump 是一个 Linux 命令行工具,用来查看 TCP 通信。
这篇文章教你如何在没有任何 Linux 经验的情况下,全新安装Kubuntu 18.04系统,并在这个系统安装比特币完整节点,加入比特币网络。
awk 是 Unix 命令行处理文本的有用工具,这里是1988年出版的 awk 教程。Unix 命令行高度稳定,所以这本教材也没那么过时。
安卓设备的终端仿真器,用来在安卓设备上模拟 Linux 环境。
Bash 脚本的语法远比编程语言宽松,你很容易写出难以阅读、风格混乱的脚本,可以参考谷歌如何写 Bash 脚本。
通过吃豆子(PacMan)游戏学习 Vim 操作的命令行游戏。
这是 Linus Torvalds 的硕士毕业论文,介绍 Linux 系统如何适配不同的硬件架构。这篇论文不涉及代码,只介绍一些概念性的东西,但也不是那么好懂,至少我没有完全看懂。对内核和操作系统感兴趣的朋友,可以读一下。
ed 是 Unix 系统里面最古老的命令行编辑器,但是功能并不弱。这篇文章介绍了一个使用 ed 的简单实例。
作者解释了什么是极简主义的态度开发软件。
新版的 Gmail 用谷歌自家的 Lighthouse 评估性能,100分里面只得了2分。下载的脚本有6MB,完全渲染需要9秒,其中一半代码可能根本用不到。有人分析了代码,发现过时的早期代码都还在。猜测由于过于复杂,现有团队可能没有能力升级底层,只做了一些样式的更新。
技术文档(documents)分成四种:教程(tutorial)、指导(guide)、解释(explanation)和参考(reference)。本文解释了每一种文档的特点,并给出了写作建议。
许多主流语言都采用抛出异常的方式处理错误,这篇文章认为,这种设计是错误的,传统的返回值是更好的方式。抛出异常的主要好处是,可以将业务代码与错误处理代码分开,缺点是它改变了控制流,有点像 goto 语言,可以随意跳转。
开源电子书,介绍 App 发布到应用商店,怎样才能取到满意的结果。
作者讲述了,他如何在30分钟内发现 Homebrew 的一个漏洞,从而可以向代码库提交代码。Homebrew 是 Mac 环境最广泛使用的开发工具之一,一旦注入恶意代码,后果非常严重。这个事情提醒我们,使用网上下载的任何代码,都必须非常小心。
向初学者介绍逆向工程的知识。
该网站每天列出5~10篇当天值得阅读的软件文章。
本文讨论了13种软件测试的错误做法,比如:(1)单元测试与集成测试的比例不正确;(2)太相信 TDD(即写代码之前就写测试);(3)写了大量很慢的测试;(4)手动运行测试;(5)没有把生产环境的错误写成测试等等。
该网站收集优秀程序员面试没通过的经历,用来鼓励面试失败者不要灰心。
谷歌的英语技术文档的写作手册,讲解了程序员写文档的各种要求。
Gitlab 将公司的所有内部政策,做成一份2000页的手册,公开在网上,以做到"透明公司"的承诺。
看板(kanban)是管理 issue 的流行方式,一般的看板是垂直的。本文提出,这是因为日本文字是直排的,而看板是日本人发明的,西方文字是横排的,所以看板应该改成水平。
每个公司都有自己的内部等级,该网站比较各公司的等级对应关系,收录了北美20多家互联网公司。上图是谷歌、脸书、微软的工程师等级。
一位风险投资家的观点,如何判断一家创业公司是否值得投资。
本文列出了影响程序员工作效率的常见情景:工作经常被打断、领导进行微观管理、产品需求不断扩大等等。
一个硅谷工程师起诉了他的华人老板,还制作了一个极其详细的网页。我觉得这招很好,值得借鉴。不管官司能否赢,我要让你曝曝光。
这个仓库收集了200多道 Linux 服务器管理的面试题,涉及的面很广,着重考察基础知识。
25道 C++ 的编程题,经常用于面试。
本文讲解了 Java 面试经常遇到的各种算法问题。
这个仓库收集深度学习/机器学习面试经常问到的问题,以及基础知识。
这个库收集各种 Java 面试的知识点。
这个是试题库,收集了 Google 主办的黑客安全大赛 CTF 的题目。
技术面试需要掌握的基础知识整理。
一份爱好者整理的 Google 面试准备指南。
魔方数学(PDF)
麻省理工学院的课程材料,介绍魔方里面包含的数学。
如何获取全球航班的实时位置?(英文)
很多应用可以显示全球航班的实时信息(上图),这是怎么做到的?原来每架民用客机都配备了一个特殊设备,发送自身的各种数据,使用 1090MHz 未加密的无线电频率,因此个人可以接收到这些数据。
一本介绍统计学常见错误的书籍,可以在线阅读。
美国本科生的线性代数教材,免费下载。
概率和统计学入门教程,有网页图形版和免费的 PDF 电子书下载。
在线还原1847年的欧几里得《几何原本》的彩色版本。(@arbeitandy 投稿)
一篇科普文章,不仅介绍了物理意义的熵,还介绍社会内部的熵、公司内部的熵等。
英国布里斯托大学化学系制作的网站,每个月介绍一种化合物的分子。
本教程帮助初学者掌握,深度学习所需要的线性代数知识,每一部分都包含代码、示例和图表。
本文通过一个实例,一步步演示二维码的生成算法。
美国国家航天局计算时,使用 Pi 小数点后15位。这样的话,即使轨道半径是250亿英里,计算误差也小于手指的长度(几厘米)。
公共汽车的间隔时间为10分钟,那么平均等待时间应该为5分钟,但是如果进行抽样,你会发现抽样得到的平均时间为10分钟,这是为什么?简单说,原因就是等待时间越长的人,越容易被抽样到。
有名的微积分教材,版权已经过期。虽然年代比较久了,但是内容很经典。
一本英文的纯数学教材,免费下载,从简单的自然数讲起,包括代数、数论、集合运算、概率和微积分等章节。我觉得,至少对于了解数学的符号体系很有好处。
Pokemon GO 是一个在地图上捕捉口袋妖怪的游戏,初看起来相当无聊,不需要任何游戏技能。但是该游戏取得了惊人的成功,这是为什么?
一个有趣的问题是,树木为什么会长得这么高?加州红杉可以长到100米,到底什么决定了树木长高的极限?
有一点是肯定的,树木需要将水从根部运送到顶部。如果树高100米,树木内部有什么机制可以将水运送得这么高?要知道,一个大气压的情况下,吸管最多只能将水吸到10米的高度,要达到100米,树的内部难道存在10个大气压?
现在,程序员编程都是针对某种硬件架构,比如 CPU 或 GPU,但是也可以为某种计算定制电路,这种电路专门用来完成这种计算,这就叫做 FPGA。本文介绍 FPGA 的特点,长处和短处。
《南华早报》的长篇可视化报道,解释为什么国际航线弯弯曲曲,不采用最近的直线距离飞行。本文图文并茂的呈现方式,值得借鉴。
1999年,阿里巴巴集团成立,当时共有18位创始人,大部分是马云的同事、朋友和学生。这篇文章汇总了这18个人的公开资料。
简单的歌词通常有重复的内容。这篇文章使用压缩算法,比较现在的歌词与过去的歌词,看看哪个压缩得更小,内容更简单。
PyPy 是用 Python 编写的 Python 解释器,这也是它名字的来源。该项目的创始人回顾了走过的十五年。
遇到灾难(地震、洪水、大雪等等)怎么办?东京市政府编写的免费电子书,这里是简体中文版的下载。
谷歌推出了很多产品,许多后来都放弃了。这个网页列出所有被谷歌放弃的产品,目前有70个。
本文是 V8 官方团队写的历史回顾,介绍 V8 每一年在技术上的突破。
本文介绍著名的压缩算法霍夫曼编码的发明人戴维·霍夫曼的故事。
《人类简史》的作者尤瓦尔·赫拉利的最新文章。他提出,人工智能有利于政府,可以将权力集中在少数精英手里。唯一可能的解决方法,是寻找分布式的技术方案,防止资源的集中。
这是一本免费电子书,介绍计算机出现之前的人类计算设备,从算盘、差分机、穿孔计算机,直到电子计算器。
地中海沿岸,很多城市最热闹的大街就在海边。我一直很奇怪,难道他们不怕涨潮吗?现在终于确认了,地中海几乎没有潮汐。
Cherry 是世界最著名的机械键盘品牌,这篇文章介绍这个品牌的历史。
Android 9.0 就是早先推出 Beta 版的 Android P。现在我们知道,P 代表的甜点就是派(Pie)。
你有没有遇到,照片在手机里面方向正确,上传到网站却左右颠倒或上下颠倒?这篇文章告诉你为什么。
华盛顿大学维护的一个网站,收集各种假陨石的照片,并附上说明,讲解为什么某块石头不是陨石。
现在的飞机驾驶舱还是使用物理仪表盘,而不是触摸屏,这是为什么?主要的原因还是物理按钮会形成肌肉记忆,比操作触摸屏更快。
全世界发达国家都有少子化和人口老龄化的趋势,这篇文章是我看过的最好的这方面的综述,有大量的数据和事实。除了非洲,其他大洲的人口都接近峰值了,将要开始下降,这意味着许多国家将不得不依靠移民,解决本国人力不足问题。
全球气候正在变暖,这到底是怎么一回事,原因是什么。本文是我读过最好的这方面的入门读物。
高中物理要点讲解,配有插图和动画。
本文介绍数码相机 CMOS 芯片的感光原理,彩色的光线是如何变成数字信号的。
气压就是大气的压力,一个标准大气压等于760毫米汞柱。有的地方气压高,有的地方气压低,这是风形成的根本原因,台风就是巨大的热带低气压。地球上,赤道由于高温蒸发是低压区,极地由于冷空气下降是高压区,这就形成了地球的风带。
人眼如何感受到色彩,读懂这篇文章需要一点物理学知识。
成为亿万富翁的工程师(英文)
79岁的 Herbert Wertheim 拥有大约23亿美元的财富,是美国少数白手起家的亿万富翁。他没有创办过任何企业,纯粹靠投资股票致富。他以前是工程师,靠阅读专利选择投资目标。本文是他的故事。
BeOS 如何输给 NeXT(英文)
1996年,陷入困境的苹果公司决定从外部购买一个操作系统,当时有两个候选者:BeOS 和 NeXT。最后,他们选择了 NeXT,让乔布斯重新回到苹果。本文作者是 BeOS 的开发者,谈了当时的情况。
Windows 10 新版本可以直接访问 Linux 文件(英文)
下一次2019年春季的 Windows 10 更新,将允许 Windows 的文件资源管理器,直接访问和编辑 Linux 文件,不过必须是 Windows Subsystem for Linux(WSL)里面的文件。
一个收集免费音乐的网站,可以下载用来制作视频的背景音乐。该网站的目标是成为免费音乐的 Unsplash。
该网页聚合多个英文科技咨询网站的消息,一个地方就能看到所有资讯。(@shouldsimple 投稿)
美国得州的政府网站,有该州死刑犯的遗言数据库。周刊读者编写了 Python 脚本,去抓取所有遗言,输出 CSV 文件。(@wansho 投稿)
美国得州政府有一个网页,专门收集犯人执行死刑前的遗言。
每日不定时在社交媒体推送一批 GitHub 优秀的开源项目给开发者, 帮助开发者们发现当下最火的开源项目。(@PansonPanson 投稿)。
一个国内开发者分享阅读与思考的专栏。(@fanfeilong* *投稿)
该项目专门拍摄推动计算机革命的开源程序员的肖像。
该网站收集各种谷歌服务的替代品,让你可以不使用谷歌。(@Ynjxsjmh 投稿)
自由软件基金会为 GNU 操作系统提供的壁纸。
看看日本乡下,几万元人民币可以买到的房子一大堆,都是买来就可以直接入住,还带土地产权。
该仓库收集对程序员有用的网址,包含问题查找、技术新闻、技术博客、开源社区、英文提升、新奇的玩意儿、视频教程、在线工具等数十个方向的内容。(@qiurenbo 投稿)
解密英语语法 (中文)
王垠老师的《解密计算机科学》还没写完,又开始写第二本书《解密英语语法》。发布第一章以后,第二天他又把这个计划取消了,"我曾经想过把这写成一本完整的语法书,可是后来发现似乎一篇文章足矣。"(@wblovezqy_ _投稿)
1977年发射的旅行者二号(Voyager 2)最近飞出了太阳系,成为飞得最远的人类飞行器。美国宇航局为了庆祝这个事件,在官网发布了一系列可以下载的海报。
该站收集 DOS 游戏,可以在线游戏。另外还有一个"中文家用游戏博物馆"。(@Brenner8023 投稿)
收集中文播客资源。(@alaskasquirrel 投稿)
该网站对各种病毒 3D 建模,可以缩放、旋转观看病毒模型。
畅销游戏《星露谷》(Stardew Valley)作者只有一个人埃里克·巴罗恩,从编码到美术音乐都靠自己。大学毕业后,他没找工作,而是待在公寓写了四年游戏。唯一收入是晚上打工,在电影院门口收电影票。
上线前,唯一测试就是女朋友玩了几天。如果卖不出去(绝大多数游戏的结局),四年就浪费了,幸好成功了。不过,这个游戏借鉴了任天堂的《牧场物语》,有人认为他抄袭了。
概念性网站,用户在上面发布自己想要主办的各种活动,赞助商选择活动进行赞助,提供现场的披萨。作为回报,用户在举办活动的过程中,必须在社交媒体上曝光赞助商。
《超人特工队2》的设计师介绍他们如何从现实生活吸收灵感,设计画面,多图。
FPGA 是可编程的逻辑电路。该站是 FPGA 入门与学习的网站,有关于FPGA概念和原理的介绍,以及一系列的实例。每个实例包含了详细的设计过程与 Verilog 源码,提供源码下载和电路图。(@tifazxy 投稿)
使用 WFC 模型生成的城市模型,没有游戏功能,但是可以无限漫游,有飞行模式,只支持 Windows 系统。
效果不错,但是目前只做了几个点,无法在地图上自由移动,操作也不够便利。
芝加哥艺术学院的网站提供5万多张艺术品图片,全部都是高分辨率,而且可以免费使用。
Linux 命令的搜索入口,提供中文解释。(@jaywcjlove_ _投稿)
字体搜索引擎。
该网站收集 Youtube 上面的软件开发视频。
该网站收集全世界各种木材的信息。链接给出的是全世界硬度最高的十种木材。
该网站收集科幻影视作品里面出现的计算机界面设计。
收集纸飞机折纸方法的网站,目前有40种纸飞机。
很多网站有一个轻量级版本(lite version),这个仓库收集这些网站的清单。
该网站列出分类的最受欢迎 Youtube 频道。如果你不知道 Youtube 上看什么,可以浏览一下这个网站。
如果你不知道 Youtube 上可以学什么,就来看看这个帖子。当然,所有资源都是英语的。
一个收集 Java 核心知识的中文库。
该网站收集各个学科开源的大学教材。
Mac 的一大烦恼,就是各种软件都要钱。有人整理出了一份 Mac 系统免费软件清单,看看有没有你需要的。
开源的代码字体。
这个数据库收集人类历史上生产的各种型号的机器人。
Sci-hub 是最大的免费论文下载网站,几个主要的论文数据库公司都在起诉它。现在,它放出了它的所有论文的 BT 下载种子文件。
自从苹果采用 Intel 的处理器,OS X 被黑客破解后可以安装在 Intel CPU 与部分 AMD CPU 的机器上。从而出现了一大批非苹果设备而使用苹果操作系统的机器,被称为黑苹果(Hackintosh)。这个仓库收集了各种型号的黑苹果安装方法。
收集所有开源的操作系统的网站。
一个收集开源书籍的网站。
Bash 命令的可视化解释工具。遇到复杂的 Bash 命令,可以输入到这个网站,查看该命令的解释。(@weineel 投稿)
一个命令行的文件十六进制查看工具。它能够以不同的颜色,表示不同的字节内容。
一个 Slack 的命令行客户端。
Python 反编译工具,可以将 Python 字节码 pyc 文件反编译回源码 py 文件。
命令行查看图片的工具。
各种云服务之间转移文件的命令行工具。
一个使用 Go 语言开发的命令行终端模拟器。
groupImg 是一个 Python 脚本,使用 k-means 算法进行图片分类。我试了一下,效果不太好。但是代码简单,可以用作学习参考。
Linux 系统的命令行文件管理器,号称是最快的文件管理器。
一个使用 WebRTC 协议分享命令行对话的工具,特点就是点对点的分享,不需要中间代理,而且可以在浏览器之中使用。
有道辞典的命令行版本。(@Seven-Steven_ _投稿)
百度网盘的命令行客户端,使用 Go 语言开发。(@Seven-Steven 投稿)
命令行打印图表的库。
命令行抓取网页,生成 PDF 文件的工具。
C++ 编写的2048游戏。
Linux 服务器的 top 命令可以查看 CPU 的状态。nvtop 命令则是用来查看 NVidia GPU 的状态。
一个基于 Python 的 Shell,最大特点就是跨平台。
一个快速、强大的 CSV 文件的命令行处理工具,使用 Rust 语言开发。
一个使用 GPU 进行渲染的终端模拟器。理论上,视觉效果将非常顺滑,尤其是长文本滚动和窗口切换。
这篇文章给出增强版命令行工具的清单,比如 bat 取代 cat,htop 取代 top 等等。
bat 是 cat 命令的加强版,同样在命令行输出文件内容,但是带有高亮和分页,并且与 Git 集成。
cron 是设置 Linux 系统定时任务的工具,只能在命令行下使用。现在,这个软件为它提供了图形界面。
一个命令行音乐播放器,支持 Spotify, Google Play Music, YouTube 等服务。
任务管理的命令行小工具。
termgraph 是一个命令行脚本,可以在命令行画出柱状图。
Browsh 是一个基于 Firefox 的命令行脚本,可以在命令行打开网页,并且渲染出大致的样子。它也可以用作移动端网页浏览的处理方案。
一个只能在命令行访问的文档查询网站,使用方法就是命令行执行 curl cheat.sh 。
你需要录制命令行操作吗?一般的做法是录制成视频,这个工具让你可以录制成 SVG 动画。
直接将 Markdown 文档转换生成幻灯片。
命令行如何执行 SQL 语句?每个数据库都有自己的方式,彼此不同。现在出现了一个工具 usql,提供统一的方式,在命令行下操作不同的数据库。
一个显示 Linux 服务器信息的命令行工具。
一个查看网页加载性能的命令行程序。
在终端窗口显示控制台面版。
Bash 脚本的开源语法检查器。
Facebook 推出 Python 的静态类型检查工具,有点像 Flowtype 对于 JS 代码的作用。
命令行的 cat 命令用来显示文件的内容,bat 命令完全跟 cat 一致,只有一个地方不一样,就是现在的内容会带有行号和代码高亮。
一个将 HTML 文件转为 PDF 文件的命令行工具。
一个使用 React 组件写命令行脚本的框架。
有人终于把这个工具写出来了,一旦 Python 或 JS 脚本报错,就到 Stack Overflow 取回报错信息的解释。
Hexo 的开源博客主题,针对大屏进行过优化。(@dongyuanxin 投稿)
一个可以在线定制、修改图标的网站。
Polymer 项目推出的一个 JS 基类库,基于这个基类,可以方便快速地创建 Web 组件。
Mermaid 是一个网页作图的 JS 库,该页面可以实时编辑预览 Mermaid 图形。
一个 Java Spring 项目的文档处理器,可以自动生成文档。(@liuanxin 投稿)
一种配置文件格式,基于对 Yaml 和 Toml 格式的改进。
一个基于 Canvas 的 JS 电子表格库。
一个在 <canvas> 元素上绘制和解决迷宫的 JavaScript 库。
一个构建跨平台桌面应用的框架,跟 Flutter 的思路有点像,也是内置了自己的控件,保证了跨平台一致的体验。它使用 Reason 语言编写,使用 React + Redux。
该工具可以用来从 Achive.org 的 Wayback Machine 里面,下载某个网站在指定日期的所有网页。
一个网页工具,可以去除图像里面的用户指定的颜色,对去除背景很有用。
一个 UI 原型设计的桌面软件,可以输出 JSX 代码。
基于 CSS 框架 Bluma 的 React 组件库。
一个 CSS 颜色库,使用每一个香港地铁站的颜色命名 CSS 变量。
人工智能生成前端网页的工具,已经可用了。自动将手绘图,变成 HTML 网页。作者还写了一篇文章介绍原理。
一个 C++ 代码的网页 IDE。
一个 Nginx 模块,使得网站只能在工作时间访问,一到下午五点,网站就自动下线。
一个反向代理服务器,可以让公网访问架设在内网的服务。(@Seven-Steven 投稿)
Java 应用的性能监控工具。(@LinShunKang 投稿)
一个图标搜索引擎。(@LanjianNUll 投稿)
Webpack 的一个封装,目的是简化 Webpack 的配置,让大多数情况下可以不写配置文件,直接使用 Webpack。
一个开源的网站统计后端,带有 Web 界面,可以作为 Google Analytics 的替代。
谷歌官方推出的一个兼容库,将 Flutter 框架的 API 用于开发跨平台的桌面应用。文档说,只要把手机应用的源码改改,就能编译成桌面应用。如果可行的话,Flutter 就是全平台框架了。
这个网站通过请求速度,比较各大 CDN 的性能表现。
该网站提供 SVG 格式的各种 Logo 文件下载,目前一共有 1,080个公司/项目的3,458个 Logo。
终于有人觉得 Babel 太慢,用 Rust 语言重写了一遍,速度提高了十几倍,一分钟的编译可以缩短为5秒。下一步该是重写 Webpack 吧。
一个 SVG 图像的在线代码优化工具,用来降低 SVG 文件的大小。
ElasticSearch 数据导出工具,目前支持json、txt。20亿的索引表中导出4000W数据只用到不到15分钟。(@760515805 投稿)
原始的 Google Analytics 代码是 73KB,可能拖累网页性能,经过简化以后,只需要 1.4KB。当然,功能也简化了,只能统计当前页面访问量。
一个用于 CSS 的调试库,鼠标悬浮的时候,网页会显示区块的 CSS 信息。
每周一期的开发者周刊(英文)。
一款 Hexo 的主题,提供更好的用户体验和更清爽的UI设计。(@dongyuanxin 投稿)
基于 vue + elementUI 构建的网站管理后台脚手架。(@umi-soft_ _投稿)
Puppeteer 现在不仅封装 Chrome,还开始封装 Firefox 了,API 完全一样。以后,浏览器自动化可能只用它就可以了,其他库都要被干掉了。
一种将 HTML 转成 JSON 格式的规范标准。
这个库可以根据击打键盘的声音,分析用户的输入内容。
jerverless 是一个 Web 服务器,可以将任何语言的程序转为 Serverless 函数,从网络调用。它会把源程序放在 Docker 容器里面运行,然后提供 Web 接口与用户通信。
一个生成网页互动表格的 JS 库,提供很多功能。
Reactide 是 React Web 应用开发的专用 IDE。
JSX 语法必须使用 Babel 才能编译,现在 preact 的作者出手了,写了一个模板函数。只要把 JSX 写成模板字符串,就可以摆脱 Babel 了。
一个形成动态背景的 React 组件。
一个基于 Mithril.js 框架的前端 UI 组件库。
一个使用 Chrome 控制台的网络面板,可以查看命令行 HTTP 请求的工具。
一个提供代码基础服务(比如 Git 和持续构建)的网站,界面简单,具有黑客风格。
一个对 CSV 文件使用 SQL 数据查询的工具。
一个简单的 React 国际化解决方案。
你在网站上填写一些信息,就会自动生成 nginx 的配置文件。(@Syzq 投稿)
一个 WebAssembly 的在线 IDE,支持 C / C ++ / Rust 程序在线编译成 WASM。该项目由 Mozilla 基金会开发,这里有一篇介绍。
Bootstrap 是最常用的 CSS 框架,这个网站收集免费的 Bootstrap 主题。类似的网站还有 bulmaswatch,收集 Bluma 框架的免费主题。
一个浏览器拖放文件上传的 JS 库。
Spectre.css 是一个轻量级,响应式的、现代 CSS 框架。
一个支持在线协同和聊天的网页代码编辑器。
Markdown 文件直接部署成静态网站,不需要编译。
CSS 的 position: sticky
是一个很有用的设置,但是老的浏览器不支持。这个 JS 库是该功能的垫片库。
一个 Node 的日志格式库,自带16个级别,可以定制颜色和 Emoji。
我们知道,Docker 的 image 文件不是一个单一文件,而是包含了许多层。该工具用来查看并定制 image 文件的每一层。
一个可以嵌入网页的代码编辑器,使用 JavaScript 开发。
一个创建在线表单的网站,并提供数据储存,可以在后台查看表单收集的数据。
支持各种网页音频格式解码的 JS 库。
一个根据 JSON 文件快速生成 API 的 Web 服务端,主要用了测试和开发环境。
如果你喜欢 Vim 的便捷,又喜欢 VS Code 的图形界面,那么可以试试 Neovim。本文介绍如何配置 Neovim,以适应 JavaScript 开发。
一个互动式的在线 SQL 语法教程,针对新手。答对一个问题,才能进入下一个。
开源的网络钓鱼框架,用来评估网络钓鱼的风险。它首先导入像素级别的网页钓鱼模板,然后发出钓鱼邮件,并且提供后台,监控结果。
一个自动渲染 Markdown + Latex 文档的 JS 库。
Pandoc 是一个文档格式转换工具,本文介绍如何使用它,将 Markdown 源码转成网页,发布到 AWS S3。
irondb 是一个浏览器 key-value 储存的封装库,把 Cookies、IndexedDB、LocalStorage、SessionStorage 统一成一个接口。它的最大特色就是数据冗余机制,即使某种底层储存机制失效,它可以从其他机制恢复数据。
gRPC-Web 是一个JavaScript客户端库,使 Web 应用程序能够直接与后端gRPC服务通信,不需要 HTTP 服务器充当中介。这意味着可以构建真正的端到端 gRPC 应用程序体系结构。
一个类似 Disqus 的网站评论服务。
一个质量不错的科幻风格 React UI 组件库。(@Anderson-Liu 投稿)
这个 JS 库可以将网页上的外联 SVG 图像,变为内嵌的 SVG 图像,从而使得全局的 CSS 样式文件可以对这个图像生效。
通过把 Perl 5 解释器编译成 WebAssembly,从而在网页上运行 Perl 代码。
Amazon 公司提供一个 JSON 文件,列出 AWS 服务用到的所有 IP 地址。
该网站用来查看某个网址的重定向(redirect)情况。
一个简单的人类可读的随机 ID 生成库。
有的网页每次滚动就是一屏,fullPage.js 就是制作这种效果的一个 JS 库。
flyermaker 是一个 Java 项目的脚手架工具,支持 SpringBoot 和 SpringFramework,它允许动态生成工程代码和单元测试。(@vancefantasy 投稿)
前端程序员使用 WebAssembly 的最大障碍,就是它要求你深入掌握一门后端语言。于是,就有人尝试把 JS 代码编译成 WebAssembly。Walt 就是这样的一个项目,它可以把 JS 代码稍加修改,然后用 Webpack 打包成 WASM 在浏览器加载。
可视化编程的 JavaScript 框架。
Mixnode 是一个收集了全世界网页的数据库,允许使用类似 SQL 的语法查询网页。
dbxfs 允许用户将 Dropbox 目录挂载到本地文件系统。
Caddy 是一个支持 HTTP/2,自带 HTTPS 功能的跨平台、易于使用的 Web 服务器。
SQL 语句格式化的在线工具。
Cephes 是 JavaScript (准确说是 WebAssembly)的数学函数库,类似 Python 的 SciPy。
微软基于 React Native 开发的框架,沿用了 React Native 的 API,可以用同一套代码编译出 Web、手机 和 Windows 应用。
perkeep 是一个开源工具,可以将你的文件同步储存到多个节点,保证不会丢失。它可以用作个人的储存系统,可以看作是亚马逊 S3 服务的本地实现。
v8 引擎新的官方网站。为了体现 v8 高效快速的特点,这个网站故意做得很简单,能够快速加载。
各大公司的 UI 组件库的 Storybook 展示。Storybook 是一种 React 组件的展示工具。
一个前端脚本,将 Markdown 文件自动转成静态网站。
该服务通过 URL 接受参数,然后生成图表,以图片形式返回。
网页上的 Python 运行环境。
有人用 JS 写了一个 C++ 的解释器,可以在 Node 或浏览器直接运行 C++ 代码。
Wireguard 的自动化安装脚本。
codesandbox.io 是一个前端代码的在线编辑器,支持各种不同的框架,可以随时预览代码的运行结果。
Mithril 是一个类似 React 的轻量级前端端架,比 React 简单。主要特点有两个:一个是路由、状态管理、fetch 这些主要功能都内置了,二是体积很小(8kb)。
Node 脚本里面加载 wasm 模块的处理器,即让 Node 可以方便地运行 wasm 模块。
eno 是类似 yaml、 toml 的一种配置语言。
一个收集 Node 最佳实践的仓库。
Unicode 本身就带有粗体、斜体字符(只限于拉丁字母),这个工具就采用这些字符进行文本的格式化。然后,不管复制到那里,文本都带有格式。
一个用于调试时方便打印变量值的 JS 库。
一个 Electron 的实验环境。对于小型项目,把代码贴进去,自动编译出一个 Electron 窗口供调试。编辑完还可以把所有代码发上 Github Gist,用来分享。
一个极小的只有400字节的网页代码编辑器,可以实时查看效果,类似 jsbin 和 jsFiddler,能够作为书签保存。
一个生成静态网站的内容管理系统,所有管理都在本地进行,生成静态网页之后推送到服务器。
Python 语言写的短网址服务,前后端代码都包括。
团队登录服务器的 SSH 管理工具。
该网站针对英文排版,有一个小测试和游戏,讲解如何制作出阅读舒服的网站。
一个 React 组件,按钮点击后会像粒子状消解。
一个处理颜色的 JS 库。
Glances 是一个用Python编写的跨平台系统监视工具。它自带 Web UI,可以远程监控。
一个构建 Web Components 的工具,并且能够自动生成文档。_ _
软件项目中,同一段逻辑不应该有多个实现。jsinspect 就是用来查出重复代码的工具。
一个让对象进行选择性解构赋值的 JS 库。
一个使用系统原生组件开发桌面应用的框架,相比 Electron,好处就是打包出来的体积比较小。
一个基于 WebRTC 技术的实时通讯平台,可以实现 P2P 的文字聊天、语音和视频对话。
有的图片 CDN 可以对图片进行实时处理,允许指定图片的大小和方向。thumbor 就是这样一种图片服务器。
BGP 图像比 JPG 图像有更好的压缩比,但是它的解析需要加载一个前端 JS 库。
又一个新的 JS 打包器问世了,企图替代 Webpack。
asmttpd 是一个用汇编语言写的 Web 服务器,非常小,二进制包只有 6KB,功能比较少,但性能很好。
这篇文章介绍了 Google Analytics 等8个网站统计工具。
强制 TCP 连接经过本地端口的工具。
有人为 Flutter 写了 Windows 和 Mac 的渲染器。也就是说,Flutter 写好的 App 不仅能在手机上跑,还能在桌面跑。理论上,Flutter 能在任何操作系统运行,它是一套独立控件,只要能编译出来,就能运行。
一个 Go 语言写的博客内核,适合在它的基础上进行开发。最大特点就是所有功能都提供 REST 接口。
谷歌开源的 Java 应用容器生成工具,不用写 Dockerfile,构造过程中自动生成一个 Docker 容器。
Atlassian 公司推出的 React 拖放操作的库。
这个网站收集各种时钟的代码。
微软正在使用 React 重写 Office365(Office 的在线版),为此专门写了一个 React 的 Office UI 组件库,完全开源。
生成本地 HTTPS 加密证书的工具,一个命令就可以生成证书,不需要任何配置。图片是就是它默认为 localhost 生成的加密证书。
一个反向代理服务器,主要特点是进行了各种优化和压缩,号称可以把网站速度提高3到4倍。
Node 语言编写的博客建站工具。
微软推出的 React Native 渲染器,允许用 RN 编译成 Windows 10、Windows 10 mobile、Xbox one 应用。
一个 SVG 图标库。SVG 图标的最大好处,就是可以定制大小和颜色。
Node 项目的任务运行器,特点是用 Markdown 格式写配置文件。
Airbnb 推出的动画效果库,可以把 Adobe After Effects 制作的动画用于 Web、安卓和 iOS。
React router 的两位创始人闹翻了,其中一位另起门户,写了一个功能相同的 Reach router
一个新的 JavaScript 转码器,号称比 Babel 快20倍。
一个有手绘效果的网页组件库。但是,真正特别之处在于它的底层是 Web components,让我们看到了除了React/Vue之外,还有其他的路。
Electron 的挑战者越来越多,这个是 .NET 框架包装的 Chrome 浏览器内核。你现在可以使用 .NET 开发类似 Electron 的桌面应用。
一个使用 HTML5、CSS、JavaScript 和 Python 开发 Linux 桌面应用的工具。对的,你不需要 Electron。
一个使用 C 语言写的 UI 组件库,具有很好的跨平台性,可以在不同的平台上获得相同的图形界面。
一个生成字符串哈希的 JavaScript 库。它的特点是,字符串越相似,或者重复同样的模式,生成的哈希也越相似,可以用来计算两个字符串的相似程度。
一个开源图标库,提供一些 24x24 的常用图标。
JavaScript 语言没有类型检查,运行时无法知道函数的参数是否为指定的类型。这个库就用来检查函数参数的类型,如果不符合要求就抛错。
一个收集 CSS 使用技巧的库。
前端框架 Dojo 发布了2.0版,它跟 jQuery 是一个年代的,至今不放弃也算值得尊敬了。我看了一下 API,核心概念也是虚拟 DOM,没看到任何令人眼前一亮的创意,我不觉得它有机会赢得大量用户。
RSUITE(React Suite)是一套用于企业系统产品的 React 组件库。由 HYPERS 前端团队和 UX 团队共同构建,主要服务于公司的大数据产品。
一个简洁、好看的 CSS 框架,压缩后只有5.28KB。
浏览器操作录屏工具,提供 Web 管理后台。(@asdjgfr 投稿)
一个 Chrome 浏览器插件,每次打开一个空白页,会显示一个函数式编程的概念。
Chrome 浏览器插件,可以为空白 Tab 设置背景图,显示当前时间。
Chrome 浏览器的扩展,使用类似 Vim 的快捷键,通过键盘操作浏览器。(@Seven-Steven 投稿)
推特同步到 Facebook 的工具,最大特点是不使用 Facebook API,而是使用无头版的 Chrome。
离线浏览器,可以保存网页在本地浏览,还可以添加标记和注释。
Colorblindly 是一个浏览器的色盲插件,让所有图片转成色盲患者看到的样子。上图左侧是正常人看到的世界,右侧是蓝色色盲的人看到的世界。
Chrome 以吃内存著称。这个插件可以冻结不使用的 tab,以释放内存。(@Scheinin 投稿)
想写 Chrome 浏览器的扩展吗?可以看这篇教程,很容易懂。原始代码有一些小问题,我重新做了一个 Demo。
搭建 Web 服务下载 Youtube 视频的工具。
一般情况下,Node REPL 环境只能在命令行使用。这个工具起了一个服务,让你在浏览器里就能使用 REPL 环境。
Cookiepedia 是一个分析 Cookie 的在线工具,可视化显示某个网站留下的所有 Cookie。上图是京东主页设置的22个Cookie。
Chrome 插件,可以将用户在浏览器里面的操作,自动生成对应的 Puppeteer 脚本。
想要学习浏览器自动化的同学,可以看看这篇中文教程。
Favioli 是一个很好玩的 Chrome 浏览器插件。它可以将网页的 Favicon 替换成 Emoji。
一个网页源码的搜索引擎,可以搜索哪些网页使用 react.min.js,或者服务器是 Server: nginx/1.4.7"
。
通过这个插件,你可以在访问某个网站时,直接查看它的统计数据,比如访问量、访问来源、每个用户的浏览时长等等。
我们有时会在 Chrome 浏览器的开发者工具里面,修改 CSS 样式表。这个浏览器插件会比较修改前后的样式表,生成 diff 文件,并存入 GitHub Gist。
有人把 Vim 编译成了 WebAssembly,从而可以在浏览器里面使用 Vim 了。网友开玩笑,这样使用 Vim,就不会不知道如何退出了,只要点击浏览器 Tab 页右上角的 x 即可。
一个浏览器自动化框架,可以用脚本控制已经打开的浏览器
微软发布新版 Skype for Web,可以在浏览器直接拨打世界各地的电话,不用安装应用程序。
跨平台的桌面应用,将一些常用服务(比如 Gmail、Slack、Twitter、Facebook 等)聚合在一起。
在线编写 ipynb 文档的工具,可以在网页上直接编写和执行 Python、R、Julia 代码。(@jialigit 投稿)
一个基于 Web 的初学者友好的代码编辑器,用于为 Web 和专用硬件创建复古的街机游戏。你可以很容易地制作一款游戏,然后在浏览器里玩,也可以在专用硬件上玩。
一个桌面的文档管理器,支持 PDF 文档和 HTML 文档,有云端同步、注释、笔记功能。
一个自己实现的即时通讯系统,通过它提供的底层和组件,开发者可以定制自己的即时通讯系统 (@crossoverJie 投稿)。
AsciiDoc 的渲染引擎,还提供 AsciiDoc 格式的教程。
PDF 文件即时翻译工具。只要选中 PDF 文件里面的文字,就自动调用谷歌翻译的 API,将其翻译成中文,粘贴出来就是中文。(@chempeng 投稿)
Tox 是一个开源的实时通信协议,不需要中央服务器,提供多种跨平台的客户端。
一个开源的笔记软件,可以安装桌面版,也可以自己架设服务器,使用它提供 Web 界面。
一个用 Markdown 语法做笔记的桌面软件。
TypeScript 写的内容管理系统,最大特点是使用 GraphQL API。
一个 Android 音乐播放器,适合初学者借鉴学习。(@DuanJiaNing 投稿)
一个桌面软件,可以搜索命令行的操作历史,只在 Mac 和 Linux 上可用。
国人开发的 MacOS 视频播放器,特点是点击文本字幕,会显示英语单词的中文解释,英语学习者的小帮手。
一个以美观的形式展示照片 EXIF 信息的在线工具。
统计代码行数的工具,可以用于压缩文件(如zip tar等),包括空行和特殊字符的处理与统计,生成多种格式的结果。安装简单且轻量,对于阅读源码,分析项目代码的场景非常实用。(@tifazxy 投稿)
很神奇的工具,可以任意在线重绘建筑物的照片,比如在大门上一划,就变成了墙。麻省理工学院人工智能实验室开发。
一个 Go 语言写的博客软件,类似 WordPress,特点是非常简洁。
ISH 通过使用一个 x86 模拟器,在iOS 设备上面模拟 Linux Shell。
一个多端支持的笔记软件,开发商就是 WordPress 的开发商。(@JsonLeex 投稿)
该网站可以解析微博视频的网址,从而下载,但是解析速度较慢。(@DoctorLai 投稿)
该软件可以从 Docker image 逆向还原出 Dockerfile。
在线图像编辑器,免费,可以替代 PhotoShop 的一部分功能。
一个所见即所得的轻量级、跨平台桌面笔记本,大小为 2MB。
供盲人使用的网页屏幕阅读器。如果你想体验盲人怎么浏览网页,可以下载这个软件试试看。
一个针对初学者或儿童的 Python 编辑器。
一个通过绘制视觉形状,进行谱曲的网页编辑器。
谷歌官方推出了一个网页应用,使你可以在浏览器上远程通过自己的手机发短消息。有人使用了它的底层 API,做成一个桌面 App,可以在电脑桌面上发短信。
免费在线作图,可以实时协作。ProcessOn 支持流程图、思维导图、原型图、UML、网络拓扑图、组织结构图等。(@wuzhenda_ _投稿)
微软的在线工具,将手绘草图转成 HTML 代码。(@xiaohesong 投稿)
一个可以录制 GIF 图片的开源工具,同时还具备编辑帧、调用摄像头录制、录制画板等功能。(@winshu 投稿)
Access 是一种桌面数据库,本文列出了四种开源替代品。
一个 Qt 库制作的最简化浏览器,内核是 Chromium。最大特点就是它自带命令行,可以完全用键盘操作。
Rails 框架的创造者 Basecamp 公司,开发了一个富文本编辑器 Trix,发布1.0版了。
Airdroid 是一个手机 App,可以将安卓手机与桌面电脑相连,用来传递文件。只需在手机上安装,然后桌面电脑访问一个局域网网址即可。
React 应用的原型设计工具。
直接提供各种 Web 应用的 RSS 供订阅。代码开源,可以自己部署。
将任何网页转为 RSS 的工具。
一个在 Electron 里面使用 React 开发的浏览器。
Linux 的桌面应用,用来文件搜索,可以替代 find 命令。
Anbox 是一个 Linux 系统运行安卓应用的容器,理论上可以把安卓应用安装在任何 Linux 系统,但是目前只支持 Ubuntu。
Slack 是目前最流行的团队协同通信工具。这篇文章列出了25种 Slack 的替代品。
一个 Linux 系统的开源音乐播放器。
一个管理代码片段的桌面 Electron 应用。
Mastodon 是开源的 Twitter 克隆。它的最大特点是允许多个实例(即服务器)之间的互相联系,比如引用一个用户需要给出他所在的实例地址(@foo@mastodon.instance),有点像 Email 的概念。
Ghost 是一个博客软件,类似 Wordpress。最近发布了2.0版,更换了编辑器,并且提供很多新功能。新编辑器的最大特点是增加了 Card,可以嵌入各种资源。
一个适用于远程办公团队的 App,它要求每个成员每天贴一段自己的视频"露露脸"。
一个点对点通信的聊天工具,主打信息加密。
一个用于原型产品 UI 设计的桌面软件,类似 Sketch。
管理各种论文和报告的免费桌面软件。
一个开源的多端笔记本工具,兼容 Evernote。
一个管理本地视频的免费桌面软件,可以预览、搜索、分类各类视频文件。
微软推出了一个团队协作工具,可以让用户在多种设备上,远程实时分享电子白板。目前,它只有 Windows 10 的客户端,但马上就会推出 iOS 客户端和 Web 版本。
开源的在线图像编辑器。
Firefox 推出的管理密码的 App,最大特色是浏览器和手机同步。某个网站的密码,浏览器输入了,手机里也能看到,反之亦然,基本上就是有桌面同步功能的 1Password。目前只有 iOS 版本。
Stencila 是一套开源的办公套件,只包含文字处理器和电子表格。
微软的团队协作工具 Teams 推出免费版了,可以聊天、视频、上传文件、内部集成了 Office。
一个写 Markdown 笔记的桌面应用,跨平台。
一个非官方的 Evernote 桌面客户端。
你还是使用 PhotoShop 处理照片吗?可以考虑试试看 MATLAB。
作者做了一个 Bookmarklet。浏览 Youtube 的时候,只要按一下这个书签工具,就会把请求发到 AWS LAMBDA,然后抓取 Youtube 流文件,转码成 mp3 文后以后存到 S3,再返回下载地址。
多人实时协同作画的桌面应用。
三月份的消息,今天才看到。AutoCAD 浏览器版上线了,跟桌面版基本一致,背后的技术是 Webassembly。
该网站实时显示 GitHub 趋势、HackerNews 和 Reddit 里面出现的热门代码仓库。
git 命令只能用于一个库,而这个工具可以一条命令管理多个 git 仓库。
GitHub 官方的课程中心,教你如何使用该网站的一些功能。
该工具根据你的 GitHub 个人项目,自动生成一张个人介绍页面。(@lanffy 投稿)
分享 GitHub 上有趣、入门级的开源项目的周刊,帮你找到编程的乐趣。(@521xueweihan 投稿)
一个 Git 仓库的命令行统计工具,可以生成当前仓库的统计报告。
将 GitHub 动态以 TweetDeck 形式展示的开源工具。
Git 的版本模型对新手来说,并不是很容易理解。Gitless 试图将 Git 变得更容易理解,它基于 Git,但是用自己的概念和命令替换了 Git,比如把 git add
改成 gl track
。
查看某个用户的所有 GitHub 公开活动。(@able8 投稿)
一个分享 GitHub 上有趣的、入门级开源项目的月刊,每个月 28 号发布。(@521xueweihan 投稿)
如果你不知道哪个提交引入了错误代码,就可以使用 git bisect 命令利用二分法,逐步定位到错误的提交。
该工具允许使用 SQL 语法查询 Git 仓库。
谷歌重新推出了自己的 Git 代码托管服务,可以建多个私有仓库,免费版一个仓库最多5个用户,带有自动构建和测试。
只要输入用户名,就能看到该用户自己看到的 GitHub 时间线。
如何才能最好地使用 GitHub 管理项目,本文提供了具有可操作性的十条建议。
Github 正在测试语义搜索,匹配的依据不再是关键字,而是搜索的语义。比如,搜索"连接两个字符串",就会跳出相关的代码。本文介绍实现细节。
Git 操作,你喜欢使用命令行还是图形界面?这个项目可以在命令行提供 Git 的图形界面。
Git 的合并算法是三方合并(three-way),有人认为这种算法并不是最好的。这里是一个两方合并算法,有兴趣的人可以用它替换到 Git 的合并算法。
开源的代码片段管理的服务,类似 Github Gists。
一个采用 BitTorrent 协议的 GitHub 替代品,真正做到了无中心。虽然这个项目很久没有更新了,但是可以阅读上面的文章,了解它的原理。
不要用 git push --force,而要用 git push --force-with-lease 代替。在你上次提交之后,只要其他人往该分支提交给代码,git push --force-with-lease 会拒绝覆盖。
Gource 是一个很好玩的可视化工具,可以将代码仓库的历史变成视频,支持 Git 和 SVN 等多种格式。只要在仓库目录执行 gource 命令,就能看到提交历史的视频。
各种语言最受欢迎的项目,按照 GitHub Star 的数量排行。
GitHub 官方的桌面 App。
GitHub 的用户主页有一张图,每一天就是一个小格子。你只要在这一天提交了代码,这个格子就是绿色。但是,这张图只显示过去的一年,即365个格子. 这个工具可以生成从你加入 GitHub 那天起的所有格子。
.gitignore 文件设置了哪些文件可以不用进入 Git 版本管理。这个命令行工具可以根据项目类型,自动生成 .gitignore 文件。
类似于 GitHub 和 GitLab 的开源项目,用于个人架设 Git 代码托管服务,使用 Go 语言实现。
Git 的 JavaScript 实现,这意味着你可以在 JS 里进行 Git 操作,比如从抓取/提交 commit,进行 diff 或 merge 等等。
该网站将不同情绪对应的声音,画成一幅地图。鼠标移到每个点上,都会听到声音,比如包含了50%的敬爱、33%的同情、17%满意的声音。
开源的飞行模拟器,可在 Linux,MacOS 和 Windows 上运行。
你提供产品的描述,该网站会自动生成 Logo 图案。
微信公号编辑器,可以把 Markdown 代码转为微信公号格式。(@Y024 投稿)
图片上加文字的在线工具,支持摄像头,可以制作表情包。(@ lijinke666 投稿)
nvidia 官方的在线图像修复,自动生成图像缺失的部分。
斯坦福大学的一个视频算法实验项目,可以免费观看美国的电视直播,画质1080P。
手机为了节省电力,会主动杀死后台进程,有时这种行为不是用户希望的。该网站收集各品牌安卓手机的做法,如何关闭主动杀死后台进程这个功能。
该网站收集各国的电压、插头和插座资料。
中国程序员容易发音错误的单词。(@taoweicn* *投稿)
使用正弦函数绘制一棵圣诞树。
谷歌的一个 AI 试验,用户对着摄像头做出指挥的动作,谷歌会识别动作,然后配上乐队的音乐。
去除照片背景的在线工具。
谷歌地图提供了国际空间站的实景地图,可以在里面四处逛逛。
图库网站列表,提供免费的商业级高清晰度图片下载。
实时查看全球各个地点的 PM2.5 指数,看上去整个美国西海岸的空气质量,都比较一般。
谷歌官方推出的使用 Google Earth 制作 3D 动画的工具。
一个波兰团队做了非常好玩的工具,可以把视频自动转成漫画,上图是他们提供的 demo,效果很棒。
一个多人实时分享的在线白板。
该网站提供美国的好奇号火星车拍摄的多张火星全景照片,各种不同的地貌,可以360度旋转观看。
一个在线的迷宫游戏网站,支持多人同时游戏。我玩了一局,还挺有意思。
一个查看全球风向的网站。
俄罗斯搜索引擎 Yandex 的图片 OCR 服务,可以将图片里面的文字翻译成另一种文字。(@holoto_ _投稿)
文件上传到一半突然断了,往往只能重新上传。tus 是一个允许断点上传的轻量级协议,可以从中断的地方继续上传。官方提供开源的客户端和服务端实现。
跨平台的 Gameboy 游戏模拟器。
手绘图,然后保存成 PPT 的在线服务。
JAB 码是彩色二维码方案,可以比黑白二维码写入多得多的信息。
自定义 Emoji 图片。(@kt286_ _投稿)
谷歌推出的图像压缩工具,代码开源。官网可以在线压缩图片,而且可以转换图片格式(比如 webp 转 jpg)。(@Seven-Steven 投稿)
该网站收集已经泄漏的密码。你可以输入自己的密码,看看有没有泄漏。(@DoctorLai_ _投稿)
可以编辑、修改各种音频文件的 Python 库。
很多公司会在浏览器的控制台隐藏信息,这个网站收集这类有隐藏信息的网站。
本文作者讲述如何将红米手机重刷系统,剔除了所有谷歌相关的服务。
有人用中国古代《易经》的六十四卦象,作为二维码的图像,编码和解码库都已经开源了。
互联网早期是没有 DNS 系统的,所有域名与 IP 地址的映射关系都保存在一个 hosts.txt 文件里面,该文件起到 DNS 系统的作用。这个网站收集了各个时期的 hosts.txt 文件。
介绍排版的基本知识。
一个分布式的社交网络,使用 ActivePub 协议,可以与其他使用该协议的应用交换信息。
这个网站测试你的色彩分辨能力,检测有无色盲。它显示四个色带,每个色带头尾的色块是固定的,中间的色块都打乱了,你必须将它们还原成正确的顺序。
漫威公司将自己的漫画资源做成 API 开放。
一个针对初学者的 Python IDE(集成编程环境),界面清爽简单,可用于儿童的编程教育。
Pentax 相机开放了 SDK,开发者可以自己编写程序,从 PC 或手机控制相机。
Markdown 文档站点生成器。
EXIF 是照片包含的元数据,这个网站可以查看照片的元数据。
JavaScript 语言编写的 Markdown 文章风格检查器。
该数据库覆盖全球180多个国家的公众假期。
中文繁体和简体互相转换的开源工具,C 语言开发的。
一种字体,据称有助于增强记忆。
dbxfs 允许用户将 Dropbox 目录挂载到本地文件系统。
Python 的图形界面库,最大特点就是采用了 HTML 界面。脚本加入这个库以后,可以生成网页接口,使用浏览器访问。
美国航空航天局开源了火星漫游车的设计。完全使用市场上可以买到的材料,爱好者就能做出自己的漫游车。它使用树莓派作为车载控制中心,使用安卓手机或 xbox 手柄遥控。
从 PDF 文件(非扫描)里面提取表格的 Python 库。
与谷歌一样,Bing 也提供图像搜索。但是,它还带有裁剪功能,可以只搜索图像的一部分。
一个网页游戏,玩家是创业公司的创始人,模拟经营这家公司,完成各种任务。
一个可以在网页运行的 BASIC 语言实现。
一个代码协同的网站。你新建一个代码片段,然后把网址分享给其他人,就可以看到他们的实时编辑。
将代码保存成图片的开源服务,可以用来上传到社交媒体。
一个有点玩笑性质的项目。它可以将 Windows 画板程序制作的程序图片,编译执行。
有时候,系统通过鼠标判断用户是否走开了。这个工具可以让鼠标保持运行。
一个 13KB 的网页小游戏。
Mac 的屏保程序,会显示一段文学作品的段落,里面包含了当前时间。
一个在线编写五线谱的工具,可以实时听到编写的旋律。
一个架设在本地的网络书签管理系统,会自动抓取书签内容,并生成标签和摘要,使用 django 框架开发。
谁说密码一定是字符?这个网站的密码是图片。图片密码有两种用法,一种用法是上传某张图片作为密码,另一种是给定一张图片,你在上面点击几个只有自己知道的位置。
一个用于操作图片的 Python3 模块。
该服务通过 URL 接受参数,然后生成图表,以图片形式返回。
Picular 会抓取谷歌的图片搜索结果,提取并显示每张图片的主要颜色。上图是搜索"夏天"的颜色
Windows 95 被做成了一个 Electron App,可以用来玩 DOS 游戏,底层是 x86 的JS虚拟机。
Windows 2000 通过 WebAssembly,可以在浏览器里运行了。
mobiledoc 是一种数据格式,用于所见即所得编辑器的底层数据。mobiledoc-kit 是这种数据格式的开发工具,开发者可以基于这套工具方便地做出编辑器。
Kakoune 是一个类似 Vim 的编辑器,它的主要特点是更友好合理的命令语法。 Vim 的命令是"动词 + 对象",Kakoune 的命令是"对象 + 动词"。
一个生成对称图形的网站,可以用来生成墙纸。
中国护照排在第55位,免签国29个,落地签国49个。
这是一个开源的低成本单板电脑,可以在家里自己制造。
美国航天局 NASA 开源了火星车的简化版本,它的原型是真正的火星漫游车。据说这个项目全部采用市面能买到的材料,爱好者可以搭建自己的火星车。
ArdaCraft 是一个在 MineCraft 里面重现电影《魔戒》的中土世界的项目。
用于将 Markdown 文件转为幻灯片,并在独立窗口播放的工具。
新华字典数据库和 API,收录 14032 条歇后语,16142 个汉字,264434 个词语,31648 个成语。
一个在线聊天网站,可以随意新建聊天频道。用户在某个频道里面聊天。
Byte 杂志是上个世纪很有影响的 IT 杂志,archive.org 提供免费下载。
这个网站收集各种各样的机械键盘。
一个 Python 语言专用的代码编辑器。
生成模拟电路的网站。
一个侦测用户眨眼的装置,让用户通过眨眼控制电脑,可以供霍金那样的用户使用。
Go 语言写的自然语言处理工具,目前只能处理英语。
一个网页游戏,玩家通过组合虚拟电路,组装出一台计算机。
一个波兰程序员为了学中文,制作了一个工具:输入常用汉字,自动生成学习卡片。
该网站提供50个国家或地区的虚拟电话号码,可以用来接收当地短信或来电。
在线的混淆器工具(obfuscator),将 C/C++ 改成混淆难懂的代码。
这是一个 Chrome 浏览器的插件,可以让任何网站变成"夜晚模式"。
Skia 是一个由C++编写的开源图形库,能在低端设备如手机上呈现高品质的2D图形。截至2017年,它已被应用于 Mozilla Firefox、Google Chrome、Chrome OS、Sublime Text、Android、Flutter 框架,作为底层图形库。
一款类似塞尔达的 WebGL 游戏,制作非常精美,推荐试玩。
一个美国程序员业余喜欢演奏风琴。他把自己的50多首演奏录音,免费放到网上,我觉得很好听。
有些文档需要有代码效果演示,docz 就是这一类文档的专用生成工具,可以定制页面组件。
私有的聊天服务器,即自己搭建类似 QQ 的聊天服务。
作者用 Python + ADB 做的 Bot。它会自动打开 APP 对视频截图,然后请求腾讯的 人脸识别 API,当颜值大于门限值 BEAUTY_THRESHOLD时,点赞并关注,接着翻到下一页,重复进行该过程。
Python 语言的格式要求特别高,因为它通过缩进判断语法区块。现在有了这个工具,就可以自动化格式化 Python 代码,所以你不用担心写出风格一团糟的代码。
自动生成背景图片的工具网站,现在提供五种风格,每种都可以定制,看上去赏心悦目。
一个开源的自动驾驶玩具车,在小车上面绑了一个树莓派和摄像头。
开源的手表操作系统。
语义版本(SemVer)现在很流行,就是根据 API 的变动为版本编号。这个网址提出另一种编号方法:根据日历编号,版本号就是发布日期。很多软件已经在用了,最有名的就是 Ubuntu,它的版本格式是 yy.mm,比如 16.04。
谷歌开源自家的顶级域名注册管理系统,也就是 https://registry.google 背后的系统。如果你是域名注册商,可能用得到这个东西。
有的网络服务限制 IP 地址,比如只有中国的 IP 地址才能使用。这个 Chrome 插件点击一下就可以改变浏览器的 IP 地址,从而绕过这些限制。免费版只能改成美国的 IP 地址。
Go 语言实现的高性能 http、https、websocket、tcp、udp、socks5 代理服务器。
ReactOS 是一个开源的操作系统,目标是兼容 Windows,能够运行 Windows 的应用程序和驱动程序。它只能安装在 FAT16 或者 FAT32 的硬盘分区上面。
麻省理工学院的入门课程,介绍 Linux 系统使用者需要掌握的各种基本工具,适合刚入门的初级用户。
该仓库收集中科大计算机学院的课程资源, 包括课程电子版书籍、参考书、slides(ppt)、考试试卷、学习心得、一部分习题答案。(@mbinary 收集)
Crash Course 是一个 Youtube 的教育频道。B站上面有很多翻译小组。他们组成了一个联盟防止翻译重复,并提供了索引。(@showerc 投稿)
过去9年,全球超过600所高校,在网上发布了超过10000门公开课程。本文收集了最近发布的600门课程,基本都是英文的。
Youtube上有一个 CrashCourse 系列课程,介绍各个学科的比较基础的知识,对初学者很有用。不仅有理科的数据、计算机科学,也有生物、历史之类的课程。B 站有 CrashCourse 字幕组。(@chixuchao 投稿)
《哥德尔、埃舍尔、巴赫》一书的解读。
志愿者从 Youtube 搬到 B 站的40集视频教程。
哈佛大学游戏开发课程 CS50,提供讲课视频、课程笔记、PPT 和作业等资料。
《Facebook 机器学习指南》是由 Facebook 广告机器学习团队开发的六部分的视频系列。该系列分享了最好的现实世界实践,并提供了如何将机器学习功能应用于实际问题的实用技巧。
1xx 编号的课程都是本科生的基础课程,我看了一下,讲的是 Python、基础的统计学知识和数学模型,提供免费的课程视频和PPT 下载.
很多开放课程的仓库放在 GitHub 上面,GitHub 官方列出了最受欢迎的20个仓库。
加州大学伯克利分校的视频课程《Foundations of Data Science》(数据科学基础),现在上网了。报名学习是免费的,如果需要证书才收费。
课程分成三个部分,每个部分需要5个星期学习,都由加大的老师亲自教授。整个课程针对初学者,不需要任何统计学或编程的基础。
第一部分:Python 数据处理
第二部分:抽样推断
第三部分:预测与机器学习