Earlier today a small group of people carried out an attack on two mosques in Christchurch, New Zealand. A lot of good people died. A lot of good people were injured. A lot of good people will never be the same. Three people have been taken into custody and people around the world are talking about yet another terrorist act carried out at a place of worship. There are always a number of questions that come up when an act of malevolence such as this takes place. Who were the perpetrators? What could have caused this tragedy? Were there any signs beforehand that people missed? Can it happen here? These questions are all valid, but rarely the one that I generally ask. When everything is all said and done, what I really want to know is why people are so angry at the world that they feel the need to lash out in this manner?

New Zealand Flag at Half-Mast

Mass shootings are nothing new, but they do seem to be more common. The first time I read about this type of incident in any depth was when the Columbine High School massacre took place in 1999. 13 people died that day, including both of the shooters. A string of copycats followed with people attacking schools, shopping malls, casinos, sporting events, music concerts, places of worship, and just about any confined place where people might congregate. The motives differ slightly. The objectives differ slightly. The backgrounds of the perpetrators differ slightly. The result is the same; lives are lost and questions are asked.

An article on The Guardian says that one of the perpetrators of today's shooting wrote a 74-page manifesto that read like a long rant lamenting the fact that some groups of people are not the same as other groups of people and how global mobility is eroding the monocultures that have long existed within known geographic confines. He wants people who practice Islam to live in "an atmosphere of fear" and spent two years planning today's attacks. Now he'll get to spend the rest of his life behind bars. So much of what happened today is beyond absurd. Try as I might, the leaps in logic that a person would need to follow to reach this sort of decision are just beyond me.

Later in the document, he purportedly1 describes himself as being a private and mostly introverted person, an ethno-nationalist, and a fascist. The first two descriptions are fine. The latter two have me wondering if perhaps the education systems around the world need to be overhauled, as these demonstrably bad ideas seem to be gaining momentum among pockets of semi-educated people. It is as though we have learned nothing from the hardest lessons from the 20th century.

Ethno-nationalism is a concept wherein the nation is defined in terms of ethnicity. The central theme of ethnic nationalists is that "nations are defined by a shared heritage, which usually includes a common language, a common faith, and a common ethnic ancestry". This works with microcosms living in isolation on islands surrounded by hundreds of kilometres of water, but completely falls flat in the world of today where a person can easily buy a plane ticket to the other side of the planet and leave in a matter of days or hours. A nation that is not open to globe trotters is not open to economic growth or a better distribution of wealth within society. Nations that exist in such isolation must consist of hunter-gatherer tribes, or be structured as a fiefdom, dictatorship, or communist state. This would mean that every nation would live as the people of North Sentinel Island, North Korea, or some hideous combination of both.

Fascism seems like a natural extension to ethno-nationalism, given its authoritarian ultra-nationalism characterized by dictatorial power, forcible suppression of opposition, and strong regimentation of society and of the economy. Every nation that embarked upon a fascist path in the 20th century killed millions of its own people in the process. I've had conversations with people who believe that Stalinism or Maoism is a good form of government, but none of these proponents would last more than a month in 1950s Russia or China before being turned in for "re-education". They have neither the smarts nor the cunning to survive for long in such a corrosive society2.

So where is the allure? What can drive people to honestly feel that the world would be better if everyone stuck together in subjectively distinct gene pools? What can push people to despise practitioners of a different faith? What can fill a mind with such despair that mass murder seems like a justifiable course of action?

I don't have the answer to any of these questions. The only possible remedy I see would be to change people's perspectives so that people get a better understanding of why the world is the way it is. With a little more perspective of the 20th century, people will be better able to say why so much of the world fought the wars it waged. With a little more perspective of the various forms of government, people will be better able to understand why most fascist nations collapsed within half a century. With a little more perspective of religion, people will be better able to understand that most people who follow a belief system are not interested in killing or dying. With a little more perspective of cultures — not just the culture we grew up with, but many cultures — people will be better able to appreciate the differences and find joy in the similarities.

With a little more perspective people might come to understand that life is unjust to everyone. Some people have a better time than others on occasion, but this doesn't give any of us the right to intentionally make it worse.

  1. I haven't read the 74-page manifesto myself, nor have I tried to find a copy of it.

  2. I say this knowing that at least two people I've discussed communism with will strongly disagree with me the next time we meet for coffee.

