Seems like a lot. For me, it's 0 close friends, 0 regular contacts, and 0 active acquaintances. I think I simply never developed any useful social skills which would help me make and keep friends or acquaintances. I wish I had (somehow) kept in touch with at least some people I have met throughout my life. It has never been easier to stay in contact than in all of human history, but no, I had to ghost and ignore everyone and everything. After 29 revolutions around the sun, I have only now started to realize that all that vacuous superiority has led me nowhere. There is only a faint aftertaste of missing out, which sticks to me like tar. I can’t wash it off.
Also email sentiment too how fun
I find text messages impersonal and it also takes longer to communicate clearly what we need. There is so much lost. Even chats and emails for work are at risk of creating misunderstanding, especially because English is not the native language of most of my coworkers, all these adds to result in pretty low quality communication.
It maybe that you most definitely want it. However for me "missing out" hasn't make life any worse.
That kind of self insight is valuable.
So maybe, ya know, stop pretending on the internet that you have things figured out?
Don't think there is a way to recover that.. right?
I decided to look through old IRC chats, and I honestly couldn't for sure say who maybe 30% of the people are just based on their nicknames. Nicknames I hadn't seen in 20 years. So I decided to feed all the raw chats into a LLM, and see if the model could string together names and nicknames. It managed to do surprisingly well! Many of the chats were not personal chats, but from the channels. My most active channels were local groups from my small town, so the names would naturally be named there, but I couldn't be bothered with sifting through the vast amounts of chats/text.
I then noticed that in the mid 2000s, MSN Messenger really took off, so most my chats were done there. Or ICQ if I were chatting with people from the US.
Then, around 2009/2010 Facebook became the standard (though it seems like my account was created in 2007), and most chats are via messenger.
For removing noise you might want to look into TF-IDF instead of the manual method described in the post that I didn't understand. It basically looks for words common across the whole corpus as noise or ones that appear within a specific chat much higher than the whole dataset as interesting.
You can also do some fun stuff by finding phrases used asymmetrically eg more by one person in the convo than the other, or over time.
Wordclouds per person are also fun!
The internet is the fast food of socialising. While it might be quick and easy, the quality is terrible. You’ll make real life long friends just being in the same room as someone regularly and chatting face to face.
Weirdly glad to hear I am not the only one effectively having lost them.
Taking phrases like "when you're ready" as a condescending insult or ego challenge is a stronger guarantee of pain than simply doing nothing. Your own expectations and misguided impressions are most of the pain.
There are plenty of bitter and unhappy people who got that way by being delusional. Misjudging one's own experiences and accomplishments is what it really means to "miss out".
Besides, social interactions are one of those things that don't depend exclusively on you but also on the environment and on luck. I had better and worse periods, I doubt I could have had only "great periods". Going through periods is how you also learn and get to put some effort to change (the environment and yourself).
People have had "weird" or out of the norm nicknames forever. Where do you think nicknames come from?
Ultimately you run the risk of having a computer program redefine who you are as a human and that begs the question of whether you’re really you after that?
The cringe is rough but at some point the cringe becomes so bad it loops back around to me just feeling nostalgic and grateful that there's proof I was able to do things, create, be silly, whatever without worrying about appearances so much.
Also, I figure if I ever become a megalomaniac then old youtube videos of my teenage self doing parkour should go pretty far in humbling me (although, honestly, I think 13 year old me was way cooler than I am now, so I guess it could backfire).
This was very unexpected to me because in my mind the changes only happened as I became a young adult. The evidence of these decades of logs shows the change continued to happen as an adult.
(Not OP, but interested to hear more)
In terms of motivation, do you know of a way to begin a sincere and genuine interest in others that doesn't have some ulterior motivations? That may sound kind of mechanical, but what I mean is roughly something like: "I don't know people, so I do not have any 'genuine interest' in them. As a result, any interest that I do have is insincere."
I chose not to have friends for several decades, which has been extremely convenient for the most part, except for tasks that require more than one person, or work-related situations. Not having to worry about offending people, remembering birthdays, messing up my own plans for the needs of others, etc. was very burdensome. However, being able to use people as a job reference, or getting leads on future opportunities from people I used to work with would also be beneficial so I can understand why people would expend the effort. However, retaining a friendship solely for those job-related purposes seems grossly manipulative because there is no sincerity in what I want from them. I do not want them I only want to extract what they can give to me.
Is it simply understood that, if you make friends with someone as an adult, it is inherently with ulterior motivations in mind, whether it be to avoid loneliness, get work-related benefits, or extract knowledge from them? As a child, I think people tended to make friends simply because they were bored and the person seemed neat. Is that why people still try to make friends with people?
>Armed with GDPR and data access laws, I got myself archives with all my messages, reactions, and social graphs.
A data breach on an IM app would be one of the most devastating leaks ever. And there’s just not that many legitimate use cases for keeping all history. If someone tells you something important you can make the effort to move it to their contact or notes in your phone.
If you're really hard up for social skills, and you like being around silly fun people and are okay acting silly yourself, I recommend taking an improv class. Any introductory improv class is basically kindergarten games to help you realize how low stakes socializing can be.
But I also realize improv isn't for everyone. In that case I recommend finding an activity you might be interested in and taking a class in it. If you aren't sure what you're interested in, good news! That means you get to take all the classes until you find one you like.
Even if there's no classes for your activity, anything that can be done out of the house and with other people probably has a community built around it. Use your interest in the activity as leverage to expose yourself to that community.
Maybe you are truly asocial, but you come across as someone severely stunted emotionally if you think companionship means always extracting value out of someone.
If you're nearly a professional athlete then "how do I improve?" has very few answers that could help, and many ways that won't, but if you're a couch potato then anything is better than nothing. Any movement or club, from walking to bodyweight exercise, community hall dance group, exercise bike, treadmill, gym club spin class, climbing gym, Starting Strength, Couch to 5K running podcasts, Pilates, Yoga, Martial Arts, frisbee, volunteering to walk dogs - anything at all is an improvement.
Any book, blog, video, article, about developing social skills will have some ideas and approaches. Asking anyone - family member, counsellor, therapist, doctor, coworker, stranger in the street - for ideas could give you some. Take anything other people do and google "how do I learn that?" and try some of the suggestions.
Charisma On Command channel: https://www.youtube.com/@Charismaoncommand/videos
Harvard Business Review on enjoying smalltalk: https://www.youtube.com/watch?v=IRG-YubP1rw
Dr Burns on empathic communication: https://feelinggood.com/2016/12/12/014-the-five-secrets-of-e...
Dr Burns on stop trying to "be somebody" and dare to be Average: https://www.youtube.com/watch?v=Dz_Iw3JLCb0
Dr Burns on stopping criticising yourself with "I should XYZ" to everything you do or don't do: https://www.youtube.com/watch?v=b5Zl12LS3bg
anything on improving your fashion, haircut, body language, giving genuine compliments, making people feel happier around you, helping interactions feel fun and less like a competition you have to win, how to start conversations, how to keep conversations going, how jokes work, some jokes to memorise.
Imagine all the "how do I learn programming?" posts on the internet, if you want to make a 100fps 3D game in C++ there's only a few useful ideas, if you want to "learn programming" it does not matter what language, computer, IDE, editor, book, article, video, tutorial, you start with. Anything is more progress than doing nothing.
IIRC, it's harder than high school to make friends at a university. It's bigger and more anonymous, and outside of student housing there's less free time where students are forced together.
My high school class wasn't too much larger than Dunbar's number (300), and you were getting mixed up with the same kids for 6 hours straight for 6 years.
My university wasn't even that large, and I think there were ~>3,000 kids in my year and plenty enough in my major that it wasn't uncommon (without deliberate effort) to have zero overlap from semester to semester.
If you're eating alone at your desk, you are signaling that you wish to be left alone.
Thought process: I'm going to keep all my chats and in 20 years time run an analysis on them and write a blog post about it...
I also use the Note to Self which is built into Signal and appears just like any other conversation. I use that for temporary stuff like addresses and keep it clean.
TF-IDF was the first thing I tried - it works great for stopwords but it doesn't handle cross-language bleed of filler words well, and the short life-event messages ("he died", etc) use common words and get aggressively down-weighted.
I had some asymmetry analysis when looking at directional sentiment and per-person question rates - that's fun indeed!
I also went with the Jaccard convergence and the endearment categories instead of wordclouds, so that I could see how word choices are changing across time.
Now, if the threat scenario is someone implanting a compromised version of the IM app on every device out there, and siphoning data from the device itself, then it's a completely different scenario.
[1] although this could be intercepted by an attacker compromising the IM servers, if the app is not distributed/P2P
Spend some time on that website, see what you can dig up on specific skills, and then test using them in real life.
That site skews heavily towards therapists, and has a lot of woo-woo. It is clearly not THE answer.
But it is A answer. Enough to give you a framework to get started.
Make new friends with others that have underdeveloped social skills and figure it out together.
Do things in a group in some activity that won't put the spotlight directly on you and where you can observe others.
Explore therapy where odds of rejection are pretty low since you're paying them for coaching.
I think noticing how children play is very instructive, but if you don't have good social awareness that could get you in trouble. Kids haven't internalized all the baggage you and I might have about social rejection and awkwardness yet. They just confidently say "hey I like your bracelets will you tell me what they mean to you?" and if it doesn't pan out this time they play with someone else. It's the social anxiety / awkwardness that usually makes people the most uncomfortable, not the atypical interactions. Kids don't have that at all.
… Do it; suck. Do it more; suck less.
“How to Make Friends and Influence People” is a great & classic book about giving people social room, focus, support, and attention with genuineness and humour (“influence” isn’t meant in a manipulative sense). Effort and attention are required, and practice, but that’s the cost of change and improvement.
You or the other person could lose the device and someone could use your PIN/password (something as simple as shoulder surfing while you use it). There could also be a leak in whatever cloud service you're using, or the data could get subpoenaed because of some dumb law that gets passed, some rogue employee, etc. It's a huge liability no matter how you look at it.
I think me and most of my friends were using MSN all up until the "Windows Live" rename, then I think we started using Ventrilo instead, but looking up the year that was around 2005 sometime.
Ultimately, guess it wouldn't be impossible that their MSN logs were encrypted with Bitlocker after all :) I think I started using TrueCrypt around that same time, seems more likely, I think Bitlocker for many, many years was basically only used by enterprises.
These are the two options I see to download https://i.ritzastatic.com/static/1e133ef5057a949b7ddd92e5668...
And the 'main' one that I usually use doesn't have export settings that I can find
https://i.ritzastatic.com/static/18db23448a373338766bf419fa0...
The one little girl is black and has very tightly curled hair. Every few weeks she has it done up differently, with different colored beads, etc. I make sure to pay attention to when it changes so that I can tell her that it looks amazing, and she gets a huge smile on her face every time. It's often the highlight of my morning, and I truly hope that she heads off to school with more spring in her step.
Adults aren't much different -- they also like to receive compliments. Give out compliments as you see fit and soon you'll have something in common to talk about.
“How to Make Friends and Influence People” is a salesman's guide, Dale Carnegie was an traveling salesman and the book techniques he learned making sales. The techniques you need to be a salesperson is probably not the same techniques to build lasting relationships. These tips are great for brief interactions; they are not for building relationships.
There's a couple of things that need serious caveats -
The "using the person's name" is so well known it's now clocked as exclusively a sleezy sales behavior. Don't do this - you sound like a sleezy salesman.
Asking people endless questions about themselves can really come off as a really weird integration and can be extremely off-putting if not done carefully/correctly and with grace. My mom does this, she asks hundreds of the dumbest most inane questions and she doesn't even listen to the answers to. It's so insufferable that people actively avoid her. I'm sure she read this book and thinks she's a social genius.
https://www.buzzsprout.com/2040953/episodes/17943742-how-to-...
"And also, if you think about these tips of smile and try to avoid arguments and greet somebody enthusiastically a lot of these are tips for making somebody like you immediately... They're not tips for ongoing relationships. They're like, when you show up at somebody's door, how can you make a good impression in the first five minutes and establish trust very quickly?"
Most friendships are made by doing something that puts you in proximity to the same people repeatedly. Go join (or start) a pickup sports team. Or a reading club. Or a run club. Or hang out at a bar on the same evening each week. Find something that aligns with your interests. Do it with other people. If they invite you to grab dinner or go somewhere afterwards, go along and keep talking.
The goal isn't to interview people.
If you're into music, find out what local/regional bands are in your area and where the small local venues are. Show up a little early and talk to strangers.
Rock climbing isn't for me, but my brother has made a bunch of friends at the local rock climbing gym.
Bird watching clubs are everywhere and you guys can nerd out over different camera setups.
Join a running or cycling club. I've heard the ones around here are very welcoming to people new to the sports.
Table top RPGs are fun. Your local game stores probably have one shot nights where everyone is welcome and noobs are encouraged.
Find some sort of hobby you enjoy and find others who want to nerd out over it
But for normal people, the biggest risk is companies using their chats to train models / dispatch ads etc to which the only solution is E2EE.
In 2014, Tim Urban of WaitButWhy published Your Life in Weeks - a grid where each square is one week of one's life, and most of the grid is already filled. The image bothered me for years. I started tracking things partly because of it - I wanted the grid to mean something, not just count down. But the biometric data is an odd representation of how fulfilling my life has been. The grid suggests it's the events that matter - jobs, trips, schools, marriages - and those are easy to mark. But they hardly tell how I felt during those weeks, or what I was like to the people around me. That was what I wanted to measure.
So I tried journaling. Paper first, then text files, then daily notes in Obsidian. The journal captured what I thought was important on the day I wrote it. It missed the conversations I forgot to jot down or the slow-moving patterns I couldn't see at the time.

