2021-12

31日 后疫情时代下美国留学 CS Master 申请纪实


2020-12

31日 下一个五年计划起航 !


2020-06

30日 面试中 LRU / LFU 的青铜与王者


2019-12

31日 不甘当学渣,努力作学霸,最终是学民
22日 LeetCode 分类刷题 —— Segment Tree
15日 LeetCode 分类刷题 —— Sliding Window


2019-11

17日 LeetCode 分类刷题 —— Union Find
10日 LeetCode 分类刷题 —— Bit Manipulation


2019-10

20日 深入 Go 并发原语 — Channel 底层实现
13日 Go reflection 三定律与最佳实践


2019-09

22日 深入研究 Go interface 底层实现
15日 聊聊树状数组 Binary Indexed Tree


2019-08

18日 线段树 Segment Tree 实战
11日 TLS Application-Layer Protocol Negotiation Extension


2019-07

21日 HPACK: Header Compression for HTTP/2
14日 HTTP/2 HPACK 实际应用举例


2019-06

16日 详解 HTTP/2 头压缩算法 —— HPACK
09日 Hypertext Transfer Protocol Version 2 (HTTP/2)


2019-05

26日 HTTP/2 中的常见问题
19日 HTTP/2 中的注意事项
12日 HTTP/2 中的 HTTP 语义


2019-04

28日 HTTP/2 中的帧定义
21日 HTTP/2 中的 HTTP 帧和流的多路复用
14日 解开 HTTP/2 的面纱:HTTP/2 是如何建立连接的


2019-03

17日 HTTPS 温故知新(六) —— TLS 中的 Extensions
10日 HTTPS 温故知新(五) —— TLS 中的密钥计算


2019-02

10日 如何看待软件开发 ?
03日 HTTPS 温故知新(四) —— 直观感受 TLS 握手流程(下)


2019-01

27日 HTTPS 温故知新(三) —— 直观感受 TLS 握手流程(上)
20日 HTTPS 温故知新(二) —— TLS 记录层协议
13日 HTTPS 温故知新(一) —— 开篇
06日 TLS & DTLS Heartbeat Extension


2018-12

23日 The Transport Layer Security (TLS) Protocol Version 1.3
16日 TLS 1.3 Overview of Security Properties
09日 TLS 1.3 Backward Compatibility
02日 TLS 1.3 Implementation Notes


2018-11

25日 TLS 1.3 Compliance Requirements
18日 TLS 1.3 0-RTT and Anti-Replay
11日 TLS 1.3 Cryptographic Computations
04日 TLS 1.3 Alert Protocol


2018-10

28日 TLS 1.3 Record Protocol
21日 TLS 1.3 Handshake Protocol
14日 TLS 1.3 Introduction
07日 秘密的实质——密钥


2018-09

23日 无法预测的根源——随机数
16日 随处可见的公钥证书
09日 无处不在的数字签名
02日 消息认证码是怎么一回事?


2018-08

26日 消息的“指纹”是什么?
19日 翱游公钥密码算法
12日 漫游对称加密算法
05日 密码学概述


2018-07

22日 本站开始支持 QUIC
15日 本站开始支持 TLS 1.3
08日 博客跑分优化
01日 Ghost 博客炫技"新"玩法


2018-06

23日 Ghost 博客升级指南
16日 深入浅出 FlatBuffers 之 FlexBuffers
10日 深入浅出 FlatBuffers 之 Encode
03日 深入浅出 FlatBuffers 之 Schema


2018-05

27日 高效的序列化/反序列化数据方式 Protobuf
24日 高效的数据压缩编码方式 Protobuf
19日 全双工通信的 WebSocket


2018-04

06日 Machine Learning 机器学习笔记
05日 机器学习应用 —— Photo OCR
04日 大规模机器学习中如何优化算法?
03日 推荐系统中的协同过滤和低秩矩阵分解
02日 机器学习中的异常检测问题
01日 PCA 与降维


2018-03

31日 无监督学习
30日 初探支持向量机
29日 设计一个机器学习系统需要考虑哪些方面?
28日 机器学习算法评估
27日 神经网络反向传播实践
26日 神经网络反向传播算法推导
25日 初探神经网络
24日 什么是正则化?
23日 逻辑回归
22日 Octave Matlab 教程
21日 计算参数分析 —— 正规方程法
20日 多元线性回归
19日 如何理解梯度下降?
18日 什么是机器学习?


2018-02

15日 Threes-AI 玩小三传奇 (上)


2018-01

11日 Google S2 是如何解决空间覆盖最优解问题的?


2017-12

30日 程序员如何在技术浪潮的更迭中保持较高的成长速度 ?


2017-11

15日 四叉树上如何求希尔伯特曲线的邻居 ?
03日 Google S2 中的 CellID 是如何生成的 ?


2017-10