183 Days

On September 12, 2018 I started to write a blog post a day after reading about a little challenge that Jeremy Cherfas did about ten years ago where he would try to write a post containing exactly 100 words for 50 consecutive days. While I scoffed at the idea of limiting myself to just 100 words in a blog post1, I did manage to hit the 50-day mark on November 1st. From there I wanted to see if I could double that to 100 days, which I did, and then six months … which I have just accomplished. Today marks the 183rd consecutive day where a blog post has appeared on this site and not once have I had to "cheat" by backdating or scheduling for more than six hours in advance2. This is a number that I really didn't think was feasible given the amount of time that I dedicate towards so many other goals.

How feasible might it be to go a full year without missing a day?

Thinking of the Near Future

Over the years there have been a number of blogging challenges that I've tried to set for myself only to fail in the first couple of weeks, so I'm not particularly keen on jinxing this daily groove that seems to be working. That said, there are a couple of things that I would like to aim for in order to make this effort worthwhile. Not all of these are specifically related to blogging.

  1. Use fewer commas - there are just too many in my writing, which I'll admit does lend to an easily recognizable style. It would be better to use longer sentences that do not rely on the same three grammar forms over and over and over.
  2. Keep the Five Things summaries - I like doing these on Sunday nights. There is no reason for them to stop so long as the casual format does not begin to feel like work.
  3. Publish some of the more creative efforts - There are a number of blog posts that I've completed to a certain degree and left as a draft. Some of these might actually be worth publishing, such as the slightly comical post positing "What kind of machine would Dominic Toretto from Fast & Furious use if he used a computer the same way he drove?"
  4. Enjoy the process - writing every day is not the easiest thing in the world. If I ever lose interest in putting something out on a daily schedule, then it would be better to fall back to an easier schedule or simply go back to posting at irregular intervals. Strained writing is not enjoyable to write nor read.

With these points in mind it will be my goal to make the next six months of writing at least as enjoyable as the first six. My grandfather never blogged, but he did write in his journal for over sixty years without missing a day. After retiring he would often paste newspaper articles on a page and then write his thoughts on the topic, which sounds a great deal like what a Quotation is in 10Cv5. Maybe I can consider doing the same after half a century of an unbroken publication streak.

  1. Naturally. Heck, I'll use 100 words just saying "Hello" to my dog in the morning.

  2. I did schedule the post on March 11th to be released at exactly 2:46pm, but this was the only one that was set to publish more than an hour into the future.

Over-Thinking Solutions

This morning on Ars was an article outlining a mobile application with a wide-open API and hard-coded passwords that resulted in some social media fireworks and hurt feelings. The security problems are the sort of thing that one might expect from a new developer or a one-person development group within a small organisation, but are by no means unique. Quite often I have stumbled across similar discoveries when joining or taking over projects at the day job and it just goes to show that creating secure applications is not at all easy but should be something we constantly work towards.

Security on the Table

Today I put the finishing touches on a new feature for an HR-owned project at the day job that is used by just about every employee at manager-level or higher across the globe. People have been asking for a way to upload files to the application, have them appear on reports, and make them downloadable to the appropriate people. In addition to this, the we need to know who downloaded each file and when. None of this is particularly difficult, and I decided to make the download mechanism a little more interesting by adding the following rules:

  • each download link must be unique
  • a link is valid for a maximum of 15 seconds
  • links must be used by the same account that requested them
  • links cannot be guessable

The HR system is running on a couple of Amazon servers and files are to be stored in a locked-down S3 bucket. In order for files to be downloaded, they must first be copied from the S3 bucket to the web server, then sent on to the recipient if they're using one of our white-listed source IPs.

So far so good, right? This is all basic stuff. So when I demoed the system to the HR people and a couple of senior members of IT, I was surprised by some of the questions that came back. After a couple of minutes, they asked me to step through the logic so they could understand how the whole process worked. This is what I told them:

  1. a list of files is presented on the screen
  2. a person clicks (or taps) the file they want
  3. the browser sends a request to the API asking for a link
  4. the API verifies the account has access to that file and creates a URL record, then sends the information back to the browser
  5. the browser opens the supplied URL in a separate tab
  6. the web server receives the request for the file, authenticates the request using session data, confirms the source IP is valid, and verifies the requested URL
  7. if everything's good, the web server copies the file from the S3 bucket to the server
  8. the web server records the file access in the database, preventing the URL from being used again and creating a verifiable audit trail
  9. the web server transmits the file to the browser over HTTPS, which acts as a standard download
  10. the file is removed from the web server

