AWS (4) Akka (1) Algorithm (5) BFS (4) Backtracking (18) BinarySearch (2) Book (8) Business (5) Career (1) Computer Science (7) Cooking (1) CordCutter (4) Cycling (2) DFS (1) DP (23) DSU (4) DataStructure (1) EdgeOS (11) Finance (7) Go (13) Hard (32) HomeNetwork (26) HomeSecurity (2) IoT (6) Java (9) Jekyll (1) Kotlin (1) Learning (1) Leetcode (312) Life (1) Linux (5) NAS (11) Networking (5) Personal Finance (11) Photography (3) Politics (3) Python (22) QuickSelect (1) ReservoirSampling (2) Review (55) Ruby (1) SQL (3) Scala (18) SlidingWindow (5) StateMachine (1) System Design (2) TopologicalSort (3)

 AWS (4)

Lambda-based CDK Custom Resource with Input and Output
Work with NoSQL - a Few Lessons
Build the Cloud: Customer Adoption for Infrastructure-as-a-Service
AWS Well-Architected Framework: A Note

 Akka (1)

Akka Notes

 Algorithm (5)

Segment Tree
Breath-First Search
Topological Sorting
Depth First Search
Disjoint Set Union

 BFS (4)

Leetcode 310: Minimum Height Trees
Leetcode 323: Number of Connected Components in an Undirected Graph
Leetcode 286: Walls and Gates
Leetcode 279: Perfect Squares

 Backtracking (18)

Leetcode 351: Android Unlock Patterns
Leetcode 306: Additive Number
Leetcode 320: Generalized Abbreviation
Leetcode 52: N-Queens II
Leetcode 51: N-Queens
Leetcode 257: Binary Tree Paths
Leetcode 216: Combination Sum III
Leetcode 140: Word Break II
Leetcode 131: Palindrome Partitioning
Leetcode 93: Restore IP Addresses
Leetcode 79: Word Search
Leetcode 78: Subsets
Leetcode 77: Combinations
Leetcode 43: Permutations II
Leetcode 37: Sudoku Solver
Leetcode 40: Combination Sum II
Leetcode 46: Permutations
Leetcode 39: Combination Sum

 BinarySearch (2)

Leetcode 81: Search in Rotated Sorted Array II
Leetcode 33: Search in Rotated Sorted Array

 Book (8)

Book Notes for "The Time-Crunched Cyclist"
《美国真相:民众、政府和市场势力的失衡与再平衡》书摘
《全球化的悖论》书摘
《文明、现代化、价值投资与中国》书摘
《投资中最简单的事》书摘
Notes: Common Sense on Mutual Funds
Notes: A Random Walk Down Wall Street: The Time-Tested Strategy for Successful Investing
Notes - Secrecy World: Inside the Panama Papers Investigation of Illicit Money Networks and the Global Elite

 Business (5)

Wharton on Coursera: Introduction to Operations Management
Wharton on Coursera: Introduction to Marketing
Wharton on Coursera: Managing Social and Human Capital
Wharton on Coursera: Introduction to Financial Accounting
Wharton on Coursera: Introduction to Corporate Finance

 Career (1)

4年AWS工作总结:从 college hire 到 senior 的一点总结

 Computer Science (7)

Distributed System Reading - Distributed Time
Distributed System Reading - Introduction
Coursera Programming Languages, Part C
Coursera Programming Languages, Part B
Coursera Programming Languages, Part A
MTU vs. MSS
Udacity OS Course

 Cooking (1)

在美国如何正确购买猪肉 Every Cut of Pork Explained

 CordCutter (4)

Secure Home Network: Using Chromecast across VLANs
Cord Cutter: Enhance Your TV with Chromecast with Google TV
Secure Home Network - Network Design Considerations for Cord Cutters
Secure Home Network - Using AirPlay Across VLANs

 Cycling (2)

Book Notes for "The Time-Crunched Cyclist"
A Brief Chat about Tech in Road Cycling

 DFS (1)

