Fast, good, cheap

Pick any two

It’s been a little over one year since I started blogging in earnest. I’ve been taking a look at the archives from last July to see what I was writing about back then. When I started, I think I gave myself a three hundred word target, just to get in the habit. Today, these posts routinely run two to three times that length, and with some posts in excess of fifteen hundred words. The content of those early posts were more focused; I had the habit of writing a post for every book or magazine that I read, but today these posts are mostly journal exercises for the most part.

My most popular posts have been on technical issues, two about a WordPress hack and an Windows server issue seems to drive most of the traffic here. My exploration into Facebook’s Prophet machine learning tools gets another trickle. I’ve yet to find a focus for this blog beyond whatever strikes my fancy for the day, and I’m content to continue with it as is, making small adjustments as necessary. However, they say that no one ever got where they wanted to go without a plan, so some critical fascimilie of a plan might have to come together at some point if I want this to be a part of a long-term career strategy.

For now, it serves enough for it to be a place where I practice my writing muscle. If I write, I am therefore a writer, so it goes, and every day that I write the better I get. I’m closing in on three hundred posts here, including ones older than a year old. (This count doesn’t consider the archival posts that are monthly roll-ups from the previous incarnation of my WP database.) I’m hoping that by the time I reach five hundred I’ll be even better. We’ll see if the traffic to this blog increases along with it. Time will tell.


The kids have been incredibly difficult this morning. We all got up pretty much at the same time, and I was unable to get much done till after they left for their grandmother’s house. Younger has been especially sensitive this morning, but both of the girls seem intent on making a sport out of disobeying me. I was unable to get either of them to do their studies this morning, and at one point I had them both taking timeouts in the kitchen, which they made into a game where they tried to laugh at each other while I made lunch. I shouldn’t be mad but I did lose my temper briefly from having to repeat myself whilst being ignored repeatedly. Hopefully they’ll be better behaved when they come back.


I’ll admit that part of the reason for the discord here in the house is due to a text I got from my WordPress client basically firing me from the project. When we had set out, I thought I had made perfectly clear that this was going to be done quickly. I believe my exact words were something to the effect of being on the cheap and good areas on the project triangle, and that if we needed to move to the fast that they should let me know. As we entered the third month of our engagement, they let it be known that they were frustrated with the pace, and that I had expressed some doubts about my ability to deliver the project. I had expressed some frustrations about the work that I had inherited. This was mostly due to the amicable arrangement that we had started out on.

I think one of the major mistakes I made taking on this project was not properly scoping it and setting expectations. Another WP developer in my area charges twelve hundred dollars for a basic, four or five page WP site, and this project involved a major redesign and restructuring of an existing site. Easily a six month project at the rates I was charging. That obviously wouldn’t have flown if I had proposed that at the beginning.

I did identify several aspects of the redesign that I wasn’t going to be able to deliver on my own, mainly image assets. I was having a hard time gathering stock photography to match what they were asking me for. When I made this clear to the client, and told them that delivering everything I felt needed to be done within the accelerated timeline was going to be difficult, they told me that they had other developer resources that we could bring in. I said by all means.

This hasn’t been going quite the way I hoped it would turn out. In anticipation, I wrote up a project summary, invited the outside dev to my Basecamp, where I had all of the project notes and tasks, and spent several sessions building out a backlog of things that needed to be done. I told the dev, a PHP and Laravel dev from Pakistan, that I needed their assistance with one particular task: setting up the MemberPress plugin for us.

It doesn’t seem that any of that has even been considered. When I got the text, to the effect that development would proceed from scratch due to the difficulty in determining what I had done, I checked logs for the staging site and saw that no one besides myself had even logged into it. So something else appears to be going on. I suspect that besides the English language barrier, the outside dev might be more of a Laravel developer than a WordPress one. And I find it highly ironic they’re starting from scratch, when I literally spent two months trying to figure out what the last dev did.

I’m trying to tread a fine line here given that this engagement is with someone I consider to be a friend. We had gotten into some heated discussions about this, and you know the old saw about mixing business with pleasure. Still, my friend is enough of a intrepid entrepreneur that I considered this a baby step into what should be the start of a mutually profitable enterprise for both of us. When they broached the subject of terminating the arrangement with me a few weeks ago, I was so held by a sense of honor that I basically volunteered to finish the work for free. That’s why this morning’s message stung so much.

I replied back with as much tact as was possible given the cortisone flowing. I told them that the outside dev hadn’t even given a cursory look at what I had done, and I asked that they take another look at the progress I had made in the past few days before they pulled the trigger on a redesign. Further, I said, even if they did insist on moving forward with a new project, I intended to continue my development on the staging site until I was satisfied that I had fulfilled my promise to deliver the redesign and the membership features by the end of next week.

This project has taught me a lot already, both about WordPress development, but aslo about managing client expectations. I have got to spend more time focusing on the business side of the relationship, and establish some formal contracts and work blueprints so that expectations are better managed up front. For now, I’ve got about twenty hours of work left in the month in which to deliver and salvage this project. Failure is not an option, and neither is ruining this friendship.

Every day is a gift

That’s why they call it the ‘present’.

