dglenn's Journal
[Most Recent Entries]
[Calendar View]
[Friends View]
Wednesday, July 23rd, 2008
| Time |
Event |
| 5:36a |
QotD
"Apart from the Kingdom of the Lord there is not on this
earth any nation that is superior to any other. Should it happen
that a strong Government finds it may with impunity destroy a weak
people, then the hour strikes for that weak people to appeal to
the League of Nations to give its judgment in all freedom. God and
history will remember your judgment." -- Emperor Haile Selassie
I of Ethiopia (b. 1892-07-23, d. 1975-08-27), 1936 | | 1:13p |
And the other symptom of my being tired is ... Doing a little better today, but still feel like I'm
moving at one-quarter speed, on account of not having
been able to stay asleep long enough at a time, last night.
Still have way too much to do and fearing too little time
to do it in, but this morning I finally knocked off one
item I'd been stressing about ...
The automatic QotD-posting script[0] was a little fragile,
in that if any one site it was trying to crosspost to was
down or really glitchy, the script would get stuck trying
and retrying to post to that site and not get to any of
the ones later on its list. When this means I have to go
thump it by hand when I wake up and the QotD is merely a
few hours late some places, that's just a small annoyance.
But I didn't want to leave it vulnerable to that problem
while I run off to Pennsic, as I won't be logging in all
that often and the state of the queue could get rather
messed up if the problem were to occur and persist for a
few days. So when I woke up this morning after my two hour
sleep (*grrr* It wasn't even two solid hours,
as odd dreams and odd pains took turns interrupting)
and I didn't really feel like I could move much with the
way my arms and shoulders hurt, I figured it was time to
start banging out code.
The new version is probably more complicated than it
should be -- I'm considering it the first draft of the new
approach, and if I wind up throwing it away and starting
over sometime in August, no biggie -- but in my tests so
far it does seem to be working. It fires up several
background processes, and each of those does the "try to
post, retry if Clive (the client I hacked) returns an error
code" loop on its own at the same time as each other; I also
made the timeout incremental (well, geometric actually)
because my old wait-two-minutes thing was kinda stupid.
(I'd coded the two-minute timeout when most of the errors
I saw were brief connectivity glitches and cosmic-ray errors,
and a few quick retries usually sufficed, but every so often
a site goes offline -- or is still present but broken -- for
a few hours or a couple of days, which means that I get
a womdigious email message from the cron daemon,
full of "failed, trying again" messages, when the problem
finally gets fixed or I kill the process by hand, and I'm
tying up more resources on the machine where it runs than
really do any good (probably not enough for the admins to
get annoyed, but it still feels wrong. So now it starts
at two minutes and the delay is multiplied by the square
root of two each time it fails, so one-time glitches and
fairly brief site outages will still result in a successful
retry after a very short time, and when a site does down for
eighteen to fifty hours, my program will back off to a more
reasonable interval instead of banging on the door constantly
screaming, "Let me in!" But I should probably put a cap on
the delay, and I do need to go fix a bug (or just
a missing feature, depending on how you look at it) in Clive,
where if the next day's quote does get posted during the
previous day's wait-to-retry delay, the one that got delayed
won't get posted at all[1]. But even if I don't fix that
before I leave for Pennsic, it'll only affect one site at a
time, rather than screwing up all of the copies of my journal.)
Anywho, the reason I'm bothering to tell all y'all this[2]
is that despite the tests I've just finished running, there's
always the chance that I've overlooked some condition that will
bite me come 5:25 tomorrow morning. So if tomorrow's QotD
doesn't show up on time, or the same quote shows up two days
in a row, it's probably because I need to polish the new
autoposter.
I've had a bunch of really cool ideas for it in my head for
a while, but most of them will have to wait. This change is
less nifty, but was something I really wanted to have
in place before Pennsic.
[0] Uh, I'm pretty sure most of you have either
already heard me talk about this or figured it seemed obvious
from the usually-consistent posting times, but every so often
I'm reminded that it's not something non-geeks automatically
think of as a candidate for automation. Anyhow, sometimes I
have two or three days worth of quotes already lined up in the
queue, and other times I have two or three months worth set up
and ready to go. And the cron daemon is my friend. Someday
in the (very distant, I hope) future, this may wind up being
a little creepy and upsetting for the rest of you, but until
then it's a signficiant convenience.
[1] The problem is that LJ et.al. don't appear to
let you just post a backdated entry if a later entry already exists,
unless you set a "yes I really mean to do this" bit someplace
(the "date out of order" flag), and (as of the version I've got
which I think is current) Clive doesn't appear to have any way
of setting that bit. So I need to go read up on the LJ API,
to learn how it's supposed to be done, and then find the right
spot (in a different section of the code than I've been tinkering
with so far) to hack Clive to do the right thing. Either that,
or give up on trying to backdate delayed posts -- which would
mean that different mirrors of my journal would have entries
in different orders.
[2] OMG, I must be even more tired than I realized,
if I'm thinking in a dialect which uses a singular
"y'all" (thus requiring "all y'all" as the plural) -- Sheepie
has pointed out (and I think
realinterrobang
has done so as well) that the more tired I am, the more Southern
my accent gets, but "all y'all" isn't even my own dialect.
(It's a near enough neighbour that I'm used to hearing it, but
it's not one I normally speak ... uh, I think.) | | 4:43p |
Wore Myself Out Urgh. After my coding session, I figured I'd really better work
on finding out where in the house my various Pennsic stuff has found
its way to over the past eleven and a half months. Pulling out piles
of tarps, coiling rope, shuffling computer equipment out of the way
to get to music books ... problem is, this is one of those "I don't
feel too bad until I stand up days, and my arms had that
rubbery, "I did way too hard a workout yesterday" feeling before I
started. (And no, I didn't do any heavy lifting yesterday, I just
feel like a healthy person would if they had done so greatly to
excess.) I was doing all of this naked, 'cause the house was really
too warm for clothing (and there's nobody here to get offended by
the sight of my except Perrine, and she doesn't seem to care[1]),
but I was wearing Croc-like shoes because my house is not a great
place for bare feed. And the sweat was running down my body and
collecting in my shoes. Ick. :-(
(Last night, my cell phone shorted out while I was talking,
because my sweat had dripped into it and pooled in the SIM socket.
Then a thunderstorm blew through, traded some temperature for
some humidity, tossed in a breeze as a special offer, and the house
got significantly more comfortable, at least in the parts where I
can open windows. Alas, I've already hit the "about to fall over
and knock other things over on my way down" point. If I'd realized
the (relative) coolness would arrive so soon, I might have delayed
starting the effort. Then again, I don't know whether it would have
helped enough, as the heat was just one small part.
I'd hoped to get out to Bowie this evening. I'm not sure I'm going
to be able to stay on my feet long enough to shower and walk out to
the car. But I did get partway through my packing list, and that's
important -- I have a hard deadline for departure, so I can't just
take an extra day to pull myself together. Losing all of yesterday
was Not Good. (I'm driving a truck out for a merchant, as usual. If
I were driving my own vehicle, I don't think I have enough money to
pay for the gas. As it is, I'm going to have to be very careful with
my grocery shopping, and I don't think I can buy both a tire and
groceries. It's going to be an interesting War in certain respects...
...Including trying out a new used tent that
syntonic-comma
grabbed for me from Freecycle. It's not going to fit on my platform.
So my choices are to forget about the platform and having a flat,
level floor this year (in addition to not having any money for lumber,
I don't think I have the energy for a construction project -- but
maybe next year), which also means moving up the hill a bit and
forgoing the shade; or hauling the platform anyhow and either letting
part of the tent hang off the platform (hoping I don't wind up damaging
the floor) or figuring out a way to set it up with one lobe
collapsed so that the rooms I wind up using will mostly squeeze
onto the platform. It'll be interesting.
I've been trying to figure out where to cut back on stuff I
take to War. I realized that part of the problem is that as far
as packing goes, I'm sort of ... three people. I pack as a
musician, and then I pack as a photographer, and then I pack as
a vacationing geek. (Only "sort of" three people, because the
garb, tent, bedding, groceries, etc. are still just for one.)
Well, it's time to see whether this sit-down break has been
long enough for me legs to recover sufficiently to get me back
down the stairs again safely. It's time to refill the bedside
bottle of ice-water. And then to decide whether I feel too
wobbly to drive to Bowie or not. (I was hoping to raid Mom's
pantry for Pennsic groceries, and ask her for money for a tire.)
[looks back over what I've written so far] Yup, procrastinating
and really tired.
Tomorrow I get to wrestle Perrine into the cat-carrier. Friday
I get to wrestle inanimate objects onto the truck. |
|