I'm still writing 2024 on my mod notes

Streamed

Some PRs are ready to go but I’m waiting for the weekend to deploy because the asset pipeline always breaks in prod for me. Then a not-so-quick small update on the UK OSA. Finally, categorizing more story merges to make sure I’m not missing anything as I work on improving those features and docs.

Here’s the updated TSV of merged stories.

scratch


topics
  UK OSA - small response, perf
    https://www.theguardian.com/commentisfree/2025/jan/12/note-to-no-10-one-speed-doesnt-fit-all-when-it-comes-to-online-safety
  PR review and merge (planning - I want to deploy risky changes on the weekend)
    propshaft https://github.com/lobsters/lobsters/pull/1410
    activejob https://github.com/lobsters/lobsters/pull/1415
    mod delete/undelete https://github.com/lobsters/lobsters/pull/1436
  story merging
    continuing to work through the list of all merges to categorize
    if the number of categories doesn't balloon, maybe we should have 'merge reason' like we do have 'flag reason'

categories:
  alternate - 1st person, like github repo vs blog post announcing
  update - 1st party, more info, postmortem, next in series
  writeup - 3rd party description of a primary source, newsy
  response - 3rd party rebutal or analysis, opiony
  multiple - submitter wanted to post multiple related links at the same time
  dupe - same link with minor variations, like query params or mobile version
    dupes are deleted unless they attract comments befoer a mod can merge them

plan merge features:
  refactor the db into headline and stories
  split the tree of comments by which merged story they're on w _listdetail header
  on a merged story, no top-level comment box, one in a <detail> for each
  refresh display at top of single-story page, clearer metadata
  story submit: submitter can choose to merge into existing story (and is encouraged to when correct!)
  refactor user suggestions into 'draft posts' rather than per-field tables
  user suggestions can promote top-level comment with unsubmitted link to Story
  user suggestions can merge and unmerge two stories
  write up a AboutController page explaining merging

now:
  list of links

  all comments

future:
  list of headlines

  link 1
    its comments
  link 2
    its comments

is a story with a text different than a comment?
  ~10% of stories have descriptions
  ~3% of stories have descriptions and no link
  where does short_id live? (51 story and comment short_ids collide)
  option:
    1. headline (front-page entry) w one or more stories (existing model, link or text)
    2. headline w one more links, which may be from a top-level comment
      requires refactoring existing stories w text into comments
      violates assumption throughout codebase that id is monotonic on time (eg id: :desc instead of created_at: :desc)
    3. headline w multiple stories; story may be link, link + text, text, or comment promoted to story


title
  I'm still writing 2024 on my mod notes

post-stream
  contact the US dept of state about the UK OSA
    

Transcripts are generated with whisperx, so they mistranscribe basically every username and technical term. They're OK but not great, advice appreciated.

Recording



03:27bsandro chikaiLurks
bsandro yeah I'm here on another pc, so can hear mostly :) trying to do some work too even though it is 10pm here
filling my water glass closing the blinds that kind of thing and greetings from sunny chicago where it is nine fahrenheit which is i don't know something like negative 10 celsius real lovely day ah hey i saw B. Sandro, I saw last night that you were, I think it was you in the chat room who was curious about, boy, I kind of wish I had every comment from mailing list mode. You have other options too, like the RSS feeds, if you don't set your reader to delete old things. And there is also always archive.org.

04:25So on my schedule for today, oh, I didn't do my standard intro, which is, so I'm doing office hours for Lobsters. bsandro thanks! wasn't me though, skipped everything yesterday being dead asleep chikaiDurp
Let's talk about that. Lobsters is this website. Lobsters is this code base. And I am happy to take any kind of questions about either to talk about how stuff happens or why. Oh, it wasn't you? Sorry. Occasionally, I look at NICs just by first initials. So B, somebody said something along those lines, but it doesn't matter.

05:10All right. bsandro yeah no worries, same colored nicknames are same to me too :)
So yeah, office hours. You can feel free to pipe in with questions anytime. I may stick them in that notes file that you just saw on screen a second ago. And yeah, I know how that goes.

...36And then otherwise, when there isn't stuff that people want to talk about, I work on the website. I work on the code base. And lately, most of that development time has been reviewing pull requests because we've had A number of new contributors who've been very active Oh, but I wanted to start with some my my topic list is talk about the UK online safety act and then then do the full requests. pushcx https://lobste.rs/s/ukosa1
So if you have seen this stream before you probably know me just type the URL in the chat directly I don't need to load it then.

