Chris X Edwards

A typical Great Lakes freighter is about 1.5 times larger than Noah's Ark.
2019-04-13 11:33
A nice bitter spring song, Rammstein's "Hier kommt die Sonne". Just like the Beatles! "We're all living in A -merika/-yellow submarine" too.
2019-04-10 13:10
Imagine all software engineers had to get their jobs by winning popularity contests having nothing to do with programming. That's politics.
2019-04-08 10:33
Came across a "Step By Step Introduction To GDB" which could technically contain only, "Keep pressing 's'."
2019-04-05 11:21
How the bloody hell can #England use 4.7bn straws yearly? Hope its UK "bn" confusion. Pull up your socks! What's next? Ice cold pints? Gum?
2019-04-01 15:21
Blah Blah

Facebook - Creepy And Incompetent

2019-04-14 15:43

Well, here’s one that I wasn’t expecting so soon. Facebook has just cut me off!

Remember a few weeks ago when I posted a cautionary tale about how big important heavily relied upon "services" are quite likely to cut you off in a less than ideal way? That focused mostly on a particular Google example, but I now have a fresh example from Facebook. Just when I was thinking that Facebook couldn’t get any more odious, they have set a new low for me.

I’m well known to disparage this terrible social network but every couple of months I check in and have a look at family members' stuff. Recently, I was getting sick of getting FB email reminders with subjects containing bad unicode glyphs that annoy my text email client. Every day I’m cleaning up my mail queue because Facebook sent me something utterly pointless. (Of course whatever it is they think I’d be so keen to see, they can’t just put in the email which makes their motives clear.) Since the way I handle email is so alien to ordinary humans, here’s a little example of how I see my email so you can get a vague idea of what email is like for me (since 1987).


Don’t feel sorry for me. I’m the one heartbroken at how normal people are brutally abused by their predatory mail user agents. Anyway, if Facebook can send me mail with a MTA (mail transfer agent) called "ZuckMail [version 1.00]", I should be able to use Mutt as my MUA (mail user agent).

Last week I had the idea to log in and unhitch myself from a lot of people I don’t care about who post things I really don’t care about. These are people from as far back as 15 years ago from hobbies I don’t even do anymore. Or colleagues I haven’t heard a peep from in 10 years.

I tried to log in and was confronted with this crazy thing.


Clicking on "Confirm Identity Another Way" takes me to a selection of ways this process can be done. That list has one item, "Collect Confirmation Codes". Hilarious!

One of those people (the one in the kayak I built) is still in contact with me (which you can see evidence of in my inbox) and an actual friend (ironically, I don’t think he’s much of a Facebook user). The other 4 are very long lost — 2 I was going to unfriend! Two live on different continents and I haven’t talked to them in a long time. Two were former colleagues whom I also have completely lost touch with. The chance of me being able to call three of them and ask them to reset my Facebook account is nil. Why couldn’t they pick contacts they know I’m interested in because I only look at their stuff? To pick random distant "friends" is the same as locking me out. Consider also the endless random people I had never heard of in real life which Facebook suggested I connect with.

This just effectively cut me off from that Facebook account after 16 years! Certainly there are worse things that could happen, but this is annoying because the whole point of logging in was to unhook some "friends" and now I’ll have to go make a special rule to have the email address I used for dealings with Facebook go to /dev/null. Seriously, this is why everyone should buy a domain and use custom email addresses for each and every asshat company that forces you to make a log in account. And why no one should use Facebook. And why you should not exclusively trust any company like this with anything important.

And that would be that but today Facebook handed me a bullwhip to beat this dead horse. I got a series of mails reporting that someone suspicious (a Linux user! gasp!) had tried to log into my account last week (spoiler: it was me!) but since nothing untoward had occurred since then, they’ve unlocked it. Yay!


(I don’t know why they had to have "Hi Chris" twice, but if you search the entire message for the letters "php" you will find them.) Anyway, I thought, great, they fixed that problem. I tried to log in. Nope. Same deal. And although I was still locked out as before, just checking prompted this stupid email.


They told me it was unlocked and so I tried to log in. Now they’re warning me that someone tried to log in. Obviously if someone has compromised my email account, well their first message was kind of pointless. Just a mess.