Leetcode 332: Reconstruct Itinerary

 DP (23)

Leetcode 97: Interleaving String
Leetcode 72: Edit Distance
Leetcode 368: Largest Divisible Subset
Leetcode 325: Maximum Size Subarray Sum Equals k
Leetcode 338: Counting Bits
Leetcode 322: Coin Change
Leetcode 320: Generalized Abbreviation
Leetcode 276: Paint Fence
Leetcode 10: Regular Expression Matching
Leetcode 256: Paint House
Leetcode 254: Factor Combinations
Leetcode 221: Maximal Square
Leetcode 213: House Robber II
Leetcode 198: House Robber
Leetcode 140: Word Break II
Leetcode 139: Word Break
Leetcode 132: Palindrome Partitioning II
Leetcode 91: Decode Ways
Leetcode 64: Minimum Path Sum
Leetcode 55: Jump Game
Leetcode 63: Unique Paths II
Leetcode 32: Longest Valid Parentheses
Leetcode 53: Maximum Subarray

 DSU (4)

Leetcode 305: Number of Islands II
Leetcode 261: Graph Valid Tree
Leetcode 200: Number of Islands
Disjoint Set Union

 DataStructure (1)

Disjoint Set Union

 EdgeOS (11)

Secure Home Network: Enable Hardware Offloading on EdgeRouter
Secure Home Network: Add Remote-Access VPN to EdgeRouter
Secure Home Network: Disable EdgeOS SSH and GUI Access from WAN Interface
Secure Home Network: Access Your Home Assistant from Internet
Secure Home Network: Configure IPv6 for Your Home Network
Secure Home Network: Using Chromecast across VLANs
Secure Home Network - Troubleshoot DHCP Problems
Secure Home Network - Using HomeKit Devices Across VLANs
Secure Home Network - Using AirPlay Across VLANs
Secure Home Network - Isolating Connected Devices with VLAN
Secure Home Network - Device and Management Setup

 Finance (7)

《文明、现代化、价值投资与中国》书摘
《投资中最简单的事》书摘
Notes - Secrecy World: Inside the Panama Papers Investigation of Illicit Money Networks and the Global Elite
Manipulate Financial Data in Python
Financial Markets
Numpy Cheet Sheet
Pandas Cheet Sheet

 Go (13)

GoLang: Formatted Printing
GoLang: Memory Allocation
GoLang: Error Handling
Go-Misc
GoLang: Data Structures
GoLang: Concurrency
Go-Interfaces
GoLang: Structures and Methods
GoLang: Functions
GoLang: Flow Control
GoLang: Basic Types
GoLang: Variables
GoLang: Packages

 Hard (32)

Leetcode 97: Interleaving String
Leetcode 87: Scramble String
Leetcode 85: Maximal Rectangle
Leetcode 84: Largest Rectangle in Histogram
Leetcode 76: Minimum Window Substring
Leetcode 72: Edit Distance
Leetcode 305: Number of Islands II
Leetcode 296: Best Meeting Point
Leetcode 295: Find Median from Data Stream
Leetcode 272: Closest Binary Search Tree Value II
Leetcode 68: Text Justification
Leetcode 57: Insert Interval
Leetcode 52: N-Queens II
Leetcode 51: N-Queens
Leetcode 45: Jump Game II
Leetcode 10: Regular Expression Matching
Leetcode 220: Contains Duplicate III
Leetcode 200: Number of Islands
Leetcode 142: Linked List Cycle II
Leetcode 134: Gas Station
Leetcode 132: Palindrome Partitioning II
Leetcode 146: LRU Cache
Leetcode 680: Valid Palindrome II
Leetcode 91: Decode Ways
Leetcode 81: Search in Rotated Sorted Array II
Leetcode 41: First Missing Positive
Leetcode 42: Trapping Rain Water
Leetcode 37: Sudoku Solver
Leetcode 32: Longest Valid Parentheses
Leetcode 30: Substring with Concatenation of All Words
Leetcode 25: Reverse Nodes in k-Group
Leetcode 4: Median of Two Sorted Arrays

 HomeNetwork (26)

