
Show HN: A friendship-centric journal - jacobevelyn
https://github.com/JacobEvelyn/friends
======
btrask
This isn't what I expected from the headline (i.e. notetaking software), and
it's not something I could ever see myself using, but I really do like the
design (and your answers here).

The human-readable (Markdown) database format is clever. The friend
identification algorithm is simple and elegant and sounds pretty effective.
And the natural language input format.

Every one of these decisions is "bad" in the sense that they aren't perfect or
could cause problems down the line, but it seems like they all work just fine
for the intended purpose. So let me suggest that more designers and developers
consider the scope/scale of their problems and try to choose simpler options
(even "hacks") when they make sense.

~~~
jacobevelyn
Thanks a lot; I really appreciate it.

And re: the post title, thanks for the tip—it seems "journal" has even more
meanings than I thought! I wanted to avoid "diary," which in my experience
often has childish connotations. Perhaps the awkward-sounding "friendship log"
is the best descriptor...

------
niels_olson
I know a former dean who essentially had a system like this custom made for
himself 20 years ago. He said it saved his skin several times, and may have
saved the school itself on more than one occasion. This is not for tinder
kids. This for CEOs.

~~~
dsr_
Or politicians, or anyone who meets lots of people. The original is a "Farley
File":
[https://en.wikipedia.org/wiki/Farley_file](https://en.wikipedia.org/wiki/Farley_file)

These days it should be integrated with an address book or customer
relationship management software.

~~~
copperx
This should be part of the Contacts app of every operating system.

------
nacs
Now I just need a "how to get a friend" feature added then I'll be able to use
the app.

~~~
dhoe
Add a friend called "stranger" and keep increasing interactions with them.

~~~
jacobevelyn
Not sure how tongue-in-cheek this comment was (if at all) but your suggestion
is actually a really neat way of reframing interactions with strangers.

Thanks for making me rethink how I interact with the world.

------
jacobevelyn
Hi all, creator here. I've been using this program for a year now but it's
definitely in its early stages feature-wise. I'd love to hear feedback!

~~~
Mark222
I like the idea behind this, pretty cool. I'm wondering about this though.

> 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.

How does this work? For example, if I have two equally good friends named
"Grace", how can "friends" guess which one I'm talking about?

~~~
jacobevelyn
Great question. Since the friends.md only stores friend names and activities,
we have to be a bit creative in how we figure this out.

Currently, it looks at all of the past activities and in particular how often
groups of friends appear together. For instance, if my activity is:

"Grabbed burgers and fries with Grace and George."

It will pick the "Grace" and "George" that appear most often together. In the
case of a tie, or when there is only one name to match, it picks the ones who
are closer friends (which for our purposes means they've been in more
activities).

This works even for large groups, and it will brute-force every combination of
all of the names with multiple friend matches to find the set with the highest
score (based on pairs of friends, so a group of 10 friends will be matched
correctly even if no activity has yet had exactly those 10 friends together).
The brute force algorithm hasn't been slow enough to warrant any sort of
constraint satisfaction optimization.

I've found this algorithm to work almost every time, because I find I usually
refer to people (verbally and mentally) in groups ("Mark, Jane, and Stacy from
work," "Jack and Jill's wedding," etc.), or use last names when I have more
than one friend with a given first name and the one I'm referring to _isn 't_
the one I'm closest with (e.g. "Grace" would refer to my close friend Grace
Hopper, while I might say "Grace Kelly" to refer to my acquaintance to clarify
that it's not Grace Hopper).

I'm interested in ways to make this smarter still though, and/or better UX to
allow the user to correct mistakes. Very interested in suggestions here if you
have any!

------
krat0sprakhar
Love the tagline - Introvert-tested. Extrovert-approved! :D

~~~
jacobevelyn
Thanks! I grew up on Kix cereal :)

------
klenwell
Very cool. I really like the command line interface.

I've been dealing with a lot of recruiters over the past year. I even wrote my
own Rails app: [https://github.com/klenwell/recruiters-on-
rails](https://github.com/klenwell/recruiters-on-rails).

I have found it pretty useful in tracking the ones I deal with more
substantively but one use case I have had trouble dealing with is in initial
encounters and deciding whether it is even worth the effort of adding a new
recruiter to my app. I get enough recruiter spam that the cost of simply
filling in the form on my app to add each recruiter could be prohibitive.
Nevertheless, I'd like to keep a record with any recruiter I deal with, even
if it is just spam or template email.

I currently have a de-facto solution that involves the autocomplete feature in
Gmail search and Mailchimp mailing lists. But I can see this solving this
problem much more neatly and coherently. And as a Ruby gem, I could imagine
even integrating it with my Rails app.

Great work!

~~~
jacobevelyn
Thanks! I'd love to hear how well/poorly this integrates with your (very cool)
app. Do feel free to create GitHub Issues if there are things you think should
be changed to allow easier interoperability.

In particular I'd love to hear how this works as a standalone Ruby library
(the `Introvert` class should help you more directly than the shell commands),
since I tried to separate the internals from the command-line interface (which
is in bin/friends) but I think that separation is somewhat blurred at the
moment.

------
fidz
I am not a psychologist, but i ever had a consultation. I felt so lonely, so
empty, and i didn't know what to do (i was in college at that time). She tried
to gather more information from me. Ended up she gave a suggestion to do
something like this journal: I had to make an intense communication, with 20
different friends, for two weeks. I also needed to write the gist of
activities to be reported to her.

After two weeks, she was disappointed because i failed to reach the goal. I
was able to get intense communication to only three of my friends. But i got
my problem right: All of these empty feeling was because i didn't have enough
interaction with other.

I didn't have adequate evidence that i was _that_ lonely. By writing a
journal, i knew that i barely made sufficient interaction with other; far
below the threshold.

(Disclaimer: i am an ambivert)

~~~
treve
There's nothing wrong with only having 1 or 2 close friends.

~~~
codezero
I agree, but there is if you feel lonely, and friendship makes you feel less
so.

------
cheez
I've actually been thinking of using a CRM to manage my personal
relationships........

~~~
esfandia
Conversely, maybe this could be used as an extremely lightweight CRM?

~~~
cheez
Yeah, but it's command-line.

------
lighttower
Some use cases to consider:

# how to deal with couples

    
    
      $ friends add "John and Martha Smith"
    

# how to deal with people who live far away (can't meet regularly but are
important):

    
    
      $ friends add Sister  
      $ friends add Brother-in-Law
    

_Activities for future date_ Store an idea for an activity and remind yourself
in the future.

 _Location sensitive friends_ \- Don't remind me of friends in New York when I
live in LA. Similarly, if I am visiting my mom in Toronto, remind me of
friends living in Toronto. I know facebook and similar services attempt to do
something like this.

~~~
jacobevelyn
Thanks for the feedback! These are both great things to bring up and also both
on my mind. Couples already work fairly well as individuals because of the way
"John and Martha" will be matched to "John Smith" and "Martha Smith," but it's
definitely worth thinking about whether it makes sense to join them formally
somehow.

Locations is one of the next big areas I'd like this to incorporate, but many
of my ideas are fuzzy so any thoughts are (as always) appreciated!

------
jagermo
Build a snappy web-ui, attach it to tinder, sell it to people who juggle
several tinder-based relationships.

------
curuinor
I have implemented and used a similar thing for many years. I think a very
great virtue of such a system is that you can run a cronjob pretty easily to
email you reminders to contact any friends you haven't poked at much.

~~~
curuinor
And I have also thought about the process of making friends for many years.

Consider that the complex network which is considered the ego network (a la
the sociologists) is really considered a complex network, just like the
overall global social network: radical inequality in the degree structure,
clustering and triangle formation, radical inequality in eigenvalues of
adjacency matrix, critical percolation to a giant component, durability to
random insult but not attack, synchronizability.

Therefore, it will seem in low-friendship times that a radical prioritization
is needed and that the durability to random insult should be used to deal with
deep friends only. However, the global structure of the ego net must be
maintained also by weak friendships, and weak relations are of the utmost
importance in doing anything (see Granovetter's work).

As for the operation of getting the friends, fifteen or twenty readings of K.
Johnstone's Impro should suffice.

