Finished importing notes

This commit is contained in:
2025-02-17 09:38:44 +00:00
parent 61dcb00d5f
commit 6ab2eec11f
142 changed files with 641 additions and 842 deletions

View File

@@ -6,22 +6,7 @@
"hideUnresolved": false,
"showOrphans": true,
"collapse-color-groups": false,
"colorGroups": [
{
"query": "path:Notion ",
"color": {
"a": 1,
"rgb": 14701138
}
},
{
"query": "path:temp ",
"color": {
"a": 1,
"rgb": 16711680
}
}
],
"colorGroups": [],
"collapse-display": false,
"showArrow": false,
"textFadeMultiplier": 0,
@@ -32,6 +17,6 @@
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 0.4275731589927159,
"scale": 0.12668834340524918,
"close": true
}

View File

@@ -1,3 +1,3 @@
{
"folder": "Templates"
"folder": "drafts/_Templates"
}

View File

@@ -8,17 +8,17 @@
"type": "tabs",
"children": [
{
"id": "560e779e6f4e85a3",
"id": "41d42d82984d27da",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "index/index.md",
"file": "drafts/lua.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "index"
"title": "lua"
}
}
]
@@ -159,17 +159,26 @@
"state": {
"type": "outline",
"state": {
"file": "Notion/Memory.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Outline of Memory"
"title": "Outline"
}
},
{
"id": "30cd499d012a4255",
"type": "leaf",
"state": {
"type": "advanced-tables-toolbar",
"state": {},
"icon": "spreadsheet",
"title": "Advanced Tables"
}
}
],
"currentTab": 2
"currentTab": 3
}
],
"direction": "horizontal",
@@ -185,57 +194,56 @@
"command-palette:Open command palette": false,
"obsidian-importer:Open Importer": false,
"table-editor-obsidian:Advanced Tables Toolbar": false,
"obsidian-local-images-plus:Local Images Plus 0.16.3\r\nLocalize attachments (plugin folder)": false,
"homepage:Open homepage": false
"obsidian-local-images-plus:Local Images Plus 0.16.3\r\nLocalize attachments (plugin folder)": false
}
},
"active": "560e779e6f4e85a3",
"active": "f7c232306fce05bc",
"lastOpenFiles": [
"binary-operations/index.md",
"drafts/lua.md",
"drafts/linux_architecture/index.md",
"index/index.md",
"transistors/index.md",
"notes/transistors.md",
"notes",
"Templates/base.md",
"Untitled.md",
"html.md",
"Templates",
"Untitled",
"TODO.md",
"temp/pngwing.com.png",
"temp/nix.svg",
"temp/image93.png",
"temp/windows-11-icon-logo-png_seeklogo-406208.png",
"temp/js.png",
"ready/python.md",
"ready/http.md",
"ready/ssh.md",
"ready/pass.md",
"ready/wsl2.md",
"ready/https-ssl-certs.md",
"drafts/macOS.md",
"ready/html.md",
"ready/irc.md",
"ready/encryption.md",
"ready/flask.md",
"ready/compiling.md",
"ready/git.md",
"ready/diodes.md",
"ready/gdb.md",
"ready/c-snippets.md",
"ready/c-language.md",
"drafts/assembly.md",
"ready/algorithms-and-data/index.md",
"temp/freebsd.png",
"temp/py.webp",
"ready/binary-operations/index.md",
"ready/binary-operations/image75.png",
"ready/binary-operations/image74.png",
"ready/binary-operations/image68.png",
"drafts/linux/index.md",
"ready/tmux/index.md",
"drafts",
"ready/databases",
"ready/logic_gates",
"ready/memory",
"ready",
"ready/cpu_architecture",
"index",
"Notion/Databases SQL.md",
"git.md",
"Notion/Memory.md",
"Notion/CPU Architecture.md",
"macOS.md",
"lua.md",
"tmux/index.md",
"Notion/Text Editor NVIM.md",
"tmux/tmux_design.png",
"tmux",
"transistors/image4.png",
"transistors/image3.png",
"transistors/image2.png",
"transistors/image1.png",
"transistors",
"assembly.md",
"Notion/Untitled.md",
"linux/index.md",
"linux",
"pass.md",
"flask.md",
"https-ssl-certs.md",
"encryption.md",
"http.md",
"python.md",
"wsl2.md",
"irc.md",
"EXT2.png",
"image 96.png",
"image 95.png",
"image 94.png",
"pngwing.com.png",
"Notion2",
"binary-operations",
"algorithms-and-data",
"C language"
"drafts/_Templates",
"ready/tmux"
]
}

View File

@@ -1,18 +0,0 @@
---
Status: Planned
Created by: Trude EH
tags:
- notes
- tools
author: TrudeEH
draft: false
searchHidden: false
showToc: true
title: Debug/Repair Tools
---
Scrcpy
scrcpy —otg
scrcpy
ADB
adb kill-server

View File

@@ -1,13 +0,0 @@
---
Status: Planned
Created by: Trude EH
tags:
- notes
- programming
- web
author: TrudeEH
draft: false
searchHidden: false
showToc: true
title: JavaScript
---

View File

