Vacation over

Time to soothe my sore muscles and get back in gear

I’m writing this morning from my father in law’s house up in the mountains. Yesterday we took the family on a seven mile canoe ride. It took us over five hours. The water level was pretty low in several places and our canoes kept hitting the bottom of the small rapids, so there was a lot of pushing and walking in places. Plus it seems we had to stop every half hour to feed the kids.

I dumped our small three-person kayak at stop, along with Missus and Younger. I was getting out to enjoy the water and threw her off balance. I jumped off between our kayak and the larger canoe, Missus was holding on to it in the front and my lunge simultanousley rocked her toward the other boat, which she was holding onto, and pushed her away from it, and it unbalanced her and tipped the whole thing over. Whoops.

We got out of the river just in time, we exited at a ramp under a bridge just as a heavy thunderstorm came over us. There was hail as well. We all piled into my car, which we had dropped off earlier in the day, wet as dogs, and drove back up river to retrieve the truck so we could come back and get the boats.

We spent the rest of the evening watching Hamilton, – it really is quite good – and slathering aloe vera on the spots on our bodies we had failed to cover with sunscreen. I passed out early and immediately after going to bed, and now the whole family save Elder is up, puttering about for breakfast.

Yesterday broke my writing streak. I forgot a plug for my laptop charger, so I have an excuse, but I still haven’t decided what to write for today’s Substack, and we have a three or four hour drive home ahead of us. I don’t know whether it’s better to write a short post and publish on time, or just start writing and publish it when it’s done. Quantity or quality, I suppose.

My FIL has a rental cabin that they manage through a third party site. He mentioned that they’re taking seven percent of his bookings, so I now have a third web development project in the hopper. I had better get cracking when we get back home.

First I have to get there, so I had best start getting things together: bags and cooler packed, car loaded, then get these kids fed and in the car. Then it’s back to the hustle and grind.

Forth of July

black semi automatic pistol with pistol

Prepping for a road trip, and thinking about guns

Today we’re leaving on our trip. It’s only for two days, but making sure the house is ready and that we have everything we need is always an endeavor. Yesterday I tended to our plants, cut the grass, edged, and sprayed some weeds while the girls cleaned the house. Then I managed the girls investments and wrote up a brief for them on our home intranet. Then we had our quarantine family over. The kids watched TV and the four adults played a game of Settlers of Catan. It was the first time our neighbors had played, and it must have had the least amount of trading in a game that I’ve ever seen. By the ninety minute mark we just wanted it to be over as it was getting too late for the kids, and in the end D. won. Turns out it was his birthday too!

We’ve got a four hour drive ahead of us, and while the girls are finally old enough that we don’t need to take the drive while they’re sleeping, taking rest stops during the age of COVID is still stressful. The number of new cases in our state continues to trend in the low numbers, and has opened up to “Phase 3” reopening, which means things are ok, I guess. We continue to wear masks whenever we go indoors, and are still avoiding crowds. The library has reopened, and Missus took Younger there a few days ago.

I’m hoping that we can get out on the water and do some canoeing. I don’t think white water rafting is in store, but I don’t think any lakes are near where we’re going, so maybe a lazy river is in store. We’ll see. I plan on taking the girls hiking to explore some trails that we found off the road last time we were out there. So that should be fun.

Missus dad also invited us to go target shooting, so that Missus can use the .380 that he bought her. That’s got me thinking about the girls. They don’t even know we have a gun in the house. I’ve got it stored away with a chamber lock, the bullets and key are stored elsewhere in the house. But if we’re going to travel with it then I want to have a conversation with the girls about guns and gun safety. Whether or not to bring the girls to any live fire activities is a conversation I need to have with Missus.

When I was growing up, my dad brought me to so-called “turkey shoots”, which is called such not because you actually shoot at turkeys, but because the winner takes home a frozen bird. There’s usually several rounds with varying prizes, contestants buy in per round, are given a single shotgun birdshot round, then step up one at a time to take a shot at one of several targets in a lane. At the end of the round, the targets are collected and whoever has a pellet hole closest to the center of the target wins. Crap shoot would be a more apt term, since the winner is usually based on luck, not skill.

My girls have never even seen a real gun, as far as I know, except maybe holstered on law enforcement. The only thing I’m sure Elder knows about them is what they told her during the active shooter drills in her elementary school. It still pains me to think that is a thing.

My FIL brought Missus the gun after he returned from a two-year stint working overseas. He barely managed to make it home, as the pandemic was taking off. No one was sure how bad things were going to get, so he wanted her to have something to defend herself with if things got really rough. I’d like to think that we’ve avoided that possibility, but given that the number of cases in the US continues to break records, I’m not so sure. Winter is coming, I guess.