My notes and their connections growing over the years.
Tired of being bad at maintaining relationships[1]1. Not bad per se - I just procrastinate a lot. Once I learnt to shoot and stalk deer because I wanted to cook a steak - and cooking is way easier than human interactions. and wanting the data to compensate, I set off on a quest to build a personal CRM of sorts, built from the record rather than from memory - thanks to the trail left by my prolific time-wasting on the Internet for the past few decades.
My online presence breaks into roughly three eras:
Armed with GDPR and data access laws, I got myself archives with all my messages, reactions, and social graphs.
Parsing a bunch of JSONs and HTMLs wasn't hard but wasn't fun either. Instagram double-encodes Cyrillic through latin-1. Telegram assigns different internal message IDs between exports taken at different dates. Facebook introduced E2E encryption at some point, so the same messages show up in three different folders. Telegram lets you export group chats or just your own messages. VK exports everything without asking. Instagram doesn't differentiate between broadcasts and personal chats at all.
Once parsed into a uniform tab-separated format, the five exports produce different kinds of signal. Telegram and VK are mostly DMs. Instagram adds story interactions and a follower graph. Twitter is its own thing: standalone tweets are a publication corpus, DMs are half support requests and half conference coordination, so I needed the reply/mention graph to catch real signals.
I wanted to capture a daily note per conversation-day, a profile per person, a stub per place, a life timeline, and whatever else surfaces - recipes, cocktails, meeting notes.
Before worrying about classification, you have to deal with the fact that most of the data is noise.
In my longest thread - 486,000+ messages with my partner across ten years - the content has 2.4% links, 9.1% media, 1.5% emoji-only messages, 28.4% of short fillers, and 58.7% of substantive text. This means, 41% is noise for the purpose of this exercise. Emojis, links, and media were easy to filter, but catching conversational filler words - short words that look like content until you see them hundreds of times per month - is harder.
My first idea was filtering out all messages shorter than three words, but there is a lot that can be said in two (he died, we lost, etc). Building a denylist of hahahas and noices didn't work either, especially across languages.
What worked was sampling from five offset positions across the chat, frequency-counting every short token, reviewing the top 80 manually, and pair the denylist with a protected set for short messages that are life events.
Across all platforms and years, the cleaned corpus contains roughly 52,000 unique lemmas. The novelty rate - the share of words I hadn't used before in any chat - has been declining since 2008 and plateaued at 6% six years ago. Most of my vocabulary was locked in my early 20s.

