Image for post
Image for post
Photo by okeykat on Unsplash. If you really could smell data, dogs would be pros at cyber security!

If you’re reading this, you’re probably an avid user of computers and the internet(this article assumes you have some knowledge of how computers work, know Python, and are not feint of heart). As a CS student, computers are all I know and the connection to the internet is essential for what I do. For many, it supplements their free time and I daresay replaces certain social interactions that typically shouldn’t be overlooked. After an epiphany that I was like this before the pandemic, it brought me to realize another fault: that I was an ignorant consumer. I didn’t know how data was being shipped over the network to and from my devices. For someone as reliant on computers and the internet as myself, I should really be more aware of where my 3 A.M. Youtube searches go and who could gain access to my search history. This brought panic, as I’m sure it has for others. Who else could know about my weird obsession with seeing pimples professionally popped? …


Image for post
Image for post
Physarum Polcephalum, better known as yellow slime mold. https://www.labroots.com/trending/microbiology/4870/microbe-physarum

At first glance, slime mold and computer science have absolutely nothing to do with each other. The only surface-level similarity I can think of isn’t something they both have, but something they both lack: a brain. I wouldn’t, however, write either of these off as unintelligent. We’ve all seen what computers are capable of when given a little direction, things no human can do. So how does slime mold of all things show any signs that it’s not just created to find food and consume it?

Well, it doesn’t. Slime mold simply spreads through spores and locate food through chemicals in the air. However, in this search for food, they show some very interesting characteristics. Slime mold exists as single-celled organisms until they find an abundance of food, after which they join together and ‘move’ by shifting themselves into a new shape. But in this search for food, slime molds show properties that can best be summarized as ‘efficient’. They move between different nodes of food surrounding them in an attempt to create a network between them where each part can be properly nourished, and connect to all other parts in the most efficient manner possible. In fact, when presented with oats as sources of nutrients spread about a petri dish in a one-to-one ratio with Japan’s various cities, the yellow slime mold physarum polycephalum mimicked Japan’s railway systems within hours. This is a feat that took many Japanese engineers an abundance of hours to create and optimize. The mold initially spread out evenly, but as it reached more and more food, it would reinforce the ‘tubes’ that carried the most nutrients and pruned redundant ones until it got to its final form. …


Image for post
Image for post
Much like the compartments of a mouse habitat, containers should only accessible through deliberate, specific ways that we decide.

Security is probably one of the most important aspects of anything in web development. You want your users to be comfortable sending their data and feel confident that what they’re getting from your site is really from you. However, by dockerizing your web apps, you’re essentially giving up some of the connectivity between your different services, and their communication must be heavily monitored. Some container services also don’t work with others. If you’re not familiar with linux, you’re most likely working with a foreign environment, too. …


Image for post
Image for post
An image from the Netflix original, Bandersnatch, a movie all about basic decision trees!

A problem I face often is the inability to make decisions, especially when they’re trivial. When one has a lot of time to think, it can lead to overthinking and obscuring what’s most important about it and I believe myself to be a flagship case. I even created the wire frame for a social media designed to help one make decisions faster, to get back to doing what you want most in the real world. With this in mind I undertook more CS classes in my school to build my knowledge on the data structures and operations that I would need. One structure in particular stood out to me almost immediately, and I’m sure you can see why: Decision Trees. This particular type of tree seemed to hold the answers to my entire idea of how to give users the best questions to lead them to a decision. …


Image for post
Image for post
Photo by Tianshu Liu on Unsplash

In digital electronics, the machine reads inputs from the user or program as binary. As programming has progressed, we’ve built more sophisticated ways to communicate with these computers, even if they still read in binary. So before these complex languages like Python and Go were created, how were the earliest programs implemented? Understanding this will help you understand how your computer thinks even if these methods are deprecated by our human standards.

We’ve Come A Long Way.

First, we started with a very primitive idea of computers, implementing binary by way of heating vacuum tubes. If the tube was heated, the filament inside would produce electrons into the tube which was then manipulated by other present elements that would push the electrons onto a metal plate. That would output a signal which the computer would read as a 1. This is the physical version of what would become NAND gates, under the umbrella term of program circuitry. Applying this concept to digital binary, we can create more complex logic structures out of simple true/false statements. This is how the concept of the NAND gate was born. It stands for Not-And, and outputs true if both gates are not active at the same time. …


Starting this treacherous journey started out innocent enough. I was asked to do the final project for my Golang class, something that would make our lives easier daily. Thinking to how much I hated having to type a bunch of things over and over outside of Go, I started with the idea of a SQL injector that would incorporate Go’s native concurrency features in order to test multiple websites, possibly scraped from a websites and any also checks everywhere the site links to. This idea has been done before, but with my newfound knowledge of the potency of Go routines and benchmarking, I thought it would be cool to see how Go would stack up. …


In my spare time I’ve explored issue after issue, event after event for the sake of knowing what is unfolding on the planet I live. I have yet to ever find a problem I have cared more about than one that affects me personally, and I’m sure this sentiment is shared by many. Human interest rarely carries a far distance outside of its own scope. While I personally intend to solve any and all problems that will inevitably introduce themselves to me, starting close to home seems to be the easiest and most effective way in finding a problem that kindles the fire in myself necessary to extract my full ability in finding resolution. For this reason, I want to help people with my same weakness: overthinking overshadowing the ability to make trivial decisions, concerned about the effect it would have on their macro-status. …

About

Max Finn

I'm a passionate backend engineer writing about my code projects so that I can make it a little easier on myself(and hopefully you) later.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store