chore: add test files for local dev
This commit is contained in:
		
							parent
							
								
									cecd38cc26
								
							
						
					
					
						commit
						577812c493
					
				
					 3 changed files with 92 additions and 0 deletions
				
			
		
							
								
								
									
										19
									
								
								dev-data/Network_fundamentals.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								dev-data/Network_fundamentals.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| --- | ||||
| title: Network_fundamentals | ||||
| tags: [networks, network-protocols] | ||||
| created: Saturday, August 03, 2024 | ||||
| --- | ||||
| 
 | ||||
| # Network fundamentals | ||||
| 
 | ||||
| > A network is a system that allows computing devices to communicate and | ||||
| > exchange information with each other. | ||||
| 
 | ||||
| In order for devices to be able to communicate they must share a common | ||||
| **communication protocol**. | ||||
| 
 | ||||
| A protocol specifies **rules determining how information is to be exchanged**. | ||||
| (Simply connecting two devices is not sufficient for them to be able to | ||||
| communicate, they must have a shared language.) | ||||
| 
 | ||||
| The nodes of a network are called [hosts](Network_hosts.md). | ||||
							
								
								
									
										35
									
								
								dev-data/Peer_to_peer_network.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								dev-data/Peer_to_peer_network.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,35 @@ | |||
| --- | ||||
| title: Peer_to_peer_network | ||||
| tags: [networks] | ||||
| created: Friday, August 09, 2024 | ||||
| --- | ||||
| 
 | ||||
| # Peer to peer network | ||||
| 
 | ||||
| A decentralised network model where each participant (peer) acts as both a | ||||
| client and a server. | ||||
| 
 | ||||
| Resources are shared directly between peers rather than being coordinated via a | ||||
| server. | ||||
| 
 | ||||
| Under a server architecture, multiple requests are made from different hosts for | ||||
| resources. The server manages this load and is in control of what is being | ||||
| shared, to whom, and when. With P2P there is no central authority equivalent to | ||||
| this. Each peer both shares and consumes resources and in this sense is both a | ||||
| client and a server. | ||||
| 
 | ||||
| A practical example of this is [torrenting](Torrenting.md) - an applicaton of | ||||
| P2P technology to file sharing. | ||||
| 
 | ||||
| ## Benefits | ||||
| 
 | ||||
| - Decentralisation, no central authority, also means no single point of failure. | ||||
| - Scalable: the network capacity grows with the number of users (contrast | ||||
|   servers) | ||||
| - Efficiency: idle resources of peers are put to use | ||||
| - Improved performance for popular content | ||||
| 
 | ||||
| ## Drawbacks | ||||
| 
 | ||||
| - Security: potential for malicious peers and content | ||||
| - Inconsistent availability of resources | ||||
							
								
								
									
										38
									
								
								dev-data/Turing_completeness.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								dev-data/Turing_completeness.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | |||
| --- | ||||
| title: Turing_Completeness | ||||
| tags: [theory-of-computation, Turing] | ||||
| created: Friday, September 13, 2024 | ||||
| --- | ||||
| 
 | ||||
| # Turing Completeness | ||||
| We know that a [Turing machine](Turing_machines.md) is a theoretical construct | ||||
| of a computer that: | ||||
| 
 | ||||
| > contains mutable state, executes sequences of simple instructions that read | ||||
| > and write that state, and can pick different execution paths depending on the | ||||
| > state (via conditional branch instructions.) | ||||
| 
 | ||||
| A Turing Complete (TC) system is a system that abides by, or can be reduced to, | ||||
| the above description. | ||||
| 
 | ||||
| TC also serves as a _definition of computability_ and provides a formal basis | ||||
| for conceiving of computation at a theoretical level. | ||||
| 
 | ||||
| All Turing Complete systems are functionally equivalent. This means they can | ||||
| simulate each other given enough time and memory. Similarly a TC system can in | ||||
| principle perform any computation that any other programmable computer can | ||||
| perform. This is true for _other_ TC systems and also those that are not TC | ||||
| however the inverse doesn't hold: a non-TC system cannot emulate a TS system. | ||||
| For instance a calculator cannot do what a TC smart phone can do. But a smart | ||||
| phone can act as a calculator. | ||||
| 
 | ||||
| Completeness applies to the hardware of computers as well as their software. | ||||
| 
 | ||||
| Turing Completeness is the theoretical basis of the practical concept of a | ||||
| "general-purpose computer": a general-purpose computer is such because it is | ||||
| TC - it can in theory compute anything that is computable. | ||||
| 
 | ||||
| Most modern programming languages are Turing Complete in that they can, in | ||||
| theory, be used to compute anything that is computable. | ||||
| 
 | ||||
| What about Universal Turing Machines eh? | ||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 thomasabishop
						thomasabishop