Looking Forward to Spring

Halfway through the month of February the weather begins to inch ever closer to something that doesn't require someone to wear a scarf. More people venture out to the parks and more people bring their dogs out. All in all, it's a wonderful time for anyone who has been hibernating for much of the winter ... like Nozomi.

Blue Skies Above

The "high" temperatures for much of January were consistently hovering around 5˚C in the afternoons. Nozomi may be covered in fur, but she has found this winter to be particularly uncomfortable. We go out to the park two to three times per day so that she can stretch her legs and enjoy fresh air. However, because of the low temperatures, she generally didn't want to travel farther than a hundred meters in the park. The warmer weather this week was a welcome change for her.

Two days ago we went out for a nice jaunt before lunch and she was in her element, jogging from tree to tree in search of a new scent. As it was just her and I in the park at the time, I took off her vest so that she could enjoy the sun for a few minutes while I snapped pictures. It was a lovely afternoon out. She didn't want to come home too quickly.

Nozomi Enjoying Freedom

But now the temperatures are about to dip and Nozomi is curling up on her heated blanket, refusing to come out from her little room under my desk for more than a couple of minutes at a time. She's looking forward to spring, as are we all.

In a couple of weeks we'll be getting some grass laid in the yard, which will be a welcome change from the exposed soil that we've had since the initial landscaping work was completed last autumn. Once this is done it'll be easier for Nozomi to enjoy some time outside in the afternoon anytime she'd like. The fence around the property is closed enough to prevent her from escaping (without human help), so this will make it easier for her to go out on her own occasionally ... despite her insistence that someone always be with her.

Five Things

It’s Sunday night, so time for another list of random thoughts that probably make no sense. What’s unfortunate is that these weekly brain dumps are incredibly self-censored. The topics that usually float around my head the day before the return to work are generally not accepted by polite company. People would likely feel bad for the caramel ice cream.

Fantastical fantasies involving dairy products aside, let’s jump right in!


I’ve been doing some analysis of the visits to my blog this week in an effort to optimize and refine some of the features that are being built into v5 and was surprised to find that the average number of non-bot visitors a page on this site might see in a given week is 27.34. In addition to this, of the 2,784 posts on this site, only 87 have not been accessed by a person in over a month. Given how abysmal a lot of the earlier posts are, I wonder if it’s time to think about “the right to be forgotten”.

Chatting with Neighbours

Nine months have passed since the family and I moved into our home, yet I still don’t know half the people in the immediate neighbourhood. While out for a bit of a walk today I met two people down the street for the first time who regularly see Nozomi and I head out for a walk. Usually when people discover that I can (roughly) communicate in Japanese, there is a regular assortment of questions that I am invariably asked. Queries about my nationality, language abilities, length of time in the country are the most common tropes. However these neighbours were more interested in something else: my line of work.

Nozomi gets three walks a day when there isn’t a typhoon bearing down on us. In the morning around 8:00, after lunch, and again before dinner at 7:00. Men of working age generally do not spend as much time at home as I do, which had some people wondering if I worked for the mob or sold drugs to be able to seemingly stay at home all day. A neighbour a few months back even asked if I was unemployed on account of the bad beard I was growing at the time.

The truth is seldom as interesting as neighbourhood rumours, so when these two men discovered what I do and for what company, they nodded and said that my job made more sense than some of the hypotheses people have had over the last couple of months.

Ka-mon Jeeson

The boy has gotten into a terrible habit of calling me by my first name rather than the title children usually have for their fathers in Japan1. This has happened primarily because Reiko uses my name a lot when talking to me. Sometimes he’ll stick to the standard “Papa” but, usually when we’re at home or in the park, he’ll look right at me and request something while calling me “Jeeson”. This means that I now have the additional task of teaching the boy to call me either “Papa”, as is standard in Japan for young children, or “Dad”, which is what I’ll likely prefer when he’s a bit older.