All of this happens in the blink of an eye for the most part, with the most time-consuming aspect being the actual file download. Everything else is just a handful of text characters moving between computers. After I finished going through the process not once, not twice, but thrice, someone asked a question: Don't you think this is a little over-engineered?


It would be far simpler for me to simply insist the S3 bucket be open to the web so that a direct link to the file could be shared, but that is incredibly risky when working with files that are associated with HR data. It would also be simpler to just copy the file to the web server if it doesn't already exist, and leave it there for any subsequent download request. This would save on database queries and ensure that an interrupted download could more easily be continued. Heck, either of these options would be much simpler to document and communicate to management, too!

But this is often why corporate systems are discovered to be terribly insecure. Just because something is simple does not mean that it's better. The reverse is also true, in that complexity does not necessarily result in security. That said, so long as I am putting my name next to the work, I'll do what I can to make the system as effective as I can, and the 10-step process I outlined to the managers appears to do the trick.

Later this week I'll write up some documentation that includes a visual depiction of the flow so that the mechanism is better understood by anyone at the day job who wants to know how it's done, and that someone will probably be me in six months when some feature request requires me to understand how the functions work. Do I over-engineer solutions? Most certainly. Is there a chance they'll leak data or otherwise expose the company to risk? Not so long as I do my job correctly.

I met my girlfriend’s parents – and realised I once slept with her father


Five years ago, I went through a bi phase and used to sleep around with pretty much everyone that came along, including other men. This changed when I fell in love with my new partner, who is everything to me. I recently met her parents and halfway through lunch realised that I had slept with her father. I was going to propose, but when my partner and her mother were away, he told me to end it with his daughter. I’m obviously in love – shall I just ignore him, or tell my partner?

Well that's awkward. I don't agree with the advice as it completely ignores the girlfriend's right to know why the relationship should come to an end. If anything, the guy should have an open and honest conversation with his girlfriend knowing that there will probably be consequences of some kind. Speaking the truth is the only way to build a solid relationship. Keeping secrets will sow the seeds of distrust.

One Step Closer

Earlier today I had a completely different blog post lined up to write for today about toenails but, after releasing 10C v5 build 19C124 , I figured that something a bit less icky1 would be better.

The 5th major version of the 10Centuries platform is inching closer to being ready with today's release of support for RSS and JSON feeds. These two elements are central to how blogs work and could have been released sooner, however, there are some distinct differences with how a v5 site will offer syndication feeds to subscribers. With a typical blogging engine there is just one syndication feed that people can subscribe to. 10Cv4 had a maximum of three if you configured a site for podcasts as well as a stream of social posts that could be fed into or some other system. Neither of these options are complete solutions that reflect how people might actually want to subscribe to a site, so this next version of the platform needed to be a little smarter and allow for dynamic subscription links.

Understanding the Problem

Many months ago, I would subscribe to a number of blogs run by prominent members of the IndieWeb community. The problem that I had was the "spam" that quickly accumulated in the RSS reader. Every post type would appear in the syndication feeds from some of these sites. Blog posts, links, books read, geo-tags, orders on Amazon, scads of social posts, and more. A person who was a dedicated IndieWeb proponent could easily have 100+ items sent out per day, which buries the things I might actually want to read from a person. There are plugins available for many blogging engines that allow people to configure separate syndication feeds to work around this problem, but this doesn't seem too common just yet. Given that I am more guilty than most of spamming timelines, the last thing I would want to do is force anyone to unsubscribe from my syndication feeds simply because everything was too much to parse. To this end, I decided to make it possible for 10Cv5 to have what is essentially a limitless number of syndication feeds available for people to subscribe to, each offering something different.

The problem with a limitless number of anything is that finding what you want can be quite the challenge. To this end, an update later this week will see the v5 themes given a special page just for syndication feeds where a person can choose what types of post they want to see in their reader. If a person wants just blog posts, there's a link for that. If a person wants blog posts and quotations, there's a link for that, too. Blog posts, quotations, bookmarks, and social posts? Yep, v5 has you covered. A simple page will be set up with toggles to let people choose what they would like to subscribe to, and a single link will be shown for people to copy and paste into their syndication client/service of choice. By default, the site's primary syndication feeds will show the same types of posts as the site owner decided to have on their landing page. The customization is really just for people who want more control.

