prometheus
Home
Books
Github
About
RSS
English
中文
2019
Dec 21
Algorithm in LeetCode —— Segment Tree
Dec 14
Algorithm in LeetCode —— Sliding Window
Nov 16
Algorithm in LeetCode —— Union Find
Nov 09
Algorithm in LeetCode —— Bit Manipulation
Oct 19
Algorithm in LeetCode —— Backtracking
Oct 12
Algorithm in LeetCode —— Stack
Sep 21
Algorithm in LeetCode —— Two Pointers
Sep 14
Algorithm in LeetCode —— Sort
Aug 18
Algorithm in LeetCode —— Linked List
Aug 11
TLS Application-Layer Protocol Negotiation Extension
Jul 21
HPACK: Header Compression for HTTP/2
Jul 14
HTTP/2 HPACK Practical Examples
Jun 16
A Deep Dive into the HTTP/2 Header Compression Algorithm — HPACK
Jun 09
Hypertext Transfer Protocol Version 2 (HTTP/2)
May 26
Common Issues in HTTP/2
May 19
HTTP/2 Considerations
May 12
HTTP Semantics in HTTP/2
Apr 28
Frame Definitions in HTTP/2
Apr 21
HTTP Frames and Stream Multiplexing in HTTP/2
Apr 14
Unveiling HTTP/2: How HTTP/2 Establishes Connections
Mar 17
HTTPS Refresher (6) —— TLS Extensions
Mar 10
HTTPS Refresher (5) —— Key Calculation in TLS
Feb 10
【2018 Year-End Review】How to Think About Software Development?
Feb 02
HTTPS Refresher (4) —— An Intuitive Look at the TLS Handshake Process (Part 2)
Jan 26
HTTPS Refresher (III) —— An Intuitive Look at the TLS Handshake (Part 1)
Jan 20
HTTPS: Reviewing the Old, Learning the New (II) — TLS Record Layer Protocol
Jan 13
HTTPS Revisited (1) —— Introduction
Jan 06
TLS & DTLS Heartbeat Extension
2018
Dec 23
The Transport Layer Security (TLS) Protocol Version 1.3
Dec 16
TLS 1.3 Overview of Security Properties
Dec 09
TLS 1.3 Backward Compatibility
Dec 02
TLS 1.3 Implementation Notes
Nov 25
TLS 1.3 Compliance Requirements
Nov 18
TLS 1.3 0-RTT and Anti-Replay
Nov 11
TLS 1.3 Cryptographic Computations
Nov 04
TLS 1.3 Alert Protocol
Oct 28
TLS 1.3 Record Protocol
Oct 21
TLS 1.3 Handshake Protocol
Oct 13
TLS 1.3 Introduction
Oct 07
The Essence of Secrets—Keys
Sep 23
The Root of Unpredictability—Random Numbers
Sep 15
Ubiquitous Public Key Certificates
Sep 08
Ubiquitous Digital Signatures
Sep 01
What Is a Message Authentication Code?
Aug 26
What Is a Message “Fingerprint”?
Aug 19
Aoyou Public-Key Cryptographic Algorithm
Aug 11
A Tour of Symmetric Encryption Algorithms
Aug 04
Overview of Cryptography
Jul 22
This site now supports QUIC
Jul 14
This site now supports TLS 1.3
Jul 07
Blog Performance Score Optimization
Jun 30
A 'New' Way to Show Off Your Ghost Blog
Jun 23
Ghost Blog Upgrade Guide
Jun 16
FlatBuffers Explained: FlexBuffers
Jun 10
FlatBuffers Explained: Encode
Jun 03
FlatBuffers Explained: Schema
May 27
Efficient Data Serialization/Deserialization with Protobuf
May 24
Protobuf: An Efficient Data Compression Encoding Method
May 19
Full-Duplex Communication with WebSocket
Apr 05
Machine Learning Notes
Apr 04
Machine Learning Application —— Photo OCR
Apr 03
How to Optimize Algorithms in Large-Scale Machine Learning?
Apr 02
Collaborative Filtering and Low-Rank Matrix Factorization in Recommender Systems
Apr 01
Anomaly Detection in Machine Learning
Mar 31
PCA and Dimensionality Reduction
Mar 30
Unsupervised Learning
Mar 29
A First Look at Support Vector Machines
Mar 28
What Should You Consider When Designing a Machine Learning System?
Mar 27
Machine Learning Algorithm Evaluation
Mar 26
Hands-on Neural Network Backpropagation
Mar 25
Derivation of the Neural Network Backpropagation Algorithm
Mar 24
A First Look at Neural Networks
Mar 23
What Is Regularization?
Mar 22
Logistic Regression
Mar 22
Octave Matlab Tutorial
Mar 21
Computational Parameter Analysis —— Normal Equation Method
Mar 20
Multiple Linear Regression
Mar 18
How to Understand Gradient Descent?
Mar 18
What Is Machine Learning?
Feb 14
Threes-AI Plays Threes (Part 1)
Jan 10
How Does Google S2 Solve the Optimal Spatial Coverage Problem?
2017
Dec 29
【2017 Year-End Review】How Programmers Can Keep Growing Fast Amid Waves of Technological Change?
Nov 15
How to Find Hilbert Curve Neighbors on a Quadtree?
Nov 02
How Is the CellID in Google S2 Generated?
Oct 27
The Magical de Bruijn Sequence
Oct 20
Finding the LCA (Lowest Common Ancestor) in Google S2 Quadtrees
Oct 04
How to Design and Implement a Thread-Safe Map? (Part 2)
Sep 30
How to Understand n-Dimensional Space and n-Dimensional Spacetime
Sep 10
How to Design and Implement a Thread-Safe Map? (Part 1)
Aug 25
A Deep Dive into Go Slice Internals
Aug 11
Efficient Multidimensional Spatial Point Indexing Algorithms — Geohash and Google S2
Aug 04
A First Look at How Go Compile Commands Execute
Jul 22
The Go Beginner's Roadmap
Jul 15
JSConf China 2017 Day Two — End And Beginning
Jul 15
JSConf China 2017 Day One — Change The World
Jul 08
Talking About the Big Front-End Era (1) —— Componentization in Vue and iOS
Jun 24
Unraveling the Mystery of this & that
Jun 17
A cross-platform app for three platforms built with the Vue ecosystem + Electron
May 25
Starting with JavaScript Scope
May 12
A JavaScript Newbie’s Pitfall Diary
May 03
A Pseudo-Best-Practices Guide to Weex for iOS Developers
Apr 23
The Ingenious JS Framework in Weex
Apr 14
All About Event Propagation in Weex
Mar 31
Weex Layout Engine Powered by the FlexBox Algorithm
Mar 18
How Weex Runs on the iOS Client
Mar 04
BeeHive —— An elegant decoupling framework still being refined
Feb 25
iOS Modularization — An Analysis of Routing Design
Feb 16
Advanced TCP
Feb 15
TCP/IP Guide
Feb 14
HTTP Guide
Feb 12
The Incredible “Macro” Magic in ReactiveCocoa
Jan 07
Analysis of RACCommand’s Underlying Implementation in ReactiveCocoa
2016
Dec 31
How RACScheduler in ReactiveCocoa Wraps GCD
Dec 25
Analysis of the Underlying Implementation of RACSequence and RACTuple Collections in ReactiveCocoa
Dec 10
Analysis of the Underlying Implementation of All RACSignal Transformation Operations in ReactiveCocoa (Part 2)
Dec 04
Analysis of the Underlying Implementation of Cold and Hot RACSignal Signals in ReactiveCocoa
Nov 29
Analysis of the Underlying Implementation of All RACSignal Transformation Operations in ReactiveCocoa (Part 2)
Nov 26
Analysis of the Underlying Implementation of All RACSignal Transformation Operations in ReactiveCocoa (Part 1)
Nov 14
How RACSignal Sends Signals in ReactiveCocoa
Oct 30
The Life and Times of ObjC Objects
Oct 22
Realm Database: From Beginner to “Giving Up”
Oct 15
How to Implement Aspect-Oriented Programming in iOS
Oct 02
Ghost Blog Setup Diary
Sep 30
Objective-C Runtime Asylum, Day 3 After Discharge—How to Use Runtime Properly
Sep 17
Objective-C Runtime Madhouse, Day 2—Message Sending and Forwarding
Sep 10
Objective-C Runtime in the Mental Hospital: Day 1 — isa and Class
Sep 04
A Deep Dive into Using weakSelf, strongSelf, @weakify, and @strongify in Blocks to Avoid Retain Cycles
Aug 27
In-depth look at how Blocks capture external variables and how __block works
Aug 18
“Install” an app file on the iOS Simulator
Aug 10
A Step-by-Step Guide to Configuring Multiple Environment Variables for an iOS App
Jul 30
Step-by-Step Guide to Using Jenkins for Continuous Integration in iOS Projects
Jul 24
Functional Reactive Programming (FRP): From Getting Started to 'Giving Up'—Illustrated RACSignal
Jul 22
Things to Keep in Mind About IB_DESIGNABLE / IBInspectable
Jul 17
WWDC 2016 Session Notes - New Auto Layout Features in Xcode 8
Jul 11
Functional Reactive Programming (FRP): From Getting Started to 'Giving Up'—Basic Concepts
Jul 03
WWDC 2016 Session Notes - New Features in iOS 10 UICollectionView
Jun 26
WWDC 2016 Session Notes - New Notification Features in iOS 10
Jun 22
How to Elegantly Handle “Callback Hell” in iOS (Part 2) — Using Swift
Jun 20
How to Quickly Build Yourself a Cozy 'Home'—Building a Static Blog with Jekyll
Jun 10
Gracefully Handling “Callback Hell” in iOS (Part 1) — Using PromiseKit
Jun 02
A Step-by-Step Guide to Migrating from Core Data to Realm
May 24
A Fresh New Look for the iOS App (Part 1) — Launch Page Makes the Logo 'Fly' Off the Screen
May 15
How are IM apps like WeChat and QQ built? — A look at Websocket
May 08
iOS Core Data Migration Guide
May 08
How Far Is Forever, Really?
May 02
Remote debugging on iOS with Safari Web Inspector
May 01
iOS Hybrid Framework —— PhoneGap
Apr 28
March 2016 iOS Interview Summary
Apr 25
Pitfalls I Encountered Setting Up Phabricator
Apr 24
Code review - Phabricator Use guide introduce
2015
Jul 29
Welcome to the Ghost blogging platform