Unpublishable

There's a topic that I've wanted to write about for years in order to better formulate my thoughts. Any time I've tried to have a conversation with people on the matter the end result has never been very satisfying. By writing about the subject, I'm forced to slow down and really think about what's being written and how things are being laid out. Do the points build on each other? Is the central theme followed the entire time? Are digressions and tangents kept to a minimum? By following the basic principles of writing, it's possible to put together an argument on just about any topic.

Yesterday I finished writing one of the longest pieces I've considered for this site. It weighed in at 7,218 words and covered quite a bit of ground. A number of memories were shared, conversations with people summarized, and a couple of religious texts were even referenced, all culminating in the 5-word central thesis of the piece. After reading through the essay twice, I decided that the item was ultimately unpublishable as it could result in some potential problems if my life insurance provider ever stopped by to read the article.

This got me thinking about what sorts of topics would be considered taboo to write about for a person who happens to find themselves gainfully employed with a family, a mortgage, car payments, various insurance policies, and a slow-but-steady freelance client base. To say that "nothing is taboo on the Internet" would be demonstrably false, yet there does seem to be a bit more freedom for a person to discuss ideas that might be unpopular if spoken aloud, particularly if something is published under a pseudonym or anonymously1. There are obvious taboos on posts that would promote violence against others, such as lynching, rape, and murder. There might even be taboos on posts that would intentionally mislead people, which are perhaps best exemplified by "Flat Earthers". That said, there are a lot of topics between claiming the world is a disc and pictures of kittens — the safest topic in the known universe.

Over the years I've written a number of posts that were originally intended for publication on this or another blog only to keep them offline for fear of reprisal at some point in the future. None were quite as long as the essay from yesterday, though some could have certainly resulted in some heated words2. Is it right to keep these offline? Or would this be an ideal use case for password-protected posts?


  1. Real anonymity on the Internet is very hard to find. It's often best to understand that there is no anonymity online without putting in a lot of work to hide who you are and where you're connecting from.

  2. Some of the opinion pieces I've written about the territorial disputes concerning islands around Japan have certainly resulted in some hate from drive-by commenters.

Reassurance

While I find it a little hard to believe, the boy's nightly routine has clearly made me more approachable at the day job. The implementation differs, but the similarities I see between putting a two year-old boy to sleep is not much different from working with middle managers. This isn't to say that those unfortunate souls sandwiched between C-Level1 managers and local managers act like children2, or that my son acts like a middle-aged adult. They're quite different in a number of regards. What the two have in common, though, is the requirement for specific questions and regular reassurance.

When the boy goes to bed, I generally stay with him for about half an hour so that he can settle down and get ready for sleep. We read some books. He signs a song or two. I tuck him in and arrange his toys in a manner so that he can reach them without becoming untucked. Questions are asked with every activity. "Which book would you like to read first?", "Do you like the bear in this story?", "What song are you signing?", "Where would you like your raccoon3?". The questions encourage dialog and give him the illusion of control. Once everything is set up and done, I'll rub his chest and wish him good night before heading downstairs to continue working.

Every so often, though, he'll start to cry shortly after because … who knows? At this point I need to go upstairs, ask how he's doing4, then calm him down by saying everything's okay and that he's safe. Sometimes I'll need to tuck him in again. Sometimes he'll ask for something and, so long as it's within reason, I'll get it for him. This process might repeat three, four, or five times on any given night depending on how tired the boy is. The more tired, the longer it takes for him to sleep.

Patience is an absolute must when working with children. The world is full of unknowns and they lack the knowledge, skills, and experience to make sense of it all. It's hardly any wonder that kids need consistent feedback and reassurance.

One thing that I've noticed over the last couple of months is that a lot of the management team at the day job also needs consistent feedback and reassurance. With the global project being in full swing and rapidly approaching the next critical phase, people are understandably anxious and nervous. People's weekends are at stake if anything goes wrong. People's bonuses, too. An endless stream of emails hit the inbox daily from people who have a lot of vague, superfluously-worded questions that boil down to the same underlying query: Are we okay?

Just as with the boy, I've found myself responding to messages like this by first clearly outlining the current status of my team's tasks, then asking some specific yes/no questions that are related to the reader, followed immediately by some follow-up information or an answer. In one of today's emails, this looked like:

