The Django web framework makes it easy to render HTML using the Django template engine. However, the default styling on HTML pages usually need a Cascading Style Sheet (CSS) framework such as... (read more)
Flask web applications are highly customizable by developers thanks to the framework's extension-based architecture, but that flexibility can sometimes lead to more errors when you run the application due to rough edges between the libraries.
Reporting errors is crucial to... (read more)
Python scripts are the glue that keep many applications and their infrastructure running, but when one of your scripts throws an exception you may not know about it immediately unless you have a central place to aggregate the errors. That's where adding Sentry can solved this distributed error logging... (read more)
It is common when performing exploratory data analysis, for example when examining COVID-19 data with pandas, to load from files like a CSV, XML, or JSON into a pandas DataFrame. You may then do some work... (read more)
The European Centre for Disease Prevention and Control provides daily-updated worldwide COVID-19 data that is easy to download in JSON, CSV or XML formats. In this... (read more)
Software developers should understand the basics of finance not only to manage their own money but also to understand how businesses' software projects are funded.
Understanding how other people who work in accounting, finance and project management think about business and finance in particular can help you make better... (read more)
Welcome back to our ongoing series of blog posts on basic data types in Python 3! Last time, we explored the functionality of strings. Today, we dive in to another key data type - booleans. Booleans (and "boolean logic") are an important concept in... (read more)
There is a lot to learn on your Python journey when you are new to the programming language. Once you are comfortable writing and executing code, your first stop becomes understanding how to represent data in your code. No matter the language, there are a few basic data types you'll use all the time... (read more)
This blog post contains the slides along with a loose transcript from my talk on the promises and perils of developer-led sales as an early-stage company method to acquire customers.
It can be a lot of work to piece together a full authentication system if you have an existing Flask web application that you are coding. Okta makes it much easier to drop-in a complete user authentication system without a lot of additional effort. In this tutorial we... (read more)
There are a bunch of new tutorials on Full Stack Python that were written since the last time I sent out an email newsletter. These range from getting started with some popular open source projects to integrating third party APIs to... (read more)
User authentication is a basic feature in web applications so people can create and access their own accounts. Unfortunately, authentication is not always easy to set up and there are many ways to incorrectly implement login and logout features.
This tutorial walks through how to use the
Ubuntu Linux's latest Long Term Support (LTS) operating system version is 18.04 and was released in April 2018. The 18.04 update is code named "Bionic Beaver" and it includes Python 3 by default.... (read more)
It can be confusing to figure out how to use Docker containers in your Python and Bottle development environment workflow. This tutorial will quickly show you the exact steps to get Docker up and running on... (read more)
This blog post contains the slides along with a loose transcript from my talk on appropriately marketing products to software developers that I gave at Silicon Valley Bank during Ubiquity.VC's summit for founders, investors and technical advisors on May 24,... (read more)
In this post we will build a simple Django project with a single app and add an... (read more)
Amazon Web Services (AWS) Lambda is a usage-based
execution environment that can run Python 3.6 code. If you have never
previously used AWS Lambda then you can read
How to Create Your First Python 3.6 AWS Lambda Function. However, this tutorial will give you... (read more)
Adding Docker to your Python and Flask development environment can be confusing when you are just getting started with containers. Let's quickly get Docker installed and configured for developing Flask web... (read more)
First Steps with GitPython is a quick tutorial that shows how to get started using the awesome GitPython library for programmatically interacting with Git repositories in your Python applications. In the spirit of the... (read more)
Let's learn how to use GitPython by quickly installing it and reading from a local cloned Git... (read more)
DevOps, Continuous Delivery... and You
is a blog post with the slides and notes based on a class I taught at
the University of Virginia this past week. The
talk is relevant as a brief introduction to
This blog post contains the slides along with a loose transcript and additional resources from my technical talk on DevOps and Continuous Delivery concepts given at my alma mater, the University of Virginia, to the M.S. in Management of Information Technology program on November 2nd and... (read more)
PyDev of the Week is a developer interview series by Mike Driscoll that asks Python programmers how they started coding, the projects they're working on and what advice they have for beginners. Mike was... (read more)
PyCon US 2018 is coming up in Cleveland, Ohio on May 9th-17th. The call for proposals (CFP) went live in the past few days so now is the time to sharpen your keyboards and get yourself into the proposal writing zone.... (read more)
Your live web application must be deployed and run somewhere other than your local development environment. That deployment location is known as a "production environment" and it is built out of one or more servers.
Let's learn... (read more)
Bokeh can create many... (read more)
How do you know whether your application is running properly with minimal errors after building and deploying it? The fastest and easiest way to monitor your operational Flask web application is to integrate one of the many available fantastic... (read more)
I received the following question via email from someone spending significant effort learning how to code in anticipation of obtaining full-time job with those skills. The question is also frequently asked by university students and coding bootcamp graduates.
This post provides my current answer on how get your first full-time... (read more)
Amazon Web Services (AWS) Lambda provides a usage-based compute service for running Python code in response to developer-defined events. For example, if an inbound HTTP POST comes in to API Gateway or a new file is uploaded to AWS S3 then AWS Lambda can execute a... (read more)
Amazon Web Services (AWS) Lambda
is a "serverless" compute service that executes arbitrary Python code in
response to developer-defined events, such as inbound API calls or file
uploads to AWS S3. Note that AWS Lambda has
nothing to do with the
lambda... (read more)
This blog post contains a loose transcript along with the slides and additional resources from my technical talk that will be given at DC Continuous Delivery within the next couple of months.
Additional resources to learn more about
Deploying Python applications typically requires SSH keys. An SSH key has both a public and a private key file. You can use the private key to authenticate when syncing remote Git repositories, connect to remote servers and automate your application's... (read more)
SSH keys are a necessity for Python development when you are working with Git, connecting to remote servers and automating your deployments. Let's walk through how to generate SSH key pairs, which contain both a public and a private key within a single pair, on Ubuntu... (read more)
Good old-fashioned phone calls remain one of the best forms of communication despite the slew of new smartphone apps that have popped up over the past several years. With just a few lines of Python code plus a web application programming interface we can make and receive phone calls... (read more)
Python web apps built with the Bottle web framework can send and receive SMS text messages. In this tutorial we will go beyond texting and learn how to dial outbound phone calls. The calls will... (read more)
Linux Mint 17.3 "Rosa" is December 2015 release of the polished and widely-used Linux distribution. This Mint release includes both Python 2.7 and 3.4 by default, but in this tutorial we will download and install the latest Python 3.5.1 version to run our Django application.
If you want to use a different Linux distribution such... (read more)
Canonical's Ubuntu 16.04 Long Term Support (LTS) Linux operating system, also known as "Xenial Xerus", was released in April 2016. It is the first Ubuntu release to include Python 3 instead of Python 2 as its default Python... (read more)
Python applications can easily send SMS by using a web API. Web apps built with the Bottle framework can also reply to incoming text messages by handling inbound HTTP POST webhooks. In this post we'll... (read more)
Bots are a useful way to interact with chat services such as Slack. If you have never built a bot before, this post provides an easy starter tutorial for combining the Slack API with Python to create your first bot.
We will walk through... (read more)
Short Message Service (SMS) text messages are easy to send from Python applications with a web application programming interface (API). Flask applications can also receive incoming text messages and respond back to the sender with... (read more)
MySQL is a common open source relational database for creating, reading, updating and deleting data in Python web applications. Let's learn how to install MySQL on Ubuntu 16.04 and then run a few SQL queries within the... (read more)
PostgreSQL is a powerful open source relational database frequently used to create, read, update and delete Python web application data. Psycopg2 is a PostgreSQL database driver that serves as a Python... (read more)
Multimedia Message Service (MMS) picture and video messages are a common extension to the Short Message Service (SMS) system for sending text messages. Using a web application programming interface (API) with Python makes it easy to send MMS messages from a web application or script.... (read more)
The Ubuntu 16.04 Long Term Support (LTS) Linux operating system was released in April 2016. This latest Ubuntu release is named "Xenial Xerus" and it is the first Ubuntu release to include Python 3, instead of Python 2.x, as the default Python... (read more)
Short Message Service (SMS) text messages are ubiquitous for communication all over the world. It is easy to send SMS text messages from a Python application using a web application programming interface (API). Let's take a look at the tools we need... (read more)
Ubuntu's latest Long Term Support (LTS) operating system was released last year, in April 2016. The 16.04 update for Ubuntu is known as "Xenial Xerus" and it is the first Ubuntu release to include Python 3 as the default Python... (read more)
Ubuntu released the newest Long Term Support (LTS) version of its operating system in April 2016. The update brings Ubuntu to version 16.04 and its latest code name is "Xenial Xerus". 16.04 is the first Ubuntu release to include Python 3 as... (read more)