View profile

123dev #48: Skills, stories, and software every dev should know

123dev #48: Skills, stories, and software every dev should know
By Justin Garrison • Issue #48 • View online

A very large cable connector is plugged into an old machine
A very large cable connector is plugged into an old machine
Comments
Logic
How people think has been on the mind of philosophers for ages. Aristotle had the most famous works on logic for around 2000 years. In the 1600’s Gottfried Leibniz attempted to improve on Aristotle’s logic by simplifying it and representing it in mathematical notation.
Two hundred years later George Boole further simplified Leibniz’s logic and notation into what we know today as Boolean algebra. Every introduction to computer science will teach you AND, OR, and NOT which are the foundational components of human logic.
In the 1930s Claude Shannon realized that he could apply Boolean logic in circuits using gates in what he called “switching algebra”. It didn’t matter if the circuits were made of wires with electrons or water with dams. Before Shannon no one connected the ideas that you could build circuits (e.g. electricity, telegraph networks) with any type of logic in them. Of course this thought later evolved into transistors and computer chips.
It’s amazing how much we take for granted in our education and career. We have the benefits of all the people who simplified complex ideas into teachable, concrete “facts” that are obvious in hindsight.
Movements
The spirit of a movement is in its founder.
This applies to movements, technologies, and companies. You can tell a lot about what a community values from the people who cultivate it. Sometimes, you can’t identify individual creators for movements, but companies are much easier. In some cases you can even tell what founders are like by looking at what they’ve created.
Links
If you want to learn more about the history of computing and some of the people involved, this article was a good summary. It’s a fairly long article, but does a decent job summarizing many books written on the same subject.
How Aristotle Created the Computer - The Atlantic
I haven’t had a chance to use earthly yet but I like the idea of it. Usually, for build systems I’ve had Makefiles which execute different commands in containers. This is great for portability, but often requires more make logic than I want or more bash than is maintainable.
Earthly combines them by essentially making dockerfiles with targets. I could see this solving some problems and would love to see it implemented as a custom Dockerfile syntax.
About the only thing I don’t like about Earthly is the BSL license which would make me hesitate using it in any company setting and potentially limiting its usefulness.
Earthly
Git is a barrier when learning how to code and commonplace once you’ve been developing for a while. It doesn’t mean it’s easy and even after years of using it I still learn new tricks, aliases, and functionality.
Conditionally setting your commit email depending on what folder you’re in is a nice trick if anyone does development professionally and personally. I wish this could easily be set on a per-clone basis but it’s still nice to have a top level way to configure it.
Did you enjoy this issue?
Justin Garrison

1 gif, 2 comments, and 3 links to make you a better developer and person

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Powered by Revue
Los Angeles, CA