22 Mar 2020

Superficial loss rule

History / Edit / PDF / EPUB / BIB / 3 min read (~461 words)

What is the superficial loss rule applied to stocks and how does it impact me?

The superficial loss rule states:

A superficial loss can occur when you dispose of capital property for a loss and both of the following conditions are met:

  • You, or a person affiliated with you, buys, or has a right to buy, the same or identical property (called "substituted property") during the period starting 30 calendar days before the sale and ending 30 calendar days after the sale.
  • You, or a person affiliated with you, still owns, or has a right to buy, the substituted property 30 calendar days after the sale.

What this effectively does is that it prevents you from selling at a loss and rebuying the same stock within a 30 days period for the purpose of tax harvesting during that year. This however does not prevent you from claiming the loss when you finally sell the stock.

It is not clear to me how this applies when you have different types of accounts. As far as I understand it, you cannot claim losses on a TFSA account, it is tax-free. The tax impact on an RRSP account appears to only be calculated when you withdraw your money from the account so I would expect it to be a very uncommon occurrence. However, it is not clear whether the accounts interact with each other, that is, if I sell some XYZ shares at a loss in my taxed account, then buy some XYZ shares in my TFSA/RRSP account, will the superficial loss rule apply? This would mean that I would only be able to claim the loss when buying and selling the same asset again. Based on this last statement, I would consider that accounts do not interact with each other, meaning that buying a stock you sold in your taxed account in your TFSA/RRSP account would not trigger the superficial loss rule.

21 Mar 2020

Why I avoid reading books

History / Edit / PDF / EPUB / BIB / 2 min read (~236 words)

Why do I avoid reading books sometimes?

The most common reason for me to avoid reading a book is that I see reading as an investment. I can't spend only 5 minutes reading a book there and there. I need to focus on reading for at least 15 minutes, otherwise I cannot enjoy the story or understand the technical book I'm reading.

This creates a problem. For me to read, I need to have enough time to read for at least 15 minutes. 15 minutes is a considerable amount of time to allocate vs no time allocation to simply browse content online. Thus a barrier is created, making it harder to read books.

Similarly, there are times where I don't want to read a book because I want to process a unit of the story or a chapter of the book in one reading. It is similar to not wanting to start a tv show episode knowing that you might stop watching it in the middle. I don't like that.

Reading technical books is mentally draining. Sometimes I'm simply brain dead and reading books is simply not possible.

20 Mar 2020

Dealing with negatives thoughts

History / Edit / PDF / EPUB / BIB / 2 min read (~307 words)

How do you deal with negative thoughts?

My approach to dealing with negative thoughts used to be to let my brain think about it for as long as it needed until it was satisfied with some sort of solution or it had moved on due to more urgent matters (or because I fell asleep).

More recently my approach has evolved. Having spent a large portion of the last few years thinking about artificial general intelligence, I've come to see myself as a machine, similar to a computer. I enjoy taking computer science theory and applying it as a way of life.

For instance, in the case of negative thoughts, I see them as being a process that is running in my brain and is using computing resources. Like any process, the operating system allocates it an amount of quantum (a period of time) before it is preempted and replaced by another process. As such, I now timebox the amount of time I allocate to a negative thought before I actively repress thinking about it.

This might mean to consciously say to myself "I am not thinking about problem X anymore, time is up" or "Your time allocation for thinking about Y is now completed, please move on".

Such active and conscious effort to stop thinking about those negative thoughts has paid quite a lot. I spend a lot less time reflecting on those thoughts and find it easier to move on.

19 Mar 2020

Data used to do time series forecasting

History / Edit / PDF / EPUB / BIB / 4 min read (~764 words)

What data do I need to do time series forecasting?

There are three values that you must know for each data point of your time series:

  • its entity, which represents a unique value identifying the time series (e.g., a product SKU). Without this information, it is not possible to construct a sequence of points since there's no logical grouping between the points.
  • its timestamp, which represents the moment in time the data point was recorded. Without this information, it is not possible to construct a sequence of points since there's no sequential ordering between the points.
  • its target, which represents the measurement of the data point itself that we want to predict. Without this information, we have effectively nothing to base ourselves on.

Such information would look as follow when organized in a table:

Entity Timestamp Target
A 1 5
A 2 6
A 3 7
B 1 13
B 2 27
B 3 55

Additionally, you may also have recorded additional values at the same time, which can be a useful source of information when trying to predict a time series.

Entity Timestamp Target Value 1
A 1 5 3
A 2 6 2
A 3 7 1
B 1 13 47
B 2 27 33
B 3 55 5

Let see what happened if we removed each of these columns to illustrate their necessity.

Timestamp Target
1 5
2 6
3 7
1 13
2 27
3 55

Removing the entity effectively leaves us with two values for the same timestamp. If the data was in this format and we were told that each time the timestamp goes below its previous value a new entity was defined, we would be able to reconstruct the initial table with its entity column.

Entity Target
A 5
A 6
A 7
B 13
B 27
B 55

Removing the timestamp gives us the values the entity may take, but we don't know when. Again, if we're told that the rows have been kept in some order, we could reconstruct the timestamp column.

Entity Timestamp
A 1
A 2
A 3
B 1
B 2
B 3

Removing the target column makes this problem impossible to solve. We're left with only the entities that were measured and the time of measurement, but no measurement, which makes the two other values useless.

18 Mar 2020

Reading technical books

History / Edit / PDF / EPUB / BIB / 1 min read (~183 words)

Why should you read technical books?

Because they can teach you. Good technical books will expand your understanding of the topic covered in the book. It will clarify concepts you had trouble grasping before, allowing you to make good use of this newly acquired knowledge.

Because they give you more abilities. As you acquire new knowledge, you can make use of it. This lets you do things you could not do before because of this lack of knowledge.

Because they can change you. If you read about someone else's approach to problem solving, you may come to prefer their way of solving problems. By being convinced by the author, you may be led to change how you write code, what you think is important about building software, how you prioritize your work, etc.