housekeeping

This commit is contained in:
Thomas Bishop 2025-12-28 16:38:55 +00:00
parent d468e5cd4c
commit cc8a6f8ec9
42 changed files with 39 additions and 201 deletions

View file

@ -4,8 +4,6 @@ tags: [CPU]
created: Tuesday, March 12, 2024
---
# Assembly
- Assembly is one level up from machine code and provides a more human-friendly
abstraction layer
@ -38,8 +36,3 @@ A disassembler does the opposite: translate machine code into assembly.
directly executed by the CPU
- humans use an assembly language version of the machine code which is then
translated back to machine code for the computer to execute.
## Related notes
[[Hexadecimal_number_system]], [[Instruction_set_architectures]],
[[CPU_architecture]]

View file

@ -3,8 +3,6 @@ tags: [ecopolsoc, internet]
created: Friday, November 22, 2024
---
# a771a6d9_defining_internet_enclosure
## Defining _enclosure_
The attempt by capital interests to encircle, control and contain networked

View file

@ -3,8 +3,6 @@ tags:
- logic
---
# Biconditional introduction
The biconditional means if $P$ is the case, $Q$ must be the case and if $Q$ is
the case, $P$ must be the case. Thus to introduce this operator we must
demonstrate both that $Q$ follows from $P$ and that $P$ follows from $Q$. We do

View file

@ -4,8 +4,6 @@ tags: [binary]
created: Saturday, April 20, 2024
---
# Bitwise operators
In addition to mathematical, logical and comparison operators, there are
_bitwise operators_. These operators execute conditions based on the actual bits
of a value rather than the values that the bits are encoded to represent.
@ -68,5 +66,3 @@ operations are the fastest and lowest level of computation, being able to
directly access and operate on bits within a programming language can be
beneficial when efficiency and speed of execution is a factor or when memory is
constrained.
## Related notes

View file