For this weekend at least, we’ll just focus on getting out of town for a few days up in the mountains and having a good time. I’ve already got a checklist building in my head of things to pack. I hear the girls rousing upstairs, and I’ve got plenty to do to prep: reset the security cameras, pack food, clothes, and gear that we’ll need for the trip. And now Elder’s downstairs, already complaining that I let her little sister watch TV while I wrote. Sigh.

I usually pack my laptop, iPad, and a couple of books to read. Now Elder has a laptop as well, although I’m not sure I’m going to let her bring it. We literally cannot keep enough books around the house though, as she races through whatever we get her from the library in a few days. The last thing I want though is for her to get to my FIL’s house and then try to park herself in front of the TV there. It’s a challenge.

Well, time for me to get a move on. To my fellow Americans, please enjoy your Fourth of July. And remember, Hamilton is available on Disney+. We’ve only watched a half hour of it, but it’s good.

Refining the design process

assorted-color abstract painting

What got me here won’t get me there

Since I was able to get my Substack post out on time yesterday, my focus has turned to my client’s WordPress project. I almost used the word “consulting” for a moment, but I am way too much involved in the design of the site to call it consulting at this point. And I’m having a hard time. Cause despite my familiarity with the tech stack involved in web hosting and CMS systems, my design skills really haven’t moved past the early days of the web.

Just look at this blog, for example, it’s focused on content, I’m still using a basic WordPress theme, and it’s got no color whatsoever. Part of that was intentional, so that I could focus on content generation and not get hung up on design presentation, but it’s hamstrung me. Part of my spiel whenever I talk to people about these project is about the separation of content and presentation. I tend to focus on content, structuring data, changing it. Design is not really my strong suit. It’s much more of a creative art that I’ve struggled with.

When I was in my twenties, I used to love to play around with Photoshop, making designs with filters and creating awesome images. I’m pretty good with typography as well. When it comes time to laying out text and images, and putting together a color scheme on a web page though, I just don’t know where to start. And therein lies my current problem.

The client came to me with a website that had been fully designed and rolled out between 2016 and 2018. It didn’t look like it was up to the design standards, even of that era. I can’t even put my finger on why I know that, but it just does. The site was broken. The first thing I saw when logging into the admin console was that it had a huge mess of plugins, and I couldn’t make heads or tails of it. I needed to figure out what was essential and what we could get rid of. And there were over twenty five hundred registered accounts in the system. Most of them looked like spam. Sigh.

I never ever ever make changes to a client site without testing it in a staging site, so that was the first order of business. I use Infinite WordPress to manage my sites, so the first thing I did was installed that plugin to connect it to my management console, then I started a backup. After we had that under control I cloned the existing site to staging and got to work. It was a mess. There was a lot of content on the site, over two hundred pages and posts, but the site used custom posts types and fields, and had some sort of content controls that were supposed to paywall the content and was just broken. I spent what must have been a week just trying to inventory the plugins to figure out which ones we could disable to speed things up.

The only other production change that I allowed myself was for analytics. I checked the console a couple of days later and found that the site was getting tons of hits. Apparently the blog content had been indexed by Google, and a lot of people were getting referred to it. Converting those hits into leads was now the priority. The site was still broken though. The navigation didn’t work, so most visitors were falling off. Furthermore, while checking the contact forms to see what emails were being used, I discovered that email for the domain wasn’t working. At all.

I was able to get the email up and running, but it took days to figure out where the problem was and to move the DNS records over to my reseller account. Delving into the theme itself, it appeared that the designer had just cloned the WordPress TwentySixteen theme and started editing it directly. I’m not sure if WordPress had child themes back then, but they had just dumped a bunch of custom PHP functions right after the existing ones, and the template codes were full of SQL queries into the custom fields, which didn’t jive with what the plugin documentation called for. I really didn’t want to spend however much time combing through this code to refactor it. So I recommended to the client that we start from scratch.

I’ve got an Envato account that I subscribe to, my process just involves finding a good theme that fits the tone of what I’m going for, throwing it up on the site, and swapping the boilerplate content with custom copy. And I don’t like writing copy for clients. Or, I should say I’ve avoided doing that in the past. It starts coming close to marketing, which I’ve had an aversion to. I’m working on overcoming that aversion, at least for myself and my projects, but doing that level of work for clients requires a level of intimacy with the project/product that I haven’t had the time for. I’d rather outsource it, and that’s just what I did with the last project that I was involved with.

