Skip to main content


Recently I had a question come in from a reader on how to determine where the site packages are installed on macOS Mojave.  So, what I wanted to do was create a short video explaining how to find these site packages and how to see what packages are installed.  This technique should be applicable on macOS Mojave or High Sierra both.  First, let's understand why you would want to know where the site packages are installed on any system?  The main reason would be for making development decisions about how to design you Python program.  This can be especially valuable for knowing which site pac

Python 3 has an excellent library called asyncio that can be used for writing concurrent code on anything from web-servers, to databases, and even distributed task queues.  Asyncio is created from a non-blocking programming model that provides your program the flexibility to delegate data when it is available as instead to waiting for data to be received.  This prevents code in your program from getting bottle-necked and allows data tasks to be run concurrently to get greater performance and processing from your program's I/O.  On

TCPdump is one of my favorite network packet analysis tools in existence today.  In the past year I have enjoyed TCPdump so much that I have wanted to learn more about the project.  So, I thought a good place to start would be to get involved contributing on GitHub.  My contributions are not much, but they help me learn the ins and outs of the project and how to use some of the more advanced features as I come up in issues or pull requests.  During my time thus far I have noticed that a lot of filtering questions tend to come up on how to use filters or how to interpret the documentation fo

What’s new in Python is a news feed of articles, trends, and stories happening in the Python open source ecosystem.  All of the topics in this article are hand picked from sources such as Github,, Twitter, and of course, This latest issue focuses on making PyMem_Malloc thread safe, enabling TCP_NODELAY, updating OpenSSL across Windows and macOS, an asyncio fix for KeyboardInterrupt on Windows, a time.time testing bug was discovered on Build Bot, the voting results of PEP 8016, and lastly dual stack address support for IPv4 and IPv6 sockets.


What’s new in Python is a news feed of articles, trends, and stories hand picked by me on what is happening in the Python open source ecosystem.  All of the topics in this article have been hand picked from sources such as Github,, Twitter, and of course, This latest issue focuses on adding IPv6 support while testing http.server, C API Changes, fork() as a bug on macOS Mojave, voting for the new Python governance model, and Platform.popen() being dropped on older Windows platforms.

Python just received a minor version update to Python 3.7 with many new performance enhancements, added features, and module improvements to the language.   One of the existing Python modules in 3.7 that received some nice new enhancements is the ssl module. The updated ssl module now has enhanced hostname support, updates to how blacklisting and whitelisting work, but most importantly, conditional support for TLS 1.3 connections.

Python is about to get a nice new update with many new feature enhancement, performance improvements, and redesigned modules with the release of Python 3.7.  At the time of writing this article a release candidate is available today by visiting CPython's github page and checking out branch 3.7. In this two part series I am writing about two updates to Python 3.7 that I feel will benefit the language in regards to networking.  In this article I will be writing about the additions to the Python socket module because I am networking guy!

When the Swift language went into development one of the goals it set out to achieve was to provide a better developer experience than the one that currently existed and to provide long term support against legacy C and Objective-C APIs.   Now that these goals have been achieved the Swift community is widening it's support to working with dynamic languages such as Python, Ruby, JavaScript, and Perl in Swift 4.2's language addition for Dynamic Member Lookups.  Providing support for these

So there you are, you just finished the last lines of code needed to complete a ticket on one of the big features of your application.  Now what?  Submit a pull request and have your team review it?

Over the last 6 months I have noticed a lot of code going into CPython working with SSL and TLS.  At first I did not think anything commits and brushed it off as bug fixes and improvements.  However, as the months went by and I kept seeing these commits come through it started to get my curiosity piqued about what might be happening in language under the hood.