I came down this morning and got halfway through my morning routine thinking it was Monday. I didn’t get up till after seven, which is later than I like. I asked the computer for the weather, and Alexa finished up with an “enjoy your weekend”. At first I thought it was bugged, but then it slowly dawned on me. The confusion didn’t break until I looked at my phone and saw that yes, indeed, it is Sunday. Now it’s like I’ve been given a whole day to get caught up on things.

It’s already hot outside, although it’s only in the seventies. It’s humid, and the forecast calls for a high of ninety-six. I usually cut the grass Sunday mornings before it gets too hot, and I’m already dreading it. I’ve got to run to the grocery store again today, despite spending over two hundred dollars at Harris Teeter yesterday, because I forgot my list. I will be going to Food Lion instead, sans children.

I don’t anticipate being too busy today. Keeping the kids busy is usually the most challenging part of my existence, that and keeping them from trashing the house. I do have a long backlog of things that I could do if I wanted, but the only thing urgent right now is getting dishwasher detergent.

After some consideration, I’ve decided that I need to replace the deck boards instead of flipping them over. Most of the existing screws are too far sunk into the boards to be backed out, and dealing with that seems like it will be more trouble than it is worth. New pressure treated boards are only going to cost us five hundred dollars, and I shouldn’t even have to cut many of them. I might wind up scheduling the rehab for the fall, so I’m not out there in the sweltering summer heat. The boards will hold up until October, I’m sure of it.

My cryptocurrency mining rig has been sitting silent for several weeks now. I’m conflicted as to what to do with it. The cards are almost three years old, and I might be able to sell them if I clean them up. I saved the original packaging just for this reason. I’m not really up for buying new ones though, as managing the mining operation is a bit of trouble right now and not really of the greatest interest to me. I have over a dozen coins that I’ve mined from it, and I don’t even have it setup so that I can access the wallets for them. Only a third of them are worth more than a couple hundred dollars, but even they don’t seem like they’re worth the trouble of selling at this point. Many of them are doing well, but it seems like we’re far from an alt season.

DeFi is a bit of an exception, my IDEX stake seems to be doing pretty well right now, the tokens have soared in value, but my pricing calculator is screwed up, so I’m not even sure exactly how much profit I’m looking at. I’ve decided that when it surpasses the current value of my car loan I’ll consider cashing out and paying that off. Right now, it’s only providing about thirty dollars in income, which isn’t bad considering I haven’t had to touch it in months. I actually don’t think I could if I wanted to. I think I lost the SSH keys to my AWS instance. Oops. Thankfully I can just move the tokens through my wallet if I need to.

In fact, maybe today I’ll just relax. I’m not even sure what that means, or if I entirely understand how to do that. Relaxing still involves a lot of work for me, usually a lot of cooking and cleaning at the minimum. I think I’ll go run to the store, come back and knock out the grass, and maybe spend the day reading and playing with the kids. Of course at some point I’ll likely open up my Trello board and decide that there’s something that I need to work on, but at least for now I can enjoy the possibility.

Evening pages

It’s almost ten at night, and I’d rather be relaxing, but I didn’t write this morning and I feel like it’s important to keep my streak going. The past twenty four hours have been really busy. I made a trip to the hardware store in preparation for my deck rebuild, and today was a flurry of activity to get the house ready for our dinner party, which just ended about an hour ago.

I did a full day of work yesterday, then went to several hardware stores. I stopped by Lowes to get the tools and supplies I had ordered to rehab the deck, and then had to stop by another store to get the top rails. I also picked up three eight foot two by twelves to make a raised bed for Missus’s new gardening hobby, and I almost made a big mistake by picking them up in the Honda CRV. The hatch on Missus’s crossover has no hooks to tie it down for hauling, which I should have remembered, so I tried tying it down with some twine I had brought. It was too thin, and I hadn’t even pulled out of the parking lot before it snapped and the hatch flew up. I tried again, looping three times over the hatch before taking off, driving home under the speed limit with my hazards on the entire way. Every time I went over a bump I feared that the twine would snap. I made it home without incident.

After I unloaded I cracked open the first bottles from initial batch of Mr. Beer home brew. It came out great. I spent the evening playing video games, as I’ve been doing the last couple Fridays: Between the Stars, Factorio, and I finally went and bought TS-1000, which is basically a computer assembly code simulator. At some point I figured out that season three of Dark was available on Netflix, and then all hope was lost. I wound up going to bed after two-thirty in the morning, having watched four episodes of the show, half of the final season.

I managed to sleep in past nine, managing to keep my cool even when the girls woke me up in the morning. I let Missus sleep in longer while I tidied up the kitchen and started putting a list of things we needed to do before we had our guests over. I scrubbed down the deck, tidied the yard and even wound up taking Younger to the grocery store to do some shopping. This last task was a huge tactical mistake. I wound up forgetting the grocery list in the car, and wound up spending some two hundred and thirty dollars while there.

