Sign In

Forgot your password? Request password reset...

Don't have an account? Register here...

Code Chronicles

In the dim glow of my computer screen, after hours of wrestling with a particularly stubborn bug, it finally happened. The lines of code aligned, the program ran seamlessly, and I felt that rush of triumph. Join me as I revisit these eureka moments and unravel the mysteries behind the code.

I write about my experiences and journey as a software developer, about coding topics that I've struggled with in the hopes that you don't have to, and about things I've learned that I think are awesome. This space is a melting pot of tutorials, discussions on tools, and explorations of intriguing software development concepts. Enjoy!

February 07, 2024 / 47 min read / 3,668 views 1 likes 4 comments

Last Updated: May 12, 2024

async concurrency multiprocessing parallelism python threads web scraping

01 concurrent python

One of the best ways to achieve significant speed improvements in Python code is through concurrency: doing several tasks simultaneously. In this article, I describe concurrency in Python and give some examples of running Python code concurrently with “async” functions, “threading,” and “multiprocessing.”

November 16, 2023 / 5 min read / 3,234 views 1 likes 1 comments

Last Updated: May 12, 2024

browser-sync css fastapi flask gunicorn html javascript jinja2 python uvicorn

Hot reload darkmode safe

Getting instant feedback for code changes is essential when developing a web application. Typical workflows for Python web applications involve a hot-reload functionality for the development web server that will automatically restart the server when changes to python files are detected. However, the server will not automatically restart when changes to HTML, CSS, or JavaScript files are detected. When those files are updated, you must manually restart the server for the changes to occur. Moreover, this typical workflow will not automatically refresh your web browser when you update files, so you must manually refresh the web page to see the changes.

In this tutorial, I’ll show you how to automatically hot-reload your FastAPI and Flask projects that use template engines like Jinja with web servers like uvicorn or gunicorn. After reading, you will be able to automatically restart your server and refresh your browser when Python, HTML, CSS, and other files change—no manual intervention required.

September 14, 2023 / 23 min read / 2,847 views 5 likes 0 comments

Last Updated: May 12, 2024

dataclasses pytest python

Pytest dataclasses

Parameterization is a powerful tool in pytest (the most popular Python testing framework). It allows us to write a single, simple test that can dynamically expand to become many similar tests with minor input differences. In this blog post, I will describe how to write parameterized pytests and why they are such a powerful tool. And then, I’ll show you how to re-write parameterized tests more effectively using dataclasses.

December 14, 2022 / 22 min read / 4,315 views 1 likes 0 comments

Last Updated: May 23, 2024

flask playwright python testing tutorial web web-scraping

Playwright logo with image of cartoon scraper on a webpage

Web scraping is the concept of programmatically collecting data from a website. This article will discuss using Playwright for python web scraping. The most popular web-scraping packages for python are requests and Beautiful Soup used together. This combination is potent and straightforward to use for most web pages. However, the use case has limitations because the combination relies on making server requests and reading the static HTML returned. It can be challenging to scrape single-page applications (SPAs) or websites where the objects to scrape are only available after some javascript interactions. Playwright circumvents these limitations by interacting with web pages like humans to find the data that needs scraping.

October 18, 2022 / 12 min read / 2,949 views 1 likes 0 comments

Last Updated: May 12, 2024

cookies flask python tutorial

Flask plus cookies darkmode safe

Cookies! 🍪🍪 Tasty snack or valuable web development tool? 🤷‍♂️ For our context today, cookies are small pieces of data sent from the server to the client. The client’s browser stores cookies locally and then sends the cookies back to the server with every request. Cookies are used for a variety of purposes, including session management (who’s logged in?), keeping track of user settings (use dark mode?), and tracking user behavior (website analytics, ad targeting). In this tutorial, we’ll talk about how to manage cookies with the Flask web framework. We’ll go over setting, updating, retrieving, and deleting cookies in Flask routes.

September 15, 2022 / 82 min read / 6,500 views 3 likes 4 comments

Last Updated: May 23, 2024

career python

01 intro

At the start of June 2017, I was a lab technician at the University of Colorado and had no coding experience. A year later, in June of 2018, I started my first job as a full-time software developer. And I’ve loved my new career choice ever since. In this article, I’ll talk about how I made that career pivot, and I’ll give you some ideas about how you could make a similar career pivot if it interests you.

July 20, 2022 / 25 min read / 6,129 views 3 likes 0 comments

Last Updated: May 23, 2024

playwright pytest python testing web

Playwright logo

We all know testing our code is important, right? Automated tests can give peace of mind that our code is working as expected and that it continues to work as expected, even as it is refactored. Python has the pytest framework that offers great tools for testing our backend python code. You can check out my blog post, 9 pytest tips and tricks to take your tests to the next level, to get yourself jump-started testing in python. And javascript has several libraries to test front-end code. But in website testing, how can we write automated tests to ensure that our back-end code (be it python or something else) is working with our front-end code (javascript, HTML, and CSS)?

Introducing Playwright, a fast, easy-to-use, and powerful end-to-end browser automation framework. Similar to the Selenium framework, the Playwright framework has tools that allow us to write tests and scripts that act similar to an actual, human website user. And Playwright has API endpoints in javascript, java, .NET, and python! Sound useful? Read on as we use Playwright with python and pytest to write scripts and end-to-end tests for our Connect 4 game web page.

July 12, 2021 / 34 min read / 14,196 views 10 likes 5 comments

Last Updated: May 12, 2024

pytest python testing

Pytest logo

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 conftest.py file
  6. Testing python exceptions
  7. Checking stdout and log messages
  8. Parameterizing tests
  9. Using pytest-cov

July 12, 2021 / 47 min read / 6,721 views 6 likes 0 comments

Last Updated: May 12, 2024

authomatic flask flask-login mongoengine oauth python

Flask, Oauth2, and MongoEngine logos

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!

Showing 1 to 9 of 9 results