What's great about doing this is that it will also be possible for sites to have special syndication links available for a limited group of approved readers, or unique syndication links for paid access to content, or randomly generated links that can be used in an effort to have just one reader per link so that a more complete picture of how many subscribers a site might have becomes possible2. To the best of my knowledge, no other blogging engine offers this level of syndication flexibility out of the box, so I hope it scratches an itch that others have had.

Almost Time to Move

Later this week I hope to move this website over to the v5 Beta server so that the system can get a semi-decent workout from a larger amount of traffic. There are about a dozen websites that are currently on the beta, but none are heavily trafficked. This site will add a few thousand hits per day, which will give me a much larger collection of performance metrics to know what SQL queries could stand to be tweaked, and what areas may need some attention. Before this can happen, though, there are a few items that need to be completed on the Anri theme:

  • the Operations Bar
  • post & page editing
  • file uploads
  • podcast integrations
  • viewing comments on a post page

None of these are particularly difficult, and two of these could be delayed slightly and not interfere with my ability to publish posts on v53. That said, the sooner these five items are complete, the sooner I can ask others to kick the tires and poke holes in my code. 10Cv5 has been in development for far too long and it really must be released sooner rather than later. People will complain about the lack of themes and the lack of site controls at first, but regular updates and the honest feedback I've come to expect from the community will allow the system to evolve into something that people might enjoy using in the near future.

Silly as it may sound, I'm starting to feel a little excited about bringing v5 out of beta and into a live setting.

  1. The post wouldn't have been too bad. I'm just really impressed with how often our bodies can fix themselves without any direct, conscious interventions.

  2. My hosted version of 10C will not do this, because it would constitute too high a degree of person tracking, but there are no limits to what a person running their own instance of 10Cv5 could do.

  3. Blog posts can be written and edited via the Social site, after all.

Saudi plane turns around after mother forgets baby at airport


A Malaysia-bound plane had to turn back to Saudi Arabia after a passenger realised she had left her baby in the terminal.

How does a mother forget her child? Regardless of the stress and hustle that comes with international travel, there is no conceivable way a parent could forget their child …

Radical proposal to artificially cool Earth's climate could be safe, new study claims


… he added that the technology could cost hundreds of billions of dollars a year and would pose complicated ethical questions, such as whether people have a right to see a blue sky.

Do people have a right to see a blue sky? This is the most absurd question I've heard in a long time. Spraying aerosols into the atmosphere so that we can continue polluting the planet unencumbered for another generation or two should be considered an absolute last resort to buy time until better geoengineering methods can be developed. Sadly, this bandaid would likely encourage similar bandaids, resulting in a perpetually orange sky for anyone who isn't a billionaire …

Eight Years

Today marks the 8th anniversary of the Great Tohoku Earthquake. While Reiko, Nozomi, and I were able to get through the disaster relatively unscathed, a lot of people were not nearly as fortunate. Buildings were destroyed. Towns were wiped off the map. Lives were lost. In the days that followed, the full scale of destruction and loss began to unfold as well as the media blackout imposed by the Japanese government on all topics related to radiation. The reactors in Fukushima that had suffered containment explosions showered radioactive dust across large parts of the country, including sections of Tokyo. Fearing an uncontrollable panic, the government kept the extent of the damage under wraps for months. Even today there are some things that the news organisations are not permitted to talk about, as an informed populace might try to hold leaders responsible for their secrecy.

Despite the contamination, the affected regions managed to organize, clean up, and restore as much as possible. As time went on, people forgot about or ignored the lingering concerns posed by the particles ejected from three nuclear reactors in Ōkuma, a city on the east coast of Fukushima prefecture. Some of us, however, continue to be cautious about where our food comes from.

For a lot of people it's the events of Friday March 11th that changed the direction of their life. For me, it's the days afterwards.