Then our friends the G.s came over. We’d seen them once in the three years since they had moved to Key West, and we were glad that they have moved back. Elder and their oldest daughter had been friends since preschool, and we had a really great evening. The kids did the slip and slide while us parents drank beer and caught up, then we made pizza for the kids and I cooked some veggie burgers on my outdoor griddle. Then we let the kids watch a movie while we played a round of Catan. Missus won.

Everyone had a good time, and we can’t wait to have them back. Now the kids are asleep, and my fatigue is starting to set in. I think I’m going to wrap up here, go lay down in the bed with a book and turn in early. The kids will be up soon enough.

This Home Is Filled With Love

Just don’t mind all the yelling and crying

I seemed to have jinxed myself yest. erday. After remarking just how idyllic yesterday morning was, things quickly devolved into a battle of wills between Elder and myself that ruined the entire day.

One behavior that I’ve noticed in Elder is her propensity to make “trades” with her sister. She’s usually being manipulative, and often takes advantage of Younger, and this time was no different. I was working in my office downstairs, the girls were in the kitchen eating a snack, when Younger started crying out at her sister. Younger had picked a bag of mini-chocolate chip cookies, Elder Cheez-Its, and Elder had made a trade of four cookies for four Cheez-Its.

So that you might have more of an insight into the mind of my rising eight-year old, I might add that yesterday I caught her taking a bowl of trail mix, replete with M&M’s outside to eat. Since I didn’t want them all sharing from the same bowl, I went to call her back in, and found her reclining on our patio couch in the shade, Younger and the five-year old neighbor, E., rubbing her feet like she was in the spa. She was bribing them with the candy. Incredible!

Summoning my inner King Solomon, I broke out the food scale to weigh one of the cookies, explaining that one cookie was obviously worth more by weight than the Cheez-Its and calculated that Elder actually owed her sister somewhere between twelve and sixteen of her treat for the four cookies. This took about thrice as long as it should have, since Elder kept trying to interject and complain while I spoke. My patience shortened, but I managed to resolve the situation, and went back to work.

Elder has another stubborn habit she turns to when she gets in a stink of refusing to do something that I ask and then fighting with her sister to do it after I ask Younger to help me instead. And that’s what happened next. We were planning a trip to a nearby nature park in the afternoon, so I wanted the girls to get their safari kits that Missus had bought them. When we tried to put all the items on the table, Younger was missing her flashlight and Elder her binoculars. And here is the trigger that’s been bothering me for days.

“Where’s the x?” Shrugs. “Well go look for it.” Silence. It drives me nuts, and I have told the kids that if they don’t know, then I expect them to go look for it instead of just telling me that they don’t know. I asked Elder to go look in her room for her binoculars, to which she pouted back that they weren’t there because she had just cleaned her room yesterday. She crossed her arms stiffly and sat back in a chair. I asked Younger to go look in the Harry Potter closet, where we had made a bit of a hidey-hole in the closet under the stairs, and gave Younger the flashlight belonging to Elder so that she could go look for it. By the time I had made it upstairs and found the binoculars in Elder’s room, the two were fighting over the flashlight and I was a boiling pot of rage spilling over.

I won’t go into the details from here, other to say that my wife was outside on the back deck and came back after hearing the cursing and yelling. We had a bit of quick therapy session about what had happened and how we were going to deal with what just happened. The facts were that neither of us wanted to send our kids back to daycare, but we would have to if we couldn’t find a way to manage our jobs and taking care of the kids. My wife has had her outbursts as well; both of us came from families with explosive parents. In my case, setting grownups to yelling was a bit of sport for me and my cousins. I resolved that the answer to prevent me from having explosive outbursts was to not tolerate those untolerable behaviors in my children.

And thus began the battle of wills.

I began by going into Elder’s room and apologizing or losing my temper. Nothing else, just “I’m sorry for losing my temper.” I said it twice, hoping she might break her icy glare, so I left her and went back downstairs. I wound up going to the library and getting about thirty books, and spent twenty dollars at DollarTree on various things. When I got back, Elder was still in her room. I wound up spending most of the day with Younger, playing with the plastic baseball and bat I had picked up, and reading some books.

Mid-afternoon, a few of the Little Rascals showed up, K. and E., so I called the girls out. I stopped Elder before she went out, telling her that I wanted to talk about what we needed to do to prevent what had happened earlier. I told her that I expected her to follow my directions. Taking a queue from Douglass Rushkoff’s experiences with improv’s “yes and” rule, I told Elder that the words “I can’t”, “I won’t” and similar were not to be uttered from her mouth, and that I wanted her to respond “yes, Dad,” to any directions she was given. She could throw on the “and” with any objections or challenges that she had afterward.

I don’t know how many chances I gave her there in the foyer, but I tired of it and told me that I wanted her to write me half a page on why it’s important to follow directions. This was another, tactic my parents had taken with me as a child. Perhaps it would work better. She objected, and I doubled down, telling her there would be no privileges, no screens, &c., until she complied. She stormed off to her room.

I realize now I’m screwing up the timeline a bit here. It’s amazing how quickly I’ve forgotten the exact order to events. It’s amazing to think that we can consider our memories accurate after years. Age and importance certainly matter, this was no 911, obviously, I just mention this as a note my later self. Enough digression.

