I’d want to take a few minutes today to explain how computers work and how they connect to form networks, preferably in ordinary language. It’s probably not as difficult as you think…maybe! I will advise that if you become fatigued while reading this poem, you may want to take a break from it because it is…a little dense!
I decided to write this because I want more people to be able to think more effectively about computers, and I want to make it easier for common people who aren’t computer professionals to comprehend what computers can do. This is significant because, while we now use less than 1% of a computer’s potential, they have practically limitless possibilities.
If you read this article carefully, you will, ideally, become a genius by the end, as you will be familiar with many of the high-level concepts that programmers deal with daily. To make these concepts easier to picture and understand, I will use metaphors and tie them to real-life objects and structures. Let’s get started!
Interfaces for users
One of the most significant aspects of computers is the user interface!!! I’d like to say a few words about them because they are, in my opinion, important, crucial to the evolution of computers and what computing truly means to the typical non-programmer.
All the buttons you can click and push, every search bar, every scrollable page & section, all the clickable-draggable swipeable zones on and off the screen, and it’s possible to include the screen itself, your monitor’s volume buttons, and so on are all considered user interfaces.
User interfaces are fascinating because they can extend from the screen to the file system, to every application you’ve ever used, and even into the “real” world via keyboards, mouse, buttons, game controllers, flight simulator joysticks, and other devices. Such tiny steering wheels, remote controls, and so on that people use to play racing video games!
User interfaces are dynamic control panels, consisting of screens with buttons, screens with buttons, and buttons with buttons! User Interfaces are the “front-end” of all the crazy wiring, networking, connections, databases, and other mystical abstractions that are happening under the hood when we use a computer; they are what we “see” and “touch” when we use a computer.
Computers can perform all sorts of “magic” behind the scenes, but it all has to be tied back to some sort of “User Interface” or else what’s the point?
When building new features for computers, constructing new types of buttons, conceiving new data visualisations, and so on, even programmers employ specific interfaces. We experience 1s and 0s through user interfaces, even though they are represented in material reality by actual particles travelling through computer hardware.
In other words, User Interfaces are the point at which the computer world meets real life, and where the computer’s language reaches out to you, connecting with your eyes, ears, and hands. On your phone, laptop, video gaming console, work computer, and so on, you’re presumably used to a variety of user interfaces. Because even non-programmers use User Interfaces daily!
I enjoy thinking about user interfaces because I see so much possibility in them, so many different ways they could be. A computer, for example, is now organised in a “desktop” metaphor. It has “folders” and other features. Is it necessary to proceed in this manner? No. Nothing prevents someone from basing their interfaces on concepts such as portals, teleporters, planets, islands, magic wands, boats, autos, factories, spaceships, and so on. All kinds of interfaces could be created with a little imagination. Video games are probably where I see the most experimentation today, while you can occasionally see folks experimenting elsewhere.
User Interfaces “listen” for INPUT and can convert it into anything if it’s been coded. Start envisioning buttons that do strange or unusual things when you press them if you want to be a UI designer. A User Interface designer is someone who spends their days creating all kinds of weird buttons for customers to press…
Filesystems
It’s now time to discuss another aspect of the computer: the file system! You’re undoubtedly familiar with the file system if you have a computer that runs “Windows” or “MacOS.” The “File Explorer” application on Windows allows you to browse through your files. People using MacOS utilise the “Finder” application.
Now…
We’re going to delve a little deeper into this…
Finder and File Explorer are nothing more than USER INTERFACES. They aren’t file systems in and of themselves!!! This might be of interest to you…
It’s a hierarchical structure with a ROOT folder that’s patterned after a tree or plant’s ROOTS! The files are the leaves of a tree, and the filesystems are the branches. Now… If you’ve been reading my blog for any length of time, you’re probably aware of my feelings on hierarchical file systems… I’m looking for alternatives, and I believe there’s a lot of potential in what I’m calling “network file systems,” which are trees that connect back to themselves… Unfortunately, Windows and Apple have yet to receive the Memo, so we’re stuck with the old-fashioned tree-shaped file-systems for the time being.
What might a file system on a network look like? You may find my experimental take on network file systems here. I won’t go on for too long, but I believe Synthona proves that file systems don’t have to be hierarchical and that when we eventually accept the network file-system, we’ll learn that computers don’t have to be structured in the same way as trees!
For example, our brains are not trees. Our brains are networks, and I believe our file systems may be as well. The tree file system appears to be a relic from the dawn of computing.
Anyways! Is there anything else to say about filesystems? Mostly, there are many other methods to create them, and they are just a data structure. You might be wondering what a data structure is.
Structures of Data
What is a Data Structure? It’s precisely what it says on the tin…
It is a concept for arranging data that is abstract. You have personal experience with designing your own data structures if you’ve ever seen the “Dewey Decimal System” at a library, used a filing cabinet, or organised notes and folders for school.
A lot of data structures are inspired by real-world things and items. The TREE data structure, which was discussed in the preceding section on file systems, is the best example of this.
Because they are formed like trees, Tree Data Structures are intriguing. You can make a data structure that looks like almost anything you can think of. You may not be aware of this, but 99 percent of computer programming is entirely made up! It’s a work of absolute genius! If you’re learning to code in school, some geeks may tell you that there are a bunch of rules you have to follow, but the basic truth is that you can design any data structure with a computer if you can picture it. Of course, some people are more efficient than others, and I assume that’s why the rules exist.
However, a data structure is simply…some data…connected to other data…
If you can draw a diagram of it on paper, describe it, picture it, and create a flowchart for it, you can probably programme it as well, if you’re prepared to learn a programming language. A stack of notecards, or a deck of cards, could be used as a real-life metaphor for a “network” file system because they can be shuffled into any sequence. This can be compared to various structures, such as a rigid “tree,” and I’m sure there are more.
Servers
It’s now time for our final stop of the day, a discussion on SERVERS!
What exactly is a server? It’s a computer, after all! It’s just a regular computer with some unusual software installed. The software, or primary programme, is the only distinction between a server and any other computer.
A server is a piece of automated messaging software that listens for and occasionally sends messages from other computers. These communications resemble a fancy text message built exclusively for computers… They frequently contain files and other data.
Computers utilise IP addresses instead of phone numbers. Of course, it’s a little more difficult, but not by much. This is essentially what happens “behind the scenes”: computers are continuously texting one other, frequently automatically, all kinds of intricate information.
Servers listen for messages from other computers, and when one arrives, they read it and respond automatically. Programmers that work on servers write code that defines what the server should do when it receives a message from another machine. Do you know how they manage to have such massive data centres? Those data centres are hosting servers and storing information!
To complete the cycle, when you go to google.com, for example…
A copy of Google’s USER INTERFACE is sent to you by Google’s servers. The User Interface is downloaded by your web browser, which then waits for input from you…. When you click something or fill out a form, the User Interface sends a message to Google’s servers, which subsequently respond with your search results. User interfaces communicate with servers, which then communicate with user interfaces.
Everyone would presumably run their servers on their personal computers in a P2P system, and it would be quite simple to set up. Typically, this code interprets the message, performs some action with it, and then sends a response.
A fun tidbit you may not know is that the computer you’re reading this on is capable of running servers! The majority of computers can! It doesn’t necessitate any high-end gear. The fact that there isn’t much software built for this purpose is one of the reasons why people rarely host servers on their computers. But that doesn’t rule out the possibility! This is connected to Peer-2-Peer software if you’ve ever heard of it.
Google, Facebook, Twitter, Tumblr, and other large corporations are just creating extremely complex servers. I’m sure we’ll see more of that in the future. There are no “rules” stating that Google must have massive server farms. For example, we could spread computer power so that each person gets their mainframe. In a P2P environment, I doubt there would be as many massive server farms. It’s difficult to say for sure, because having large server zones may still be beneficial.
Returning to Earth
Wow! That was a lot of information! I’m scared I crammed too much information into this essay; it’s quite dense, but that’s how it goes sometimes! If you understand what I’m saying, I’m not kidding… You’ve learned a great deal about computers.
I decided to write this piece since I’ve been having a lot of these kinds of thoughts in my head. They have a big influence on what I do! I think they’re useful concepts, and if you can grasp at least some of them, you’ll feel like a computer genius!
Thank you for taking the time to read this!
What do you think?