chore: fix broken links

This commit is contained in:
Thomas Bishop 2025-12-28 16:31:48 +00:00
parent 1fde207c5a
commit d468e5cd4c
14 changed files with 48 additions and 75 deletions

View file

@ -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,

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -8,12 +8,11 @@ tags:
<img src="../img/motherboard-pi.jpg" width="400px"/>
![](./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.

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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:

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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