27日 神奇的德布鲁因序列
20日 Google S2 中的四叉树求 LCA 最近公共祖先
05日 如何设计并实现一个线程安全的 Map ?(下篇)


2017-09

30日 如何理解 n 维空间和 n 维时空
10日 如何设计并实现一个线程安全的 Map ?(上篇)


2017-08

25日 深入解析 Go 中 Slice 底层实现
12日 高效的多维空间点索引算法 — Geohash 和 Google S2
05日 初探 Go 的编译命令执行过程


2017-07

22日 Go 初学者成长之路
15日 JSConf China 2017 Day Two — End And Beginning
15日 JSConf China 2017 Day One — Change The World
08日 大话大前端时代(一) —— Vue 与 iOS 的组件化


2017-06

24日 揭开 this & that 之迷
17日 Vue 全家桶 + Electron 开发的一个跨三端的应用


2017-05

25日 从 JavaScript 作用域说开去
12日 JavaScript 新手的踩坑日记
03日 iOS 开发者的 Weex 伪最佳实践指北


2017-04

23日 Weex 中别具匠心的 JS Framework
14日 Weex 事件传递的那些事儿


2017-03

31日 由 FlexBox 算法强力驱动的 Weex 布局引擎
18日 Weex 是如何在 iOS 客户端上跑起来的
04日 BeeHive —— 一个优雅但还在完善中的解耦框架


2017-02

25日 iOS 组件化 —— 路由设计思路分析
16日 TCP 进阶
15日 TCP/IP 指南
14日 HTTP 指南
12日 ReactiveCocoa 中 奇妙无比的“宏”魔法


2017-01

07日 ReactiveCocoa 中 RACCommand 底层实现分析


2016-12

31日 ReactiveCocoa 中 RACScheduler 是如何封装 GCD 的
25日 ReactiveCocoa 中 集合类 RACSequence 和 RACTuple 底层实现分析
10日 ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(下)
04日 ReactiveCocoa 中 RACSignal 冷信号和热信号底层实现分析


2016-11

29日 ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(中)
26日 ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(上)
14日 ReactiveCocoa 中 RACSignal 是如何发送信号的


2016-10

30日 Objc 对象的今生今世
22日 Realm 数据库 从入门到“放弃”
15日 iOS 如何实现 Aspect Oriented Programming
02日 Ghost 博客搭建日记


2016-09

30日 神经病院 Objective-C Runtime 出院第三天——如何正确使用 Runtime
17日 神经病院 Objective-C Runtime 住院第二天——消息发送与转发
10日 神经病院 Objective-C Runtime 入院第一天—— isa 和 Class
04日 深入研究 Block 用 weakSelf、strongSelf、@weakify、@strongify 解决循环引用


2016-08

27日 深入研究 Block 捕获外部变量和 __block 实现原理
18日 给 iOS 模拟器“安装” app 文件
10日 手把手教你给一个 iOS app 配置多个环境变量


2016-07

30日 手把手教你利用 Jenkins 持续集成 iOS 项目
24日 函数响应式编程(FRP)从入门到"放弃"——图解RACSignal篇
22日 关于 IB_DESIGNABLE / IBInspectable 的那些需要注意的事
17日 WWDC2016 Session 笔记 - Xcode 8 Auto Layout 新特性
11日 函数响应式编程 ( FRP ) 从入门到"放弃"——基础概念篇
03日 WWDC2016 Session 笔记 - iOS 10 UICollectionView 新特性


2016-06

26日 WWDC2016 Session 笔记 - iOS 10  推送 Notification 新特性
22日 iOS如何优雅的处理“回调地狱 Callback hell ”(二) —— 使用 Swift
20日 如何快速给自己构建一个温馨的"家"——用 Jekyll 搭建静态博客
10日 iOS 如何优雅的处理“回调地狱 Callback hell ”(一) —— 使用 PromiseKit
02日 手把手教你从 Core Data 迁移到 Realm


2016-05

24日 iOS app 旧貌换新颜(一) — Launch Page 让 Logo "飞"出屏幕
15日 微信,QQ 这类 IM app 怎么做——谈谈 Websocket
08日 iOS Core Data 数据迁移 指南
08日 永远到底有多远
02日 Remote debugging on iOS with Safari Web Inspector
01日 iOS Hybrid 框架 —— PhoneGap


2016-04

28日 2016年3月 iOS 面试总结
25日 搭建 Phabricator 我遇到的那些坑
24日 Code review - Phabricator Use guide introduce


2015-07

29日 欢迎使用 Ghost 博客系统


2015-06

13日 Creating a custom theme
12日 Apps & integrations
11日 Organising your content
10日 Managing admin settings
9日 Publishing options
8日 Writing posts with Ghost ✍️
7日 Setting up your own Ghost theme
6日 Advanced Markdown tips
5日 Making your site private
4日 Managing Ghost users
3日 Organising your content with tags
2日 Using the Ghost editor
1日 Welcome to Ghost