HNHacker News
TopNewBestAskShowJobs

osm3000

164 karma · joined January 18, 2021

I am a machine learning engineer, with a MSc and a PhD in ML.

I love building systems and processes to collect data and extract value from it.

Probability is fantastic, Statistics is a bitch (although useful sometimes).

https://blog.osm-ai.net/

submissionscomments
osm3000··on Hacker News (HN) – Part 1: analysis
In a SaaS product, these are different issues:

1. I am making a proxy for churn (last seen == end of subscription in this product).

2. You are looking for active users (yearly / monthly / ...)

I think your suggestion (point 2) is definitely an important view, but it doesn't conflict with the need for point 1.

Sorry if this is self-evident, I will just leave this link for reference on such metrics: https://userpilot.com/blog/product-engagement-metrics/

In any case, I am happy to help: if you would like an export of the data, or the DB dump, let me know. And I very much looking forward for your analysis :)

osm3000··on Hacker News (HN) – Part 1: analysis
> Like our hypothetical user who first appeared in 2012 and last posted in 2016 - right now they appear in the 2016 red line but if they showed up again today and you made the graph again next year, they wouldn't be in the 2016 red line anymore

That is correct.

> What happens if you cut off the data at 2022, 2021, 2020, 2019, 2018, etc and plotted those graphs? You'd see a different (rather than merely truncated) graph, no? Maybe even a different trend. So if my understanding is right, this is a pretty wiggly metric. The history of something you want to use as a historical trend line should not change as you append more data.

I see your point, but I don't see how it is avoidable. From my knowledge, any user churn metric will suffer the same effect: If you consider a user is churned after two weeks of inactivity, then this will change if you change the cut-off (the last two weeks of the this month? the two weeks before them? ...etc).

Even if you measure the "elabsed time" instead of "last seen", the cut-off will change your curve.

Extreme example: If you assume a user is churned after 1 year of inactivity (elapsed time since last activitiy), then a user that shared one story in 2007, and then a second story in end of 2023, will apear as active. If you change the cut-off from 2023 to 2022, then the user will appear as inactive.

osm3000··on Hacker News (HN) – Part 1: analysis
Perhaps I should have articulated this in a better way.

> So to be part of the red value for a given year, you have to be seen in that year and then what? Be idle for a year after that?

Exactly! Last seen: this is year of their last contribtuion (story / comment).

A user shared their first story in 2012, and last one in 2016: 2012 is when they were first seen, and 2016 is when they where last seen. So, on the blue line, they are part of 2012, and on the red line, they are part of 2012

> What's the connection between seen-ed-ness and idleness?

If I am last seen in 2016, then I am idle since then, no?

osm3000··on Hacker News (HN) – Part 1: analysis
> Thanks for looking into this. I'll try to reproduce this myself (but with elapsed times) and see what happens.

That will be great! Please don't hesitate to reach out if there is anything I can help with.

> Just to double check we're talking about the same thing: The red line is 'users who have been inactive for a year or more, at the time of the aggregate point'. So, for instance, for 2016 you'd have a point for 'users with a year+ inactivity, counted from 2016 back'.

Not quite. It is means the user has been last seen in that year (2016). By "last seen" I mean the user last shared story or comment (separate graphs) was that year.

osm3000··on Hacker News (HN) – Part 1: analysis
Hey,

I double checked. I don't really see an issue. The only specific thing that affects 2023 is that I removed the users seen / last seen in 2024 (since it is not complete year). The aggregation is simple also: count the users first seen, grouped by year. count the users last seen, grouped by year.