Secure Home Network: Enable Hardware Offloading on EdgeRouter
Secure Home Network: Add Remote-Access VPN to EdgeRouter
Secure Home Network: Disable EdgeOS SSH and GUI Access from WAN Interface
Secure Home Network: Access Your Home Assistant from Internet
Secure Home Network: Create Your Own Syslog Server on Synology NAS
My Photo Management and Editing Workflow
Make Your Home Security System Smart with EnvisaLink
Secure Home Network: Add Security Cameras
Secure Home Network: Configure Link Aggregation for Synology NAS and UniFi Switch
Secure Home Network: Make Your IoT Devices Compatible with Apple HomeKit with Homebridge
Secure Home Network: How to Connect Synology NAS to Multiple VLANs
Secure Home Network: Configure IPv6 for Your Home Network
Secure Home Network: Build Your Own Private Cloud with NAS
Secure Home Network: Using Chromecast across VLANs
Secure Home Network - Network Design Considerations for Cord Cutters
Secure Home Network - Place APs for Optimal Coverage
Secure Home Network - Set Up a Plex Server
Secure Home Networking: IoT Automation with Home Assistant
Secure Home Network - Troubleshoot DHCP Problems
Secure Home Network - Extend WiFi Coverage with Multiple APs
Secure Home Network - Backup Your Configurations
Secure Home Network - Block Ad and Tracking with Pi-Hole
Secure Home Network - Using HomeKit Devices Across VLANs
Secure Home Network - Using AirPlay Across VLANs
Secure Home Network - Isolating Connected Devices with VLAN
Secure Home Network - Device and Management Setup

 HomeSecurity (2)

Make Your Home Security System Smart with EnvisaLink
Secure Home Network: Add Security Cameras

 IoT (6)

Secure Home Network: Access Your Home Assistant from Internet
Make Your Home Security System Smart with EnvisaLink
Secure Home Network: Add Security Cameras
Secure Home Network: Make Your IoT Devices Compatible with Apple HomeKit with Homebridge
Secure Home Networking: IoT Automation with Home Assistant
Secure Home Network - Isolating Connected Devices with VLAN

 Java (9)

Java 8 Functional Interface
Aspect-Oriented Programming and AspectJ
Try-with-Resource Statements in Java
Java JVM
Java GC
Java Operator Precedence
Java 8 Stream
Java Cheet Sheet
Create Java List from Individual Objects

 Jekyll (1)

Add a Table of Contents to Jekyll Blog Written in Markdown

 Kotlin (1)

Kotlin Coroutines

 Learning (1)

Docker —— 从入门到实践

 Leetcode (312)