Nodding Off

Over the last couple of months I’ve found myself falling asleep for a couple of minutes in the middle of every day. The naps are rarely more than 5 minutes in length and seem to happen after playing with the boy for a bit. I wonder if this is a sign that I’m too old for toddlers …

Limited Conversations

Despite having the occasional chat with neighbours, I rarely get a chance to talk to adults outside the house about things not related to anymore. This has resulted in having the same conversations again and again with different people. While I can appreciate the opportunity to practise my Japanese, I do wish I had friends who lived closer. A lot of the people I’ve met here in Japan have been great and I’d love to maintain a connection. Getting together, though, has become quite difficult given that I work primarily from home.

I should do something about this ….

  1. I would love it if the boy called me something like “Grand Master Flex” or some other late-80s era MC name. It’s unlikely to happen, though.

Less Patience. More focus.

Some people have observed that, over the last couple of years, I've gone from being generally mild-mannered to being much more direct and impatient. This started to manifest shortly after leaving the classroom and has become progressively more noticeable since. Whenever someone brings this topic up, it's generally cushioned with fuzzy language like "You seem more confrontational lately" or "Your sentences are much shorter than before" or "Is this a bad time?" There's no denying that my day-to-day attitude has evolved over the last couple of years, nor is there any reason for it to change back to what it was. There simply isn't time to waste with careful consensus building or opaque, academic-sounding sentences anymore.

Behold My Field ...

At the end of the day, the lack of free time is what is driving the need to be more precise in my speech and less tolerant of laziness or general apathy in others. The calendar for the day job is generally cram-packed with meetings and "crunch-time" work that carry financial consequences if handled improperly. The calendar for the home is just as busy, albeit with different things. My time at the day job is typically sold at a rate of about $36/hr, while my time away from the day job is considered worth $50/hr1. So when someone wishes to dilly-daddle, taking their time to accomplish a task, I see it as a poor use of time that is costing me elsewhere. This isn't to say that everything I do is related to money, as it's most certainly not, but our time is a limited resource. We can shorten it as much as we'd like, but we sure as heck can't acquire more. If demanding that a salesperson respond to a phone message in less than 3 business days or getting frustrated with the DBA at work because they continue to make the same rookie mistakes after six years on the job2 makes me "the bad guy", then so be it. There's work to be done.

This does not mean that I'm intentionally rude or terse with people, nor does it excuse the occasional bursts of frustration that can result in a linguistically complex tongue-lashing. What it does mean, however, is that I will continue to work incredibly hard at everything I do, be it at the day job, with the family, or for personal projects with the hope that others will also do their best most of the time; which I feel is generally the case.

For most of the last 15 years, I've tried to take it easy and not rock the boat too much. This strategy, if you could even call it that, meant that I wasted a great deal of time waiting around. I would much rather not spend my time waiting, particularly when there are people and puppies that want attention.

  1. This may come across as a little odd, given that I am generally working from home, however I will consider the time I spend with my family to be of greater value than the time I spend in front of a computer solving what are essentially math problems.
  2. Yeah ... I'll just leave this topic alone for now. Suffice it to say, a person earning more than double my salary should know the basics of how a database works if their job title is literally "database administrator"

Goodnight Opportunity

Opportunity Rover at Cape Tribulation on Sol 3902

For almost 15 Earth years, the Opportunity rover allowed us to explore a narrow strip of Mars. For most of this time I have enjoyed going to the NASA Missions website to see the new photos from our red neighbour, most of which came from Opportunity. While there are other machines still operating on the distant world, none are quite as special as this rover was.

Day Seven

Despite my best efforts, there is still work to be done on the Anri v5 blogging theme. What I expected to be a two-day job appears to have been a four or five day task. Go figure! That said, there is quite a bit of functionality that has been put in place today, and I thought it would be interesting to go through some of the elements on here.

Logging In

The Login Form