I was working at a startup in Tokyo at the time. Friday afternoons were generally slower than the rest of the week as people started to think about their weekend plans. Being Tokyo, there were a couple of small tremors in the morning and again around lunch, but something was different about the shaking that started at 2:46pm. This one was accompanied by the earthquake warnings that were sent to every cell phone in the area and, being a company that wrote software for cell phones, we had a lot of devices screaming about the impending Magnitude 9 event. The building shook … and shook … then changed direction and shook some more. Tiles on the stairwell wall came loose and fell, echoing all the way. My phone rang and Reiko told me to get out of the building, which I was in complete agreement with. Being on the third floor, this was relatively easy to accomplish.

Two minutes later the ground stopped moving and Tokyo was absolutely silent. People outside looked up at the buildings to make sure that nothing would fall on them. Cars were stopped at the side of the road. Electrical poles swayed. The moment of silence was then broken by the sound of sirens. Fire trucks, ambulances, and police cars were quickly mobilized. People made their way back into buildings.

Being Japan, my colleagues and I were told to stay at our desks as the day hadn't finished, yet. I was responsible for the server infrastructure of a popular Twitter client for flip phones, and this quake was going to see a much larger than normal spike in traffic. I hopped onto the server control panel and checked out the usage statistics. As expected, the spike was incredible. The servers did their job, though, and people were able to keep in touch with friends and family as the cell phone networks were overloaded, making phone calls completely impossible. Land-line phone calls were still possible, though, which is how I kept in touch with Reiko and her parents throughout the day.

At 5:00pm the president of the company told everyone to go home. By this point the roads were completely congested with 35-million other people trying to do the same. The trains were all stopped. The subways as well. Emergency shelters were overcrowded. Convenience and grocery stores completely emptied out, with just about every product on the shelves sold. My colleagues could all walk home. I might have been able to do the same, but opted to stay in the office overnight. This would allow me to keep an eye on the servers and ensure they could keep up with the load. More importantly, though, it would allow me to relax despite the endless series of tremors that shook the building every few minutes. I am not comfortable in crowds, and even less so when in crowds of anxious people.

Reiko and Nozomi were together at our apartment in Kashiwa, and we made use of MSN Messenger for the first time in years to keep in touch. The cell phone networks wouldn't come back online until the 13th, but data traffic was unaffected1.

Sleep was fleeting that night, as tremors ensured that everything that wasn't nailed down in the office would shake and rattle. One of my Tweets made it onto German TV, and the company's servers performed admirably. Traffic in the city was gone by sunrise and an eerie calm had descended. Tokyo, despite its tens of millions of people, was absolutely silent. Getting home wasn't easy, nor was it easy to find any good quantity of clean drinking water. We managed to make it through, though. Two weeks later, we moved back to central Japan.

Nozomi wasn't the same puppy after the earthquake. She became much more nervous and didn't want to be left alone for any length of time. It wasn't until several months later that she would eat food without our help. Sometimes I wonder about Nozomi's family as she is from Miyagi prefecture, just north of Fukushima. Were they near the ocean when the tsunami struck? Were they affected as severely as Nozomi? I don't know the answer to these questions, and maybe that's for the better.

Earthquakes are to be expected when living in this part of the world. Once is enough for me.

  1. Smartphones were not very common in Japan before the Tohoku Earthquake. However, after the troubles people had calling friends and family from their cell phones, iPhones and Android devices flew off the shelves. Within two years, the flip phone was a relic of the past.

Five Things

In many western countries, Sundays are traditionally considered a day of rest. This was certainly the case up until the 90s in Canada as most stores were closed for business. Even the convenience stores at the time would either be closed or have ropes set up to block various aisles that contained “non-essentials”, which technically could not be sold on the sabbath. As laws changed and the local culture adapted to stores being open seven days a week and later having some accessible 24-hours a day, the idea that Sunday was for resting faded away.

Having a two year old boy in the house generally means that there’s no such thing as a minute of rest, let alone one entire day. Perhaps it’s the old man in me talking, but I’m absolutely exhausted by the time The Boy is brought upstairs and put to bed.

Momentary Lapses of Unconsciousness

When I used to work at the printing company in Canada, I would finish the day quite exhausted. Complex challenges required complex solutions, and every few hours I was asked to solve a problem I’d never faced before. It was an excellent opportunity to learn and grow in a number of areas. What this meant, though, was that I would often fall asleep on the bus ride home for just a few minutes at a time. These little power naps were incredibly refreshing.

