Moderately productive week. I am still not entirely confident about the project I'm on at work, but there's a chance we may pull it off. Some work on improving my websites. Some good progress (mostly on Colleen's part) at downsizing the household. Plans for the next year are firming up.
I have decided to retire next year. And many decades of shortsighted and stupid financial decisions mean that we won't be able to keep this house after I stop working. So... downsizing. It's sad, but also liberating: for the first time in years I am not terrified of losing my job. "The realisation that one is to be hanged in the morning concentrates the mind wonderfully," and it was the looming prospect of possibly having to flee a Nazi-occupied country within the next few years that made us decide to do it now rather than later.
Meanwhile, listen to Songs That Help Ease Anxiety, and go read Catherynne M. Valente's The Beasts Who Fought For Fairyland Until the Very End and Further Still --
We must say Yes to the story where, after a long battle, the dark lord is cast down into infinite nothingness or burnt to a crisp or at the very least sent to bed without supper, and everyone cheers and dances and has a party afterward. But most of all, we must say Yes to the truth and the speaking of it. We must say No to silence.
So I took the week off from work. I'd originally planned to return from Orycon Sunday afternoon, and go in to work Monday and possibly Wednesday. The best-laid plans... Monday was occupied by the drive back from Portland, Tuesday by medical stuff (including a urology appointment on short notice for Colleen), and Wednesday by waiting for the tech from Acorn to show up and do the proper inspection that the tech who had arrived early on Monday had failed to do. So.
Spent much of the week on personal software projects. Wednesday and Thursday I was mostly hacking in my .emacs file, fixing some long-standing annoyances with html-helper-mode (and incidentally lj-update-mode, which is partially derived from it). Friday and Saturday I worked on the build software for my website Songs pages -- you can see the results (so far -- there's still quite a bit of prettying-up to do) on LookingGlass Folk's Songs. The LgF page was the main motivation -- it's been a broken link on the site for years. The secondary motivation was putting my songbook on GitHub.
In the course of doing this, I finally got around to writing tests for the makefiles -- predictably, they turned up lots of bugs. By no means complete, but I now also have an easily-extensible test framework that I can use for the rest of MakeStuff and my other make-based projects like Honu.
Thursday we had a Thanksgiving dinner that couldn't be beat. Glenn spatchcocked the bird -- this was my introduction to the technique, which lets a 16-pound turkey cook in two hours with a beautifully crisp skin. Recommended. There were just Colleen and I, Glenn and Naomi, and N's kids. The YD had dinner with her boyfriend's family, and Chaos spent the day working on term papers. The tenants ate at C"'s parents'. (I may have to go to subscripts.)
Fair amount of political stuff in the links; not going to re-hash most of it because apparently Post-Trump Stress Disorder is a thing, and I haz it. I can, however, recommend moem's Cybersecurity for the Trumped series, and Tor Browser.
It's time for another year's worth of gratitude. On the whole, 2016 has not been a great year -- about the best I can say is that I -- and my family -- lived through it. OK, here we go: This year I'm grateful for...
- My family. All of it -- family of blood, family of choice, Colleen, Chaos and Neko, Naomi, Glenn, the Roo and The Duchess, Mom, the relatives we hardly ever see, ... the whole crazy bunch of us. They're what's keeping me alive.
- Our wonderful house, Rainbow's End. For all its plumbing problems, it's still a great place to live. I will miss it when, sooner or later, we can no longer afford to keep it.
- Music. The songs that keep us going: "The Mary Ellen Carter" in particular; "Gentle Arms of Eden", "Quiet Victories", and "Kitchen Heroes" as well; and we've recently added "The Bells of Norwich" and "Millennium's Dawn" to that list. Songs of hope, determination, and defiance -- we need them now more than ever.
- Friends. Thanks for the late-night conversations, the hugs, the blog comments, the words of encouragement and comfort, and just knowing you're there. You know who you are, and I love you.
- Work. I'm getting weary of it, but I'm glad my employer still wants me, for the moment.
- Hope. Pandora, 2016, you're a bitch, but at least you left us that
Here's hope to heal your sorrow,
Now that the old dreams are gone,
And the past has turned into tomorrow,
In the light of the Millennium's dawn.
No thanks to most of what 2016 has brought us, aptly and obscenely summarized in The 2016 Song. Not safe for work, because 2016.
Rough week. Even a con, with a concert that came off well, didn't help all that much. My anxiety--or whatever it is, because alexithymia--levels are through the roof, even after cutting back on coffee and Facebook time.
Getting through the concert did reduce my stress quite a bit; that effect lasted through the rest of the weekend. A couple of great conversations; the one we had Sunday evening/night reminded me a lot of the conversation I had with Naomi all those years ago at OVFF, which arguably led to a lot of what's happened since. So, yeah. Friendship is good. Making new friends is wonderful.
I'd originally planned to leave Sunday afternoon. I'm incredibly grateful to Naomi for giving me an excuse to stay on the extra day. I wouldn't have missed that conversation for anything. (That's assuming, of course, that I'd known about it ahead of time. One can't exactly schedule such things. One can, however, be open to them when they happen. I seem to be moderately good at that; it's just getting started that's so rare.)
The concert. Well. Of course, being totally frazzled leading into it, I neglected to record it. I'm hoping that the woman who recorded it on her cell phone gets back to me -- of course I neglected to get her contact info, too. The set list was drastically revised after the election; what we ended up with was:
Most of them had new arrangements--N has started composing harmony lines. Millennium's Dawn, with her harmony and the new last verse, worked particularly well. Bells of Norwich was new to me, as was the guitar part for Nemesis. You know things are going to be different when QV is the second song in the set.
Oh, yeah: the bad stuff. Colleen's stairlift finally broke past my ability to jury-rig it. Much cursing, while I set up the sofabed in the Rainbow Room. (Although that was another good reason to stay the extra day at the con -- the sofabed is horribly uncomfortable.)
...Aaaaand the ... ugly? Maybe. N handed me a card that said "YOU MATTER". Which is something Colleen says to me quite frequently, also. That started a train of thought, because it reminded me of an article that had come by earlier in the week and that I felt... odd... about. Some initial reactions below in the notes. I know it's meant to be encouraging; to make me feel good about myself or something like that. It doesn't, though, and I can't figure out why.
I really hate important stuff I can't figure out. If it was a server I'd be busy analyzing logs and cursing the lack of comments in the code. Come to think of it,...
So here we are at Orycon. For some reason I'd forgotten to register Colleen, so we had to do that at the desk.
Here's my schedule:
1118Sa o Is Open Source Really Open? Salon C (LL1) Sat Nov 19 10:00am - 11:00am Blake Hutchins, Frank Hayes, Mark Niemann-Ross, *me (moderator) o Concert: Steve Savitsky Mt Hood (2) Sat Nov 19 1:00pm - 2:00pm 1119Su o The Changing Face of the Computer Interface Sunstone (3) Sun Nov 20 12:00pm - 1:00pm *Frank Hayes, Jeff Soesbe, Matt Huntley, Matt Huntley, Rhiannon Rhys-Jones, me
The concert is going to be good. Promise. The setlist was completely revised last week (for reasons that should be obvious).
- My family. Special callouts for N, C, and g.
- Hope. Feeling way too much like Pandora, except it wasn't me that opened the damned box.
- Therapy cats.
- Music. Special callouts for "The Times, They are A-Changin'", "Desolation Row", and "Julian of Norwich"; the last two being on opposite ends of something or other.
- Ethanol and caffeine. Also toward opposite ends of a different scale.
I suppose I'll get through the next four years somehow. But the possibilities range from disagreeable to agonizing to desperate. N tells me I'm stronger than I think. I hope she's right.
What the hell can I say? The Joy of Tech comic... National curl up in a Ball Day kind of says most of it. I'm still not uncurled.
"I wish it need not have happened in my time," said Frodo.
"So do I," said Gandalf, "and so do all who live to see such times. But that is not for them to decide. All we have to decide is what to do with the time that is given us."
― J.R.R. Tolkien, The Fellowship of the Ring
My right peroneus muscle is still painful. No idea what I did to it or am doing wrong, though one article suggested that it could be plantarflection due to sleeping under heavy blankets. So maybe I should go back to sleeping on my side instead of on my back. Sleeping on my back is fairly recent, so that may be fairly simple.
I've been doing a lot of puttering, and arguably a lot less practicing than I should, given that I have a concert in less than two weeks at Orycon. I've been practicing most days this week (see notes), and I think my calluses are back, so that's something. Need to print out my set and start doing more complete runthroughs.
Halloween was fun, going out with N and her kids. Gave the adults someone to talk to.
I've been taking care of the critters, since N, G, and g are away at OVFF. Cricket's been in the Great Room, mostly hiding in the Cubhouse -- at least, that's where I usually find her when I come in. Ticia's been pretty good about not trying to come in, though I still have to warn her away from the door.
Puttering. Yeah. G' did some major re-organizing and cleanup involving the downstairs closet and playroom, and the upstairs closets. Unfortunately, this was accomplished mainly by moving things into the garage and craft room. I've been gradually moving stuff to more sensible places. Some of the decisions have been good ones, though; I'm not complaining about the kitchen cabinet re-org.
Oh, yeah: the Cubs won the World Series. I'm not a sports fan at all, but that's pretty extraordinary. If it's a sign of the apocalypse, I'm hoping that it continues with the person the wingnuts are calling the Antichrist getting into the White House. And that's the last thing I'm going to say about politics until November 9th at the earliest.
Almost productive this week. The weekly design meeting brought some much-needed clarity to my current project, and provided the justification I needed for the simplest design, which I had already partly implemented. Win. Also Q4 scaling. The service I'm working with is one of the easy ones -- it's old, deprecated, and most of the use cases have been moved to its replacement. So it's already massively overscaled.
I've started practicing for my concert at Orycon - late as usual, but I'll get there. Also as usual, it will take a day or three for my finger-calluses to come back.
Not getting much housework done. That could be a problem. Something about motivation?
As usual, a fairly unproductive week at work, made even less productive by the fact that we had to be out by noon Thursday so they could move everyone on the floor to a slightly larger floor next door. And we're only supposed to be in that location for another 6-9 months. Not that I really expect to be there that long.
I actually got some work done after the afternoon meeting (I never turn down free food) that was scheduled after our move deadline - it was just a matter of finding a quiet place and firing up my laptop.
I need to talk to my financial advisor. I've been putting it off -- I'm really good at that -- but it's gotten more serious now that I'm about to turn 70 and will have to start withdrawing money from my retirement accounts. Plural. And now that $A stock is up over 800. (That suggestion courtesy of my therapist.)
Friday I tagged along with Colleen and G' while they went to C's urology and doctor's appointments. And, of course, Mazatlan, the Mexican restaurant across the parking lot from Urology Northwest. In between, C and G' went to Costco while I hung out in the UW Clinic (across another parking lot from Costco) and tried to get some work done. This was hampered by my having forgotten to bring my VPN token :P Need to pick up a spare to keep in my backpack.
Actually, should keep one in my backpack and one at home, and stop keeping it on my badge lanyard. In fact, ... *puts token in backpack* Less likely to get wet in the rain.
Went grocery shopping with Colleen yesterday. Exhausting.
The big insight for the week (see Sunday) is that not only do I not multitask worth a damn, but it takes me a long time to context-switch. I'm at my most productive when I can work on one thing pretty much all day. Which is one reason why being on call sucks so much.
Edit after discovering that I'd missed Saturday.
Bob Dylan won the Nobel Prize for literature. I am still kind of blown away. I mean... He's one of my personal heroes, and I've always known that there's a difference between a songwriter and a poet who sets their poems to music. The latter are quite rare. Most -- all? -- songwriters know which side of the divide they fall on. But... But... Nobel Prize!
Meanwhile, here I am on Desolation Row. Our predicted storm of the century wasn't even the storm of the decade; but it still did quite a lot of damage. The zipper on my pants broke -- again. We have a crack in the floor of our basement, which of course water is coming up through. I cut a corner too close and badly scraped the side of the van. What's left of my self-confidence is somewhat in tatters.
They're spoon-feeding Cassanova
To get him to feel more assured
Then they'll kill him with self-confidence
After poisoning him with words.
Ok, so at least I don't have to worry about that. Also on the plus side in no particular order, we never lost power, we can see the crack because I have been procrastinating getting the floor re-done since our flood last year, our second tenant has moved in, and all the damage to the van was cosmetic. So there's that.
Rather an unproductive week at work.( Notes & links, as usual )
Pain levels, in particular standing for any amount of time unsupported in the evening, have been pretty high lately. Mostly hips, though there's still some pain in the right leg. Do not like, and it makes me snappish as well as lazy. Also, I was extremely congested last weekend and well into the week. In combination with the muscle aches and weakness Sunday I almost suspect flu. Almost. Some kind of virus, certainly.
I worked a little on my setlist; most of what little practicing I did was guitar. Which is ok; my fingers were kind of in bad shape and my playing obviously needed the work as well. It's mostly going to be off my (still-planned) second album, so I thought a little about Amethyst Rose and felt sorry for myself for not marking her birthday this year.
Quote of the week, from a T-shirt by way of G:
Most programmers struggle with 2 things:
0. Cache invalidation.
1: Naming things.
2: Off-by-one errors.
It doesn't mention being on call or facing hard deadlines, but those are right up there. It's been an uneventful oncall this time -- the only times I was awakened at 4:30am were by Ticia. I also spent altogether too much time in meetings, when I should have been working the ticket queue.
I continue to be wasting too much time on Quora, and quite a bit reading poetry and fiction on DW. Well, at least Q keeps my word count up, and I've been getting a little positiveifeedback via Twitter. I mostly don't try to track everything, but you'll find one of the better answers below at the end of yesterday's notes.( Notes & links, as usual )
2016 can go hang itself. In the last week the filk community has lost Lucy Stern, Kira Heston, and JoEllyn Davidoff. Colleen's friend Bev lost her fiance. The folk world lost Oscar Brand. Enough!
The rest of it seems kind of lame. I'll try. Meanwhile, there's this infographic of the stages of grief vs reality.
I successfully replaced the USB port on Colleen's tablet -- I am now feeling fairly confident of my ability to fix modern computing devices. Meanwhile, though, Colleen had expressed an interest in replacing both her tablet and her kindle with a Kindle Fire, so when I spotted a used Fire HD 6 on sale at, well, a fire sale price, I got it for her. So now I have a Kindle paperwhite. I may go back to reading books on the bus instead of news. It would be good for my blood pressure.
My hypertension also provided a convenient excuse for not watching the presidential debate. I already know who I'm voting against, thanks. First election I can remember where Darth Vader and Cthulhu dropped out early.
At work, my sit-stand desk showed up over the weekend. Having a desk that goes down to a proper typing height, which for me turns out to be 25.5 inches, is wonderful. Tried standing a couple of times -- it hurts to do more than a couple of minutes. I'm supposed to work up to 15 minutes out of every hour. Probably not happening, but we'll see.
Also got my Microsoft ergonomic keyboard; it took me most of the week to get used to it, but it may work. If not, I can always go back to the Thinkpad keyboard. I bought one of the newer ones for home, which means that I could swap the older one I'd been using there for the one at work, which had developed a dicey space bar.
Finally got around to paying a few bills. I suck at that kind of thing.
My depression and anxiety numbers were down -- 5 each -- at my session with my therapist on Tuesday. I'm not sure the therapy is doing me much good except as a way of getting something of an objective reading on my mental state, but that's probably a good thing in its own right.
Somebody sent me a link that his daughter found and suggested putting on Interesting Places for
Kids. Which I did, but it's so horribly out of date that most of
its links are broken, including all of the links to it, now
that I've dropped the
places.to domain. (Tonga raised the rent,
and I didn't think it was worth it.) Oh, and also the build system, which
relied on the no-longer-maintained cPIA: XML Macro Processing in C for templating. Need to put that on
GitHub. Thought I had, actually.
Oh, yeah: the link:
As the father of two 6th grade girls (twins) I've been looking for weather resources to help them with their natural disaster project in their Earth Science class! Your weather guides have been a big help. As a thank you, I wanted to send you this page that one of my daughters found: http://www.aaastateofplay.com/staying-sa
And I'm primary oncall next week. Oh, joy! It's probably going to be a busy one, though hopefully not as rough as the last one.( Notes & links, as usual )
At work, we finally ran the numbers again and figured out that, no, $PROJECT is not going to be finished in October. Current target is mid-December, but even that may be a stretch. The good thing is that it isn't all my fault, though I still blame myself for most of the bad planning.
At home, I finished pulling up the bindweed. There are some stragglers, but at least it's no longer covering 50' of walkway.
I finally put in my passport renewal - I found the one place in the area that's open on Saturday, after trying on Wednesday at the courthouse and balking at the metal detector because I knew I was carrying a knife. The process of applying in person has gotten a lot quicker since the last time I did it, but I'm still down on myself for procrastinating past the point where I could have renewed by mail.
It looks like we'll have a second tenant, so we'll be getting a little more rent. Because of initial clustering, she'll be referred to as C''. Our current tenant is C'. (I've picked up that notation from Haskell, in which "'" (pronounced "prime") is considered a letter. Haskell gets it from math, of course, but it's gone out of fashion in CS because programming languages are always hungry for quotation methods.)
I finally ordered one of the newest Thinkpad (KU-1255) keyboards -- it's still good. In some ways, slightly better than my older and much-beloved XK-8855s -- the one I'm using at work has developed a flaky space bar. (Too many aliens hanging out in it, presumably.) I like the fact that it has the page-up and page-down keys in the empty spaces above the left and right keys. Not only does that make the best use of available space, but it means that if I shove the keyboard under the monitor stand to protect it from cats, I can still navigate effectively in the browser. I don't like that the function keys are smaller and require a "FnLk" keystroke, and that it has a stupid micro-usb cable instead of one built-in with a compartment on the bottom you can curl it up in.
Otherwise, not too much to report. Some links on depression, though as I note on Monday, five of the ten symptoms of major depression start with the word "change", which is kind of useless when you can't remember a time when you've been that way for as long as you can remember. (You have to have 5 to be diagnosed as having it.)
awesome-awesome: A curated list of awesome curated lists of many topics is indeed awesome. So is Make a Lisp, which is a collection of Lisp implementations in dozens of different programming languages. The idea of implementing Lisp in make makes (recursion intended) my head hurt. In a good way -- I love GNU make.( Notes & links, as usual )
Ok, better late than next week? Anyway, today I'm grateful for...
- Revised schedules. Still dicey, IMO, but at least it's possible.
- Not being the only one responsible for the schedule slip.
- Our tenant. Rent is not to be sneezed at.
- Ubuntu laptops with SSDs
- Thinkpad keyboards. (Just got a new one. The one I'm using at work has developed a flaky space bar. Maybe too many aliens hanging out in it?)
Back to work after a nice but too-short staycation. I got a little over half of my list done, and a few more started; that's about what I expected. (The actual list is in the notes, between Sunday and Monday.) I also spent all day Saturday (see last week) reconfiguring my household server after some hard drive corruption. So Nova has been switched from Debian to Ubuntu, and is being used as both the file server and my main workstation. Which has some advantages.
The vacation definitely reduced my stress level, though I think I'm still way behind on things at work. That wasn't helped by my swapping my secondary oncall, originally scheduled for the second week in October. However, I found the memory leak that's been blocking one of our deployments for weeks, so I'm feeling fairly pleased with that.
The charging port on Colleen's tablet finally got to the point where no cable in the house was making good enough contact to reliably charge it; I ordered a new part and some tools. Then ordered more tools, because the kit I ordered didn't include decent spudgers. (I love that word!)
I'm still spending too much time on Quora. Their user interface continues to suck, though, and I gave up on cross-posting to Facebook because they insist on posting an irrelevant image with a picture of the first few words of the question, instead of actual text. Still cross-posting to Twitter, and getting a little feedback there, but I don't actually read Twitter so I don't much care what it looks like. I put links here in the notes when I write something I'm reasonably pleased with.
In spite of my expertise in programming, I find myself mostly answering dating and relationship questions. I figure that 40-odd years of marriage at least indicates some familiarity with the subject, and in most cases the answers are pretty obvious. "How do I know whether X likes me?" "You ask them." "What should I do after she (always she -- funny thing aout that) rejected me?" "Leave her alone and go look for somebody else." I also do it because many of the other answers I see are not only clueless but amount to recommending harassment.
I think the real reason I do it is that it counteracts my near-total lack of self-confidence in my social skills. Not that I can actually apply those "skills" in the field, of course. Not that I take my own advice and, um, practice. Oh. Right.
This post covers most of my week-long vacation, so while it's not quite time for a wrap-up of my goals, I can say that I met about half of them. Which was about what I expected.
The big accomplishment for the week, without a doubt, was posting my one-line Linux setup/configuration package up on GitHub. (I then spent much of the rest of the week debugging and tweaking, but that's also to be expected.) It's called Honu, after the Hawaiian name for the green sea turtle, because a turtle carries its home around with it. The README starts off with this quote from my song, Windward, because I just couldn't resist:
Where the wind takes us next year no turtle can tell
But we'll still be at home, come high water or hell,
Because home is wherever you carry your shell.
The implied puns on $HOME and sh(1) are, of course, entirely intentional.
Honu is meant to be fairly general; it's expected that any user -- including me! -- is going to want to customize the heck out of it. To that end, there's a sample customization package, also on GitHub, called Myrtle. Of course. (My own customization package, which you will not find on GitHub, is called Mathilda, after LookingGlass Folk's name for the narrator of "Windward".)
It hasn't been all roses and rainbows, however. I've spent an inordinate amount of time coping with the bindweed (morning glory's evil twin) that has overgrown the walkway along the south side of the house, sorting a year or two's worth of mail, and recovering from last week's disk crash on the server. I've been doing quite a lot of writing, though a lot of that has been on Quora, so I'm not sure whether that counts toward my daily writing goal, or away from it.
I'll say one thing for Quora, though -- it makes me appreciate my own knowledge and social skills. Being able to answer questions is a real boost to my self-confidence in both those areas. Who knew?
Psychologically, well, ... mixed. I've definitely been less stressed out the last two days of the week than the first two -- I was able to handle a trip downtown that turned out to be a total write-off, due to things being closed/not where I expected, quite calmly and even with a little wry humor. The check from last week's stock sale arrived on Tuesday, which helped. On the other hand, it still apparently doesn't take much frustration to put me back over the edge.
I was a total wreck on Sunday. I seem to handle stress a lot better when I'm by myself. With Colleen around, especially, I get into a horrible feedback loop. By the time I got home I could probably have used an Ativan, but my prescription on those has long since expired. I settled for reading and gin. Low blood sugar may have contributed; I'm not sure I can tell the difference between anxiety and hunger. Alexithymia in action.
I am not ready to go back to work tomorrow. I may never be ready. I'll do it, but it won't be pretty. ( Notes & links, as usual )
So it's Friday already. Today I am thankful for
- A week's vacation. I needed it. It's not long enough.
- The check I was expecting and worrying about, arriving in Tuesday's mail. (I would have saved myself a lot of anxiety if I'd had enough cope to set up an electronic transfer.)
- Getting things done.
NO thanks to
- offices that aren't where you expect them to be, and close early
- stuff that piles up because of procrastination
If yesterday is going to be typical of this vacation (I'm taking all of the coming week off), I'm going to need a month or two of work to recover from it. Not fun.
Friday Nova, my main server, developed a corrupted root partition. I've been keeping an eye on that drive for a while, and had a replacement on hand, so I set up a transfer of the home and data partitions and went to bed. So far, so good.
Yesterday was another matter entirely. Installing a new copy of Debian should only have taken an hour or so. Hah! Instead, I was plagued by a long series of problems, which took me pretty much the entire day to finally analyze. These included:
- A corrupted download of the Debian installer. It appeared to work ok, but the keys on the right-hand side of the keyboard kept generating the wrong characters! WTF?
- Apparently the idiot Intel motherboard I used for my server won't let you change the boot order of your hard disks (despite having a BIOS option that claims to do exactly that), and it considers a USB key to be a hard disk. So if you have a hard drive that doesn't already have a bootable OS on it, it will keep the damned thing from booting.
- Snowflake, the box I've been using for a desktop apparently has a similar problem.
I eventually ended up using the only other working spare system, Trantor, to install Ubuntu. I then swapped the disk into the former Snowflake, which is significantly faster and quieter than either Trantor or the Atom board I'd been using for Nova, so that's a win. I also decided, since I now had Ubuntu on Nova, and it was the fastest machine I had, that I would use it as my desktop as well as my fileserver. There are some potential problems with that, but I have to admit that it's convenient.
It will probably take me a while to get everything on (Novo) Nova configured -- I still need to start doing backups, for example, and don't have a web server up yet -- but at least I have DNS and my main file store up and running. But there was a lot of frustration involved.
The frustration made me more susceptible to other sources of stress, so sure enough, that happened too. Kat and Rabbit are in the process of moving out into their own apartment (finally!), so they brought movers in to handle the bed, the futon, and some other large furniture. Which meant taking the seats off the stairlifts.
And, of course, Colleen woke up and walked down the first flight of stairs before calling for help. I hastily put the seat back on the lower lift, and told Colleen (not exactly calmly -- I was pretty stressed at that point) that she should have gone back to the room, sat down, and called for help.
Then the lower lift wouldn't go back up to its charging position. It was already pretty badly damaged from previous moving attempts; it turned out that the limit switch that detects whether the seat is turned properly had finally broken to the point of unusability. Its little cam follower had been crumpled up from previous clumsy seat replacements. There ensued a frantic search for my multimeter (and a hasty battery replacement) so that I could identify the normally-closed contacts on the switch and move the connectors to them.
At that point I went back to my struggles with the computers. Just as I was getting things pretty stable there, Colleen went up to bed. Or tried to: the bottom lift didn't want to go up. Again. More swearing. More switches to reconnect. A quick trip to Google to look up error code E6, which turned out to be the bottom limit switch. Which hadn't given us any trouble up to that point.
... by that time I was a complete wreck. My stress level was not helped by being worried sick -- literally, by that point -- about the fact that the check from my stock sale still hasn't showed up. And berating myself about not being persistent enough to figure out from Morgan Stanley's miserable website how to do a direct transfer.
The one good thing about all this is that I tend to wake up around 4:30 when I'm stressed. When I feel as though I don't have enough time to get everything done, it helps.
It's been a long month. September is fired. ( Notes & links, as usual )
Today I'm thankful for:
- Our new tenant, who is only here for about a month, but extra income is useful even when it's temporary.
- My daughter and partner moving out this weekend. I mean, I love her, but... It will be good to have a little more space, and it will help a lot with the food budget.
- A long weekend, and a week's vacation after that.
Moderately productive. Two "publishing events".
- Sex and the Single Link is up on my "formal" website, Stephen.Savitzky.net. This is, despite the clickbait title, an article about the joy of singly-linked lists.
- MakeStuff is up on GitHub. This the first of several projects I intend to put up there; it's the collection of makefiles and scripts that powers all my websites. You can see it in action here.
Apart from that, and a bunch of Quora answers, not a whole lot going on. One my Quora answers led to a good discussion on the comment thread. Fairly prodctive at work, though as usual not quite as much as I wanted to be.
One particularly interesting article for the programmers in the audience, Developer Differences: Makers vs Menders, which seems to describe me fairly well.
Also of note, the first episode of the Lesbian Historic Motif Project Podcast: Ordinary Women by Heather Rose Jones (hrj on LJ) is up.( Notes & links, as usual )
Moderately productive this week. And I've been doing quite a lot of writing, mostly on Quora. Which is seriously addictive. One of the reasons I like it, I think, is that it demonstrates to me that I know more about people and relationships than I give myself credit for. It also inspired me to get started on the article about singly-linked lists that I've been meaning to write for months. (The draft can be found here, but be advised that it's only about half finished. Look again on Tuesday or thereabouts, or wait for me to post it here.)
That raises a question: If it ends up being long (currently at a little over 1000 words), do you have a preference for long posts under cut tags, or shorter installments without cuts? What's a good length for installments? (For comparison, my current weekly posts seem to be running 250-500 words before the cut, and I haven't heard any complaints.)
I'm not even going to try posting my Quora answers here or on Facebook; I am cross-posting most of them to Twitter (@ssavitzky) -- the bandwidth there is so high that nobody is likely to feel as though I'm spamming their feed. I do link a few of the more interesting answers in the notes, so you can see for yourself.
Anyway... Moderately productive at work, though meetings have eaten up a lot more time than I allowed for. Only a couple of overloads at home. Blood pressure higher than I like, but my doctor isnt worried yet. More in the notes.( Notes & links, as usual )
Not a bad week, but not very productive, either. Tuesday was a write-off, and Monday, Wednesday, and Thursday weren't much better. I've been making myself sick with worry about Ticia for some time now, because the way her abdomen looks reminded me too much of the way Curio looked when he was dying of FIP. Well, after missing Ticia's appointment on Tuesday due to traffic, I finally got her seen on Thursday -- nothing to worry about: what's distending her tummy turns out to be simply fat. So relieved.
I actually got some work done on Friday. I also had some good experiences on the bus, in both directions. Good conversation on the way home, and I got some nice smiles from people I helped with the fold-up seats in the handicapped section. Apparently not being consumed by worry makes me more easygoing in social situations. Who knew?
(Most people apparently know things like that. It's not a direction my mind usually goes. I am gradually developing more self-awareness in that direction, but it takes work -- it's not one of the things I'm good at.)
I have been learning about self-compassion, at my therapist's suggestion and following some timely links from ysabetwordsmith. Apparently it's better for one than self-esteem, which is a good thing, because I don't have a whole lot of that. Nor self-confidence. Self-compassion doesn't really help at all with that, but it makes it easier to live with.
My therapist also spoke to me Tuesday about setting boundaries. That's
another thing I seem to be bad at. It gets complicated, though, because
telling people "no" feels too much like being unkind and antisocial, and
both of those are things I have to actively work at not being. I
have my best experiences in social situations when I'm being more open
(see above) rather than hiding behind a wall. Or a book, phone, or
computer, which are even more effective things to hide behind. How the
ordinary humans balance those things, anyway?
(I'm not all that great at human, either. Let alone adult. (Both "human" and "adult" are being used as verbs there. Deal. (Why, yes; I've been coding in Lisp since 1970. Why do you ask?))) Oddly enough, this doesn't prevent me from answering questions about relationships on Quora. Them as can't do, teach? In my more self-confident moments, I try to remind myself that somebody who's been contentedly married for forty-odd years to the same woman may actually have learned a few things here and there.
*sigh* It really all comes down to self-confidence, doesn't it? I'm not even confident about my programming ability anymore -- too many recent bad estimates and missed targets. I'm hanging on by my fingernails.( Notes & links, as usual )
So, a day late again. And much more than a dollar short, for that matter. But anyway. I'm grateful for:
- The fact that my cat, Ticia, appears to be healthy. A little overweight -- what I was afraid might be fluid in her abdomen turns out to be fat. Finding this out was expensive, but it was well worth it: Curio had had that same symptom, and...
- Ticia. I am glad to be one of her favored worshippers. (Though, for a goddess, she's pretty easygoing. Unlike Desti, who plays the role to the hilt.)
- Compassion. I am learning about self-compassion, which is apparently a thing, and supposedly works better than self-esteem. This remains to be seen. I'm not very good at it. Oh. Right.
- Electronic sphygmomanometers. My doctor has me watching my blood pressure carefully after taking me off my diuretic because it appeared to have been affecting my kidney function. Some instability earlier in the week, but it seems to have settled down now.
- Along those lines, not having postural hypotension nearly as often.
I've already posted about last Sunday's medical adventure, so I won't go into that except to say that the exercises N gave me seem to be helping -- I don't seem to have much pain in my right hand beyond the usual arthritis. It has, however, taken all of the last week to get to that point.
Since the pain was most likely due to my working position, I've put in for an ergonomic evaluation at work. I need to lower my desk at home, too, by about three inches. A leg length of 25 inches should do it. Not looking forward to that, since it will mean taking everything off the top. Fortunately it's possible -- the desk is nothing but a sheet of plywood sitting on a filing cabinet at one end and a pair of 2x2s at the other.
Come to think of it, cleaning off the top of my desk is probably a good thing to do every couple of years.
Tuesday or Wednesday I saw a woman on the bus wearing a T-shirt that read "Open Source and Feelings", and had a bit of a conversation (should have spoken up earlier, because she got off at the first stop downtown). Turns out it's a conference -- I'll try to remember to go next year. The videos from last year are up, and I spent most of Saturday watching them.
A lot of the videos are about empathy, which I'm interested in and I'm told I'm good at (cf. A Talk With the Middle-Sized Bear) in spite of my alexithymia. I realized that my hanging out in a facebook group for people who've lost their cat to FIP is probably good exercise for that particular skill.
I also realized that I could be considered a member of a category -- I hesitate to call it a minority -- that's underrepresented in the tech industry: old people. Whether that insight can be turned into something useful is, at this point, an open question. A quick Google search turned up a lot of links about teaching seniors how to use these scary things called computers -- what used to be called "computer literacy" and maybe still is. I didn't see much about the people like me, who have been working with the things for the last half-century. One of the talks from last year's OSFeels was titled "Back in My Day..." -- by a fifty-year-old. Sheesh! I was working at Zilog making the stuff he talked about using as a kid.
Saw a question go by on Quora to the effect of "what should a fifty-year-old programmer do?" My answer was basically "keep writing programs." Now that I think of it, there's probably a reason why so many of the questions asked there sound naive to me.( Notes & links, as usual )
So, in the interest of raising my word count for the day, have a post.
Please note: this post describes a medical situation that turned out not to be the emergency I thought it might have been; I'm ok and, as it turns out, was never in any danger. However, if you have problems reading about medical emergencies, scary symptoms, hospitals, or needles you will probably be best off with the cut text.( tl;dr: I'm ok. Nothing to worry about. )
Lab work, EKGs, and X-rays all looking perfectly normal, around 3:30 am they gave me my discharge paperwork, and I called G for a ride home. He was sleepy; N came instead. Have I mentioned recently how awesome my sister is? She's awesome.
Note that at this point most of the pain had gone away, but there was still a little achiness around my right shoulder, and the second joint of my right index finger was still almost as painful as it had been at the start. It still is, over 12 hours later.
On the way home N, who is a professional massage therapist, said that it sounded like a pinched nerve was the most likely explanation. Specifically, something called thoracic outlet syndrome. Which is sort of like carpal tunnel syndrome, only between your collarbone and your first rib.
When we got home, I put a sick day on my work calendar -- if I go to the ER in the middle of the night I've damned well earned a sick day no matter how much better I feel in the morning.
So here's what Wikipedia says about it: "Pain can be present on an intermittent or permanent basis. It can be sharp/stabbing, burning, or aching. TOS can involve only part of the hand (as in the 4th and 5th finger only), all of the hand, or [...] the pectoral area below the clavicle, [...] and the upper back (i.e., the trapezius and rhomboid area)." Um... right. What they said.
"The two groups of people most likely to develop TOS are [...] and those who use computers in non-ergonomic postures for extended periods of time. TOS is frequently a repetitive stress injury (RSI) caused by certain types of work environments." ... and I noticed, as I sat there at my desk with my right hand on the trackball, that my right shoulder was uncomfortably higher than my left one.
My desk at home, which consists of a sheet of plywood resting on a 2-drawer filing cabinet and a couple of 2x2 legs, is about 3" (7.5cm) higher than it needs to be. That would probably do it.
... so it looks like I need to take everything off my (cluttered) desk, disassemble the thing, make shorter legs for it, and put everything back. Grumble.
Fairly productive at work this week, though I lost Friday to an all-day training session. (I made up some of that yesterday in between lab work and my doctor's appointment. Went in early because the appointment wasn't until 1:40, and I wanted to be able to have my coffee before noon.) I appear to be in pretty good health; my blood pressure was 129/75; which is decent.
The training Friday was a workshop on Scrum. Tl;dr: we've been doing it wrong. Which is not unusual. My impression has always been that it works best for things that can be built incrementally -- the idea is to break things down into "features" (corresponding to "user stories") that can be built in one sprint -- typically two weeks -- and end up done, in production, and demonstrated to the customer at the end of that. The theory is that the team gets more and more familiar with their product and their process, so they get better at estimating. And there's an expectation that developers are mostly fungible -- anyone can pick up any of the tasks and finish it in a couple of days. (Specialists like QA, tech writer (we should be so lucky!), and maybe a web developer, don't count.)
So let's look at the project I'm currently on: We have four developers. One is building a new service, one is working on the web front end (and just came on board), and two are working in different, pre-existing services that they've never worked on before. The work being done in the latter case is such that a sizeable number of pieces have to be in place in order for anything to work. Meanwhile, other teams are working on other parts of the same services, with somewhat different requirements. Theoretically, each of the three main developers could work on any of the tasks, but in practice there's a lot of context in each of those sub-projects that it would take a long time for anyone else to ramp up on.
It doesn't help that the manager and web developer are in Vancouver, and that most of the design was done almost a year before the work started, under a different manager, by three developers one of whom got pulled off to work on a totally unrelated project. This leaves only two of us with any real context.
On the other hand, I've been having fun with configuration files and
makefiles. The latest hack was adding color-coded labels to the
workspaces in my xmonad setup. You say "
ws 2 to.do", for
example, and you get a color-coded label at the top of the screen in
workspace 2. The labels use standard resistor color codes, and include a
clock (because the quick thing was to base them on xclock). Here. (Need to get
this onto github soon.)
Writing: met my minimum goal of 500 words two days a week, but just barely. Both were in PJ (short for Private Journal), so not on DW or the website where you can see them. Sorry about that.( Notes & links, as usual )
After last week on call, almost anything was bound to be an improvement. But my oncall ended at 11am Monday; Sunday night and Monday morning managed to cram in nearly as many pages as any two-day period the preceeding week. By Monday at 11 I was a total wreck. (While I was deep in work on one or two other tickets, the two daytime SEV2's timed out and paged me at 10:30. At which point $BOSS came by. I was almost totally nonverbal at that point - it was all I could do to get out a couple of words to indicate that I was working on it.)
Monday afternoon was predictably unproductive. Since I had two medical appointments on Tuesday I had already planned on taking the day as vacation. I needed it. I was still pretty stressed on Wednesday; almost anything could trigger an immediate adrenaline reaction, and I was snappish and probably no fun at all to be around.
Thank the gods for gin, hot baths, and cats.
It took me all day Wednesday and most of Thursday to get my commits from the week before rebased on top of the stuff S had pushed in the mean time. I finally did make some actual forward progress on Friday, and finally got the workflow to go through the final stage that it had been hanging up on before. (Intentionally vague and generic, I know.)
Even with (and to some extent because of) ten workspaces and who knows how many browser tabs, I still wasn't able to keep things organized. I kept forgetting which tickets went where and what I had done on them, and found several of them open in multiple places. No surprise there.
Have I mentioned dishes? We have dishes. Yesterday around dinner time the kids (Kat and Alex, not g and j) brought down roughly a full dishwasher load from their room. I did one load last night, put one in this morning, and there will be at least another by nightfall.
I finally brought up the rack that I'd had the dishes stacked on in the Starport, and rearranged the shelving to put the corelle conveniently on the lower shelf. I'm tempted to put most of the blue dishes away where they won't get used; one of the problems seems to be that nobody (else) notices that dishes have to be done until they can't find a clean one.
I think I cooked three or four meals this week.
Writing and music. Um... (Posted by accident before I could fill in this part. TL;DR no music to speak of -- ripping CDs doesn't count. Broke 1000 words of writing, so technically met the 500-words-twice-a-week goal, but spread over three days. I'll take it anyway.)( Notes & links, as usual )
The only writing I did last week was last Sunday's weekly post. I'll try to do better; hopefully I won't be feeling as harried this week. I did get in some music time -- last Sunday, and yesterday. And some walking with Colleen and Kat, also on Sunday.
Quite a bit of back pain. It's been mostly ok in the morning, but tends to get worse on the way home. Probably something to do with being tired, but also possibly stress. Have I mentioned having trouble identifying my mental state? It's called alexithymia.
The alexithymia also bleeds into problems identifying physical state, because of course they're related. I have trouble distinguishing the physical symptoms of anxiety and hunger, for example. Not to mention distinguishing between wanting food, and needing food. The latter barely registers, and certainly not as hunger, until I suddenly start feeling the symptoms of low blood sugar. Which I have learned to recognize. Or until Colleen notices that I'm starting to snap at people.
Stress is, apparently, another of those states that I don't start noticing until it's been going on too long. And then it bleeds into burnout and depression. (And, no, depression doesn't register as sadness. At all. It's best described as a combination of apathy and despair.) I think I'm noticing a trend here.
I'm getting better at noticing. Look in the notes for an exclamation mark in column 3 -- that means I've actually noticed an emotion while it was happening. They're rare -- the only instance this last week was Sunday.
Speaking of stress, I'm oncall this week. With pages including 6am Tuesday morning -- Prime Day -- and midnight last night. This morning. Whatever. One thing I've noticed is that I don't have enough mental bandwidth. I can't multitask. At all. Period. Things get lost track of.
If a page comes in, I completely lose track of whatever I was doing, including dealing with another page, and it takes me a while to get my context back. Which leads to things like having something like 10 different browser windows open in 8 workspaces, with multiple tabs in each, many of which refer to the same tickets. Because context. And, of course, re-investigating the same thing multiple times because I've forgotten what I was doing an hour ago.
I'm getting a little better at going up to people I don't know and asking for help. But, of course, I'm even worse at remembering names than I am at multitasking, which leads to things like waking the wrong person up at six in the morning. (And forgetting that I had an email in my inbox telling me who the right person would have been. See multitasking.)
(Brief pause -- my desk is being catted on. The absolute best thing I've done for my mental health in years was putting a cardboard box on my desk, attaching it with a couple of screws, and lining it with a towel.)
Back to reaching out and talking to people. I don't think my reluctance to do that has anything to do with what I afraid people will think of me. So, this doesn't seem to have the characteristcs of social anxiety. No, it has more to do with what I think of me, and in particular feeling stupid and at a loss for what to do. Plus total lack of self-confidence, which leads to (or somehow relates to) an unwillingness to "disturb" people.
It's not just at work. Even at home, I take a closed door as a "do not disturb" sign even when I'm pretty certain that the person on the other side (usually N) would be happy to see me. It's hard enough when I know they're expecting me, though I'm getting a little better about that.
In a slightly different direction, some links from ysabetwordsmith about emotional self-care (see Monday, below) proved unexpectedly triggery and anxiety-provoking. So we're talking low self-esteem here, maybe. (Maybe?! Let's get real here.)
It's been a long month this week.( Notes & links, as usual )
Almost no writing this week, even counting LJ posts; I have, however, been spending time catching up with home software/ops-related tasks, so I'm going to count that as writing time, if not word count. A little more productive at work than two weeks ago, although I wasted a lot of time getting back to where I had been before a rebase.
Apart from that, though, things are going better at work than I expected them to. I'm getting things done at home, too -- notably, working with Glenn to bring Naomi's enormous new chair downstairs. Tight fit, but we did it. (It's either a huge chair or a smallish loveseat. Either way, it's gorgeous but at 32" just barely fit through the doors.)
Went out for sushi with Colleen, Rabbit, and Chaos, in honor of Chaos's 31st birthday. I'm too young to have a daughter in her thirties, right? Oh. Right.
The high point of the week, though, was going to the West Seattle Summerfest yesterday with Colleen and Naomi. Glenn on the way there, though he left early. Rather than try to load everyone into the van, hassle with parking, and load and unload the scooter, I simply made sure both scooters' batteries were charged, and we st/rolled. Fun.
There was a tiny house on display, from Seattle Tiny Homes -- the bathroom was awesome, with a walk-in tub, washer, and wall-mounted dryer. All in about 5x8 feet. We'll definitely be working with those people. Also with the solar power people. And in the more immediate future, Naomi found a builder that we might use for the basement water-damage repair.
We also bought some fun art prints. And Naomi insisted that I buy a hat, which she said fits me the way my leather jacket does; I can't say she's wrong about that. It's the 8-section style in tweed, but every section is a subtly different color and weave. Kind of awesome, actually.
I told N on the way back that it was the most fun I'd had in a long time; she said that was good, but it's unfortunate that I haven't been having more fun lately. Not sure what to do about that. I procrastinate, so I have a strong tendency to prioritize the more important things I'm not doing over the fun things I'm not doing. And figuring out what "fun" means is another problem -- I also have a tendency to dread doing things, especially new things, but to enjoy them after I get pushed into doing them. I think yesterday's expedition might have been an exception.
Westercon was not an exception -- I hadn't really expected to go, and expected it to be stressful. I enjoyed giving my concert, but hadn't expected to be doing that, either -- I only found out about it after I'd committed to going.( Notes & links, as usual )
It's no longer Thursday. I am thankful for
- Continuing employment.
- Not being completely disabled by burnout.
- xmonad, which is probably a lot of why I'm surviving work.
- Westercon, and a concert slot I wasn't expecting.
- ... and a chance to catch up with friends I see far too seldom.
- ... and the fact that Portland is only three hours' drive from home.
- My wife's cooking. And the fact that my wife's cooking (again).
So, last weekend was Westercon. It was the first we'd been to for a while -- Portland is close enough to drive to in less than 3 hours, so we were able to do it without my having to take any time off.
My concert Saturday evening went ok: Bigger on the Inside, The Stuff that Dreams are Made Of, Millennium's Dawn, Riverheart, The Toolmakers, The Bears (A Talk With the Middle-Sized Bear, A Tribute to the Middle-Aged Bear), The Travelers (Where the Heart Is, Windward), Rambling Silver Rose, QV, Ship of Stone.
There were a couple of flubs, but nothing serious -- not bad for next to no prep, but I'll have to get more serious about practicing. I had taken Plink, the little Vagabond travel guitar; that was almost certainly the right choice. Though I think the battery was dead; we ended up micing it for the concert, which got me off to a bit of a late start. Putting my phone, in clock mode, on the music stand turned out to work very well.
I didn't go to any panels -- just hung out in the filk room or the lobby with my laptop. (I'd also brought my work laptop, but never used it.) As usual, I enjoyed it more than I expected to beforehand: I've learned the hard way that it's better -- and I'm less likely -- to regret having done something than to regret not having done it. (Does that construction make sense? Probably, though it's less clear than I'd like.)
Great conversations over dinner with alatefeline on Saturday (or was that Sunday lunch?), and Roy and Joan Sunday. On the whole a good, fairly relaxed con.( Notes & links, as usual )
I am actually breaking at Friday evening, one day over the month boundary, so as to group all the practicing together here, and the con and concert in the next entry.
So, yeah; this week's big surprise was finding out Thursday morning that I had a concert coming up Saturday evening. I hadn't asked for one, but apparently Colleen did. Um... thanks, I think. (Spoiler -- it actually went surprisingly well, though not quite as well as the run-throughs. Nervous.)
I hadn't asked for a concert or answered my participant questionaire because up until two weeks before the con I was still waffling about whether or not to go. I knew it would be stressful, and I knew it would be fairly expensive (though driving, skipping Friday, and coming back Monday instead of Tuesday helped a great deal). I also knew I'd regret it if I didn't go. On the whole I'm glad I went (especially since I got to meet alatefeline). But I'm exhausted. I must be more introverted than I was even a few years ago.
Made Boeuf Bourguignon on Sunday -- came out quite well, though I think not quite as well as the Stroganoff the night before. I made a stupid mistake with the pepper, but managed to skim off most of it and didn't get anyt complaints. I have not, unfortunately, been keeping up very well with the dishes.
While on the subject of food; Monday around 12:30 I noticed that my blood sugar was getting low. It didn't feel like what I usually label as hunger, i.e. wanting food. Something is definitely miswired there. If there's food around and I'm not deeply engrossed in something, I'll want to eat it. If I'm in a flow state, which I was a couple of times this week (Yay!), I won't notice food, and will eventually run out of energy. The situation is probably not helped by the amount of coffee I drink.
Friday some idiot came within inches of getting herself killed when she started ambling across the street against the light, with her nose in her phone, and in front of the bus I was riding to work in. (It's not exactly a street -- it's a bypass lane on the left-hand side of 4th Avenue. To get to the island where one can board the bus, one has to cross that lane. But, still...) That's one of the reasons I don't try to read -- or text -- while I'm walking.
Only a little writing -- just one day with over 500 words. But two solid practice sessions, so that's good. Put up shelves in N's closet -- that was good, too. I have to keep reminding myself to feel accomplished after that sort of thing. (Like last week, the only emotion I actually noticed while I was feeling it was despair. I'm altogether too good at that one.)
Close enough to 500 words -- I'm going to stick a fork in it.( Notes & links, as usual )
I didn't ask for a concert at Westercon this year, because up until about two weeks ago I wasn't sure I'd be able to affort to go. (It's marginal, but it's important enough in terms of keeping in touch that we decided to go anyway.) I also don't read my email very closely if I'm not expecting anything in particular.
So you can imagine my surprise when I took another look at the schedule and saw that I have a one-hour concert slot tomorrow (Saturday) at 6pm.
There may be a lot of old favorites in this one.
You may want to start with Part 1
Xmonad is a tiling window manager. That means that, with very few exceptions, it lays out all of the windows in your workspace so that they completely fill the screen. You can have multiple layouts, and flip between them with a single keystroke. You can bring a workspace (there are 9 by default, but you can add more) to your screen with a single keystroke, or send a window to a workspace.
And the whole thing is configured using a text file that is actually a program, written in the functional language Haskell. I'll get to that later.
One of my main gripes about Gnome, etc., and one of the things I miss the most about CTWM, is that when you first start a program its window shows up at some random location on the screen, with whatever size the program thinks is appropriate. If you don't like those choices you have to move and resize the window yourself, and then do it all over the next time you log in. (There are some exceptions -- many newer programs remember where you put them last, and older programs, from the CTWM era, can be given a starting geometry.)
Xmonad's layouts are all deterministic, which is to say, predictable. When you start a program, you know exactly where it's going to be on the screen. When you change the layout, you know where everything is going to go. If you want to move a window into the main position (most layouts have one; e.g. the left-hand column) it's (as usual) just one keystroke to put it there.
But the best thing, and the reason I switched to xmonad in the first place, is the way it treats multiple monitors: it simply assigns one workspace to each monitor.
Undock your laptop, and its screen stays exactly the same. The workspaces that were shown on the other screens simply go back into hiding with all the others, and are still only a keystroke away. When you have multiple screens, you can move a window to another screen, or bring a workspace to a screen, or warp the pointer to another screen, all with single keystrokes.
When you go to a conference room and plug in a projector, a workspace immediately shows up there and its layout automatically adjusts to the projector's resolution and aspect ratio. When you get a new computer -- all the developers at work got new laptops just a month or two ago -- just copy your configuration files to it and everything will be exactly the same as it was on the old one. (Sometime later I'll write about my portable configuration, which makes it possible for me to set up my entire working environment in mere minutes.)
So let's go a little deeper into those magic keystrokes. First of all, you have to know that all of the commands (you can't really call them shortcuts) include a key that xmonad calls "Mod" (short for "modifier", of course). Mod is initially defined as Alt, but the first thing any Emacs user is going to do is redefine it as something else, usually the "logo" key. (That's the one on the left between Ctrl and Alt that usually has a Windows logo on it. If your keyboard has replaceable keys you may be able to get a penguin for it.) On old laptops that don't have a logo key I use Ctrl-Alt, but that's a matter of taste.
You also probably want to know that Mod-? gets you a list of all the commands. And that there's a fantastic collection of tutorials, documentation, and sample configuration files at xmonad.org.
When xmonad starts up, you see a totally empty, black screen. Most people, myself included, add a status/navigation bar at the top, but you don't have to. I'll get to that later. You can start a program by typing Mod-P, or open a terminal window with Mod-Shift-Enter. You will immediately notice that the first window you open fills the screen. If you open another, xmonad will tile the screen with them, showing them side by side.
If you start a third program, it will get added to the right-hand column. You can probably see where this is going. When you move the mouse pointer into a window, it gets a thin red border to show you that it has "focus".
If you decide that you started things in the wrong order, move the pointer into the window you want to put in the left-hand column (the "master" column) and hit Mod-Enter. You close a window you're done with using Mod-Shift-C.
Here's where it gets interesting: Mod-Space will switch you to a new layout, with the master column turning into a master row, and all the other windows across the bottom. Hit Mod-Space again, and the currently-focused window goes full-screen. (I reconfigure my full-screen layout to put a row of tabs across the top. Wondering how to see the hidden windows? Mod-Tab moves focus to the next window in the stack. It also works in other layouts, so you don't need the mouse to move focus around. If you spend most of your time in a terminal and an editor like vim or emacs, you can throw your mouse away and still be productive. Mod-Shift-Tab moves focus to the previous window.
Mod-2 puts you into a second workspace. There are nine of them. (I add two more -- 0 and -.) If you want to move a window, say from workspace 2 to workspace 1, use Mod-Shift-1. That's kind of a recurring theme in xmonad -- Mod-something does one thing, and Mod-Shift-something does something related.
You can see that in action if you add an(other) monitor. Now, workspace 1 is in the left-hand screen, and 2 is in the right-hand screen. Think of the two of them as West and East.
Now, Mod-w will move the focus (and the mouse pointer) into the West screen, and Mod-e will move the focus into the East screen. Mod-1 through Mod-9 will bring that workspace into whatever screen has the focus. If the other workspace was already visible, they trade places. (Some people don't like that, so you can change it so that it just moves focus into the other screen if you select a workspace that's already visible.)
Add a third screen to the right of East, and call it Right. Now, Mod-r and Mod-Shift-R do exactly what you would expect. (There are no bindings for T, so I suppose that if you have space for a fourth screen you could use it for that.)
There are more key bindings, to move focus (Mod-j and Mod-k focus the next and previous window, respectively; shifted, they swap the focused window with the next or previous window), to shrink and enlarge the master area (Mod-h and Mod-l respectively), or increase or decrease the number of windows in the master area (Mod-Comma and Mod-Period respectively).
Not all that good a week. Continued lack of productivity at work, mainly because of meetings this time, but still... I want to take a vacation after Westercon, but I have goals that I can't meet if I do. Bletch.
I haven't done much writing, either. A reasonable amount on Monday, but only a little after that. Grump. Did do more cooking than usual: chicken tikka masala on Monday, and beef Stroganoff yesterday. That was a real win. Lots of shrooms. I note in passing that while Cash and Carry has great prices, it doesn't have a very big selection, and few if any small packages.
On the plus side, I did a pretty good job of noticing and identifying my mood Friday. On the minus side, the mood in question was despair. Cat therapy helps, but not completely.
A fair amount of computer-related work -- got my raspberry pi up and running, with both Raspbian and OSMC (on different cards). OSMC (Open Source Media Center) looks like it would work well as a music and video player. Being one of the original cards, it doesn't have much in the way of RAM, so it wouldn't work as a desktop with my current workload. I also swapped my desktop machine for one of the two that have been sitting behind my desk ever since we moved in.
Moderate amount of house-project work.( Notes & links, as usual )
It seems unlikely that I'll write 500 words today, unless I write something else immediately after finishing this post. But anyway, today I'm thankful for...
- Cat therapy. Just being around Ticia raises my mood more than just about anything else. Sometimes I'll just sink into her purr and drift contentedly.
- An excuse to go back through my river posts. Maybe my idea from a couple of years ago of collecting them into a book is still a good one. They have deteriorated considerably since I started my weekly "Done" posts -- they were actually daily when I started; they took over the mind-space and time that other writing was occupying.
- Colleen. How she manages to put up with me -- and why -- I will never know, but I'm glad she does.
- xmonad -- both for providing a great desktop environment, and for giving me something to write about. By extension, Haskell, the language it's written in.
- Writing. Even if I didn't get anywhere near 500 words tonight.
As I mentioned about a week ago, I've been trying to write more. And since my current obsession is a program called xmonad, well, ...
This is incomplete: it's about the first day's worth (I've been trying to write about 500 words per day). Comments and suggestions are, of course, welcome.
My new 27" monitors arrived at work; I took advantage of the change to rearrange my work space. Before, it was the set-up I've had for most of the last three years -- monitor in front on a stand, second monitor on the right, and my laptop on the left. The new laptop, however, has a decent keyboard (with trackpoint and three buttons), and the monitors between them occupy about 2/3 of the desk.
The new arrangement has the laptop dock under the "middle" monitor; the laptop, being a business-class Dell, has both a pointing stick and a middle "mouse" button. The laptop's keyboard is decent enough that it can replace the thinkpad keyboard I've been using for the last couple of years -- it's a high-end Dell, and has both a pointing stick and a middle button. (The middle button has part of the Unix desktop environment since the mid 1980s; it means "paste", and I use it all the time.) The monitors are about 50% bigger, pixel-wise, than the laptop, and are arranged "traditionally" with the laptop on the left.
You can probably see the problem with this arrangement. The total workspace is about 7000 pixels wide, and it's not even arranged in a straight line -- to get from the laptop to the "middle" monitor you have to move the cursor to the right, but the natural direction would be straight up. What's more, when you undock the laptop the whole thing collapses down to a "mere" 1920x1080. It's no wonder that most of the programmers in my team have opted for a single 30" monitor, and keep their laptop (almost invariably a mac) closed while they're using it.
Fortunately, I anticipated this problem months ago, and started using a window manager called xmonad.
One of the things I love most about Linux is the fact that the program that manages the layout of the screen and the behavior and appearance of the windows on it is not part of the operating system. It's a separate program, sensibly called a "window manager", and it runs in user space as a perfectly ordinary application that just happens to have a couple of extra hooks into X, which is the (also ordinary) program that actually controls the display, the keyboard, and the mouse.
Being an ordinary program -- and not even a terribly complicated one -- anybody can write one, and many people have. For a long time I was using one called TWM (Tabbed Window Manager, but the T originally stood for Tom's). Later I started using CTWM (Claude's Tabbed Window Manager), because it introduced the then unfamiliar notion of multiple workspaces. (Before CTWM, these could only be found in an experimental system at Xerox where they were called "rooms". Apple introduced them decades later, as part of MacOS X.)
You've probably heard of Gnome, KDE, and Ubuntu's horrible Unity desktop
environments. Down at the bottom, they're just window managers plus a
couple of utilities for doing things like putting up the familiar bar
(Gnome calls it a "panel") full of menus, launcher buttons, clocks and
other widgets. You can, in fact, run
gnome-panel under any
window manager, and I did for a while. They also include a "session
manager", which handles things like starting the panel and making sure
that applications get notified when you log out, so that they can save
their state and exit cleanly. I've been using Gnome for years, and loved
it for its configurability.
But Gnome's configurability comes with a cost -- every time you move to a new computer, you have to spend an hour clicking around in control panels and property windows to get everything set up the way you like it. And every time there's a major upgrade, something is a little different. It's a cost I no longer have to pay.
Unless the sound of silent thoughts carries up the Rainbow Bridge, I won't be saying "Happy Fathers' Day" to my Dad. He died a little over 17 years ago. He got me interested in computers, over 50 years ago -- I miss him every time I think "I'd love to call Dad and tell him about..."
Science fiction, and folk music -- he would have loved the filk community. He took me to trade shows and conventions back before they stopped allowing kids in; he would have enjoyed a filk convention. He would have loved my CD, Coffee, Computers, and Song!
Songs for Sunday:
- The Stuff that Dreams are Made Of -- I wrote this a couple of months before Dad died, and sang it for him on my last visit.
- Rainbow's Edge -- Mom had asked me to write a song to sing at Dad's memorial. I don't sing this one all that often.
- The World Inside the Crystal -- Dad was a programmer (when he wasn't being a chemist). I don't think he ever said so, but I'm pretty sure this was his favorite.
Not exactly the playlist I'd planned, but...
ETA: as I hoist my glass of gin I'm reminded of the way Dad made Tanqueray martinis: straight gin -- there's a bottle of vermouth somewhere in the house. For a slightly sweeter version, open the bottle.
Moderately productive week. Lots of computer configuration and upgrading work, which is always an easy way for me to feel like I've done something, even if it isn't all that useful. I have a new desktop computer, in a nice little Shuttle box, but haven't fully switched over to it yet. Because browser tabs, mostly. (I also got the raspberry pi booting, finally. Which mostly required looking at the installed card and noticing that, not only did it not have an OS installed, but it wasn't flagged as bootable. The Pi is one of the original 512Mb ones -- it's dog slow. Still, it has a lot of potential as either a media center or a special-purpose controller. I'm guessing that used, older pi's are dirt cheap on eBay.
My new monitors arrived at work; I took advantage of the opportunity to re-arrange my workspace (see notes for 0615We) -- and to get back into writing, with xmonad as my first topic. Xmonad really wins for this, because the physical arrangement of the monitors becomes almost irrelevant. By moving the laptop in front of me (because it has a usable keyboard for once) with the dock under the monitor, I not only freed up a sizeable amount of desk space but freed up my second thinkpad keyboard to come home with me. Win.
Last weekend also included a lot of cleanup work in the garage and the back yard -- the huge piles of junk and lumber have been hauled away. I really hated to lose the lumber, but it had been out in the rain for too long. I was, however, able to save most of the hardwood.
As indicated, I have been writing (see notes for 0614Tu). My goal is to write 500 words most days. (I missed yesterday because I was hacking on my journaling makefiles, which sort of counts in terms of time if not bytes.) This post is intended to hit today's word count, and, no, I'm not going to count the notes.
So that raises a question for you, my loyal readers. The article I'm writing on xmonad isn't done yet, but I do have two days worth of work on it. Should I post "episodes" as I go along? Maybe I should phrase that differently -- would anyone object if I did post what amount to partial rough drafts? Feedback would be useful. Because otherwise, that's what I'm going to do.
Some other ongoing projects will also be included in the word count, notably "Songs for Saturday" (or occasionally Sunday, if I'm being lazy) and the "River" posts. I will find or create a tag for the Linux-related stuff, like the aforementioned xmonad article, and probably "adventures in home computing" as well. Fiction is somewhat unlikely; I'm pretty bad at it, especially plotting. Metafiction and prose poems are a distinct possibility, though.
There. 500 words. Approximately, since
distinguish between actual content and markup. At some point I need to do
something about that, but I'm not going to worry about it right now.
I've gotten a lot done this week, at work but mostly at the house. We have a truck coming Wednesday to haul away the pile of junk that's been sitting in the back yard getting water-damaged since last year when we sorted through the stuff in the garage. This week I've been adding to it, and especially yesterday when I disassembled the pile of wood sitting on top of the old blue workbench. The latter, and most of the wood, were in sorry shape. It hurt a lot to see how bad they'd gotten. I did manage to save most of the hardwood and vertical-grain Douglas fir, so it wasn't a total loss, but close.
Well, we didn't really have room for the workbench, anyway.
I've also been through a couple of the boxes behind my desk. Including the one labeled "tiny computers". It seems that, over the years, I've spent an inordinate amount of money on small Linux-based devices that I mostly haven't taken the time to get working. There's a list in the notes, under 0611. And then there are the laptops (all but one of which have been recently upgraded to the latest Ubuntu, so that's good), the two Linux boxes in tower cases that are still perfectly functional, but I don't need them, the old Android tablets, ...
I've found other "treasures", too. I'm not sure nostalgia is good for me. Too many reminders of things I haven't done, or started but abandoned. It's easy to blame depression, and I do, but that doesn't make it any easier. Or less depressing.
I think it says something -- damned if I know what it says -- that while I noticed last Sunday that I had put in a good day's work and accomplished a lot, I didn't connect that fact with a feeling of accomplishment, or any other emotion. (If "accomplishment" even counts as an emotion. I think it does, but I'm not sure. That probably says something, too.)
Music note (see 0611 -- yesterday was busy, too): At the suggestion of the guy who sits next to me at work, I looked up the Demoscene and watched a couple of videos, and a documentary, on YouTube. Mind-blowing. Especially when you consider that, say, "Chaos Theory" by Conspiracy -- the whole thing, music and video -- was entirely generated by a 64K program in real time.
The demoscene reminds me a lot of the filk community, and it makes me want to see what could be done for World Inside the Crystal that way.( Notes & links, as usual )
Not a great week psychologically, on the whole. Frazzled. Burned out? Probably. Lots of random, depressed-sounding self-talk, and practically everything I see or think about reminds me of something I've done wrong. In most cases the mistakes are unfixable, with drastic consequences. Doomed? That's how it feels. Doomed. (Cue Imperial March from Star Wars: doom doom doom doomty doom doomty doom...)
On the other hand, I've gotten almost all of the household computers -- at least, the ones that aren't G's -- upgraded with Ubuntu 16.04. It's a fast, easy install even on modern machines with secure boot, and my bootstrap script for setting up Gnome flashback, xmonad, and the other stuff I rely on is working pretty well now. I've also resurrected Kat's Acer Aspire (which I dubbed "aspie" because, while it's brilliant, it has trouble communicating -- took me forever to find the key combination that brings up the boot menu). And Emmy's Dell, which I'd thought had a broken charging port, turned out to just need a real Dell charger. :P
G is a professional system administrator -- he can do his own upgrades.
I also bought a new washer for downstairs. It arrives Tuesday, which means that this weekend's project is clearing a path to the downstairs laundry room. Also, most likely, putting up shelves in the garage and the downstairs closet, and curtain rods on N's door.
Yesterday's amusement -- high point of the week, actually -- was Ticia waking me up and teaching me how to play fetch. Really -- she batted her crinkle ball off the bed, picked it up and brought it back, batted it off again, brought it back, ... By that time I was awake and had gotten the hint, so I tossed it for her to fetch. Did that a couple of times. She doesn't usually bring the ball back to me, so I suspect that she thinks she invented the game all by herself. And so she did.
See also, xkcd: My Friend Catherine.( Notes & links, as usual )
Kind of a rough week. My main accomplishments, such as they were, were a result of puttering around the house: finishing the third box of shredding from the garage, clearing out a couple of boxes from the cubhouse (and finding quite a lot of stuff that I'd been looking for), things like that. Progress at work, but not as much as I would have liked. Stress is not conducive to anything that requires concentration.
More stress than I would have liked, too, though things have gotten a lot better since Monday. I think I've managed to noodle on the guitar for at least a few minutes every day -- it seems to help.
QOTD: As affirmations go, "I have not yet failed" is probably never gonna compete with "All will be well and all will be well and all manner of things will be well" but some days it's the one that really resonates. -- Ursula Vernon. Maybe quote of the year.
Along the way I've upgraded a couple of laptops, and (I hope!) finished tweaking my xmonad window manager configuration. Most laptops in the house are now running Ubuntu 16.04; a few are still on 15.10. Upgrading laptops and tweaking config files isn't really productive, but it's somehow comforting and gives the illusion of productivity.( Notes & links, as usual )
Hmm. Interesting week. Mostly in the Chinese sense.
My boss seems to be somewhat more confident in my abilities than I am. It is not clear that this is entirely a good thing, especially if it tempts me to become complacent. But, yeah. Low self-esteem. I haz it.
I think I've managed to spend a few minutes noodling on the guitar every day this week. Mostly minor and suspended chords, but still. Music. It does tend to confirm that my mood is mostly minor and suspended.
My home hacking continues to be centered around xnomad. I've pretty much abandoned gnome at this point. Xmonad is blazingly fast, lightweight, works beautifully with a varying number of monitors, and seems to help me concentrate on the task at hand.
I've also upgraded a couple of netbooks to Ubuntu 16.04; not entirely successfully, but the one with hardware problems is the smaller of the of the Dell minis. The keyboard was crap when I started, and has not been helped by the fact that the hard drive is underneath it. Swapped the 16G SSD for a 100G hard drive pulled out of something a long time ago. That, and getting through a couple of boxes of shredding, has at least given me some sense of accomplishment.
The most "interesting" day was Friday, though, when I got home and it finally occurred to me to research burnout. Um... yeah. Nearly a perfect match for the problems I've been having at work over the last year, not to mention the depression, dysthymia, occasional sleep problems, and the fact that I lost ten pounds over the course of a month or so last year. (Not that I'm going to complain about that! But...)
I actually teared up reading, in Ten Questions for Meaningful Career Development, "2. Am I willing to believe that my efforts matter, at least to me?"
I think what I need to do, over the next year or so, is semi-retire. I can't afford to fully retire, and probably wouldn't want to for years. But something less stressful, maybe part time, ... yeah. The hard part will be finding it. There aren't really a whole lot of low-stress jobs for an ageing computer curmudgeon. If you spot one, let me know.( Notes & links, as usual )