Finished importing notes
@@ -12,6 +12,9 @@ outputs:
|
|||||||
- RSS
|
- RSS
|
||||||
- JSON # necessary for search
|
- JSON # necessary for search
|
||||||
|
|
||||||
|
ignoreFiles:
|
||||||
|
- "notes/drafts/_Templates"
|
||||||
|
|
||||||
taxonomies:
|
taxonomies:
|
||||||
tag: tags
|
tag: tags
|
||||||
|
|
||||||
|
|||||||
19
content/notes/.obsidian/graph.json
vendored
@@ -6,22 +6,7 @@
|
|||||||
"hideUnresolved": false,
|
"hideUnresolved": false,
|
||||||
"showOrphans": true,
|
"showOrphans": true,
|
||||||
"collapse-color-groups": false,
|
"collapse-color-groups": false,
|
||||||
"colorGroups": [
|
"colorGroups": [],
|
||||||
{
|
|
||||||
"query": "path:Notion ",
|
|
||||||
"color": {
|
|
||||||
"a": 1,
|
|
||||||
"rgb": 14701138
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"query": "path:temp ",
|
|
||||||
"color": {
|
|
||||||
"a": 1,
|
|
||||||
"rgb": 16711680
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"collapse-display": false,
|
"collapse-display": false,
|
||||||
"showArrow": false,
|
"showArrow": false,
|
||||||
"textFadeMultiplier": 0,
|
"textFadeMultiplier": 0,
|
||||||
@@ -32,6 +17,6 @@
|
|||||||
"repelStrength": 10,
|
"repelStrength": 10,
|
||||||
"linkStrength": 1,
|
"linkStrength": 1,
|
||||||
"linkDistance": 250,
|
"linkDistance": 250,
|
||||||
"scale": 0.4275731589927159,
|
"scale": 0.12668834340524918,
|
||||||
"close": true
|
"close": true
|
||||||
}
|
}
|
||||||
2
content/notes/.obsidian/templates.json
vendored
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"folder": "Templates"
|
"folder": "drafts/_Templates"
|
||||||
}
|
}
|
||||||
114
content/notes/.obsidian/workspace.json
vendored
@@ -8,17 +8,17 @@
|
|||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "560e779e6f4e85a3",
|
"id": "41d42d82984d27da",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "index/index.md",
|
"file": "drafts/lua.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false
|
"source": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "index"
|
"title": "lua"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -159,17 +159,26 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "outline",
|
"type": "outline",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "Notion/Memory.md",
|
|
||||||
"followCursor": false,
|
"followCursor": false,
|
||||||
"showSearch": false,
|
"showSearch": false,
|
||||||
"searchQuery": ""
|
"searchQuery": ""
|
||||||
},
|
},
|
||||||
"icon": "lucide-list",
|
"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",
|
"direction": "horizontal",
|
||||||
@@ -185,57 +194,56 @@
|
|||||||
"command-palette:Open command palette": false,
|
"command-palette:Open command palette": false,
|
||||||
"obsidian-importer:Open Importer": false,
|
"obsidian-importer:Open Importer": false,
|
||||||
"table-editor-obsidian:Advanced Tables Toolbar": false,
|
"table-editor-obsidian:Advanced Tables Toolbar": false,
|
||||||
"obsidian-local-images-plus:Local Images Plus 0.16.3\r\nLocalize attachments (plugin folder)": false,
|
"obsidian-local-images-plus:Local Images Plus 0.16.3\r\nLocalize attachments (plugin folder)": false
|
||||||
"homepage:Open homepage": false
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "560e779e6f4e85a3",
|
"active": "f7c232306fce05bc",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"binary-operations/index.md",
|
"drafts/lua.md",
|
||||||
|
"drafts/linux_architecture/index.md",
|
||||||
"index/index.md",
|
"index/index.md",
|
||||||
"transistors/index.md",
|
"Untitled",
|
||||||
"notes/transistors.md",
|
"TODO.md",
|
||||||
"notes",
|
"temp/pngwing.com.png",
|
||||||
"Templates/base.md",
|
"temp/nix.svg",
|
||||||
"Untitled.md",
|
"temp/image93.png",
|
||||||
"html.md",
|
"temp/windows-11-icon-logo-png_seeklogo-406208.png",
|
||||||
"Templates",
|
"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",
|
"index",
|
||||||
"Notion/Databases SQL.md",
|
"drafts/_Templates",
|
||||||
"git.md",
|
"ready/tmux"
|
||||||
"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"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
Status: Planned
|
|
||||||
Created by: Trude EH
|
|
||||||
tags:
|
|
||||||
- notes
|
|
||||||
- programming
|
|
||||||
- web
|
|
||||||
author: TrudeEH
|
|
||||||
draft: false
|
|
||||||
searchHidden: false
|
|
||||||
showToc: true
|
|
||||||
title: JavaScript
|
|
||||||
---
|
|
||||||
@@ -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|
|
|
||||||
|
|
||||||

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

