diff --git a/zk/Git_rebasing.md b/zk/Git_rebasing.md index 6531c14..8a6ee9c 100644 --- a/zk/Git_rebasing.md +++ b/zk/Git_rebasing.md @@ -3,8 +3,6 @@ tags: - git --- -# Rebasing - Rebasing is a way to integrate changes from one branch into another. In this regarding it is like merging a branch B into another branch A. However rebasing differs from normal merging in the way in which it modifies the Git history. @@ -127,11 +125,11 @@ request. ## Difference from cherry-picking The main difference between the two approaches is that -[cherry-picking](Cherry_picking_a_branch.md) is a more selective -process, where you can pick and choose specific commits that you want to include -in another branch. This can be useful when you only want to apply specific -changes or fixes from one branch to another, without including all the changes -made in the original branch. +[cherry-picking](/zk/Cherry_picking.md) is a more selective process, where you +can pick and choose specific commits that you want to include in another branch. +This can be useful when you only want to apply specific changes or fixes from +one branch to another, without including all the changes made in the original +branch. On the other hand, rebasing is a more comprehensive process that can include all the changes from one branch to another, but it modifies the commit history, diff --git a/zk/HTTPS.md b/zk/HTTPS.md index bd1ecb8..c05974c 100644 --- a/zk/HTTPS.md +++ b/zk/HTTPS.md @@ -3,8 +3,6 @@ tags: [world-wide-web, internet, encryption, servers] created: Friday, December 14, 2024 --- -# HTTPS - The problem with standard, unencrypted HTTP requests is that the data can be captured in transit and be observed or modified by malicious actors. @@ -17,10 +15,10 @@ It utilises two types of encryption to send messages securely: - a single shared key between client and server to encrypt the messages sent between them - asymmetric encryption - - two keys are used: a [public key](./bbdcb54f_public_key_cryptography.md) to - encrypt the data and a private key to decrypt it. The public key can be - shared freely so anyone can encrypt and send data to a peer but only the - peer can receive and decrypt it + - two keys are used: a [public key](/zk/Public_key_cryptography.md) to encrypt + the data and a private key to decrypt it. The public key can be shared + freely so anyone can encrypt and send data to a peer but only the peer can + receive and decrypt it > Symmetric encryption applies once the server has been authenticated and its > public key has been shared with the client. Asymmetric encryption applies at diff --git a/zk/Key_figures_ARPANET.md b/zk/Key_figures_ARPANET.md index d497dfd..9d32759 100644 --- a/zk/Key_figures_ARPANET.md +++ b/zk/Key_figures_ARPANET.md @@ -3,9 +3,7 @@ tags: [internet, ARPANET, ARPA] created: Monday, October 28, 2024 --- -# 4a3dc316_key_figures_ARPANET - -- [Paul Baran](385af4b4_Baran_distributed_networks.md) for his work at RAND on +- [Paul Baran](/zk/Baran_distributed_networks.md) for his work at RAND on distributed networks as an alternative to the extant centralised/de-centralised phone networks. diff --git a/zk/Latches.md b/zk/Latches.md index 46b97a3..8a58dee 100644 --- a/zk/Latches.md +++ b/zk/Latches.md @@ -7,7 +7,7 @@ tags: [logic-gates, binary, memory] The **combinatorial digital circuits** we have looked at so far have been non-sequential. The outcome is a function of its immediate set of inputs and everything happens at once: there is no means of storing state for future use. -In other words there is no _[memory](Memory.md)_. +In other words there is no memory. In contrast, the output of a **sequential digital circuit** depends not only on its present set of inputs but also on past inputs to the circuit. It has some @@ -49,8 +49,7 @@ _The representation of an SR Latch in a digital circuit diagram_: The circuit diagram latch symbol obviously encapsulates more complex functionality that occurs at the sub-circuit level. We will demonstrate how this -functionality can be achieved with two -[NOR](Logic_gates.md#nor-gate) gates. +functionality can be achieved with two [NOR](Logic_gates.md#nor-gate) gates. The two gates are in a **cross-coupled configuration**. This basically means that the wires are crossed back on themselves such that the output of one is diff --git a/zk/Monitoring_processes_and_resources.md b/zk/Monitoring_processes_and_resources.md index 43e17bf..ab901d0 100644 --- a/zk/Monitoring_processes_and_resources.md +++ b/zk/Monitoring_processes_and_resources.md @@ -11,10 +11,9 @@ tags: ### `top`/`htop` -We can use [ps](Processes.md) to list the -currently running processes but it does not provide much information about the -resource metrics or how the process changes over time. We can use `top` to get -more information. +We can use [ps](Processes.md) to list the currently running processes but it +does not provide much information about the resource metrics or how the process +changes over time. We can use `top` to get more information. `top` provides an interactive interface for the information that `ps` displays. It updates in real time and shows the most active processes based on the CPU @@ -60,9 +59,8 @@ _Here I have pressed `u` to show only the processes associated with my user:_ $ renice 20 1234 ``` - `VIRT` - - The total amount of - [virtual memory](Virtual_memory_and_the_MMU_in_Linux.md) used by - the process including: program code, data, shared libraries, pages that have + - The total amount of [virtual memory](/zk/VirtualMemory.md) used by the + process including: program code, data, shared libraries, pages that have been swapped, pages that have been mapped but not used. - `RES` - Stands for _resident size_ @@ -110,9 +108,8 @@ procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- - Total amount of virtual memory in the [cache](Role_of_memory_in_computation.md#relation-between-cache-and-buffers) - `swap` - - Distinguishes amount of memory - [swapped](Swap_space.md) in (`si`) to memory and - swapped out (`so`) to disk + - Distinguishes amount of memory [swapped](Swap_space.md) in (`si`) to memory + and swapped out (`so`) to disk - `io` - Disk actions - Amount of data read from harddisk (`bi`) @@ -136,8 +133,8 @@ gives me some useful info about which files VS Code is using: ## System calls: `strace` A system call is when a process requests a service from the -[kernel](The_kernel.md), for instance an I/O operation to -memory. We can trace these system calls with `strace`. +[kernel](The_kernel.md), for instance an I/O operation to memory. We can trace +these system calls with `strace`. ## CPU performance @@ -168,8 +165,8 @@ $ uptime We know that processes primarily interact with virtual memory in the form of pages which are then translated to physical blocks by the kernel via the -[MMU](Virtual_memory_and_the_MMU_in_Linux.md). There are several tools -which provide windows onto this process. +[MMU](Virtual_memory_and_the_MMU_in_Linux.md). There are several tools which +provide windows onto this process. ### System page size diff --git a/zk/Motherboard.md b/zk/Motherboard.md index e9fe7e5..0f9781a 100644 --- a/zk/Motherboard.md +++ b/zk/Motherboard.md @@ -8,12 +8,11 @@ tags: +![](./img/motherboard-pi) + The motherboard is the foundation of a computer. It allocates power and allows -communication to and between the -[CPU](CPU_architecture.md), -[RAM](Memory.md), -[harddisk](What_are_disks.md) and all other hardware -components. +communication to and between the [CPU](CPU_architecture.md), memory, +[harddisk](What_are_disks.md) and all other hardware components. It is a printed circuit board and is always the largest board within the computer chassis. diff --git a/zk/Role_of_unique_key_in_relational_databases.md b/zk/Role_of_unique_key_in_relational_databases.md index 761bd38..1fb6b3b 100644 --- a/zk/Role_of_unique_key_in_relational_databases.md +++ b/zk/Role_of_unique_key_in_relational_databases.md @@ -9,10 +9,9 @@ tags: > key is one **field that uniquely identifies each record**. This is essential for carrying out operations across database tables and for -creating and deleting database entires in accordance with the -[ACID principle](ACID_principle.md). It is also a safeguard: it means -you can always identify a record by itself and don't have to rely on generic -queries to identify it. +creating and deleting database entires in accordance with the ACID principle. It +is also a safeguard: it means you can always identify a record by itself and +don't have to rely on generic queries to identify it. Sometimes you will have a dedicated field such as `UNIQUE_ID` for the unique key. Other times you can use an existing field to fulfil that function. When an diff --git a/zk/SAM.md b/zk/SAM.md index 9858cab..302b105 100644 --- a/zk/SAM.md +++ b/zk/SAM.md @@ -9,7 +9,7 @@ AWS to simplify the process of building, deploying and managing serverless applications. It provides a concise syntax for defining the components of a serverless application, such as [Lambda functions](zk/Lambda_programming_model.md), -[API gateway](/zk/AWS_API_Gateway.md) and database tables. +[API gateway](/zk/API_Gateway.md) and database tables. The SAM infrastructure is defined in a YAML file which is then deployed to AWS. SAM syntax gets transformed into CloudFormation during the deployment process. @@ -239,8 +239,8 @@ receive one file as an input. The packaging process consists in creating that single file. The packaging proces will first archive all of the project artefacts into a zip -file and then upload that to [S3](zk/AWS_S3.md). A reference to this S3 entity -is then provided to CloudFormation. +file and then upload that to [S3](/zk/S3.md). A reference to this S3 entity is +then provided to CloudFormation. ![](/img/s3-package-again.svg) diff --git a/zk/Set_DNS_settings.md b/zk/Set_DNS_settings.md index e62d0f7..5261301 100644 --- a/zk/Set_DNS_settings.md +++ b/zk/Set_DNS_settings.md @@ -4,8 +4,6 @@ tags: [Linux, networks] created: Wednesday, June 12, 2024 --- -# Set DNS settings - ## Change the default DNS server On Arch and most modern Linux distributions domain name resolution is handled @@ -62,8 +60,3 @@ nameserver 192.168.0.4 nameserver fded:2060:8671:0:681:9bff:fe9b:37f0 ``` - -## Related notes - -![Network scanning](./Network_scanning.md) -![Network debugging](Network_debugging.md) diff --git a/zk/Step_functions_and_state_machines.md b/zk/Step_functions_and_state_machines.md index a1bc110..6732830 100644 --- a/zk/Step_functions_and_state_machines.md +++ b/zk/Step_functions_and_state_machines.md @@ -19,10 +19,8 @@ transitions between them. It also includes error catchers and retry logic. At the beginning you define a `StartAt` state which is the entrypoint of the state machine. This can be manually triggered, or more likely, triggered by -another AWS service such as a -[Lambda](Lambda_programming_model.md), an -[API Gateway](AWS_API_Gateway.md) request or a messaging/queue -event. +another AWS service such as a [Lambda](Lambda_programming_model.md), an +[API Gateway](/zk/API_Gateway.md) request or a messaging/queue event. The state machine ultimately ends at an end state. In between are various intermediary states which can include: diff --git a/zk/Streams_in_NodeJS.md b/zk/Streams_in_NodeJS.md index 79eb34a..fa3734b 100644 --- a/zk/Streams_in_NodeJS.md +++ b/zk/Streams_in_NodeJS.md @@ -5,14 +5,12 @@ tags: # Handling streams with fs -When reading from a file, the -[`fs.readFile()`](fs.md) method waits -until the entire file has been read before executing the callback. It's obvious -why this might not be ideal in certain cases. If the file is very large you are -utilising a lot of [memory](Memory.md) for a -single process. Additionally, the data you need might appear early in the file, -in which case, once you find the data you want, there is no need to read to the -end of the file. +When reading from a file, the [`fs.readFile()`](fs.md) method waits until the +entire file has been read before executing the callback. It's obvious why this +might not be ideal in certain cases. If the file is very large you are utilising +a lot of memory for a single process. Additionally, the data you need might +appear early in the file, in which case, once you find the data you want, there +is no need to read to the end of the file. > An example of this in practice is watching a Netflix film: we don't have to > wait for the whole film to download, we can start watching it immediately diff --git a/zk/The_History_of_Computing_Swade.md b/zk/The_History_of_Computing_Swade.md index 58f3938..785123b 100644 --- a/zk/The_History_of_Computing_Swade.md +++ b/zk/The_History_of_Computing_Swade.md @@ -341,7 +341,6 @@ the ABC to make ENIAC. next problem - ISP removed the friction: - - the instructions comprising the program would be prepared on tape or punched cards and read into electronic memory - the hardware configuration of the machine would remain the same accross @@ -382,7 +381,7 @@ variety of different electronic methods for memory: - An experimental computer intended to create the [von Neumann architecture](CPU_architecture.md) using - [Williams_Tube_RAM](Williams_Tube_RAM.md) + [Williams_Tube_RAM](/zk/Williams_Tube_memory.md) - Developed at the Univesity of Manchester and completed in 1948. @@ -407,7 +406,6 @@ variety of different electronic methods for memory: university departments who were expected to program it themselves. To this end, a formal programming paradigm was forged for the EDSAC which established the following: - - subroutines as a library of common procedures available to programmers (e.g. printing a result, reading input tape, program checking, mathematical operations) diff --git a/zk/Trapdoor_functions.md b/zk/Trapdoor_functions.md index 3357012..33e4d26 100644 --- a/zk/Trapdoor_functions.md +++ b/zk/Trapdoor_functions.md @@ -3,12 +3,10 @@ tags: [cryptography, encryption] created: Friday, December 20, 2024 --- -# a4601796_trapdoor_functions - -How does [public key cryptography](./bbdcb54f_public_key_cryptography.md) -achieve the feat of making the encyrpted data only decipherable in one -direction. In other words how come the same data can be encrypted with one key -but only decryptable by another? +How does [public key cryptography](/zk/Public_key_cryptography.md) achieve the +feat of making the encyrpted data only decipherable in one direction. In other +words how come the same data can be encrypted with one key but only decryptable +by another? It is acheived by the use of **trapdoor functions**. These are functions that are easy to compute in one direction but extremely difficult to reverse. But diff --git a/zk/Usenet.md b/zk/Usenet.md index e36771c..ec438f7 100644 --- a/zk/Usenet.md +++ b/zk/Usenet.md @@ -17,8 +17,8 @@ and wanted a way to communicate with each other. ## Technology -Usenet comprised a [distributed network](385af4b4_Baran_distributed_networks.md) -of dedicated servers that exchanged messages over the **Network News Transfer +Usenet comprised a [distributed network](/zk/Baran_distributed_networks.md) of +dedicated servers that exchanged messages over the **Network News Transfer Protocol** (NNTP). A user would post a message to their local news server. The server would assign