Her friends came back a second time, after I told them Elder was being punished, and this time I let Younger go out without them. Elder eventually came down, whining about some complication as her way of asking for help. I laid out her notebook, and a pencil and sat down at the table with a couple of crosswords.

Elder often claims ignorance to things I have just told her. I assume it’s just defiance, but it may truly be that the words don’t register in the first place. So we go back and forth, and I usually just let her sit there in silence, waiting to see if she’s bluffing or not. I gave her a line to start with: “why I should listen”, but I told her that I was not going to sit there and spell words for her the entire time. “Write fast, write wrong. The goal here is to get the thoughts out of your head, not to be correct,” I have often told her.

I finished yesterday’s crossword and started on that day’s, looking at my watch I told her that if she wasn’t done by three o’clock, in half an hour, she would be grounded for the rest of the day, and that she could give me her essay in the morning. She sat and hrmmfed at me for another fifteen minutes.

I had told her that if she found it too difficult to write something, that I would accept “yes dad, okay and” written ten times on the page. She finally did this in all of five minutes, but before I let her go I wanted to make sure that the lesson had gotten through her head. “I don’t want to hear ‘I can’t’ or ‘I won’t’, or ‘you can’t make me’ out of your mouth again. Do you understand?” She obviously did not, and went right back into her defiant backtalk. I pointed to the page, at the words she had just written, one, two, three times. I held back the inner Red Queen screaming “off with her head,” and told her that I wanted her to write the phrase ten more times.

The wailing continued again, and I pointed out the clock was rapidly approaching three. So she scratched out the lines, and I repeated my questions again. Finally, an “okay dad,” came from her mouth. Obviously a hug was too much to ask for, so I let her go out to join her friends.


I am not going to jinx myself this morning and make any claims about the domestic bliss I am enjoying. To the contrary, Younger, back in my bed this morning, woke me up no less than three times during the night with her tossing, got out of bed before my wife and I, and then decided to return to the room with some loud furball toy her auntie mailed her yesterday for her birthday. I already put her in timeout once for not leaving me to my writing. Elder on the other hand, is in good spirits, and we shall see if we can make it last through the day, and end the week on a high note.

The Orchid blooms

purple moth orchids in bloom

A rare morning of peace

It’s a quarter to seven this morning, I was woken from a strange dream by Younger a bit before six and went back to sleep to try and gain another few minutes of sleep, or perhaps part of me wanted to return to the dream world. All I remember is some treacherous surveillance AI trying to steal children. I remember searching for something in a lost in a vast field of snow, and lastly, some scene in a small, dark, grimy garage, working on mechanical equipment with two other individuals before pounding into some Swans-like driving hardcore music. I can take nothing from it.

Missus finished reading Atomic Habits last night, she’s really impressed by the book. I spent yesterday evening writing and only managed an hour on my WordPress project. The two of us wound up talking well past eleven, mostly concerned with what to do about the schools given how we are well in the midst of a second wave. As was predicted, this one is way worse than the first, but at least at this venture the grocery stores have toilet paper. Our stores aren’t where they need to be if we are to be locked down, but our state continues to fall in the number of cases, and has drifted from the top ten down to number fifteen or so.

There is no way that we can foresee sending our children back to school. Not even for two days a week, which is likely. Missus just purchased pre-school supplies to make sure Younger learns her letters, and I’ve recently sat down with Elder to draw up a plan for her to complete third grade math and her other studies. We’re still figuring out how to track things on our Kanban board, moving stickers around on the wall, and figuring out the best way to get things done.

We’re expecting some friends this weekend, the Gs. We befriended them by happenstance several years ago while Elder and their daughter M. were in pre-school together. We kept running into them weekend mornings at Target and started hanging out. We discovered that we enjoyed a shared interest in board games and good beer, and hung out often over the years until G. got transferred to Florida. His station is up now and they moved back to the area two weeks ago, and this will be the second time we’ve seen them in close to four years. My first batch of homebrew IPA will be ready this Friday, and I am looking forward to cracking the first bottle with him this weekend.


I haven’t been waking up as early as I like, the girls are coming downstairs before I’ve managed to finish writing these entries. This morning was remarkable, as Elder came right down stairs and starting doing her school work right away, doing Khans Academy, Typing.com and ReadTheory all in one block. She also did the dishwasher and snuggled me on the couch to keep warm, and clung to me lovingly when I went into the kitchen to help her sister unload the silverware. It’s very rare for her to act in such a way, and remarked that she must have gotten a lot or rest last night. (I read her to sleep with Wired magazine, which put her right out). I called upstairs to Missus that our little orchid was blooming.

The Duck Pond

green grass near body of water during daytime

The girls take a safari to collect minnows.

Yesterday was as close to ideal as I can imagine. I’m still having problems with the wifi at one client site, but yesterday was mostly free of unplanned work. My WordPress client is happy with the project summary I wrote, and I spent some flow time last night moving things from my dev workstation into the staging site. Things should start moving from here.

