sethserver / all posts

All Posts

A Third AI Future

AI

The horrifying - yet eerily familiar - dystopia full of murder-bots and all-knowing robot overlords; and the oh-so-close utopia featuring flying cars and droid servants darting around: these futures have been part of our collective imagination for over a century now. As much as I love Sci-Fi, I am compelled to promote a less intense and much more practical future. read on »

Why is Python So Popular Despite Being Slow?

Python

Let me reframe this question using different technology. Why are Toyota Corollas so popular despite being so slow? They're obviously much slower than rocket powered aircraft! Things just got crazy, right? Let's do some math to prove our point about how slow Toyota Corollas really are when compared to rockets. read on »

Seth's Programming Books List

Programming

I love consuming new information. The first big breakthrough in my reading journey was Amazon's book delivery service. It was no longer necessary for me to coerce one of my parents into driving to B. Dalton and watch as I aimlessly wandered... read on »

What is a Startup?

Startups

The term startup is used to describe a company that is in its early stages of development. Startups are typically small and have a limited amount of resources. They are often funded by venture capitalists, angel investors, or other private investors. read on »

How to Conduct Consistent Engineering Interviews

Startups

After more than two decades as an engineer and over a decade as a hiring manager I've experienced my fair share of terrible engineering interviews. From quizzes to whiteboarding, take-home tests to awkward real-time coding exercises; I feel as though every startup I've worked at has had the exact same growing pains. read on »

Stop Lying about Technical Debt

Startups

Technical debt is a term that has been used to describe a myriad of different things. The most common use of the term is to describe the amount of work that needs to be done to fix a system that has been poorly designed or implemented. read on »

How to Create a New User

MySQL

It's generally considered bad form to use the root MySQL user to manage and query your database. One of the first things I do after spinning up a MySQL database is create users with varying degrees of permissions. read on »

How to Prevent SQL Injection

MySQL

SQL Injection is a type of attack that allows malicious users to inject SQL statements into non-validated queries. This can be used to read and modify data in your database. read on »

Multi-key GitHub Deployments

Programming

GitHub does not like using the same deploy key across multiple repositories. Try it, you'll get a really fun "Key is already in use" error in a lovely pink box at the top of your screen. What if we have multiple repositories residing on one server? How do we pull from different repositories using the same user? read on »

Time in milliseconds since COVID quarantine began.

Programming

Time in milliseconds since COVID quarantine began... read on »

Strong Random Password Generator

Security

This random password generator creates strong random plain text passwords using the PCG32 random number generator without sending the password over the internet or storing the generated password on a server. read on »

Unicode Random Password Generator

Security

Use the unicode random password generator to create secure passwords using unicode characters such as emojis and extended latin characters. Unicode passwords are much more secure than traditional ASCII passwords. read on »

Strong Random Passphrase Generator

Security

This secure random passphrase generator creates random plain text passphrases using the PCG32 random number generator without sending them over the internet or storing them on a server. read on »

How to Avoid KeyError

Python

When working with Python dictionaries you'll find yourself needing to access a key that may or may not exist. The easiest way to do this is with the get() method. read on »

Seth's Guide to Setting up Your Python Environment

Python

Python is an amazing language and it's easy to get started. However, there are a few things you should do to ensure your environment is setup properly. read on »

How For Loops Work in Python

Python

Python has some pretty amazing features, and one of its most powerful and versatile is the for loop. As you can see by the examples below the for loop in Python is quite powerful when used in conjunction with... read on »

Generate a Secure Random Password

Python

The conciseness of the Python language paird with its easy-to-use REPL make it ideal to hack out quick and easy scripts. One thing you can do is quickly and securely generate a random password with practically one line of code. read on »

How to Fix a B0rked Python Environment

Python

If you've spent any time working with Python environments you're bound to have run into errors such as pip: command not found, No module named pip, ModuleNotFoundError: No module named 'distutils.util', or other Python 2.x vs Python 3.x issues. read on »

How to Tell if a File Exists in Python

Python

Python helps make a lot of things really easy. The conciseness of the language make it awesome to accomplish simple tasks in as few lines as possible. One of these simple tasks is checking to see if a file exists. read on »

Logger Defaults to WARN

Python

When debugging and profiling Python software you'll find yourself relying on Python's built-in logging module. Something that is very simple to overlook is the fact that the root logger defaults to WARN and not DEBUG. read on »

How to Read a File Line by Line

Python

When using Python for Data Science or general Programming you'll find yourself needing to read and parse very very very large files. The easiest way to accomplish this is by iterating over the actual file object. read on »

Recursively List Files

Python

When using Python for Data Science or general Systems Administration you'll find yourself needing to recursively read a directory tree, remember all (or some) of the files in the directories and then do something fun with those files. read on »

Secret Santa Gift Exchange

Python

My wife is in charge of our families' annual Secret Santa Gift Exchange. Because she, unfortunately, knows about my background in math and computer science her requirements have become more extreme. read on »

TypeError: Object is not JSON serializable

Python

When working with Python dictionaries you'll find yourself needing to access a key that may or may not exist. The easiest way to do this is with the get() method. read on »

Understanding Slice Notation

Python

In my mind the easiest way to understand Python's slice notation is to visualize it with real examples. Once you get it under your fingers you'll find list slicing is an invaluable tool to have in your Python toolkit. read on »