@@ -1,392 +0,0 @@
---
tags:
- computer-science
- notes
author: TrudeEH
draft: true
showToc: true
title: Binary Operations
---
#todo
## Binary
Binary is a base-2 numeral system: A simple way to represent numbers using only two states.
|Binary|Decimal|Hexadecimal|
|---|---|---|
|0000|00|00|
|0001|01|01|
|0010|02|02|
|0011|03|03|
|0100|04|04|
|0101|05|05|
|0110|06|06|
|0111|07|07|
|1000|08|08|
|1001|09|09|
|1010|10|0A|
|1011|11|0B|
|1100|12|0C|
|1101|13|0D|
|1110|14|0E|
|1111|15|0F|
![Binary Calculations](binarycalc.png)
### Speaking Binary
> The information in this section is non-standard, and mostly a curiosity.
You may struggle to pronounce large binary numbers, as saying a long list of 0s and 1s is very inefficient. Instead, we can do something like this:
![speaking binary](sb1.png)
To be able to say any binary number, list the number, starting by the last digit:
![speaking binary](sb2.png)
And pronounce the ones that correspond to a `1` bit.
![speaking binary](sb3.png)
#### Pronounce a Binary Number at a Glance
1. Break the number at its largest pair of bits.
![speaking binary](sb4.png)
2. Represent the left and right sides.
![speaking binary](sb5.png)
In this example, there is a `two` in the order of magnitude `hex`.
3. Continue to represent the left and right sides recursively.
![speaking binary](sb6.png)
The last number is `four`.
#### Decode a Spoken Binary Number
Starting with `two hex four`:
1. Find the largest power of two.
![speaking binary](sb7.png)
2. The number is equal to the left side, times the order of magnitude, plus the right side.
![speaking binary](sb8.png)
#### Avoiding Repetition
Repetition can be avoided by combining some very common, small numbers:
![speaking binary](sb9.png)
![speaking binary](sb10.png)
These shortcuts essentially create a quaternary system to pronounce binary, but in this case, the result improves spoken efficiency by a lot.
## Arithmetic Operations
### Addition
Adding two numbers can be done using a simple, manual algorithm: By adding the last bit of both numbers first, carry if necessary, then move on to the next number, and so on.
| + | `.` | `\|` |
| ---- | ---- | ----- |
| `.` | `.` | `\|` |
| `\|` | `\|` | `\|.` |
![addition](addition.png)
> To add numbers more efficiently by hand, you can group bits together and memorize the patters, effectively doubling your speed.
>
> ![hand addition](hand_addition1.png)
>
> To improve calculation speed even further, you can group more bits, and learn those patterns as well.
>
> ![hand addition](hand_addition2.png)
#### Half Adder
Add 2, single-digit binary numbers.
|**A**|**B**|**Carry**|**Sum**|
|---|---|---|---|
|`.`|`.`|`.`|`.`|
|`.`|`\|`|`.`|`\|`|
|`\|`|`.`|`.`|`\|`|
|`\|`|`\|`|`\|`|`.`|
![[/image 14.png|image 14.png]]
#### Full Adder
When adding 2 binary numbers, one operation might return a carry value, which the `half adder` can't accept, as it only has 2 inputs.
![[/image 15.png|image 15.png]]
To solve this issue, a `full adder` accepts 3 inputs.
![[/image 16.png|image 16.png]]
#### 8-Bit Adder
![[/image 17.png|image 17.png]]
### Subtraction
Subtraction can result in negative numbers. Like how additions need a carry, subtraction needs a borrow.
#### Half Subtractor
Subtract 2, single-digit binary numbers.
|**A**|**B**|Diff|**Borrow**|
|---|---|---|---|
|`.`|`.`|`.`|`.`|
|`.`|`\|`|`\|`|`\|`|
|`\|`|`.`|`\|`|`.`|
|`\|`|`\|`|`.`|`.`|
![[/image 18.png|image 18.png]]
#### Full Subtractor
A `full subtractor` accepts the borrow value, allowing us to chain results.
|**A**|**B**|**B**in|**Diff**|**B**out|
|---|---|---|---|---|
|`.`|`.`|`.`|`.`|`.`|
|`.`|`.`|`\|`|`\|`|`\|`|
|`.`|`\|`|`.`|`\|`|`\|`|
|`.`|`\|`|`\|`|`.`|`\|`|
|`\|`|`.`|`.`|`\|`|`.`|
|`\|`|`.`|`\|`|`.`|`.`|
|`\|`|`\|`|`.`|`.`|`.`|
|`\|`|`\|`|`\|`|`\|`|`\|`|
![[/image 19.png|image 19.png]]
#### 8-Bit Subtractor
![[/image 20.png|image 20.png]]
### Multiplication
Multiplication is also similar to its decimal counterpart, but because binary is so small compared to decimal, the steps are also much simpler.
First, multiply the top number to every digit of the bottom one, and then add the results together.
|X|`.`|`\|`|
|---|---|---|
|`.`|`.`|`.`|
|`\|`|`.`|`\|`|
```Plain
||.|
x ||.
....
||.|
+ ||.|
|..|||.
```
#### 2-Bit By 2-Bit Multiplier
![[/image 21.png|image 21.png]]
### Division
1. Find the smallest part of the dividend greater than or equal to the divisor.
```Plain
|.| ||..|
```
2. Write the first digit of ==the answer==, and ==copy the original divisor down==.
```Plain
|
|.| ||..|
|.|
```
3. Subtract ==the aligned dividend digits== by ==the digits under the dividend====.==
```Plain
|
|.| ||..|
|.|
|
```
4. Lower ==the next dividend digit==.
```Plain
|
|.| ||..|
|.|
|.
```
5. Is ==the total== greater or equal to the ==divisor==? If so, add a `1` to the answer. If not, ==add a== ==`0`== ==to the answer== ==and return to step 4==.
```Plain
|.
|.| ||..|
|.|
|.
```
6. Return to step 2, until you reach the end of the number. If you reached the end, you found ==the answer==.
```Plain
|.|
|.| ||..|
|.|
|.|
|.|
.
```
### ASCII
Binary can also be used to represent characters.
| | | | | | |
|---|---|---|---|---|---|
|Dec|Hex|Binary|HTML|Char|Description|
|0|00|00000000|`�`|NUL|Null|
|1|01|00000001|``|SOH|Start of Heading|
|2|02|00000010|``|STX|Start of Text|
|3|03|00000011|``|ETX|End of Text|
|4|04|00000100|``|EOT|End of Transmission|
|5|05|00000101|``|ENQ|Enquiry|
|6|06|00000110|``|ACK|Acknowledge|
|7|07|00000111|``|BEL|Bell|
|8|08|00001000|``|BS|Backspace|
|9|09|00001001|`	`|HT|Horizontal Tab|
|10|0A|00001010|`
`|LF|Line Feed|
|11|0B|00001011|``|VT|Vertical Tab|
|12|0C|00001100|``|FF|Form Feed|
|13|0D|00001101|`
`|CR|Carriage Return|
|14|0E|00001110|``|SO|Shift Out|
|15|0F|00001111|``|SI|Shift In|
|16|10|00010000|``|DLE|Data Link Escape|
|17|11|00010001|``|DC1|Device Control 1|
|18|12|00010010|``|DC2|Device Control 2|
|19|13|00010011|``|DC3|Device Control 3|
|20|14|00010100|``|DC4|Device Control 4|
|21|15|00010101|``|NAK|Negative Acknowledge|
|22|16|00010110|``|SYN|Synchronize|
|23|17|00010111|``|ETB|End of Transmission Block|
|24|18|00011000|``|CAN|Cancel|
|25|19|00011001|``|EM|End of Medium|
|26|1A|00011010|``|SUB|Substitute|
|27|1B|00011011|``|ESC|Escape|
|28|1C|00011100|``|FS|File Separator|
|29|1D|00011101|``|GS|Group Separator|
|30|1E|00011110|``|RS|Record Separator|
|31|1F|00011111|``|US|Unit Separator|
|32|20|00100000|` `|space|Space|
|33|21|00100001|`!`|!|exclamation mark|
|34|22|00100010|`"`|"|double quote|
|35|23|00100011|`#`|#|number|
|36|24|00100100|`$`|$|dollar|
|37|25|00100101|`%`|%|percent|
|38|26|00100110|`&`|&|ampersand|
|39|27|00100111|`'`|'|single quote|
|40|28|00101000|`(`|(|left parenthesis|
|41|29|00101001|`)`|)|right parenthesis|
|42|2A|00101010|`*`|*|asterisk|
|43|2B|00101011|`+`|+|plus|
|44|2C|00101100|`,`|,|comma|
|45|2D|00101101|`-`|-|minus|
|46|2E|00101110|`.`|.|period|
|47|2F|00101111|`/`|/|slash|
|48|30|00110000|`0`|0|zero|
|49|31|00110001|`1`|1|one|
|50|32|00110010|`2`|2|two|
|51|33|00110011|`3`|3|three|
|52|34|00110100|`4`|4|four|
|53|35|00110101|`5`|5|five|
|54|36|00110110|`6`|6|six|
|55|37|00110111|`7`|7|seven|
|56|38|00111000|`8`|8|eight|
|57|39|00111001|`9`|9|nine|
|58|3A|00111010|`:`|:|colon|
|59|3B|00111011|`&#59;`|;|semicolon|
|60|3C|00111100|`&#60;`|<|less than|
|61|3D|00111101|`&#61;`|=|equality sign|
|62|3E|00111110|`&#62;`|>|greater than|
|63|3F|00111111|`&#63;`|?|question mark|
|64|40|01000000|`&#64;`|@|at sign|
|65|41|01000001|`&#65;`|A||
|66|42|01000010|`&#66;`|B||
|67|43|01000011|`&#67;`|C||
|68|44|01000100|`&#68;`|D||
|69|45|01000101|`&#69;`|E||
|70|46|01000110|`&#70;`|F||
|71|47|01000111|`&#71;`|G||
|72|48|01001000|`&#72;`|H||
|73|49|01001001|`&#73;`|I||
|74|4A|01001010|`&#74;`|J||
|75|4B|01001011|`&#75;`|K||
|76|4C|01001100|`&#76;`|L||
|77|4D|01001101|`&#77;`|M||
|78|4E|01001110|`&#78;`|N||
|79|4F|01001111|`&#79;`|O||
|80|50|01010000|`&#80;`|P||
|81|51|01010001|`&#81;`|Q||
|82|52|01010010|`&#82;`|R||
|83|53|01010011|`&#83;`|S||
|84|54|01010100|`&#84;`|T||
|85|55|01010101|`&#85;`|U||
|86|56|01010110|`&#86;`|V||
|87|57|01010111|`&#87;`|W||
|88|58|01011000|`&#88;`|X||
|89|59|01011001|`&#89;`|Y||
|90|5A|01011010|`&#90;`|Z||
|91|5B|01011011|`&#91;`|[|left square bracket|
|92|5C|01011100|`&#92;`|\|backslash|
|93|5D|01011101|`&#93;`|]|right square bracket|
|94|5E|01011110|`&#94;`|^|caret / circumflex|
|95|5F|01011111|`&#95;`|_|underscore|
|96|60|01100000|`&#96;`|`|grave / accent|
|97|61|01100001|`&#97;`|a||
|98|62|01100010|`&#98;`|b||
|99|63|01100011|`&#99;`|c||
|100|64|01100100|`&#100;`|d||
|101|65|01100101|`&#101;`|e||
|102|66|01100110|`&#102;`|f||
|103|67|01100111|`&#103;`|g||
|104|68|01101000|`&#104;`|h||
|105|69|01101001|`&#105;`|i||
|106|6A|01101010|`&#106;`|j||
|107|6B|01101011|`&#107;`|k||
|108|6C|01101100|`&#108;`|l||
|109|6D|01101101|`&#109;`|m||
|110|6E|01101110|`&#110;`|n||
|111|6F|01101111|`&#111;`|o||
|112|70|01110000|`&#112`|p||
|113|71|01110001|`&#113;`|q||
|114|72|01110010|`&#114;`|r||
|115|73|01110011|`&#115;`|s||
|116|74|01110100|`&#116;`|t||
|117|75|01110101|`&#117;`|u||
|118|76|01110110|`&#118;`|v||
|119|77|01110111|`&#119;`|w||
|120|78|01111000|`&#120;`|x||
|121|79|01111001|`&#121;`|y||
|122|7A|01111010|`&#122;`|z||
|123|7B|01111011|`&#123;`|{|left curly bracket|
|124|7C|01111100|`&#124;`|\||vertical bar|
|125|7D|01111101|`&#125;`|}|right curly bracket|
|126|7E|01111110|`&#126;`|~|tilde|
|127|7F|01111111|`&#127;`|DEL|delete|