One of the complaints that people have had about some of my websites is the over-reliance on JavaScript for things that a form could handle natively. While I'll admit that I do generally prefer to use JavaScript when interacting with APIs, it's not an absolute requirement on that part. For this reason, most of the forms across the Anri site do not require JavaScript to function. The login page will take the information presented and work with it as best it can. The toggle at the bottom to remain logged in1 is 100% CSS, and will work even when a person disables JavaScript in their browser.


The Settings Page

Just like the initial demo theme, it's important (to me) that people be able to make changes to their website without signing into the admin site. When a person is logged in, so long as they have ownership of the site, they'll be able to control basic aspects of the site. At the moment the options are rather sparse, as are the explanations, but this will fill out pretty soon. Some of the elements that need to be added include being able to change the site URL, force HTTPS, change themes, and more. That said, baby steps are required for the moment so that something can be released and tested by real people.

Proper Social Posts

Simplified Social Posts

Social posts will now appear on the site properly and show a little icon next to the time if it's been imported from an external service. For social posts that take place on the 10C network with other people, a speech bubble icon will let people know there's more to the conversation. Clicking the timestamp will open the page with the full conversation in view. What's nice about this is that comments on public blog posts, quotations, and bookmarks will appear in context. There won't be any need to go hunting around for links to see how a conversation unfolded. More than this, if you've logged into the site, you'll be able to comment right from there.

Better Font Usage

Font Style and Size

Previously the fonts were not exactly the easiest to read, especially on hi-DPI screens. To that end, a different font is being trialled and the sizes have been adjusted to ensure that different objects do not have wildly different sizes. This was a bit of an issue on cell phones previously. Future updates will allow anyone to change the size of the font on a 10C-powered website, and the preference will be saved in the browser. By doing this, a person who chooses to have larger or smaller text will be free to make changes without affecting anyone else's reading experience. The information will be stored either in LocalStorage, or in the browser's cookies.

Popular Posts

Nine Popular Posts

Another nice feature is the "popular posts" list in the footer. The list will show which items have been accessed the most in the last two weeks based on the performance logs. Some tweaks still need to be made to the SQL query that works this list out, though, as it does not make sense to include hits from GoogleBot, Bing, Yahoo!, or other crawlers. This will require some active examination of browsers to ensure automated systems are reduced as much as possible while also paying attention to people's right to privacy.

Still Left to Do ...

The Writing Area

This evening's work in progress has been the new writing area. The system will successfully publish blog posts and social posts, but quotations, bookmarks, and pages are not quite ready. Hopefully this is something that can be done tomorrow during some of the "downtime" I expect to create at the day job2. Post editing will also need to be enabled, but that will be done after the page can handle all the different post types.

In addition to this, some other features that need to be coded are:

  • Contact Form Message Reading/Responding
  • Interactive Commenting
  • RSS (both XML and JSON)
  • CC License Support

