Trevor baby stare

LiveJournal Crossposts Fixed

I just noticed that crossposts from my Dreamwidth account to LiveJournal (hey, remember LiveJournal?) were broken for the last year. I think LiveJournal forced a password reset (half a year after someone blew me off on a support ticket when I suggested they'd suffered an account breach) and I forgot to update it on the Dreamwidth crossposting side.

That's fixed now, and I've triggered a crosspost for everything I read in the last year. If that all showed up in your LJ friends page at once, apologies for the mess. (And also, why haven't you migrated to Dreamwidth yet?)

So, uh, in the last year:
  • I was having trouble sleeping and tried to take a relaxing vacation to Jamaica, but couldn't sleep there either.
  • Dealt with some exciting water-related homeowner problems.
  • Got some medical interventions that helped with sleep and inflammation.
  • Took my parents to Iceland to celebrate their 50th wedding anniversary.
  • Lobbied Congress to pass climate change legislation.
  • Delivered a stand-up comedy bit about passing a climate change bill through Congress.
  • Gave a talk at Ignite Boulder 40 about turning organizational charts upside down.
  • Recognized that I'd just been in go-mode for two months straight, and decided to spend the winter holiday season sitting around organizing digital photos.
  • Spent January and February feeling burned out and introspective.
  • Got periodontal surgery that I'd been putting off for most of a decade.
  • Oh hey, it's a global pandemic! Time to work from home, have video conferences, chill out, go for a walk every day, clean up the garden, and do those things I wouldn't normally get around to, like write a vim plugin and read the appendices to Lord of the Rings that I apparently skipped at age 15.

This entry was originally posted at – comment over there.

Trevor baby stare

conjoin: A Vim Plugin for Continuation Characters

As an avowed introvert, I took the opportunity of the new fewer-social-commitment world of coronavirus stay-home orders to do some fun programming on personal projects, like my Elizabethan curse generator. While working on bash and Tcl implementations I discovered that vim, my favorite text editor, did not automatically remove line continuation characters when performing a join command. In my case, I had copied an array of quoted strings from Python into a shell script, which doesn't need quoted strings, and wanted to realign the declaration to fit nicely in 80 columns, like so:
noun=(apple-john baggage barnacle bladder boar-pig bugbear bum-bailey \
canker-blossom clack-dish clotpole coxcomb codpiece crutch cutpurse \
death-token dewberry dogfish egg-shell flap-dragon flax-wench flirt-gill \
foot-licker fustilarian giglet gudgeon gull-catcher haggard harpy hedge-pig \
hempseed horn-beast hugger-mugger jack-a-nape jolthead lewdster lout \
maggot-pie malignancy malkin malt-worm mammet manikin measle minimus minnow \
miscreant moldwarp mumble-news nut-hook pantaloon pigeon-egg pignut puttock \
pumpion rabbit-sucker rampallion ratsbane remnant rudesby ruffian scantling \
scullion scut skainsmate snipe strumpet varlot vassal waterfly whey-face \
whipster wagtail younker)
Unfortunately, the J command in vim leaves those trailing backslashes (which mean "the command keeps going on the next line") in the middle of the combined line. After a bunch of Googling, I determined that there wasn't a vim setting to do so, and nobody had written a plugin for it either.

So of course I decided that extra home-bound free time meant it was time to learn how to write a vim plugin so that I could change the behavior of the line-joining commands. A couple coworkers mentioned that such a plugin would be even more useful if it could merge strings when joining as well (resulting in "lorem ipsum" rather than "lorem " + "ipsum"). This in turn provided a great excuse to geek out on programming language details on Wikipedia, Rosetta Code and And thus was born vim-conjoin, a plugin that remaps J, gJ, and :Join to handle continuation breaks and string concatenation.

This exercise was absolutely a violation of XKCD's Is It Worth the Time graph: I spent the better part of two weekends, plus a few evenings, implementing and testing this plugin (mostly testing). It will, in my lifetime, perhaps save me an hour of work. So hopefully other vim users find it useful, too.

As with any personal programming project, the time wasn't entirely wasted, of course. The next time I want to write a vim plugin I'll have a much better idea of what I'm doing. And I learned more in a couple weeks about vim than I've learned in most individual years in the last two and a half decades I've used the editor. (Though it's going to take me awhile to remember to put call before function invocations and I'm forever forgetting the l: and a: prefixes on local and argument variables.) And the Wikipedia adventures led me to finally read up on INTERCAL a famously obtuse parody language, and LOLCODE, a lolcat-inspired esoteric programming language that I wish I'd heard about in 2007 when it was announced. (LOLCODE unfortunately seems to have been abandoned; the language author hasn't responded to a 2018 proposal for array (BUKKIT) syntax.) And that gave me an idea for an esoteric language of my own that I hope to work out during the remainder of quarantine time…

You do you. And make sure you've got an unnecessarily polished tool while doing so.

This entry was originally posted at – comment over there.

mathnet - to cogitate and to solve

Automatic Mental Defense Mechanisms

It is always tempting to divide men into two lots: Greeks and barbarians, Muslims and infidels, those who believe in God and those who don't. But who does not fear to understand things that threaten his beliefs? Of course, one is not consciously afraid; but everybody who is honest with himself finds that often he does not try very hard to understand what clashes with his deep convictions.
— Walter Kaufmann, The Faith of a Heretic

This entry was originally posted at – comment over there.

Trevor baby stare

A Conservative on Conservatism

Conservatism, in my view, begins with an understanding of the world as a broken place always at risk of spinning out of control. A conservative, then, is pleasantly surprised to find so much good in the world. He or she responds in profound gratitude for the gifts we've received and consequently aims to conserve or preserve those blessings, and to steward an order under which those blessings might be shared with even more people, all of whom are possessed of inexhaustible dignity and inalienable rights. Conservatism is, therefore, antithetical to an attitude that says to "burn it all down." Because conservatism is in part a disposition of gratitude, it is opposed to a culture of grievance or universal victimhood.
— Senator Ben Sasse of Nebraska, Them: Why we hate each other—and how to heal, footnote page 120 in the section "Conservatism Doesn't Make Good Radio"

Maybe this is why, despite deeply valuing conservation of resources, environments, and cultures, I've rarely found resonance in the conservative worldview. I don't see the world as broken at all. Rather, I think of it as profoundly ordered, with dynamic systems well-adapted to their environments, whether that happened over a generation or over a billion years.

This entry was originally posted at – comment over there.

Trevor baby stare

Letter to my senators: An open and thorough impeachment process

Dear Senator Gardner, | Dear Senator Bennet,

I’d like to thank you for your cosponsorship of S.151, the TRACED act enacting tougher penalties for robocallers and supporting a framework for better detection and prevention of caller ID spoofing. This bipartisan bill shows that Congress can work together to defend the American people against shady practices that undermine public trust.

I’m writing you today regarding another subject of questionable behavior by powerful individuals that violate public trust. The Senate will hold impeachment hearings this month and the American people deserve an open, detailed, and impartial accounting of the accused’s high crimes and misdemeanors. The impeachment trial should be thorough and factual so that the public can understand what transpired, what crimes have and have not been committed, and hold our elected officials accountable.

In addition to the two articles of impeachment passed by the House, I am concerned about a pattern of disregard for the law and for the Constitution exhibited by the current administration, including the president himself. The Mueller report said “If we had confidence after a thorough investigation of the facts that the President clearly did not commit obstruction of justice, we would so state. Based on the facts and the applicable legal standards, however, we are unable to reach that judgment. The evidence we obtained about the President’s actions and intent presents difficult issues that prevent us from conclusively determining that no criminal conduct occurred. Accordingly, while this report does not conclude that the President committed a crime, it also does not exonerate him.” Given the Justice Department’s conclusion that a sitting president cannot be indicted, this was a pretty clear indication that President Trump obstructed justice. It is up to Congress to take action on this illegal action by the President.

Furthermore, I am concerned that President Trump is in violation of Article I, Section 9, Clause 8 of the U.S. Constitution forbidding the President and others from accepting gifts and emoluments from foreign states. President Trump’s businesses are not held in a blind trust; this opens the President to potential influence by payments and business deals with foreign leaders, a state of affairs that worried the Constitution’s framers. The American people deserve a clear and honest examination of whether the President has thus violated the Constitution.

As we reflect this week on the legacy of Martin Luther King, Jr., I am reminded that it is at times of trial and tribulation that we learn of a person’s true character. Dr. King urged us to rise to the vision of the founding fathers, a nation based on the rule of law that judges people based on their character, not their skin color or party affiliation. I urge you to set politics aside and push Majority Leader McConnell to hold an open and fair trial with lots of sworn testimony, ideally including testimony from President Trump himself. It is an important principle of American justice that a man has a chance to testify at his own trial.

Thank you for your service to the people of Colorado,
Trevor Stone

This entry was originally posted at – comment over there.

black titan

Game Day Mailing List

I just noticed that the mailing list I use for game days at my house has a bunch of expired invites.
I don't reliably post to DreamWidth when I'm hosting a game day, so if you're interested in playing board games in Boulder and didn't get an email a couple days ago about the upcoming event this coming Sunday then let me know your email (you can do it privately at tstone at trevorstone dot org) and I can add you directly.

This entry was originally posted at – comment over there.

  • Current Music
    KGNU - Jazz Lives
  • Tags
Trevor baby stare

Flip Your Org Chart

My talk from Ignite Boulder 40 last month has been posted to YouTube. The basic idea is that organizations usually have a computer scientist kind of view: the CEO is at the top, with a pyramid unfolding below them. But what if you turned it upside down and treated it like a biology tree, with the root at the bottom and the frontline folks (who do the crucial work in most organizations) are at the top. If you've got five minutes and thirty-three seconds, give it a listen.

I've got links to the cool 1850s org chart, some info on the Black Rock Rangers, and downloadable copies of my slide deck on my Ignite page.

During the practice sessions, one of the Ignite Boulder organizers said that hat brims tend to hide your eyes. I wore a stovepipe hat and tailcoat anyway, since Decembers are the "dress fancy" Ignite Boulder events. The brim cast a much more notable shadow than I'd expected, but I like the result on the video: my cheeks look kind of washed out, making my eyes more prominent coming from the shadow. I was also really pleased with my delivery: during practice I was constantly feeling rushed to hit my slide timing cues, and worried I'd have to cut a few bits. But when I was on stage I simultaneously felt less rushed and managed to deliver all the material I wanted in each 15-second slide.

This entry was originally posted at – comment over there.

Trevor baby stare

Update: Unwedge a Map Leaning Against a Door

Previously I asked for ideas on how to open a blocked door. I also posted it on my office's misc list, where it generated a lot of interest. I posted the following to that list after resolving the problem, but neglected to post here.

Thanks everyone for your good ideas. And your bad ideas, like rodents. My wife pointed out that introducing a new species to an environment to solve a problem rarely works out in the long run.

After our failed attempts to open the door on Wednesday night, my wife had a dream that I'd somehow brought home a wacky arm-wavy guy:
Blue inflated arm-waving guy animation

So last night, after my attempts to wedge a bamboo stick into the end of a long brewing spoon so that it could be turned upright didn't produce enough force, we experimented with inflation solutions. We experimented with inflating a trash bag in the hallway. Once we got a decent seal (trash bags are known for their rather wide mouths) we noticed that the bag didn't push out with a lot of force: it would just spread or pop when faced with a heavy object. Additionally, it didn't seem like it was long enough to reach.

My wife suggested that we use an air mattress, and we found one in the closet that's about the width of the door. (The first one we considered was a double, and I was concerned that it wouldn't inflate well if it was folded on top of itself.) We spent five or ten minutes stuffing the air mattress under the door gap; the handle of the homebrew spoon came in handy again. We then started inflating the air mattress from outside the door, with the other person pushing the door open a crack.

After a decent amount of inflation, the door opened wider than a crack and I was eventually able to slip my arm in. After some wiggling I was able to gain enough movement to put a hand on the frame and push it further back. I then had my wife start deflating the mattress so I could get the door open a little further and slide my whole body into the room. Victory! I moved the frame away and we deflated the mattress to the point that I could slide it out from under the door.

I think this mechanism may have worked not because the mattress pushed the frame up so much as because it managed to put pressure on the bottom hinge such that the pin popped out and the bottom third of the door had more freedom of movement; I'd previously noted that the top of the door was able to open a bit further than the bottom, where the frame was wedged.

Some recreated photos

An amusing coda: The 15+ pound frame fell while my wife was gathering items to get rid of, after reading Marie Kondo's The Life-Changing Magic of Tidying Up: The Japanese Art of Decluttering and Organizing. However, my wife hadn't followed Kondo's instruction (based on KonMari's roots in Shintoism) to ask the house permission before getting rid of things. So the room established a defensive posture. Ironically, the air mattress that we used to regain entrance to the room is one that I've been carting around from move to move, and haven't used in close to ten years. Thanks to my "You never know when you'll need it" archivist instincts, the forces of clutter were able to save the day.

This entry was originally posted at – comment over there.

mathnet - to cogitate and to solve

Help Wanted: Unwedge a Map Leaning Against a Door

I've got an interesting problem at my house that I hope someone can help me solve.
TL;DR: There's a metal art frame wedged between a wall and the door to a room, and I'd like to move it a little so we can get the door open.

Our spare room has a door that swings in from the hallway.  To enter the room one must step in and turn left, because there's a closet wall that sticks out from the wall that's to the right of the door.

We had a large (4' tall? 3'6"?) map of Middle-earth in a sturdy metal frame standing against the closet wall.  Today the frame fell forward, pushed the door closed, and is now wedged between (I assume) the baseboard along the closet wall and the back of the door.  We're able to push the door just a little bit, but only to the point that there's a paper-thin crack next to the door jamb, not open enough to get something meaningful in.

The gap between the bottom of the door and the floor is perhaps half an inch: I can get my fingers under it but not my palm.  I was able to slide a long piece of bamboo under the door but wasn't able to get it between the art frame and the right-hand baseboard to try to push the frame to the left.  Based on a video I took by sliding a smartphone under the door, it looks like the frame is resting a few inches below the door knob, so I think it's got room to move up (and hence move the bottom away from the closet wall) if there were a mechanism to do so.  I think we only need to get the door open a couple inches past the jamb, at which point I could get a hand or other object in there to push the frame out of the way.

The room only has one door.  It's got two windows, but they're both latched.  (And the blinds are down, so I can't get an eye on the state of the room.)

So, wise and clever Internet, how can I get this thing to budge a little bit?

Without chopping a hole in the door with an axe, of course.  I'm leaving that as a last-resort option.

Other notes:
  • I'm okay with damaging the frame and/or the artwork; it was a gift that's been more of a white elephant than a blessing (and that was before it locked us out of its room).  Breaking a window seems more expensive than breaking the door.  (Also, it's cold outside.)
  • The hinges to the door are on the inside (so I can't easily remove the door) and the screws for the knob are also on the inside (so I can't take the knob out and reach my hand through the hole.)
  • There is a crawl space that goes below the room and ducting that I haven't investigated in detail.  The two air vents are far away from the door, but I think the cold air return is along the wall that's next to the door, so it might be possible to reach a very long object from there to the frame.  I don't know how detachable the duct work is, and I'd have to bust through the grate from behind (since the screws are on the inside of the room, natch).

I've been imagining a thin-but-firm object that can be inserted fully under the door, then somehow turned upward.  Getting the geometry right seems possible but tricky: the base of the frame is about 35" from the door; the door knob is about 35" above the floor, so I think the vertical height of the right triangle is a little less than the horizontal length.  The trick is getting the leverage/control to raise a long object once it's under the door.  Maybe a long, thin, firm object with an obtuse angle near one end?

A firm object longer than 3 feet with a hook at the end might also work if it can pull the bottom of the frame forward.

I'm sure there are other clever possibilities, too.

This entry was originally posted at – comment over there.