Tell Me WHEN, God......damn it!!
by joe

Posted on 2018-12-04

Missing date information really pisses us off!

It boggles our authorial/editorial mind why it is that otherwise intelligent people publish technical information without including a date (or dates) to provide the reader context.

Two-Year Half-Life

Much of the technical knowledge for programmers has a half-life of two years or less. In the Python world, we rely of a raft of packages that are actively maintained, with new releases multiple times per year. Not to mention the flood of new packages with which we are blessed on a monthly, quarterly or yearly basis.

To be sure, the Python community is also blessed with seemingly eternal verities. We don't recall any changes in the operation of list types in the last five or six years. And the Global Interpreter Lock (GIL) shows no signs of departing.

Still, in Python 3.6 and 3.7, we got major changes (serious improvements in our view) to the implementation of the dict type. The dict type - the most fundamental data structure in Python. The data structure that gave us the expression, "It's dictionaries all the way down." How many disquisitions aimed at explaining the feed and caring for Python dictionaries survived that thunderclap unscathed?

Now we ask you: How many of those blog posts, articles, tutorials, examples, videos, etc. that were obviated, or mooted, or obsoleted by the dict implementation change include any indicator that the wisdom once contained therein is (or very possibly may be) questionable in this new regime? (That question is only semi-rhetorical. We don't know the answer, but if your experience matches ours, the answer is many fewer than half.)

Not Just Python

The malady is not limited to the Python community, of course - but that's where we live, so those are the circumstances that come most readily to mind.

Deeper Than a Promise

This page has at least three visible dates - the formal post date at the top along with the last edited date and the generation date. The generation date is the most recent date that we derived a static web page from the contents of the CMS database. The last edited date is the most recent date that any change was made to any element on the page - prior to the generation date. It is entirely possible that we have made changes since the last generation.

The post date is included in the URL address that identifies the post - so that will never change. We expect to make changes to existing posts on occasion, perhaps even often. We don't know yet just how that will go. But we intend to fix errors or edit for clarity on a pretty regular basis. In the event that a post needs a major revision, we expect to produce a new post with a new post date - and add an explanation and a link to the old post.

As mentioned in the sidebar, we are keeping dates with each edit we make to every element on every page. That opens up a lot of opportunity for implementing a deep history for this site. We'll see what we can do with that opportunity. Be assured though, that our fixation on providing date context for all of this content is not just promises. It's who we are.

We May Do Even Better
Those of you following the BLOX project development know that this blog is produced using a CMS authoring system. But it is at this time a very primitive, very limited CMS authoring system.

Still, we have plans and dreams. Every discrete element of content has a last_edited date. Most of our database updates are communicated from the Spiel and Stanza types to the database as tuples - which opens up the possibility of saving them as a log and thus presenting the possibility of offering a full editorial history of every element of every post.

Maybe someday. But don't hold your breath.
To understand the extended pause in the title, check out any of the Greater Tuna productions at theater near you.
Maybe Python Is a Little Better Than Most
Immediately after putting most of this post together, we received an email from Aaron Maxwell (of Powerful Python fame) with the following passages:

"But there's something else really interesting:

I've found the most important high-level patterns for Python code are surprisingly independent of version.

Things like generators... using function objects... comprehensions...

Patterns for exceptions... writing decorators... The "workhorse" techniques of test-driven development...

Sure, you can get the biggest bang out of these with Python three dot latest. But for the most part, they apply just as powerfully to 2.7.


It will be some time yet before we get a comments section working here. In the meantime feel free to send comments via email. On this site our name is Joe Python. The email address is our first name at

Edited: 2019-01-30 20:55:12(utc) Generated: 2019-06-10 17:29:58(utc)