Good luck, Gary

A little over two years ago, I wrote a blog post about Gary; a friend of mine. In it I lament the fact that he has coasted through 35 years of living and does not understand the responsibilities that come with being an adult in a committed relationship. The bulk of my concerns were laid out right in the middle of the piece:

While I like the man a lot, he's not exactly a go-getter. He likes to take things easy and allow events to unfold rather than forge his own future. He's worked part time at the day job since the very beginning, and would often rely on his parents to cover various bills. Despite being in a committed relationship with a woman who is very serious about having children, he's unwilling to take on the requisite responsibilities that come with "being a man". He could switch over to a full-time contract at the day job and have a steady income with a five minute conversation, but doesn't want to. He says that the workload would be too exhausting. He's not particularly keen on using any additional skills or knowledge to earn money, as it would take time away from whatever it is he does when not at work. He's not even particularly interested in seeking out a better-paying job — of which there are many — as that would eliminate any seniority he might currently enjoy … which means almost squat at the day job unless you're a full-time or unionised employee. How in the world is he going to afford to support a family? […]

The fact that Gary has never had a full-time job worries me. Can he keep up with a child? Will he hand the young person off to his wife and abstain from his responsibilities? How will he afford the never-ending list of things to buy? Diapers, wet sheets, clothing, toys, books, community activities, school …. The list is almost endless and there is no avoiding them. Heck, what kind of example will he set for his child if he doesn't accept a heavier burden of responsibility? […]

The man is 35 years old. He's not a child, yet continues to shirk responsibility as though he's still in high school. I care about his future just as much as I care about his present, but any conversation where it's suggested he work harder is shut down much faster than it starts. There's no denying that life is undoubtedly more enjoyable when moving at a relaxed pace and the most pressing responsibility is paying this month's cell phone bills, but this is no environment to start a family. I want him, his wife, and any future children to succeed in life. How can I communicate this to him in a way that he'll accept?

What I wrote two years ago about Gary's attitude towards life is just as true today as it was then. However, in the 26 months that have passed Gary has gotten married, seen his hours at the day job dwindle due to COVID, moved in with his wife's parents in an effort to save money and, as of yesterday, become a father to a child that was born far too early.

Looking at the short list of facts, my friend is a 37 year old man who works less than 10 hours a week, has a wife and child who both need a great deal of medical attention1, two cell phones, a car, and a remarkable lack of ambition. I've tried to help him find more steady work, but everything is knocked away.

A Conversation With Gary

Gary has lived in Japan for 12 years and still cannot speak the local language worth a darn. Sure, he can do simple things, like buy groceries or get a cell phone, but he won't make the effort to learn enough of the language to work at a school, which is a job he once wanted more than anything else. Being an ALT – an Assistant Language Teacher – at a public school is no walk in the park. People expect you to be present and contribute to the classes. They expect you to lead all listening and speaking activities. They expect you to jump from class to class and never complain about not having time for lunch. However, it's a solid job with a solid contract that pays a guaranteed amount every month … and schools all across the prefecture are practically begging people to come work with them. The barrier to entry is very low.

Continuing the Conversation

A work-life balance of 60/40? Let's take the "generous" number there of 60% work and figure out how many hours that is per week:

  • 168 hours in a week
  • 56 hours sleeping, assuming it's 8 hours in a day

That leaves 112 hours each week that Gary is awake. 60% of that would be 67.2 hours of work and 44.8 hours of family time. In an average week I do about 60 hours for the day job and 20 hours of freelance work Monday to Friday. I don't work on weekends. Gary hasn't worked 67.2 hours in a month for as long as I've known him.

He wants to be "50% in for child raising", which is a laudable goal. However, he forgets that if he's 50% in for child raising, that means his wife will need to be 50% in for paying the bills. Given the current situation, that's not only unrealistic, it's cruel.

The man has nothing in the bank. The money he earns every month is less than half of what I pay in taxes. He lives with his in-laws because the cheap apartment he had in town previously is too expensive. He needs to buy clothing, diapers, food, a car seat, furniture, linens, and a thousand other things that people try to prepare before a child comes into the world. His older car is expensive to keep on the road. His cell phones, while older models, are not cheap.

While just the other week …