… Did you have a chance to read the weekly summary report that {person} sent out Monday evening? She's about three days ahead of schedule on her end, so we should be ready to start testing the new data before the weekend. If that's too early for you, then we can stick with the current timeline and begin testing next Tuesday.

A year or two ago I would have likely been much more direct and to the point, answering just the questions I was asked without thinking about the underlying reason for those questions. What's worse is that I would tend to give answers in context, providing details that would have an email stretch on for several paragraphs beyond the point a person might stop. The context I provided was only for the answer, but people aren't interested in the answer. They're interested in the answer to the question they didn't specifically ask: Is everything okay?

This is probably something that "everybody" discovers at a young age, however, I've not been very successful in learning how to better interact with people until the last couple of years and there's still a lot I don't understand. Fortunately there is still time to catch up.


  1. CEO, CIO, COO, etc.

  2. Well …

  3. He has a stuffed toy raccoon, not a real animal. He's given this character the name "Chilli", but I can't for the life of me figure out why.

  4. It's a rhetorical question, but it encourages him to try and voice why he's upset.

Thrum

Snoring tends to be a problem for everyone but the snorer, which is why I generally sleep in a separate room from Reiko and the boy. All in all, this setup works quite well. On the days when I work well past midnight there is little chance of me waking people as I enter the room and climb into bed. Also, by not subjecting people to the sound of my snoring, the family can wake up in a much better mood than if I’ve been disturbing their sleep for much of the night. As there are three bedrooms in the house, I’ve decided to sleep in the “spare” that exists in the event Reiko and I have another child or invite someone to stay with us for a while. Also in this room are the servers and hard drives that power 10Centuries and the robust home network infrastructure. This means that every night I am lulled go sleep by the thrum of spinning hard dives and the occasional whine of a processor fan.

It’s like music to my ears.

In the late 90’s I was renting a basement on the east side of Hamilton1 and, as one would expect, I had a trio of computers running 24-hours every day. This was at a time well before the average person could afford solid state storage, so there was always the sound of multiple hard drives powering up and down depending on what was happening, power supply fans, processor fans, and large case fans. An endless cacophony of noise that would drive my parents to complain. However, I had always found the sound to be incredibly soothing.

Read/write heads inside a hard drive are mounted on the end of actuator arms that make a high-pitched sound as they moved from place to place across the disk. The 80mm case fans in the 90s could be made variable depending on the ambient temperature inside the box, so these would occasionally spin up or slowdown. If I were listening to a CD, the drive would spin up every time it finished the last track. These sounds, as ridiculous as it may seem, calm me in ways that meditation CDs simply cannot.

Laying alone in the spare room less than three meters from two servers, a 72TB NAS, a UPS, and some networking equipment is the perfect finish to any day of the week. The responsibilities and expectations from family2 near and far, as well as those from colleagues and clients, completely slip away when I’m in the room, laying on my bed, and just listening to the thrum of spinning hardware. I worry that this luxury will not be possible in the future if all storage is flash-based but, until that happens, I’ll enjoy every moment of this modern rhythmic hum.


  1. Not too far from where my father and I lived for seven years before he remarried, as chance had it.

  2. I include Nozomi as family. Her canine genetics do not bother me in the least.

APIs as a Service

Over the last couple of months I've been investing a good amount of time into research and planning for my upcoming push into self-employment. Some common concerns involve questions like "How much money needs to be earned every month?" and "What are the expected monthly operational costs?", but the biggest question has always been "What can I offer that people actually want?". A couple of projects have been outlined on this site in the past, however it seems that one of the most common solutions that I am providing to clients has been absent from consideration: APIs.

Modern C++

When I sit and think about it, I build an awful lot of APIs. Here are some of the more interesting solutions that I've built at the day job or for clients in the last two years:

  • library management
  • pedagogy and digital textbooks
  • online skills training
  • Proprietary CMS ⇢ Salesforce sync middleware
  • Proprietary LMS ⇢ Moodle sync middleware
  • Weather station data collection (for IoT devices distributed across forests in Japan and Thailand)
  • ISBN book catalogue (with an emphasis on textbooks and other learning materials)
  • Email ⇢ Evernote sync middleware
  • restaurant inventory management
  • and many tiny, single-function resources