Leetcode 405: Convert a Number to Hexadecimal
Leetcode 402: Remove K Digits
Leetcode 401: Binary Watch
Leetcode 404: Sum of Left Leaves
Leetcode 400: Nth Digit
Leetcode 399: Evaluate Division
Leetcode 398: Random Pick Index
Leetcode 397: Integer Replacement
Leetcode 396: Rotate Function
Leetcode 395: Longest Substring with At Least K Repeating Characters
Leetcode 394: Decode String
Leetcode 393: UTF-8 Validation
Leetcode 392: Is Subsequence
Leetcode 390: Elimination Game
Leetcode 389: Find the Difference
Leetcode 388: Longest Absolute File Path
Leetcode 387: First Unique Character in a String
Leetcode 386: Lexicographical Numbers
Leetcode 385: Mini Parser
Leetcode 384: Shuffle an Array
Leetcode 383: Ransom Note
Leetocde 382: Linked List Random Node
Leetcode 380: Insert Delete GetRandom O(1)
Leetcode 379: Design Phone Directory
Leetcode 378: Kth Smallest Element in a Sorted Matrix
Leetcode 377: Combination Sum IV
Leetcode 376: Wiggle Subsequence
Leetcode 375: Guess Number Higher or Lower II
Leetcode 374: Guess Number Higher or Lower
Leetcode 373: Find K Pairs with Smallest Sums
Leetcode 372: Super Pow
Leetcode 370: Range Addition
Leetcode 369: Plus One Linked List
Leetcode 97: Interleaving String
Leetcode 87: Scramble String
Leetcode 85: Maximal Rectangle
Leetcode 84: Largest Rectangle in Histogram
Leetcode 76: Minimum Window Substring
Leetcode 72: Edit Distance
Leetcode 368: Largest Divisible Subset
Leetcode 366: Find Leaves of Binary Tree
Leetcode 365: Water and Jug Problem
Leetcode 364: Nested List Weight Sum II
Leetcode 362: Design Hit Counter
Leetcode 361: Bomb Enemy
Leetcode 360: Sort Transformed Array
Leetcode 357: Count Numbers with Unique Digits
Leetcode 356: Line Reflection
Leetcode 355: Design Twitter
Leetcode 353: Design Snake Game
Leetcode 351: Android Unlock Patterns
Leetcode 310: Minimum Height Trees
Leetcode 348: Design Tic-Tac-Toe
Leetcode 347: Top K Frequent Elements
Leetcode 345: Reverse Vowels of a String
Leetcode 343: Integer Break
Leetcode 341: Flatten Nested List Iterator
Leetcode 337: House Robber III
Leetcode 334: Increasing Triplet Subsequence
Leetcode 333: Largest BST Subtree
Leetcode 332: Reconstruct Itinerary
Leetcode 331: Verify Preorder Serialization of a Binary Tree
Leetcode 325: Maximum Size Subarray Sum Equals k
Leetcode 338: Counting Bits
Leetcode 322: Coin Change
Leetcode 350: Intersection of Two Arrays II
Leetcode 349: Intersection of Two Arrays
Leetcode 346: Moving Average from Data Stream
Leetcode 339: Nested List Weight Sum
Leetcode 307: Range Sum Query - Mutable
Leetcode 306: Additive Number
Leetcode 311: Sparse Matrix Multiplication
Leetcode 305: Number of Islands II
Leetcode 304: Range Sum Query 2D - Immutable
Leetcode 290: Word Pattern
Leetcode 303: Range Sum Query - Immutable
Leetcode 300: Longest Increasing Subsequence
Leetcode 299: Bulls and Cows
Leetcode 298: Binary Tree Longest Consecutive Sequence
Leetcode 296: Best Meeting Point
Leetcode 295: Find Median from Data Stream
Leetcode 323: Number of Connected Components in an Undirected Graph
Leetcode 320: Generalized Abbreviation
Leetcode 672: Bulb Switcher II
Leetcode 319: Bulb Switcher
Leetcode 318: Maximum Product of Word Lengths
Leetcode 293: Flip Game
Leetcode 289: Game of Life
Leetcode 287: Find the Duplicate Number
Leetcode 286: Walls and Gates
Leetcode 285: Inorder Successor in BST
Leetcode 284: Peeking Iterator
Leetcode 281: Zigzag Iterator
Leetcode 280: Wiggle Sort
Leetcode 279: Perfect Squares
Leetcode 278: First Bad Version
Leetcode 277: Find the Celebrity
Leetcode 276: Paint Fence
Leetcode 272: Closest Binary Search Tree Value II
Leetcode 207: Course Schedule
Leetcode 210: Course Schedule II
Leetcode 68: Text Justification
Leetcode 57: Insert Interval
Leetcode 271: Encode and Decode Strings
Leetcode 270: Closest Binary Search Tree Value
Leetcode 52: N-Queens II
Leetcode 51: N-Queens
Leetcode 45: Jump Game II
Leetcode 10: Regular Expression Matching
Leetcode 268: Missing Number
Leetcode 266: Palindrome Permutation
Leetcode 267: Palindrome Permutation II
Leetcode 261: Graph Valid Tree
Leetcode 259: 3Sum Smaller
Leetcode 177: Nth Highest Salary
Leetcode 176: Second Highest Salary
Leetcode 175: Combine Two Tables
Leetcode 257: Binary Tree Paths
Leetcode 256: Paint House
Leetcode 255: Verify Preorder Sequence in Binary Search Tree
Leetcode 254: Factor Combinations
Leetcode 253: Meeting Rooms II
Leetcode 252: Meeting Rooms
Leetcode 251: Flatten 2D Vector
Leetcode 250: Count Univalue Subtrees
Leetcode 249: Group Shifted Strings
Leetcode 247: Strobogrammatic Number II
Leetcode 246: Strobogrammatic Number
Leetcode 238: Product of Array Except Self
Leetcode 236: Lowest Common Ancestor of a Binary Tree
Leetcode 229: Majority Element II
Leetcode 234: Palindrome Linked List
Leetcode 228: Summary Ranges
Leetcode 227: Basic Calculator II
Leetcode 224: Basic Calculator
Leetcode 230: Kth Smallest Element in a BST
Leetcode 836: Rectangle Overlap
Leetcode 223: Rectangle Area
Leetcode 222: Count Complete Tree Nodes
Leetcode 245: Shortest Word Distance III
Leetcode 244: Shortest Word Distance II
Leetcode 243: Shortest Word Distance
Leetcode 264: Ugly Number II
Leetcode 263: Ugly Number
Leetcode 342: Power of Four
Leetcode 326: Power of Three
Leetcode 231: Power of Two
Leetcode 221: Maximal Square
Leetcode 232: Implement Queue using Stacks
Leetcode 225: Implement Stack using Queues
Leetcode 220: Contains Duplicate III
Leetcode 219: Contains Duplicate II
Leetcode 216: Combination Sum III
Leetcode 211: Add and Search Word - Data structure design
Leetcode 215: Kth Largest Element in an Array
Leetcode 209: Minimum Size Subarray Sum
Leetcode 208: Implement Trie (Prefix Tree)
Leetcode 205: Isomorphic Strings
Leetcode 204: Count Primes
Leetcode 202: Happy Number
Leetcode 201: Bitwise AND of Numbers Range
Leetcode 186: Reverse Words in a String II
Leetcode 187: Repeated DNA Sequences
Leetcode 189: Rotate Array
Leetcode 190: Reverse Bits
Leetcode 191: Number of 1 Bits
Leetcode 199: Binary Tree Right Side View
Leetcode 213: House Robber II
Leetcode 198: House Robber
Leetcode 200: Number of Islands
Leetcode 173: Binary Search Tree Iterator
Leetcode 172: Factorial Trailing Zeroes
Leetcode 168: Excel Sheet Column Title
Leetcode 162: Find Peak Element
Leetcode 161: One Edit Distance
Leetcode 160: Intersection of Two Linked Lists
Leetcode 156: Binary Tree Upside Down
Leetcode 155: Min Stack
Leetcode 145: Binary Tree Postorder Traversal
Leetcode 144: Binary Tree Preorder Traversal
Leetcode 143: Reorder List
Leetcode 142: Linked List Cycle II
Leetcode 141: Linked List Cycle
Leetcode 140: Word Break II
Leetcode 139: Word Break
Leetcode 138: Copy List with Random Pointer
Leetcode 260: Single Number III
Leetcode 137: Single Number II
Leetcode 134: Gas Station
Leetcode 133: Clone Graph
Leetcode 132: Palindrome Partitioning II
Leetcode 131: Palindrome Partitioning
Leetcode 130: Surrounded Regions
Leetcode 129: Sum Root to Leaf Numbers
Leetcode 146: LRU Cache
Leetcode 680: Valid Palindrome II
Leetcode 125: Valid Palindrome
Leetcode 122: Best Time to Buy and Sell Stock II
Leetcode 121: Best Time to Buy and Sell Stock
Leetcode 120: Triangle
Leetcode 119: Pascal's Triangle II
Leetcode 117: Populating Next Right Pointers in Each Node II
Leetcode 116: Populating Next Right Pointers in Each Node
Leetcode 118: Pascal's Triangle
Leetcode 114: Flatten Binary Tree to Linked List
Leetcode 437: Path Sum III
Leetcode 113: Path Sum II
Leetcode 112: Path Sum
Leetcode 111: Minimum Depth of Binary Tree
Leetcode 110: Balanced Binary Tree
Leetcode 109: Convert Sorted List to Binary Search Tree
Leetcode 108: Convert Sorted Array to Binary Search Tree
Leetcode 106: Construct Binary Tree from Inorder and Postorder Traversal
Leetcode 105: Construct Binary Tree from Preorder and Inorder Traversal
Leetcode 103: Binary Tree Zigzag Level Order Traversal
Leetcode 102: Binary Tree Level Order Traversal
Leetcode 101: Symmetric Tree
Leetcode 98: Validate Binary Search Tree
Leetcode 95: Unique Binary Search Trees II
Leetcode 96: Unique Binary Search Trees
Leetcode 93: Restore IP Addresses
Leetcode 92: Reverse Linked List II
Leetcode 91: Decode Ways
Leetcode 90: Subsets II
Leetcode 89: Gray Code
Leetcode 88: Merge Sorted Array
Leetcode 86: Partition List
Leetcode 82: Remove Duplicates from Sorted List II
Leetcode 81: Search in Rotated Sorted Array II
Leetcode 79: Word Search
Leetcode 78: Subsets
Leetcode 77: Combinations
Leetcode 75: Sort Colors
Leetcode 240: Search a 2D Matrix II
Leetcode 74: Search a 2D Matrix
Leetcode 73: Set Matrix Zeroes
Leetcode 71: Simplify Path
Leetcode 64: Minimum Path Sum
Leetcode 61: Rotate List
Leetcode 55: Jump Game
Leetcode 63: Unique Paths II
Leetcode 62: Unique Paths
Leetcode 59: Spiral Matrix II
Leetcode 54: Spiral Matrix
Leetcode 56: Merge Intervals
Leetcode 50: Pow(x, n)
Leetcode 49: Group Anagrams
Leetcode 83: Remove Duplicates from Sorted List
Leetcode 43: Permutations II
Leetcode 41: First Missing Positive
Leetcode 42: Trapping Rain Water
Leetcode 48: Rotate Image
Leetcode 37: Sudoku Solver
Leetcode 40: Combination Sum II
Leetcode 33: Search in Rotated Sorted Array
Leetcode 32: Longest Valid Parentheses
Leetcode 70: Climbing Stairs
Leetcode 69: Sqrt(x)
Leetcode 67: Add Binary
Leetcode 58: Length of Last Word
Leetcode 53: Maximum Subarray
Leetcode 46: Permutations
Leetcode 31: Next Permutation
Leetcode 30: Substring with Concatenation of All Words
Leetcode 39: Combination Sum
Leetcode 38: Count and Say
Leetcode 36: Valid Sudoku
Leetcode 34: Search for a Range
Leetcode 35: Search Insert Position
Leetcode 29: Divide Two Integers
Leetcode 28: Implement strStr()
Leetcode 25: Reverse Nodes in k-Group
Leetcode 24: Swap Nodes in Pairs
Leetcode 27: Remove Element
Leetcode 21: Merge k Sorted Lists
Leetcode 18: 4Sum
Leetcode 17: Letter Combinations of a Phone Number
Leetcode 16: 3Sum Closest
Leetcode 22: Generate Parentheses
Leetcode 19: Remove Nth Node From End of List
Leetcode 20: Valid Parentheses
Leetcode 26: Remove Duplicates from Sorted Array
Leetcode 21: Merge Two Sorted Lists
Leetcode 15: 3Sum
Leetcode 14: Longest Common Prefix
Leetcode 11: Container With Most Water
Leetcode 12: Integer to Roman
Leetcode 9: Palindrome Number
Leetcode 7: Reverse Integer
Leetcode 6: ZigZag Conversion
Leetcode 5: Longest Palindromic Substring
Leetcode 4: Median of Two Sorted Arrays
Leetcode 3: Longest Substring Without Repeating Characters
Leetcode 2: Add Two Numbers
Leetcode 1: Two Sum
Leetcode 274: H-Index
Leetcode 258: Add Digits
Leetcode 136: Single Number
Leetcode 235: Lowest Common Ancestor of a Binary Search Tree
Leetcode 13: Roman to Integer
Leetcode 169: Majority Element
Leetcode 217: Contains Duplicate
Leetcode 171: Excel Sheet Column Number
Leetcode 226: Invert Binary Tree
Leetcode 237: Delete Node in a Linked List
Leetcode 283: Move Zeroes
Leetcode 100: Same Tree
Leetcode 292: Nim Game
Leetcode 66: Plus One
Leetcode 104: Maximum Depth of Binary Tree
Leetcode 206: Reverse Linked List
Leetcode 8: String to Integer (atoi)

 Life (1)

