Hacker's Mindset

1. Overview

I've been appreciating the philosophical readings and videos of those that seem to "hack" on their system to make it their own representation of what computing looks to them.

Specifically:

  • System Crafters Youtube
  • Emacs Org-mode implementations
  • MIT's 6.001 Intro to Computer Science course and the accompaniment Structure and Interpretation of Computer Programs
  • GNU Guix

2. Definitions

Note that this definition of "hack" is much different than the use of the term in information security or news articles. The term they use is often with a malicious connotation.

The term "hack" used here is to use a system in such a way to understand the underlying components enough to manipulate them in ways the doer desires.

At the surface, this proposed definition does not include malicious activity. However, in close inspection we see that malicious hacks indeed manipulate system components to achieve a goal. This definition further doesn't specify if the owner of a system and the doer of the hack are the same person. So then we can clearly see that this line in this particular definition can be drawn between those activities:

  • the system owner is the doer of the hack
  • the system owner is not the doer of the hack

The system owner who is not the doer of the hack, is either aware or not aware of the hack, and furthermore is either for or against the hack. Regardless of the system owner's knowledge about the hack, the system owner most likely has requirements for the system in some way. This requirements can be things like Store Data A until Person B needs access then delete Data A. The system owner sets out in a complex way to satisfy those needs. This complex way of meeting those requirements often involves procurement of hardware or infrastructure, combining components together, and testing the new system to ensure it meets those requirements.

3. Psychology

3.1. Anchoring Effect

The anchoring effect is a cognitive bias whereby an individual's decisions are influenced by a particular reference point or "anchor".

In negotiating, anchoring is where you specify a position first so that any counter to that position is framed around the initial point.

3.2. Sunk Cost Fallacy

a sunk cost (also known as retrospective cost) is a cost that has already been incurred and cannot be recovered.

Since the sunk cost cannot be recovered, decisions made on those costs about the future will not help you. The best path forward is to consider the future costs and the effects those will have. However, when making decisions, sunk costs are often mixed with future costs and effect, further confusing the decision making process.

4. Understanding Our Definition Better

Now, lets think back to our two entities, the system owner and the doer.

  • Who is effected by anchoring here the most?
  • Who is a risk of participating in the sunk cost fallacy?

The system owner:

  • has a purpose for the system and its underlying components
    • self-use
    • hired by a company to do a specific thing
    • strict requirements or all in the head
  • has resources in the system and its underlying components
    • time into the system
    • dollars into the system

Both of these act as anchoring points, and blinders, to the system owner. The system owner only knows of the system from the intended purpose given to it and this intended purpose has been carefully crafted through the system owner's resources. Additionally, those resources are sunk costs and you are not getting back the time.

The doer, on the other hand, is not weighed down with an anchoring point (unless they choose to be) and has no resources into the system. This gives the doer a completely blank slate to explore the system's capabilities, rather than the system's purpose.

5. Exploring the Capabilities

Now that we know the doer is unconstrained by the system's purpose. The doer can start to act on their own curiosities and goals.

Defining your goals first may seem counter intuitive and it would be to the modern product offering first, define the problem later approach. This takes a self-reflection moment and isn't defined by what is and isn't a doer. Perhaps you start with a problem you would like to solve or to fix a minor grievance you have with a particular thing.

There are multiple ways, approaches, mindsets, and methodologies when trying to understand an unknown system, but we must choose one to start. I'd like to propose one loosely based off the scientific method.

  1. Appeal to your curiosity
  2. Research this curiosity and take notes
  3. Form (or reform) your goal
  4. Test things that would need to achieve that goal
  5. Take notes on what was tested and why
  6. GOTO 1

This is basic, but lets use an example

  1. I'm curious about solarpunk news
  2. I had a few leads from social media already so I started searching based on the key words, found some reddit threads, found some book recommendations, which had authors that could be further researched
  3. For some reason at this point I decided I wanted a feed for solarpunk news
  4. Read up on some ways to have a dashboard of these sites, blogs, authors into an RSS feed
  5. Took notes on setting up software to put RSS links into the feed, but found out that some of the blogs didn't support RSS. Now I go back to 1.