I’m not going to take that route this time, we’re going to plow through this and get it done, come hell or high water.

One of the problems that I’ve found working through this project is that I tend to try and shape my content to fit the boilerplate in the themes I use. It isn’t working. My client gave me a document with the content that they wanted on the page, and my brain seized up looking at it, trying to figure out where to match it to fit. It’s not going to work. I’m going to spend some more time today going over it again to see if I can provide some structure to it, then I’ve got a work session with the client tomorrow to really try and break it down. I don’t think that we’re going to be able to do this part in WordPress directly. I may need some mind mapping tools or something else to make it work.

Pressing up against the limits of my abilities is going to take some work. We’ve got to bootstrap this site into production to get things moving. Maybe then we can engage a professional to help tune things.

For now, that’s me, designer, developer, editor, admin. While I have some downtime today, I’m going to do some research and see if I can find any other resources to help refine the process.

Leisure time

standing woman holding gray blanket surrounded by green grass

Seeking active engagement in the world away from screens

Monday morning is off to the right start. I got to bed on time last night, but woke up a little on the late side, so I’ve really got to get cracking this morning. I was able to complete the draft of the Substack post on Bitcoin, so I’ll be editing that and getting ready to publish. I have a project or two to work on for my day job today, one around mobile device management, and the other around a managed GitHub instance. Then a call at twelve to catch up with a political contact and deal with some lingering issues from my last campaign.

And did I mention I had to do all that while watching the kids?

I finished Fluent Python, last night. I’ll admit I ran through the last couple chapters on metaprogramming without reading too much of the code, but the book was very valuable, and I learned quite a lot from it. Ramalho has a lot of further reading references in the books various chapters, so I plan on going back and looking over the ones the says are “must read”, like the cookbooks from Dave Beasley. Unfortunately, I haven’t been doing any programming in Python lately, since I’ve been writing and working on WordPress mostly, , working with Docker and now trying to learn how manage Nginx reverse proxies. My hope is that once I finish this client site, I can go back and focus on a programming project like my GBTC estimator.

I’m still reading Digital Minimalism as well, and started reading the chapter on leisure. Newport points to the FIRE movement as an example of a community that’s renewed a focus on leisure. This leisure, as Newport defines it, is not the lounging around, watching Netflix, but is the more physically engaged kind, usually involving, vigorous outdoor activity.

I can’t wait for Missus to read this book. She’s deleted Facebook off of her phone a few days ago, and I couldn’t be more happy. Newport says that it’s important for people to have something to fill the void left when people cut the cord on these various technologies, else they may wind up feeling anxious or empty. I have obviously been doing that with writing. I’m still much more comfortable sitting with a keyboard in front of me when I have the choice, but I have been doing a better job maintaining myself. I still spend a lot of time cooking, and doing the yard. And I’m glad to see that Missus has taken after gardening with a bit of zest.

Still, we have two very different responses to free time, and it’s become a bit of a sticking point in the way we’re raising the kids. She’s much more lax about the amount of television that she lets them watch, where I would rather see them doing more active activities. Even playing video games engages the brain more than just watching television passively. As does reading a book, which we all enjoy. For what it’s worth, she would much rather go on vacation to the beach, and lounge with a book, where as I would rather go on a white water rafting trip. I may be trying to fit pegs into holes with this description, but I’ll see what she thinks after she has a chance to read it.

That said, keeping the kids busy is the most challenging part of my day, and biggest impediment to getting deep work done. Thankfully they’ve got their friends down the street to play with. I feel a bit busy that they spend so much time down there. Everytime I tell them to get some outside time, it’s the first thing that they want to do. We’ve been having them over a lot also, so I guess it’s fair.

Fourth of July is this Friday, so we’ve decided to make it a four day holiday and go back up to see my father in law at his house at a ski resort. Last time we were there the kids and I discovered a network of hiking trails in the woods behind the houses, running along a little stream. I’m really looking forward to getting back up there and exploring them with the girls. Our state is supposed to be going into Phase 3 for the reopening plan, so there may even be campgrounds or real hiking trails open. We’ll have to check.

Hopefully it won’t be too hot there in the mountains, under the forest canopy. It’s already started getting warm here in the afternoons. It was ninety degrees on Saturday for the party, but we had shade in the back from our trees for the kids slip and slide. We put our ten foot canopy up on the back deck, over our patio set, and made a little VIP are for the adults. We decided to leave it up, since it makes a nice addition and lets us stay out on the back deck when the sun’s overhead. I’m sitting out here now. It will be interesting to see if the pandemic slowdown has any noticeable effect on temperatures this summer. Hopefully August and September won’t be too bearable, otherwise we’ll be spending a lot more time up in the mountains.