在美国如何正确购买猪肉 Every Cut of Pork Explained

 Linux (5)

How to Mount WD MyCloud on Ubuntu 18.04
How to Setup Passwordless SSH Login
How To Enable Passwordless Sudo For A Specific User in Linux
Everything about Git
VIM Cheetsheet

 NAS (11)

How to Understand Drive's SMART Values
Backup Synology NAS to Cloud Storage (Backblaze)
NAS: Two Years Later
Secure Home Network: Access Your Home Assistant from Internet
Secure Home Network: Create Your Own Syslog Server on Synology NAS
My Photo Management and Editing Workflow
Secure Home Network: Add Security Cameras
Automate Docker Container Updates on Synology NAS
Secure Home Network: Configure Link Aggregation for Synology NAS and UniFi Switch
Secure Home Network: How to Connect Synology NAS to Multiple VLANs
Secure Home Network: Build Your Own Private Cloud with NAS

 Networking (5)

DNS: a Crash Course
GFW, a Technical Analysis
How to Mount WD MyCloud on Ubuntu 18.04
Why (Most) Software-Defined Networking Sucks in Performance
MTU vs. MSS

 Personal Finance (11)

Rental Properties: Repairs vs. Improvements
Report Children's investment Income from UTMA Account
Split Rental Income to Each Property from Consolidated 1099-MISC
The Book on Tax Strategies for the Savvy Real Estate Investor
Be the Lender and Borrower at the Same Time: 401(k) Loans
Notes: Common Sense on Mutual Funds
Notes: A Random Walk Down Wall Street: The Time-Tested Strategy for Successful Investing
Submit 1042-S in TurboTax when Filing as Resident Alien
How to Use Your Roth IRA as an Emergency Fund
Remove Non-Deductible Traditional IRA Contribution
Backdoor Roth

 Photography (3)