View File

Before

Width:  |  Height:  |  Size: 3.2 MiB

After

Width:  |  Height:  |  Size: 3.2 MiB

View File

Before

Width:  |  Height:  |  Size: 2.5 MiB

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 155 KiB

View File

@@ -1,15 +1,13 @@
---
Status: In progress
Created by: Trude EH
title: Linux Architecture
description:
date: 2025-02-17T08:32:33+00:00
draft: true
tags:
- computer-science
- notes
- os
author: TrudeEH
draft: false
searchHidden: false
showToc: true
title: Linux Architecture
---
## Kernel
@@ -43,7 +41,7 @@ A program is an executable containing machine code. When a computer executes a p
![[image5.png]]
A program loaded in memory is a process.
> [!important] Note: For interpreted languages, the interpreter creates a process that executes the code directly.
> Note: For interpreted languages, the interpreter creates a process that executes the code directly.
### Modules
@@ -74,7 +72,7 @@ The GPU still has a device file, which is used by the Kernel's DRM and Mesa, but
## File Systems
> [!important] This section is heavily simplified and only covers `EXT2-4`.
> This section is heavily simplified and only covers `EXT2-4`.
### Concepts
@@ -102,7 +100,7 @@ Uses linked lists to store and lookup data, to keep the implementation of the fi
#### HTrees
`EXT3` can also use a [[algorithms-and-data/index]] instead of a linked list to store directory entries, making lookup times much faster. To build the HTree, all filenames are hashed and ordered, making the implementation more complex. This feature is disabled by default.
`EXT3` can also use a [[ready/algorithms-and-data/index]] instead of a linked list to store directory entries, making lookup times much faster. To build the HTree, all filenames are hashed and ordered, making the implementation more complex. This feature is disabled by default.
#### Scalability