Bars: new unique words per year (never used before). Line: those new words as a share of that year's total vocabulary. 2016 has the most new words but a low novelty rate because the total vocabulary that year was enormous - I guess I was very social.
With the noise filtered, the cleaned messages need classification: what's a life event, what's banter, who's being mentioned, what's the emotional temperature. But before any of that, there's a more basic problem.
Most people I interact with use more than one platform, and often don't share usernames across them. If I were to maintain a profile for each known person, I'd need to map them (and mentions of them) across all chats.
Cue diminutives and nicknames: the same Alexander might turn into Al, Alex, Xander, Sandy, and Alec(k). It can also be Sasha, if they're from Eastern Europe - and in Slavic languages Sasha is gender-neutral[3]3. Slavic languages often use a "-sha" suffix to create endearing diminutives, e.g Paul = Pavel = Pasha, Maria = Masha, Innokentiy = Kesha.. Morphological analysers help with case inflection but won't handle slang, and "Sasha" in my chats means a handful of different people depending on when the message was sent and who I'm talking to.
Heuristics and NER models won't cut it for thousands of first-name-only mentions in group chats. A classifier trained on message content could work[4]4. Fine-tune a BERT model on labelled name-resolution pairs, predict which "Sasha" based on surrounding topics., but the training set would need to be hand-labelled from my own chats - exactly the kind of work I was trying to avoid.
The same problem is with classifying what matters.
The obvious approach is keyword matching on first-person verbs (bought, moved, signed) piped through NER to extract names and places, but it produces a lot of false positives. "I moved" in a message to my mom is a relocation, while "I moved" in a friends' chat is interior design, and "I moved" after a breakup is an emotional milestone.
Fine-tuning a classifier on hand-labelled messages would give me ~70-80% accuracy at best[5]5. BERT tops out at 75.6% F1 on event detection (Xi et al, MUSIED 2022) with a professionally annotated corpus in a single domain - I suspect multilingual banter with a small hand-labelled training set would do much worse. - and at 1.2 million messages, even 1% false-positive rate means 12,000 fake events in the vault.
So I ended up using LLMs[6]6. In total I ran 200+ sessions, roughly 15-20 billion tokens including context. On Opus, that's around $15k. On an M5 Pro 32 GB running Qwen3-30B-A3B locally via MLX, it's around 10-15 weeks of continuous inference. Pick your poison. for both name-resolution and classification. Measured against a 200-event holdout set, the false-positive rate was under 1% when processing chunks below 6,000 messages.
The LLM doesn't write to the vault. It reads a chunk of messages and produces a structured JSON manifest - daily note bullets with dates and sentiment tags, entity profile facts, life timeline events, place updates, and a list of ambiguities it couldn't resolve ("msg 833006: 'John' without surname - which John?"). A deterministic script reads this JSON and injects the bullets. Each bullet carries a (chat:: tg/chat_NNN) (msg:: 730372 - 730650) provenance marker pointing back to the source. An SQLite provenance store tracks every output bullet back to its source message, so a bad session can be rolled back surgically. Everything deterministic - parsing, filtering, deduplication, provenance tracking - stays in Python, so no actual messages make it into the vault but I can always track their content down using original archives as the source of truth.
The prompt file that governs the LLM's behaviour started at 8 KB but quickly grew tenfold, primarely from mistakes.
For example, the model read a thread where I walked a friend through iPhone Uprade Program pricing math and wrote a purchase event to my life timeline, so I had to add a first-person possession test - no life-event classification without explicit first-person markers in the source ("I bought", "I signed").
A closure gate - a validation script that runs before marking any chat as done - catches some of this mechanically: orphan wikilinks, duplicate citations, language bleed. But it can't catch confabulation, so I've added sampling: pick 5-10 outputs at random after each batch, check them against the source. The model's self-reported confidence should never be a quality signal.
At this point I had structured data - people, places, events, hobbies, recipes. But I also wanted to know how my relationships felt.
Standard sentiment analysis assigns one polarity per message: positive, negative, neutral. If one person is enthusiastic and the other is giving one-word replies, VADER would tag the conversation as positive, but the reality is asymmetric[7]7. Poria et al. (2019) showed you can't assign emotion to a conversation without tracking who said what. A message from Person A might read as angry in isolation but is sarcasm in context of their usual tone with Person B.: one side is warm, the other is flat, and that delta is what makes it interesting.
You could build this with classical ML - per-speaker emotion classification, then combine into pairs - but close friendships are warm by default. The signal isn't absolute emotion, it's departure from baseline. A message tagged joy means nothing if every message in this relationship gets tagged joy. You need the model to understand what normal looks like for this specific pair, or you'll get friendly banter tagged as "flirting".
The big mistake I made here was to tell LLM, hey, go and tag each conversation-day with sentiment. After running through roughly 9000 conversation days I got a bunch of free-text sentiment - 5,700+ unique values like WWDC-binge-mode and garden-prep.
I ended up redoing it with 18 tags and three directional prefixes (my emotional state, counterpart's, and mutual):

5,695 conversation-days. Each bubble = one sentiment tag. Bubble size = number of days.
Given the dataset that's mostly friends and family, 66% M:warm was expected[8]8. What I didn't expect is finding out that on average, 12.9% of my conversations each month are transactional - but in March it's 17%. I have the UK tax-year-end to blame.. The interesting data is the change over time. A friendship shifting from M:playful to M:transactional across 18 months is drifting, and I don't think that's something I could notice one conversation at a time.
Was there anything I could notice though? The messages volume seems most obvious - it might be less obvious in the moment, and sometimes life, work, or holidays happen, but surely the drop should mean something.

Monthly messages with close friend, 2013-2020.
Interestingly enough, the amount of messages might drop, but their average length could increase too - so the friendship doesn't die, it just changes shape.

Average message length per sender across three relationships.
If not messages and their length, then what? Consider vocabulary overlap - in some of my relationships it went from 69.5% of our most-used words in common to 8.7%[9]9. Jaccard similarity of each person's top-100 words with mine, measured yearly. The divergence tracks the relationship cooling - we stopped talking about the same things.. We now use almost entirely non-overlapping vocabularies. A random message from either of us could be trivially attributed by word choice alone.

Vocabulary convergence across six relationships.
Does it mean we're not friends anymore? Not necessarily, but it does mean our interests differ way more than before - which might be a good thing as well.
Another interesting metric is the session count versus messages per session. Interactions with my partner fragment into thousands of micro-check-ins (session count goes up, messages-per-session go down), while chats with another close friend collapse from multiple small sessions a day into thoughtful conversations a few times a month (session count goes down, messages-per-session go up).

Session count and messages per session, partner vs close friend.
I also had a look at response times, but they tell you more about someone's phone habits than their feelings. The delta across chats is small and grows with reply length - a better metric would have been time from receiving a message to reading it, but none of the exports give me that.

Median response time across four relationships.
Ironically, on average I reply to the first message in the session with a large delay, but then reply to all follow up messages faster than every other person in my dataset replies to me - do I have too much time or nothing else to do? The gap is negligible for my partner and closest friends and grows for peripheral contacts.
In most conversations, when one person writes a long message, the other writes a long one back - this is called linguistic accommodation. I found a few chats doing the opposite: the longer I wrote, the shorter they replied.
I didn't find any cross-conversation emotional contagion - talking to one person didn't measurably affect the sentiment of my next conversation that day. Sadness doesn't leak across threads but neither does warmth, so all conversations are running in their independent tracks.
There's a theory that questioning declines as romantic relationships mature - you stop asking because you already know[10]10. Emma Pierson analysed 5,500 emails in a long-distance relationship and noticed that questions declined as the relationship matured. My data confirms this for deepening relationships but shows the opposite for thinning ones.. My partner data confirms this slightly (8.8% to 8.3% over nine years). But my close-friend and mother data show the opposite: questioning increased from 11% to 18.5% and 8.5% to 17.3% respectively, as those conversations thinned. When you only talk to someone occasionally, more of what you say is information-seeking. The question rate is an inverse proxy for relationship bandwidth.

Question rate per relationship. The partner line gently declines as Pierson predicted. Every thinning relationship shows the opposite.
Many people who tried analysing their chats before built cloud tags - something I hope I won't have to see ever again - so I focused on endearment frequency instead. It works well with the partner chat - there are three clear eras of vocabulary, each tracking certain stages of relationships and living arrangements:

Endearment frequency in the partner chat, 2016-2026.
Longing and love declarations give way to dimunitives and pet language, and then give way to approval signals and jokes. When you're apart, text carries the emotion, but when you're together, it mainly captures the logistics as the emotional things are said in person.
After looking into my close circles, I went wider and looked up annual contact attrition - the amount of contacts that went silent after each year. Moving cities (2016) or abroad (2017) in my 20s was a bigger friendship extinction event than moving cities (2023) or abroad (2025) in my 30s. Without moving, I lose about 20 people a year.

People whose last-ever message was in that year.
The median friendship in the dataset lasts three years, but 41 people went silent for 3+ years then reappeared.
That being said, most of these contacts are not necessarily friends. Robin Dunbar, a British anthropologist, found a correlation between primate brain size and average social group size, and then extrapolated it, suggesting humans can comfortably maintain 150 stable relationships. Then, he figured humans maintain relationships in concentric layers - about 5 people you'd call in a crisis, 15 close friends, 50 regular contacts, 150 active acquaintances.

Dunbar's layers measured longitudinally.
My support clique and active network shrink over years. But the total conversation-days per year stayed nearly flat at ~360 for six years straight - the pandemic didn't change it either, although it felt like they'd go up given the amount of coordination for binge-drinking over Zoom. Even though over years I lost 75% of my network, I didn't free up a single conversation-day, just kept redistributing the same ~360 days across fewer people.
The chats with close friends are emotionally diverse - on a scatter plot of emotional diversity and dominant emotion's concentration most people cluster in the bottom-left (one dominant emotion, low diversity). My partner and close friends are at the top-right (many emotions, none dominant). Transcational chats with colleagues sit at the extreme bottom-left.

Each dot is a person I've talked to. Bubble size = conversation volume.
I would have described myself as "the supportive friend." The data says I'm equally "the advice friend" - mentoring (50 asymmetric days) nearly matches supportive (59). When someone needs me, my reflex is to explain, not to listen. I didn't know this.
When I'm travelling, conversations with everyone get warmer (69.8% M:warm vs 65.9% at home) and less transactional (9.3% vs 13.2%) - most likely because I don't have to think about work.

Sentiment on travel days versus at-home days.
I can also clearly tell when I had a 9-to-5 period of my life: my peak messaging hour migrated from midnight to midday.

Message timing by hour, 2013-2026.
Evening-active people tend to have more friends but of lower quality[11]11. Roy et al. (2021), "Chronotype of social interaction", Scientific Reports. They classified chronotypes from call-record data and found evening-active users have wider but thinner social networks.. During my "midnight" years I had ~300 active contacts, but throughout the "midday" years it dropped to ~60.
My social life over two decades fits in 70 MB - smaller than a single iPhone photo burst.
I started this because Tim Urban's grid bothered me with its emptiness: school years, holidays, jobs marked on a finite timeline didn't make me feel good about my life. Each square is one week, and most of mine had nothing written in them.
Now they do, but not "moved to London" or "got married" - I'd have remembered those without help. The first message from someone who later became one of my closest friends, or the night a group chat kept everyone awake laughing, or the recipe someone shared offhand that I still cook every week.
I realised my life was never empty. My memory was just very selective.
The Obsidian 2D graph view didn't take 7,000 nodes well, so I brought it into three dimensions on Vision Pro.
It's a fun technical challenge - think dropping 26M calculations per tick to 50K with an algorithm borrowed from galaxy-collision simulations to hit 60fps - but that deserves a dedicated post. Subscribe to RSS or the newsletter to stay tuned.

Clusters of memories have a shape, so I figured I should walk through it.
This research didn't change how I talk to people. I still default to advice when someone needs listening, still show different people different versions of myself, still leave half my contacts on unread for days. But I went down a nostalgia rabbit hole I wasn't expecting and learnt things about my relationships I couldn't have seen one conversation at a time. I now know what my patterns look like from the outside - assuming someone else would bother running their chats through the same ten-step pipeline and looking me up.
As a side-effect, now I do have everything I'd need to be a better friend - last-contact dates and sentiment trajectories, their hopes and fears, names of their pets (often) and kids (sometimes), allergies and favourite meals. It answered a lot of questions I didn't even know I had.
Am I a bad friend though? I thought I'd have to ask 400 people to find out - apparently I only needed ten.
I did all of this to remember my friends' birthdays. Imagine what I'd do with your codebase →
Not bad per se - I just procrastinate a lot. Once I learnt to shoot and stalk deer because I wanted to cook a steak - and cooking is way easier than human interactions. ↩︎
A now-obscure social network, popular in the post-Soviet space in the noughties. I haven't been to Russia for a decade or so, but the archives going back to 2008 are still there. Gotta love totalitarian states, eh? ↩︎
Slavic languages often use a "-sha" suffix to create endearing diminutives, e.g Paul = Pavel = Pasha, Maria = Masha, Innokentiy = Kesha. ↩︎
Fine-tune a BERT model on labelled name-resolution pairs, predict which "Sasha" based on surrounding topics. ↩︎
BERT tops out at 75.6% F1 on event detection (Xi et al, MUSIED 2022) with a professionally annotated corpus in a single domain - I suspect multilingual banter with a small hand-labelled training set would do much worse. ↩︎
In total I ran 200+ sessions, roughly 15-20 billion tokens including context. On Opus, that's around $15k. On an M5 Pro 32 GB running Qwen3-30B-A3B locally via MLX, it's around 10-15 weeks of continuous inference. Pick your poison. ↩︎
Poria et al. (2019) showed you can't assign emotion to a conversation without tracking who said what. A message from Person A might read as angry in isolation but is sarcasm in context of their usual tone with Person B. ↩︎
What I didn't expect is finding out that on average, 12.9% of my conversations each month are transactional - but in March it's 17%. I have the UK tax-year-end to blame. ↩︎
Jaccard similarity of each person's top-100 words with mine, measured yearly. The divergence tracks the relationship cooling - we stopped talking about the same things. ↩︎
Emma Pierson analysed 5,500 emails in a long-distance relationship and noticed that questions declined as the relationship matured. My data confirms this for deepening relationships but shows the opposite for thinning ones. ↩︎
Roy et al. (2021), "Chronotype of social interaction", Scientific Reports. They classified chronotypes from call-record data and found evening-active users have wider but thinner social networks. ↩︎