This site runs best with JavaScript enabled.

Batching to Reduce Downtime


Adjusting the flow of your process can make good routines better.

Sometimes a good process can be improved by breaking it down into smaller processes. Let me give you an example.

I have a process that has worked well for me for a long time. That is how I manage mail and bills. May years ago I purchased an expensive scanner. I don't regret it. I have the Fujitsu ScanSnap iX500. I think I paid about \$500 for it when I got it about 10 years ago.

I use it in combination with Evernote and it has eliminated the need for a filing cabinet. I have been "paperless" since I purchased it.

When I started, my process went something like this.

  1. Receive mail
  2. Open mail
  3. If a bill then pay the bill, write "paid" on the bill
  4. Scan main into Evernote
  5. Edit Evernote clip with titles, tags, etc.
  6. Throw away paper

I found ways to improve the process by batching certain processes. For a long time, it worked more like this

Process 1

  1. Recieve mail
  2. Put mail in an inbox

Process 2

  1. Open mail all mail (sort what needs to be scanned or just thrown away)
  2. Scan all mail
  3. Edit Evernote clip with titles, tags, etc.
  4. If a bill, then add a Reminder on the Evernote clip
  5. Throw away paper

Process 3

  1. Go through each Evernote reminder and pay bills
  2. Clear reminder after the bill is paid

Writing it out, the process looks longer, but it isn't really. It is mostly the same.

Recently I modified Process 2 to try to make it more efficient.

When I scan notes, I like to turn on the OCR so that I can search for all the text in the PDF documents. Doing this greatly slows down the process of scanning. So really between the "Scan mail" and "Edit Evernote" there is a long pause to wait for OCR before scanning the next document.

It is frustrating enough, that I have turned it off in the past so I could get through the scanning process faster. But that led to the problem of having difficulty finding certain documents because I don't have all the text of the documents indexed to search against.

I recently adjusted my process to address this specific problem. I have edited my ScanSnap to scan to a folder directly rather than into Evernote and I have turned off OCR. Now I can scan everything very quickly. Once I'm done, I run a script that I wrote that will OCR each PDF and import it into Evernote. I've set this up so that multiple PDFs can be processed at once. This essentially does two things: 1) It processes the OCR faster as I can use my CPU cores to multitask and 2) It puts all the waiting time into 1 bucket so I'm not stopping my process and getting distracted between each scan.

Here are the contents of my script. I make use of the nice open-source software OCRmyPDF.

1#!/bin/bash
2
3SCANS_DIR='/Users/dustin/Documents/PreEvernote'
4SEARCHABLE_SCANS_DIR='/Users/dustin/Documents/SearchableScans'
5
6
7mkdir -p $SEARCHABLE_SCANS_DIR
8open $SEARCHABLE_SCANS_DIR
9
10open -a Evernote
11
12for filename in $SCANS_DIR/*.pdf; do
13 basename=`basename -a "$filename"`
14 echo "Converting $basename"
15 newpath="$SEARCHABLE_SCANS_DIR/$basename"
16 ocrmypdf --skip-text "$filename" "$newpath" &
17done
18
19wait
20
21for newpath in $SEARCHABLE_SCANS_DIR/*.pdf; do
22 open -a Evernote "$newpath"
23done
24
25# clean up
26sleep 1
27trash $SCANS_DIR/*.pdf
28trash $SEARCHABLE_SCANS_DIR

A couple of other things I do to speed up this process are:

  1. I make use of Alfred and a plugin that will quickly add reminders for me. I use Evernote Legacy because the Alfred plugin doesn't work with the new version of Evernote and the new version of Evernote makes using Reminders a lot harder and a many more clicks. It is not good.
  2. I use FastScripts to map a hotkey to my script above. Once I'm done scanning I can just press the hotkey to start processing all my scans.

Hopefully, this gives you some ideas to look for ways to improve some of your workflows. If you see areas for improvement in mine, I'm always open to suggestions!

Discuss on TwitterEdit post on GitHub

Share article
Dustin Davis

Dustin Davis is a software engineer, people manager, hacker, and entreprenuer. He loves to develop systems and automation. He lives with his wife and five kids in Utah.

Join the Newsletter



Dustin Davis