A similar thing happened after I started working in Japan. Some clients wanted on-site training rather than sending their people to one of the many schools in the region. So I would often start my day at a school, work there for a few hours, then head out to a distant office by train. While sitting on the rocking vehicle, I would fall asleep for a few minutes and wake up at the next stop feeling quite refreshed. This went on for years until I left the classroom for a different line of work.

Now that I’m responsible for a little person and often working from home, there are not many opportunities for mid-day naps. When they do happen, I’m often woken within a few minutes by a kick, a sneak attack, or just a random shout. The little naps are not at all refreshing and generally make me feel even more tired after regaining consciousness.

One day an afternoon nap might actually feel good again, but not anytime soon.

No More Physical Point Cards

Almost a decade after the introduction of smartphones, the majority of Japanese companies have moved away from physical loyalty cards to digital ones in the form of “applications” that need to be installed on a personal device in order to be used. In exchange for the convenience of not having yet another credit card-sized piece of paper in our wallet, the stores have the luxury of collecting a great deal more information about their customers. The point system remains the same. The coupon values remain the same. The hassle of finding the card remains the same, too1. Not too sure that what a person gives up is worth the few yen they get back.


Anxiety is nothing new for me. I’ve learned to recognize the precursors of certain responses, which has made it possible to mostly deal with the problem in a semi-responsible manner2. The intensity of the feeling generally rises and falls with the seasons. As springtime officially approaches, I expect it to fall substantially. Winter, while one of my preferred seasons, is generally hard on the nerves.


Since wiping the Apple notebook of macOS in favour of Ubuntu, there has been an increasing amount of friction when using my iPhone. Many of the features I used to enjoy simply do not exist for Ubuntu, such as AirDrop and Photos integrations. This extra layer of friction reminds me of the difficulties people used to face before modern software allowed for a seamless flow of data between devices. While I do have some applications and techniques to reduce the amount of friction I feel when moving data between the computer and the phone, there is still quite a barrier to overcome. I wonder if there’s a better way to improve the seamless flow between devices.

A Different Scale

Next weekend we’ll have some guests visiting the house for the first time, so today we picked up a new rug for the living room. The colour and size are quite nice and the price was more than reasonable. After getting it home and set on the floor I realized that the rug wouldn’t fit in the old apartment as it would be 20cm too wide. Our current living room can easily accommodate four of these rugs. The new house is small by Canadian standards, but quite the respectable size for this part of the country.

May we never need to move into a smaller living space ever again.

  1. When I look at people's phones as they swipe around looking for the stores app, they typically have what appears to be hundreds of icons on their phone. Rarely do I see people use the search function.

  2. I go outside for some fresh air, a walk, and — usually — a drink.

A Walk in the Park

Within a few weeks of the Great Tohoku Earthquake, the family and I returned to central Japan after almost a year of living in Kashiwa. Nozomi was terrified of going outside for too long and would often want to stay very close to our apartment. The quake had affected her quite a bit, as she would barely eat any food and would jump any time a large truck drove by. In an effort to calm her down, I started taking her out for longer walks. She wouldn't go very far on her own, but she was happy to be carried as far as I wanted to go. One of her favourite places turned out to be Ochiai Park, a relatively large recreation area at the edge of the city where she could run around relatively freely and sniff for years without covering the same ground twice. The park sits about 3km northeast of where we used to live, making for a pleasant 40-minute walk. She hasn't been back to Ochiai Park since we moved to the new house, as it's a bit too far for us to walk, but The Boy enjoys the place quite a bit1.

A Walk in the Park

While I am concerned about the unseasonably mild temperatures that we've had this year, the weather today was too nice to stay home. A family picnic was in order and Ochiai is generally a good place to have one. Free parking, several square kilometres of open grass, and being less than 15 minutes away by car makes it an ideal getaway. As expected, everyone enjoyed the time together.

At some point, we'll have to encourage Nozomi to come along with us again2.

  1. Nozomi doesn't like being driven places anymore, so we generally don't take her very far from the house unless we plan on being out for an entire day or overnight. Then she doesn't have a choice in the matter.

  2. While Nozomi is very gentle and has never so much as even barked at The Boy, I think she feels forgotten when we're all out together. If it's just her and me, we get along quite well. When she's near the boy, she seems bored and uninterested in the world.