For laughs I looked at the stupid spam trying to clickbait me into irresistible "medieval memes" — so fun! And here’s what I found.


I have been redacting some information to prevent any unfortunate public disclosure and it looks like I blacked out the email’s content, but I swear, that was how it was. It looks incompetent. Normal people shouldn’t have to be experts in multipart content types for email but if you’re one of the biggest tech companies in the world, then ya, you probably need to hire someone who has had a look at RFC1341.


The nonsensical problem (that I see everyday) is that you can send proper email (which is handicap accessible by the way) or dangerous HTML-ized security nightmare email or both at the same time; most companies try to send both in a multipart message but often the plain email part, while present, is blank. It would be like if there was a link on a French website for "English version" which contains nothing. (Don’t get any funny ideas, Quebec!) It’s fine to not have the other format, but don’t say you have it if you do not!

All quite petty, I know. But I have a bit more petty carping. What about this?


Here’s the HTML version of the "email" warning me of the connection attempt. This one had a plain text email just fine but you’ll see I also marked up that it had two independent copies of the message in the HTML part. To be clear, it’s forgiveable if they had the message as a proper email and also repeated it one other time in an HTML message. But twice? Why?

Why care? Well look at that first green box. That was the essential message they were trying to communicate to me. All that other cruft is wasted (and the first green box too really since there was the third copy in the plain text part). Again no big deal if you or I do some stupid email stuff. But this is Facebook. They’re sending untold gazillions of messages which must require some kind of resources.

Maybe it doesn’t matter and roughly optimizing something targeted to billions of humans isn’t an obvious and essential requirement any more. As a curmudgeonly old man (with a degree in industrial engineering) I can’t help but feel this is shoddy work. Facebook’s security arrangements are definitely shoddy work. Let’s just count our blessings that their incompetence has let too few people log in rather than too many. We all need to do what we can to get that number of Facebook logins down to zero!

Back in the Ballmer days I always used to say that the only thing that kept Microsoft, with their absolute control over all human information, from enslaving humanity was their manifest incompetence. With Facebook, that logic is also clearly valid.


Buffalo - Winter

2019-04-10 05:39

When I first arrived in Buffalo last summer I pointed out to the astonished locals, who inevitably asked why I would move here from San Diego, that as far as I was concerned the problem with both places was that it was too hot. They would then answer their own question with a cry of, "Just wait for winter!" You see, in San Diego these days waiting for winter does little to relieve the "too hot" problem. Here, the weather is far more pleasant. For me.

Although I’m nostalgically keeping the snow poles in my driveway another week or so (and the chance of a decent snow is still pretty good), spring has definitely begun. It is time to review Buffalo’s hallmark season, winter!

By autumn the "too hot" problem had definitely been cured and I was delighted. There was also a bit of apprehension — could it actually become not hot enough? There were ominous signs — the gleaming battlegroup of snowblowers lined up outside of Home Depot, the snow poles being planted everywhere, frost-proof plumbing, gates to close the freeways, a pretty decent amount of autumn snow. In November I saw some guys at UB testing out a snowmobile. All pretty exciting!

Perhaps one of the reasons that I like winter weather more than normal people is that when planning and preparation can easily cure an obvious problem, it’s pretty much a problem I never have. So plan and prepare I did. I bought tons of winter gear, much it of while shopping in northeast Canada. I didn’t just turn off my outside spigots to keep my pipes from freezing — I cut them out and completely removed them for the winter. I had so much fun buying weird stuff like snow poles, crampons, spiked bike tires, and snow shovels (yes, three). I worried that my little car would not be adequate but settled on getting the best snow tires money can buy. Etc.

As I braced for this famous heavy-duty winter, the weather actually turned annoyingly mild. The autumn snow melted and did not seriously make an effort to return throughout December. Just when my wife and I were beginning to think the whole winter thing was a hoax, it did finally show up. I will say that the weather here can be volatile!


Never a dull moment looking out the window! My time lapse video certainly illustrates that. Another example of that is the longer sunrises and sunsets this season. Here is a sunrise from our house.


A lot of those winter cliches are simply normal life here. For example, here is one of those little decorative trees they paint white to simulate snow contrasted with the real thing.


To get a feel for how this season went, I’ll order some photos in what seems to be the wrong order, but which are in fact chronological.