View File

Before

Width:  |  Height:  |  Size: 243 KiB

After

Width:  |  Height:  |  Size: 243 KiB

View File

@@ -1,12 +1,13 @@
---
tags:
- notes
- programming
- c
author: TrudeEH
draft: false
showToc: true
title: Algorithms & Data Structures
description:
date: 2025-02-17T08:52:10+00:00
draft: false
tags:
- c
- programming
author: TrudeEH
showToc: true
---
## Time Complexity
@@ -253,8 +254,8 @@ int main(void) {
```
```C
\#include <stdlib.h>
\#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
typedef struct node {
int number;
struct node *next;

View File

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

View File

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 89 KiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,390 @@
---
title: Binary Operations
description:
date: 2025-02-17T08:37:24+00:00
draft: false
tags:
- computer-science
author: TrudeEH
showToc: true
---
## Binary
Binary is a base-2 numeral system: A simple way to represent numbers using only two states.
|Binary|Decimal|Hexadecimal|
|---|---|---|
|0000|00|00|
|0001|01|01|
|0010|02|02|
|0011|03|03|
|0100|04|04|
|0101|05|05|
|0110|06|06|
|0111|07|07|
|1000|08|08|
|1001|09|09|
|1010|10|0A|
|1011|11|0B|
|1100|12|0C|
|1101|13|0D|
|1110|14|0E|
|1111|15|0F|
![Binary Calculations](binarycalc.png)
### Speaking Binary
> The information in this section is non-standard, and mostly a curiosity.
You may struggle to pronounce large binary numbers, as saying a long list of 0s and 1s is very inefficient. Instead, we can do something like this:
![speaking binary](sb1.png)
To be able to say any binary number, list the number, starting by the last digit:
![speaking binary](sb2.png)
And pronounce the ones that correspond to a `1` bit.
![speaking binary](sb3.png)
#### Pronounce a Binary Number at a Glance
1. Break the number at its largest pair of bits.
![speaking binary](sb4.png)
2. Represent the left and right sides.
![speaking binary](sb5.png)
In this example, there is a `two` in the order of magnitude `hex`.
3. Continue to represent the left and right sides recursively.
![speaking binary](sb6.png)
The last number is `four`.
#### Decode a Spoken Binary Number
Starting with `two hex four`:
1. Find the largest power of two.
![speaking binary](sb7.png)
2. The number is equal to the left side, times the order of magnitude, plus the right side.
![speaking binary](sb8.png)
#### Avoiding Repetition
Repetition can be avoided by combining some very common, small numbers:
![speaking binary](sb9.png)
![speaking binary](sb10.png)
These shortcuts essentially create a quaternary system to pronounce binary, but in this case, the result improves spoken efficiency by a lot.
## Arithmetic Operations
### Addition
Adding two numbers can be done using a simple, manual algorithm: By adding the last bit of both numbers first, carry if necessary, then move on to the next number, and so on.
| **+** | 0 | 1 |
| ------- | --- | ---- |
| 0 | 0 | 1 |
| 1 | 1 | 10 |
![addition](addition.png)
> To add numbers more efficiently by hand, you can group bits together and memorize the patters, effectively doubling your speed.
>
> ![hand addition](hand_addition1.png)
>
> To improve calculation speed even further, you can group more bits, and learn those patterns as well.
>
> ![hand addition](hand_addition2.png)
#### Half Adder
Add 2, single-digit binary numbers.
| **A** | **B** | **Carry** | **Sum** |
| ----- | ----- | --------- | ------- |
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
![[image68.png]]
#### Full Adder
When adding 2 binary numbers, one operation might return a carry value, which the `half adder` can't accept, as it only has 2 inputs.
![[image69.png]]
To solve this issue, a `full adder` accepts 3 inputs.
![[image70.png]]
#### 8-Bit Adder
![[image71.png]]
### Subtraction
Subtraction can result in negative numbers. Like how additions need a carry, subtraction needs a borrow.
#### Half Subtractor
Subtract 2, single-digit binary numbers.
| **A** | **B** | Diff | **Borrow** |
| ----- | ----- | ---- | ---------- |
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
![[image72.png]]
#### Full Subtractor
A `full subtractor` accepts the borrow value, allowing us to chain results.
| **A** | **B** | **B**in | **Diff** | **B**out |
| ----- | ----- | ------- | -------- | -------- |
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 |
![[image73.png]]
#### 8-Bit Subtractor
![[image74.png]]
### Multiplication
Multiplication is also similar to its decimal counterpart, but because binary is so small compared to decimal, the steps are also much simpler.
First, multiply the top number to every digit of the bottom one, and then add the results together.
| X | 0 | 1 |
| --- | --- | --- |
| 0 | 0 | 0 |
| 1 | 0 | 1 |
```Plain
||.|
x ||.
....
||.|
+ ||.|
|..|||.
```
#### 2-Bit By 2-Bit Multiplier
![[image75.png]]
### Division
1. Find the smallest part of the dividend greater than or equal to the ==divisor==.
```Plain
|.| ||..|
```
2. Write the first digit of ==the answer==, and ==copy the original divisor down==.
```Plain
|
|.| ||..|
|.|
```
3. Subtract ==the aligned dividend digits== by ==the digits under the dividend==.
```Plain
|
|.| ||..|
|.|
|
```
4. Lower ==the next dividend digit==.
```Plain
|
|.| ||..|
|.|
|.
```
5. Is ==the total== greater or equal to the ==divisor==? If so, add a `1` to the answer. If not, ==add a== ==`0`== ==to the answer== ==and return to step 4==.
```Plain
|.
|.| ||..|
|.|
|.
```
6. Return to step 2, until you reach the end of the number. If you reached the end, you found ==the answer==.
```Plain
|.|
|.| ||..|
|.|
|.|
|.|
.
```
### ASCII
Binary can also be used to represent characters.
| Dec | Hex | Binary | HTML | Char | Description |
| --- | --- | -------- | -------- | ----------- | ------------------------- |
| 0 | 00 | 00000000 | `&#0;` | NUL | Null |
| 1 | 01 | 00000001 | `&#1;` | SOH | Start of Heading |
| 2 | 02 | 00000010 | `&#2;` | STX | Start of Text |
| 3 | 03 | 00000011 | `&#3;` | ETX | End of Text |
| 4 | 04 | 00000100 | `&#4;` | EOT | End of Transmission |
| 5 | 05 | 00000101 | `&#5;` | ENQ | Enquiry |
| 6 | 06 | 00000110 | `&#6;` | ACK | Acknowledge |
| 7 | 07 | 00000111 | `&#7;` | BEL | Bell |
| 8 | 08 | 00001000 | `&#8;` | BS | Backspace |
| 9 | 09 | 00001001 | `&#9;` | HT | Horizontal Tab |
| 10 | 0A | 00001010 | `&#10;` | LF | Line Feed |
| 11 | 0B | 00001011 | `&#11;` | VT | Vertical Tab |
| 12 | 0C | 00001100 | `&#12;` | FF | Form Feed |
| 13 | 0D | 00001101 | `&#13;` | CR | Carriage Return |
| 14 | 0E | 00001110 | `&#14;` | SO | Shift Out |
| 15 | 0F | 00001111 | `&#15;` | SI | Shift In |
| 16 | 10 | 00010000 | `&#16;` | DLE | Data Link Escape |
| 17 | 11 | 00010001 | `&#17;` | DC1 | Device Control 1 |
| 18 | 12 | 00010010 | `&#18;` | DC2 | Device Control 2 |
| 19 | 13 | 00010011 | `&#19;` | DC3 | Device Control 3 |
| 20 | 14 | 00010100 | `&#20;` | DC4 | Device Control 4 |
| 21 | 15 | 00010101 | `&#21;` | NAK | Negative Acknowledge |
| 22 | 16 | 00010110 | `&#22;` | SYN | Synchronize |
| 23 | 17 | 00010111 | `&#23;` | ETB | End of Transmission Block |
| 24 | 18 | 00011000 | `&#24;` | CAN | Cancel |
| 25 | 19 | 00011001 | `&#25;` | EM | End of Medium |
| 26 | 1A | 00011010 | `&#26;` | SUB | Substitute |
| 27 | 1B | 00011011 | `&#27;` | ESC | Escape |
| 28 | 1C | 00011100 | `&#28;` | FS | File Separator |
| 29 | 1D | 00011101 | `&#29;` | GS | Group Separator |
| 30 | 1E | 00011110 | `&#30;` | RS | Record Separator |
| 31 | 1F | 00011111 | `&#31;` | US | Unit Separator |
| 32 | 20 | 00100000 | `&#32;` | space | Space |
| 33 | 21 | 00100001 | `&#33;` | ! | exclamation mark |
| 34 | 22 | 00100010 | `&#34;` | " | double quote |
| 35 | 23 | 00100011 | `&#35;` | # | number |
| 36 | 24 | 00100100 | `&#36;` | $ | dollar |
| 37 | 25 | 00100101 | `&#37;` | % | percent |
| 38 | 26 | 00100110 | `&#38;` | & | ampersand |
| 39 | 27 | 00100111 | `&#39;` | ' | single quote |
| 40 | 28 | 00101000 | `&#40;` | ( | left parenthesis |
| 41 | 29 | 00101001 | `&#41;` | ) | right parenthesis |
| 42 | 2A | 00101010 | `&#42;` | * | asterisk |
| 43 | 2B | 00101011 | `&#43;` | + | plus |
| 44 | 2C | 00101100 | `&#44;` | , | comma |
| 45 | 2D | 00101101 | `&#45;` | - | minus |
| 46 | 2E | 00101110 | `&#46;` | . | period |
| 47 | 2F | 00101111 | `&#47;` | / | slash |
| 48 | 30 | 00110000 | `&#48;` | 0 | zero |
| 49 | 31 | 00110001 | `&#49;` | 1 | one |
| 50 | 32 | 00110010 | `&#50;` | 2 | two |
| 51 | 33 | 00110011 | `&#51;` | 3 | three |
| 52 | 34 | 00110100 | `&#52;` | 4 | four |
| 53 | 35 | 00110101 | `&#53;` | 5 | five |
| 54 | 36 | 00110110 | `&#54;` | 6 | six |
| 55 | 37 | 00110111 | `&#55;` | 7 | seven |
| 56 | 38 | 00111000 | `&#56;` | 8 | eight |
| 57 | 39 | 00111001 | `&#57;` | 9 | nine |
| 58 | 3A | 00111010 | `&#58;` | : | colon |
| 59 | 3B | 00111011 | `&#59;` | ; | semicolon |
| 60 | 3C | 00111100 | `&#60;` | < | less than |
| 61 | 3D | 00111101 | `&#61;` | = | equality sign |
| 62 | 3E | 00111110 | `&#62;` | > | greater than |
| 63 | 3F | 00111111 | `&#63;` | ? | question mark |
| 64 | 40 | 01000000 | `&#64;` | @ | at sign |
| 65 | 41 | 01000001 | `&#65;` | A | |
| 66 | 42 | 01000010 | `&#66;` | B | |
| 67 | 43 | 01000011 | `&#67;` | C | |
| 68 | 44 | 01000100 | `&#68;` | D | |
| 69 | 45 | 01000101 | `&#69;` | E | |
| 70 | 46 | 01000110 | `&#70;` | F | |
| 71 | 47 | 01000111 | `&#71;` | G | |
| 72 | 48 | 01001000 | `&#72;` | H | |
| 73 | 49 | 01001001 | `&#73;` | I | |
| 74 | 4A | 01001010 | `&#74;` | J | |
| 75 | 4B | 01001011 | `&#75;` | K | |
| 76 | 4C | 01001100 | `&#76;` | L | |
| 77 | 4D | 01001101 | `&#77;` | M | |
| 78 | 4E | 01001110 | `&#78;` | N | |
| 79 | 4F | 01001111 | `&#79;` | O | |
| 80 | 50 | 01010000 | `&#80;` | P | |
| 81 | 51 | 01010001 | `&#81;` | Q | |
| 82 | 52 | 01010010 | `&#82;` | R | |
| 83 | 53 | 01010011 | `&#83;` | S | |
| 84 | 54 | 01010100 | `&#84;` | T | |
| 85 | 55 | 01010101 | `&#85;` | U | |
| 86 | 56 | 01010110 | `&#86;` | V | |
| 87 | 57 | 01010111 | `&#87;` | W | |
| 88 | 58 | 01011000 | `&#88;` | X | |
| 89 | 59 | 01011001 | `&#89;` | Y | |
| 90 | 5A | 01011010 | `&#90;` | Z | |
| 91 | 5B | 01011011 | `&#91;` | [ | left square bracket |
| 92 | 5C | 01011100 | `&#92;` | \|backslash | |
| 93 | 5D | 01011101 | `&#93;` | ] | right square bracket |
| 94 | 5E | 01011110 | `&#94;` | ^ | caret / circumflex |
| 95 | 5F | 01011111 | `&#95;` | _ | underscore |
| 96 | 60 | 01100000 | `&#96;` | ` | grave / accent |
| 97 | 61 | 01100001 | `&#97;` | a | |
| 98 | 62 | 01100010 | `&#98;` | b | |
| 99 | 63 | 01100011 | `&#99;` | c | |
| 100 | 64 | 01100100 | `&#100;` | d | |
| 101 | 65 | 01100101 | `&#101;` | e | |
| 102 | 66 | 01100110 | `&#102;` | f | |
| 103 | 67 | 01100111 | `&#103;` | g | |
| 104 | 68 | 01101000 | `&#104;` | h | |
| 105 | 69 | 01101001 | `&#105;` | i | |
| 106 | 6A | 01101010 | `&#106;` | j | |
| 107 | 6B | 01101011 | `&#107;` | k | |
| 108 | 6C | 01101100 | `&#108;` | l | |
| 109 | 6D | 01101101 | `&#109;` | m | |
| 110 | 6E | 01101110 | `&#110;` | n | |
| 111 | 6F | 01101111 | `&#111;` | o | |
| 112 | 70 | 01110000 | `&#112` | p | |
| 113 | 71 | 01110001 | `&#113;` | q | |
| 114 | 72 | 01110010 | `&#114;` | r | |
| 115 | 73 | 01110011 | `&#115;` | s | |
| 116 | 74 | 01110100 | `&#116;` | t | |
| 117 | 75 | 01110101 | `&#117;` | u | |
| 118 | 76 | 01110110 | `&#118;` | v | |
| 119 | 77 | 01110111 | `&#119;` | w | |
| 120 | 78 | 01111000 | `&#120;` | x | |
| 121 | 79 | 01111001 | `&#121;` | y | |
| 122 | 7A | 01111010 | `&#122;` | z | |
| 123 | 7B | 01111011 | `&#123;` | { | left curly bracket |
| 124 | 7C | 01111100 | `&#124;` | \| | vertical bar |
| 125 | 7D | 01111101 | `&#125;` | } | right curly bracket |
| 126 | 7E | 01111110 | `&#126;` | ~ | tilde |
| 127 | 7F | 01111111 | `&#127;` | DEL | delete |

View File

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 91 KiB

View File

@@ -1,13 +1,13 @@
---
tags:
- notes
- programming
- c
author: TrudeEH
showToc: true
title: C Language
description:
date: 2025-02-17T08:54:40+00:00
draft: false
tags:
- c
- programming
author: TrudeEH
showToc: true
---
## Tools
@@ -47,7 +47,7 @@ The binary length of each data type depends on the CPU, OS, and compiler, but in
| 4 | 4.294.967.295 |
| 8 | 18.446.744.073.709.551.615 |
| 16 | 340.282.366.920.938.463.463.374.607.431.768.211.455 |
| 32 | 1.157 × 10^76 |
| 32 | 1.157 × 10^76 |
Examples

View File

@@ -1,17 +1,18 @@
---
tags:
- notes
- programming
- c
author: TrudeEH
draft: false
showToc: true
title: C Snippets
description:
date: 2025-02-17T08:56:33+00:00
draft: false
tags:
- c
- programming
author: TrudeEH
showToc: true
---
## Cast Strings to Numbers
The `atoi()` function in `stdlib` has a similar implementation to the one below.
The `atoi()` function in `stdlib` is implemented similarly to the one below.
ASCII encodes numbers in order, after special characters.

View File

@@ -1,12 +1,16 @@
---
title: Compiling [MAKE / GCC]
description:
date: 2025-02-17T08:59:53+00:00
draft: false
tags:
- notes
- c
- programming
author: TrudeEH
draft: false
showToc: true
title: Compiling [MAKE / GCC]
---
Convert `C` code into machine code in 4 steps:
1. **Preprocessing** (Convert all preprocessor instructions: `#…`)
2. **Compiling** (Convert `C` code to machine code)

View File

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 213 KiB

View File

Before

Width:  |  Height:  |  Size: 219 KiB

After

Width:  |  Height:  |  Size: 219 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 186 KiB

View File

Before

Width:  |  Height:  |  Size: 214 KiB

After

Width:  |  Height:  |  Size: 214 KiB

View File

Before

Width:  |  Height:  |  Size: 297 KiB

After

Width:  |  Height:  |  Size: 297 KiB

View File

Before

Width:  |  Height:  |  Size: 306 KiB

After

Width:  |  Height:  |  Size: 306 KiB

View File

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

View File

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 139 KiB

View File

Before

Width:  |  Height:  |  Size: 358 KiB

After

Width:  |  Height:  |  Size: 358 KiB

View File

Before

Width:  |  Height:  |  Size: 357 KiB

After

Width:  |  Height:  |  Size: 357 KiB

View File

Before

Width:  |  Height:  |  Size: 244 KiB

After

Width:  |  Height:  |  Size: 244 KiB

View File

Before

Width:  |  Height:  |  Size: 217 KiB

After

Width:  |  Height:  |  Size: 217 KiB

View File

Before

Width:  |  Height:  |  Size: 205 KiB

After

Width:  |  Height:  |  Size: 205 KiB

View File

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 89 KiB

View File

Before

Width:  |  Height:  |  Size: 313 KiB

After

Width:  |  Height:  |  Size: 313 KiB

View File

Before

Width:  |  Height:  |  Size: 318 KiB

After

Width:  |  Height:  |  Size: 318 KiB

View File

Before

Width:  |  Height:  |  Size: 338 KiB

After

Width:  |  Height:  |  Size: 338 KiB

View File

Before

Width:  |  Height:  |  Size: 324 KiB

After

Width:  |  Height:  |  Size: 324 KiB

View File

Before

Width:  |  Height:  |  Size: 187 KiB

After

Width:  |  Height:  |  Size: 187 KiB

View File

Before

Width:  |  Height:  |  Size: 228 KiB

After

Width:  |  Height:  |  Size: 228 KiB

View File

Before

Width:  |  Height:  |  Size: 216 KiB

After

Width:  |  Height:  |  Size: 216 KiB

View File

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 97 KiB

View File

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View File

Before

Width:  |  Height:  |  Size: 314 KiB

After

Width:  |  Height:  |  Size: 314 KiB

View File

Before

Width:  |  Height:  |  Size: 298 KiB

After

Width:  |  Height:  |  Size: 298 KiB

View File

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

View File

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 132 KiB

View File

Before

Width:  |  Height:  |  Size: 205 KiB

After

Width:  |  Height:  |  Size: 205 KiB

View File

@@ -1,14 +1,12 @@
---
Status: Ready
Created by: Trude EH
title: CPU Architecture
description:
date: 2025-02-17T08:06:50+00:00
draft: false
tags:
- computer-science
- notes
author: TrudeEH
draft: false
searchHidden: false
showToc: true
title: CPU Architecture
---
## Components
@@ -35,7 +33,7 @@ For example, a simple computer architecture could use `00` to represent arithmet
![[image11.png]]
To decide which type of operation to execute (subtraction, multiplication, addition, etc), the 3rd and 4th bits could be used.
![[image12.png]]
Using a [[binary-operations/index]], we can build an inefficient, but simple circuit to do this.
Using a [[ready/binary-operations/index]], we can build an inefficient, but simple circuit to do this.
![[image13.png]]
This type of circuit is an Arithmetic Logic Unit (ALU).
@@ -87,7 +85,7 @@ We can finally add the ALU (Arithmetic Logic Unit) we built before into the new
The gray trapezoids are multiplexers:
![[image23.png]]
The output value is then stored in a temporary register, before replacing the first operand register's value.
The component we just built to control the `ALU` is part of a `Control Unit`. The full `control unit` is very complex, as it needs to handle every possible instruction. (So far, we have seen how to implement the `ALU` and `RAM`.)
The component we just built to control the `ALU` is part of a `Control Unit`. The full `control unit` is very complex, as it needs to handle every possible instruction. (So far, we have seen how to implement the `ALU` and `RAM`.)
![[image24.png]]
Each register in the `CU` has a specific purpose, unlike `RAM`, which can be used to store any values.
![[image25.png]]
@@ -121,30 +119,29 @@ Sometimes, we might want to loop only if a certain condition is met.
For context, imagine subtracting a number from itself. In this case, the ALU will provide some extra information, using 1 bit registers called `flags`.
![[image33.png]]
| | | |
|---|---|---|
|0|**O**verflow|When a number is too large to fit in the output register.|
|1|**Z**ero|When the result is zero.|
|0|**N**egative|When a number is negative.|
| N | Flag | Description |
| --- | ------------ | --------------------------------------------------------- |
| 0 | **O**verflow | When a number is too large to fit in the output register. |
| 1 | **Z**ero | When the result is zero. |
| 0 | **N**egative | When a number is negative. |
This additional information can be used to make decisions, and make **conditional jumps** possible.
| | | |
|---|---|---|
|`JMP_OFW XXXX`|Jump Overflow|Overwrites the `Address Register` with the value `XXXX` if the `O_FLAG` is **ON**. If the flag is **OFF**, the `Address Register`'s value is incremented by **1**.|
|`JMP_ZRO XXXX`|Jump Zero|Overwrites the `Address Register` with the value `XXXX` if the `Z_FLAG` is **ON**. If the flag is **OFF**, the `Address Register`'s value is incremented by **1**.|
|`JMP_NEG XXXX`|Jump Negative|Overwrites the `Address Register` with the value `XXXX` if the `N_FLAG` is **ON**. If the flag is **OFF**, the `Address Register`'s value is incremented by **1**.|
|`JMP_ABV XXXX`|Jump Above|Overwrites the `Address Register` with the value `XXXX` if **neither** the `Z_FLAG` nor `N_FLAG` are **ON**. If either is **ON,** the `Address Register`'s value is incremented by **1**.|
| ASM | Command | Description |
| -------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `JMP_OFW XXXX` | Jump Overflow | Overwrites the `Address Register` with the value `XXXX` if the `O_FLAG` is **ON**. If the flag is **OFF**, the `Address Register`'s value is incremented by **1**. |
| `JMP_ZRO XXXX` | Jump Zero | Overwrites the `Address Register` with the value `XXXX` if the `Z_FLAG` is **ON**. If the flag is **OFF**, the `Address Register`'s value is incremented by **1**. |
| `JMP_NEG XXXX` | Jump Negative | Overwrites the `Address Register` with the value `XXXX` if the `N_FLAG` is **ON**. If the flag is **OFF**, the `Address Register`'s value is incremented by **1**. |
| `JMP_ABV XXXX` | Jump Above | Overwrites the `Address Register` with the value `XXXX` if **neither** the `Z_FLAG` nor `N_FLAG` are **ON**. If either is **ON,** the `Address Register`'s value is incremented by **1**. |
Comparing two numbers is the same as subtracting them.
$$a - 5 = b$$
| | | |
|---|---|---|
|**b** is negative|**b** is zero|**b** is positive|
|then|then|then|
|a < 5|a == 5|a > 5|
| **b** is negative | **b** is zero | **b** is positive |
| ----------------- | ------------- | ----------------- |
| then | then | then |
| a < 5 | a == 5 | a > 5 |
For example:
![[image34.png]]

View File

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -1,15 +1,13 @@
---
Status: Ready
Created by: Trude EH
title: Databases [SQL]
description:
date: 2025-02-17T08:27:35+00:00
draft: false
tags:
- notes
- programming
- web
author: TrudeEH
draft: false
searchHidden: false
showToc: true
title: Databases [SQL]
---
## Flat-File Databases
@@ -77,7 +75,7 @@ UPDATE table SET column = value WHERE condition; -- Update values
DELETE FROM table WHERE condition; -- Delete data
```
> [!important] In `SQL`, there is **NO WAY** to undo actions. Especially when writing or deleting from the database, do not type `;` unless you know exactly what you are doing!
> In `SQL`, there is **NO WAY** to undo actions. Especially when writing or deleting from the database, do not type `;` unless you know exactly what you are doing!
#### Wildcard

View File

@@ -1,15 +1,16 @@
---
Status: Ready
Created by: Trude EH
title: Diodes
description:
date: 2025-02-17T08:18:09+00:00
draft: false
tags:
- electronics
- notes
author: TrudeEH
draft: false
searchHidden: false
showToc: true
title: Diodes
---
A diode allows current to only flow in one direction in a circuit.
## Schematic

View File

@@ -1,12 +1,13 @@
---
title: Encryption [GPG]
description:
date: 2025-02-17T09:02:06+00:00
draft: false
tags:
- networking
- notes
- tools
author: TrudeEH
draft: false
showToc: true
title: Encryption [GPG]
---
## Symmetric Encryption

View File

@@ -1,13 +1,17 @@
---
title: Flask
description:
date: 2025-02-17T09:01:01+00:00
draft: false
tags:
- notes
- programming
- web
author: TrudeEH
draft: false
showToc: true
title: Flask
---
Flask is a web framework for Python. It facilitates the creation of web apps (dynamic web pages).
## Run Flask

View File

@@ -1,14 +1,12 @@
---
Status: Ready
Created by: Trude EH
title: Debugging [GDB]
description:
date: 2025-02-17T08:16:48+00:00
draft: false
tags:
- notes
- programming
author: TrudeEH
draft: false
searchHidden: false
showToc: true
title: Debugging [GDB]
---
## GDB Debugging

View File

@@ -1,14 +1,16 @@
---
title: Version Control [GIT]
description:
date: 2025-02-17T08:58:11+00:00
draft: false
tags:
- notes
- programming
- tools
author: TrudeEH
draft: false
showToc: true
title: Version Control [GIT]
---
Git is a version control system first developed by Linus Torvalds. It facilitates collaboration on large projects, keeps track of changes, and allows mistakes to be rolled back into a previous state.
## Configure Git

View File

@@ -1,17 +1,20 @@
---
title: HTML
description:
date: 2025-02-17T09:11:23+00:00
draft: false
tags:
- notes
- web
author: TrudeEH
draft: false
showToc: true
title: HTML
---
*HTML* is a markup language: The foundation of every website, as it structures content and provides information such as text, images and other media to the browser.
## Hello World
*HTML* is not a programming language, only formatting to write a document as. The following 'code' is valid *HTML.*
HTML is not a programming language, only formatting to write a document as. The following 'code' is valid HTML.
```HTML
Hello, world.
@@ -34,9 +37,9 @@ A more complete solution, however, would be to define a structure for the docume
</html>
```
*HTML* uses tags to define a hierarchy. The `<head>` tag defines metadata for the site, such as the page's title, encoding types, and any external resources. The `<body>` tag is the content itself: any paragraphs (`<p>`), images, forms and scripts, to name a few.
HTML uses tags to define a hierarchy. The `<head>` tag defines metadata for the site, such as the page's title, encoding types, and any external resources. The `<body>` tag is the content itself: any paragraphs (`<p>`), images, forms and scripts, to name a few.
> When reading *HTML*, the browser applies a set of default styles to make it more readable. *HTML* is **not** the place to style content, however. For example, a common mistake is to use headings based on their size or font weight, instead of their meaning. Everything can all be styled using *CSS* later, so try to ignore the design when writing *HTML*, and focus on the content instead.
> When reading HTML, the browser applies a set of default styles to make it more readable. HTML is **not** the place to style content, however. For example, a common mistake is to use headings based on their size or font weight, instead of their meaning. Everything can all be styled using CSS later, so try to ignore the design when writing HTML, and focus on the content instead.
> Not all tags hold content, but for those that do, the end of that content is defined with a closing tag: `</tagname>`.
## Basic Tags

View File

@@ -1,13 +1,14 @@
---
title: HTTP [CURL]
description:
date: 2025-02-17T09:22:33+00:00
draft: false
tags:
- networking
- notes
- tools
- web
author: TrudeEH
draft: false
showToc: true
title: HTTP [curl]
---
## HTTP

View File

@@ -1,12 +1,13 @@
---
title: HTTPS and SSL Certificates
description:
date: 2025-02-17T09:17:30+00:00
draft: false
tags:
- networking
- notes
- web
author: TrudeEH
draft: false
showToc: true
title: HTTPS and SSL Certificates
---
## HTTP(s)

View File

@@ -1,11 +1,12 @@
---
title: IRC
description:
date: 2025-02-17T09:13:13+00:00
draft: false
tags:
- networking
- notes
author: TrudeEH
draft: false
showToc: true
title: IRC
---
## The IRC Protocol
@@ -16,14 +17,14 @@ IRC is a very simple communication protocol that allows users to chat in real ti
### Server
To be able to communicate, users must connect to a server. Each server has its own rules, bots and commands. The IRC protocol itself does not implement encryption, however, [[https-ssl-certs]] can be used to establish a secure connection **with the server**.
To be able to communicate, users must connect to a server. Each server has its own rules, bots and commands. The IRC protocol itself does not implement encryption, however, [[https-ssl-certs|SSL Certificates]] can be used to establish a secure connection **with the server**.
Every message sent **can be read by the server**, including **private messages** between users.
Separate IRC instances can communicate. This concept is often called **server federation**. This allows for users in different servers to send messages to each other.
### Client
To connect to a server, every user needs a client. Because IRC is an open protocol, there are many clients one can use, however, I am currently using [halloy](https://halloy.squidowl.org/index.html).
For example, *halloy* can be configured as follows:
To connect to a server, every user needs a client. Because IRC is an open protocol, there are many clients one can use, however, for this example I am using [halloy](https://halloy.squidowl.org/index.html).
Halloy can be configured as follows:
```TOML
# Example without encryption
@@ -162,7 +163,7 @@ services:
```
To properly configure your server, be sure to read the [containers documentation](https://hub.docker.com/r/inspircd/inspircd-docker/).
This container generates a self-signed SSL certificate for secure connections, however, it won't be accepted by actual clients. Refer to my [[https-ssl-certs]] to generate a real certificate for TLS to work. After generating your certificate, simply replace the old one with it.
This container generates a self-signed SSL certificate for secure connections, however, it won't be accepted by actual clients. Refer to my [[https-ssl-certs|SSL guide]] to generate a real certificate for TLS to work. After generating your certificate, simply replace the old one with it.
### Linux
@@ -188,7 +189,7 @@ Finally, start `inspircd`.
sudo systemctl start inspircd
```
To enable TLS, refer to my [[https-ssl-certs]]. After generating your certificate, copy it to `inspircd`'s ssl directory.
To enable TLS, refer to my [[https-ssl-certs|SSL guide]]. After generating your certificate, copy it to `inspircd`'s ssl directory.
```Shell
sudo cp /etc/letsencrypt/live/irc.example.com/fullchain.pem /etc/inspircd/ssl/cert.pem

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Some files were not shown because too many files have changed in this diff Show More