Your leaking thatched hut during the restoration of a pre-Enlightenment state.

 

Hello, my name is Judas Gutenberg and this is my blaag (pronounced as you would the vomit noise "hyroop-bleuach").



links

decay & ruin
Biosphere II
Chernobyl
dead malls
Detroit
Irving housing

got that wrong
Paleofuture.com

appropriate tech
Arduino μcontrollers
Backwoods Home
Fractal antenna

fun social media stuff


Like asecular.com
(nobody does!)

Like my brownhouse:
   caught in a spam loop
Tuesday, April 5 2016
On this morning's dog walk, I lead Ramona, Eleanor, and Neville over the crunchy melted-and-refrozen snow down the Farm Road and over to the abandoned go-cart track. From there, we walked along the plateau west of the Farm Road homeward, stopping not too far from home for me to salvage 50.5 pounds of wood with the equipment I'd brought. Ramona and Neville inevitably became bored as I worked, and, to my delight, they began playing with each other. Perhaps Ramona's pout about having an uninvited new brother was coming to an end and she was moving from depression to acceptance.
Back at the house, the wood I'd salvaged proved to be of low quality (something I'd been able to tell just by looking at the sawdust as I'd cut it). It was semi-rotten and contained more water than I typically want in my just-in-time firewood. I piled it up around the woodstove and, some hours later, set out on a second firewood salvaging mission, this time to the edge of a gully along the Gullies Trail (at about 41.928781N, 74.105407W). Ramona and Eleanor never want to go on expeditions that are solely about firewood, but Neville never wants me to be out of his sight, so he tagged along. As I cut up scraps of fallen skeletonized Chestnut Oak from the edge of a very deep, cliff-walled gully, I looked across it to see Neville on the other side trying to figure out how to get over to me. It would have been easiest for him to go uphill and come back along the Gullies Trail (which follows a contour just above the highest place on the hillside into which the gullies all cut), but instead he went down the escarpment, a brutally steep hillside that doesn't level off until the Chamomile, 150 feet of elevation lower. I thought I'd have to go down after him, but soon he appeared from on my side of the gully.
This second salvage of the day came to 51.5 pounds. It's a lot harder to find salvageable wood when everything is covered by snow, even only a few inches. But clearly some of my problem stems from the fact that I've already salvaged a large percentage of the ready-to-burn wood within easy schlepping distance of the house.

An added complication to the new job I've been offered is the fact that Gretchen has scheduled so many vacations for us in the upcoming year. There's some kind of vegan booze cruise in the south of France in October, a trip with her family to Tulum in the Yucatán of Mexico (where she is right now for language school) in December, and two full weeks in the Adirondacks this August at that fabulous cabin we stayed at last summer. My new job offers fairly generous vacation time, but it's not all available right away. I sent the head of HR an email asking what could be done about these already-scheduled vacations, being careful first to reduce the Adirondack one to only a single week. If Gretchen wants to be there two weeks, that's great, but there's no way I could justify that for myself if I have a full-time job.
By the time I went to bed I'd heard nothing back from the head of HR, making me worry (and I tend to be a worrier about anything that isn't a done deal) if my already-scheduled vacations were a deal breaker.

At some point this afternoon, I was delighted to see Ramona and Neville playing enthusiastically with one another in the living room. Perhaps Ramona was beginning to see the benefits in having a brand new "brother." See for yourself.

This evening I revised a shell script designed to report on file modifications in the webroot of the theatre chain website. In the past, this script had only sent emails to me and the other developers when such changes happened. But that wasn't good enough; what if we're slow to respond to these alerts and a script designed to nab and ship credit card information is able to persist on the website for several hours? Today's modification did something extra if it detected that shopping cart controller had been modified. In those cases, it would overwrite the shopping cart controller with a fresh copy from a different location on the server. I ran a test and the script worked great, but then I saw I was being deluged with emails telling me the cart controller had been modified. My script had entered an endless loop. It would notice the cart controller had been changed, email me and the other developers to alert us, and then overwrite the cart controller with a known good copy. Unfortunately, this would be detected by the monitor process (inotifywait), which would then send another set of emails and re-overwrite the cart controller. The cycle repeated and repeated until I rebooted the test server, but by then (in the course of less than two minutes) it had sent thousands of emails to me and the other developers. Three hours later, I was still receiving them in big 200-email bursts. After four hours, I started getting emails telling me that "my" emails (they were marked as coming from my email address) couldn't be delivered and would be resent (thanks, Obama!). The madness didn't end until I deleted every file in the SMTP spool on the server, which was at /var/spool/mqueue. I suspect the bulk of the spam deluge could have been thwarted had I deleted those spool files immediately after rebooting the server.
The key to getting my script to work correctly was to remove the -m flag from the call to inotifywait and to have the shell script call itself after it overwrites the cart controller and sends any emails it wants to send. The lack of an -m flag means inotifywait stops monitoring after the first detection, allowing an unmonitored window in time for the script to do things like overwrite the detected file with a known pristine copy.


For linking purposes this article's URL is:
http://asecular.com/blog.php?160405

feedback
previous | next