blog My CTO Mandate

Among developers, there is a well known platform rant comparing Google and Amazon that is often referenced in terms of Amazon’s Service Oriented Architecture.

All teams will henceforth expose their data and functionality through service interfaces. Teams must communicate with each other through these interfaces.

If I was to ever become CTO of a company (unlikely) I think I would have my own mandate regarding communication within the company.

  1. Any kind of announcement or update, should be on an internal blog that supports RSS/Atom feeds. Any tool written by the team, should have a link back to this blog.
  2. Anything that has a time period or a deadline, should be on an internal calendar that people can subscribe to. Any tool written by the team, should have a link back to this calendar.
  3. Each team should have a support window and questions should be tracked in a public-by-default bug tracking system. Any tool written by the team should have a link to this support window.
  4. Things can be sent via Email or Slack or any other communication but must always link back to the original source on the blog or calendar. cool uris ensure that the information can be referenced again or passed around to others.

As a developer, if I’m using some kind of open source project, I can usually find it on GitHub and either subscribe to different types of notifications from the UI or I can subscribe to an RSS feed.

Read More →

blog Artificial Achievements

For a while, I have been suffering from some kind of burnout from work. While I had many things I wanted to work on, at the end of the day I lacked the energy. I would sometimes make a little progress during my weekly mokumokukai , but always felt the progress was too slow.

Even then, I would often crave some kind of feeling of achievement. Since I was not able to feel a since of achievement from work, I turned to some Artificial Achievements via games.

Read More →

blog Collecting Half Baked Ideas

I have a wiki of sorts where I collect all my random, half-baked ideas: https://ideas.paultraylor.dev/ . Instead of having a lot of random ideas floating in my head, sometimes it feels nice to dump them somewhere. Many of these ideas will likely never go beyond the braindump stage. In some ways, I guess it’s my own version of something like the lazyweb-requests .

If I’m at my PC, then it is fairly simple for me to open up the repo and quickly jot down a few ideas. Though if I’m on my iPad, it is more awkward, so I have settled on using a Shortcut to quickly open a new memo with the current date so I can sketch an idea. Other times I might jot something into todoist or Noteplan or Obsidian but I have not quite found a single app to standardize on. Creating that app to standardize on might be one of my next half-baked ideas :p.

Read More →

blog Learning How to Emotion

While I do not think of myself as particularly smart, I was one of the lucky kids that had a reasonably easy time in school. For many subjects, especially science, math, and history I do not recall having to spend enormous amounts of time studying. There were a few subjects I struggled with a bit (particularly spelling) but I could usually brute force a bit, cram and be done with it. However there was a point where I hit somewhat of a wall and suddenly, many subjects became more challenging but I did not have the study skills to deal with it.

Read More →

blog Handling Optional Django Modules

Django comes with support for MIDDLEWARE and provides several useful ones by default. I usually try to make my projects as useable as possible, and some debug middleware is only useful when development.

Example Middleware

Since the order and layering often matter, I’ll usually configure all my optional middleware in the correct spot like bellow, with a short comment.

MIDDLEWARE = [
    "debug_toolbar.middleware.DebugToolbarMiddleware",  # Only enabled for debug
    "django.middleware.security.SecurityMiddleware",
    "whitenoise.middleware.WhiteNoiseMiddleware",  # Used primarily for docker
    "django.middleware.locale.LocaleMiddleware",
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.middleware.common.CommonMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
]

Then I’ll use other conditional checks to see if this list (or other variables) need to be modified.

Read More →

blog Programming as Magic

Any sufficiently advanced technology is indistinguishable from magic.

  • Arthur C. Clarke

In many ways, programming is very much like a kind of Magic. We even call people that are good at computers, a Computer Wiz(ard). When I volunteered at an English school I would often have a bit of fun and jokingly call myself パソコンの魔法使い or Computer magician when describing my job. Writing code can even look like writing in an ancient arcane grimoire.

Read More →

blog Lapce

While I already use VSCode for most things, like many developers I am often curious to see what else is out there. Even though I like some of the ideas behind the Zed editor, and will follow its progress, advertising built in AI is a fairly immediate turn off. The idea of a high performance editor though is still very appealing, and it seems like there are many rust based contenders (not that my rust abilities are anywhere near the level to contribute anything).

Read More →

blog Perfect is the Enemy of Good

As I have tried to reduce my dependence on social media, I have picked up more and more blogs into my feed reader. With as much as I read, I have often felt like I should be writing more as well but I am very skilled at distractions and excuses to avoid writing.

I am often reminded about the seinfield calendar which introduced a strategy for improving at something with continuous practice. Even if the story itself is apocryphal, that idea of continuous practice shows up in many places. In fact, one of my favorite Japanese words is 改善(kaizen) or the idea of continuous improvement.

Read More →

blog Radiation as an Example

When one thinks of radiation, what kinds of thoughts first come to mind? For many, radiation gives the image of something scary. Often places like Fukushima and Chernobyl come to mind. For me, I’ll often immediately wonder “how much are we talking about”. There are two examples that often come to mind.

User Information / Data

Like radiation being useful for X-Rays and microwaving food, there are times where you need to handle user information and data. Though also like radiation, if you create too much of it for poor reasons, it becomes a much larger problem.

Read More →