Apr 15

A Shovel’s Work is Never Done

I have around 8K users on this site. Most of them are nonsense, but I do have several who actually exist. I want to bulk delete a bunch, so I am going in search of a tool which is better than the default ability in WP.

[Gave up on that.]

Here’s where I knew I had a problem. I have become kind of a numbers nut, seeing a power law distribution everywhere. If you can group things, you can get them to show you a power law. Well, typically. In the past I have gone into the WP user management area, searched for users from a given domain, and gone from there. For example, anybody with an email address ending in @mail.ru is gone for sure. Except on this, the first pass, there are over 4K users from @mail.ru. Now WP handles user bulk deletion in a terrible way — the user interface (the web page served on my computer) allows me to check “all” of the users displayed on a given screen.

Fine, but there are two things wrong with this — first, the page can only list something like 259 users at a time, which means that for over 4K users, I will have to do this entire process more than 167 times. And believe, me, waiting for each page to load and then entering the search criteria, selecting all of the users, hitting delete, confirming, and starting over again is a pretty annoying mindless behavior. Skinner boxes have netter schemes.

[And yet that’s exactly what I did.  Again!]

Second, what my browser will actually return to the system up on the server s a LONG URL filled with the user number of EACH user tacked onto the end of some sort of URL string. There is no way that the meaty long user numbers are going to survive the trip in a URL — they just don’t let URLS get that long.
RFC 2616 and RFC 7230 address the maximum length allowed in a URL. There isn’t one, but a request that each server be able to handle URLs of at least 8K characters, and an admonition that each server be able to handle URLs as long as they dish out. Fair enough, but the internet is not a point to point connection, in most cases. It is, as Senator Ted Stevens aptly puts it. “a series of tubes”. You don’t get to pick which tubes. So any node along the way can have its own limit on the length of a URL. I have experienced failure due to something kicking back long URLs before (hate when that happens), so I already know that simply hacking the code on my WP site to allow me to list more users on a screenful is not going to work.

I need more power just to get rid of the very first group of user, the @mail.ru bunch.

A bit about my methodology:
I would like to group, count, and sort (descending) users by domain, so that I get a list with the most populous domain (in this case @mail.ru) and its user count (in this case, 4.606) listed first, and then the second-most populous, and so forth.
This way, the first action I take will be the most effective, followed by the second most effective, and so forth. Think of the worst case scenario — I work n the list in reverse order, so that I spend an entire afternoon chewing through a whole bunch of domains which each sourced only a single user to the blog. I would consider it a minor victory to reach the level of knocking out users two at a time!
The problem is that, like many mail services, WP will not give me this listing without adding a plugin of some sort, or of course, rolling my own code. Well, I have sworn off of writing PHP/SQL/HTML code, as I do not want to bear the maintenance burden. I want everything I touch to be maintained in whole by somebody else. I’ll integrate the pieces, but I’m not diving under the damned hood ever again*.
I cannot get this listing directly. So I must use indirect methods. I assume (and there is a lot of fun math I want to do, but haven’t) that the first screenful of users is overwhelmingly likely to contain a user from the most populous group. Oh, the list of users is presented i alphabetic order, but if we assume all spammers may or may not be using the same tricks, then alphabetization should not matter in selecting the most populous spammer domain.  In fact, all things being equal, it is likely to be the first entry. So I look at the domain of the first entry and search for all users matching that domain.

There are 8,295 users. 4,606 of them are from @mail.ru.

Total users: 8295
@mail.ru 4606
@gmail.com 846
@yandex.com 260
@… 145
@yandex.ru 111

And so on. I did some of this on another machine at home and am now trying to dredge these up from memory. I mean, who remembers things like this?


Anyway, this post is a work in progress.  I’ll post a graphic of the expected power law when I get it done.

One thing I noticed once I got down to about the yandex.com level of things was that the memorable “___Medamelve” pattern of bogus names is really numerous. By the time I was don to ~3500 remaining, 298 of the were named “JuliusMedamelve” or something like it, for differing values of Julius. I decided not to do the obviously productive thing and wipe out that population, as they were from all over the domains, and I do have a blog post about domains to finish, after all.

* Actually, I like diving under the hood, but just like having enough money to pay somebody else to work on my car — I will work on hobby cars, but not spend an afternoon under my daily driver just so I can get to work the next day. Done with that.

Posted in Uncategorized | Leave a comment
Apr 15

Enjoying the Windows Subsystem for Linux

I am, I suppose, the worst sort of computer user. I know so much about this stuff that I am acutely aware of the sheer magnitude of what I do not know, and I know that it is hopeless to attempt mastery, because I do not care that much. So everything is hard and futile, but if you ask me I have a thousand opinions, and each one is the definitive answer.

I am currently enjoying another attempt at learning emacs and trying in general to get back into the unix swing of things. I also just bought a Microsoft Surface Pro (AKA Surface 4). The sweet spot is supposed to be the i5 with 8 GB of RAM and 256 GB of SSD storage. The i3 is not enough, and the i7 is too much.

Windows 10 has a Windows Subsystem for Linux (WSL), so I have been using that new-found capability to get my linux and emacs fixes.  WSL is not actually new — apparently, it’s been in the mix ever since NT, which should surprise nobody — early to middling NT was like using unix with an out-of-date Windows theme on it. Being able to access it — well that is new.