Fix the Map Module in Lightroom 6
Import New Lens and Camera Profile into Lightroom 6
My Photo Management and Editing Workflow

 Politics (3)

《美国真相:民众、政府和市场势力的失衡与再平衡》书摘
《全球化的悖论》书摘
《文明、现代化、价值投资与中国》书摘

 Python (22)

Set Up Python Environment
Python Data Class
Python Notes: Closures
Python Notes: Variable Visibility
Python Notes: Decorators
Python Notes: HTTP Requests
Python Notes: Misc
Python Notes: Path and Directory
Python Notes: Web Service
Python Notes: Modules
Python Notes: Collections
Python Notes: File I/O
Python: Notes: Serialization
Python Notes: Imports and Modules
Python Notes: Basics
Python Notes: Classes
Python Notes: Functions
Python Notes: Lists, Tuples, Sets, and Dicts
Python Notes: Basic Types
Python Notes: String
Python Notes: RegEx
Python Notes: Iterator

 QuickSelect (1)

Leetcode 215: Kth Largest Element in an Array

 ReservoirSampling (2)

Leetcode 398: Random Pick Index
Leetocde 382: Linked List Random Node

 Review (55)

Leetocde 382: Linked List Random Node
Leetcode 378: Kth Smallest Element in a Sorted Matrix
Leetcode 375: Guess Number Higher or Lower II
Leetcode 373: Find K Pairs with Smallest Sums
Leetcode 372: Super Pow
Leetcode 370: Range Addition
Leetcode 97: Interleaving String
Leetcode 85: Maximal Rectangle
Leetcode 84: Largest Rectangle in Histogram
Leetcode 76: Minimum Window Substring
Leetcode 72: Edit Distance
Leetcode 368: Largest Divisible Subset
Leetcode 365: Water and Jug Problem
Leetcode 356: Line Reflection
Leetcode 351: Android Unlock Patterns
Leetcode 332: Reconstruct Itinerary
Leetcode 325: Maximum Size Subarray Sum Equals k
Leetcode 307: Range Sum Query - Mutable
Leetcode 311: Sparse Matrix Multiplication
Leetcode 300: Longest Increasing Subsequence
Leetcode 295: Find Median from Data Stream
Leetcode 287: Find the Duplicate Number
Leetcode 279: Perfect Squares
Leetcode 276: Paint Fence
Leetcode 210: Course Schedule II
Leetcode 51: N-Queens
Leetcode 45: Jump Game II
Leetcode 10: Regular Expression Matching
Leetcode 259: 3Sum Smaller
Leetcode 256: Paint House
Leetcode 255: Verify Preorder Sequence in Binary Search Tree
Leetcode 238: Product of Array Except Self
Leetcode 236: Lowest Common Ancestor of a Binary Tree
Leetcode 229: Majority Element II
Leetcode 222: Count Complete Tree Nodes
Leetcode 264: Ugly Number II
Leetcode 221: Maximal Square
Leetcode 220: Contains Duplicate III
Leetcode 215: Kth Largest Element in an Array
Leetcode 200: Number of Islands
Leetcode 142: Linked List Cycle II
Leetcode 134: Gas Station
Leetcode 132: Palindrome Partitioning II
Leetcode 146: LRU Cache
Leetcode 680: Valid Palindrome II
Leetcode 91: Decode Ways
Leetcode 81: Search in Rotated Sorted Array II
Leetcode 41: First Missing Positive
Leetcode 42: Trapping Rain Water
Leetcode 37: Sudoku Solver
Leetcode 32: Longest Valid Parentheses
Leetcode 30: Substring with Concatenation of All Words
Leetcode 25: Reverse Nodes in k-Group
Leetcode 4: Median of Two Sorted Arrays
Leetcode 169: Majority Element

 Ruby (1)

