Adam Bright

Christian, husband, dad, software developer, aspiring entrepreneur

Read this first

Reading Between the Lines

The Importance of Defining Relationships in Documentation

The best organizations have a clear vision of why they exist (Sinek). This answer to why an organization exists is clearly important but tends to sit isolated within documents set apart from documentation around the people and processes supporting the why. This disconnect makes it difficult to gain an understanding into how aligned an organization is to why it exists.

The German philosopher Hegel tells us that absolute truth or knowledge of a concept (Concept is used as a general idea or understanding of something, here it is primarily used as a term for a goal, process, role, or resource within an organization.) is a destination that is only reached through the construction of a hierarchy of smaller truths (Fox, page 112). Each smaller truth within the hierarchy is its own absolute truth destination with its own hierarchy...

Continue reading →


The importance of margins

Take a minute and look over the layout of this page. Most importantly I want you to observe what’s on the sides of this text. Assuming you don’t have your browser zoomed in to 400% you should see blank space on either side of this text. At first glance this seems wasteful. We live in the information age and every day people are coming up with new ways to increase the density of information. That blank space on either side is called a margin and it serves an important purpose. With a margin you can remain focused solely on the content you are viewing and not be distracted by your environment. If the words started at the very edge of the screen and each line went as far to the other side as they could a couple of things would happen. First, you would burn through a lot of mental energy just trying to keep track of where you are in the text. Shorter lines allow the reader to...

Continue reading →


Software developers are people too

I was just in a conversation where it was revealed that a development manager for another team had recently left the company. An actual statement that followed:

But it doesn’t matter [that he left] because he didn’t write any code, and it should only have a psychological impact on his team.

I am a software developer, which means I know a handful of languages that computers understand. As far as I’m aware, that doesn’t preclude me from being a human being. The statements above tell me that the person who said them considers the “smart people” (term used when I was interviewing) who work for the company are hired exclusively as machines that are micro-managed to produce a narrow set of outputs and nothing more. This is demonstrated clearly when there are questions of design and creative problem solving that addressed in meetings restricted to a handful of managers who are clearly the...

Continue reading →


How to improve the world: planning

We can all agree that the world can and should be improved. There are numerous problems to be fixed and areas that can be improved. These improvement opportunities exist at every human scale from global warming to not knowing how to file your taxes to maximize your returns. I’m guessing you have had ideas about how some these improvements could be made. In my opinion, bringing these ideas to life is performed most effectively if you can define the knowledge hierarchy around the solution. That is, define what your improvement is, then determine why this improvement should be made, and finally determine how it can be implemented. Note, that answering these questions may take time. Sitting and thinking may not feel productive but I assure you there is a necessary amount of thought that need to go into any improvement and it is usually more effective and efficient to have put the...

Continue reading →


Hack attempt

As I was trying to build a simple system to control downloads for a project I’m working on I happened to leave journalctl open and following logs for the application I was trying to debug. When I came back to my computer I noticed that I had inadvertently captured an attempt to hack my server. The full list of paths the hacker tried are at the bottom of the post.

Looking through the list of attempted paths I couldn’t help but notice some interesting trends. First, with the exception of /webdav/ all of the paths have the .php extension. PHP has what I’ll call the ‘Windows problem’. Windows catches all kinds of flak because of all the viruses that get into Windows systems and wreak havoc. I believe this is mostly due to Windows success as an operating system. If the Windows operating system didn’t have the market penetration that it did then people wouldn’t bother writing malware...

Continue reading →


Let’s build a logic bomb (for legitimate reasons) in Go

For the past couple of months I have been working on a script library tool written in Go. This is a tool that I wanted to sell and I wanted a way for people who were interested to give the tool a test drive. A lot of tools today need to connect to the internet in order to function which makes it easy to control access since the server can track when a client application was first used and can simply forbid access to that application instance after the trial period has passed. The tool I was building is intended to be run completely locally. I needed a way to build a binary that will have full functionality until a certain amount of time has passed at which point it would only print a message directing the user to purchase the full version of the tool. Not really malicious code but essentially disabling the application after a certain condition is met (the trial period ended), a...

Continue reading →


Fallout: New Vegas

https://xkcd.com/606/

I’ve been dealing with some issues over the past few months that have prevented me from being as physically active as I would like to be. So a couple weeks ago I decided to embrace it and purchased a “new” game I could play on the computer, Fallout: New Vegas. I had read a lot of good things about the game and I wasn’t disappointed.

Right out of the gate, I was engaged in the story. Essentially the premise being that your character suffers severe amnesia after being shot therefore providing a solid premise for the initial setup of your character. You start with a fairly mundane selection of points allocated to strength, intelligence, etc. but then a nice touch comes when the doctor character guiding you through the setup gives you essentially a psychiatric evaluation to help assign initial skill points. This is where I really started to be impressed because it was such a unique...

Continue reading →


Defending Christian doctrine with sensibility

Listening to The Briefing this morning Albert Mohler described an exchange between Senator Bernie Sanders and President Trump’s nominee for the White House Office of Management and Budget, Russell Vought, during a Senate Budget committee nomination hearing. Mohler described the exchange as an attack on religious liberty, since Senator Sanders was declaring Vought unfit for office based on his religious convictions. While I’m sure Senator Sanders was trying block the nomination, I believe that the religious element of the attack was purely incidental.

Senator Sanders accusation of Vought centered around a blog post where Vought was defending his alma mater, Wheaton College, in their dismissal of a professor for statements regarding Islam that went against the Christian school’s core beliefs. Here is the line in the blog post that caused the controversy:

They [Muslims] do not know...

Continue reading →


Subtle principles of life

With two young sons I’ve been thinking a lot about the values I’d like to impress upon them to prepare them for the world they are learning to navigate. The following are principles that I have lived by for a long time now and have recently heard other people talk about or I’ve observed how not following these ideas can lead to negative or at least, less than ideal consequences. That’s not to say that your life will be bad if you don’t follow these but I think they can pretty universally put the cream on the cake of life.

Care about what matters, otherwise, let it go.
If you took anything away from this post then this should be it. If you really think about it, the things that really matter in life could probably be counted on one hand. The first step in following this principle is to determine what are the non-negotiable opinions that truly matter to you. For example, I am a...

Continue reading →


Relational Documentation

Think of something, any thing/idea/process you want, it doesn’t really matter. Now tell me, does the thing you are thinking of exist in complete isolation? Can you fully understand it without understanding at least a little bit about how it is composed or what it’s purpose is? Understanding anything isn’t possible without some context. Why does this thing exist? What other things work with this thing to accomplish the previous question? How is the thing composed?

Let’s say you were thinking of a car. What would you write in a user manual for a car? Why does the car exist? To quickly and efficiently transport humans and cargo over wide range of distances. How does a car do this? By combining (usually, for now) an internal combustion engine with a sturdy frame on four wheels. This is good documentation for a car, we have answered the big why and how questions surrounding a...

Continue reading →