Blog Posts by Date

How to use git pre-commit hooks, the hard way and the easy way

September 15, 2021 / 12 min read / 63 , 1 , 0


If you've heard of git pre-commit hooks, but you aren't sure what they are or how to get started with them, you are in luck! In this guide, we'll talk about what git pre-commit hooks are and why you should consider using them. We'll then talk about how to write your own git pre-commit hooks, and then we'll talk about the pre-commit framework which can make setting up git pre-commit hooks easy.


How to git rebase main/master onto your feature branch even with merge conflicts

September 04, 2021 / 2 min read / 35 , 2 , 0

Git rebase

Does your project prefer git rebase instead of git merge? Has your branch fallen out of sync with the main branch and you are unable to automate your rebase due to conflicts? If so, you might have run into rebase hell. This happens when you try to git rebase, solve your conflicts, and push to the main branch, only to find that the main branch is now, once again, out of sync in a never-ending loop. Let's break out of rebase hell with this short guide to rebasing.


My Top 20 Favorite VS Code Extensions

August 02, 2021 / 15 min read / 202 , 2 , 0

VS Code

Microsoft released VS Code (Visual Studio Code) in 2015, and since then it has become one of the most popular text editors on the market. What has led to that popularity? It is free and lightweight, with a beautiful and intuitive user interface and it is fully customizable through extensions. Extensions can bring nearly any look or functionality you like to VS Code. But with so many extensions to choose from, which ones are right for you? I'm here to guide you with my top 20 favorite VS Code extensions.


Vim beginners guide and cheat sheet

July 14, 2021 / 12 min read / 110 , 1 , 0

vim logo

The command line text editor vim is popular in the world of programming, and for good reason. It can be found on nearly any Unix (and often Windows) system, making it ideal for loading into remote machines and making quick edits to files. It is also very powerful in the right hands. If you watch an expert vim user code with vim, the cursor is bouncing all over as they quickly write or edit their files, all without ever touching a mouse...

I am not one of those people. I picked up vim out of necessity while working on remote hosts without access to a GUI text editor (I'm partial to VS Code). But since I needed to use vim, I wanted to get better at it, so I took a vim Udemy course, and I've been using what I've learned to get a little more efficient in vim. If you're a vim beginner, this post will teach you the commands I found most useful while learning vim. And if you're a casual vim user like me, this post can serve as a cheat sheet reminder for all the vim commands you and I will continue to forget.


9 pytest tips and tricks to take your tests to the next level

July 12, 2021 / 34 min read / 111 , 2 , 0


Are you a python developer looking to improve your testing abilities with pytest? Me too! So I've put together a list of 9 tips and tricks I've found most useful in getting my tests looking sharp. Here are the features we're going to be covering today:

  1. Useful command-line arguments
  2. skip and xfail
  3. Mocking with monkeypatch
  4. tmp_path and importlib
  5. fixtures and the file
  6. Testing python exceptions
  7. Checking stdout and log messages
  8. Parameterizing tests
  9. Using pytest-cov


Easy and flexible flask login with authomatic and mongoengine

July 12, 2021 / 47 min read / 107 , 1 , 0

Flask Authomatic Cover

Many users like the simplicity of clicking one button to register and/or log into a website using one of their existing logged-in accounts on another website such as Facebook or Google. This is OAuth user authentication. But sometimes users don't have those other accounts so it's good to provide them with a full-proof means of logging in to a site. That's username/password authentication. Well for your site why don't you give users both options?

In this article, I'll talk about how you can log in and register users for your flask application with flexibility by allowing either OAuth2 or username/password authentication. We'll be using Flask for our web framework, MongoDB for our database, and authomatic for our OAuth authentication framework. But if those don't apply to you, don't fret! Many of the concepts discussed here can be applied to your web stack too!