Now that Missus has her work laptop, we’re basically free to work anywhere. And while that’s an attractive prospect, it also means redefining what we do for fun. I often use Costa Rica as my go-to when I’m talking about living FIRE or doing geoarbitrage. I don’t really have a deep-seated to desire to go there, I’ve just heard it mentioned as a popular place for American expats to go.

If we are to make a go of it, Missus and the kids and I will have to redefine what leisure means to us. Maybe this weekend will be a test of what things can be like if we are able to work while on the road. When the kids come and tell me that they’re bored, I say “good”, and leave them to find something to do, but that’s going to be a lot harder if we’re away from home and they don’t have their screens or their toys with them. It will be hard for the adults too, but that seems to be the way to a fulfilling life, away from the stress and anxiety of the world.

Not so lazy Sunday

No rest for the wicked.

So yesterday’s party was a hit, and we’ve been pretty productive for what should have been a lazy Sunday. Yesterday, I roasted a seven pound pork butt and made carnitas out of it, and also wound up making the birthday cake and frosting from scratch. Just call me “Daddy Crocker”. This morning everyone but the birthday girl slept in, and I’m writing this in the middle of the afternoon. I spent most of the day cleaning up the mess from yesterday, and making some changes to this website.

We’ve been getting lots of Google referral traffic for two posts, one for a WordPress hack, and another for an obscure Windows server error message that I wrote about. I’m getting enough of them that I figure I might test whether there’s any opportunity for clients, so I put a Boxzilla popup on the two pages containing a contact form. That was easy enough, but I ran into problems with my WordPress SMTP capabilities that required troubleshooting. I wound up switching to the Post SMTP plugin, since it’s free. So, any hits on the form should send me a notification SMS via my cell provider’s text message gateway.

Now, I wait.

I’ve got a lot to do today, so I’m going to wrap this up and continue working on my Substack, which I’m hoping to get out tomorrow. I’m also overdue on my WordPress project for my client, so hopefully I can manage to get both of those done before the day is over.

Private, internal blog for the family

girl wearing grey long-sleeved shirt using MacBook Pro on brown wooden table

Maintaining privacy for your kids by running a private WordPress instance in your home network

Well, I may have finally lost my mind. I quit Facebook over a year ago, but one of the things that I do miss is the throwback posts that they pop up on your feed with pictures and posts from one or five years ago. It’s great for those “oh look how little Elder is in that picture!” kinds of moments. I don’t feel comfortable sharing pictures of my kids on my normie feed anymore, but I still want to do more than just have a folder sitting on my computer somewhere that gets looked at once in a blue moon. Plus, Elder is getting more involved with using the computer, and I wanted to give her a chance to express her creativity without the risk of letting her have a YouTube account. So I did the only thing any sensible tech dad would do. I set up an internal WordPress site for the family to use.

Setting up internal domain

I’m pretty proficient with Windows domain controllers, and manage a lot of contoso.local domains that aren’t externally routable. I decided that I wanted to do this, so that the site could be accessed only from our local network. That way we could easily access it from any of our personal devices, and can potentially allow friends and family to look at it when they visit and join our network.

Bind is the go-to DNS server for Ubuntu, so I started by installing and configuring it. However I quickly got lost in a maze of .conf files and StackExchange posts trying to get it to work, so I dumped it and installed dnsmasq instead. Dnsmasq relies on simple host files instead of the more complicated zone files that bind uses, which is more than enough for what I need at the house.

I setup my /etc/dnsmasq.conf file as follows using this guide:

# Don't forward plain names or non-routed addresses
domain-needed
bogus-priv

# Use OpenDNS, not ISP's DNS router
server=208.67.222.222
server=208.67.220.220

# Replace second IP with your local interface
listen-address=127.0.0.1,192.168.1.123

expand-hosts
domain=dahifi.internal

Then I setup my /etc/hosts file with the records I need, pointing to the downstairs server and my development workstation.

27.0.0.1       localhost.localdomain   localhost
::1             localhost6.localdomain6 localhost6

192.168.1.123   dahifi.internal
192.168.1.123   homeboy.dahifi.internal   homeboy
192.168.1.102   oberyn.dahifi.internal    oberyn
192.168.1.123   elder.dahifi.internal   berkley

After saving changes, I need to restart dnsmasq: systemctl restart dnsmasq. From there I was able to validate the configuration on the server and external machines using nslookup. Once I was comfortable that things were working, I added my internal server’s IP to my router’s DHCP DNS scope and refreshing the client leases on a couple devices to make sure they would work.