Here’s a flock (rafter?) of turkeys walking past my office window.

December 17


Oh ya, serious winter here! Late December and I’m eating lunch outside (though not every day like I did in SD). Apparently authentic Buffalo "culture" would compel me to jump on that plastic table until it breaks. At least they like good music here. I was reminded of that as the holiday ear torture gave way to music with guitars again.

December 20


Christmas is so full of fatuous songs about snow, surely there will be snow, right? Not as much as I would have thought. Finally on Christmas day there was a bit of light snow (you can see falling), but my son is standing mostly on what’s left of November’s plowed snow.

December 25


After a sluggish start, by the end of January winter finally started to get interesting! Here is Lake LaSalle looking pretty wintry. (Summer version for comparison, camera vector is -1x.) The key point I was noting with this photo is the headwind which the blowing snow makes more visible than usual.

January 31


And on the way home from work back through UB it was definitely nice and snowy, but very, very far from impossible to bike in.

January 31


I had to get home early because I needed to get my skiing in. When my skis arrived in late January (as I report here), I decided I would ski every day it was possible to do so.

January 31


I skied 9 days straight and (barring a prodigious amount of freakish spring snow) that was it for the entire season. Better than nothing to be sure, but I’d love to see a lot more.


Here’s a single turkey walking through my backyard. There is still a lot of wildlife here in the winter.

February 7


We get rabbits, squirrels, chipmunks, Canadian geese, and tons of other birds. Here four deer come to visit. I can only find three in the photo, but that’s how those deer are — very good at blending in. I often find their tracks on the driveway when I shovel it.

February 28


The only time I enjoy being too hot is if I am literally steaming. That phenomenon occurs only when you burn a ton of calories in a short amount of time and it’s freezing cold. You can’t quite see it in this photo of me cooling off, but I will remember that commute fondly.

February 28


Riding through some tough snow on this bike path was fun. The hard part can be simply the rough surface of footprints frozen solid. It’s like very rough cobbles.

March 05


Here I was practicing my compulsory figures. The real objective was to try to dislodge the slushy snow stuck in my tires before bringing my bike inside. I finally worked out that I could go inside and get a pitcher of water and pour it on the tires. That was helpful for the salt buildup too. I did accidentally make a dangerous little skating rink one morning. Oops! Sorry! I thought it was mid 30sF but really it was low 20sF. Lesson learned.

March 07


Although much of the core of winter was less snowy than I would have liked, even on the last day of March there was enough snow for everything to look nice and snowy. This is the view from my desk at home (cf. the autumn view).

March 31


What the Buffalo winter taught me is that I probably should move to Canada or Alaska if I ever get the chance. I really enjoyed the winter as I previously reported. The week of that polar vortex stuff I was really taken by surprise. Not with the weather or the "cold" but by how much Buffalonicians really freaked out. It was nice how quiet the University of Buffalo was when it was closed because of snowy weather. That made cycling through it on my way to work that much more pleasant. But really? Closed? Everything was closed. For several days!

I didn’t even think it was that severe. This was probably one of the coldest rides I did this season and it’s nowhere close to my cold biking record temperature. One day my wife and I walked through the woods to go to a nearby restaurant — we found a sign "Closed Due To Weather". Sure there was some snow. Just like everyone expected, right? Come on now, maybe I’m some kind of cold tolerant freak of nature, but when my San Diego born and raised wife walks a couple of miles through the snow to go out to eat, we sort of expected the place to not have figuratively collapsed from the weather. (I did actually enjoy cycling into the same headwind that literally blew the roof off of the UB bookstore which I pass on my way to work.) My wife actually went out walking for at least an hour a day pretty much every day this winter. We both really appreciated the break from the heat. We both loved the winter weather and scenery. Our only complaint was there was not more of it!

I do, however, understand why people do not like the winter. Winter makes the horror of car driving much more salient. In mild weather it is too easy to forget how absurdly lethal having anything to do with cars is. Snow and ice intensify all of the problems with driving to the point that people start feeling the correct level of fear and stress. And those who don’t, crash. I personally saw three cars seriously lose control and dozens of others smashed or stranded in awkward positions. But hey don’t blame the winter. Blame the cars and their human drivers!