And so it turns out that no matter what you read about this WSL, it’s better than what you read. There is a lot of outdated information available online, because MS is bringing a lot of capability to the front, in rapid order. I’ll address these things in a series of posts, not one of which will be definitive. I am truly enjoying the learning process.

Posted in Uncategorized | Leave a comment
Jul 04

Underway on Negligible Power

I write from a Starbucks in Japan, on a tiny little Amazon Kindle Fire 7 tablet.  I purchased a ZAGG auto-fit keyboard, which works great.  I am connecting through my iPhone, so that I don’t teach my Fire a bunch of bad habits on wi-fi hotspots.
I will add pictures to this post.
I now have a magnificent mini-office set-up; a peripheral office made up entirely of peripherals.
I husked an old Case Logic CD carrier by taking the CD-page insert out of it.  That was easy — just hinge the “book covers” backwards and wiggle the plastic page roots out of the covers.  Try it, and you’ll know exactly what I mean.
This CD case has a medium pocket on front, which was supposed to hold a CD Walkman, but now hosts a power cable and a 1 Amp wall-wart, and a pair of cheap reading glasses.  There’s a smaller pocket on the front which I believe was intended for batteries or a wall-wart for the intended CD Walkman.  That pocket now holds a deck of 3×5 cards and some pens.
With the CD pages removed, the interior is roomy and sized well for the Kindle Fire in its ZAGG keyboard/case, as well as an old Kindle 3G (keyboard) in its own nice case.  Frankly, I prefer the older Kindle for reading straight text.  The battery lasts forever, and while it’s no PaperWhite, the display is certainly optimized for text.
The ZAGG keyboard is straightforward to set up via BlueTooth to the Kindle Fire, which in turn connects via wi-fi to my iPhone, operating as a hot spot.  That guy goes out on the cell phone network, which is miserably insecure of course, but not at the client end.
So with that as my connected terminal, I can still listen to tunes on the phone (or indeed, on the Fire, as now), while using the Kindle 3G for reference.  More to follow.

Posted in Uncategorized | Leave a comment
Feb 20


has been topsy-turvy around here, including an unexpected reassignment in one of my lines of employment, some crucial deadlines being miracles off of me, and not least, a collapse in my email and hosting.  Long story, basically my fault, but they don’t make it easy.  This site was offline, and all email sent to me beginning 01FEB has simply been dropped, not delivered.  I hope fail notices went out — I have no way to know.

Anyway, going skiing this weekend.  I’ll post pics!

Posted in Uncategorized | Leave a comment
Mar 08

Outlook, Access, Excel

I have a utility database  that tells me what my inbox looks like.  You see many people asking how to get a count of mails BY SENDER.  It’s the ultimate spam-whacking tool.  This is why places like Gmail don’t support it and never will. They want that spam sitting right where it is, spilling metadata.  The more junk mail sits on your Gmail account, the more they know about you.

Well, long story short, here’s a pivot table of the whole thing.  This is mail received by week, but with an important caveat — this is only what remains after some mail is moved, and some is deleted.  The dip at the end of 2014 is not a reduction in inbound mail, but the result of a cleanup I did in January.  I whacked several thousand e-mails — more than the link to my hosting could keep up with.  I’ll get back to it.


Posted in Uncategorized | Leave a comment
Dec 22

Today is a Beautiful Day

Today is a beautiful day.

It’s cold and overcast, with a wind that is not actually hostile, although doesn’t seem to like any of us very much. But in my aimless pre-dawn wandering, I crested an overpass on the way to Manassas and was struck by a flare of gaudy salmon pink lancing the cloud cover somewhere over the Atlantic, flooding inland and suffusing a million miles of sky with a fiery underlight. By the time I found a place to take a picture, the world had turned, the glow was gone, and an unknown night had become a tentative day.

I had spent the day before with friends and coworkers at Arlington to pay respects. We took some natural fiber sponges and bottled water to do any upkeep that might be possible. We stood about a couple of the stones, sharing stories by way of introduction and lapsing into completely comfortable silence from time to time.

We met a nice lady, Mrs. Davis, who volunteered to take a picture of us. She had a chair and a thermos and was settled in for the long haul, spending the day with her son, her only child. We cleaned his stone as well, and asked her to tell us about him, and she did. She has nearly ten years invested in a community of similarly-situated moms who spend their days at the cemetery.

When my friend was killed, those of us in country joined a conference call with the wings of his family, and we were just staggered at how his family was so concerned for us. Similarly, the mother of one of the folks we visited (whom I did not directly know) asked military folks to stand for a moment at her own son’s memorial service and gave them a firm bucking. I cannot understand how people find the strength and grace to conduct themselves so richly, so beautifully, at such awful times.

Soon I will return to my own family, and I do so with a humility and gratitude for those who did not have such an opportunity — for both the fallen and for those who must carry on, never finishing, never resting, until some day they may be reunited with those whom they love.

It looks like the sun may come out. If so, I will consider it a blessing. And if it should rain, I will consider that a blessing as well.

Posted in Uncategorized | Tagged | Leave a comment
Dec 18

Returning from Afghanistan

It’s been a while.  I’m in the States right now, on the way back home.  I’ve intentionally stayed away from politics and blogging in general while deployed overseas as a mobilized reservist.

I probably won’t have much to say about the current deployment — the previous one was far more interesting.  I was able to accomplish a couple of goals on this one, however, so I’ll be happy to describe some of that.

It’s great to be back.

Posted in Uncategorized | Leave a comment