Ruby Notes

 SQL (3)

Leetcode 177: Nth Highest Salary
Leetcode 176: Second Highest Salary
Leetcode 175: Combine Two Tables

 Scala (18)

How to Mock in Scala Unit Tests
Akka Notes
Learning Scala - Operators and Statements
Learning Scala - IO
Learning Scala - Application
Learning Scala - Variables and Types
Learning Scala - Implicits
Learning Scala - Flow Control
Learning Scala - Packges and Import
Learning Scala - Functions
Learning Scala - String
Learning Scala - Scala Maps
Learning Scala - Scala Set
Learning Scala - Scala Sequences
Learning Scala - Scala Arrays
Learning Scala - Scala Collection Basics
Learning Scala - Case Classes and Pattern Matching in Scala
Learning Scala - Object-Oriented Programming in Scala

 SlidingWindow (5)

Leetcode 76: Minimum Window Substring
Leetcode 259: 3Sum Smaller
Leetcode 219: Contains Duplicate II
Leetcode 209: Minimum Size Subarray Sum
Leetcode 30: Substring with Concatenation of All Words

 StateMachine (1)

Leetcode 137: Single Number II

 System Design (2)

Work with NoSQL - a Few Lessons
Design Consideration of a Workflow Engine

 TopologicalSort (3)

Leetcode 207: Course Schedule
Leetcode 210: Course Schedule II
Topological Sorting