This seems to be where I'm investing a great deal of my time, building tools that interact with systems, but are generally not seen1. Is this not the area that I should be looking into developing and expanding?

One of the reasons I make these APIs is because the reasonably-priced options that already exist in the world have glaring issues with consistency, or completeness, or are simply far too complicated to be used within the imposed request limitations. As for the unreasonably-priced APIs … I don't get to play with those very often as they're generally cost prohibitive, even for larger corporations.

There are two APIs that I've been thinking about building to solve some of the data organization problems around podcasts and RSS feeds, which are very similar in many respects. Thinking through the sorts of tools that people might actually want, this would make more sense than creating yet another MySQL client.

This is something I need to seriously consider this weekend.


  1. I do occasionally build things that have a web interface, but these UIs are more functional than beautiful. Fortunately there is always ThemeForest to help meet a design deadline for under $20.

One

The neighbourhood is an interesting place at 1 o’clock in the morning. Street lights shift to alternate-pole lighting. The last public transit vehicles have left the area. Almost everything that needs sleep is unconscious in its home. And then there’s me, sitting a well-lit room hammering away on a keyboard while solving problems with raw math and a playlist of loud music. Nozomi does her best to ignore me.

There is a lot to like about one in the morning. The only caveat is that the boy will expect me to be awake and ready to play no later than 7:00am.

If Software Were Music ...

An odd thought crossed my mind the other day1. While listening to some of the better music to come out of the 80s and 90s, I wondered if there was any software from this time period that I'm still actively using. Given the speed at which technologies change and get rewritten, very little of what we see today is more than a couple of years old. Sure, some of the core components of Windows or Oracle might be a decade or two old, but these would be small components of larger projects, like a modern piece of music with a forever-repeating sample from James Brown.

Will any of the software tools that we use today continue to exist and be useful in 30 years?

Blurry Code

Being useful is important. Unless the planet is plunged into some sort of crisis that has wiped out all digitally-stored information everywhere, there are bound to be backups of software that is in use today sitting on an optical disc at the back of someone's closet. Crazy hypotheticals aside, I considered a semi-realistic one: of the software I use today, which ones could realistically continue to be useful until 2050 without any further updates?

Before continuing, I should state that I am fully entrenched in the world of Linux. While I do have a couple of iOS and Android-powered devices in the house, these sealed appliances with known operational lifespans do not count. I'm simply looking at the tools that I use on Linux.

Thinking through the question, I can think of just a handful of applications that are not part of the default installation of Ubuntu Linux that would still be useful in their current form in 2050:

  • Sublime Text, a pretty decent text editor
  • Typora, my favourite Markdown-friendly text editor
  • Gimp, the Gnu IMage Processing application
  • Glances, a command-line tool to see resource usage

Using the base installation of Ubuntu would mean that I could use the file manager, terminal, and a bunch of other built-in applications that make using the system easier. None of today's browsers would work very well with the web in 30 years, though. Grab a copy of Netscape Navigator 3.5 and try to open a site. Most of them will be an absolute mess. A lot of the other tools that I use would likely not work as expected, such as source control programs, API testing utilities, and database clients. A lot of these things would break because of new security protocols in place. Others might break for different reasons. Thinking back on all the support software I would use when deveoping over the years, none of the applications would work today … except maybe SQL Server Management Studio from around 2000, so long as it's connecting to a database that is also 20 years old2.

Given that we've been writing software for well over half a century, at what point will we start seeing applications — that are not on spacecraft — have operational lives stretching into decades? Will people use and enjoy older applications like a person might enjoy older music? I wonder ….


  1. Well, "odd thoughts" cross the mind all the time. This particular one seemed interesting, though.

  2. SQL Server Management Studio that shipped with SQL Server 2000 on a shiny silver CD — like I still have upstairs — would not connect to a SQL Server 2005 instance until later service packs were released. Even then, it's rare for an older SQL Server client to connect to too new a database engine.

Cognitive Kaizen