Note about .local domains

I’ve never had issues with domains ending in .local among my Windows business networks, but Ubuntu may have a multicast DNS service called Avahi running, which hijacks anything FQDN ending in .local. Interestingly this service was missing off of the actual Ubuntu server install, which interfered with my troubleshooting. The simplest thing to do to get us up and running was just to change our internal domain from dahifi.local to dahifi.internal. Any other non-routable TLD should work as well.

Additionally, Ubuntu ships with resolved, a network name manager service. It runs a caching service at 127.0.0.53, and interfered with my troubleshooting as well. My internal domain kept getting routed to my ISP’s search page, until I ran sudo service systemd-resolved restart to clear the cache.

Multisite Docker setup using Nginx Proxy

The SSD Nodes site has a nice write up of how to run multiple websites with Docker and Nginx that I was able to use to get our WordPress site up and running. I prefer putting everything in a docker-compose file. The only prerequisite is creating the network:

docker network create nginx-proxy

docker-compose.yml:

version: "3"
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

networks:
  default:
    external:
      name: nginx-proxy

And a second file, blog-compose.yml for the blog itself:

version: "3"

services:
   db_node_blog:
     image: mysql:5.7
     command: --default-authentication-plugin=mysql_native_password
     volumes:
       - ./blog_db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: root_password
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress_user
       MYSQL_PASSWORD: wordpress_user
     container_name: blog_wp_db

   wordpress:
     depends_on:
       - db_node_blog
     image: wordpress:latest
     volumes:
       - ./blog_wp_data:/var/www/html
     expose:
       - 80
     restart: always
     environment:
       VIRTUAL_HOST: dahifi.internal
       WORDPRESS_DB_HOST: db_node_blog:3306
       WORDPRESS_DB_USER: wordpress_user
       WORDPRESS_DB_PASSWORD: wp_password
     container_name: blog_wp
volumes:
    blog_db_data:
    blog_wp_data:


networks:
  default:
    external:
      name: nginx-proxy

You’ll notice that the site that the blog is published to is identified by the VIRTUAL_HOST environment variable. In this case we’re still pointing to the “top level” domain, dahifi.internal, and not blog.dahifi.internal. This is due to issues we were having with subdomain resolution on the Nginx proxy, and is something we’ll have to work on later. Originally, we had our internal GitLab instance running on this host at port 80, and had to take it down for Nginx to work. My next step is to make sure that subhosts work properly, and then reconfigure GitLab and this blog to run under something like git.dahifi.internal.

Image uploads

One additional change that I needed to make was to change the default file size limit of 2M. Following along with this setup tutorial, I added - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini line to the WordPress container, then added the following to the uploads.ini file:

memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M

Then I rebuilt the container with docker-compose down and up, making sure to specify my blog-compose.yml file.

I still encountered errors trying to upload. WordPress kept throwing

Unexpected response from the server. The file may have been uploaded successfully. Check in the Media Library or reload the page.

I couldn’t find any errors in WordPress’s Apache instance, and PHP looked fine. I eventually found a message in the Nginx container log: client intended to send too large body. It seems that Nginx has it’s own limits. I added client_max_body_size 64M this directly in the /etc/nginx/nginx.conf file, then reloaded it with service nginx reload. Problem solved! Not only can I upload files directly through the web interface, but I was also able to add the internal site to the WordPress app running on my phone, and can upload images directly from my phone.

Elder is already working on writing a story in it now, and I’m looking forward to using this site as an internal bulletin board for the family. Let’s see what happens!

Thinking in public

greyscale photography of skeleton

Down the Venkatesh Rao rabbit hole

Venkatesh Rao popped up in my Twitter feed recently, and I’ve been digging through his work, most notably Ribbonfarm, but also Breaking Smart and The Art of the Gig. I just finished his magnum opus The Gervais Principle, which is interesting in an of itself, and I found his reading list and take on gig work fascinating in itself.

The Gervais Principle is a complete philosophical structure that Rao picked up while watching The Office, it basically deconstructs why the show works so well, and the reason why it’s so cringe-worthy. Now I haven’t watched The Office in many years, and summarizing Rao’s thirty thousand word treatise here is ultimately going to miss a lot of the subtleties, but I’ll try anyways. I wrote briefly about it a few days ago.

Company hierarchy