You know … I'll take that back. I can't call Gary a man. Because he isn't. He's still just a boy playing "house" and not understanding just what it is that he is responsible for. A husband and father are responsible for the financial well-being of the family unit in addition to being a proper spouse and role model for children. This doesn't mean that women cannot go out and earn, or that men should earn more but, when a woman gives birth, the last thing someone should ask them is when they'll get back into the workforce because diapers and formula are running out. It's great that Gary wants to be there to raise his child. It's great that he's thinking about a work-life balance to make sure he doesn't miss out on the opportunity to see the world through a new set of eyes as though it's the first time. However, a person who is damn near unemployed does not have the luxury to dictate terms like this. He should be out working multiple jobs to put food on the table and diapers on bums. Yeah, it'll be rough. Yeah, he's 37 and employers are going to have a hard time justifying hiring someone with a resume that has just two jobs in the work history section, both of which state "Part Time". And yeah, he's going to miss some of the moments as his son learns to control his body and interact with the world. Gary's wife will be angry that so much of the child-rearing is being left to her while he's at work, and that's a completely justifiable complaint given that her husband has been employed – part time – for 22 years and doesn't have anything to show for it.

Gary and I have known each other for over two decades. We've talked about a million different things, including the importance of taking on responsibility and putting the needs of family ahead of self. Yet it seems the weightier discussions have gone in one ear and out the other, just as it did when Gary's father tried to instil in him a proper work ethic.

Despite the disappointment and frustration I feel towards the guy, I want him to succeed. I want him to be able to provide his family with more than just the basics of survival. I'd like to see him life in an apartment or house without the need for generous support – and patience – from the in-laws. Heck, I'd like to see him stand up to the challenge of learning Japanese and actually using it.

Won't Even Choose Kanji

My Japanese skills are not great, and every day I find a larger gap between what I think I know and what I actually know. My son will be five years old in a couple of months and he comes home with new vocabulary that I need to look up and learn every single day. If I don't do this, it'll be just a couple of years before we can't even communicate with each other. Will Gary do the same for his child? Or will he expect everyone to speak English at home?

So much of this has been laid out to Gary over the last couple of years and particularly now that he's responsible for a vulnerable little human. Unfortunately, any time our conversations turn serious, he gets quiet and puts the phone down. This is true whether we're using text or having a call.

I want him to succeed. I want his family to know they can rely on Gary to do the hard work when times are tough. I want him to learn that it's not okay to be a self-centred, lazy piece of crap when people need him to make sacrifices for the betterment of the family unit.

Unfortunately, I don't think this is something I can help him with anymore.

Good luck, Gary. You're going to need it.

  1. Japan has an excellent medical system with a good portion of doctor visits and examination costs covered by the government, but it's most certainly not free. I generally pay about $25 every time I see a doctor at a clinic and it's about $20 for the kid. If we have to go to a big hospital, we're looking at spending at least $50. My most recent visit had me go through an MRI and do some blood tests, which came out to $175. Not at all a ridiculous amount, but it can add up quickly.

Being Quiet

Almost six months have passed since I transferred divisions at the day job, leaving behind a better-paying position with loads of opportunity for one that is far less visible, far less challenging, and far less important. The change was made for a long list of reasons and I'm satisfied with the effects of the transfer. Not only do I feel a lot less anxiety every time I sit down in front of the keyboard, but I am able to approach problems without feeling unnecessary pressure as seconds turn to minutes and minutes turn to hours. So great was the burden half a year ago that I stopped wearing a watch and hid anything that reported the current time in my office.

This new role sees me doing similar things as before, as people report problems and I work with them to find solutions. However, these problems are often self-inflicted wounds created by people who wanted to find a simple solution to a complex issue, only to create a black hole of "legacy" that everybody is now afraid to touch or modify. Fortunately, it's these messy situations that often have the greatest rewards. A person can sit down to understand the original and current problems, talk to the various people that interact or are impacted by the problem, and find a solution that works for everybody. If a person does this correctly, they'll be rewarded with a daily stream of questions from colleagues who now trust them to offer answers that are realistic and actionable.

A few weeks ago a long-standing problem at the day job was eliminated with a few thousand lines of code that required two complete rewrites to get correct. Generally a rewrite points to a failure to understand requirements while two rewrites might point to incompetence or worse. For me, it was a number of factors that collided to create a situation where a solution needed to be built to replicate existing functionality of a system that had no documentation, no upgrade path to work on modern servers, and nobody at the company who new the ins and outs of the project. It was a pet endeavour for a manager who has left the company.

However, just because something is hard to understand does not mean it's impossible to overcome. Andy Weir said it quite well in his famous book, The Martian:

“At some point, everything’s gonna go south and you’re going to say, this is it. This is how I end. Now, you can either accept that, or you can get to work. That’s all it is. You just begin. You do the math. You solve one problem and you solve the next one and then the next. And if you solve enough problems, you get to come home.”

Mark Watney

This is how I tend to approach every problem at the day job. Projects that are expected to be easy may turn out to be multi-year undertakings that can change the direction of entire organisations. Objectives that have a long list of expectations can sometimes be solved with a well-designed Excel sheet that sits on an executive's notebook computer. Or, as is the case with this most recent effort, it can be an opportunity to solve hundreds of little problems, one after the other, until a complete solution is in place and a team of people you'd never worked with before sees the value you bring to the table.