A little over ten years ago I wrote this blog post on trans-gendered people in Japan and the darn thing has remained one of the most popular posts found on any of my sites. As of this morning it has been accessed 477,218 times, which is more than triple it's nearest competitor. By all accounts, I should be happy that something from a decade ago is still being read today. Unfortunately, I'm anything but. The post is awful on a number of levels. From the grammar to the stupid "score out of 10", the article is a shining example of my ignorance on the topic back at the start of 2009.

This isn't a virtue signalling1 post.

Very few of the posts I've written since 2006 have been deleted or otherwise taken down, even when I was proven wrong or justifiably castigated for some of the stupid things that were said. A lot of this has to do with the reality that whatever is put online is there "forever", which is particularly true for websites where Archive.org's Way Back Machine stops by every couple of days to see what's new. But it's not just the web crawlers that keep me from removing old posts, it's the personal context.

Regardless the subject, most people are pretty ignorant about things when they're young and slowly accumulate knowledge and life experiences that can fill the gaps in a person's understanding. I'm not particularly bright today, but I know that the person I am right now is much more aware of the world than the person I was a decade ago. The person I will become over the next 120 months will likely look back on items written today and wonder how such nonsensical drivel could have been pushed out on a daily basis. A million monkeys using a million typewriters could pound out better prose than this single fool at a keyboard. But this is the point of the exercise. If I were to go back over the thousands of blog posts published to this site over the years and revise or remove items, then I am ultimately erasing one of the better resources I have to go back and see how my thinking has evolved over time as a result of new information and new experiences. So while I may not like some posts very much, I would rather keep them online2 than lose them entirely.

Would I consider rewriting the older posts, linking back to the original so that it would be easier to show what sort of cognitive evolution has taken place? It's certainly an option. If I were to write another blog post about Haruna Ai, Ikko, or trans-gendered people in general, it would likely be a better researched, academic-style thesis on the complexities people face when trying to fit into the binary Male/Female labels that many cultures and societies enforce. Why write about something that has nothing to do with me? The reasoning is really quite simple. By writing about a topic, I need to slow down and be more deliberate with my thinking.

Quite often it's when I am writing about a topic I don't know very much about that I learn the most.


  1. Wikipedia defines virtue signalling as a pejorative for the conspicuous expression of moral values. Academically, the phrase relates to signalling theory to describe a subset of social behaviours that could be used to signal virtue—especially piety among the religious.

  2. Yes, I know that I can password protect or otherwise hide posts on my blogging platform. This still doesn't guarantee that posts can't be surfaced through Google cache queries or on The Way Back machine. It's better to keep the posts open for anyone to see what a fool I was, and how I'm (hopefully) less foolish today.

Boutique Performance

Not a week goes by where a colleague doesn't complain to me about how slow or sluggish some system or piece of software is. More often than not it's the corporate-mandated tools that are being derided for their sub-optimal use of time and resources, but various websites are also starting to get mentioned more often. Sometimes people ask me how they could make these systems faster, whether it's a problem of not enough memory or CPU power, or why managers consistently choose the slowest software while demanding the fastest employees. There's no answer for the last one. The other two, however, share the same response: it depends.

There's no simple solution to improve the performance of software and any attempt to write about possible things to look for and check would be woefully incomplete1. Instead what I tend to do is nod in agreement and ask a couple of probing questions.

What are you trying to do?

This is always the first question, as most of my colleagues are generally trying to accomplish a relatively common task. My employer isn't trying to launch objects into orbit of far-away planets, cure cancer, or model climate change. We're an education company that has for decades subsisted on a combination of Excel sheets and sheer luck2.

How are you trying to solve this problem?

A lot of times when a person has a software problem, it's because they're doing something "the hard way" and can be taught an alternative method of performing the task3. So by better understanding how a person is approaching the problem, the myriad of options that might be available to solve a problem can be whittled down until there are just one or two good options to consider.

Is this a common task?

Common tasks should be programmatically solved. The role of a person is to be the brain and/or heart of an organisation. The role of a computer is to support that person so they can be as awesome as they want to be4.

Have you considered using ________?