There are undoubtedly some others that I'm forgetting, but these are the key items that need to be tackled. When a few more elements are good to go, I'll migrate matigo.ca over and start having all traffic for that site managed in v5. The domain is the highest-trafficked site with just about 5,000 unique visitors a day (for reasons I don't quite understand), so will be a good test of the system performance and security. Hopefully there will not be any serious issues.

Tomorrow I'll get back to working "normal hours" with the day job, and there are at least three meetings where my presence is expected. Fortunately the day after is Saturday.

  1. all tokens in 10Cv5 auto-expire after 30 days of inactivity. Otherwise, a token can be used until the end of v5.
  2. I'm being asked by a couple of managers to work less. This is a topic that I've covered a few times on here, but now some people are starting to get serious about it. If the company wants me to do less work for them, then I'll use the recovered time for 10C ... and the family.

Day Six

One can accomplish quite a bit when given the opportunity to do so. This simple fact is proven by the rather nice series of updates that have been made to the Anri theme on 10Cv5, which will become the default blogging theme for everyone using the platform1. While my goal to have the ability to write new posts from the site did not come to fruition, the features that now exist and are working nicely can give me reasons to smile. Some CSS tweaks have fixed issues with some of my earliest posts, and some simplistic thinking has resulted in a pagination mechanism that is more accurate than the one used with v4. All in all, today was a very productive and rewarding day.

Some of the highlights from today's efforts:

  1. On-Site Logins: It's now possible to log into the blog without relying on Javascript to do so. This should make it easier for people who are trying to reduce the amount of code that runs in their browsers.
  2. Contact Form: The Contact form has been coded and wired up just right. This will ensure that people can see new messages in a timely manner, which is something lacking in v4 for some strange reason.
  3. Popular Posts List: This is just a little thing, but it will give new visitors to a site a bit of insight into what sort of posts people enjoy reading. A future update will allow site-owners to disable this function if they choose.
  4. Pagination: I've already mentioned this, but today's implementation is pretty slick. Much simpler than the version in v4, and more accurate.
  5. 403 & 404 Pages: Sometimes it's important to let someone know that something doesn't exist or isn't accessible without adequate permissions. These two pages will make it possible to communicate it clearly. It's the little things that people tend to notice.
  6. Navigation Menu: This is still a work in progress, but the navigation menu will grow and shrink based on what people would like to share with the world, just as one would expect it to.

There are probably a few things that I'm forgetting, but this list will do for now. Tomorrow is the last day that I can invest a large number of hours into the project this week, so the goal will be to make the theme as self-sufficient as possible. Being able to create and edit posts, as well as having comments enabled on the site will be key. I'm still thinking about what to do with anonymous comments, whether they should be allowed or not, but haven't come to any conclusions. The last thing I want to do is go the Facebook route and create a "pseudo-account" for anyone leaving a comment, making it possible for a person to join at a later date and get all of their comments auto-associated with the new account. Sure, this sounds like a useful feature, but the only tracking that is enabled on this site is for performance tuning and identifying how many page loads there are. I'd rather shut the project down than "spy" on people, no matter how convenient a function or feature might turn out to be.

On a completely different topic, I've been thinking a great deal about my facial hair lately. Today marks two weeks since I last shaved, and my face is still covered in patchy stubble no more than 5mm long. How is it that some people can't go more than 12 hours without needing a shave while others need the better part of a season just to show a bad goatee? Given the poor showing, tomorrow will see a clean-shaven face.

  1. There will be other themes made in time, but the Anri theme is the primary one that people will be using when they first create a site.

Day Five

Today was the first of three days where I've been able to dedicate more than a couple of hours to 10C, and it has resulted in some noticeable improvements with the Anri blogging theme, which I hope will be the new default in the coming days. This design is not the JavaScript-free version but instead one that will hopefully present a person's various (public) post types in a readable format while also giving writers the ability to compose items right on the theme itself. While doing this, a couple of the API endpoints that will be used across sites were refined with testing. All in all, I'm liking how the pages are coming along and will push to get this site completely migrated over before the end of the week. Dogfooding a project is really one of the best ways to find all the pain points that people will experience while using the creation. Interestingly, while getting a new development environment set up for the project, I discovered a performance issue that could affect people running the software on slower hardware, such as a Raspberry Pi. The root cause has not yet been discovered but will not remain hidden for long. Seeing local response times hover around 1 second is just plain unacceptable.

Another area that will be tackled in short order is the admin site. For most of the first six months of the project one of the main goals was to ensure that an administration site would not be required. This idea started to fall apart when thinking about how to give people the ability to export their data, fine-tune site settings, and manage an account. NextCloud integration is also on the cards, which means that people will need a consistent and logical way to manage their sites as well as files. These tasks can only be easily accomplished through an admin site. Like the blogging theme, an admin design is already mostly sketched out with some of the basic HTML and CSS classes created. As the week goes on, the admin site will start to connect to the API and come to life.

There's just two more days of the week left that are mostly dedicated to working on 10C. Given how much was completed today, I'm not confident that I'll get everything on the ToDo list complete before Thursday night. That said, of the 81 items scribbled on the pad, 4 have been checked off as completed. This is a heck of a lot better than the 0 that I've seen for most of this past weekend. Let's see how much can be accomplished tomorrow.

Day Four and Five Things

As the four-day weekend comes to a close, I’ve been asked by the Mrs. to not take four consecutive days off work anymore, as I am generally very antsy after the second day of not solving technical problems. As one might expect, I’m in agreement. It would be better to dedicate some time to personal projects and other distractions when there are more than 100 hours until my next official day of work. This doesn’t mean I won’t enjoy time away with the family if we go somewhere nice, but it does mean dedicating a few hours of the day to things that matter to me … and probably nobody else.

Generally I do a “Five Things” post on Sundays as it’s an easy thing to write before the coming workweek. As tomorrow is a dedicated 10C day1, it makes sense to run through five things today. First up …

I’d Really Like to Build a Palm-like Phone

As crazy as it sounds, I’d really like to make something resembling the PalmOS-powered devices of the past, right down to the easily-replaceable AAA batteries that would power the thing. PalmOS would not be met with a great deal of enthusiasm by the general public today, but it did have a lot of things going for it. Unlike today’s operating systems, PalmOS could not multi-task. It could do just one thing at a time and applications could not easily talk to each other. If you want to make a secure operating system in 2019, this would go a long way towards the goal. Graffiti was also an excellent tool to quickly scribble English notes into an application. Sure, a person could scratch through a screen in a matter of months (or weeks), but it was an incredibly fast way to accurately hammer out sentences. Did I mention there was no auto-correct?

A device that looked like a Tungsten T2 or a Tungsten E would be my ideal portable computer, with a modern screen, integrated Bluetooth 5.0 and WiFi g, a headphone jack, and a cellular modem with a hardware kill switch. Unfortunately, I have no idea how to build a phone, nor a network of people with the requisite skills. I’ll just stick with working on my existing projects for the time being.

MySQL (and its forks) Is Holding PHP Back

This should probably be its own post, but I’m more and more inclined to feel that PHP applications wouldn’t suck so bad if MySQL wasn’t the database of choice in so many projects. This isn’t to say that MySQL is a bad technology, per se, as it can be an incredibly efficient tool when used and configured properly. Unfortunately, this is rarely the case. The number of projects that ship databases that don’t include primary keys or logical indexes for their tables is just maddening, and the complexities involved when working with stored procedures is unnecessarily excessive. Looking at some of the larger PHP projects that I’ve been required to use in the last two years, it’s clear that the systems would be much more performant if the development team simply stuck to using flat files stored in the file system.

One could argue that this isn’t MySQL’s fault but, when this common database is used as a hammer, a lot of developers will see JSON-encoded strings as nails.

Encouraging People to Read

One of the projects I recently completed for the day job2 has a feature that will send a person a link via email, allowing them to sign directly into the application without a password. This is useful in the event that a person forgets their password or — more realistically — chooses to not remember “yet another password”. A lot of people really like this feature as it means they could change their account password to some insanely long string and forget about it.

One person doesn’t like it, though.

This morning a “high priority” email was waiting in the work account3 from a person who insisted that there was a problem with the system. They forgot their password, typed in their email after clicking “forgot password”, and was dismayed when the link in their email allowed them to sign directly into their account rather than force a password change and return them to the login page. How dare I save time!

Log In Via Email

I explained how the system worked and that the “Forgot Password” page never once said that they’d be asked to reset their password, but this was not good enough. Apparently I should have gotten in touch with this person during the design phase of the software because they never would have allowed a person to sign right into their account via email. What if someone else intercepted that message and logged in instead‽‽‽

I asked what the difference would be if someone intercepted a “change password” link, but this didn’t seem to compute. I was told to change the system at once or they’ll go to my manager. I gave them the name and email address of all five of the people I report to and wished the angry person a happy weekend.

Too Many Sounds

At Reiko’s behest, I’ve picked up some earplugs to use when my ears are feeling particularly sensitive to sound, which seems to be just about every day lately. When I’m a bit overrun by sound — particularly voices — every word contributes to a feeling of anxiety. I want to leave the room, the house, the area. I want to get into an open space outside where I can just listen to nothing. Wind and the distant rumble of traffic is fine, but too much up-close noise and I’m looking for the exit.

As one can imagine, this can be a problem when there’s a toddler with no mute button forever seeking attention.

Sister Bliss

Over the last couple of weeks I’ve been unsubscribing from podcasts that seem to be stuck in a repetitive loop or have transitioned to being just senseless noise. One show that I consistently look forward to, however, is Sister Bliss’s In Session Podcast which has been consistently well made for the few years that I’ve been listening. Sister Bliss was one half of Faithless, my favourite UK band of all time, and she shows no sign of letting up anytime soon. If you enjoy electronic music, her show is well worth the download.

And that’s that for another week. Tomorrow I’m back at the desk for the first time since Thursday, and it’ll be nice to see more of 10Cv5 come to life.

  1. Well … first a little client work, then 10C. There’s a growing need for some revenue, which is why the client stuff will take priority. Fortunately it shouldn’t take more than an hour to solve their needs.
  2. A PHP-powered system with a SQL Server back end, if it matters :P
  3. I know, I know. If something goes down, though, I need to know. This is why I check my mail and keep the work cellphone nearby.

Day Three

There is a little-trafficked hill in a park not too far from my home where I like to sit, think, and watch the world go by. People can see me from below, but few follow the path that leads to the fenced area, which makes it a great spot to sit out of the way of people. Usually when I’m sitting there, 68 metres above the rest of the town, I’m thinking about philosophical questions. Today, though, I was thinking about the reasoning behind my desire to be self employed. There would be a great deal more risk to take on and the costs of insurance would go up at least 30%. Sticking with an employer, regardless of who, would be far simpler and much safer … which is an odd thing to believe given the habits of employers to ditch technology people past an arbitrary age.

The reasons for my desire comes down to a single word: control. If I am to be satisfied with my career, I must have the ultimate amount of autonomy possible. This can only be accomplished if my boss is also my customer. More than this is the distinct lack of control that I have at the day job, where three common issues that have plagued the organization for decades have been kicked into overdrive with a global initiative to consolidate our myriad of disparate systems across the planet into a single, cohesive platform.

The issues I am unable to correct at the day job are as follows:

  • we blindly hitch our future on the success of vendors
  • we spend money without any regard for how difficult it was to earn that revenue
  • we are dishonest about our regard for data privacy

There are other items that bug me, of course, such as the fiefdoms, the endless meetings that accomplish nothing, and the fact that we use 7 different communications platforms but can’t effectively share information with each other, but these nuisances exist in every company where more than a dozen people are employed. It’s the three main issues that bother me on a regular basis, making an exit the most logical solution1 despite all the benefits that have come as a result of being employed where I am.

There are a lot of great people that I would miss working with, and some that I would try to recruit if fortune favoured this fool. However, this is something I have my mind set on, with the goal to be operating on my own before the end of 2022. Will it be easy? Not in the least. Will it be worth the risks? I believe it will. The alternative is to work the rest of my days much like I have been these last three years; starved for time and forever at the mercy of someone else’s arbitrary Excel-based project schedule.

With a quarter century of decent working life left in me, I’ll be darned if it’s spent battling burnout and fatigue.

  1. Leaving the company would be easier than trying to change culture and the minds of several hundred people. Besides, if I’m the only one who sees a problem, then clearly I am the problem.

  1. 1
  2. 2
  3. ...
  4. 279