SR&ED A Part

I worked on Dauntless. I was the tenth employee of Phoenix Labs and built an extraordinary amount of code and infrastructure for the game. I wasn’t the only one–everyone at Phoenix Labs contributed to something amazing.

I was disappointed to hear the news:

What I find most distressing is the vast quantity of great tools and code that will disappear while making games become progressively more difficult.

I won’t discuss what led to these circumstances (partly due to NDA).

What I am interested in is the vast quantity of code.

In Canada, we have SR&ED: Scientific Research and Experimental Development tax incentives. These can be a substantial amount of employee wages. They represent an investment in Canadian technology and innovation. It is tragic to see this technology and innovation be lost to cancelled projects and closed companies.

How SR&ED operates needs to change to continue to foster technology and innovation. The degree of tax credit received depends on how long the company has exclusive access to the technology. The longer they have exclusive access, the less the tax credit. When that time expires, or other circumstances transpire (such as ending the relevant product or closure of the company), Canada acquires the rights to the technology to license, sell, or release publicly.

Instead of reinventing technology (and more SR&ED tax credits), technology can be reintroduced to the ecosystem when time limits (or other events) occur.

The Simulation Hypothesis

I was twiddling the simulation hypothesis, and it raised questions I wanted to explore. The following is entirely for fun and by no means conclusive.

A few days ago, I was thinking of Cantor’s Diagonal Argument (a proof of different sizes of infinity) and connected it to Shannon’s Information Theory (in particular about encoding information and efficient storage), and the Simulation Hypothesis (that our world is a simulation).

The question that came to mind is: What are the limits for simulations?

I find the question interesting having worked on games, trying to create real-time experiences for players, and the scope and challenges we face. There are constraints on building the assets for games, rendering the environment, audio, streaming data since it can’t be in memory all the time, computing the next frame from the previous, etc.

Simulations are bounded by what substrate (what is doing the simulation) is capable of processing. For example, if we are in a simulation, and our substrate is finite, we are necessarily finite.

This is where real numbers come to mind. If space is continuous instead of discrete, then encoding could require infinite storage to store position. If time is continuous, computing change is similarly non-trivial. An alternative is relying on a proxy representation of the simulating substrate itself (in which case that could be reflected in the simulation).

Continue reading

Make Us Go

I’m not really an engine, tools, build, automation, localization, or audio engineer.

I’m a Get It Done engineer, which informs the kind of work that I typically do. I like working on projects where I can interact with my customers directly, and I also deeply like projects that help others get their work done.

Three aspects have stood out that I find compelling:

Visibility

I like setting up feedback loops so the knowability of the basic state of the product is readily available. Does it compile? Is content all present and working? Do tests pass? Do the people who have a stake in the state of the product have the means to know what it is? Are the people who have made changes confident that their change works correctly and doesn’t impact others?

Productivity

I am fond of the quote, ‘The most powerful force in the universe is compound interest’ (apocryphally attributed to Einstein). A percentage improvement to the engine, processes, assets, and/or toolchain that results in faster development times is a win, as that percentage difference accumulates for each person daily.

Availability

I want to maximize the reach of whatever I work on. I want what I do to connect with the largest audience possible. This is why I love localization, dialogue, and narrative systems. I want everyone to hear the story, connect, and feel represented.

I do not favour elaborate frameworks or attempting to design everything beforehand. I’ve seen numerous attempts to do so fail because those efforts lose sight of the problem being solved. I prefer organic growth and feedback loops with whoever is using the system being built to progressively refine to actual needs. I think that various coding methodologies are useful in proportion to the churn in the code, facilitating scaling up code to maximize clarity and resilience to change. This is why I like Kanban: it is clear what the most important tasks are and targeting them.

Our Best

Growing up, I believed that people were generally good and were trying to do good. It wasn’t hard to have that belief when the world seemed to be getting progressively better (and generally, it is).

So, when people I thought were good criticized me as I grew up, I concluded that something was wrong with me (see Imposter Syndrome).

One of the consequences of my last significant relationship was dropping the belief that people were good. It simplified expectations for so many others in my life.

During the summer, a friend challenged my belief, as they believe that people are generally good. I wasn’t convinced. It would explain the general improvement in society, but it isn’t the only explanation.

Instead, during a Brene Brown podcast, I heard, ‘People are doing the best they can.’ While I am not into her religious convictions, this was much more interesting (and compelling).