@ -5,21 +5,16 @@ tags:
- logic
---
# Boolean function synthesis
When we looked at
[boolean functions](Boolean_functions.md) we were
working in a particular direction: from a function to a truth table. When we do
Boolean function synthesis we work in the opposite direction: from a truth table
to a function.
When we looked at [boolean functions](Boolean_functions.md) we were working in a
particular direction: from a function to a truth table. When we do Boolean
function synthesis we work in the opposite direction: from a truth table to a
function.
This is an important skill that we will use when constructing
[logic circuits](Digital_circuits.md).
We will go from truth conditions (i.e. what we want the circuit to do and when
we want it to do it) to a function expression which is then reduced to its
simplest form and implemented with
[logic gates](Logic_gates.md).
Specifically, NAND gates.
[logic circuits](Digital_circuits.md). We will go from truth conditions (i.e.
what we want the circuit to do and when we want it to do it) to a function
expression which is then reduced to its simplest form and implemented with
[logic gates](Logic_gates.md). Specifically, NAND gates.
We will show here that a complex logical expression can be reduced to an
equivalent expression that uses only the NAND operator.
@ -120,10 +115,8 @@ $$
| 1 | 1 | 1 | 1 |
Finally, we can simplify even further by doing away with AND and NOT and using a
single
[NAND gate](Logic_gates.md#nand-gate)
which embodies the logic of both, being true in all instances where AND would be
false: $\lnot (x \land y)$.
single [NAND gate](Logic_gates.md#nand-gate) which embodies the logic of both,
being true in all instances where AND would be false: $\lnot (x \land y)$.
Let's prove the theorem that every logical expression can be formulated as a
NAND function. To do this we need to show that both NOT and AND can be converted

View file

@ -31,7 +31,3 @@ console.log("Bye");
function: the `console.log("bye")`
6. Executes
7. Returns to line that called it. Finds nothing else to do. Exits program.
## Related notes
![Stack memory](Stack_memory.md)

View file

@ -4,8 +4,6 @@ tags:
- computer-architecture
---
# Chipset and controllers
A **controller** is simply a circuit that controls a process. The **chipset** is
a combination of controllers placed on the same piece of silicon.

View file

@ -4,8 +4,6 @@ tags: []
created: Friday, June 28, 2024
---
# Concise mapping of object subfields in JS
## Scenario
You have an array of objects and you want to return the objects with only a
@ -33,5 +31,3 @@ More concise approach with destructuring:
```js
const subset = arrayOfObjs.map(({ name }) => ({ name }));
```
## Related notes

View file

@ -3,8 +3,6 @@ tags:
- shell
---
# Conditionals in Bash
## If statements
- Conditional blocks start with `if` and end with the inversion `fi` (this is a

View file

@ -146,7 +146,3 @@ sudo e2label /dev/sda1 my_human_name
> Whilst we have created our partitions we cannot yet mount them. This is
> because we have not yet set up a filesystem on the partitions. This is the
> next step.
## Related notes
![Linux disk partitions](./Linux_disk_partitions.md)

View file

@ -2,8 +2,6 @@
tags: [physics, electricity]
---
# Current
> Electrical current is the movement of electrons from negatively charged atoms
> to positively charged atoms when an appropriate external force is applied.

View file

@ -3,8 +3,6 @@ tags: [computer-history, memory]
created: Wednesday, September 18, 2024
---
# Delay line memory
- First described in the _First Draft_ by #vonNeumann based on work by Eckert
and Mauchley.

View file

@ -4,8 +4,6 @@ tags:
- procedural
---
# Delete and replace characters from stdout with `tr`
I used the following pattern to remove new lines and blank spaces:
```sh

View file

@ -3,8 +3,6 @@ tags: [docker]
created: Sunday, May 04, 2025
---
# Docker volumes
> This is a WIP re-write of [Docker Storage](./Docker_storage.md).
## _Bind mounts_ versus _named volumes_

View file

@ -4,8 +4,6 @@ tags: [AWS, databases, dynamodb]
created: Saturday, June 22, 2024
---
# DynamoDB CLI commands
## Connecting to a local (Docker)/prod (AWS) DynamoDB instance
In order to distinguish between local and production accounts you should keep
@ -65,5 +63,3 @@ aws dynamodb scan \
--table-name TimeEntries \
--output table
```
## Related notes

View file

@ -4,8 +4,6 @@ tags: [AWS, databases, dynamodb]
created: Sunday, June 23, 2024
---
# DynamoDB SDK commands
The following commands are for using `@aws-sdk/client-dynamodb` (the JS SDK).
## Create client
@ -76,5 +74,3 @@ const params = {
const dynamoDbDocumentClient = DynamoDBDocumentClient.from(client);
const data = await dynamoDbDocumentClient.send(new ScanCommand(params));
```
## Related notes

View file

@ -7,8 +7,6 @@ tags:
created: Sunday, June 09, 2024
---
# DynamoDB
## Data structure
### Non-relational tables
@ -129,5 +127,3 @@ I have also defined a GSI. This is derived from the `Year` attribute. This will
group all the items by their `Year`, allowing me to query directly by year but
also helping to chunk the entries which will make look-ups quicker and less
expensive.
## Related notes

View file

@ -3,8 +3,6 @@ tags:
- shell
---
# Expansions and substitutions
Bash is weird in that parentheses, braces and brackets are used not just as
markers for different code blocks but as the designators of commands in their
own right. The type of bracket you use effects how your input is interpreted.
@ -79,10 +77,9 @@ the second list against them.
## Parameter expansion: `${...}`
We use most frequently for returning the value of stored
[variables](Variables_and_data_types_in_Bash.md).
Techically we do not have to use the braces, we can retrieve with just `$var`
however it's better to use them to minimise interpretation fuck-ups which happen
a lot.
[variables](Variables_and_data_types_in_Bash.md). Techically we do not have to
use the braces, we can retrieve with just `$var` however it's better to use them
to minimise interpretation fuck-ups which happen a lot.
When the braces are used, this allows us to transform the values before they are
returned such as only returning from the 6th character: `${var:6}`.
@ -91,8 +88,7 @@ returned such as only returning from the 6th character: `${var:6}`.
Command substitution (circle-brackets) allows us to put the output of one
command inside another. Bash runs the bracketed command in a
[sub-shell](Shell_sessions.md) and then returns it
to the main user shell.
[sub-shell](Shell_sessions.md) and then returns it to the main user shell.
For example:
@ -104,6 +100,4 @@ echo "The current directory is $(pwd)."
We use arithmetic expansion when we want to calculate numerical values
See
[Working with numbers in Bash](Working_with_numbers_in_Bash.md)
for more.
See [Working with numbers in Bash](Working_with_numbers_in_Bash.md) for more.

View file

@ -3,8 +3,6 @@ tags: [networks, servers, firewalls]
created: Sunday, February 09, 2025
---
# Firewalls
A firewall is a server mechanism that filters incoming requests for resources
and services that it hosts.

View file

@ -3,8 +3,6 @@ tags: [docker, servers]
created: Saturday, August 09, 2025
---
# Forgejo runner failure after VPS reboot
If you get stuck on "Waiting" when running an automated deployment in Forgejo,
this can be because you've rebooted the VPS and the Docker permissions have
reset.

View file

@ -3,8 +3,6 @@ tags:
- node-js
---
# Global object
> In Node every function and variable should be scoped to a module. We should
> not define functions and variables within the global scope.

View file

@ -3,8 +3,6 @@ tags:
- shell
---
# Grep
## Purpose of `grep`
`grep` stands for “global regular expression print”. It allows you to search

View file

@ -8,8 +8,6 @@ tags:
created: Wednesday, June 12, 2024
---
# Headless network setup
If you are using a headless system and you aren't using an ethernet connection,
you face a chicken-egg issue of how to connect the device to WiFi via `ssh` when
the device isn't yet on the network.
@ -31,5 +29,3 @@ network={
key_mgmt=WPA-PSK
}
```
## Related notes

View file

@ -4,10 +4,8 @@ tags: [memory, C]
created: Saturday, April 20, 2024
---
# Heap memory
Along with [[Stack_memory|Stack memory]], programs make use of _heap memory_
during runtime.
Along with [stack memory](/zk/Stack_memory.md), programs make use of _heap
memory_ during runtime.
Heap memory does not use a standardised data structure and can be accessed from
any point within the program.
@ -36,5 +34,3 @@ The `malloc` method requests 512 bytes that it wants to assign to the `data`
variable. It will return the address of the first byte in the newly allocated
memory. `data` will then refer to the address on the stack that holds the
address allocation on the heap.
## Related notes

View file

@ -3,8 +3,6 @@ tags:
- shell
---
# Introduction to the Unix shell
## Unix based systems
Many operating systems are based on the UNIX software architecture. macOS/OSX

View file

@ -4,8 +4,6 @@ tags: [python, shell]
created: Monday, April 29, 2024
---
# Invoking the shell in Python
```py
import subprocess

View file

@ -4,8 +4,6 @@ tags:
- aws-lambda
---
# AWS Lambda programming model
The overall architecure consists in the following three processes:
1. Triggers
@ -18,8 +16,7 @@ See [AWS Lambda triggers](Lambda_triggers.md)
## Handler function
See
[AWS Lambda handler function](Lambda_handler_function.md)
See [AWS Lambda handler function](Lambda_handler_function.md)
## Code

View file

@ -5,8 +5,6 @@ tags:
- procedural
---
# Linux disk partitions
A disk is divided up into partitions which are subsections of the overall disk.
The kernel presents each partition as a [block device](Devices.md#Devices) as it
would with an entire disk.
@ -96,8 +94,8 @@ The two tools disclose that the main harddrive is `/dev/nvme0n1` (equivalent to
- The root partition is vital for the system's functionality. Without it, the
system cannot boot or operate. It needs to be
large enough to accommodate the operating system, installed programs, and system
libraries, but it doesn't need to store user data or
large enough to accommodate the operating system, installed programs, and
system libraries, but it doesn't need to store user data or
additional applications, which can be located on other partitions.
- This is the domain of the [superuser](User_Space.md#root-user-superuser). The
@ -171,7 +169,3 @@ In our example above:
</ul>
</dd>
</dl>
## Related notes
![Creating a Linux partition table](./Creating_a_Linux_partition_table.md)

View file

@ -3,8 +3,6 @@ tags:
- shell
---
# Listing and navigating directories in the shell
## Listing options
Obviously we know that in order to list the files and sub-directories in our

View file

@ -4,19 +4,17 @@ tags:
- logic
---
# Logical possibility and necessity
## Logical possibility
In distinguishing the properties of
[logical consistency](Logical_consistency.md) and
[validity](Validity_and_entailment.md) we make tacit use
of the notion of **possibility**. This is because when we consider the validity
of an argument we are assessing truth-conditions and this consists in asking
ourselves what could or could not be the case: were it such that _P_, then it
would be the case that _Q_. It is important to understand what possibility means
in the context of logic and how it differs from what we might mean ordinarily
when we use the term.
[validity](Validity_and_entailment.md) we make tacit use of the notion of
**possibility**. This is because when we consider the validity of an argument we
are assessing truth-conditions and this consists in asking ourselves what could
or could not be the case: were it such that _P_, then it would be the case that
_Q_. It is important to understand what possibility means in the context of
logic and how it differs from what we might mean ordinarily when we use the
term.
It is evident from the case of arguments that are valid but not sound that logic
operates with a specialised notion of possibility. For example it has to be the
@ -60,9 +58,9 @@ From this we can derive the following property of logical possibility:
A proposition is _logically necessary_ if it is true in every logically possible
circumstance which is to say: true on every possible truth functional
assignment. Necessity and
[logical truth](Logical_truth_and_falsity.md#logical-truth)
are therefore synonyms: anything that is logically true (a tautology) is true by
necessity (could not be otherwise.)
[logical truth](Logical_truth_and_falsity.md#logical-truth) are therefore
synonyms: anything that is logically true (a tautology) is true by necessity
(could not be otherwise.)
Further, every logical truth is logically possible but not everything that is
logically possible is logically true. It is possible that it is raining but this

View file

@ -3,8 +3,6 @@ tags: [computer-history, memory]
created: Friday, September 27, 2024
---
# Magnetic core memory
![](../img/magnetic-core-memory.jpg)
Like [Magnetic_drum_memory](Magnetic_drum_memory.md), magnetic core memory was

View file

@ -4,8 +4,6 @@ tags: [operating-systems]
created: Friday, June 21, 2024
---
# Processes
Programs are sequences of machine instructions stored in a file. However they do
not work by themselves. Something needs to load the file's intructions into
memory, direct the CPU to run the program and manage it during runtime. The OS
@ -46,11 +44,3 @@ therefore also a child (grandchild) of `terminator`.
Each process has a unique identifier called a _process identifier_, a
_processID_ or just _PID_.
## Related notes
![systemd](./systemd.md)
![ps](./ps.md)
![Monitoring processes and resources](Monitoring_processes_and_resources.md)

View file

@ -4,8 +4,6 @@ tags: [electronics]
created: Tuesday, June 25, 2024
---
# Push buttons
Push buttons are push-to-make switches. This means that they are **on when they
pressed and off when they are not pressed**. A classic example would be the
switches on a keyboard.
@ -30,7 +28,3 @@ _The push button being used as simple connector which does not break the
circuit:_
![](../img/incorrect_push_button.jpg)
## Related notes
https://projects.raspberrypi.org/en/projects/button-switch-scratch-pi/1

View file

@ -6,8 +6,6 @@ tags:
- databases
---
# Query a Mongo collection with Mongoose
We now have the following entries in our `courses` collection:
```js
@ -35,8 +33,8 @@ We now have the following entries in our `courses` collection:
Now we will query the collection. This capability is provided via the Mongoose
schema class we used to create the `Course`
[model](Create_collections_and_documents_with_Mongoose.md#models).
We have the following methods available to use from the schema:
[model](Create_collections_and_documents_with_Mongoose.md#models). We have the
following methods available to use from the schema:
- `find`
- `findById`

View file

@ -4,8 +4,6 @@ tags: [computer-architecture, memory]
created: Monday, June 24, 2024
---
# ROM versus disk loading
I will explore the concept via the practical examples of cartridge-based and
disk-based video games console.
@ -54,5 +52,3 @@ to take that disk and load it on another Xbox, it would not include any of the
expansions or updates. The game would function in its original form, as the
additional content and updates reside solely on the hard drive of the first
console where they were downloaded.
## Related notes

View file

@ -3,17 +3,9 @@ tags:
- binary
---
# Signed and unsigned numbers
## Summary
- To represent negative integers in binary we use signed numbers._Signed binary_
includes negative integers, _unsigned binary_ does not.
- There are different methods of implementing the encoding of signed numbers.
Two prominant approaches are **two's complement** and **signed magnitude
representation**.
## Related notes
[[Twos_complement]], [[Binary_encoding]], [[Signed_magnitude_representation]]

View file

@ -5,8 +5,6 @@ tags:
created: Wednesday, March 20, 2024
---
# Signed magnitude representation
## Summary
## Detail
@ -25,13 +23,3 @@ the furthest bit (aka. the "most significant bit" (MSB)) at the $2^8$ position
is `0`, designating that the number is unsigned. The signed equivalent is
`1000 0101`, with the MSB being `1` designating the number as signed. When we
are working with signed numbers, the MSB is known as the **signed bit**.
### Advantages
### Limitations
## Applications
## Related notes
[[Signed_and_unsigned_numbers|signed_and_unsigned_numbers]]

View file

@ -4,8 +4,6 @@ tags: []
created: Friday, April 26, 2024
---
# Single file Python scripts
## Basic architecture
```py
@ -38,7 +36,3 @@ if __name__ == "__main__":
main()
```
## Related notes
![Python modules and imports](./Python_modules_and_imports.md)

View file

@ -4,16 +4,14 @@ tags:
- logic
---
# Syllogism
In order to make assertions about the relative
[consistency](Logical_consistency.md) or inconsistency
of a set of propositions we advance arguments. Consider everyday life: if we are
having an argument with someone, we believe that they are wrong. A more logical
way to say this is that we believe that their beliefs are inconsistent. In order
to change their viewpoint or point out why they are wrong we advance an argument
intended to show that belief A conflicts with belief B. Or if C is true, then
you cannot believe that D.
[consistency](Logical_consistency.md) or inconsistency of a set of propositions
we advance arguments. Consider everyday life: if we are having an argument with
someone, we believe that they are wrong. A more logical way to say this is that
we believe that their beliefs are inconsistent. In order to change their
viewpoint or point out why they are wrong we advance an argument intended to
show that belief A conflicts with belief B. Or if C is true, then you cannot
believe that D.
In formal terms **an argument is a set of propositions comprising one or more
premises and a conclusion. The conclusion is taken to be supported by the

View file

@ -4,8 +4,6 @@ tags: [operating-systems]
created: Wednesday, June 26, 2024
---
# Threads
A ![process](Processes.md) is a running instance of a given program. A program
runs sequentially handling one task at a time, however we may need to run
certain tasks in parallel.
@ -36,7 +34,3 @@ the number of cores that a device's CPU has deterimines how many threads can run
at once. In practice, then, the CPU shuffles between multiple threads in
[clock segments](Clock_signals.md). This is known as scheduling and is managed
by the process that the thread belongs to.
## Related notes
![Processes](Processes.md)

View file

@ -92,8 +92,3 @@ $$
bit length of the system
- Consequently two's complement can necessitate larger overall word lengths.
## Related notes
[[Signed_and_unsigned_numbers|signed_and_unsigned_numbers]],
[[Binary_addition|binary addition]], [[Signed_magnitude_representation]]

View file

@ -5,8 +5,6 @@ tags:
- procedural
---
# `journald`
`journald` is a program that comes as default with [systemd](systemd.md). It is
a service for collecting and storing system-level log data. I keeps a track of
all [kernel](The_kernel.md) processes. It is invaluable when tracing the source