Public accountability and Privatization 👀

tl;dr: I keep a public daily log of what I plan to accomplish. I summarize the day's events before I go to sleep. This includes some basic details of my life but also some details that should be kept private. I wrote a tool (privatize) to automatically encrypt/decrypt private information in my log.

Background: Why?

One of my goals this year is to commit to a daily journal practice and share that log publicly. Why publicly?

Problem: not everything public should be public

Some other engineers and I have been building a mobile entertainment app in "stealth" mode. Until we're ready to invite people in, we shouldn't share some of our work.

In the flow of writing, I don't want to censor my thoughts. If it's helpful to describe the steps I took tackling a problem, I'm going to write them out and potentially share some private information. That's a no-no.

Solution: privatize — partial file encryption/decryption

privatize is a tool to partially encrypt/decrypt the contents of a file.

When added to a git repository, it will do this encryption/decryption automatically.

It works much the same way that git-crypt does but instead of encrypting the entire file, it parses that file for any text wrapped with the heredoc <<PRIVATE/PRIVATE and encrypts/decrypts that.

For example, the following file contents:

# example.txt

Today I a burrito. 🌯
<<PRIVATE
I was on the toilet for hours.
PRIVATE
I got a lot of reading done.

when privatize'd would be:

# example.txt

Today I a burrito. 🌯
<<PRIVATE
xuJ0fld2vmNWaVLogTIufmWsiFso
PRIVATE
I got a lot of reading done.

The public text is still legible, but any text I marked as private is encrypted with my symmetric key.

MacOS users can download it here:

brew tap higgins/privatize
brew install privatize

You can read more about the project here: privatize

If you like this idea, let me know! ✌️

Justin