Society is made up of three classes of people, Losers, the Clueless, and Sociopaths. The losers, (in the economic sense) are people who are basically resigned to make up the mass of people within an organization, and make up your typical working class Jane or Joe. Within this group you have slackers, who are aware of their place and see no need to put in any extra effort, and the unaware loser, who is usually gung-ho about doing a good job. This second type of loser is sometimes promoted to Clueless, as they are needed as a buffer zone between the losers and the sociopaths, who are the Gordon Gecko types within the organization who are focused primarily on extracting as much wealth from the company and getting the hell out. The Clueless, in Rao’s words, serve as control rods between the tops and the bottom of the pyramids, and prevent the whole thing from blowing up.

Rao goes into great detail about how this plays out, ascribing different types of language that the various groups use among themselves: powertalk for the Sociopath to Sociopaths, posturetalk for the Clueless to the everyone, and babytalk for everyone to the Clueless. There’s a few others, and Rao provides some convincing examples of each. Furthermore, he cites about two dozen business management books as his references. Rao is a prolific writer, it seems, and one could easily get lost for weeks trying to read all these sources. Rao himself spent over five years writing The Gervais Principle. Good luck.

I’ll note that I tried to explain this theory to Missus, who works in mental health, and she accused me of trying to mansplain sociopathy to her. I told her Rao’s definition is a homonym of the term, and not a redefinition of the DSM manual. I’m not quite sure she’s going to go for it the way I did. Part of the reason I find it so amazing is that it gives me a new way to frame social and political interactions, and once you see it, it’s impossible to unsee. I’m not going to completely psychoanalyze my life here and now, but it’s easy for me to see how much of my life’s inner misery has been caused by conflict between my tendencies along these lines, mainly my status as overachieving Loser with Sociopathic aspirations, even though I mostly wind up Clueless.


I don’t want to spend too much time here going more into The Gervais Principle, it would really require a reread, and quite possibly a rewatch of the entire run of The Office to discuss further, and Rao has so much more content that is worth exploring. I like the fact that the Ribbonfarm has a guide for new readers, but I’ve only had a cursory look at the rest of the content. (Blockchain Man is definitely up next on my list.) Breaking Smart looks promising as well, focusing on the the theme of software eating the world. And The Art of Gig, which focuses on freelancing, is really what I need in my life right now.

The latest post, Model Questions vs. Actor Questions, is useful because it forced me to re-evaluate the type of work I want to be doing as a technologist. Do I want to be a model, or someone who is interchangeable and doesn’t stand out, or an actor, someone who is known and differentiated among their peers? The latter, obviously. This requires a reframing of the type of questions I need to ask myself about what type of clients I take on and how I promote myself. It is definitely going to force me to re-evaluate my goals. Rao defines modeling, in the context of freelancing, as “consolation prizes for jobs,” which makes perfect sense.

The next post on The Art of Gig, Sparring as Tenure, has some interesting ideas around thinking vs. doing. When one starts out in a field, they’re mostly doing, and over time one should be able to reduce the amount of doing they get paid to do as income shifts to thinking (read: consulting or advising) work instead. I am clearly failing in this endeavor. In my day job, I’ve managed to offload a lot of the end user facing tasks, but because the size of Zombie, LLC has basically collapsed with me as the center of technical operations and service delivery, I’m stuck doing most of the grunt work.

On the other hand, I have been successful in reducing my time spent working to the bare minimum, that I might focus on other projects during my day to day. I basically consider myself a retained employee at this point, on call during certain times of the day and with a certain baseline of responsibility that I’m expected to uphold. Compare to my other friends in the industry, this baseline is very low. My goal at this point is basically to be able to go offline one or two days out of the week, to be able to focus on deep work projects outside of my day job. These will be the core of my new consulting efforts.

Part of my difficulty lies in the fact that I’m trying to go independent in a field separate from that which I’ve been doing for the past twenty years, basically, going from end user support to business network systems engineering to software development. I don’t have the prior performance needed to demonstrate my competence. It’s what’s holding me back from applying to many of the software engineering roles that I’m finding. Instead, I’m going to have to continue doing for now, building up a new portfolio of work, social proof if you will, that will allow me to pick up new work and build my consultancy. Eventually, I will be able to provide value by presenting ideas, and have the implementations left to others. That’s an exaggeration, of course, since I’ll hopefully never stop doing the work that I love to do.

The theme around what I’m doing now is changing, of course. I’m no longer content to just take on whatever support projects are out there, forced to take on whatever clientele I can take. I’d like to be afforded the opportunity to be more choosy with the projects that I take on, that are more interesting and challenging that the type of work that I disdain today, like troubleshooting people’s workstation issues. For now, it pays the bills.

In the long term, even the thinking type of sparring work that Rao and his guest contributor describe will hopefully give way to self directed work, income generating activities like publishing ebooks, or things like Substack subscriptions. If the below graph is accurate, I should consider myself successful if I’m able to reach this point by the time I’m fifty. We’ll see if I can hack it.

