29 Nov 2020

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

Notice/Advisory: I am not an accountant nor a day trader. The following is not advice, only notes I've taken for myself. Content may be wrong or inaccurate. Use at your own risk.

The following is a list of items and things to think about if you would like to be a day trader. I wrote it with the intent of identifying what were the requirements to be a day trader and what would be the impacts of being considered as one vs being an investor.

• Basics
• Computer or phone
• Internet
• Broker
• Money
• Your gains/losses will either be categorized as capital gains (50% taxable) or business income (100% taxable) based on how you trade. In any case, since this is a day trading article, you can assume this will be business income. Here are some properties taken into account
• Volume and frequency of trading
• Length of ownership of securities
• Type of securities owned
• Your profession and level of stock market knowledge
• If trading is your main source of income or substantially supplements it
• Here it is not clear what substantially represents. I would estimate that anything below 25% of your non-trading income isn't substantial.
• If you want to day trade, you will want to have access to level 2 data, which costs money depending on your broker
• Some brokers will reimburse your data package fees if you spend a certain amount of money on commissions each month. For example, Questrade data package will cost you 90$/month, but if you spend over 400$ on commissions this fee will be rebated.
• You do not need to register with the government or any agency
• You do not need a minimal amount of money, although it is suggested to have a few thousands dollars otherwise you will not make a lot of profit daily and your commissions fees are likely to eat any profit you will make
• Some brokers have minimum account balance
• You have a trading strategy
• Time of entry/exit
• Cost at entry/exit
• Symbol/Ticker

15 Nov 2020

Habits

History / Edit / PDF / EPUB / BIB / 1 min read (~154 words)
• Decide what habit you want to have and record why you want this habit
• Increase the amount of effort regularly until you reach the desired amount of regular effort
• Track your habit in a habit recording system such as Loop Habit Tracker
• Review on a regular basis (monthly) whether you want to keep this habit or not
• If you decide not to keep the habit, record why you decided to drop the habit such that if you decide to pick it up again, you can determine whether you might end up dropping it again.
• It's not a problem if you miss doing your habit, just make sure to do it when you're supposed to
06 Nov 2020

Planning large software projects

History / Edit / PDF / EPUB / BIB / 1 min read (~176 words)
• List all the features you would like to develop
• Define an appetite for the task (day, week, month, quarter)
• Identify the features where the appetite differs between individuals and discuss them to reach consensus
• Define the roles necessary to complete the task
• Identify dependencies between features
• Categorize the dependencies
• Soft: somewhat depends on this other feature but isn't blocked by its absence from the codebase
• Hard: depends on this other feature and is blocked by its absence from the codebase
• Prioritize the features
• Estimate the value of a features in dollars
• Calculate a ROI (return on investment) as the estimated value of the feature divided by the defined appetite
• Order tasks according to dependencies and ROI
27 Jul 2020

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

Let's start by saying I'm not suggesting you read a full book per day. What I'm suggesting is to read at least a few pages of a book per day, reading a variety of books over the course of a week.

For a while I used to start book and finish them before starting another one. I'd allow myself to read a fiction book and a technical book at the same time, but not more than that. The idea was that by reading more than one of each my brain would have trouble with context and information retention.

I've recently decided to switch this approach. The main reason was that I found myself spending too much time reading articles online that I thought didn't bring me much value over time. I always thought books were more valuable, but their biggest problem was that it required a good amount of time involvement for the value to kick in.

Just like there are two strategies in learning systems, exploration and exploitation, I decided that leaning more on the exploration side might provide useful. Instead of spending hours on the same book over a short period of time (1-3 months), I would instead read bits of many books at once.

Here are the benefits I've observed through this approach:

It's easier to identify similar sources. I would read a few books on a similar topic, and of course they would all cite the same sources. The difference between processing all those books in parallel instead of sequentially is that you notice the pattern of reuse more clearly. When reading the books sequentially, what happens is that this type of information decays over time. We start to forget what the last book was referring to, so that the next book appears to have new references.

Similar ideas can be identified and speed up reading. As you identify the same ideas in different books, instead of reading the arguments careful in each book, the best argument is read thoroughly and the others quickly scanned for additional information.

You are exposed to more variety. Some people get topic fatigue, which is that you get bored of reading on the same topic. Reading on different topics avoids this issue while also stimulating you to think about many topics. This is a great way to sometimes make connections between unrelated topics.

Overall I've been very satisfied with this experiment and I've been doing it for over 4 months now. I highly recommend it if you have a large list of books you haven't started yet. See my article How to prioritize which book to read to help you organize your reading.

12 Apr 2020

Tesseract TSV format

History / Edit / PDF / EPUB / BIB / 5 min read (~871 words)

Tesseract (an open source OCR engine) supports a TSV format as output. I looked online for some documentation about the columns but couldn't find anything, so I looked at the source code.

Here is a summary description of each column, what they represent, and the range of valid values they can have.

• level: hierarchical layout (a word is in a line, which is in a paragraph, which is in a block, which is in a page), a value from 1 to 5
• 1: page
• 2: block
• 3: paragraph
• 4: line
• 5: word
• page_num: when provided with a list of images, indicates the number of the file, when provided with a multi-pages document, indicates the page number, starting from 1
• block_num: block number within the page, starting from 0
• par_num: paragraph number within the block, starting from 0
• line_num: line number within the paragraph, starting from 0
• word_num: word number within the line, starting from 0
• left: x coordinate in pixels of the text bounding box top left corner, starting from the left of the image
• top: y coordinate in pixels of the text bounding box top left corner, starting from the top of the image
• width: width of the text bounding box in pixels
• height: height of the text bounding box in pixels
• conf: confidence value, from 0 (no confidence) to 100 (maximum confidence), -1 for all level except 5
• text: detected text, empty for all levels except 5

Here is an example of the TSV format output, for reference.

level page_num block_num par_num line_num word_num left top width height conf text
1 1 0 0 0 0 0 0 1024 800 -1
2 1 1 0 0 0 98 66 821 596 -1
3 1 1 1 0 0 98 66 821 596 -1
4 1 1 1 1 0 105 66 719 48 -1
5 1 1 1 1 1 105 66 74 32 90 The
5 1 1 1 1 2 205 67 143 40 87 (quick)
5 1 1 1 1 3 376 69 153 41 89 [brown]
5 1 1 1 1 4 559 71 105 40 89 {fox}
5 1 1 1 1 5 687 73 137 41 89 jumps!
4 1 1 1 2 0 104 115 784 51 -
5 1 1 1 2 1 104 115 96 33 91 Over
5 1 1 1 2 2 224 117 60 32 89 the
5 1 1 1 2 3 310 117 224 39 88 \$43,456.78
5 1 1 1 2 4 561 121 136 42 92 <lazy>
5 1 1 1 2 5 722 123 70 32 92 #90
5 1 1 1 2 6 818 125 70 41 89 dog