Upload
myles-braithwaite
View
18
Download
1
Tags:
Embed Size (px)
Citation preview
jrnlA journal in your command line.
Myles Braithwaite | myles.coffee | [email protected] 1
My ~programming~ notebooks are filled with random journal entries. It's all the same. I can look back on old ~programming~ notebooks, and know exactly what was going on in my ~professional~ life.
-- Paraphrasing Sarah Silverman
Myles Braithwaite | myles.coffee | [email protected] 2
Dear diary: Today I was pompous and my sister was crazy. Today we were kidnapped by hill folk, never to be seen again. It was the best day ever.Myles Braithwaite | myles.coffee | [email protected] 3
Who actually has time to write paragraphs of text?
Myles Braithwaite | myles.coffee | [email protected] 5
Calm down neckbeards
The finger protocol's .project and .plan files predates Twitter.$ finger [email protected]: myles Name: Myles BraithwaiteDirectory: /home/myles Shell: /bin/bashOffice Phone +1 (647) 555-1234On since Wed Mar 10 20:57 (EST) on pts/0 from batgirl.mylesbraithwaite.net6 seconds idleNo mail.Project:Troll the subreddit of /r/conspiracy.Plan:World domination.
Office Hours:
Monday 9am - 11amTuesday 11am - 1pmWednesday 1pm - 3pmThursday 9am - 11amFriday 3pm - 5pm
Myles Braithwaite | myles.coffee | [email protected] 7
$ jrnl # Will launch in your $EDITOR.
$ jrnl "I am doing a short talk at @GTALUG on jrnl."[Journal created at /home/myles/BTSync/Journal/journal.txt][Entry added to default journal]
$ cat $JOURNAL_FILE2015-03-10 20:30 I am doing a short talk @GTALUG on jrnl.
Myles Braithwaite | myles.coffee | [email protected] 8
$ jrnl yesterday 1pm: "I started phase three of my @WorldDomination plan."[Entry added to default journal]
$ cat $JOURNAL_FILE2015-03-09 13:00 I started phase three of my @WorldDomination plan.
2015-03-10 20:30 I am doing a short talk @GTALUG on jrnl.
Myles Braithwaite | myles.coffee | [email protected] 9
$ jrnl yesterday 2pm: "Had some issue with phase three of @WorldDomination.Apperently the sharkes don't come pre-trained."[Entry added to default journal]
—The yesterday 2pm will be interpreted as a time stamp
—The first sentense (everything before .?!: marks) will be interpreted as the title.
—The rest will be the body.
Myles Braithwaite | myles.coffee | [email protected] 10
$ jrnl < text-document.txt
Myles Braithwaite | myles.coffee | [email protected] 11
$ jrnl *: Phase three of the @WorldDomination plan has successed.We used dophones instead of sharkes.[Entry added to default journal]
Myles Braithwaite | myles.coffee | [email protected] 12
$ jrnl -starred2015-03-10 14:32 Phase three of the @WorldDomination plan has successed.| We used dophones instead of sharkes.
Myles Braithwaite | myles.coffee | [email protected] 13
jrnl -1 --edit
Myles Braithwaite | myles.coffee | [email protected] 14
$ jrnl -n 32015-03-10 14:32 Phase three of the @WorldDomination plan has successed.| We used dophones instead of sharkes.
2015-03-10 16:00 Had my afternoon expresso @Coffee.
2015-03-10 20:30 I am doing a short talk @GTALUG on jrnl.
Myles Braithwaite | myles.coffee | [email protected] 15
$ jrnl -on 2015-02-252015-02-25 09:54 Started working on my @GTALUG presentation on jrnl.
Myles Braithwaite | myles.coffee | [email protected] 16
$ jrnl --tags@coffee : 4@worlddomination : 3@gtalug : 2
Myles Braithwaite | myles.coffee | [email protected] 17
$ jrnl @gtalug2015-02-25 09:54 Started working on my @GTALUG presentation on jrnl.
2015-03-10 20:30 I am doing a short talk @GTALUG on jrnl.
Myles Braithwaite | myles.coffee | [email protected] 18
$ jrnl @coffee -n 12015-03-10 16:00 Had my afternoon expresso @Coffee.
Myles Braithwaite | myles.coffee | [email protected] 19
{ "journals": { "default": "~/BTSync/Journal/journal.txt", "work": { "journal": "~/BTSync/Journal/work.txt", "encrypt": true } }}
Myles Braithwaite | myles.coffee | [email protected] 20
$ jrnl work at 9am: Had a meeting with @Steveabout that electric car project. Managment doesnot want to go though with it.$ jrnl work -n 3
Myles Braithwaite | myles.coffee | [email protected] 21
Cross Platform
Myles Braithwaite | myles.coffee | [email protected] 22
SyncMyles Braithwaite | myles.coffee | [email protected] 23
Encryption
Myles Braithwaite | myles.coffee | [email protected] 24
import hashlib, Crypto.Cipher
key = hashlib.sha256(my_password).digest()
with open("journal.txt", "r+") as f: cipher = f.read()
crypto = AES.new(key, AES.MODE_CBC, iv=cipher[:16])
plain = crypto.decrypt(cipher[16:]) plain = plain.strip(plain[-1]) plain = plain.decode("utf-8")
f.write(plain) f.truncate()
Myles Braithwaite | myles.coffee | [email protected] 25
If you're typing the letters A-E-S into your code, you're doing it wrong.
—http://www.cs.berkeley.edu/~daw/teaching/cs261-f12/misc/if.html
Myles Braithwaite | myles.coffee | [email protected] 26
How to install
$ [sudo] aptitude install python-pip python-crypto$ [sudo] pip install jrnl
Myles Braithwaite | myles.coffee | [email protected] 27
Write your own
#!/bin/bashDATE=`date +"%Y-%m-%d %H:%M"`readprintf "$DATE $REPLY\n\n" >> "journal.txt"
Myles Braithwaite | myles.coffee | [email protected] 28
—Web: myles.coffee—Email: [email protected]—Twitter: @mylesb
Myles Braithwaite | myles.coffee | [email protected] 29
To the extent possible under law, Myles Braithwaite has waived all copyright and related or neighboring rights to jrnl - A journal in your command line. This work is published from: Canada.Myles Braithwaite | myles.coffee | [email protected] 30
You can view the source for this presentation at https://github.com/myles/2015-03-10-jrnl.
Myles Braithwaite | myles.coffee | [email protected] 31
Myles Braithwaite | myles.coffee | [email protected] 32