I won’t use the God argument she relies on. I don’t think it is necessary. I’ve broken it down into parts to better understand others and myself.

The idea and impact of people trying their best are well expressed in The Happiness Lab with Dr. Laurie Santos: Simple Ways to Feel Great Every Day – with Dr Rangan Chatterjee.

Continue reading

Imposter Syndrome

I have been struggling with imposter syndrome all my life. I discuss the factors that were the basis of my imposter syndrome in The Common Factor of Failed Relationships, but for a different impact.

As I mentioned in my previous post, the core for me was:

  • One parent left.
  • The other was critical.

I had challenges forming friendships growing up. I was a chubby kid–picked last for teams. I wasn’t cool, fashionable, rich, or eloquent. I learned at a young age that most people were more interested in telling their stories than listening to mine. So I listened.

I also didn’t have someone to talk to about how I was feeling. I was afraid of people. I was feeling so many emotions that I couldn’t hope to untangle and address them, so I suppressed my emotions.

School was my refuge. I received positive feedback for my efforts, and I couldn’t help but think that maybe, just maybe, if I did well enough, I’d get that positive feedback from my parents I so desperately craved.

But I didn’t, so I kept pushing myself. I went down the same path I had resented my parents doing growing up, investing myself in work to get that recognition. I bent over backwards in relationships, conceding to what my partner wanted because I was afraid to lose the relationship until the relationship was intolerable.

My last long-term relationship nearly broke me. My ex was disturbingly effective at pressing these buttons—far better than the parent in question. If it wasn’t for the tools I had picked up, circumstances now would be radically different.

Those tools were (from therapists and podcasts):

  • When experiencing emotions, go slow and be curious. Examine what you are feeling and why.
  • Distance yourself from your emotions. Going from ‘I am lonely’ to ‘I am feeling alone’ is subtle but makes a difference.
  • Feed those learnings from cognitive behaviour therapy to work through them and check whether they are valid.

I had some novel tools at my disposal that I didn’t have as a teenager. It wasn’t uncommon at work to get tossed into a problem I didn’t have a preexisting background in, and I would have to learn about the nature of the problem, go spelunking through code and/or crash dumps, and then fix the issue.

My debugging skills had a secondary application, and I applied them to myself.

In addition, the Internet had many resources I could use to dig further, which wasn’t available to 14-year-old me.

I have made huge strides in remedying this. I can happily acknowledge that I have done some amazing cool stuff with absolutely amazing people!

There are two major steps (that I am aware of) left.

I am working on changing my values, particularly with respect to work. This is exacerbated by having been laid off on March 13th, 2024. Before, I felt compelled to push myself to do everything (I also had difficulty saying no). Now, I want to be more effective at solving the problems that make the biggest difference.

My model of people is wrong. Growing up, my view of everyone was based on not feeling I was good enough. I felt ashamed, judged, and insecure. More importantly, my mind became very good at remembering events that confirmed these beliefs and biases more than those that disagreed. I now see how this is warping my perception of everyone.

Everyone.

Lifting the yoke I’ve worn for so long feels great. I now need to address old habits and build some new skills. However, if there is anything I have learned, it is how much I can grow and change.

Microsoft Family Safety – WTF?

This past week has been frustrating dealing with the update to Microsoft Family Safety.

  1. After the update, the Android app indicates I need to update it, but it doesn’t have an update in the Google Play Store. I have effectively been locked out of the app on my phone.
  2. I used to be able to specify time for Xbox & PC to be shared, I no longer can.
  3. In the past couple of weeks, when granting more time to the kids, I have seen the accounting of time fail, where the kids no longer have a limit.

The latest update then ‘provided’ the option of splitting the time between Xbox and PC or using defaults. So, instead of getting all my settings stomped, I chose split. So now I have to reallocate the time back to PC as the kids rarely play Xbox.

Furthermore, I have to go through and run Windows Update on their machines for the system to recognize all these changes. Normally, this would be fine. Unfortunately, the latest update throws an error that requires me to go and shrink volumes to resize the Windows Recovery partition with an additional 250 MB. Furthermore, on one of the kid’s machines, I had to turn off hibernate, pagefile, and system protection to resize the primary volume, then turn them all back on.

The Windows Update experience was atrocious, inaccessible to many non-technical people, and represented a potentially large security vulnerability for anyone who could not do it themselves or get someone else to help them. Who is liable for that? Microsoft?