Source: Sparring As Tenure – The Art of Gig

Lastly, I wanted to mention Ryan Robinson, who I was introduced to via this sensational Medium post, How This 30-Year-Old Made $451,238 Blogging in 2019. I haven’t delved into Ryan’s blog yet, but I wanted to mention it since he seems to share a property with Venkatesh Rao, namely, ultra longform content. Ben Thompson’s Stratechery should be included here as well. This seems to be a common characteristic that I’ll need to emulate if I’m to have any hope of making a living out of my writing. Of course, I may have to consider affiliate deals as well, and should probably mentally prep for the fact that I’ll need to keep writing for several years before things start taking off. Next month will mark one year since I’ve been treating this blog as a job.

We’ll see how things go from here. There are many things I’ve got to figure out from here. I don’t think I’m going to be able to maintain pseudonymity much longer, I’ll have to make a decision to unmask myself and stop writing publicly about the people in my life, or just stop reposting content across identities and platforms. I have a feeling that the daily content will have to change. I made a decision to focus the Substack on longer (two thousand word) posts, which is too much for me to maintain here with the random topic of the day, so I need to figure out what it’s going to be.

For now I’ll just keep reading from others who have had success with it, and emulate them as much as possible. And in the meantime, keep on writing.

Bitcoin and beer

shallow focus photo of brown glass bottle

There are still people who have never heard of cryptocurrency.

Another Monday, another block on the life calendar crossed off. Father’s day was good, my dad came over and we got to talk to my brother overseas for a bit. I whooped my old man’s butt at chess, and even got Missus to play a game of Dune with me. Watched some Snowpiercer and drank too much beer.

We met the new neighbors, briefly, and I helped my old one remove a child’s swing set from his back yard as the sun went down. I wound up dumping my whole two hundred piece tool set in yard. I have no idea whether I fished all the sockets out of the deep grass; it was getting too dark.

After we were done hauling the swings to the road, we sat drinking beer and shooting the breeze. The subject turned to real estate and work, and I was talking about bitcoin for several minutes when he asked “did you say bitcoin?” He’d never heard of it before. I was kind of shocked, but enjoyed the opportunity to try and explain it to someone who had never heard of it before. I promised to follow up with some resources about it, and said goodbye.

It is truly amazing to me that there are people out there who have literally never heard of bitcoin. Not that don’t understand bitcoin, but haven’t heard of it at all. It just really shows how early we are in this industry, and how much work we have to do on the adoption side. My neighbor was aware of what has been going on with the Fed, and understood the concept of stock-to-flow, but I wound up going back to discussing double spend problem and was on my way to explaining proof of work before things got too late. It wasn’t really the best pitch, so to speak.

I’ve obviously got a target for a new blog post. I wrote an intro to cryptocurrencies about two years ago, but it’s in dire need of updating. I guess I know what the subject of next week’s substack will be.

I’ve got a lot of work to do today. The Substack is scheduled to go out by the time I hit post on this, then I’ve just got to publish the version I put together on my LinkedIn page. It’s all about the page views, baby.

And something really interesting was in the paper yesterday.

Futurists/technologists. If you’re looking for “a wide-open niche in almost every industry,” this might be the option for you, Michelic says.

“The world is changing at such a fast pace that we need people who specialize in gaining knowledge from multiple domains, consolidating and distilling that knowledge, and communicating it to the proper audience that can put the information to its highest and best use,” he says. “These positions look at technological and data trends across multiple industries and connect them to other industries. They are communicators for the future of work, distribution, manufacturing, travel and commerce.”

Source: Bright spots in pandemic job market.

Looks like I found my niche.

Father’s Day

It’s just after six in the morning, I am the only one up. I went to bed on time, and finally got out of bed after waking up at two thirty and four thirty. It’s going to be a beautiful day out today, with some rain, and I’m looking forward to relaxing.

I didn’t work on my Substack article last night, instead deciding to take it easy. Played some video games, spent some time on the piano, and continued reading The Gervais Principle. Amazing stuff.

During meditation, I had the idea of moving these morning pages, journal posts off of this site and putting them on a local-hosted WordPress that’s only accessible inside the house. I could set it up so that the girls could post their videos, and I could type freely without having to mask everyone’s names. Can a seven-year old use WordPress, or would I need to make something simpler, that would be as easy as posting to Facebook or Insta? Will table for now and let the idea simmer.