Working in the global division at the day job certainly offered a lot of opportunity. A person with the right ambitions and office-political skills could easily work themselves into a C-level role within a decade, setting goals while coordinating resources and ostentatiously proclaiming success. That's not what I look for from a career, though. I like solving problems. Real problems. And experience has shown that the better problems to solve are the ones that a handful of people care about.

Thinking About v6

On May 8th, 2019 the foundation of what became the fifth version of the Midori Core PHP framework that I've built so many projects on top of was committed to GitHub. Midori Core 5.0 — generally referred to as v5 for some of the public-facing sites — was designed around the idea that the database should not only contain the bulk of the data validation rules for a system, but the queries as well. Prior to this major release, every query that was sent to the database came from a flat file that was populated with properly-escaped values. With v5 I wanted to try doing something that I had only ever done with .Net-based enterprise projects that relied on the might and versatility of SQL Server: put the bulk of all read and write operations into stored procedures.

This worked rather well for a while … and then MySQL, the database engine used by Midori Core for its entire history, developed a critical bug in version 8.0.221 that has yet to be fixed. This bug is encountered when a stored procedure is writing data to a table that has triggers in place that validate or transform data before it's written to disk. What this means is that just posting something to a 10C-powered site could crash the database, forcing it to restart; a process that takes about 10 seconds. During the restart, every site and service on 10C that requires reading non-cached data is non-operational. As one would expect, this situation is completely unacceptable. Bugs were filed. Data was shared. Teeth were gnashed. Unfortunately, a fix has not yet been issued and it doesn't look like anyone is going to get to it anytime soon. As a result, every system that uses Midori Core v5.x is forced to use no version of MySQL newer than 8.0.21.

However, v5 does have done thing going for it that none of the other versions of Midori Core could do: it can work with SQL Server and PostgreSQL.

Soon after MySQL started crashing every time a butterfly flapped its wings, I started thinking about making the back-end of the system work with other database engines. Microsoft's SQL Server was the first option, as it's the database I've worked with the longest and it does have a Linux version that can run quite well on any modern version of Ubuntu. PostgreSQL is a system I've avoided for a long time but have recently come to understand better as a result of a large project at work. Both of these options work quite well with stored procedures and triggers, making them viable alternatives to MySQL, and both have a large community of developers and administrators who genuinely seem to enjoy helping people when there are problems to overcome. Which one would be better for something like 10Centuries, though?

As with anything involving technology, the answer is "it depends".

I do have one system built on Midori Core that operates with a SQL Server back end. It's been running for well over a year and hasn't encountered a single database-related problem. The site isn't heavily trafficked, receiving perhaps 50-thousand requests per week, and runs on a t3.small EC2 instance on Amazon's Web Services. Average response time for most operations is under 90ms, which is acceptable.

Then there's the new system that I've been working on for the last few weeks which is using the same Midori Core v5 foundation as the other system, but with PostgreSQL handling the data. Many of the core tables are designed the same between the two databases. The functions that request data from these core tables are essentially the same, aside from some syntactic differences. Average response time for most operations is under 70ms, which is also acceptable.

Of course, the dozen or so systems that I've built with MySQL ask the back end also have relatively quick response times, but none quite as consistent as the projects running SQL Server or PostgreSQL. The key difference between the systems running MySQL and those that are not is the type of queries that are sent to the database. Since the MySQL bug has caused so much trouble with one of the underlying goals of the v5 project — namely, keeping all of the validation and interaction rules in the database itself — I've had to drastically simplify how systems running that database engine work with the data. This means more rules and validation happening in the middle-layer — the API — rather than the database. While this is fine for smaller projects involving a single developer, it can create "gaps" when multiple people work on the same project. Gaps are not good, as they lead to inconsistent results.

So with v5 now being compatible with three different relational databases — without the use of an ORM2 — why would I think about the next major release of the core framework?

For something completely different: modularity.

The majority of the projects that I've built on the Midori Core have the same foundational files containing the same foundational functions that I have used for years. The patterns are consistent and the methodology is reliable. That said, when a bug — or security problem — is found in the core files, it's a pain to go through a dozen or more projects, find the offending code, patch it, then deploy releases across a myriad of servers. What I would really like to do is structure the projects in such a way that Midori Core has its own source code repository — which it does — and other projects are forks of the Core — which is not how things are structured right now. Then, when the Core receives updates, that can be rolled out to the other projects via pull requests that kick off some unit testing to ensure that there won't be serious problems when deploying the updated code in a number of different projects. By having the Core able to work with multiple database engines, I'm one step closer to having a better update process in place. The projects become more modular.