6 takes us back to #1

  1. I wonder if something exist to turn sites into a RSS feed
  2. research somethings and don't find exactly what I'm looking for since the site is based on a static HTML page
  3. Goal is to create a script to periodically scrape the page for new posts and put it into a feed format
  4. Start doing some trials (and may need to visit #1 again if I don't know how to scrape website with my programming language of choice)
  5. Notes on getting it working and issues that arose.
  6. Hopefully there will always be a repeat to #1

6. These Notes

Keeping notes helps multiple cognitive functions, like memory and critical thinking. Both of these highly relevant to everyone in the world, but especially those doers that are discovering new technologies and learning new skills. Just because you used a skill 4 years ago doesn't mean that you remember it now, but by taking detailed notes, not only do you give future self a chance to remember it better, you can actually go to see what you did and why.

For the doer looking to modify other systems, your notes become a gateway into the reasoning of test and results you have done so you don't repeat past mistakes and so you can launch off a new point of curiosity.

On a more pragmatic way of note taking, I'd suggest something that allows for easy linking. For me that is a setup of Emacs + Org Mode + Org-roam. For others this could be Obsidian, Notion, Roam Research, a Zettlekasten, or whatever you want to use. Just take the notes and don't worry about the perfection of them.

These Notes are the most important tool in the Doers arsenal.

7. If Notes are most important, Test things can be skimmed on

BY NO MEANS. . . . If Notes are your mind and thinking, testing is the means to have thought.

Testing can be anything from trying and failing to install a program, to creating an elaborate program in COBOL that is transpiled into C from a script in Python, all of which you wrote.

As you are testing, you are thinking of what you just did, the next step, and other completely different things. All potential useful to your future doer self and ripe for note taking. Most of these would not have been thought up in this moment unless you were doing the testing.

As you continue testing new things and acting on new goals, you will see connections between the items you are working on, the notes you have taken, and the next steps for you.

After all, you are a doer, not just a noter.

8. Some other definitions

Fraud is intentional deception to secure unfair or unlawful gain, or to deprive a victim of a legal right.

From Wikipedia on Fraud

Deception or falsehood is an act or statement that misleads, hides the truth, or promotes a belief, concept, or idea that is not true.

From Wikipedia on Deception

TRESPASSING: The act of unlawfully entering or damaging property or the rights of another. Logging into or accessing someone else's computer (property) without their consent.

MALICE: A desire to harm others or to see others suffer; extreme ill will or spite.

BREAKING AND ENTERING: The act of entering property without permission by way of the act or force through picking or breaking a lock; guessing a computer account password or other methods of trespass.

From SDF Public Access UNIX System [01] WHAT IS HACKING?

This is not meant to be legal advice and I'm not a lawyer. The point is that when you are being the doer and not the system owner, you need to understand what you can and can't do. Pressing F12 in a browser is fine, guessing a password without permission to guess a password is not okay.

9. Free and Open Source

Since we don't want to land in jail, not passing go, and owing more than $200. When the doer looks to test their goals and conduct research, they should highly consider those systems that have permission to tinker with.

And that leads up to Free and Open Source systems, a plethora of programs, operating systems, libraries, books, games, songs, and what ever else you could want is available at your finger tips with explic permission to modify and redistribute.

Going with the RSS feed example above, I used a feed program that as available with emacs, so that I could write a custom script to scrape that one website each time the program synced with all of the other websites. I'm sure this could be completed with other tools or a custom python script, but I had freedom to choose that because of the Free and Open Source systems I've decided to use.

10. Concluding Thoughts

  • Be kind
  • Be courious
  • Be learning
  • Be discovering
  • Be tinkering
  • Be a doer
  • Be a hacker

Date: 2023-07-15 Sat 00:00

Author: Russell Brinson

Created: 2023-07-21 Fri 00:20