There was a separate issue though (I didn't filter out the "dead" and "deleted" stories / comments). I fixed that and updated the article. Some values changed, but the patterns and conclusions stands.

osm3000··on Hacker News (HN) – Part 1: analysis
Thank you for clarification.

I think part of the confusion that I had was that I didn't know about the downvoting option at the beginning.

I think it will be really great of HN releases the scores of the comments.

osm3000··on Hacker News (HN) – Part 1: analysis
It is a very good point, and it is the subject of part 2: I want to understand if the title / website / time of sharing has an impact on the score
osm3000··on Hacker News (HN) – Part 1: analysis
Damn! I honestly didn't think about it! That would have been really cool! I can't believe how this completely escaped me :D
osm3000··on Hacker News (HN) – Part 1: analysis
I will double check. I see your point
osm3000··on Hacker News (HN) – Part 1: analysis
> You could say, there might be people who keep posting stories even though the don't get upvoted, but that would be kind of irrational. If the community doesn't seem to be interested in what they post, they will stop doing so sooner or later.

Probably many people stop sharing in this case indeed. But for those who don't, I guess the idea is: eventually, if you keep sharing, you can collect upvotes here and there, and eventually the karma will go up

osm3000··on Hacker News (HN) – Part 1: analysis
> Mostly based on a kind of strange apparent outlier of accounts going idle (1+ year) in 2023

Well, it is just outliers in 2023. This is an upward trend since 2020.

> but the binning is also a full year and the 'idle year' is counted in a weird clippy (i.e. looking at calendar year rather than elapsed year) way

Granted, and I acknowledge this limitation. My idea, however, is that when studying many users in the same manner, this will even out. Why? Because a full calendar year implies somewhere between 0-2 elapsed years. So the average elapsed year, over many users, is 1 year.

osm3000··on Hacker News (HN) – Part 1: analysis
Few points

> newly joined users post a disproportionate amount on the website.

What is your definition of a new user?

> For me the answer, as borne our in data, is no. I find from ~ 2016 a change in the types of discussions on the site and find that the newer the poster distribution skews from that time period onward the less interesting the discussion becomes to me.

I am curious: Can you elaborate on how such analysis is being made?

osm3000··on Hacker News (HN) – Part 1: analysis
I thought about it, and you might be right that a proxy for the comments upvotes can be established here. But I just couldn't come up with anything satisfying tbh. Besides, with comments, there are replies, replies to the replies, ...etc.
osm3000··on Hacker News (HN) – Part 1: analysis
Yeah that is sensible. It is one thing that I miss about the internet back in the early 2000s.

I am still a bit conflicted tbh about what to do concerning that. The accounts don't really get deleted, and it is not far-fetched to imagine tools that correlate the styles accross multiple accounts (so, one mistake, and the identity is unveiled).

osm3000··on Hacker News (HN) – Part 1: analysis
I still like the simple interfact tbh ^_^

But I think it can be improved: personalized feed, allow following certain users, ...etc.

osm3000··on Hacker News (HN) – Part 1: analysis
I would be really curious to explore such correlations.

Tbh, while I was working on this, I did struggle with forming hypotheses to test, or even a suitable manifold for the different items/users (e.g., I didn't know some of the users share the PGP keys). Unsupervised methods were not very satisfying in uncovering such hypotheses as well.

There is also the point you raised about how to share (or what to do with) some of these correlations. For example, concerning mental illness, as much as I would love to uncover that due to my sheer curiosity, I am really concerned about what I would see.

osm3000··on Hacker News (HN) – Part 1: analysis
That is an interesting point! It makes sense to have a criteria that identify real users / long-term members.

I will look into that. Cheers

osm3000··on Hacker News (HN) – Part 1: analysis
I think the leaderboard is a cool idea!

It doesn't need to be a leaderboard for "all the time", but over a recent window of time.

> Karma conflates comment karma and post karma, so that’s not really the same thing.

I agree, but the limitation that I faced is that I don't have access to the comments upvotes, and I didn't find a satisfying proxy for it either. That is why I dropped it from the analysis.

osm3000··on Hacker News (HN) – Part 1: analysis
Author here

Wow! I didn't expect that! I love these discussions and comments :)

I will do my best to go through all of them :)

Cheers everyone

osm3000··on Hacker News (HN) – Part 1: analysis
> I find myself considering my online comments more carefully now than I did 10 years ago across all platforms.

I am curious, why is that? Is the medium less safe than before (e.g., unpleasant interactions)? Or is it a high effort to engage in a discussion, and perhaps there are other priorities now?

Perhaps something else

osm3000··on Hacker News (HN) – Part 1: analysis
Author here

I do agree with your point, but unfortunately I was limited by what is available from the APIs: the upvotes for the comments were not provided. I couldn't find a proxy for it either. Thus, I couldn't include it in the analysis

osm3000··on HN under the hood: Analyzing ~40M stories and comments
Not to my knowledge. But I see some people are trying to make new dumps available from time to time. For example, this one has all the data until Nov 2023 https://huggingface.co/datasets/OpenPipe/hacker-news
osm3000··on HN under the hood: Analyzing ~40M stories and comments
Oh wow! Thanks a lot Colin for checking it out :)