I’m having a hard time with the workflow around WordPress development as it relates to continuous development. Mostly that the sites aren’t easily reproducible from one environment to the next, or rather that they don’t sync well from a version control standpoint. Since most of the content, and a lot of the configuration is in SQL, it makes syncing things rather hard when changes are made between different environments. I might just be complaining for the fact that I have to replicate a lot of work for failing to plan this out up front. C’est la vie. It’s not too much work, I should have it up to speed in a few more hours, then I work on completing the rest of the project, and hopefully be able to stay in sync with the client.

I’ve also passed a bit of a milestone with my exercise activity, and have passed one hundred pushups in a day. I’ve gotten into the habit of doing three sets a day: first thing in the morning when I’m waiting for my tea to heat up, before I sit down to eat lunch, and before I get into bed for the last time to read. When I started a month ago, I could hardly do twenty at a time, but now I’m doing over thirty in the morning and managed my age, forty one, the last two nights. I suppose I’ll keep going until I can do a hundred in a go, but will likely need some kind of sheet to track my progress. I also have a task on my personal kanban to get a pull up bar installed somewhere so that I can start working on that. I’ve never been able to do more than a couple at any point in my life, so getting to twenty would be a great accomplishment.


Late this morning, I sent the girls outside for some fresh air and play, and they promptly hopped on their bikes and ran off down the street to where our quarantine family lives. They came back a while later with E., a year older than Younger, and K., who stays with her grandparents during the day and is slightly older than Elder. They played in the backyard, and I put out some drinks and made PB&J sandwiches for their lunch. At some point a bit later I noticed E. playing in the backyard by herself, and stepped out to figure out where the other girls were at.

Our street is near the end of a mostly quiet cul de sac. At the very end, between two houses is a small pond, separated from the river from a small, low embankment. We often take walks to the duck pond, as we call it, either for walks or, when they were younger and unable to venture farther, bike rides. There’s a small wooden post fence at the sidewalk the pond, and I’ve always reinforced that the kids are free to come to the duck pond, but are never to go on or past the fence.

A few days ago, my wife, trying to urge the girls’ sense of discovery, bought a couple of backyard discovery kits for the girls: binoculars, hand-powered flashlight, compass and magnifying glass. She tempted to prime them with books about bugs and birds. We had been outside earlier in the day with them, and I had been encouraging them to birdwatch, which was nearly impossible with the cheap binoculars, which seemed to be wholly ineffective.

So her I am, stepping onto the front porch and scanning the street, to K., Elder, and Younger, riding back toward the house, the two older girls with beach buckets hung over a handlebar on their bikes. I was not amused, but tried to play it cool.

The buckets were full of water, along with a dozen or so small minnows. I was upset, but didn’t let out a temper. I chided them for going to the pond, reiterated that they were not to go past the fence again. Elder confessed innocence, saying that K. had been the one to cross the fence. Being more amused than angry, I let them keep the minnows, interested to know what they were going to do with them.

I decided that it was my parental duty to inform K.’s grandmother what had happened, so I walked down the street, in the opposite direction from the pond, to tell her. The woman had been in the neighborhood for decades, had raised K.’s mother in the same house, and her granddaughter knew better, she told me. I thanked her and left and walked back to my house, to find the kids in the backyard with the hose, filling water into a small toddler pool into which they had put the minnows. “What do minnows eat?” they asked me, as I went on to explain what algae was. In hindsight of what happened after I probably should have known better.

A few minutes after I went back inside, Elder came in the house. I asked her what her sister was doing, and when she replied that she didn’t know I immediately opened the door to the garage to find Younger flying off on her bike in the direction of the duck pond. I called her back, this time letting my anger known that she was going back down to the duck pond by herself, after I had just forbidden her to so. “But K. is down there,” she sobbed back. I pointed her inside, put on my hat and sandals and started walking to the pond. About halfway there, I saw K. coming back on her bike. I think she saw me and actually crossed the street to avoid me. I crossed and called her to a stop.

I confronted her, as carefully as I could. In her hands she was carrying a small plastic seedling container, filled with greenish pond water. “You went back over there after I told you not to. You better go talk to your grandmother and tell her what you did.” She hustled off.

After the first incident, I had been mulling over what action to take, and had actually looked up the names of the property owners on either side of the pond. Our city has online property records, so it’s a trivial thing to do. The pond seemed to be jointly owned by both of them, only one of whom was familiar to me. I grabbed two business cards, a small notebook, and took off down to pay them a visit. The last thing I wanted was an incident with my kids and my neighbors. The kids already thought they owned the street, I didn’t want them thinking they could just break the rules like this. Plus, I thought there might be a way to let them explore the pond with supervision if I asked.

It turns out I was right. I caught one of the owners outside and explained the situation, handing him my card and asking him to please let me know if he ever caught the girls out there without supervision again. He was understanding, both of the risk and that kids are kids. That said, I asked, would he be opposed to me going over there with the kids if they were supervised. He did not, so I thanked him and went to knock on the door of the other neighbor. After introducing myself and explaining, he wondered if I had been the man throwing a rod in the lake a few days ago. I assured him no. “I told him not to bother,” he said, since there were no fish in the pond. He then added that they were getting ready to stock the pond with some catfish very soon.

