20 Mar 2020

Dealing with negatives thoughts

History / Edit / PDF / EPUB / BIB / 2 min read (~252 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 / 2 min read (~362 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 (~135 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.

17 Mar 2020

Reading fiction books

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

Why should you read fiction books?

Because they can motivate you. An exciting story to which you can relate may motivate you to try and emulate it.

Because they can make you think. Some authors have been alive for a lot longer than you have and they've had longer to think about certain topics to which you never really dedicated any time. Some may have acquired a deeper and broader understanding of a certain domain they can then use to turn fiction into an epic story.

Because they can help you be more creative. Creativity is in my opinion simply the ability to take what one already knows and arrange it in a way that is novel. Seeing how others arrange things they know in a new and interesting way can help you recognize where you may be too rigid and help you relax when being creative.

Because they can help you disconnect. Reading about someone else's story is a great way to disconnect from our day to day life. If you take the bus, the subway or the train to go to work and back home, it is a great opportunity to spend some time disconnecting. The creation of a buffer where you are immersed in a different realm has had very calming properties on me.

Suggested series: All of the Warcraft/World of Warcraft books, The Three-Body Problem trilogy

16 Mar 2020

Timestamping all the things

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

What is the value of timestamping all the things?

Adding a temporal reference to everything allows us to contextualize this information. It allows us to better remember the exact moment we took a note, which may in turn help us remember why we took that note.

Timestamping also allows us to have a better idea of how things have come into being sequentially. If you have notes you wrote in different locations and they all have their timestamp, you can gather them and organize them by their timestamp.

Having a creation timestamp on tasks is useful to track how long a task has been opened. It's also useful to determine the recency of a task, as recent tasks generally have more urgency than older tasks, as proven by the fact that the task has aged and is not completed. Having a timestamp on the last modification date allows us to know when it was last updated, giving us a sign this task has been seen and hasn't been discarded yet. Having a completion timestamp allows us to measure how long it takes for tasks to go from creation to completion. Having timestamps on all the events related to the task allows us to know how many task management tasks are necessary for a task to be completed.

Timestamping is useful to predict events. If you have a system (e.g., a store, a computer, a company) and you do a lot of different actions, being able to forecast when is the next time a specific event will occur is useful. It also allows you to forecast events volume (e.g., number of sales, number of actions per employee)

Note: This question was timestamped 2018-04-21 22:14:52.