|
|
||||||
|
|
||||||
To be able to say any binary number, list the number, starting by the last digit:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
And pronounce the ones that correspond to a `1` bit.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
#### Pronounce a Binary Number at a Glance
|
|
||||||
|
|
||||||
1. Break the number at its largest pair of bits.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
2. Represent the left and right sides.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
In this example, there is a `two` in the order of magnitude `hex`.
|
|
||||||
|
|
||||||
3. Continue to represent the left and right sides recursively.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
The last number is `four`.
|
|
||||||
|
|
||||||
|
|
||||||
#### Decode a Spoken Binary Number
|
|
||||||
|
|
||||||
Starting with `two hex four`:
|
|
||||||
|
|
||||||
1. Find the largest power of two.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
2. The number is equal to the left side, times the order of magnitude, plus the right side.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
#### Avoiding Repetition
|
|
||||||
|
|
||||||
Repetition can be avoided by combining some very common, small numbers:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
| + | `.` | `\|` |
|
|
||||||
| ---- | ---- | ----- |
|
|
||||||
| `.` | `.` | `\|` |
|
|
||||||
| `\|` | `\|` | `\|.` |
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
> To add numbers more efficiently by hand, you can group bits together and memorize the patters, effectively doubling your speed.
|
|
||||||
>
|
|
||||||
> 
|
|
||||||
>
|
|
||||||
> To improve calculation speed even further, you can group more bits, and learn those patterns as well.
|
|
||||||
>
|
|
||||||
> 
|
|
||||||
|
|
||||||
#### 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|`;`|;|semicolon|
|
|
||||||
|60|3C|00111100|`<`|<|less than|
|
|
||||||
|61|3D|00111101|`=`|=|equality sign|
|
|
||||||
|62|3E|00111110|`>`|>|greater than|
|
|
||||||
|63|3F|00111111|`?`|?|question mark|
|
|
||||||
|64|40|01000000|`@`|@|at sign|
|
|
||||||
|65|41|01000001|`A`|A||
|
|
||||||
|66|42|01000010|`B`|B||
|
|
||||||
|67|43|01000011|`C`|C||
|
|
||||||
|68|44|01000100|`D`|D||
|
|
||||||
|69|45|01000101|`E`|E||
|
|
||||||
|70|46|01000110|`F`|F||
|
|
||||||
|71|47|01000111|`G`|G||
|
|
||||||
|72|48|01001000|`H`|H||
|
|
||||||
|73|49|01001001|`I`|I||
|
|
||||||
|74|4A|01001010|`J`|J||
|
|
||||||
|75|4B|01001011|`K`|K||
|
|
||||||
|76|4C|01001100|`L`|L||
|
|
||||||
|77|4D|01001101|`M`|M||
|
|
||||||
|78|4E|01001110|`N`|N||
|
|
||||||
|79|4F|01001111|`O`|O||
|
|
||||||
|80|50|01010000|`P`|P||
|
|
||||||
|81|51|01010001|`Q`|Q||
|
|
||||||
|82|52|01010010|`R`|R||
|
|
||||||
|83|53|01010011|`S`|S||
|
|
||||||
|84|54|01010100|`T`|T||
|
|
||||||
|85|55|01010101|`U`|U||
|
|
||||||
|86|56|01010110|`V`|V||
|
|
||||||
|87|57|01010111|`W`|W||
|
|
||||||
|88|58|01011000|`X`|X||
|
|
||||||
|89|59|01011001|`Y`|Y||
|
|
||||||
|90|5A|01011010|`Z`|Z||
|
|
||||||
|91|5B|01011011|`[`|[|left square bracket|
|
|
||||||
|92|5C|01011100|`\`|\|backslash|
|
|
||||||
|93|5D|01011101|`]`|]|right square bracket|
|
|
||||||
|94|5E|01011110|`^`|^|caret / circumflex|
|
|
||||||
|95|5F|01011111|`_`|_|underscore|
|
|
||||||
|96|60|01100000|```|`|grave / accent|
|
|
||||||
|97|61|01100001|`a`|a||
|
|
||||||
|98|62|01100010|`b`|b||
|
|
||||||
|99|63|01100011|`c`|c||
|
|
||||||
|100|64|01100100|`d`|d||
|
|
||||||
|101|65|01100101|`e`|e||
|
|
||||||
|102|66|01100110|`f`|f||
|
|
||||||
|103|67|01100111|`g`|g||
|
|
||||||
|104|68|01101000|`h`|h||
|
|
||||||
|105|69|01101001|`i`|i||
|
|
||||||
|106|6A|01101010|`j`|j||
|
|
||||||
|107|6B|01101011|`k`|k||
|
|
||||||
|108|6C|01101100|`l`|l||
|
|
||||||
|109|6D|01101101|`m`|m||
|
|
||||||
|110|6E|01101110|`n`|n||
|
|
||||||
|111|6F|01101111|`o`|o||
|
|
||||||
|112|70|01110000|`p`|p||
|
|
||||||
|113|71|01110001|`q`|q||
|
|
||||||
|114|72|01110010|`r`|r||
|
|
||||||
|115|73|01110011|`s`|s||
|
|
||||||
|116|74|01110100|`t`|t||
|
|
||||||
|117|75|01110101|`u`|u||
|
|
||||||
|118|76|01110110|`v`|v||
|
|
||||||
|119|77|01110111|`w`|w||
|
|
||||||
|120|78|01111000|`x`|x||
|
|
||||||
|121|79|01111001|`y`|y||
|
|
||||||
|122|7A|01111010|`z`|z||
|
|
||||||
|123|7B|01111011|`{`|{|left curly bracket|
|
|
||||||
|124|7C|01111100|`|`|\||vertical bar|
|
|
||||||
|125|7D|01111101|`}`|}|right curly bracket|
|
|
||||||
|126|7E|01111110|`~`|~|tilde|
|
|
||||||
|127|7F|01111111|``|DEL|delete|
|
|
||||||
|
Before Width: | Height: | Size: 3.2 MiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 2.5 MiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 155 KiB After Width: | Height: | Size: 155 KiB |
@@ -1,15 +1,13 @@
|
|||||||
---
|
---
|
||||||
Status: In progress
|
title: Linux Architecture
|
||||||
Created by: Trude EH
|
description:
|
||||||
|
date: 2025-02-17T08:32:33+00:00
|
||||||
|
draft: true
|
||||||
tags:
|
tags:
|
||||||
- computer-science
|
- computer-science
|
||||||
- notes
|
|
||||||
- os
|
- os
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
searchHidden: false
|
|
||||||
showToc: true
|
showToc: true
|
||||||
title: Linux Architecture
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Kernel
|
## Kernel
|
||||||
@@ -43,7 +41,7 @@ A program is an executable containing machine code. When a computer executes a p
|
|||||||
![[image5.png]]
|
![[image5.png]]
|
||||||
A program loaded in memory is a process.
|
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
|
### 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
|
## File Systems
|
||||||
|
|
||||||
> [!important] This section is heavily simplified and only covers `EXT2-4`.
|
> This section is heavily simplified and only covers `EXT2-4`.
|
||||||
|
|
||||||
### Concepts
|
### Concepts
|
||||||
|
|
||||||
@@ -102,7 +100,7 @@ Uses linked lists to store and lookup data, to keep the implementation of the fi
|
|||||||
|
|
||||||
#### HTrees
|
#### 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
|
#### Scalability
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 243 KiB After Width: | Height: | Size: 243 KiB |
@@ -1,12 +1,13 @@
|
|||||||
---
|
---
|
||||||
tags:
|
|
||||||
- notes
|
|
||||||
- programming
|
|
||||||
- c
|
|
||||||
author: TrudeEH
|
|
||||||
draft: false
|
|
||||||
showToc: true
|
|
||||||
title: Algorithms & Data Structures
|
title: Algorithms & Data Structures
|
||||||
|
description:
|
||||||
|
date: 2025-02-17T08:52:10+00:00
|
||||||
|
draft: false
|
||||||
|
tags:
|
||||||
|
- c
|
||||||
|
- programming
|
||||||
|
author: TrudeEH
|
||||||
|
showToc: true
|
||||||
---
|
---
|
||||||
|
|
||||||
## Time Complexity
|
## Time Complexity
|
||||||
@@ -253,8 +254,8 @@ int main(void) {
|
|||||||
```
|
```
|
||||||
|
|
||||||
```C
|
```C
|
||||||
\#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
\#include <stdio.h>
|
#include <stdio.h>
|
||||||
typedef struct node {
|
typedef struct node {
|
||||||
int number;
|
int number;
|
||||||
struct node *next;
|
struct node *next;
|
||||||
|
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 143 KiB |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
390
content/notes/ready/binary-operations/index.md
Normal 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|
|
||||||
|
|
||||||
|

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

|
||||||
|
|
||||||
|
To be able to say any binary number, list the number, starting by the last digit:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
And pronounce the ones that correspond to a `1` bit.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
#### Pronounce a Binary Number at a Glance
|
||||||
|
|
||||||
|
1. Break the number at its largest pair of bits.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
2. Represent the left and right sides.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
In this example, there is a `two` in the order of magnitude `hex`.
|
||||||
|
|
||||||
|
3. Continue to represent the left and right sides recursively.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The last number is `four`.
|
||||||
|
|
||||||
|
#### Decode a Spoken Binary Number
|
||||||
|
|
||||||
|
Starting with `two hex four`:
|
||||||
|
|
||||||
|
1. Find the largest power of two.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
2. The number is equal to the left side, times the order of magnitude, plus the right side.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
#### Avoiding Repetition
|
||||||
|
|
||||||
|
Repetition can be avoided by combining some very common, small numbers:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

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

|
||||||
|
|
||||||
|
> To add numbers more efficiently by hand, you can group bits together and memorize the patters, effectively doubling your speed.
|
||||||
|
>
|
||||||
|
> 
|
||||||
|
>
|
||||||
|
> To improve calculation speed even further, you can group more bits, and learn those patterns as well.
|
||||||
|
>
|
||||||
|
> 
|
||||||
|
|
||||||
|
#### 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 | `�` | 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 | `;` | ; | semicolon |
|
||||||
|
| 60 | 3C | 00111100 | `<` | < | less than |
|
||||||
|
| 61 | 3D | 00111101 | `=` | = | equality sign |
|
||||||
|
| 62 | 3E | 00111110 | `>` | > | greater than |
|
||||||
|
| 63 | 3F | 00111111 | `?` | ? | question mark |
|
||||||
|
| 64 | 40 | 01000000 | `@` | @ | at sign |
|
||||||
|
| 65 | 41 | 01000001 | `A` | A | |
|
||||||
|
| 66 | 42 | 01000010 | `B` | B | |
|
||||||
|
| 67 | 43 | 01000011 | `C` | C | |
|
||||||
|
| 68 | 44 | 01000100 | `D` | D | |
|
||||||
|
| 69 | 45 | 01000101 | `E` | E | |
|
||||||
|
| 70 | 46 | 01000110 | `F` | F | |
|
||||||
|
| 71 | 47 | 01000111 | `G` | G | |
|
||||||
|
| 72 | 48 | 01001000 | `H` | H | |
|
||||||
|
| 73 | 49 | 01001001 | `I` | I | |
|
||||||
|
| 74 | 4A | 01001010 | `J` | J | |
|
||||||
|
| 75 | 4B | 01001011 | `K` | K | |
|
||||||
|
| 76 | 4C | 01001100 | `L` | L | |
|
||||||
|
| 77 | 4D | 01001101 | `M` | M | |
|
||||||
|
| 78 | 4E | 01001110 | `N` | N | |
|
||||||
|
| 79 | 4F | 01001111 | `O` | O | |
|
||||||
|
| 80 | 50 | 01010000 | `P` | P | |
|
||||||
|
| 81 | 51 | 01010001 | `Q` | Q | |
|
||||||
|
| 82 | 52 | 01010010 | `R` | R | |
|
||||||
|
| 83 | 53 | 01010011 | `S` | S | |
|
||||||
|
| 84 | 54 | 01010100 | `T` | T | |
|
||||||
|
| 85 | 55 | 01010101 | `U` | U | |
|
||||||
|
| 86 | 56 | 01010110 | `V` | V | |
|
||||||
|
| 87 | 57 | 01010111 | `W` | W | |
|
||||||
|
| 88 | 58 | 01011000 | `X` | X | |
|
||||||
|
| 89 | 59 | 01011001 | `Y` | Y | |
|
||||||
|
| 90 | 5A | 01011010 | `Z` | Z | |
|
||||||
|
| 91 | 5B | 01011011 | `[` | [ | left square bracket |
|
||||||
|
| 92 | 5C | 01011100 | `\` | \|backslash | |
|
||||||
|
| 93 | 5D | 01011101 | `]` | ] | right square bracket |
|
||||||
|
| 94 | 5E | 01011110 | `^` | ^ | caret / circumflex |
|
||||||
|
| 95 | 5F | 01011111 | `_` | _ | underscore |
|
||||||
|
| 96 | 60 | 01100000 | ``` | ` | grave / accent |
|
||||||
|
| 97 | 61 | 01100001 | `a` | a | |
|
||||||
|
| 98 | 62 | 01100010 | `b` | b | |
|
||||||
|
| 99 | 63 | 01100011 | `c` | c | |
|
||||||
|
| 100 | 64 | 01100100 | `d` | d | |
|
||||||
|
| 101 | 65 | 01100101 | `e` | e | |
|
||||||
|
| 102 | 66 | 01100110 | `f` | f | |
|
||||||
|
| 103 | 67 | 01100111 | `g` | g | |
|
||||||
|
| 104 | 68 | 01101000 | `h` | h | |
|
||||||
|
| 105 | 69 | 01101001 | `i` | i | |
|
||||||
|
| 106 | 6A | 01101010 | `j` | j | |
|
||||||
|
| 107 | 6B | 01101011 | `k` | k | |
|
||||||
|
| 108 | 6C | 01101100 | `l` | l | |
|
||||||
|
| 109 | 6D | 01101101 | `m` | m | |
|
||||||
|
| 110 | 6E | 01101110 | `n` | n | |
|
||||||
|
| 111 | 6F | 01101111 | `o` | o | |
|
||||||
|
| 112 | 70 | 01110000 | `p` | p | |
|
||||||
|
| 113 | 71 | 01110001 | `q` | q | |
|
||||||
|
| 114 | 72 | 01110010 | `r` | r | |
|
||||||
|
| 115 | 73 | 01110011 | `s` | s | |
|
||||||
|
| 116 | 74 | 01110100 | `t` | t | |
|
||||||
|
| 117 | 75 | 01110101 | `u` | u | |
|
||||||
|
| 118 | 76 | 01110110 | `v` | v | |
|
||||||
|
| 119 | 77 | 01110111 | `w` | w | |
|
||||||
|
| 120 | 78 | 01111000 | `x` | x | |
|
||||||
|
| 121 | 79 | 01111001 | `y` | y | |
|
||||||
|
| 122 | 7A | 01111010 | `z` | z | |
|
||||||
|
| 123 | 7B | 01111011 | `{` | { | left curly bracket |
|
||||||
|
| 124 | 7C | 01111100 | `|` | \| | vertical bar |
|
||||||
|
| 125 | 7D | 01111101 | `}` | } | right curly bracket |
|
||||||
|
| 126 | 7E | 01111110 | `~` | ~ | tilde |
|
||||||
|
| 127 | 7F | 01111111 | `` | DEL | delete |
|
||||||
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
@@ -1,13 +1,13 @@
|
|||||||
---
|
---
|
||||||
tags:
|
|
||||||
- notes
|
|
||||||
- programming
|
|
||||||
- c
|
|
||||||
author: TrudeEH
|
|
||||||
showToc: true
|
|
||||||
title: C Language
|
title: C Language
|
||||||
description:
|
description:
|
||||||
|
date: 2025-02-17T08:54:40+00:00
|
||||||
draft: false
|
draft: false
|
||||||
|
tags:
|
||||||
|
- c
|
||||||
|
- programming
|
||||||
|
author: TrudeEH
|
||||||
|
showToc: true
|
||||||
---
|
---
|
||||||
|
|
||||||
## Tools
|
## Tools
|
||||||
@@ -1,17 +1,18 @@
|
|||||||
---
|
---
|
||||||
tags:
|
|
||||||
- notes
|
|
||||||
- programming
|
|
||||||
- c
|
|
||||||
author: TrudeEH
|
|
||||||
draft: false
|
|
||||||
showToc: true
|
|
||||||
title: C Snippets
|
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
|
## 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.
|
ASCII encodes numbers in order, after special characters.
|
||||||
|
|
||||||
@@ -1,12 +1,16 @@
|
|||||||
---
|
---
|
||||||
|
title: Compiling [MAKE / GCC]
|
||||||
|
description:
|
||||||
|
date: 2025-02-17T08:59:53+00:00
|
||||||
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- notes
|
- c
|
||||||
- programming
|
- programming
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
showToc: true
|
showToc: true
|
||||||
title: Compiling [MAKE / GCC]
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
Convert `C` code into machine code in 4 steps:
|
Convert `C` code into machine code in 4 steps:
|
||||||
1. **Preprocessing** (Convert all preprocessor instructions: `#…`)
|
1. **Preprocessing** (Convert all preprocessor instructions: `#…`)
|
||||||
2. **Compiling** (Convert `C` code to machine code)
|
2. **Compiling** (Convert `C` code to machine code)
|
||||||
|
Before Width: | Height: | Size: 213 KiB After Width: | Height: | Size: 213 KiB |
|
Before Width: | Height: | Size: 219 KiB After Width: | Height: | Size: 219 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 186 KiB |
|
Before Width: | Height: | Size: 214 KiB After Width: | Height: | Size: 214 KiB |
|
Before Width: | Height: | Size: 297 KiB After Width: | Height: | Size: 297 KiB |
|
Before Width: | Height: | Size: 306 KiB After Width: | Height: | Size: 306 KiB |
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 139 KiB |
|
Before Width: | Height: | Size: 358 KiB After Width: | Height: | Size: 358 KiB |
|
Before Width: | Height: | Size: 357 KiB After Width: | Height: | Size: 357 KiB |
|
Before Width: | Height: | Size: 244 KiB After Width: | Height: | Size: 244 KiB |
|
Before Width: | Height: | Size: 217 KiB After Width: | Height: | Size: 217 KiB |
|
Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 205 KiB |
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 313 KiB After Width: | Height: | Size: 313 KiB |
|
Before Width: | Height: | Size: 318 KiB After Width: | Height: | Size: 318 KiB |
|
Before Width: | Height: | Size: 338 KiB After Width: | Height: | Size: 338 KiB |
|
Before Width: | Height: | Size: 324 KiB After Width: | Height: | Size: 324 KiB |
|
Before Width: | Height: | Size: 187 KiB After Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 228 KiB |
|
Before Width: | Height: | Size: 216 KiB After Width: | Height: | Size: 216 KiB |
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 314 KiB After Width: | Height: | Size: 314 KiB |
|
Before Width: | Height: | Size: 298 KiB After Width: | Height: | Size: 298 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 205 KiB |
@@ -1,14 +1,12 @@
|
|||||||
---
|
---
|
||||||
Status: Ready
|
title: CPU Architecture
|
||||||
Created by: Trude EH
|
description:
|
||||||
|
date: 2025-02-17T08:06:50+00:00
|
||||||
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- computer-science
|
- computer-science
|
||||||
- notes
|
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
searchHidden: false
|
|
||||||
showToc: true
|
showToc: true
|
||||||
title: CPU Architecture
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Components
|
## Components
|
||||||
@@ -35,7 +33,7 @@ For example, a simple computer architecture could use `00` to represent arithmet
|
|||||||
![[image11.png]]
|
![[image11.png]]
|
||||||
To decide which type of operation to execute (subtraction, multiplication, addition, etc), the 3rd and 4th bits could be used.
|
To decide which type of operation to execute (subtraction, multiplication, addition, etc), the 3rd and 4th bits could be used.
|
||||||
![[image12.png]]
|
![[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]]
|
![[image13.png]]
|
||||||
This type of circuit is an Arithmetic Logic Unit (ALU).
|
This type of circuit is an Arithmetic Logic Unit (ALU).
|
||||||
|
|
||||||
@@ -121,16 +119,16 @@ 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`.
|
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]]
|
![[image33.png]]
|
||||||
|
|
||||||
| | | |
|
| N | Flag | Description |
|
||||||
|---|---|---|
|
| --- | ------------ | --------------------------------------------------------- |
|
||||||
| 0 | **O**verflow | When a number is too large to fit in the output register. |
|
| 0 | **O**verflow | When a number is too large to fit in the output register. |
|
||||||
| 1 | **Z**ero | When the result is zero. |
|
| 1 | **Z**ero | When the result is zero. |
|
||||||
| 0 | **N**egative | When a number is negative. |
|
| 0 | **N**egative | When a number is negative. |
|
||||||
|
|
||||||
This additional information can be used to make decisions, and make **conditional jumps** possible.
|
This additional information can be used to make decisions, and make **conditional jumps** possible.
|
||||||
|
|
||||||
| | | |
|
| 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_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_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_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**. |
|
||||||
@@ -140,9 +138,8 @@ Comparing two numbers is the same as subtracting them.
|
|||||||
|
|
||||||
$$a - 5 = b$$
|
$$a - 5 = b$$
|
||||||
|
|
||||||
| | | |
|
|
||||||
|---|---|---|
|
|
||||||
| **b** is negative | **b** is zero | **b** is positive |
|
| **b** is negative | **b** is zero | **b** is positive |
|
||||||
|
| ----------------- | ------------- | ----------------- |
|
||||||
| then | then | then |
|
| then | then | then |
|
||||||
| a < 5 | a == 5 | a > 5 |
|
| a < 5 | a == 5 | a > 5 |
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
@@ -1,15 +1,13 @@
|
|||||||
---
|
---
|
||||||
Status: Ready
|
title: Databases [SQL]
|
||||||
Created by: Trude EH
|
description:
|
||||||
|
date: 2025-02-17T08:27:35+00:00
|
||||||
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- notes
|
|
||||||
- programming
|
- programming
|
||||||
- web
|
- web
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
searchHidden: false
|
|
||||||
showToc: true
|
showToc: true
|
||||||
title: Databases [SQL]
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Flat-File Databases
|
## Flat-File Databases
|
||||||
@@ -77,7 +75,7 @@ UPDATE table SET column = value WHERE condition; -- Update values
|
|||||||
DELETE FROM table WHERE condition; -- Delete data
|
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
|
#### Wildcard
|
||||||
|
|
||||||
@@ -1,15 +1,16 @@
|
|||||||
---
|
---
|
||||||
Status: Ready
|
title: Diodes
|
||||||
Created by: Trude EH
|
description:
|
||||||
|
date: 2025-02-17T08:18:09+00:00
|
||||||
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- electronics
|
- electronics
|
||||||
- notes
|
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
searchHidden: false
|
|
||||||
showToc: true
|
showToc: true
|
||||||
title: Diodes
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
A diode allows current to only flow in one direction in a circuit.
|
A diode allows current to only flow in one direction in a circuit.
|
||||||
|
|
||||||
## Schematic
|
## Schematic
|
||||||
@@ -1,12 +1,13 @@
|
|||||||
---
|
---
|
||||||
|
title: Encryption [GPG]
|
||||||
|
description:
|
||||||
|
date: 2025-02-17T09:02:06+00:00
|
||||||
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- networking
|
- networking
|
||||||
- notes
|
|
||||||
- tools
|
- tools
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
showToc: true
|
showToc: true
|
||||||
title: Encryption [GPG]
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Symmetric Encryption
|
## Symmetric Encryption
|
||||||
@@ -1,13 +1,17 @@
|
|||||||
---
|
---
|
||||||
|
title: Flask
|
||||||
|
description:
|
||||||
|
date: 2025-02-17T09:01:01+00:00
|
||||||
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- notes
|
|
||||||
- programming
|
- programming
|
||||||
- web
|
- web
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
showToc: true
|
showToc: true
|
||||||
title: Flask
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Flask is a web framework for Python. It facilitates the creation of web apps (dynamic web pages).
|
Flask is a web framework for Python. It facilitates the creation of web apps (dynamic web pages).
|
||||||
|
|
||||||
## Run Flask
|
## Run Flask
|
||||||
@@ -1,14 +1,12 @@
|
|||||||
---
|
---
|
||||||
Status: Ready
|
title: Debugging [GDB]
|
||||||
Created by: Trude EH
|
description:
|
||||||
|
date: 2025-02-17T08:16:48+00:00
|
||||||
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- notes
|
|
||||||
- programming
|
- programming
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
searchHidden: false
|
|
||||||
showToc: true
|
showToc: true
|
||||||
title: Debugging [GDB]
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## GDB Debugging
|
## GDB Debugging
|
||||||
@@ -1,14 +1,16 @@
|
|||||||
---
|
---
|
||||||
|
title: Version Control [GIT]
|
||||||
|
description:
|
||||||
|
date: 2025-02-17T08:58:11+00:00
|
||||||
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- notes
|
|
||||||
- programming
|
- programming
|
||||||
- tools
|
- tools
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
showToc: true
|
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.
|
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
|
## Configure Git
|
||||||
@@ -1,17 +1,20 @@
|
|||||||
---
|
---
|
||||||
|
title: HTML
|
||||||
|
description:
|
||||||
|
date: 2025-02-17T09:11:23+00:00
|
||||||
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- notes
|
|
||||||
- web
|
- web
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
showToc: true
|
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.
|
*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
|
## 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
|
```HTML
|
||||||
Hello, world.
|
Hello, world.
|
||||||
@@ -34,9 +37,9 @@ A more complete solution, however, would be to define a structure for the docume
|
|||||||
</html>
|
</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>`.
|
> Not all tags hold content, but for those that do, the end of that content is defined with a closing tag: `</tagname>`.
|
||||||
|
|
||||||
## Basic Tags
|
## Basic Tags
|
||||||
@@ -1,13 +1,14 @@
|
|||||||
---
|
---
|
||||||
|
title: HTTP [CURL]
|
||||||
|
description:
|
||||||
|
date: 2025-02-17T09:22:33+00:00
|
||||||
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- networking
|
- networking
|
||||||
- notes
|
|
||||||
- tools
|
- tools
|
||||||
- web
|
- web
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
showToc: true
|
showToc: true
|
||||||
title: HTTP [curl]
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## HTTP
|
## HTTP
|
||||||
@@ -1,12 +1,13 @@
|
|||||||
---
|
---
|
||||||
|
title: HTTPS and SSL Certificates
|
||||||
|
description:
|
||||||
|
date: 2025-02-17T09:17:30+00:00
|
||||||
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- networking
|
- networking
|
||||||
- notes
|
|
||||||
- web
|
- web
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
showToc: true
|
showToc: true
|
||||||
title: HTTPS and SSL Certificates
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## HTTP(s)
|
## HTTP(s)
|
||||||
@@ -1,11 +1,12 @@
|
|||||||
---
|
---
|
||||||
|
title: IRC
|
||||||
|
description:
|
||||||
|
date: 2025-02-17T09:13:13+00:00
|
||||||
|
draft: false
|
||||||
tags:
|
tags:
|
||||||
- networking
|
- networking
|
||||||
- notes
|
|
||||||
author: TrudeEH
|
author: TrudeEH
|
||||||
draft: false
|
|
||||||
showToc: true
|
showToc: true
|
||||||
title: IRC
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## The IRC Protocol
|
## The IRC Protocol
|
||||||
@@ -16,14 +17,14 @@ IRC is a very simple communication protocol that allows users to chat in real ti
|
|||||||
|
|
||||||
### Server
|
### 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.
|
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.
|
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
|
### 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).
|
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).
|
||||||
For example, *halloy* can be configured as follows:
|
Halloy can be configured as follows:
|
||||||
|
|
||||||
```TOML
|
```TOML
|
||||||
# Example without encryption
|
# Example without encryption
|
||||||
@@ -162,7 +163,7 @@ services:
|
|||||||
```
|
```
|
||||||
|
|
||||||
To properly configure your server, be sure to read the [container’s documentation](https://hub.docker.com/r/inspircd/inspircd-docker/).
|
To properly configure your server, be sure to read the [container’s 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
|
### Linux
|
||||||
|
|
||||||
@@ -188,7 +189,7 @@ Finally, start `inspircd`.
|
|||||||
sudo systemctl 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
|
```Shell
|
||||||
sudo cp /etc/letsencrypt/live/irc.example.com/fullchain.pem /etc/inspircd/ssl/cert.pem
|
sudo cp /etc/letsencrypt/live/irc.example.com/fullchain.pem /etc/inspircd/ssl/cert.pem
|
||||||
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |