Post #1670: Time for reflection and garbage collection.

Posted on January 3, 2023

 

It’s a brand new year.  But if you expect “… and new beginnings”, or “… and looking forward”, or some other such fluffy nonsense, you’ve come to the wrong website.

Instead, I’m focused on “garbage collection”, as used by computer programmers.  More-or-less, it means freeing up memory or storage space by getting rid of obsolete, archaic objects.

In practical terms, this post is a bit of navel-gazing prior to re-configuring this blog.  After doing a bit of manual garbage collection (tossing out draft and private posts, emptying the trash can) I am left with more than 1700 valid posts, stretching back four-and-a-half years.  Much of that is material that nobody could possibly want to read again.  It’s time for archiving the obsolete, restructuring the rest, and getting on with it.  This post is my way of figuring out what I have, and what to do with it.

It’s just a question of figuring out what to do.  And, as importantly, figuring out how to do it.

Perhaps tellingly, the Wikipedia article on garbage collection mentions roughly 35 distinct computer programming languages.  Of which, I am familiar with exactly one:  Beginners All-purpose Symbolic Instruction Code (BASIC).

Seeking out the obsolete and archaic?  Perhaps I need look no further than the mirror.

Source for title image:  Wikipedia, Janus.


Preamble:  I will cease to exist if you close this tab.

N.B.  Younger readers, if any,  may feel free to substitute “app” for “program” throughout this section.  “App” is short for “application”, which in turn is short for “applications programming”– the computer code that actually gets stuff done, stuff-wise, taking input from you, the “end user” — versus “systems programming”, the code that allows the computer/phone/gizmo/app to function, written by computer programmers.  In my book, writing the Excel program itself counts as systems programming, while using Excel to calculate something is applications programming. New-school, Excel is therefore “an app”.  And yes, the rest of the discussion will be every bit as clear as that was.

I am (or was) a data analyst, writing my own little old-school computer programs to draw information out of data.  When you see original data analysis on this website, that’s me, plugging away with Statistical Analysis System (SAS) programs.

It’s a job that demands “rigidly defined areas of doubt and uncertainty.”  (That, per the Hitchhiker’s Guide to the Galaxy.)  For any given task, I may be clueless about what’s actually happening in the real world, or how a particular set of data was created.  But I need to be as sure as possible that the computer program I’m using does exactly what I say its doing.

In the modern lingo, I am well-versed in “procedural” programming.  A  program consists of things that are very close to plain English sentences, showing what I’m doing to the underlying data.  Except for the arcana, anyone with a logical mind can look at programs of that sort and get the gist of what’s going on.

It’s not rocket surgery or brain science.  Even if you don’t program in SAS, you can probably figure out what I’m doing, below, literally a piece of the program that I currently use to analyze COVID-19 case data.  This, even if some of the arcana of SAS programming may strike you as a bit odd.

* this section fixes known anomalies in the data, usually when old cases are dumped in (negative adjustment) 
* or when duplicate cases are pulled out (positive adjustment), so that the adjusted data reflect the actual 
* ongoing flow of new cases ;

if state = "New Jersey" and date ge input("20210104",yymmdd8.) then do ; 
    cases = cases - 57652 ; 
end ;

* etc ;

Quaint, right?  It’s computer code designed to be read and understood by humans.  If you’re looking at the case counts from New Jersey, and the date is greater than or equal to January 4, 2021 (2021 01 04), subtract 57,652 cases.  (Because that’s the day they dumped that many old cases into their count data, producing a big spike in the numbers.)

This “procedural programming” mindset is an almost insurmountable handicap when it comes to understanding how a blog functions.  It’s just not how things are done any more.  I don’t think that internet programmers actually go out of their way to make the logic of their programming as indecipherable as possible.  But “indecipherable” pretty much sums it up.

By contrast to the above, here’s a little baby snippet of C++ code.  If I stare at it hard enough, I can eventually figure out what it does.  But I have to say, it’s not like they went out of their way to make it easy.

#include<iostream>
using namespace std;

int main()
{
    int num1, num2, add;
    cout<<"Enter Two Numbers: ";
    cin>>num1>>num2;
    add = num1+num2;
    cout<<"\nResult = "<<add;
    cout<<endl;
    return 0;
}

Source:  Codescracker.com.  This piece of code adds two numbers together, so it’s roughly analogous to, but somewhat simpler than, the SAS code above.

As a consequence, even though I have been writing computer programs for the majority of my lifetime, computer programming related to the internet (and to phones) leaves me baffled.  It’s a combination of things:  The odd argot to describe even basic concepts.  The emphasis on “user friendly” interfaces that hide the actual computing going on.  And what seems to be a never-ending competition to see which object-oriented language can write their operations in the most dense, opaque, and obscure fashion possible.

This is a serious handicap when the goal is to reorganize the roughly 1700 posts on this website.   I keep thinking up simple things that I’d like to do.  And I keep being completely stumped as to how to do them.

Worst, because I don’t really understand what’s going on, I take a guess as to how this website works, based on my “procedural programming” background.   I figure out how I’d do it, and more-or-less assume that’s how things work.  These guesses are invariably wrong.

As a result, more-or-less everything I assumed about how this blog actually functions has been incorrect.  That now matters quite a bit, as I try to re-organize 1700 blog posts.

Here’s my fundamental misunderstanding:  Where are my blog posts stored, on the server that hosts this blog?

Seems like a reasonable question.  The answer is: No.

I figured that if I had 1700 posts appearing here as 1700 pages, then, somewhere on this website, there must be 1700 readable files that contain those posts.  Because that makes sense to me.  Compile each post once, then display that on demand as any end-user wants to see any given post.  Therefore, logically, I ought to be able to find each post as a human-readable file.  Somewhere.  And it was just a question of figuring out where.

Or, even more simply, page:book :: post:blog.  Naively, if this blog is like a book, then I’m asking where the individual pages of that book are stored.  So that I may lay them all out in one place, look at them, and re-shuffle them to re-organize this blog.

But, as it turns out, that’s fundamentally wrong.  This post — what you’re reading right now — does not exist.  Not as any sort of file, on (say) a disk drive, on a computer.  Nothing that you could search for and read, natively, on the server for the host of this blog.

Instead, this post — the text you’re reading right now — exists only as a single, long, unreadable line in an SQL (structured query language) database.  (That’s what’s shown in the blue block, above, courtesy of reading my website backup files using an extremely old-school piece of software known as Vedit.)

That  — that ugly, unreadable unformatted bloc of crap above — that’s how my posts actually exist, in the real world.  They exist as entries in a database.  All 1700 of them.  The only practical way to extract the text of those posts is to query that database.  And, as far as I can tell, the software to allow me to analyze that content, so that I can reorganize it efficiently, simply does not exist.

Worse, the only readable blog pages are totally ephemeral.  They exist only as what WordPress compiles, on the fly, and presents to you on your screen.  You literally look at a unique copy, constructed in real time, just for you.

When you close this browser tab, this blog post will cease to exist.  In the sense that there will be no human-readable form of it, anywhere in the universe.  (Unless somebody else has a browser window open to this blog entry.)  The only permanent version of this blog post is that incomprehensible blue block of text above.

The screwy upshot is that many things I’d like to do to reconfigure this website — things that I figured ought to be easy, based on my old-school, “procedural” view of the world — are flatly impossible on a WordPress website like this one.  Because the things I’m looking for — my blog posts — don’t really exist.

It’s a whole new world out there, programming-wise.  And the more I know, the less I like it.

But on with the show.  Even if I can’t yet actually implement the changes I need,   I can still figure out what content I want to keep and toss.


Blog history 1:  MAC zoning, 2018-2020.  We won?

This blog began in 2018 as an act of desperation.  I was trying to organize opposition to a local zoning ordinance — so-called “MAC” zoning — in my home town of Vienna VA.

MAC zoning was repealed more than two years ago.  Repealed, in some part, thanks to the reams of analysis posted on this blog.  And to some well-designed yard signs, above.

A big chunk of what I did via this blog was simply to record what was said and done, and remind people of it, because otherwise they’d conveniently forget (Post #268).  That, and occasionally doing the calculations and measurements that the Town Council should have been doing (e.g., traffic noise adjacent to Maple Avenue).

The yard signs have long since been collected and recycled into raised garden beds (Post G05, June 2020). 

It’s time to do that for the hundreds of pieces of analysis that I posted on MAC zoning.  Except for the occasional piece that has relevance beyond that local ordinance, such as this post on acoustics.  And a handful of others that occasional get a hit.  In the main, I don’t think anyone could possibly care about a law that’s no longer on the books.

The only practical impact on this website is that I can greatly simplify the list of blog post categories.  If you try to search this blog by category, you’ll see a lot of seemingly useless stuff (e.g., “Building Height”).  All of that dates to the MAC era.  And all of that can be eliminated now.

I say “we won?” because after rescinding MAC zoning, the Town of Vienna immediately decided to redo all of the zoning regulations.  Complete overhaul.  Nothing was out of bounds.

But, as far as I can, there seems to be consensus to keep it small.  And the staff member who was arguably the driving force behind some of the crazier parts of MAC zoning (E.g., Marco-Polo-Gate) has since moved on.  So I’m not seeing a lot of value in keeping a close eye on this any more.

Verdict:  Garbage collection, with a few exceptions.  My plan, if I can implement it, is to write all those posts off to one large file (likely as a .pdf).  Then remove them from the website.  Then remove all the MAC-specific post categories from the website.


Blog history 2:  COVID, 2020 – 2022-ish.  We won?

Then, in the spring of 2020, along came COVID-19.  At some point, I decided to track and analyze it, because a) what else could I do and b) I’m a retired health economist will the programming and other skills sufficient for processing and interpreting disease-related data.

Early on, I think that had some real value-added.  That’s true mainly because, early on, the U.S. CDC dropped the ball regarding airborne transmission of COVID and the need for masking.  They denied that airborne transmission was real, despite overwhelming examples to the contrary.  They first said that masks were not required (social distancing only), despite the obvious failure of that policy.  Then switched to “cloth masks”, as if, at that point, there was still some risk that consumers might wipe out stocks of masks needed by health care providers.  (There was no risk — the retail channels had been wiped clean of N95s months beforehand.)

But the CDC eventually and grudgingly aligned itself with reality.  The vaccines came to fruition.  The absolutely horrendous initial case-mortality rate dropped to something a little less scary.

And we mostly just got on with our lives, plus or minus the million plus who died, the shocking reduction in U.S. life expectancy, the loss of in-person K-12 education time, the biggest increase in the national debt since WWII.  The hoarding, the shortages, the supply-chain issues, and the world-wide inflation.

And the nearly-endless bickering.  Let’s not forget that.

And the vaccine nuttiness and disinformation. Which I also must classify as literally endless, because it continues to this day.  No end in sight.

Latest from the CDC suggests that the folks who kept up with their vaccinations have a roughly 19-fold lower risk of dying.  To which, Florida responds:

Source:  CDC COVID data tracker, accessed 1/2/2023.

But, by and large, despite an ongoing 350 deaths and nearly 6000 hospitalizations per day for COVID (per the CDC COVID data tracker today), as a society, we’re over it.  Things have been stable for quite a while now.  And only about one eligible person in seven bothered to get the last dose of COVID vaccine.

Source:  CDC COVID data tracker, accessed 1/2/2023

Still, there may be a bit of value in continue to track this from time to time.  Lately, my sole value added has been in poo-poohing the notion of a “triple-demic”, and dismissing vague scare-mongering about a new winter wave of COVID.

Verdict:  Garbage collection of everything except for the last few posts.  At this point, I have about 900 posts on COVID on this website.  Which is a bit obsessive, as that works out to just about one per day that we’ve had COVID circulating in the U.S.  Keep COVID as a category, and maybe post every couple of weeks, if the data remain available.


Blog history 3:  Gardening: 2020 – ??.  The bugs won?

I started gardening during the pandemic, just as a way to have something to do.  Mostly, it started out as a way to get some exercise, because at that point, I believe gyms were shut down here in Virginia.

Arguably my most well-read gardening posts were the ones that tracked the canning lid shortage.  Because, at the end of the day, preserving food is part of the gardening process, for most of us.  More to the point, this was a serious problem for people who rely on home canning to provide a significant portion of their food, and it completely pissed me off that write-ups in the popular press treated it as some kind of a joke. So I took it seriously, and at one point had hundreds of hits per week on that topic.

Beyond that, it’s been more a case of testing various bits of garden advice you can find on the internet.  Much of which — surprise — turns out to be wrong.  It seems like a lot of gardening blogs repeat advice that they read, on other gardening blogs, without bothering to test it.  At the minimum, testing that advice rigorously satisfies my need to do the occasional bit of amateur science.

In addition, I spend some time explaining what I’m trying to do, and tracking how it goes.  I test equipment from time to time, such as pipe and such for irrigation.  Or Mason jars for frost protection.  And I think there’s some value added there.  And there aren’t a lot of posts.

Verdict:  No garbage collection, for now.  It’s not that many posts, and it’s only a couple of fairly discrete post categories.  Really, I ought to gather all that material into a small pamphlet, and be done with it.


Blog history four:  Ongoing:  The science and engineering section.

Every once in a while, when I can’t find a good answer to a question that’s bothering me, I’ll go ahead and test it myself, if possible (e.g., Post #1658)

Or when I see the need for some sort of helpful device, that I can’t find for purchase anywhere, I’ll gin something up (e.g., Post 1663).

And so on.  Just a potpourri of posts, whose sole link is that there’s some element of scientific method or engineering behind them.

Many of them have a very small, tightly defined audience. Such as this one, on making a floor-to-chair transfer device for paraplegics (Post #886).

The odd thing about these is that occasionally, out of the blue, I’ll get a lot of hits.  This has been true of my post on heated covers for outdoor faucets.  When the weather turns cold in early winter, I always seem to get a lot of hits on that one (Post #1412).

Verdict:  No garbage collection, for now.  No clue what to do with them, either, other than create a new post category for material of this type.


Blog History Five:  Other Town of Vienna material, ongoing.

I have more-or-less lost interest in posting about the Town of Vienna.  As I explained to a Town Council member a few months ago, it’s mostly that Town Council doesn’t get me nearly as angry now as they did in the past.

Arguably, I did quite a bit of good in the past, by (in effect) reporting on what was happening.

Mostly, when I started getting up to speed on MAC zoning, I noted that the Town often took months before posting any information whatsoever regarding what had taken place in various official Town meetings (e.g., Town Council meetings).  So I bought the biggest microphone I could carry, and started ostentatiously recording Town Council meetings and posting the recordings (with my index and commentary) the next day.  This apparently goaded the then-Mayor to get the official Town recording out before I did. To deny me the audience.

This has had the lasting effect of (at least) having recordings of most Town meetings, available in nearly-real time.  It’s still awkward, because the Town won’t let you download the recordings.  You have to view them through the Town’s approved interface.  And yet, with enough effort, interested citizens can pull those up in Chrome (not Firefox) and FF through them to find the information they want.  Whatever the shortcomings, it’s better than nothing.  Which is what we had before.

I still need to follow up on a few items.  The ongoing rezoning.  The coming train-wreck of Town elections (Post #1591).  But in terms of providing some sort of independent citizen oversight of what Town Council is up to, I’m just not up to the task.

Verdict:  Garbage collection, other than current topics.  I just don’t care enough any more to deal with it.


Conclusions?

There are plenty of other smaller categories to consider.  But I think this gives me some direction as to where I’m going with my blog reorganization.

Get rid of:

  • most of the old zoning-related material, and the associated categories.
  • pandemic-related posts, except those that are quite recent or have some abiding interest.
  • most material related specifically to the Town of Vienna

Keep:

  • a few posts on tracking COVID trends
  • science and engineering posts
  • gardening.

And I guess that’s where this blog is heading.

But keep in mind, as you read this post, that it doesn’t actually exist.  Per the discussion at the top of the post.

And that means that the biggest headache now finding any way to archive the older material, in bulk, in a readable format.  Arguably, I’ll be able to find some software to do that.  For sure, WordPress does not seem to have any native functions that will do that.

And once I’ve archived the old stuff in a form I’m comfortable with, I can concentrate on what comes next.