Articles by Scott Hebert

  1. Hermeticity - So Hot Right Now

    Posted on in programming

    Hermeticity in software builds refers to the practice of creating software packages that are self-contained, with all necessary dependencies and resources included within the package. In other words, a hermetic build can be installed and run on any system, without requiring additional configuration or installations. This practice is becoming increasingly …

  2. [Python] Patching platform.uname in Tests

    Posted on in programming

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    from unittest import IsolatedAsyncioTestCase
    from unittest.mock import create_autospec, patch
    
    from foo import is_foo, is_bar, platform
    
    class FooTestCase(IsolatedAsyncioTestCase):
        @patch(
            "platform.uname",
            return_value=create_autospec(
                platform.uname_result, system="Linux", node="BAR"
            ),
        )
        def test_wrapper_is_foo(self, m_uname …
  3. Git Remote Moved?

    Posted on in programming

    There are lots of reasons why your Git repository remotes might move. I recently dealt with a migration to GitHub. You can always just clone the repository again and go about your business, but I had several local branches I wanted to keep working on.

    There's lots of ways to …

  4. [Git] Per Repo SSH Identity

    Posted on in programming

    For work, I need a personal GitHub account in addition to my Enterprise Managed User (EMU) account. After updating my SSH keys the other day, I realized I had inadvertently locked myself out of using my personal account on my work laptop.

    Here's what that looked like:

    $ git pull
    ERROR …
  5. Quick Codemods with sed

    Posted on in programming

    I had a few different changes last week (in two different repos) that required one-line changes in lots of files.

    Quick note here that I'm using GNU sed. If you're on a Mac, you can use GNU sed, too (via Homebrew, for example).

    Example 1: Change Status

    In this first …

  6. [Python] Popular Search Terms

    Posted on in programming

    I thought it would be neat to keep an eye on the popular google search terms related to Python.

    The list below uses JavaScript from Google Trends. You can use the kebab menu icon to choose between "Top" and "Rising" search phrases.

  7. Here Comes Git

    Posted on in uncategorized

    In January of 2016, I joined Facebook and had to make the switch from git to hg. To be honest, I wasn't really some sort of zen master of git, but it didn't take me long to completely forget everything I knew about it.

    Now that I've moved on to …

  8. Welcome... Again

    Posted on in uncategorized

    I've been out of pocket for a while and really have neglected this site. So, as goofy as these things sound, I'm making it a personal goal to contribute more regularly to slaptijack.com in 2022.

    I somehow managed to lose my old copy of the markdown I used to …

  9. Pro Tip: Keep Asterisk Configuration Files in Version Control

    Posted on in voice

    An Asterisk server has a very involved configuration system. One instance I manage has over 100 configuration files. As these configurations grow, it can be helpful to have a separate server running for testing and debugging problems. If you are planning a major change, it's often helpful to get it …

  10. TACACS Detected 'Invalid Argument'

    Posted on in Networking

    As always, I've changed pertinent details for reasons.

    I was working on an ASR the other day and received the follow error:

    RP/0/RSP0/CPU0:ASR9K(config-tacacs-host)# commit
    Fri Jul 29 12:55:46.243 PDT
    
    % Failed to commit one or more configuration items during a pseudo-atomic
    operation. All …
  11. Two Column for Loop in bash

    Posted on in programming

    I had this interesting question the other day. Someone had a file with two columns of data in it. They wanted to assign each column to a different variable and then take action using those two variables. Here's the example I wrote for them:

    IFS=$'\n';
    for LINE in $(cat …
  12. OpenSSH: Using a Bastion Host

    Posted on in System Administration

    Quick and dirty OpenSSH configlet here. If you have a set of hosts or devices that require you to first jump through a bastion host, the following will allow you to run a single ssh command:

    Host *
        ProxyCommand ssh -A <bastion_host> nc %h %p
    

    Change the Host * line to best …

  13. [Python] Socket Timeouts in urllib2

    Posted on in Programming

    Things have changed quite a lot since this post was originally written in 2016. Currently, I would recommend switching over to making asynchronous calls via aiohttp.

    One of my scripts that makes an API call has been failing silently lately. It appears that the connection is timing out, but I …

  14. Cache has broken packages, exiting

    Posted on in system_administration

    I've been getting the following error from cron.daily in my inbox lately:

    /etc/cron.daily/apt:
    Cache has broken packages, exiting
    

    That's an annoying email to get everyday. I decided I would apt-get clean and that would probably fix the problem:

    $ sudo apt-get clean
    $ sudo apt-get dist-upgrade
    Reading package …

Slaptijack's Koding Kraken