Buffalo Weather Time Lapse

2019-04-02 19:03

The weather here can certainly be dramatic. Here’s a video I made of a pretty intense day and a half starting on the last day of March. I had anticipated that all the snow would melt and, after a bit more, it did.

I noticed an interesting subtle thing about this video — I’m wondering if the vertical orientation of the camera changes because of thermal expansion of the supporting tower as the sun comes out and tracks across the sky. Looks like it to me!

What’s cool about this video is how easy it was to make. It certainly required less effort than writing about it. I used the following to create a directory to store the images in, retrieve 1000 of them from a Niagara International Transportation Technology Coalition webcam at two minute intervals, and finally encode them into a video with ffmpeg.

D=/tmp/freeway ; mkdir $D ; cd $D
for N in $(seq -f "%04.0f" 1000); do wget -O ${N}.jpg $URL ; sleep 120; done
ffmpeg -i %04d.jpg -r 15  -qscale:v 2 buffalo.mp4

If you have a Raspberry Pi with a camera module you’d like time lapse images from, you can substitute this command for the wget line.

raspistill -t 120000 -tl 120000 -o %04d.jpg

Pretty easy! If you have a favorite webcam that you’d like to make a time lapse video of, now you know how.

Stack Exchange - No Good Deed Goes Unpunished

2019-03-28 09:45

I think it is fairly obvious to any computer professional or enthusiast that sites like Stack Overflow and the whole Stack Exchange family are as much a part of the vocation as manuals used to be. I personally often find myself referred to Stack Overflow, Server Fault, Super User, Unix & Linux. But these nerd sites aren’t just limited to computer nerd topics — the majority of my contributions have been to English Language & Usage.

These sites are very useful and for known unknowns where you just need to have someone spell out the exact syntax or filter out the 800 options you do not need, they can be great. But there are some serious problems with this compendium of knowledge.

A huge problem that weird people like me have when looking for advice about a weird problem is that the problem is marginalized as pointless. For example, if I want to know how can I control some piece of hardware using Linux, there will be that exact question but the responders will insist that the solution is to simply use Windows. Here’s an exact little example I was able to quickly find. But this kind of subtle denying the validity of the question is huge. As far as I’m concerned all answers like this might as well be, "Change your lifestyle so you don’t need to use computers!" TIFI!

Often I feel like this problem is exacerbated by some kind of broken windows problem where bad moderation begets more bad moderation. Or maybe bandwagon effect, something like that, where popular things are thereby made more popular yet.

Another problem is one of focus. Are these sites to answer various questions from the audience? Or to be the Wikipedia-like repository of all questions — answered properly — one could possibly ask about a topic? It’s close to being both but on the edges where it’s neither it can be very frustrating.

Another absurdity is that when The Search Engine sips Stack Exchange sites, it becomes drunk. I regularly go follow SE links on the faint hope that the lone search result will keep the hunt alive only to find that there are actually hundreds of results, many quite on target, but the search results failed to notice. Often a 2011 answer is enshrined as the go to link (I guess because everyone has been clicking on it) despite there being newer better treatments. And then there is the related frustrating problem of the search results highlighting an answer that is actually closed as a duplicate. Or closed as a dumb question which is really frustrating when that’s your question!

Here is an illustrative screen shot from this question that I was directed to this morning.


It shows this problem of a question being deprecated in favor of another question that already solved the problem. In theory this is fine, but in this case, as the OP notes, "This question is not a duplicate of similar questions…" I can affirm this as it was also my subtle spin on the more prosaic related question. Not only was this incorrectly marked as a duplicate by someone, it was , "marked as duplicate by user177800, Sotirios Delimanolis, TylerH, Paul Roub, Machavity Feb 20 '17 at 19:58". Jeez guys. One of you being stupid is one thing, but dang.

It also shows the biggest problem with the Stack Exchange network, the reputation farce. Why do I never contribute to the computer nerd questions (despite having a mild on-line willingness to be helpful)? I can’t! It’s pretty much impossible for me to do anything because my "reputation" is low. Note the 1s in the upper right of the image for my reputation and "bronze badges" (whatever that means) respectively. The suggested way to overcome that obstacle is to somehow participate but because my reputation is low I can’t quite do that. Catch-22.