“Well if that is an invitation, sir,” I said, “then I may gladly take you up on that offer.” Thanking him, I left and walked back, past my house, on to tell E.’s father and K.’s grandmother. Before I got there, I spotted my neighbor, F., an older gentleman, who had lost two fingers cleaning up ordnance in Germany after the close of WWII. “F., do you fish?” “Not anymore,” he replied, pointing out that he still had some rods in his garage. I told him about the pond and asked if he had one to spare. He led me into the garage and gave me a small freshwater rod, which he agreed to accept ten dollars for. Laying it aside, I went and knocked on K’s grandmother’s door for the second time.

I explained that she had disobeyed again, but that the situation had been handled, that I had spoken with and cleared things up with the neighbors. Also that I was planning on making some time in the next few days to let them properly explore the water with supervision, but that if they were caught there unsupervised I was going to have to separate them for some time. We parted, and I walked home again, stopping to pick up my new rod on the way.

“I have some good news,” I told the four girls as I walked into the back yard, holding the pole over my shoulder. I found them dipping their toes into the minnow-filled pool, now with bits of grass leaves and dirt for good measure. I told them I had permission to take them to the pond, that there were soon to be fish in it, and, pointing the rod at them, that I had just secured a the means with which to do it. Elder could not have been happier, having been asking me for weeks to go fishing. I again admonished K. for disobeying, me for the second time, having learned from her grandmother that she had no spoken to her, and told her to go home and talk to her. She claimed that she had told her grandfather, but I was not about to get into the middle of a debate and sent her home to sort the issue out.

I retold the story at least two more times this afternoon, once to E.’s father, who was excited to try his hand at fishing himself, and with Missus, who alternated between concern and amusement as I told her about our new minnow farm. I pointed out that this was only a logical result of her attempts to stimulate the girls’ curiosity by buying them safari kits, to which we both shared a good laugh.

Now all I have to do is learn how to fish in the next few weeks.

Sleepless

blue tent under starry night

Notes following a restless night

Yesterday was a flurry of activity here at the house. It started out pretty stressful as I was having issues with a client in trying to bring in an outside developer, but I was very focused at my day job and got several tasks moved forward. Besides the recurrence of a previously closed WIFI issue at a client site, the day was mercifully free of unplanned work. Missus took the girls to her mother’s for the afternoon, and we even managed to have some Thai takeout all to ourselves. I also managed to read a couple chapters of the Hamilton biography, which is very dense and will take me several weeks if I keep up my pace of two chapters a day.

My evening work, after the kids were in bed, seemed to flow quickly, and I managed to write a memo of the state of my client’s WordPress project to assist the new dev onboarding. Mainly it helped me focus my thoughts, and was well worth the time. I went to bed on time, read half a chapter of Continuous Delivery and another of Designing Your Life, both of which filled my head with ideas. And I had no trouble falling asleep, at least initially.

I woke at two in the morning, at that dangerous point where my body has gotten rest and thinks that it can plow forward with the day. I tried to go back to sleep, but instead found my thoughts spinning to the WordPress project. My, how it confounds me! After twenty or thirty minutes tossing and turning I finally went downstairs to try and excise the thoughts from my head, and wound up writing two pages of notes to myself to deal with this morning. I was tempted to do actual work, but I was worried that the screens would mess with my circadian and I would wind up staying up much later than was healthy, so I wrote on paper and went back to bed. Younger was in my bed, stirring, so I wound up sleeping in her bed, and tossed and turned until sometime around four before dozing off. I was woken by both children at a quarter to seven.

I made some slight edits to my Substack article and have it scheduled to go out to my eighteen hundred contacts this morning. I’m also resuming my Medium posting, which is scheduled for tomorrow, and I already have an article on LinkedIn ready to post as well. Speaking of LI, I haven’t spent any time recently applying for jobs, it’s been about two weeks. I’m confident that my Sixty Days to Six Figures deadline has passed, but I’m at the point now where the thought of going to work at a new firm is untenable right now. Finding a firm that’s going to allow me to continue working with the freedom that I currently have seems very unlikely. Finding one through any online job board seems like a fool’s errand. I may reconsider once this WordPress project is delivered and the client and I can decide whether to continue our arrangement. For now I’m going to plow through it for the next two weeks and do my damndest to deliver. Once I’m done with it I have two more queued up, and I’ll have to determine whether the pace at which I’m working is sustainable.

I found myself thinking about the concept of a personal blueprint while I was up in the middle of the night. Part of the reason that I’m feeling so much stress with this project is failure to communicate my expectations. I figure to prevent this with future clients, I need to write a primer of not only what I expect from my clients, but what they can expect from me. Continuous Delivery had some good goals around quality that I want to incorporate, as well as setting the understanding that there’s a lot of work done up front before services can be delivered. And I really need to do a better job setting expectations around engagement. I’m at the point now where I’m doing a lot of things for the first time, so it’s taking a lot longer to figure out how to things. I thought I had been clear about that the current project lead, but obviously I didn’t do a good enough job. Their priorities have shifted as well, and it’s caused me a lot of additional stress to deliver on an expedited schedule.