There are two gifts that have been sitting in the downstairs hall closet for well over a month. One of them is quite large and heavy, and I cannot wait to see what it is. I still have my birthday gift from my brother, a copy of the newly reissued board game Dune, sitting on the dining room table, where I await a challenger. I think it might be too complicated for Elder, and Missus has no interest in playing it, but maybe the two of them together would be ok. I might be able to recruit one of the dad’s down the street since he likes games like Risk, but I don’t know how the logistics of that would work out. Maybe if we played outside it would be OK. I still don’t want anyone outside the immediate family inside the house.

I’m debating whether to good a big dinner this morning. I haven’t talked to my dad about doing anything, and don’t really feel like spending two hours trying to use my new outdoor griddle again. Missus never cooks breakfast. Maybe I’ll just make a quiche or something instead, just fry up some bacon and potatoes and dump some eggs over it. Sounds delicious.

I’m going to wrap this up and take a crack at the Substack. I really want to finish it and get it released tomorrow, or I’ll have to reevaluate my goals with it. We had a few unsubscribes after my first official blast, but nothing serious. I’ll need to figure out way to build it up. Right now LinkedIn seems like the only way, since I’m not getting out, and my normie Twitter account isn’t getting much action.

Speaking of which, I don’t think I went on Twitter once yesterday. I didn’t feel like these ‘morning pages’ types of posts warranted a post, since it’s just me talking to myself and I’m not really offering anything useful to anyone. I’ll have to work on that. Part of the problem is that the effort needed to publish these daily ramblings is a bit much for what I’m writing: find an image, write the SEO, validate the Twitter card, then post it. On top of that, I’ve been rewarding myself afterwards by scrolling my timeline. The WP to Twitter plugin I had been using broke some time ago. Anyways, I think it’s better for me to stay off Twitter completely, until I finish the Substack.

It’s just after six thirty. I might get an hour of writing in before the girls wake up. Time to go.

Evening pages

I’m writing this after dinner. Last night was another stay up late night playing video games on a Friday night, and I slept in till 9:30 this morning. My routine was ruined. I managed to make up for it though, restarting my day after getting some work done. Right now I’m sitting her in my usual writing spot, sipping my tea. Wifey managed to get the girls to do a lot of cleaning done, and even cooked a wonderful dinner of roasted vegetables and chicken breast. I actually managed to get some stuff done myself, changing some light bulbs and installing a bidet in the master bathroom. The water pressure is so powerful that the jet sprayed clear across the room the first time I turned it on, but at least we won’t have to worry about running out of toilet paper.

One thing that I did not get done was sending out my Substack last night. I did write a lot, but ran out of steam after a few beers and wound up playing Factorio and whatever game of the week the Epic Games store put up. Some turn based action game like X-Com, but with Nazis and RPG elements. It’s actually quite good. Anyways, I’m hoping that after I finish my routine I’ll be able to write the final paragraphs and get it scheduled for release Monday morning.

My next door neighbor, B., is moving out tomorrow. He had been scheduled to close on his house before the Lockdown began, but then the buyer was unable to clear the final credit check. No idea if it’s the same one taking the keys tomorrow. He said they have three young boys, so it seems that things are about to get a lot more interesting around here as far as the kids are concerned. I hope they’ll be good neighbors. B has really been tops and I’m sad to see him going, but he and his wife have taken new jobs outside of the area.

Something interesting came up in my mailbox today, a Medium article about WorldQuant, a hedge fund that is offering a free Masters in Financial Engineering. I took a look at it, and right up my alley. Data science and free, can’t go wrong. It’s a two year program though, and requires twenty five hours a week time commitment. I don’t think I can commit to that right now. I’ll probably table it and re-examine it in a few months before they start their September session. Might not hurt to go ahead and apply and get cleared. If I do it though, there won’t be room for any other business opportunities though.

The ASUS ZenWIFI AC router and mesh access point is working real good, now that I’ve gotten it setup properly. I think I botched a firmware update that made it go all haywire; I called ASUS support but wound up fixing it myself. The thing has a lot of features on it, wrapped up in a slick interface. It’s real nice. The tri-band antenna is really powerful and reaches all they way into the back yard, the only bad thing about it was that I waited so long to get rid of that old Linksys router. This thing is running a full Linux install under the hood, so theoretically I could install a full bitcoin node on it if I wanted to. Just attach external storage and who knows what I can do with it.

I discovered the band IDLES a few days ago. I went to run errands on Thursday and went to turn on my podcast through my car’s bluetooth when my phone started playing some radio station on Apple Music. They played GROUNDS, and I was hooked. The DJ went on to spout all kinds of gushing praise for the band, so I went and checked them out. I’ve been binge watching their live performances, and man they are good.