README.md in friends-0.30 vs README.md in friends-0.31
- old
+ new
@@ -16,10 +16,11 @@
- [Installation](#installation)
- [Usage](#usage)
- [Core concepts](#core-concepts)
- [Global flags](#global-flags)
- [Syncing across multiple machines](#syncing-across-multiple-machines)
+ - [Setting reminders](#setting-reminders)
- [Command reference](#command-reference)
- `add`
- [`add activity`](#add-activity)
- [`add friend`](#add-friend)
- [`add tag`](#add-tag)
@@ -122,14 +123,14 @@
- and an ordered list of all activities:
```markdown
### Activities:
-- 2015-11-01: **Grace Hopper** and I went to _Marie's Diner_. George had to cancel at the last minute.
-- 2015-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**.
-- 2014-12-31: Celebrated the new year in _Paris_ with **Marie Curie**.
-- 2014-11-15: Talked to **George Washington Carver** on the phone for an hour.
+- 2018-11-01: **Grace Hopper** and I went to _Marie's Diner_. George had to cancel at the last minute.
+- 2018-01-04: Got lunch with **Grace Hopper** and **George Washington Carver**.
+- 2017-12-31: Celebrated the new year in _Paris_ with **Marie Curie**.
+- 2017-11-15: Talked to **George Washington Carver** on the phone for an hour.
```
See the example
[`friends.md`](https://github.com/JacobEvelyn/friends/blob/master/friends.md)
file for more information.
@@ -186,81 +187,104 @@
```bash
alias friends="friends --filename '~/Dropbox/friends.md'"
```
+### Setting reminders
+
+Though `friends` has no built-in reminder functionality, it's easy to use a
+system like `cron` (Mac or Linux) or `Task Scheduler` (Windows) to set various
+reminders.
+
+For example, on a Mac, the following `crontab` configuration results in every day
+at 9:00 p.m. a Terminal tab opening, printing "Time to journal!" and then launching
+an `add activity` prompt through `friends`:
+
+```
+0 21 * * * osascript -e 'activate application "Terminal"' &> /dev/null && osascript -e 'tell application "Terminal" to do script "clear && echo Time to journal! && friends add activity"' &> /dev/null
+```
+
+Here's another example (also for Mac) of using `friends` to suggest some people to
+hang out with every Saturday morning:
+
+```
+0 10 * * 6 osascript -e 'activate application "Terminal"' &> /dev/null && osascript -e 'tell application "Terminal" to do script "clear && echo Consider hanging out with one of these friends today: && friends suggest"' &> /dev/null
+```
+
+(If you use other tools, please share and we'll add to these examples!)
+
### Command reference*
*Note that the command-line output is colored, which this README cannot show.
#### `add activity`
```bash
$ friends add activity Got lunch with Grace and George.
-Activity added: "2015-01-04: Got lunch with Grace Hopper and George Washington Carver."
+Activity added: "2018-01-04: Got lunch with Grace Hopper and George Washington Carver."
```
`friends` will **automatically** figure out which "Grace" and "George" you're referring to, *even if you're friends with lots of different Graces and Georges*.
Nicknames will be used to match friends in activities,
just like formal names:
```bash
$ friends add activity Invented debugging with The Admiral.
-Activity added: "2016-01-06: Invented debugging with Grace Hopper."
+Activity added: "2017-01-06: Invented debugging with Grace Hopper."
```
You can also use the first initial of a last name instead of the whole thing.
`friends` will figure out what to do with those pesky periods (if you include
them) based on whether you're in the middle of a sentence or not:
```bash
$ friends add activity Got lunch with Earnest H and Earnest S. in the park. Man, I like Earnest H. but really love Earnest S.
-Activity added: "2016-05-01: Got lunch with Earnest Hemingway and Earnest Shackleton in the park. Man, I like Earnest Hemingway but really love Earnest Shackleton."
+Activity added: "2017-05-01: Got lunch with Earnest Hemingway and Earnest Shackleton in the park. Man, I like Earnest Hemingway but really love Earnest Shackleton."
```
And locations will be matched as well:
```bash
$ friends add activity Went swimming near atlantis with George.
-Activity added: "2016-01-06: Went swimming near Atlantis with George Washington Carver."
+Activity added: "2017-01-06: Went swimming near Atlantis with George Washington Carver."
```
Tags will be colored if they're provided (though this README can't display
color so you'll just have to have faith here):
```bash
$ friends add activity The office softball team wins a game! @work @exercise
-Activity added: "2016-05-05: The office softball team wins a game! @work @exercise"
+Activity added: "2017-05-05: The office softball team wins a game! @work @exercise"
```
You can of course specify a date for the activity:
```bash
$ friends add activity Yesterday: Celebrated the new year with Marie.
-Activity added: "2014-12-31: Celebrated the new year with Marie Curie."
+Activity added: "2017-12-31: Celebrated the new year with Marie Curie."
```
Or get an **interactive prompt** by just typing `friends add activity`, with or without a date specified:
```bash
-$ friends add activity 2015-11-01
-2015-11-01: <type description here>
+$ friends add activity 2018-11-01
+2018-11-01: <type description here>
```
**Natural-language dates** work just fine:
```bash
$ friends add activity last Monday
-2016-03-07: <type description here>
+2017-03-07: <type description here>
```
You can escape the names of friends you don't want `friends` to match with a backslash:
```bash
-$ friends add activity "2015-11-01: Grace and I went to \Marie's Diner. \George had to cancel at the last minute."
-Activity added: "2015-11-01: Grace Hopper and I went to Marie's Diner. George had to cancel at the last minute."
+$ friends add activity "2018-11-01: Grace and I went to \Marie's Diner. \George had to cancel at the last minute."
+Activity added: "2018-11-01: Grace Hopper and I went to Marie's Diner. George had to cancel at the last minute."
```
#### `add friend`
```bash
@@ -325,82 +349,92 @@
Graphs (in color!) your activities over time:
```bash
$ friends graph
-Nov 2014 |███
-Dec 2014 |██
-Jan 2015 |███████
-Feb 2015 |█████
+Nov 2017 |███
+Dec 2017 |██
+Jan 2018 |███████
+Feb 2018 |█████
```
Or graph only activities with a certain friend:
```bash
$ friends graph --with George
-Nov 2014 |█
-Dec 2014 |
-Jan 2015 |█████
-Feb 2015 |███
+Nov 2017 |█∙∙|
+Dec 2017 |∙∙|
+Jan 2018 |█████∙∙|
+Feb 2018 |███∙∙|
```
-Or a certain group of friends:
+The dots represent the total activities that month, so you can get a feel for the
+proportion of activities with that friend vs. the total you've logged.
+You can also graph a certain group of friends:
+
```bash
$ friends graph --with George --with Grace
-Jan 2015 |█
+Nov 2017 |∙∙∙|
+Dec 2017 |∙∙|
+Jan 2018 |█∙∙∙∙∙∙|
+Feb 2018 |∙∙∙∙∙|
```
Or graph only activities with a certain tag:
```bash
$ friends graph --tagged food
-Nov 2014 |█
-Dec 2014 |
-Jan 2015 |
-Feb 2015 |███
+Nov 2017 |█∙∙|
+Dec 2017 |∙∙|
+Jan 2018 |∙∙∙∙∙∙∙|
+Feb 2018 |███∙∙|
```
Or with multiple tags:
```bash
$ friends graph --tagged @fun --tagged @work
-Jul 2017 |█
+Nov 2017 |∙∙∙|
+Dec 2017 |█∙|
+Jan 2018 |∙∙∙∙∙∙∙|
+Feb 2018 |█∙∙∙∙|
```
Or graph only activities in a certain location:
```bash
$ friends graph --in Paris
-Nov 2014 |█
-Dec 2014 |
-Jan 2015 |
-Feb 2015 |█
+Nov 2017 |█∙∙|
+Dec 2017 |∙∙|
+Jan 2018 |∙∙∙∙∙∙∙|
+Feb 2018 |█∙∙∙∙|
```
Or graph only activities on or after a certain date:
```bash
-$ friends graph --since 'January 1st 2015'
-Jan 2015 |███████
-Feb 2015 |█████
+$ friends graph --since 'January 1st 2018'
+Jan 2018 |███████
+Feb 2018 |█████
```
Or graph only activities before or on a certain date:
```bash
-$ friends graph --until 'January 1st 2015'
-Nov 2014 |███
-Dec 2014 |██
-Jan 2015 |███████
+$ friends graph --until 'January 1st 2018'
+Nov 2017 |███
+Dec 2017 |██
+Jan 2018 |███████
```
And you can use multiple of these flags together:
```bash
-$ friends graph --in Paris --tagged food --with George --after 'September 2014'
-Nov 2014 |█
+$ friends graph --in Paris --tagged food --with George --since 'Jan 2018'
+Jan 2018 |∙∙∙∙∙∙∙|
+Fen 2017 |█∙∙∙∙|
```
#### `help`
Displays a help menu. This is equivalent to `friends --help`.
@@ -434,77 +468,77 @@
Lists recent activities:
```bash
$ friends list activities
-2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
-2014-12-31: Celebrated the new year with Marie Curie in New York City. @partying
-2014-11-15: Talked to George Washington Carver on the phone for an hour.
+2018-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
+2017-12-31: Celebrated the new year with Marie Curie in New York City. @partying
+2017-11-15: Talked to George Washington Carver on the phone for an hour.
```
You can adjust how many activities are shown:
```bash
$ friends list activities --limit 2
-2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
-2014-12-31: Celebrated the new year with Marie Curie in New York City. @partying
+2018-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
+2017-12-31: Celebrated the new year with Marie Curie in New York City. @partying
```
Or only list the activities you did with a certain friend:
```bash
$ friends list activities --with George
-2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
-2014-11-15: Talked to George Washington Carver on the phone for an hour.
+2018-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
+2017-11-15: Talked to George Washington Carver on the phone for an hour.
```
Or only filter activities done with a group of friends:
```bash
$ friends list activities --with George --with Grace
-2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
+2018-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
```
Or filter your activities by location:
```bash
$ friends list activities --in "New York"
-2014-12-31: Celebrated the new year with Marie Curie in New York City. @partying
+2017-12-31: Celebrated the new year with Marie Curie in New York City. @partying
```
Or by tag:
```bash
$ friends list activities --tagged food
-2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
+2018-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
```
Or use more than one tag:
```bash
$ friends list activities --tagged @fun --tagged @work
-2017-07-04: Summer picnic with @work colleagues. @fun
+2018-07-04: Summer picnic with @work colleagues. @fun
```
Or by date:
```bash
-$ friends list activities --since 'December 31st 2014'
-2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
-2014-12-31: Celebrated the new year with Marie Curie in New York City. @partying
+$ friends list activities --since 'December 31st 2017'
+2018-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
+2017-12-31: Celebrated the new year with Marie Curie in New York City. @partying
```
```bash
-$ friends list activities --until 'December 31st 2014'
-2014-12-31: Celebrated the new year with Marie Curie in New York City. @partying
-2014-11-15: Talked to George Washington Carver on the phone for an hour.
+$ friends list activities --until 'December 31st 2017'
+2017-12-31: Celebrated the new year with Marie Curie in New York City. @partying
+2017-11-15: Talked to George Washington Carver on the phone for an hour.
```
And you can mix and match these options to your heart's content:
```bash
$ friends list activities --tagged food --with Grace --with George
-2015-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
+2018-01-04: Got lunch with Grace Hopper and George Washington Carver. @food
```
#### `list favorite friends`
Lists your "favorite" friends (by total number of activities):