There are other items that I would want to tackle with a fresh version number, such as better caching mechanisms, a more consistent use of "history tables" in the database, more consistent use of CSS3 across sites to take advantage of visitor colour theming preferences, and more. All of this could be built into the v5 platform, perhaps as part of the upcoming 5.4 release of Midori Core, but I am very tempted to use this recent functional improvement as the impetus for a better-structured system that I can continue to build on for several years before thinking about the next problem to solve.

Does this mean that 10C will be upgrading to v6 in the near future? Not likely. Heck, 10C was using the v4 platform for a full 8 months after v5 was in a stable-enough place to handle the work. That said, I would be very curious to know whether a PostgreSQL-based 10Centuries would be noticeably faster than the current MySQL-powered one.

  1. MySQL 8.0.22 was released on October 19, 2020. More than a year later, the bug that prevents me from upgrading the database continues to exist.

  2. An Object Relation Model … basically a piece of software that makes my job 50x harder when something doesn't work as expected. I do not use ORMs in my projects, preferring the "old school" approach of writing the queries myself. This allows for some better tweaking and more nuanced questions.

185 Months in a List

Every so often I stumble across a blog that has a design reminiscent of the early layouts that were common on b2, WordPress, and Tumblr in the mid-2000's. The layout generally has a title bar across the top, posts underneath and to the left, then a narrow section on the right for lists of recent posts, categories, common tags, and monthly archives. When I visit a site with one of these layouts I'm reminded of those early days of blogging when people would use StumbleUpon, Technorati, or link-exchanges1 to find new sites to read and the optimism that came with the medium. Anyone could be a blogger and, for a while, it seemed that many people were2. As the activity matured, themes changed to accommodate the different purposes people might have when publishing their words online. Landing on a site that uses an original layout — with a centre-aligned, 800-pixel, fixed width box, and simple colour scheme — tends to signal that the site has been abandoned by its author. Imagine my surprise when I landed on a blog with one of these classic designs to find that not only was the site active, but it's been active for 185 consecutive months!

Eighteen months ago I stopped blogging here daily primarily because everything seemed to be a rant. I was upset with the world, upset with the day job, and upset with some personal things. Given all that was going on at the time — and still are in some instances — I gave up the daily publishing of rage, opting instead to keep the missives locked away and off the server. Since making that decision, a number of things have changed.

1 — I don't write daily anymore

I like writing, but so much of it has become repetitive. Why would anybody read this? I wonder. Why would I read this? usually follows. Instead, writing has become more of an intellectual exercise than a journal or stream of consciousness. The note will start with a question or idea, followed by an examination. It's a way to rationalise an argument or opinion to see if it holds water, as writing forces a person to slow down and think things through. One of the many aspects of writing that I find useful is the ability to have an obvious list of references and citations. Running an idea through the mind is fine for initial examination, but having it down as structured text really forces an idea to prove itself.

2 — I quit my job

Well … this is one way to describe it. However, I was incredibly angry and frustrated with things at the day job for just over two years, and this was bleeding into my personal life. Stress levels were through the roof constantly, and nothing good — aside from the bigger pay cheque — was coming from the endeavour. So, in an attempt to regain some sanity and not be a complete jerk to the family every moment of the day, I stepped down from my role and requested a transfer to a different division in the organisation. After a small transition period, people started to notice that I wasn't angry all the time anymore and would often laugh and joke around during meetings. The wife and kid even enjoy spending time with me again, which is certainly a bonus.

The one thing I do miss about the old job, though, is the ability to lead when solving problems. While I can still do this to a degree with the current role, there are a whole lot of people who are in a position to veto my efforts and suggestions "just because", which can result in problems existing for much longer than they really should.

3 — I'm becoming a landscaper

Another slight exaggeration, perhaps, but I've really started to enjoy taking care of the yard. Earlier this year we replaced the dull soil surrounding the house with some proper grass, trees, and other plants. Since then, I've been outside daily — often several times a day — to get my hands dirty by tending to the greenery. The trees and leafy plants are regularly watered. Weeds are pulled. Grass is trimmed. Stones are redistributed. Seeds are planted and nurtured. While I won't win any awards for the effort, the hour or two that I spend outside in the yard every day is something I look forward to every day of the week.

In Search of Calm

The last few years have been incredibly challenging. However, after giving up on some of my career goals3, life has become a heck of a lot more manageable. There's time to walk every evening. There's time to play with the kid. There's time to walk and play with Nozomi. New routines are being developed and patterns enjoyed. This is something I probably should have done a lot sooner.

At this point, I don't know if there will be a return to a regular posting schedule, but I would really like to start publishing longer-form writing again. There are also a couple of things I'd like to add to the 10C platform to make it a little more unique when it comes to playing audio, displaying RSS feeds, and ensuring ownership of posts.