This is the question that I generally try to get to if it's possible because I've found that a lot of the more common software tools that people use on a day-to-day basis are big, bloated, and don't always solve the problems a person might have. Some examples of this would be colleagues who have complained about how sluggish Evernote or OneNote has become after their 10,000th note. I can remember two instances where people did not want to use Word anymore because their computers would crash if both Outlook and Word were open at the same time5. Most people have probably had conversations like this at least once in the last year and it's a great opportunity to recommend tools from small and independent software developers who make a living by providing "boutique solutions".

I enjoy recommending tools like Sublime Text, Typora, Coda 2, Sequel Pro, and Mars Edit to people who need to scratch a specific itch6. It's even better when someone tells me they've bought a license for the software, meaning that the small developer — be they a studio or an independent — earned a little bit for their efforts. This is how software should be made.

There are a lot of reasons for why software might be written by a large team of people. Yet as the world becomes ever more complex, I find it's the smaller software shops that put out the better tools that can help us navigate this complexity with relative ease. Sublime and Typora have both saved me an incredible amount of time by being able to handle large files, or crazy-long line lengths, or just running with such a tiny memory footprint that the commercial memory hogs that run alongside these tools are not at all impacted. One of the many things that I hope to see in the future is a little bit of a return to software practices of old, where the goals are not just about completing the task at hand, but doing so with the most responsible use of resources possible. Applications that make genuine use of multiple CPU cores, reasonable amounts of memory, and simple UI language will always be in demand. So long as the people who make that software can get paid for doing so, there will always be a healthy number of creative problem solvers.


  1. When it comes to tracking down performance issues, sometimes an entire day (or more) needs to be invested to determine exactly what the problem is and what options exist going forward. A person can't simply blame a single component in the hardware or the software as applications are rarely "simple".

  2. This is a slight exaggeration, of course. There are a number of mission-critical systems that use SQL Server and Oracle databases, and our online infrastructure is staggeringly complex to support online lessons across the globe.

  3. The number of lives I've changed over the years after teaching someone how to use a pivot table or VLOOKUP or just Ctrl+D in Excel is by no means inconsequential.

  4. Some people don't want to be awesome at their job, and that's fine. There is still no reason for why someone wouldn't want a computer to do a repetitive task on their behalf (so long as it does not put them out of work).

  5. This turned out to be the result of a domain policy change pushed out by the IT department without anyone's knowledge. Yay, IT!

  6. Yes, I understand that most of these are for macOS. I talk to a lot of people who use Macs. I don't know many people personally who live in the Linux world like I do. Mind you, I will suggest switching to Ubuntu from time to time if someone is complaining about Windows or macOS.

So Many Blog Posts ...

I still find it amazing that there are 2,644 blog posts on my personal site. If one includes all the other blogs that I have written for (on 10C and off), then there would be over 3000 posts written since October 2006. While this isn't anywhere near 1 post per day, it's a heck of a lot more than most other people I know.

Mind you, I probably would have written more posts by now if I still used WordPress. I created Noteworthy (and later 10C) because I was tired of dealing with WP issues. What resulted was me investing thousands of hours into a personal project that has taken time away from blogging 🙄

Of course, one of the bigger reasons I created Noteworthy was because I wanted to have a better way to write blog posts. Evernote was a pretty decent tool back in 2010~2012, and their iOS client rocked. So I used to write blog posts in Evernote on iOS (an iPod Touch) while out and about for the day job. When I got home, I'd copy from Evernote into WordPress, add some tags, then hit publish. Noteworthy cut that process out by syncing with the Evernote API and pulling in any new notes that were in a given notebook (or removing posts that were removed from the notebook).

Those were simpler times …

All Good Things

Nozomi and I have covered a lot of ground in the neighbourhood since moving here almost seven years ago. Every park in a three kilometre radius with grass has been visited at least once. Every path for jogging and walking has been trekked at least once. Every large rock that puts off the slightest whiff of pheromones has been sniffed (by Nozomi). In five weeks' time, Nozomi and I will have a whole new neighbourhood with new parks to explore. To make matters more interesting, we may even have a new participant with some of our daily walks.

Nozomi and I Returning Home via "The Poopy Park"

So while many of the places that Nozomi has come to know and enjoy over the vast majority of her life will be too far for her to visit in the very near future, new people, places, and (hopefully) puppies await. I just hope she enjoys our new home as much as she's enjoyed this one.