Stanford CS230: Career Advice for the AI Era

AI is rapidly changing software engineering: the cost of writing code continues to fall, the tasks engineers can complete are becoming more and more complex, and the bottleneck of product development is also shifting. This article summarizes five suggestions on AI career development shared in CS230 - understand changes, choose peers, measure efforts with output, lay a solid technical foundation, and pay attention to Small AI.

Translation: Linux I/O Multiplexing - select vs. poll vs. epoll

Introduction  Before reading this article, you can first understand the five I/O models of Liunx  References: I/O Models –Section 6.2 of “UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking” by Richard Stevens The following is the text of the article  One of the basic concepts of Linux (actually Unix) is that everything in Unix/Linux is a file. Each process has a file descriptor table that points to files, sockets, devices, and other operating system objects related to the process.

Translation: Domain-Driven Design - Everything You Always Wanted to Know (1)

Domain-Driven Design original address As a personal code base grows, its complexity inevitably increases. As this happens, it becomes very difficult to maintain the organization and structure of the code as originally intended, which is known as “software entropy”. After a series of iterations, maintaining good focus points and correctly decoupling classes and modules becomes more challenging if strict architectural guidelines are not enforced. In a traditional Model-View-Controller (MVC) structure, the “M” layer would retain all business logic but provide no clear guidelines on how to properly delineate responsibilities.

A Practical Introduction to Go Assembly (2)

Function call from assembly perspective  Let’s start with a simple example: 1 2 3 4 5 6 7 8 9 10 package main func main() { add(1, 1) } func add(a, b int64) (c int64) { c = a + b return }  After executing the go tool compile -S compliation_add.go command, the assembly code is as follows 1 2 3 4 5 6 7 .

A Practical Introduction to Go Assembly (1)

Program storage space layout  A process is an executing program instance. Each instance has its own address space and execution state. A program becomes a process when the operating system adds the appropriate information to the kernel data structures and allocates the necessary resources to run the program code.  A thread is an abstract data type that represents a thread of execution within a process. A thread has its own execution stack, program counter value, register set and state.

CAP and a Comparison of Service Discovery Systems

Overview of CAP theory **A distributed system can only satisfy at most two of the three requirements of consistency (consistency), availability (Availability) and partition tolerance (Partition tolerance) at the same time. ** Introduction Overview of CAP theory: CAP theory of distributed systems Consistency model  Consistency refers to all nodes see the same data at the same time, that is, after the update operation is successful and returned to the client, the data of all nodes at the same time is completely consistent.

Understanding I/O: Random and Sequential Access

Transfer: https://blog.csdn.net/BaiWfg2/article/details/52885287   Storage for DBAs: Ever been to one of those sushi restaurants where the food comes round in dishes on a conveyor belt? As each dish travels around the loop you eye it up and, as long as you can make your mind up in time, grab it. However, if you are as indecisive as me, there’s a chance it will be out of range before you come to your senses – in which case you have to wait for it to complete a further full revolution before getting another chance.

Use a Mutex or a Channel?

Use a sync.Mutex or a channel?  Gives us 3 channel usage scenarios respectively: 1. Transfer ownership of data 2. Assign work units 3. Convey asynchronous results Usage scenarios of 2 mutex: 1. Cache 2. Status Chapter 2 “Go’s Philosophy on Concurrency” in the book “Concurrency In Go” also has a decision tree and detailed discussion Summary Go implements the CSP communication model through channels, which are mainly used for message passing and event notification between goroutines.