Time will tell, of course.

  1. GeoCities style! Link-exchanges were my first real application of JavaScript way back in the day.

  2. One could argue that many people are still blogging. One would be right, too.

  3. There were three specific projects that I wanted to bring to life. I was working on one, the other was taken and given to a different team, and the third is something senior management still doesn't want to think about.

Mental Block

Sometimes I wonder if historians will refer to this part of the 21st century as the Cabin Fever years. For the better part of 18 months I've been mostly confined to just the neighbourhood surrounding my home, interacting with almost nobody who isn't family or a next-door neighbour. This has resulted in a noticeable decline in linguistic ability and also a sort of restlessness that can keep a person awake at night. Like a lot of people around the world, I am very much looking forward to having the freedom to visit distant places again. Not only because this would allow me the opportunity to interact with new people again1, but because I'm hoping that being able to see unfamiliar things will rekindle the creativity that I've relied on for so much of my life.

  1. As it stands, my dentist and her staff are the first "new" people I've spoken to in a year and a half.


For so much of our life, we're encouraged by people around us to abstain from one thing or another. This makes sense, of course, as a functioning society cannot have 100% of the population doing whatever they please when they please. From chaos emerges new things, but too much will destroy everything that came before it. So we restrain ourselves and others from various activities for the long-term viability of a family, community, or society. With order comes predictability and stability … though too much of it can be oppressive. Balance is key.

Today marks my 9th consecutive day without any alcohol. This isn't something that I'm particularly proud of or wish to show off. It's simply a fact. Ten days ago was the last time I went out for a walk around the neighbourhood after 10 o'clock at night, bought two of my favourite Kirin 5% beverages, and sat in the park to consume them while watching Star Wars on the tablet. After a long day, this is really one of my favourite ways to unwind and relax because everything is "done". The boy is in bed. Nozomi has been taken care of. Work is finished for the day. The house is reasonably clean for the next morning. Everything is as it should be. So why not enjoy the last 90 minutes of the evening outdoors with some fresh air, absolute privacy, and two cans of 酎ハイ1?

As this is something that I clearly enjoy, I do not see a problem with the habit at all. In moderation, this sort of thing can be seen as a personal reward for getting through a difficult week or completing a stressful project on time. But what if this is something that a person does almost every night for years? Is it a "problem" or just a harmless pastime that someone enjoys?

When Nozomi and I go for our evening walks, I find my thoughts drifting towards the personal walk that will take place later in the evening. I pay attention to the wind, the clouds, and anything else that can offer a clue as to how nice the weather might be to see if I will brave the elements to enjoy the treat outdoors. I don't bring alcohol home, so it must be finished before returning. That means on particularly wet or cold days, I opt to stay home and stick with water or coffee. However, since 2018, I have followed this pattern for an average of 280 nights a year. Is this a "problem"? Some people around me would classify this behaviour as reckless, selfish, and ultimately harmful to health. While doctors have pointed at charts to suggest I take better care of myself, I genuinely feel healthier today than at any point in the last 20 years. The frequent trips out for some Kirin in the park do not show any obvious signs of being an issue.

Instead, what has me (over)-thinking this habit is what happens when I go out for a long walk without any alcohol, or when I do not go out for more than a few days. I start thinking about drinking more often. A lot more often. Earlier this week I found myself thinking about gin for the first time in almost 20 years. The last time I touched the drink was the early summer of 2002, and I remember the following morning very clearly2. In addition to gin, I have visions of sitting in the park, tablet in one hand, chūhai in the other. I remember the rare occasions when I would head to a bar with friends or colleagues and shoot the breeze. It is almost as if the subconscious is trying to entice me to head out and consume something.

There is no denying that I genuinely enjoy these quiet moments in the park, but the way the mind fills itself with thoughts of drinking during brief periods of sobriety have me wonder if perhaps I need to give up the habit for good. While I would not classify myself an alcoholic, there is a history of it in the family. Between the summer of 2002 and 2015 I rarely ever came into contact with alcohol. An occasional beer would be had, but never more than one or two cans per year. It was in mid-2015 when I started having one or two cans of beer every week. Then one or two a day. Then I switched from beer to chūhai with the occasional sampling of something else. Are the mental images signs of addiction? Or are these simply the markers of habit? Could I be just as satisfied sitting in the park with a soda every night? I'm almost nervous to do any sort of test analysis but, if there are signs of a dependency forming, then it might be best for me to abstain completely as I had for 13 years after leaving Ontario.

  1. Chūhai, which is an abbreviation of "shōchū highball" (焼酎ハイボール). I tend to grab two 500mL cans of Kirin's 5% blends: one grapefruit, and one seasonal. If there is no special seasonal flavour, I go with the classic lemon.

  2. I drank it straight the last time I had it, which would have made its alcohol content just a little too high for my stomach and liver. The next morning I felt quite ill.

