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?
-
I'd like to have an easily digestible artifact for friends and family. A crude artifact, yes, but sometimes I think how nice it'd be to have some glimpse of a "day in the life" of one of my ancestors.
🧀 -
The log is meditative. I understand that not everything is in my control but I can control how I respond to everything. Having a system where I regularly review my life is invaluable to me.
-
Public accountability systems work for me.
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! ✌️