I also have a tendency to think things through out loud (of course, dear Reader,) and this can come across as indecisiveness or lack of confidence on the other end. So making sure that this is understood up front before I take on engagements should hopefully clear some of these problems up in the future.

This old deck

Embarking on a home repair undertaking

Monday again. I’m starting to feel like I should have recurrent themes around these blog posts instead of whatever happens to be in my head at the time. Then again, the whole point of writing here is to take whatever’s floating around in my head and flesh it out a bit more, to figure out what’s important and what my priorities are.

Last night I finished drafting another Substack newsletter. I’m saying “another” instead of “this week’s”, since it’s actually “last week’s”. Plus it seems that writing these every week is unrealistic, given my other responsibilies. Perhaps it was the holiday break that threw everything off. We’ll see.

I also started taking on a large home improvement project, repairing my back deck. It’s really a huge undertaking, and I’ve never attempted something like this before. The deck itself is over ten years old, treated lumber with a dark red stain over it. We’ve only had it touched up once in the five years we’ve been at this house, and it’s in dire need of repair. Rain has started to seep into the boards, and several of them are actually starting to rot. The railing covers are falling apart, and earlier this week the side rail on the stairs popped off. Several of the balusters are loose as well. It needs some TLC.

Missus wanted to hire someone to come out and do the repairs, but I’m averse to taking on any large projects right now. So what did I do? I built a Kanban board of course!

Trello board

The aha moment came when I went under the deck to inspect the joices, and found that not only were they in good shape, but the underside of the deck boards looked like they were in fine shape as well. Why not flip them over? This would save us about $450 in materials alone. The hard part is getting the old screws out, so I went ahead and bought a reciprocating saw in preparation. I then went through a how-to guide on Lowe’s site, adding cards for each step and each tool or material that I would need. So now I’m just waiting for Lowe’s to put my items together for pickup, and for my saw to come via Amazon, then we can get started clearing the deck and proceeding with the project. By the time I’m done, I hope to have a newly finished deck and all the repairs made. Pulling this off will be a big accomplishment for me, as I’ve never attempted a house project of this magnitude before.

My father’s quite the handyman. He’s got quite the collection of tools and has done many projects in the family homes over the years. I helped him build a privacy fence around our large property when I was a teen, and he also built a deck in the back around our above ground pool. These projects could take several weeks to finish, and I’ve never had the desire to undertake anything like putting on a new roof. I tried replacing the front door at our last house and that required a lot of improvisation to complete.

I’m not sure where my aversion to house projects comes from. Perhaps from my tendency to live in the digital world, where the reminders of unfinished projects are less visible. Taking on a home repair project is so much of a disruption, and requires dedication to complete the job. Life is interrupted, and the job takes priority over anything else. It has to be done before life can go back to normal. Running into obstacles provides challenges that have to be dealt with immediately, and you have to plow on through until the job is complete.

For me, it seems that even the smallest home project involves multiple trips back to the hardware store for tools or things that I didn’t know I needed, and my garage is littered with tools that I needed one time. It’s a practice, I suppose. Changing the oil on my car or doing the brakes is pretty routine at this point. Now I’m stuck undertaking a huge deck repair project cause we haven’t maintained it properly.

Growing up, my family would watch This Old House and other shows on PBS’s late morning lineup. This was before HGTV and all the House Flipper reality television shows. I’m not sure why I’ve shied away from these projects over there years. Among my first jobs in high school were roofing and framing, although just as a helper. I think part of it was that besides the manager and contractor, the rank and file guys weren’t the best role models. Nearly all of them were alcoholics and potheads, living paycheck to paycheck and without any future prospects. Most of them were just one on-the-job injury away from being destitute. Plus, it was dirty, miserable work outside for the most part. I much preferred sitting in shelter, hacking away at a computer screen, and that’s the path my career has taken.

This deck project is a character test of sorts. I know once I pull the first screw out of one of those boards I’m embarking down a project that I’m going to need to see to completion. Missus will never let me rest while her sanctuary is disturbed.

WPStagecoach saved my life

pink carriage with brown horse

Quit messing around with lesser staging processes and get the real deal.

I don’t mean to be too glowing or make this seem like some infomercial endorsement, but I do really think it saved me from having a heart attack the past couple days. I’ve been using InfiniteWP to manage most of my stable of WordPress sites, and it’s served me well for managing updates and backups, and is even handy for migrating websites from one host to another. It’s well worth the $120 or so that I paid for it a few months ago. It’s staging features aren’t really that great.

Part of the problem is that it only wants to install the staging site as a subfolder of the main site. It also makes a copy of the database on the production database, it just uses a different table prefix. I shouldn’t have to tell you why this is not great from a performance and quota standpoint. The other problem is that it doesn’t provide much information when things go wrong. Ideally, I want my staging sites in separate subdomains, but IWP just can’t do this. And the documentation is very mum about this. I have a support ticket open with them right now to figure out why I was unable to clone a particular client site, and to make sure that this paragraph is correct. What I can tell you is that I spent days trying to get a proper staging site setup for my client using IWP.