The Sixth Day

When a phone rings before 9 o'clock in the morning, the person on the other end is rarely delivering good news. Today was different, though. At 8:52am Nozomi's vet called to say that she was feeling energetic and had healed enough to return home. We could pick her up after 4 o'clock in the afternoon. Good news is always welcome, particularly when it involves a member of the family.

Since leaving Nozomi with the vet on Monday it's been difficult to concentrate for any length of time. On Tuesday I was permitted a 15-minute visit to see how she was doing, then a daily phone call for updates. Never before has Nozomi been away from family for so long, and I was worried that the absence would slow her recovery. Fortunately, my fears were unfounded. Nozomi's recovery time was about normal for a dog of her age and, despite the boredom of being stuck in an air-conditioned glass cage with an IV connected to her leg for almost a full week, she seemed no worse for wear when we were once again reunited.

The vet who performed Nozomi's surgery showed us some photos from the procedure, from the first incision to the examination of the uterus to the confirmation of pyometra and subsequent removal of the organ. Given the amount of swelling, it's no wonder Nozomi was acting strange this past weekend and, based on what the vet had said, if we had waited until Tuesday to bring Nozomi in, she would not have survived to see Wednesday. The swelling was that bad.

After thanking the vet profusely and paying the bill1, we made our way home where Nozomi quickly took stock of the giant hole in the yard2, jumped into her bed, and took a nap. She's feeling better, but still not at 100%. Hopefully she will regain her regular exuberance over the coming days.

For the moment, she and I will have to hold off on taking any walks. Her wounds need a bit more time to recover and nobody is particularly keen on risking an infection. Nozomi's legs can only keep her body 5 ~ 8 centimeters off the ground, which means that grass will rub against her underside, which can carry things that irritate her weakened immune system. With any luck, she'll receive the green light from the vet to once again frolic in the park before June.

With Nozomi home safe and sleeping in her bed under my work desk, I hope we can all relax a little bit this weekend.

  1. We were told to expect a total cost of around $3,000 USD. The final bill was a little under half.

  2. The landscapers are extending the driveway, putting in trees, and laying grass.

The Longest Monday

This morning I woke up by hearing this: "Nozomi pooped on the floor again."

Every so often, usually shortly after Nozomi has her biannual period, this sort of thing happens. Because her body is recovering from the trials of being in heat, she will sometimes have a mess waiting for me in the morning. She's never scolded when this happens, because she and I both know it wasn't intentional. Today's mess was different, though. In addition to an uncharacteristically small amount of potent poop, there was urine and stomach acid on the floor as well. This means that she had a really rough night.

Yesterday, before going to bed, Nozomi and I sat together like we usually do in the evening. She was panting a little harder than usual, but I figured this was because of the recent temperature change. Until recently, the weather was pretty mild with 25˚C afternoons. Late last week, however, we hit 29˚C. Nozomi gets brushed quite often so that her fur is not thicker than it needs to be for the season, but she always pants more heavily as the mercury climbs during the months of May, June, and July. Thinking this was normal, I made sure her water bowl was full and went upstairs to bed. The mess in the morning made it clear that my assessment was way off.

After scrubbing the floor, cleaning her bed, and dealing with the mess, I brought Nozomi out to use the proper bathroom outside. Because she wasn't walking with a great deal of vigour, I carried her to a spot where she generally likes to relieve herself. She did, but with some effort. Returning home I set up her breakfast and replaced her water only to see that she climbed into bed and was not particularly interested in food.

When Nozomi isn't interested in eating, something is clearly wrong. Off to the vet we went.

Nozomi may be deaf, but she has a pretty good knack for knowing what's going on. For any typical trip to the vet, she will struggle and try to escape her fate. It never works, but 11 years of failure doesn't stop her from trying anyway. Today, though, she didn't even offer a glare. I could pick her up, put her into her carrier in the car, and drive the 9km to the same clinic we've used since 2011 without a single sign of concern. Again, something is clearly wrong.

At the vet's office she underwent an ultrasound, blood test, and other checks. The diagnosis was 子宮蓄膿症1, an infection of the uterus. To help her she would need immediate surgery. However, because this particular vet has for years pushed the idea of having Nozomi spayed and suggested that she might die otherwise, both Reiko and I were suspect of his claims this time. Animals, like people, have reproductive organs. It wasn't until recently2 that humanity started regularly spaying (and neutering) animals. So why would it make more sense to remove organs? God doesn't play dice. Nozomi's uterus was there for a reason.

The vet was pretty adamant, though. She needed surgery immediately, and only he could do it, and if we didn't do it right now she would die, and if she died he wouldn't care, because she's not his dog.