It’s pretty sad that I can’t even publicly save this completely legitimate question which is well written and properly explained from a negative rating.

And it’s not just me. This is obviously pervasive on these sites because there is so much consternation about people answering questions in the comments (as opposed to creating a proper "Answer" section). They do this because they don’t have the reputation to proffer an official answer. Muddled organization ensues! Here’s a ridiculous example where the question is "Why do some people answer in comments?" and the answer is pretty well answered in the question’s comments! ("Because they are afraid of downvotes… or don’t have the pundit badge yet…" Et al.)


Oh well. Apparently 998 visitors out of 1000 just get what they can out of these sites and move along without playing the unfun game of contributing. The purpose of this post is just to explain why I’m one of those people too. But if you think Stack Exchange is useful — and I do — imagine if another 2 out of 1000 people would like to contribute high quality knowledge but can’t. The site could be twice as helpful. That seems like a lot of wasted potential.

Greenland Cleans Up Its Goo

2019-03-23 16:00

This morning someone sent me a shortened URL. You might recall one of my more useful posts, How To Embiggen A Shortened URL, and guess that I don’t like to gormlessly stumble into such things without first checking for nasty surprises.

The surprise I found was not the typical spammer or malware problem you’re likely to read about on Krebs On Security. The surprise was that Google is pulling the plug on the shortening service.

From a note at the top of

You will be able to view your analytics data and download your short link information in csv format for up to one year, until March 30, 2019, when we will discontinue

This is a good opportunity to remind yourself that URL shorteners are probably a bad idea. Remember my recent posts on DNS, the whole point of which is to unshorten your host’s address from a compact 32 bits to something bigger and human readable… and now we want to immediately shrink them to something smaller and not human readable? Sounds like a flawed design, doesn’t it? In the zenith of URL shortener popularity, a common coding interview question was to outline a design for such a system — my answer was always prefaced with "Don’t go there, it’s a bad idea." It seems that Google is finally starting to see things the same way.

This post isn’t about URL shorteners, however. This post is about the unpleasant surprises which may be in store for you if you imagine that the cloud services you depend on are eternal.

I must give a special thanks to Google Reader, a service I used heavily for years, for curing me of the illusion that my favorite cloud services were not going to pull the rug out from under me. I’m currently getting emails from Google Plus telling me they’re pulling the plug on that social media site too. Hey don’t worry, I learned my lesson at Orkut!

For some reason, this list doesn’t specifically mention one of the most disturbing casualties of Google’s sewer pipe, Google Code. People trusted this service to keep important software safe. Just like they trusted and SourceForge prior to that.

This is obviously not just a Google problem. How confident do you think I am that today’s popular universally trusted "eternal" source code repository won’t be sold to a predatory company with disturbing conflicts of interest? Oh hang on, that’s already happened. But you get the idea.

Did anyone notice the recent MySpace debacle? Wherein all music uploaded to the service between 2003 and 2015 has been… lost. Forever. Whoopsie! Of course many are delighting in this since MySpace degenerated into a bit of a cringey joke, but I’m sure there are some amateur musicians who aren’t too happy to have entrusted their work to this service.

The Yahoo! fiasco! is another example of an internet titan brought low. And history is full of giant tech companies that seem permanent and eternal. Until they are gone. DEC, Data General, Wang Labs, Geocities, Sun, Silicon Graphics, AltaVista, Netscape, Palm, Compaq, Kodak, Radio Shack, National Semiconductor…

For most people, using cloud services is more reliable than doing it themselves, but a better strategy for everybody, if possible, is to do both.

UPDATE 2019-03-23

I have just been tipped off about how pulled the plug on a lot of people’s cloudy backups. No data was lost, but still that’s unnerving. What’s interesting in that case is that they transitioned to only serving the enterprise market (where it’s easy to fool all the people all the time). What’s remarkable is that, one, anyone would still trust them and, two, this was not even a free service. Paying customers were just told that finding a new backup solution was a hassle they were going to have like it or not. So don’t think money can completely cure this problem.

UPDATE 2019-04-06

Facebook has just cut me off! I wrote a new post about their stupidity.


For older posts and RSS feed see the blog archives.
Chris X Edwards © 1999-2019