It’s not all their fault. I’m taking over a project that seems to have been abandoned by the original developer, and there were many problems with the site that may have contributed to the problems I’ve been having, as we shall see shortly. IWP has three staging options, on the original site, on my configured staging server, or custom FTP. I was able to clone the site to my custom staging server, but the theme didn’t operate properly. I believe this may have been a problem with hotlinked theme assets, I haven’t figured it out yet.

I literally spent days trying creating subdomains and updating DNS on the client site, and couldn’t figure out why IWP kept giving me “error: check your hostname” when I tried to update things. I figured it was a DNS propagation error between the server hosting my IWP and the client’s host. I usually only work on sites I host directly, but this was the first time I actually had to use the staging features. I was getting very anxious. I had wasted several days was already dealing with an irate client, and was starting to get a panicked feeling when working on the project.

So I decided to go another route and explore some other options. I read through several blog posts on WordPress staging sites, and one name that came up several times was WPStagecoach. And it was only $12 for a month, so I signed up for a trial and had the staging site up in less than an hour. No kidding.

The setup process was impressive. Getting the plugin installed and activated was pretty standard, and creating the staging site was very user friendly. It started off by scanning the site for large files, and found a backup archive, which it asked to exclude. Then it starting creating a tar file of the site to move to staging, and showed me a status percentage as it did so. This was very much needed considering IWP had been “working” for hours without so much as a log update. After the tar process was completed, I did get an error that the archive was missing files, and was asked whether I wanted to abort, retry, or “proceed fearlessly.” I retried, waited another five minutes, and got the same error, so I went ahead and pressed proceed. Another five minutes, and BAM. There was my staging site, and it looked perfect.

And one thing that really impressed me was that after the creation of the staging site, I was given a list of errors that WPS had found, mainly places where the site’s URL was hardcoded in the theme templates. These are likely why I had the rendering issues on my previous staging attempt. So now I have a list of files that I need to target, as hard coded URLs will play havoc with my development environment as well. And this feature really shows how WPStagecoach really shines as a specialized product.

WPS hosts the staging site on their own servers, giving each site their own subdomain. I got ten with my account, which is way more than I’m going to need anytime soon. So now I can proceed with the next step on this project, which is getting our MemberPress module up and running. Then I’ll be able to see if pushing changes back to the live site is as easy as creating it in the first place. If my experience so far is any indication, it’ll be a sinch.

Overwhelmed

They say a writing must have a point, sometimes I sit down to write and have no idea what it is I want to say. It’s another beautiful day here at the house. We’re expecting some thunderstorms in a bit and plan on going swimming at my sister in law’s later this afternoon. My dad came over for breakfast which I cooked on my outdoor griddle: bacon and sausage, hashbrowns, crepes, and eggs. The girls are watching The Last Airbender movie, and I’m just trying to figure out how I can relax with everything that needs to be done.

Friday evening was party-time. I picked up beer and hot wings from the grocery store, then played Factorio until it was time for the girls to go to bed, which took forever, sans gummies. I let Elder stay up till ten playing House Flipper, while I played Between the Stars, a new space RPG. I’m of a mixed opinion about it right now, but I’ve only really played through the prologue. It’s not bad for early access. One of the subquests had some stilted writing, so I actually rewrote it and submitted it as a bug report. Heh.

I haven’t been on social media in several days. I was peeking over Missus’s shoulder this morning while I read the paper and saw that Trump commuted Roger Stone’s sentence. It seems the rule of law is officially dead in the US. I’m not really sure that it matters, given what’s happening with COVID around the country. I pulled up my Medium feed this morning and most of the articles were pointing out that we’re at the point now that it’s going to be permanent part of American society for the foreseeable future.

The basic argument is that not only did Trump not have a plan and allowed us to succumb to the virus, but he’s actually encouraged his followers to go out and get it. We’ll likely not have a federal response until late January, if we’re lucky, and by that time will be too late. As a result, we’re effectively the world’s pariahs now. Most countries outside the Caribbean have closed their borders to US citizens, so there’s nowhere to go either. Perhaps the best line I read was “Trump did as he promised, and built a wall around America and made the world pay for it. We just didn’t realize that we’d be trapped inside.”

I am still struggling with setting up this damn staging site for my WordPress client. I don’t know what the problem is, but I’m guessing it has something to do with Inmotion hosting. I spent an hour yesterday messing around with it before I realized that their system wasn’t generating the necessary .htaccess file for PHP to work. The ‘deploy staging site’ function has been running for over twelve hours now, and I have no idea if anything is running or not. This is taking way too much of my time, I’m running up on my self-imposed deadline, and I’m not sure what to do about it. Cancel the job, move the site completely? It’s hard to decide when so much is out of my control.

Focus on what is in my control, I suppose. There’s just so much to be done, and writing doesn’t move it any further toward being complete. Except the writing tasks of course. The wall across from me is a mess of Post-It notes, most of them are starting to lose their stick and keep falling on the floor. Moving daily tasks back and forth isn’t really cutting it. Figuring out how to manage it better is a meta-task all in itself. We’ll have to figure out a way to move the daily recurring stuff out into a separate lane.

I promised Missus a weekly meeting, so it’s time to break out the Trello board and start refactoring what we’ve got there. More and more and more to do.