Yes. He said all of this.

A second opinion was in order.

There is another vet that Nozomi has been to from time to time when really sick. They're one of the highest-rated vets in the country and often have people waiting outside the clinic because the waiting room is at capacity3. We called ahead, explained the situation, and was given a slot to see a vet at 2:50pm sharp. We arrived on time and Nozomi was given yet another round of tests. Just like before, she didn't put up a fight. She didn't even try to resist. She just let all the people do their thing while focusing — if she can even do such a thing — on breathing. The diagnosis was the same: pyometra. She would need to have her uterus and ovaries completely removed immediately if she was going to see Wednesday.

The vet explained:

Her uterus and cervix have a bacterial infection that cannot be solved with medicine. For dogs like Nozomi, this is like having an appendix that is about to burst. If you wait even a few hours, there's a risk of the infection spreading inside the body where it cannot be contained. She must have surgery now. It's a little expensive …

I waved off the price. It didn't matter. Nozomi had her 11th birthday not two weeks ago. She still has plenty of time left to enjoy the parks around our house, the other dogs in the neighbourhood, and the attention she receives from so many of the people who see us together outside. I can always earn more money4. I cannot — and would never want to — replace Nozomi. There have been other dogs in my life, but none like her. And I will selfishly do what I can to make sure she's here for as long as possible, for as long as she can be here, while feeling as little pain or discomfort as one could hope for.

Nozomi was taken to the "hotel" at the back of the vet where she would wait three hours for surgery. Reiko and I were asked to go home as there was nothing more we could do. I signed the paperwork to authorise the surgery and absolve the vet in the event Nozomi didn't survive the procedure.

Then we went home.

And waited.

And waited.

And waited some more.

Eventually we distracted ourselves with dinner, which is one of the two times bad news usually arrives5.

And still we waited.

A little before 7 o'clock, two hours after the surgery was expected to start, we received a phone call. Nozomi was semi-conscious and recovering from her ordeal. The procedure was a success.

The twelve hours between the time I got out of bed to clean poop and the time when the vet called to say Nozomi was on the mend were perhaps the longest in recent memory. Nozomi has been sick before, sometimes terribly so, but rarely has half a day felt like a week of helpless waiting.

The voices of self-doubt that taunt me endlessly were conspicuously absent today. It's as if they knew better. But my conscious self filled in for their silence with this:

You can describe in detail how your computers work right down to an almost atomic level. You can explain how a star works. You can describe mathematically the properties of a magnetar from memory. But you can't do anything useful when someone you care about is sick.

I'm not a doctor. I have no idea how bodies work or what makes us alive beyond the basics that were taught in high school. All I can do is seek the help of experts when things get really dire. And, thanks to experts, Nozomi is recovering from her ordeal, minus some infected organs. So long as she regains her energy and appears to be on the mend, she'll get to come home before the weekend.

And for that, I am truly grateful.

  1. In English this would be pyometra.

  2. By "recently", I mean "within recorded history", which is arguably around 5,000 years. That's pretty recent in the grand scheme of things.

  3. Even before social distancing was a requirement.

  4. I understand that this is said with a great deal of privilege. However, even if I were not currently employed, I would find a way to cover the medical expenses.

  5. The other time bad news arrives is in the middle of the night.

Wading Back Into Freelancing

At some point around the end of 2019 I made the decision to wind-down the freelancing side business and focus on something different for a while. Unfortunately, that "something different" turned out to be just more time spent working for the day job. While this did result in earning more money than I would have through freelance contracts, the range of work was not nearly enough. One of the many things that I've come to enjoy when working with clients is learning of new ways to solve common problems, and codifying that in some sort of system, digital or otherwise. Last year was a wash for so many people, but 2021 is looking up. I've already had two former clients reach out to carry on with some projects, and I'm putting out feelers for more projects to see what opportunities might exist. Despite always feeling there's never enough time, I cannot help but feel the need to create new things that reduce friction in people's lives. It's pretty much the only thing I've ever been remotely capable of.

Working on the side often comes with a number of pros in the long run and cons mostly up front. There's the need to register a business with the government1, hire the services of an accountant twice a year, hire a lawyer within 90 days of registering to go over various legal expectations, obtain licenses and permits, and track financial data. All the things I grew tired of doing when freelancing last time. However, I do plan on being a little smarter about the legal requirements this year by making use of a company in town that specialises in these tasks for small businesses. I'll let the experts do what they do for a reasonable fee so that I can do what I do for slightly more than I used to charge … mainly because of the fees.

