|git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git|
|git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git|
|git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git|
- Keeping CALM: when distributed consistency is easy
- What Every Programmer Should Know About Memory
- Oxide: The Essence of Rust
- File systems unfit as distributed storage backends: lessons from 10 years of Ceph evolution
- Modern B-Tree Techniques
- In Search of an Understandable Consensus Algorithm
- The Art of Doing Science and Engineering
Client sends HTTP request → Nginx chooses the appropriate handler based on the location config → (if applicable) load-balancer picks a backend server → Handler does its thing and passes each output buffer to the first filter → First filter passes the output to the second filter → second to third → third to fourth → etc. → Final response sent to client
The hardware is initialized.The most important part of this step is setting up the clock that the CPU needs to run the code. This is usually done by programming a PLL (essentially a programmable clock). If there is not clock going to the CPU, the CPU is essentially dead. The other part of hardware initialization is initializing the interrupt handling hardware.
Memory segments are initialized.Memory segments such as .bss (for uninitialized data), .data (for initialized data such as static variables, global variables, local static variables, addresses of functions, and function pointers), and .text (where the actual code resides) are initialized and a valid stack is set up.
Command line arguments are received.This may not be relevant in embedded systems as in embedded systems we don’t usually call main() with arguments
The stack pointer is configured.This is necessary because the program needs to know where to start from.
- Implementing the main feature first
- Writing the test afterwards
- Running the test to see it succeed
- Commenting out critical parts of the feature code
- Running the test to see it fail
- Uncommenting feature code to its original state
- Running the test to see it succeed again
- Commiting the code
> telnet exampledomain.com 25 Trying 126.96.36.199... Connected to exampledomain.com (188.8.131.52). Escape character is '^]'. 220-server1.exampledomain.com ESMTP Exim 4.66 #1 Wed, 09 May 2007 23:55:12 +0200 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail. > EHLO exampledomain.com 250-server1.exampledomain.com Hello [184.108.40.206]