Read "Streaming Systems" 1&2, Streaming 101 Read "F1, a distributed SQL database that scales" Read "Zanzibar, Google’s Consistent, Global Authorization System" Read "Spanner, Google's Globally-Distributed Database" Read "Designing Data-intensive applications" 12, The Future of Data Systems IOS development with Swift Read "Designing Data-intensive applications" 10&11, Batch and Stream Processing Read "Designing Data-intensive applications" 9, Consistency and Consensus Read "Designing Data-intensive applications" 8, Distributed System Troubles Read "Designing Data-intensive applications" 7, Transactions Read "Designing Data-intensive applications" 6, Partitioning Read "Designing Data-intensive applications" 5, Replication Read "Designing Data-intensive applications" 3&4, Storage, Retrieval, Encoding Read "Designing Data-intensive applications" 1&2, Foundation of Data Systems Three cases of binary search TAMU Operating System 2 Memory Management TAMU Operating System 1 Introduction Overview in cloud computing 2 TAMU Operating System 7 Virtualization TAMU Operating System 6 File System TAMU Operating System 5 I/O and Disk Management TAMU Operating System 4 Synchronization TAMU Operating System 3 Concurrency and Threading TAMU Computer Networks 5 Data Link Layer TAMU Computer Networks 4 Network Layer TAMU Computer Networks 3 Transport Layer TAMU Computer Networks 2 Application Layer TAMU Computer Networks 1 Introduction Overview in distributed systems and cloud computing 1 A well-optimized Union-Find implementation, in Java A heap implementation supporting deletion TAMU Advanced Algorithms 3, Maximum Bandwidth Path (Dijkstra, MST, Linear) TAMU Advanced Algorithms 2, B+ tree and Segment Intersection TAMU Advanced Algorithms 1, BST, 2-3 Tree and Heap TAMU AI, Searching problems Factorization Machine and Field-aware Factorization Machine for CTR prediction TAMU Neural Network 10 Information-Theoretic Models TAMU Neural Network 9 Principal Component Analysis TAMU Neural Network 8 Neurodynamics TAMU Neural Network 7 Self-Organizing Maps TAMU Neural Network 6 Deep Learning Overview TAMU Neural Network 5 Radial-Basis Function Networks TAMU Neural Network 4 Multi-Layer Perceptrons TAMU Neural Network 3 Single-Layer Perceptrons Princeton Algorithms P1W6 Hash Tables & Symbol Table Applications Stanford ML 11 Application Example Photo OCR Stanford ML 10 Large Scale Machine Learning Stanford ML 9 Anomaly Detection and Recommender Systems Stanford ML 8 Clustering & Principal Component Analysis Princeton Algorithms P1W5 Balanced Search Trees TAMU Neural Network 2 Learning Processes TAMU Neural Network 1 Introduction Stanford ML 7 Support Vector Machine Stanford ML 6 Evaluate Algorithms Princeton Algorithms P1W4 Priority Queues and Symbol Tables Stanford ML 5 Neural Networks Learning Princeton Algorithms P1W3 Mergesort and Quicksort Stanford ML 4 Neural Networks Basics Princeton Algorithms P1W2 Stack and Queue, Basic Sorts Stanford ML 3 Classification Problems Stanford ML 2 Multivariate Regression and Normal Equation Princeton Algorithms P1W1 Union and Find Stanford ML 1 Introduction and Parameter Learning

Quick Reference of Vim


Why Vim

Just because your workflow will be interrupted frequently when navigating your cursor is needed. But you can navigate easily with Vim compared with other text editor. Though it will take some time to get used to Vim, but in the long run, it’s definitely worth it.

Here is quick reference of the most commonly used vim command, hope it will help. So let’s get started!


Mode matters!

command mode

Where you start with and you will always here when not editing

insert mode

  • insert, i or I to insert at current position or beginning
  • append, a or A to append after current position or end
  • open, o or O to open a new line below or above

last line mode

Enter command : in command mode(normal mode) to enter, and you will be able to perform amazing tasks.

  • :q, quit
  • :q!, force quit, changes will not be save
  • :wq, write and quit
  • :!ls, you can issue linux or unix commands here
  • :set number, you can issue configuration for this session


  • dw, delete word from cursor on
  • db, delete word backward
  • dd, delete line(couldn’t be more convenient)
  • d$or D, delete to end of line
  • d^, delete to beginning of line
  • x, delete character


Basic the same with deletion but begin with y not d.

  • yw, copy word from cursor on
  • yb, copy word backword
  • yy, copy current line(yy and p combo is very convenient)
  • y$, copy to end of current line
  • y^, copy to beggining of current line
  • v, start to copy text block
  • V, linewise copy


Used after delete or yank to recover lines

  • p, paste below cursor
  • P, paste above cursor
  • u, undo last change
  • U, restore line


Use to change word

  • cw, change current word to a new word from cursor
  • ciw, change inner word
  • :/, search forward
  • :?, search backword
  • n, next
  • hjkl to navigate around
  • gg to file beginning
  • G to file end
  • 0 or ^ to beginning of line
  • $ to end of line

Resize windows

  • resize 60
  • res +5
  • vertical res +5
  • vertical resize 80


Useful for some cases, I fall in love with vim mode when I know can be replaced with `jj` command.

  • add inoremap jj <Esc> to file ~/.vimrc
  • also you can enable Esc by adding inoremap <Esc> <Nop>

Creative Commons License
Melon blog is created by melonskin. This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
© 2016-2019. All rights reserved by melonskin. Powered by Jekyll.