What I hope to achieve with this new foray into freelancing is a sense of accomplishment. While there are a lot of benefits to working with teams of smart people around the globe, I much prefer working with small businesses. People are just as focused on solving problems, but there's much more attention paid to efficiency and effectiveness. If something takes a little bit longer to get right, then the time can usually be accommodated with a small entity if it means saving money in the long run. I appreciate this approach a great deal and, by working with a smaller number of people, it's much easier to get answers to questions. Getting information from a company with 5 employees is much easier than a department with 50.

Of course, I do worry that I might once again bite off more than I can chew. As the years go by this body is much less forgiving of all-nighters. Perhaps some hard rules will need to be put into place again, like I did five or so years ago when it became taboo to look at anything with a glowing screen past a certain hour. If I force myself to put everything away — including the phone and tablet — by midnight, then it should be relatively easy to get into bed before 1:00am. With six hours of sleep every night, I generally wake feeling refreshed and ready to go the next morning.

This is wholly dependent on whether I can earn some freelance contracts, though. Right now everything is still in the early stages of discussions with former and potential clients. Once someone agrees to get started, then I'll put in the legwork to re-register Matigo Solutions with the local and federal governments.

  1. If I earn more than $2,000 per year, I will need to declare it on my income tax statements and collect tax from domestic clients.

Retired from the Help Desk

At the end of November I started to interact on the AskUbuntu Q&A site to help people solve problems they were having with my preferred distribution of Linux. Over the course of 112 days I answered 461 questions, earning 6,339 points and 42 badges. Looking at the monthly rankings, I took the number one spot for December 2020, January 2021 and February 2021. Clearly there were people who found my answers useful. Yesterday night, however, I pulled the trigger to delete my profile and forfeit everything that I had invested the time and energy into.

AskUbuntu Profile Summary

The first question people would naturally ask is "why?", likely expecting to hear about some sort of interpersonal drama or some other common reason for walking away from a community. Given that AskUbuntu is a Linux-focused community, and many Linux communities are not particularly known for having their arms wide open1, this might be the immediate assumption. However, aside from a couple of notes dropped in comments, there was almost zero interaction between me and the long-standing members who have been answering questions for years. The problem that I faced was this: I'm not patient enough to do Help Desk work.

Some of the question that people have asked over the last 100 days on the site have been genuinely interesting and have received some incredibly enlightening answers. I've learned far more about the Grub boot loader this year than at any point in the past. I've seen the correct method of asking someone for more details to answer a question. And I've even taken some of the criticism of my answers to heart to ensure that solutions are provided with supporting links to the documentation whenever possible. Despite my short tenure as AskUbuntu, I feel as though my technical writing has become a little more complete as a result, which will hopefully be reflected in all future documentation that I write. So, while there were a great number of positives, there was a recurring negative that had me questioning why I wanted to invest a few minutes of free time every day on something that wasn't of my own creation: the contemptuous self-defeater.

Self-defeaters are people who create their own problems. We all do this from time to time, but it becomes a bit much when the person who is seeking help derides solutions, refuses to provide information, then hurls insults. For the final two weeks on the Q&A site, this was pretty much everyone who had a question I could offer support on. The Help Desk — and just about any support job — is often a thankless task. For every dozen hostile people there will be one who thanks you2. Again, this is to be expected. However, looking at the number of hours that have been invested in providing the 461 questions and seeing how 318 of them had responses like "Didn't work" without any details3, or "Oh, I'm using Mint BTW, LOL", or never received any follow-up, I have to ask if my time wouldn't be better used blogging … or working on 10C … or maybe doing client work again.

Well, last night, I decided to start doing client work again when not working on 10C or blogging. However, just like everyone else on the planet, I'm still very much constrained for time. By keeping the profile on AskUbuntu, I would always be tempted to go back and answer a few questions here and there, sinking time into a potential solution that has a very high probability of receiving radio silence back from the person who asked the question. By deleting the profile and forfeiting everything that has been earned over the past four months, I can leave the site aside and invest my limited time into things that may prove more beneficial in the long run. This year I need to upgrade some of my server equipment and buy some software licenses for newer versions of tools that I use regularly. These things cost money, which means my focus should be on earning revenue. AskUbuntu, while an interesting place to learn more about the OS that I have relied on for over a decade, will not contribute anything towards these objectives.

Maybe when I will be a little less impatient after retiring. Until then, my time on the Help Desk will need to remain limited.

  1. This is usually a misconception that is played up in the tech press. Many Linux-focused communities are genuinely great with people who will bend over backwards to help strangers solve problems. The various "dramas" that get reported on often contain too many superlatives, which misrepresents the people, the communities, and the disagreements within or between them.

  2. The ratio that I've seen on AskUbuntu is closer to 4:1, which is pretty darn decent for a Q&A site

  3. I understand that not every solution I offer is perfect. But, if something doesn't work, at the very least provide an error message, or part of a log, or something that is actionable. Two words is not any way to drive out a solution from a stranger on the Internet.