I also think this splitting of Windows and Xbox is fundamentally dumb. My ex and I have to manage the Family Safety feature jointly since the kids’ accounts cannot be part of two families, however, we cannot differentiate machines between our two houses with different times and schedules.

Family Safety ought to have a way to categorize devices into tiered groups. My home, my ex’s home, then devices with shared time split amongst them, and devices that track independently. Give me a choice and means of categorizing and splitting time how I need to.

I’m really disappointed there is this big update to a system that increases problems for me instead of giving me better tools to manage time and devices for the kids.

The Common Factor in all Your Failed Relationships is You

An ex said this to me near the end of our relationship:

This sounds pithy, but with some thought, it is disappointing.

Let me illustrate: you are the common factor in your…

  • Successes
  • Meals
  • Travels
  • Relationships (all of them!)

That is what ‘you’ and ‘your’ mean. It’s a tautology.

Using ‘you’ suggests the person is the problem, which isn’t informative or helpful. I think ‘Failure is the common factor in all your failed relationships’ focuses on what to investigate. This distinguishes being from doing, the distinction between ‘I am happy’ and ‘I am feeling happy.’

Continue reading

Housing Crisis

I’m painfully aware of the cost of housing in Canada. I’m currently renting after the divorce, which required selling our house to pay for legal fees and equalization. Furthermore, renting for three teenagers requires more space for all our sanity.

I’ve heard several reasons why the crisis is as it is. Homeowners don’t want more houses built as it will slow the rise in home values, and they represent a substantial voting group. Politicians don’t want to upset them. The second is building affordable housing (30% of pre-tax income is spent on shelter) for those who need it. Housing affordable to less affluent groups isn’t as profitable as for those that are. There are further explanations for Australia that also apply to Canada here.

These aren’t solutions; they are just some ideas that came to mind that might spur actual solutions.

A percentage of housing built be ‘affordable’. I couldn’t find a definitive figure for anything like this, unfortunately.

New housing in an area gathers some of its funding from the community itself, and sales of units provide a return on that investment. This makes new housing an investment opportunity for the entire community.

A rough example could be: 5% of your property taxes go to investing in new housing in the community. The first two sales of each unit built with this investment provide a return to those investing based on the contribution percentage. Two sales as the first is not going to have much margin, but the second is more likely. Furthermore, there is a compelling interest to ensure people stay longer and are happy to prolong when that second sale occurs.

There would be challenging details to work out, such as insurance of the investments, transferring when a contributing homeowner moves (which could be reflected in the sale price), etc.

This could also give communities more leverage to drive further improvements, such as parks, schools, and other services.

Identity and Orientation

I want to describe how I think of sexual identity and orientation. My thinking is simple and concisely expressed with a thought experiment.

The Nature article No ‘gay gene’: Massive study homes in on genetic basis of human sexuality describes the results of nearly half a million genomes revealed five DNA markers, none of which contributes more than 1% of predictability to orientation. Orientation is multifaceted and complex and very likely for identity, too. The multigene characteristic informs the thought experiment.

Continue reading

Thoughts on Knowledge

I’ve been thinking a lot about knowledge as justified true belief, the Gettier problems, and the various proposals to resolve them.

I have some dissonance with all of ‘justified,’ ‘true,’ and ‘belief.’

Justified

There are two parts to my struggle with this as a component of knowledge:

  • The first is that someone may believe something true with invalid justification; they may be able to exercise that truth in a manner that establishes justification.
  • The second is perhaps a little more peculiar, and I’m unsure of its validity. As I understand Gödel’s Incompleteness Theorem, you can have true statements you cannot arrive at (axiomatically) or justify.

Belief

‘Belief’ seems to imply a thinking agent. This excludes inanimate sources as containing knowledge, which seems a peculiar constraint.

True

In abstract or constructed circumstances, like mathematics, you can talk about a statement being true. However, outside of that, the truth is almost never known with certainty; this is Descartes’s evil demon argument.

My Conception of Knowledge

When thinking about knowledge, I lean more toward Isaac Asimov’s Relativity of Wrong. Here is how I conceive knowledge:

  1. How demonstrably close is the claim to the truth to be effective?
  2. What are the error bars on your claim?

While this leans utilitarian, that is what gives knowledge its value.

This information (claim and corresponding supporting information) can be stored in static resources and is independent of belief.

The degree of knowledge can be described in terms of these parameters, these epsilons of accuracy and precision.

In short, you can measure knowledge by its truth-ε-ness.