Thoughts and Tutorials on Programming, Software Engineering, and Computational Science

  • How to Implement Many-to-Many Relationships in Relational Databases

    How to Implement Many-to-Many Relationships in Relational Databases

    Nearly any data model of non-negligible complexity will include at least one (if not several) many-to-many relationships. This relationship emerges when, given two tables A and B, instances of A could have many instances of B, and instances of B could have many instances of A. Successfully implementing this relationship is a bit of stumbling…

  • Improving Browser Automation Tests: How to Add Microsoft Edge and Edgedriver to Linux CI Systems

    Improving Browser Automation Tests: How to Add Microsoft Edge and Edgedriver to Linux CI Systems

    Lately, the Microsoft Edge browser has been growing in popularity, recently unseating Firefox as the 3rd most popular web browser and approaching Safari in the number two spot. This means that any web application with a potentially wide user base should include MS Edge tests in its automated test suite. Setting this up to run…

  • Professional Version Control with Git: Pt 3 – Rebase and Bisect

    Professional Version Control with Git: Pt 3 – Rebase and Bisect

    Hello everyone and welcome to part 3 of the professional Git series here at Erik’s Code Space. In part 1, we learned the basics and got our skills good enough to start version controlling our own projects. In part 2, we learned about the collaboration tools available in git and got our skills good enough…

  • Professional Version Control with Git: Pt 2 – Collaboration

    Professional Version Control with Git: Pt 2 – Collaboration

    Welcome back, this article is part 2 of Erik’s Code Space’s series on professional version control with Git. In part one, we learned about the basics of making commits, branching, and merging. In this section, we’re going to learn about the collaboration tools available to us with Git through GitHub. Let’s get started!

  • Professional Version Control with Git: Pt 1 – The Basics

    Professional Version Control with Git: Pt 1 – The Basics

    Welcome to part one of Erik’s Code Space’s first article series of 2021! In this series we’re going to learn all about version control using Git and GitHub. In this first part of the series, we’re going to talk a little about the idea of version control, then jump right in to hands-on usage. This…

  • Site Update and 2021 Roadmap

    Site Update and 2021 Roadmap

    Good morning everyone, it’s been a while since I’ve written a blog post. To keep you all informed, I’d like to make a quick post about where I’ve been and what the plans are for this year.

  • Delegate and Decorate in Python: Part 3 – Reusable Decorators

    Delegate and Decorate in Python: Part 3 – Reusable Decorators

    Note: This is not about Python’s language feature called decorators (with the @ symbol), but about the design patterns called “decorator” and “delegate.” In the final installment of this series, we will take the universal concepts of delegation and decoration and put them into a base Decorator class. Doing so will allow us to abstract the universal…

  • Delegate and Decorate in Python: Part 2 – The Decorator Pattern

    Delegate and Decorate in Python: Part 2 – The Decorator Pattern

    Note: This is not about Python’s language feature called decorators (with the @ symbol), but about the design patterns called “decorator” and “delegate.” In the previous article, we learned how to implement the Delegation pattern in Python. With this knowledge, we’ll now learn about the Decorator pattern, which will make use of delegation. We’ll learn…

  • Delegate and Decorate in Python: Part 1 – The Delegation Pattern

    Delegate and Decorate in Python: Part 1 – The Delegation Pattern

    Note: This is not about Python’s language feature called decorators (with the @ symbol), but about the design patterns called “decorator” and “delegate.” In this series we’re going to learn two very useful design patterns: the delegation pattern and the decorator pattern. Each pattern is useful in that they help us enforce the single responsibility…

  • Stop Worrying About Which Programming Language to Learn First

    Stop Worrying About Which Programming Language to Learn First

    I remember when I first decided I wanted to learn to write code, my google search history would look like this: Best first programming language What programming language should I learn How to avoid Ebola (unrelated) Python good first language? Ultimately, this time I spent was a waste and I’ll tell you why.

Questions?