06:24pushcx https://www.theguardian.com/com…
dpk0 evenink
So the UK has created a Online Safety Act. And it basically censors all kinds of places on any kind of internet service where users can talk to each other. Oh, hey, DPK. Nice to see you again. bsandro can't unsee Gorbachev on that photo
And then this was a really nice article. I think that DPK sent me, actually. I forgot to put it on the last stream of the one before. dpk0 i am watching on a tiny screen because my large screen device is in for repair :-(
that was just a real nice overview of what the OSA is and some of the effects it is already starting to have. You are watching on a tiny screen. Okay. dpk0 i probably sent it you but i think i got it from fanf’s Mastodon
Well, a big chunk of this stream is going to be this merging of spreadsheet of all the story merges where on a previous stream, I worked through and categorized them, so you may not be able to see it. Ah, thank you. dpk0 actually most of what i post on Lobsters now is nicked from fanf’s Mastodon
Yeah, FANF has been writing quite a lot on Mastodon. pushcx https://lobste.rs/~fanf
So there's a Lobster's user named FANF, and they linked their Mastodon. So if you're curious about that, oh, well, good to know. So if you need someone interesting to check out on Mastodon, there you go. For anyone. So this article that I suppose we will credit FANF for is an opinion piece about the OSA, what it actually does, and how a lot of small forums are shutting down. If you follow the Lobster's link I threw in the chat a second ago, you can see how the whole thing is kind of Really frustrating. And the current least bad plan, because there is no good plan, the current least bad plan is to geoblock the UK. bsandro I used to work with RoR in around 2006-ish, really really enjoyed ruby back then and afterwards after moving on different stuff. Back then apart from Matz work there was only jruby that performed better in certain conditions; how is the situation now? is the MRI still the most viable production option?
But the second part of the UK update, oh, actually third part, because I guess there's this opinion. So on the last stream, we addressed a performance problem, which I really did appreciate that we kind of mob programmed that. pushcx https://github.com/lobsters/lob…
And we wrote this commit for performance. I've been watching the server over the weekend, but I could actually see 10 minutes after I deployed it that the CPU was way down on the web server. Everything is great. dpk0 still no better plan than a geoblock? :-/ no update on the lawyer who was working on risk assessments for small sites?
So being able to mostly restore the page cache has been great. I still hate that we have geoblocking code and would like to delete it. We'll see how it goes. Ah, so DBK, you may have missed a comment I made. So I talked about these on the last stream. Actually, I can get it faster this way, can't I? pushcx https://lobste.rs/s/ukosa1/uk_u…
So there's the link I wanted to share you. So here's my comment about it. dpk0 yeah i was in the UK at a conference last week and couldn’t join the stream
There is a UK lawyer named Neil Brown, who I've talked to a little bit. If you look at my replies on Mastodon, you can see me talking to him. Oh, cool. I hope you had a good conference. And he has been writing. Yeah, so he has this website. onlinesafetyact.co.uk.

10:12He's been slowly filling out some introductions to the law primarily for UK-based nonprofit and hobbyist servers. And then also he is collecting a list of sites that have announced they are shutting down or geo blocking the UK. So I think he's doing some great work and I won't beat it to death, but I think it is best to get this kind of summary and other information from an actual lawyer in the relevant jurisdiction. There's I figured it out and posted it on Blue Sky and Mastodon, but there's something north of 3,000 pages of material from Ofcom and the law itself. So Neil Brown is taking on a heroic amount of volunteer work, and I think really highly of this project, and I wish him the best of luck. So this thing, it notes that it is not run by or affiliated by with Ofcom. That is very apparent from reading it. I'm getting snarky. So...

11:33The newest thing, Daphne, that you may not have seen is... Where was it? pushcx https://lobste.rs/s/ukosa1/uk_u…
It was 295. Here we go. they are continuing to release guides. It's where's that link? Cause they say it here. So they have a phase two where for the next couple of months, they're releasing this guide and that guide and this guide and this guide, and then they have a phase three for kind of the back half of the year and early next year. And so Ofcom. is sort of doing a marvel cinematic universe but i'm not sure they realize that they are thanos and snapping out all of these small forms from existence just the way they're doing this in phases is there's a thing in a saying in business and in entrepreneurship that you shouldn't ship your org chart And it is very easy to end up with customer support systems where you have the enterprise support team and the small business support team and the UK support team. And if you write in for a question, you will get bounced around between them and you don't care about the company's org chart and you shouldn't have to care about the company's org chart. dpk0 isn’t shipping your org chart the inevitable consequence of Conway’s law?
but it's become so important to them of whose department is this and who has jurisdiction that they let that get in the way of customer service. And if they let it get in the way of customer service, they will also let it get in the way of the product. I think that's a fair criticism, but I don't think it's inevitable. I think it's Conway's law is cautionary here where Conway's law says that Your software will reflect your org chart i'm speaking more broadly about products and I would include all of this guidance which is intended. Which says at the top, that it is to help people comply with the USA. And whether it is fit for purpose. dpk0 i thought Conway’s law went beyond software too but maybe i’m confused
really depends on how much. the authors or the product creators can get out of their own heads and get out of their own org charts and see things from their users' and customers' perspectives. Let's check. You are often right about these kind of things. I always thought of Conway's Law very specifically by the compiler example. Oh no, you are definitely right. Organizations which design system in the broad sense use here He introduced it in 67. dpk0 Mike Sperber mentioned it in his keynote last week
Let's just jump right to the archive. Now, here we go. How do committees invent? The text of the paper is here. pushcx https://www.melconway.com/Home/…
Oh, that's great. You must have been at a good conference if someone is talking about this kind of work. I'll share this link here. This is the author of Conway's Law. ah so i think we're maybe both right because he talked about systems generally and then he says author's notes 42 years after publication this turns out to be a principle with much broader utility than in software engineering so i don't think i am going to beat it to death but it does sound like the paper was maybe originally mostly focused on software systems and then immediately found use in so many other places.

15:39Yeah, that's a useful tool for thought. But I look at these phases of Ofcom, and that is clearly some level of internal organization that does not matter. They do not need their roadmap to explain that they have phases, there is nothing further about phases, but in this document, although I cannot claim to have read all what were they up to. 25 all 3071 pages of their guidance and the USA. And so, this is just sort of a symptom of their writing style that. It is not written to be of maximum utility. It is written to follow their process and ship their org chart, which is a big part of what's frustrating. And so I talked about it here where they shipped 295 pages of documents around, mostly around children and understanding what it expects of you and what you have to do and what the hell it is even talking about it took me 45 minutes to write this comment so you know it is obvious if you've seen me on stream that i'm not a particularly fast writer but this process of finding one doc talks about an access assessment or yes, a children's access assessment. And then what does that mean? Well, who has to do it? Well, you have to figure out if you are likely to be accessed by children, which is then defined somewhere else, which is then defined somewhere else, which is then defined somewhere else. And if you follow all of these dereferencing steps, you are, you will definitely be more than a three-star programmer. And it eventually gets down to a useless, vague description with unclear guidance. And then just also the incredibly strict dictum that you have to do very intrusive collection of personal information like, you have to demand a state-issued identification document and live selfie. And that's just awful in a lot of reasons. I'm not going to rant about the politics of it, but just even just the amount of personal info that gets multiplied and spread around, we are going to see some If none of this stuff gets fixed, we are going to see some incredible data breaches out of the UK over the next couple of years. dpk0 broke: age verification for porn; woke: age verification for programming websites
Just, just stunningly bad.

19:14Yeah. Yeah, I am. Where'd my comment just go? Can I just drag that up? That's nice. Okay, I accidentally put an apostrophe at the end. There was, so my final paragraph here was like, I learned to program when I was 11. There was a false start when I was like nine, but really I learned at 11. dpk0 yeah i was quite young as well
And their description of what children would want to do think russ garrett whose article has been linked up and down this thread found their definition of what children were interested in and the answer is everything absolutely everything and dpk0 so i can appreciate the argument
dpk0 turns out: children are people too
Let's find that actually it's such a Kind of grab my reply here Well, and it's not So much an argument because I really don't want to have an argument over the scope of it. I just would like clear instructions and pushcx https://ruby.social/@russss@cha…
Ah, this is the thread. Here we are. This was... Well, yeah, it's funny, you joke, but you just echoed the language I wrote. I don't know if you saw. So, Russ found these and screenshotted these things. Content that appeals to children. And so I sort of get, like, humor and influencers, or cartoons, comics, animation. But then it also includes music. Yes, all music. All videos. Art, music, singing, photography, videography, drawing, painting, cooking, drama, acting, crafts, creative writing. Also apparently Ofcom thinks children are interested in content of a sexual nature, contents about future careers in finance. Where's the other one? Petitions, informal political commentary. How many children do you know that read informal political commentary? I guess Ofcom knows a lot. And so Daphne, I made the exact same joke you did where I said, it sounds like Ofcom thinks that children are human and interested in human endeavors. dpk0 when children is defined as under-18s: sure, all of these
And the contrast, so there's the Children's Online Privacy Protective Act in the United States that imposes some data protection and collection burdens on sites that are targeted to children. I'm sorry, directed to children to echo. Yeah, I see that, but also, dpk0 right
I read those lists that Russ screenshotted, and I almost can't think of anything left that would not appeal, that would appeal to adults, but not children. Because it is sort of everything. Like, what's left? Like, home repair shows? I didn't see them or something that quite fit on the list, but I guess they count as video?

22:33I mean, they listed music videos and books like okay great so everything. Almost all works produced for human consumption. In contrast, the US law about this is mostly about data privacy related children. dpk0 to some extent this may be another attempt to get mandatory age verification for porn through … by having mandatory age verification for everything?
The guidance is really straightforward and so it's like we look at the subject matter and visual content and it's things like the use of animated characters child oriented activities and incentives, the presence of child celebrities language with our characteristics and i'm showing this is the short version and their fact there's some more content out there, I don't have handy. But it's. This guidance has been a lot more clear to me in understanding what websites the rules actually apply to. Because I read this list and I'm like, oh, conspicuously not lobsters. dpk0 the 2010-24 uk govt kept trying over and over to get age verification for porn
And I read the UK one and I have no fucking idea. dpk0 fair
I am trying not to speculate about the political goals of the online safety act, especially because I am looking, trying to keep some dry powder, given that we're going to do this again in six months for Australia and in six months to a year again for the United States, which has the kids online safety act. And it is worth throwing out there that all, I believe all three of these laws are

24:16I believe they have a shared set of activists who are driving their adoption and advocating for them. dpk0 has KOSA been passed?
This is not any kind of secret, but if you look up who has written these laws, you find the same set of names in the same couple of organizations. I don't mean to be conspiratorial. The big pause is me trying to be snarky about it. COSA has not been passed. It gets reintroduced regularly and dpk0 yeah, that’s entirely probable
I understand that some political events happened today in the United States that may be relevant on whether it gets reintroduced at a federal level this year and its likelihood of passing. And so without getting into the politics of it, I think it is worth thinking about in the same neighborhood because these three laws are written very similarly. And I haven't followed the development. I haven't closely followed the development of the UK and the Australia laws. pushcx https://www.techdirt.com/
I have kept half an eye on the Kids Online Safety Act because there's a really nice website for this kind of stuff called Tech Dirt. It's one of those very old school names. There's an author named Mike Masnick who's written a bunch about trust and safety and the process of these laws getting written. And so dpk0 organization whose name rhymes with Flexobus Dry
I keep an eye on this site, and there's been a bunch about the Kids Online Safety Act. If you would like a good introduction to it, anyone watching the stream? Daphne obviously is at least half ahead of me on all of this.

25:55I have no idea who you're referring to. I'm not trying to be coy about them. dpk0 (who would like people like me to not exist)
I just literally can't remember the name. There's some countess in the UK? Duchess? One of those old timey titles. She is in the House of Lords. I'm not trying to be snarky. I know there are different. And then there is like an advocacy group that I think is maybe funded by her. See, I'm vague on these details. And so I am saying it vaguely because I'm at least trying not to be wrong and make things more confusing.

26:36Yeah. Yeah. the proponents of the american kids online safety act have said explicitly in public in media interviews that the purpose of it is to be the thin edge of a wedge to make it unacceptable to be a gender or sexual minority in the united states and they've been utterly candid about that and the language is written for that so on that one i'll be a lot more explicit about what i think are the political motivations because if the primary authors and proponents have said hey i'm doing this because and it looks plausible as opposed to you know people who say i'm doing this for the puppies and it's i don't know about regulating oil refineries like i don't really believe that kind of thing but when someone says i'm doing it because this and then the law is pretty unambiguously written to do exactly that. Like, I don't believe you.

27:45This ran longer than I thought. So the other small update about the Online Safety Act is About a week ago, I talked to someone who runs a user-to-user service, to use the OSA's term, and they run it in America. And they said that they had emailed the OSA and gotten a response. And it was a bad form letter response with a bad process attached. but it did start with their name, which means a human actually monitored that email and put their name at the top of some copy paste. And so I went, okay, and I have contacted that address on Friday morning, Thursday night, somewhere in there. And of course, I talk in Chicago time. And I just heard back from them this morning

28:52And it sounds like they are trying to route me to someone to get an answer. My hopes are pretty low. So I have talked about, I want to talk to Ofcom around, hey, number one, are you aware that all of this is overkill for small hobbyist forums and you are crushing them? having seen the response they gave the other community owner they are absolutely aware and either they don't care or they feel bound by the law because they did not say anything reasonable or helpful on that like you know if ofcom wrote one sentence that said and obviously to prioritize we are going to be starting from the biggest sites and working our way down so if you run I don't know, Bob's Knitting Forum with 10 active commenters will see you in about 15 years. That would be a lot. of pressure off to be able to see how they're thinking about these things and that they are acting reasonably instead they sent a form letter that was like nope everything applies to you start reading the 3000 pages that was bad so the second thing I wanted to talk to Ofcom about was hey, what's your legal basis for this jurisdiction? Because you are saying if a service has readers in the UK, that you get to regulate them wherever in the world they are, which is kind of an incredible jurisdiction question. I talked about it a little in here. So I put it up in the top of the message and then It's come up in comments like, even if the risks of enormous crushing fines and jail were low, and it's really hard to feel confident that they're very low, there really hasn't been any reason to believe that they have jurisdiction over the world. So when I reached out to Ofcom, And you know, I put up here in the bullets a bunch of ways that I could imagine this ends, for lobsters at least, because I don't really want to be lobbying the UK government to change their laws or their regulations. dpk0 can blame Germany for this. our government has believed it has jurisdiction over all German-language internet content since the beginning
I'm not a UK resident. It's kind of not my business. I assume that there have plenty of people lobbying them in the country. dpk0 the internet is Neuland for us all
Wow, that's an even stronger reach. They just own the language? I don't want to rabbit hole, but that's kind of stunning. I don't know what Newland is. Is that a...

32:24Wrong clipboard. New territory. I feel like you are making a historical reference that's sliding by me. Because, of course, I don't read German history books.

...50So I put it first that I had hoped that there would be some kind of statement of guidance or waiver from Ofcom that it doesn't apply to lobsters, whether individually or as a class of non-UK small and or non-commercial forums. And having seen their response to someone else who runs a small non-commercial user to user service, I'm kind of giving up hope on that front. So I just asked about what's your legal basis I have read Section 4 of the Online Safety Act, which is the part that goes on about if your service has residents in the UK that they believe they have jurisdiction, but I don't think an individual country's law can apply elsewhere. I am not an international lawyer. I have heard of Westphalian Sovereignty, which is a treaty from 1648. kind of establishing the power of states over themselves and the generals stay out of each other's backyard. dpk0 it’s what Merkel said to Obama to ‘excuse’ the NSA surveillance revelations. like, it’s okay, we’re all trying to work out how to deal with this new internet thing, maybe mass spying is okay! (until it came out they had been tapping German government communications. surprise!)
And it also has a lot to talk about with the power of the church, if you know the history of the church in European history. I missed that story. Thank you.

34:23I mean, obviously I knew about the tapping that had been done by the American government and the general world reaction to that, but I missed this, what Merkel said, part of it. So I have gotten a, what's the right term here? Kind of a procedural acknowledgement of my email and response from Ofcom that they are trying to route my email to the right person to answer. And I asked specifically, is there an international treaty you believe gives you this authority? I couldn't help but get a little bit snarky. And so I said, did I miss an update to the Westphalian system? And then I pointedly asked, do you believe that other countries should be able to apply their laws to UK services if they might have readers in those other countries. That's the sort of good for the goose, good for the gander kind of question that we have kicked around on stream a bit.

35:42I don't know. Either I will get a serious legal answer, and then I would probably try and pull Neil Brown into looking at it and making sense of it, because I bet that would be up his alley. dpk0 probably better to ask politicians these questions, not the bureaucrats at Ofcom
Or I will get some kind of bullshit response that just reread the law and it will be non-responsive to my questions about international law. And they will just ignore the example or hand wave it away and say, well, obviously we don't make foreign policy. So we'll see. The thing with contacting politicians is I'm not their constituents. dpk0 very probably you’ll get the bullshit response
And if I got an assurance from a politician, it wouldn't matter because it's Ofcom that are where the rubber meets the road. And frankly, I don't understand parliament well enough to know what kind of statements are meaningful from parliamentary officials. dpk0 ask the US ambassador to the UK then?
I have a very good vibe for that for US politicians, not just having been a citizen, but having been a journalist at the Washington Post, which included covering American politics and elections. So I feel like I'm real dialed in on how seriously to take things. Ask the US. That's not a bad idea. so the right way, so that's the U S I don't know why I didn't think of this.

37:32so in the U S those sort of international things, so especially, extradition, which is a feature of the OSA, theoretically, those get handled by the U S department of state, which. to give a like 90% answer, handles all the matters of international diplomacy in the US. So I will, you know, I mentioned it, but I didn't think, why don't I go ask them for it? So let me go do that. Yeah. Thank you, Daphne. nogweii 'sup sunsYo
So we will see. Hopefully in the next couple of days, I will get a non-bullshit answer from Ofcom. dpk0 hi Nogweii
Hopes are low. Hey, Nagwe. So unless anybody has any questions about or other ideas about the UK OSA, especially if they have not been beaten to death in the comments of that story, I am happy to have them, and then otherwise I will change gears into pull request review. Because I get to click the merge button, basically. And I'm pretty jazzed. We've had a couple of these pull requests hanging out for a second. Actually, this one is brand new, but these two have been running for a couple of weeks at least. nogweii hey @dpk0 !
And nobody's asking questions, so I'm just going to dive right in. So this one about Propshaft, and I'll put it in the notes, is updating us to the Rails 8 asset pipeline. The last thing we ran into, maybe two streams ago, was that there was this big redundancy hassle because of how we handle light and dark. And I had happened to see this article, 12 Days of Web, that someone did as an advent calendar about neat CSS techniques. And I looked at it and I went, oh, that's neat as heck. And so I dug into its docs I realized oh this really could solve our duplication issue and then I saw that Rahul has added a couple of PRS so this one before I click over I haven't actually looked at it but the nature of light dark is it's gonna touch every line of the CSS file and fold things together so we'll see Yeah, so instead of saying that palette BG is this in a light section and then also later in a dark section, we can say palette BG is light or dark. And so just a huge amount of diff here. Yeah, 271 lines changed. If I'm reading the right part there. Is there a summary at the top? No, wouldn't have hurt it. So all of these get folded together. Did he change these names? No, they're just from farther up. So sorry, Daphne, I got to turn the font size way down here so that I can see more of this on screen to know what I'm looking at. So we got palette BG, palette light, palette shadow, and then one, two, three, four. So I'm kind of trying to skim to make sure that everybody is getting transferred over from the duplication, because it's going to have all of this again for dark in a minute. But if we see them all here, and they all have light dark, and they do, What a big refactoring Rahul did. This is a very generous contribution. It is especially generous because the test matrix for light and dark mode is pretty complicated.

42:15nogweii speaking of the propshaft MR, did you see my note about nginx being already configured for gzip_static?
easeout Then each color becomes a light-dark pair? That would operate like Mac/iOS which I've liked a lot
Yeah, Nagwe, on the last stream, I did. nogweii Ah, missed the last stream. nice.
Or did you leave a comment in here too? Yeah. Ease out. That's exactly what it's doing. pushcx https://12daysofweb.dev/2024/cs…
let me, so I linked it here. easeout excellent
So here is the article that introduced me to, and then here in, well, let me just link this comment. So you have everything right in this. pushcx https://github.com/lobsters/lob…
easeout thanks, I've got a work team that can benefit from this
a couple of comments come on give me you can see all the context and i link to the mdn examples that do well exactly what rahul has implemented here so i feel very lucky that i read that string post and then yeah this big section of duplicated stuff goes away so Rahul had to include the dark stuff twice because I don't want to beat it to death, but it had to be there once for if your browser was set to dark mode and then once for if you override because of some limited expressivity in CSS. And then this is that big test matrix I was talking about where what is your browser set to versus what do you have set on your user setting on lobsters and rahul was like hey maybe this user setting is overkill and on that one boy the people who like dark mode are very particular about dark mode and they very much want to be able to control it on a per site basis that's not really a browser feature now so we will keep it as a user setting but it made this significantly more complicated. So I really appreciate, I'm gonna click merge on this sucker in a second here.

44:41nogweii spelling out the test matrix really shows just how complicated it gets
Yeah. And Nagoya, especially for front end stuff, because I, you know, you can kind of imagine writing automated tests for this, but it would be hard to make them reliable. And so I just have to list these things out. And in his first version, I want to say literally he missed one of these and it was because of the duplication, just literally one of all the test cases failed.

45:23So it's a US holiday and I'm wondering if site traffic is way down. It doesn't feel like it based on how many stories have been submitted. So my hesitation about clicking the merge button now is nothing in the code. The code is great. The hesitation is all of my experience, which is every time I touch something in the asset pipeline, nogweii I wonder if playwright et all support light/dark settings? Hmm. Something to research, to see just how easy/hard it would be automatically test
Even if it works in development, even if it works in the prod environment that you can run on a local machine, it breaks in actual production in some different way. So I usually try and deploy asset pipeline changes on the weekends when traffic is lowest.

46:13Yeah, I couldn't tell you about Playwright. That tool is newer than most of my frontend experience. Actually, the last time... I can't tell that story. I have nothing disparaging to say. So... That's a long way of saying I am going to merge this more like... Friday so I can deploy on the weekend because traffic is not down for the holiday yet.

47:55So where do I, okay, so here, approve. Everything is wonderful. I almost, it is not a PR feature, but I almost wish I could just pin it and be like, all right, no more commits. We don't need more comments. We're just gonna leave it exactly like that. Just like that, it's ready to go. If we were super sophisticated, I could put it on some kind of, next branch and then eventually merge that in but that's not worth the pain oh and this was a second thing where what changed i didn't look at the second commit before i wrote that they he tidied up a whole bunch of white space what a great comment

49:01It's really clear. And especially with light dark being fairly new, I want to say it's less than a year old. That's great.

...15nogweii That sounds like a fun project, building a beta.lobsters
I'm so happy about that. All right. So then the next one from Rahul, beta.lobsters. Yeah, we don't have any kind of, staging environment i was just thinking of like i mean we basically do trunk-based development but some folks will have it was real there was some really popular blog post about it maybe 15 years ago where they're like well you have one branch that's your primary trunk and then one that's called next for your next release cycle and then people pr against next and when you're ready to cut a release you merge it down into the trunk and there was all kinds of schmancy graphs and I can see how a large team would need that but boy is that overkill for lobsters alright so then this next one is setting up active job and moving over to it from well our our system of cron jobs. And I have already peeked at the couple of commits Rahul made where he merged in production. I do want to view the diff. See, in the merge, he added this. Or maybe I wrote this. I wrote this. So there's that.

51:09That's fine. And then he tossed his extra controller and his extra helper. And then this was a big, tedious rename. I really hope he had a nice tool to assist him with that search and replace, because that would be pretty tedious. He tied that up and got that set. Great.

52:07nogweii oh yeah, I figure a beta/staging environment would 99% of the time be in-sync with the main release, but useful for these PRs that are good but you don't want to risk prod yet
so i thought i was going to click merge but i'm actually not going to click merge on these but they are absolutely ready to go which is great i'm really happy to get to write these comments man it's a monday weekend can't come fast enough if yeah so if it had been thursday i would have just waited one day and done it on saturday sunday i had some nice free time there Speaking of free time, I definitely am not going to run super long because I've put in so much extra off-stream time on the Online Safety Act that I'm trying to tip back to make sure I'm having, you know, time with my better half and other things.

53:02So on 13.49, okay, so let's link these two PRs. That was 14.36.

...23I just wanted to note it for context, kind of keep people from stepping on each other's toes.

...32So this is the mod edit form that he's tweaked. It's not specifically related to this pull request, but it's part of it. And I bet he has a merge conflict about it. Yeah. So this fixes a bug that I immediately ran into in prod. Yeah.

54:11Oh, goodbye spam bot.

...34nogweii woo getting into the big leagues with those spam bots
nogweii Heh, fair.
know you say getting in the big leagues but literally the first stream i did we had one of those bots half an hour in so i don't i'm not taking them too flatteringly doing a big old man stretch

55:49And didn't I? I touched up that work. This one.

56:23pushcx https://github.com/lobsters/lob…
pushcx https://github.com/lobsters/lob…
I could throw that link over here so you all could have it. I usually try and remember to paste these pull requests in case anyone wants to follow along or dig in. But I mean, if you're watching a stream of some guy in Vim and GitHub, you probably know how to read the URL.

...42OK. So it can't merge because of the conflict. But then otherwise, this is getting pretty good.

57:02What's that function do? dpk0 okay, am off for the night. happy hacking!
nogweii @dpk0 see ya!
Oh, I would rather... Have a good evening, Daphne. It was nice to chat with the Online Safety Act. Fingers crossed we see a really positive response from Ofcom in a day or two.

...50Let's start a review.

...58We'll have one extra action.

58:05There's a bug in here somewhere with counting with this exact cache and I think also the comments cache. I'm not going to go dig up the issue. But a bunch of places we memoize values and then manually maintain them. I believe that was not a great design. Because the query for this is cheap, and people don't submit. I mean, outside of me and Calvin, people don't submit a staggering number of stories. And so if this was just a simple update statement to reify this key, it would be better. And you know rails now has I think it's introducing a an async count function that can clean a lot of those up. That's where you have a new destroy we have that delete. And.

59:20Alright.

01:00:16Thank you. So this is great. pushcx https://github.com/lobsters/lob…
So Colonel Utkarsh here has been real helpful. And this is our big got object refactor for anybody who doesn't have the context, which I didn't put this pull request in the notes. Paste that in. So we got.

01:01:14So this big refactor that I'm very pleasantly surprised that people are happily contributing to is going to do a little bit of duplicated code in how we have various forms that interact with stories. But that will be an excellent improvement and make it possible to make the story submission process a lot nicer. And I have already made the mod editing process nicer so that When mods load the story form, they also see other edits of the story and a little bit of context on other moderation actions for the story. So that'll be real nice. This is... It's funny. There's a certain amount of essential complexity to a program And sometimes when you refactor it, it's sort of like you have a pool ball underneath a rug and you can stomp on it and move it around, but it's not going to get any flatter. And so some of these feel like that, but what's actually happening is we are clearing a flat path to extend the metaphor. We are clearing a flat path through the central part of the room so we stop tripping over the pool ball. And it'll allow us to do much nicer features. So if someone is having fun doing this, boy, I'm going to keep encouraging. So this is like a plumbing thing. I'll show it because I opened the tab. It's on the moderation model, and this is the mod log entries. And I added a table to the story view. Where is it? Must be down here. So the stories show where if you are a moderator, so there's the info about the story and then down below there's the comment boxes and all the thread, but then in the middle for moderators, there is a list of moderations that relate to that story, every comment on the story or other things the user has done. And it is super helpful context. So if we land on a story, so Alice submits a story and I go to it to see if it needs any attention, especially if the thread is getting heated, I can immediately see, Oh, you know, I've recently removed other stories from Alice that were about this same thing. That's actually a really bad example. I could say another moderator has, and that's why it wouldn't be in my head or I can look at it and see like, oh, a bunch of comments here have been deleted. These things are sliding sideways. Basically, it's giving mods more information right at the point we want it as opposed to clicking back and forth a little. And I'm going to have to improve the display of it because it's a little rough right now. But anyway, I'm real happy about that one because it was like such an easy thing to hack out. And then otherwise, these two requests that I've reviewed on stream are just hanging around. I think deployment is waiting on Propshaft. And then this one had a couple of small issues and I think a merge conflict. I don't know if Claudia is very active.

01:05:11Yeah.

...33know what to say here what i'm hoping for is that claudia's just been a little busy or something hasn't been able to come back to it rather than is not interested and doesn't want to finish because This is a thing that's bugged people for a few years now, so it would be nice to improve. Yeah. All right, so there's the end of the pull request review. There have been a few... a little bit of movement on issues, but pretty quiet. Peter, who has been a stream viewer, I don't know if you're here right now, but the big one was that Peter reported some... ideas for improving the top navigation on the site. We'll see how that goes. pushcx https://github.com/lobsters/lob…
It is a big set of design ideas. I asked a couple of questions and explained some of the design rationale and explained the last time we had looked at the nav. So if that's real interesting to you, you could jump on in. And then That's the end of the pull request review. Merge and merge landing. Great. So the last thing that I had on my schedule was story merging. So before I jump into that, I've been running a little over an hour. And I will mention that this is Lobster's office hours. If you have any questions about the site or code base, you could just pop up any time and ask. And I prioritize that stuff when no one has any comments or questions. I work on the code base some. And in this case, the project I wanted to get back to is one, let's see, came up on stream.

01:07:59pushcx https://push.cx/stream/2024-12-…
yeah here we are so this stream only more than a month ago so i got derailed by the online safety act and then the holidays and being sick but i wanted to pick up with this gist of it is we have this neat feature for merging stories together to keep comments together so if someone says why rust is the best and someone would like to write their own blog post and say why rust is the second best we merge those together because the reply makes sense in the context of the parent and another big thing that happens is say when there was the xz attack where the xz utility was backdoored we get many alternate takes on that story where and you can see two of them right here where there were people explaining various technical aspects of it or figuring out the history of it and so we keep those together to have a more coherent conversation. And it saves us a lot of repeating the 101, where someone is like, what is this even about? Why are we doing this? And they ask questions that are already answered. And because nobody else has a feature like this, users don't always understand what's happening and why. And submitters especially also get a little bit frustrated because they feel like, well, some of them have told me they feel like their story is getting robbed of prominence it deserves when in fact it is getting to get more attention as part of a big story with lots of comments on it so on that previous stream i said let's go through every story merge in the site's history and figure out what are we doing so a lot of these are like we're merging a write-up where There will be a primary source where say Google announced whatever the heck this thing is and then someone responded with oh here's my idea about it or. What I think is the most important context, and so we merge those write ups together and we categorized a lot of this stuff right so let's say data. Oh, I'm exposing my lack of knowledge. Isn't there a way to get the little automatic category clicker on this? Is it standard filter? I got a little pop-up. Field name, column. A, B, C, D. Okay. Nope, not that.

01:11:19Yeah, I don't want to hunt around. I know there's an auto filter. There we go. So now I'm going to hide the ones we've already done. So there were how many, like 700 total? Yeah 745 and we did roughly half of them on stream and I was really happy and I was like oh that's probably a representative sample and then I realized after the stream on reflection that. I had probably only done the easy half. So I wanted to. filter out some of these. Basically everything that's done and what's left. I think roughly half. And this is not super exciting kind of stuff, but it's what it means to do this thoroughly. All right. So some of these. I just read the message and I can automatically categorize them. So I did a bunch of them in Vim, but let's say update. Follow up is an update. This is an alternate.

01:13:02Oh, here's one thing. Someone had multiple links related to this topic and then they submitted like two links a minute ago. I'm going to go ahead and say, I'm going to make a new category for it. Because it just happened again today, or maybe last night. This one's a response. So I've tried a bunch of variations on this reason. So someone I recognize this one someone submitted a story that was about semver then someone submitted. Someone who was active in the comments there submitted another story you know I say that i'm not 100% usually the person is active in the comments, which makes this real clear. We mostly see this where people are debating and disagreeing about stuff where. It feels a little bit like they are using the stories as a sort of super comment to have their own thread where everyone agrees with them. And it just makes for a lot of confusion and it splits up the discussion and doesn't help. This one, this is an update. So I've tried a lot of versions of this reason to explain that long thing I just said. Like, don't use stories to reply, you can post links in comments, or please leave a comment. I have talked about calling them super comments, or don't use stories as a super reply, and it made perfect sense to me, but not to anybody else, so that's why I stopped doing it. Very iterative process. This is a write up. This is a write up.

01:15:18What do we have?

...28So if you're curious about these, obviously you can type in these URLs or I can just paste them to you if you want. And otherwise, I'm probably going to work through this list and we'll see how far I can get in about 45 minutes. I usually stream for about three hours, but I've lost so much time to the Online Safety Act that I feel like I need to claw back a little bit for myself. So this is a write-up.

01:16:02This one is an alternate.

...10This one is a writeup. And you know, if we get to the end of this and everything fits in seven or eight categories, maybe Part of the feature should be that we have merging categories in the same way we have flag categories. I never thought of that till now. Let's write that down.

01:17:14All right. This is an alternate link.

...28I think this was a Patio 11 article. I just found this tab deep in my tabs the other day and read it.

...50was this one I don't remember if this was a third party or a first so I'm pulling it up in the browser yeah so this one links to crowdstrike.com so this one is the primary source but they were so busy with incident remediation that they came I don't know a day after the original was this so this was 19 at 2.24, and this one was 21. Yeah, so that's their post-mortem. So that was an update, actually.

01:18:36Oh, yeah, see, here's me saying super response.

...45There's an update. There's an update. Well, I guess it's an alternate How am I

01:19:28Let me think about these categories a second. So dupe is pretty clear. That's when the duplicate URL detector doesn't catch something. What am I doing? Put them in the notes. Don't just think out loud. Oh, that's an interesting GUI for it to hang out on top. So my categories were alternate, dupe, write up. Update. What else did I use here? I'm thinking of actually writing these down because I'm worried I'm going to drift between them. So we have multiple and write up. OK. So do is. link with minor variations like corporate grams or mobile version a write-up is a third-party description of the primary source response is a third-party well, response or rebuttal often.

01:21:10I guess there's not a lot of description difference between write-up and response. Update is first party, more info, post-mortem, series, next in series. That was what happened this morning, I want to say. S-E-R-I-E-S. Multiple is submitter wanted to do. Or no. I can look at how I've done response first write up. I'm gonna confuse these. Wait, I put write up in twice. One, two, three, four, five, six. One, two, three, four, five, six. Okay, I'm getting thrown by the, empty at the top all right and then alternate is the same as write up i think i've been equivocating between whether alternate is first person yeah so i really do have these two axes of who did it versus what.

01:22:53Yeah. So let's put these two together because they're about being first party. put these two together because they're about being third party although maybe they want to collapse together let me take a look in a second dupe is pretty clear a lot of the times so it's not going to show up in this spreadsheet but especially if i catch them quick before they get any comments If someone submits the mobile version or, you know, with an extra A equals one, two, three at the end of the URL that doesn't actually affect anything, I will just delete the dupe.

01:23:48And then this one is wanting to post multiple related links at the same time all right so let's look and see if i've been consistent about write-ups versus responses so we will just clear everybody and then show me the write-ups and responses

01:24:35Yeah, these are all very clearly third-party. What's this one? And why doesn't it just make those links? Oh, this is the announcement of 1.1.1.1. Okay. That's not really a write up. That's an alternate link.

01:25:29Yeah, so these are also third parties. And they are, I guess really the difference here is write-ups tend to be, yeah, I think what I'm doing here is I say, I call it a write-up when it's a fairly unexciting version of the events of the other post. And I call it a response when the person adds more material, which is very often their opinion about whatever happened or whatever the idea is. So I'm not sure that's especially useful. Why did you show me all the blanks, auto filter? Come here. Get back up there and pin this.

01:26:44You didn't freeze. Isn't that called freezing?

01:27:13Maybe that's just a split window I want. I don't know what I want. Dang it. Drop on down. Oh, feather molt.

...45This update. This was a response. I remember that. Man, Nick's had a busy summer this year. Last year, I guess now. I'm still writing 2024 on my mod notes. There you go. There's a title.

01:28:15I don't know what this is.

...32Ah, so there was an announcement and then was this the author?

...48Think so. Yeah. All right. So then we will call this a alternate response. Oh, yeah. I remember this one in particular because we were having a good discussion and this submitter linked to the paper and then they were like very explicitly, I want my own top level thread. Please don't do that. This might have been an alternate. Where are we here? I just don't have enough desktop when I'm streaming to really see what's happening. I can only have so many columns.

01:29:42OK, so it's an alternate link. They're both from the original.

...52And if I'm gonna, so I'm thinking more about these categories now that I've realized the difference between a write up and a response is whether or not the author the third party author has another opinion like is that meaningful well not meaningful is that easy enough to make a drop down because it's a judgment call hmm

01:30:38Right now, this one was a write-up. It was actually a neutral. This is also a write-up.

...52Oh, there's me getting snarky.

01:31:23Oh, I remember this. This one was a little bit of a judgment call, and I almost put it in another category. So on the same day, we had two stories about people using just pasting LLM crap into bug bounty programs. Maybe they were both related to curl. The author has been writing about how frustrating it is to receive these and with the responsibility of taking those seriously, you know, any kind of claim of a security sensitive bug that wants to take them very seriously. But that means being very charitable to just garbage slop from people who are just throwing spaghetti to see if they can get some money out of a project, unfortunately. So I'm going to go ahead and call this an alternate. But I don't feel super confident about that. If someone thinks of a better way to put that. That's an update. This was a response. This was an alternate, I think. This one's been a minute. so we've got this blog post oh and then all right so it's just an alternate link where someone found the source of it so i guess that's one more piece of the practice we're talking about is typically stories get merged into the earliest submitted yeah okay we beat that to death on the last stream actually i kind of skimmed the scratch notes off stream off screen and i can see it all right so my message explained this was a right up this is a alternate link This is very Google thing is when they do some programming project they put out a press release and a tech post and then sometimes its own site and then sometimes a github repo and we end up with three or four links from them for the same thing.

01:34:54Yeah, I'm not sure that the more I get into some of these, especially these. I remember them, but I'm not sure the distinction between a write up and response is meaningful.

01:35:11I guess one thing to think about categorization is what's the value of it? Because we're not really going to treat them differently. It's just helpful. It's just how I'm thinking of it, and it's forcing me to look at all of these and talk about what the practice is. So it's interesting to get the, you know, multiple links as a new category. But otherwise, if I'm not adding new categories, I did expect to find some more. So that even says update response duplicate. I guess part of what I'm doing with write-up and response is write-ups are more newsy. And then response are more opinion-y. And I put the Y on the end of these because they really aren't hard and fast lines.

01:36:33And you know, the difference between a dupe link and an alternate link is pretty minor too.

01:37:24Yeah, let's put that in. So.

...54Hmm. It's a response.

01:38:29This one. So Go added some telemetry into the compiler. That one got a lot of attention. And a lot of it was very heated because people often object to telemetry because they feel like they're getting tracked. And I didn't see the, I think that was actually a first party update. And We were just rehashing the thread almost exactly. If you looked at the first couple comments on the news story, it was the same. Like, wait, what do you mean it's on by default? Wait, what does it do? Wait, what is this? Hey, wait, I'm mad. And not to dismiss anyone's concerns, just we did all those comments.

01:39:33What am I doing here?

...40Trying to get a rough idea how many are left. 269. spent half an hour on this and seen one new category.

01:40:22Maybe we're actually done.

...28So these are alternates. Let's zoom in on these moderation reasons, especially the longer ones. Oh, this one was just self-promo. That one was obnoxious, actually. Pulling that up.

01:41:00I'm guessing this user is not still active. No. I'm not pulling up my mod notes here on stream, but I'm pretty sure I ended up giving them a warning.

...20I mean, its self-promo was the main thing, but it is also just an alternate link.

...45alternate here's multiples and really multiple is just a symptom of the fact that story merging can only be done by moderators There have been a couple of times where i've talked to submitters who have explicitly said i'm submitting multiple so that you can merge them. Because they don't have that option.

01:42:47yeah i'm skimming but i mean you can see i'm fairly consistent in these messages where that's really it so cool now that i've been very boring for half an hour of looking at a spreadsheet. This is actually really fascinating to me because I care about explaining this well, but I can see that it's not riveting programming contract because the stream has gone pretty quiet. Now I feel a lot more confident about starting to write up story merging and thinking about what the feature is going to be. So here's the previous stream where I talked a bunch about what storing merging is there were some chat about it, and then I was taking notes towards. Writing a. document about it.

01:43:59And the features were things like. What if we get a highlight that a top level comment is adding a link to a response and other things. People sometimes get a bit confused and frustrated by the way that merged comments appear together. And so I was thinking that like, yes, we could clean up the metadata, but then also those repeated story titles are not useful and maybe we should just put them in sections and if we just put them in sections we could also say hey you can continue to vote so let's let's break out what this work is because i feel gone through enough categories now, I was worried that I had done all the easy ones and none of the hard ones. And these are exactly as easy as the other ones. We're not finding new categories. There aren't more reasons. And honestly, several of these reasons should collapse together, like write up and response or alternate and update. And multiple doesn't need to exist. Which gets us down to, you know, is it first or third party? Is that meaningful for a story? Not really. Except for picking which one is going to be the headline on the home page where we prefer first party write ups and we prefer more neutral write ups.

01:45:51So I don't think the categories need to be exposed. But the work of categorizing convinced me that we got pretty good. So, all right, so merging features. I've been thinking about it now for something like two months, but yes, to do...

01:46:24I think most of these, so... group the three of the comments right by which merge story they're on and that'll be in multiple comment boxes but okay

01:47:28What else can we want to do?

01:48:30kind of want to say that if someone votes yeah so on the I'm trying to get out what the description is like so now we have the list of headlines and then all comments and What this will be is, you know, list of headlines and then headline, its comments, headline, its comments, et cetera, right?

01:49:21And I kind of want to say that

...31Maybe the site should encourage people to merge stories together by saying that if any of these links that are merged together get an upvote, all submitters of these links get one karma. Hmm.

01:50:10Top level code. So there's that mention of, well, we have that link model, which gets at the database question, which is to headline and stories.

...42is is a story so one question we have is is a story with a text different than a comment so one of my gripes about super replies or super comments is no they aren't and if we have this idea of promoting a top level comment Maybe we also have the idea of demoting or just treating them more interchangeably.

01:51:33So not a lot of comments in production even have story texts. Take a look. So we have, well, let's say where isDeleted equals 0. So we have 107,000 stories. And then let's also say where StoryText does not equal

01:52:19It's not called. I think I moved these off to another table just to keep them smaller, didn't I? No, it's called description. There was a different one on here that was the retrieved text of the story. And it was actually a significant performance problem because some of them were so wide. So one tenth of stories have text, that's a lot higher than I thought. I would have guessed three or 4%.

01:53:12But if it's 10%,

...20OK, so. It's a great time if folks have opinions about data modeling to pipe up. Because one thing that could happen is kind of merging story and comment a little. We've talked a bunch about this database of having the structural problem that the stories table is flat and the way it manages merges is it just the table has a foreign key to itself. if it's a different entity, like the thing that appears on the homepage is called a headline, and then it has one or more links attached, then we're gonna have fewer bugs because the role of those things is separated and it's not, Is really painful that every query that touches the stories table has to know whether it's looking at something that's merged or not.

01:54:58So if we had. headline.

01:55:18Is that really different from having headline with one or more stories, with one or more links, which may be from a top level comment. How does an invasive refactoring, maybe clearer because if we go the other direction that we have a headline and comments get promoted to stories right that's there's three different ways to end up with a description field in a story, that feels pretty bad, right?

01:56:26I'm not going to break out graph is, but.

...35So in the second one.

...44This would require.

01:57:00Oh man, that'll actually break a bunch of the site if we insert comments for years-old stories, because lots of things use the ID column as basically the date time that a comment was posted. And it's been fine to make that assumption, but right here we're violating that assumption, so let's note it.

01:58:08The second one is a little intimidating because it's a lot harder to reverse.

...26And so for maybe useful context here, there is a link model that I added to the app over the summer it doesn't it's not user visible anywhere but it extracts urls from all comments and all stories and i intended it for cross-referencing comments and cross-referencing stories so say at the bottom of a story There could be a link to other comments on the site that link into this story. I think that would be handy. Maybe do that on the comment side as well. Optional. And it actually is sort of the superior version of The story model.

01:59:40Hmm.

02:00:21Some of this stuff, it's funny to move between the layers of what is the site practice? How is all the user data encoded? What is the database schema? The way these things reflect kind of up and down the levels of abstraction or Between user visible features and infrastructure kind of endlessly interesting to me.

02:01:01It gets back into that. idea of shipping your org chart I don't want to ship our database schema, but I do want the database schema to. reflect healthy usage patterns and encourage good discussions because that's always the north star.

...27There's also here the, well, there may be redundant comments for super responses. I don't want to write that query right now.

...51I guess option one here, is a pretty easy next step. I mean, easy, but boy, that's going to be a diff that touches a lot of lines of code. But if I do that refactoring, merge stories stop being a big bug factory.

02:02:27Oh, God, it's going to be bigger than that. Headline's going to have a bunch of stuff.

...37Yeah, so there's one of the questions.

...46I don't think we enforced it, but let's look at collisions. Come here.

...58Do we have any stories where the short ID is the same as a comment's short ID? 51 collisions. It's a little unfortunate for my idea of unifying those models a bit.

02:03:52so option one does support all of these features now the other thing is we have a couple pages under slash about like stats i guess i'm thinking about the About controller really stats about obviously chat privacy policy. Yeah.

02:04:44Yeah, that really is it. So I'm looking back at the big deep dive on story emerging and That gets us this, this, all of these things. These categories don't matter. I mean, maybe they matter a little because

02:05:28it would be nice to group by author. Not just first, first, third, but... So say an event happens like XZ, and... I think I've used Alison Baub already, so Carol writes the authoritative primary source post, and then Carol's link gets submitted a second time. You know, either it's a dupe and it gets a good comment or two, Or it's an alternate link, like there's Carol's blog post and Carol's GitHub, but there's two from Carol. It makes sense to group those two together, all their comments together. And then if Dave responds, he gets his own little section on the page with one of those inter-page headers. And Emily responds and she gets her own. And then Dave comes back and says, oh, I'm going to rebut the rebuttal. And then does he... Do those group in his... No, I think that conflates time a little too much. Yeah, so I don't think it's worth trying to group those by author. It's not going to be clear what's happening. It's going to be frustrating when...

02:07:00And so the choice is, so if we have Carol's GitHub and we have Carol's blog post, the other question is if we have Carol's dupe URL, because sometimes people link to the GitHub repo and sometimes they link to the README. There's one that the normalizer doesn't catch right now.

...28If we have that, then the direct responses to carol are split up and i'm not confident either direction whether that makes sense because carol's blog post and carol's repo like one might attract more technical comments one more get more high level design comments for dupes Honestly, if I had the ability to move comments from one story to another, dupes would always be deleted. But they're pretty few, right? How many did I see?

02:08:22Should be just the dupes. we have how many rows 67 so 67 out of 107 000 that's pretty minor i'm okay with that i don't i know i didn't finish coding the spreadsheet so maybe there's a hundred so like at most there's one percent which means there would be one dupe link

02:09:03What every hundred days, just kind of ballparking out, you know, the site is 13 and a half years old or 12 and a half. Okay.

...39Okay. Back up. So here's some drafts for the doc. And then also for the doc.

02:10:15And also for the doc. Which, the more I've thought about this idea of making the window for story merges a calendar week, the more I like it.

...38But if users can do it themselves and the UI can enforce it, and it's not just mod judgment, well then, when users go to merge stories, they will get a list of the stories submitted in the last week to merge into. and won't be able to choose older ones, so that part is easy.

02:11:16Yeah, let's leave that alone then. It's maybe a little too cute.

02:12:14Yeah.

...26So right now user suggestions, there's a table for suggested titles and a table for suggested tags. And I think what there should just be is the form submission of what they think the story should look like. And all of that can be grouped together. So for one user, there is at max one suggestion for a story. And that also allows structuring merges without having a separate third table for it. Yeah.

02:13:13So I guess I just get down to, is a story with a text different than a comment? And I spend...

...26I don't have to estimate, right?

...32A regular thing that happens is...

02:14:01There have been more. A regular thing that happens is someone submits a story and they write their comment in the story text and I come along and remove it. Or they write their own summary of the story because they just think they have to. They don't really read the tooltip. They are reacting to the shape of the form.

...39and now we're playing with null verse empty string okay and then this one is oh it should have been story text or no description Oh, it's the tripartite logic. Description. All right, so 3,000 stories out of 107,000, so like 3% of stories.

02:15:40let's call it descriptions and of those the seven percent different between those most of that seven percent difference is pdfs with There is a practice where submitters who know the practice will copy and paste the abstract into the story text because Diffbot can't just grab the abstract for summaries.

02:16:23I think I want to sleep on that one.

...30Yeah. I don't think it is. You know that developer thing where you're like, oh, everything has one unified model. Everything is an object. Or you end up doing the inner platform effect where you end up defining a table called metadata. And the columns on the table are key and value. And then you're like, every object Just has one or more of these records associated it's like yeah you you reinvented the database table one layer up and i'm real. You know it's a code smell to me or a database structure smell. And I don't want to be too clever about what this database differences between. stories and top level comments. just want the darn thing to work which maybe says do option one and come back but i've got to slow down and kind of reflect on it so i'm gonna wrap up this recording so that i can tweet out a hey i have an odd design puzzle and paste the link on blue sky and mastodon If you are reading this transcript or listening to this or watching this video, because I just posted it, please do kibitz with me about how you see structuring stories, headlines, comments. Hmm. Okay. Yeah, so unless you have been hanging on to a question about the site of the codebase that you want to drop in right now, and I hope you don't have a ton of lag, I am going to reach for the stop streaming button and wind down. I appreciate all the folks who dropped by today to talk about the Online Safety Act and do pull request review, which is pretty great. And then bsandro t4s!
happy to do a bunch of this less exciting work of making sure the site understands itself and the features support really good discussions so thanks for hanging out with me today oh one more thing is if you are a streamer on twitch and you are starting after me i know there's a whole thing i can do with gtfrvz b2wGG
raids to send people your way so i've been trying to remind about this because someone talked about it before i would be happy to end my streams with a raid of another streamer from the community so feel free to pipe up if you do or if you have a favorite streamer that i should just throw to all right well thanks very much for joining me folks Have a good rest of your Monday, and I will see you Thursday morning for the next scheduled stream. Take care.