> Your LaTeX didn't render for $R^{2}=0.78$ Fixed, thank you.

> You're missing an "is" in this sentence: Fixed, thank you.

> Is there a reason for the stray strong "i" in the middle of the text? I am not sure where

> I can't parse this sentence: "Because I was still collecting the data, and the I had only until 2015 then"

Thank you for pointing this out, I rephrased it. What I meant was: I started working on the analysis before the data collection was complete. At that time, I had the data from 2006 to 2015. And that is basically how I discovered your profile.

> although I'm unsure of some of the conclusions I agree. It is a limitation for such exploratory work. I am curious though to know which conclusions you are unsure of.

Thanks a lot for taking the time and going through it. Big fan here :))

osm3000··on A Peek inside HN: Analyzing ~40M stories and comments
Thanks for raising this issue. I will look into a suitable way to share this data
osm3000··on HN under the hood: Analyzing ~40M stories and comments
Hi HN, I've been working in the last few weeks with the HN API to analyze stories and comments—about 40 million items in total. I've put together some stats on user activity and story scoring, and I've shared the code as well. If you're curious about the data or have insights to add, check it out. I'd love to hear your thoughts :)
osm3000··on A Peek inside HN: Analyzing ~40M stories and comments
Hi HN, I've been working in the last few weeks with the HN API to analyze stories and comments—about 40 million items in total. I've put together some stats on user activity and story scoring, and I've shared the code as well. If you're curious about the data or have insights to add, check it out. I'd love to hear your thoughts :)
osm3000··on Reflections on learning programming
This is an interesting point. You made me think about it.

The interaction with the internet evolved over time, but it was handicaped by biases - and probably the language barrier as well -.

At the beginning, it was mainly to get books, and follow "general" discussions in forums. Books - maybe due to a cultural bias - always felt like the "right way" to learn. The "community" part was really absent from my mind.

This was enforced, unfortunately, with the overwhelming experience of seeing someone's code and not understanding anything. Somehow, my fallback after such experience was: I need to study more books.

It is difficult to explain, but there was a mental leap here that I didn't make for few years.

Overtime though, this changed.

osm3000··on Reflections on learning programming
I know how you feel: There is no end in sight for learning, and the signal-to-noise ratio is low (aka: percentage of actual breakthroughs to rehashes of old things, or pretention of progress).

And the exposure to this "noise" - which is unavoidable - leads to the feeling of being overwhelmed. I could not start anything, because, what is the point?

That is one of the reasons why I am building those little isolated islands for myself: my personal projects that I want to do. I am trying to keep at it for a couple of years now, and there was some epic failures, but when it works, it feels really good.

Also, I am trying - sometimes unsuccessfully - to isolate the state of the industry (or my work) from my hobby. Work wise, it is laughable at best: so much talent is being wasted. I don't want to claim a high ground here by saying that this waste was avoidable, but really, it was (and is, most of the time).

osm3000··on Reflections on learning programming
Pair programming is an wonderful activity for me as well. Some of my best work, and memories, were made in that context. Strangely enough, it is becoming rarer these days that I find a partner (it has been ~2 years now since my last pair programming)
osm3000··on Show HN: Turn any text into flashcards of words
As part of my ongoing quest to master the French language — a journey filled with numerous challenges — I've turned to Python, creating a practical tool in the form of a package that can assist language learners like myself. This is just one of several tools I've either developed or adopted, aimed at making language learning more accessible and effective.

This Python package, based on OpenAI GPT-4, comes with two main features. Firstly, it has the capacity to extract unique words from any URL or text and subsequently convert these into flashcards, compatible with Anki—a popular, versatile study tool. This allows learners to reinforce vocabulary learning at their own pace.

Secondly, this tool can generate example sentences for any word or set of words, further converting these sentences into flashcards. This aids not just in vocabulary acquisition but also in understanding the contextual usage of words, a crucial part of gaining fluency in any language.

For the full story, please check my blog: https://osm3000.wordpress.com/2023/09/24/french-journey-part...

Github repo: https://github.com/osm3000/LangLearnCopilot

I would love to hear your feedback and suggestions :)

← PreviousPage 2 of 3Next →