The jank of ages
Streamed
Deep review of PR #1508 modernizing site CSS with grid layout. PR #1516 to optimize GitHub Actions usage. Debugging brakeman issues with Ruby 3.4.2’s prism parser. Discussion of problems with story merging, mostly about discoverability for new stories.
scratch
topics
PR review
tag fix https://github.com/lobsters/lobsters/pull/1515
github actions https://github.com/lobsters/lobsters/pull/1516
CSS grid https://github.com/lobsters/lobsters/pull/1508
touched on issues:
https://github.com/lobsters/lobsters/issues/1517
https://github.com/lobsters/lobsters/issues/642
story merging https://github.com/lobsters/lobsters/issues/1456
title
post-stream
Transcripts are generated with whisperx, so they mistranscribe basically every username and technical term. They're OK but not great, advice appreciated.
Recording
02:13What is my desktop? So this is lobsters. And this just sounds like trolling something. This does not. There's at least a little bit of code. Oh, okay. They're doing code trolling. Fine. If it was just hassling somebody who had a scammy job post and there was nothing about programming in there i would have pulled it there's apparently a a real popular scam now for folks who are willing to work in cryptocurrency where the scammers set up fake job postings and then as part of the interview process say oh you know clone this repo and then one of the dependencies is actually backdoored to search for crypto wallets under the assumption anyone were willing to work in crypto is going to have a wallet so the people who try to apply for cryptocurrency jobs end up getting their tokens stolen all right so that was lobsters and also this is lobsters So I work on the code base when folks don't have questions if you have any kind of let's put that in the chat because folks see scroll back, I mean this is not irc right we see scroll back.
04:07pushcx If you have questions about Lobsters (side or codebase!) ask anytime.
yeah over the last couple of days, we had a whole hassle in the.
IRC channel.
So lobsters has a, is it not?
I actually thought we linked it in the footer.
Probably should.
Lobsters has a chat room on IRC because we're old.
...42Somebody came by and did some...
I hope you can't hear that construction noise behind me.
I have a very directional mic that's pointed at my mouth, so hopefully you can't, but it is physically behind me.
Anyways, if there's banging and clanging, I'll change gears, but we'll see how it goes.
It'll just drive me to distraction.
So somebody came by and did some trolling and we actually couldn't ban them because we ran into a limitation of Libera, which is totally reasonable.
Everything needs some kind of rate limiting or maximum limiting so that they have a limit on how many bans an IRC channel can post is smart engineering.
It was just inconvenient in the moment because then all of a sudden we have to review the old bands and be like, what is this?
Which one of these can we drop so that we can get rid of the troll right now?
pushcx https://push.cx/discord-vs-irc-…
It had me thinking a lot about IRC, which I know I've linked it in the stream before, but just one more time.
There's kind of a collection of our notes on
pain points about irc the libera admins i interacted with about this continued to be excellent and very competent and we got through both the immediate troll and cleaning out some old entries from the band mask thanks to libera admins but i don't know let's see how it goes
vinitkme Hello, Hello!
They are working on a new IRC daemon, and I don't follow all of the technical stuff because a lot of their changes are plumbing at the IRC protocol level or at the structure of the IRC server level, and I have no experience there.
But some of the UI features could be nice if they would like to start fixing some of the UI around, well, especially kicks and bands.
Ah, hey, FinitKimi.
Good to see you again.
vinitkme Good to see you too.
So anyways, story time aside, when I am not working on answering your questions here, I work on the Lobster's codebase during this time.
And I know I have one pull request.
That's a small bug fix.
And then since the last time I streamed, I have merged a couple of small bug fixes.
There was
this i know i showed this on stream where if you reload the story form the url that you have put in there goes away and it's a channelist who is a stream regular figured this out that it is a
Firefox feature, where if you turn off autocorrect.
Also, it doesn't maintain form state, which is very strange to me.
I don't understand why those two things are related.
But sometimes browsers build up this kind of stuff over a couple of decades.
So I would rather
Because folks don't tend to type URLs too often, I would rather lean towards not losing data.
So we bit the bullet on that one.
A site regular.
vinitkme I think I can quickly contribute a nice improvement to the CI so that it safes more action minutes. Will that interest you?
I always want to read this as snakebell, but obviously it's not.
Sknebble?
I don't know.
It's probably sknebble.
Okay.
Yes, I would love to have an improvement to CI to save action minutes.
Please do.
vinitkme On it. Incoming :)
Is this like a there's a flag to install gems without docks faster kind of thing?
Because I'm happy to have that kind of thing.
Well, then I'll review it here in the live.
I'm just running through what I've done in the last week.
So this was...
fixed it a couple of broken links someone reported there was one on the about page and i fixed it i didn't realize there were two more so i appreciate that from sven and then speaking of action minutes chamlus made the fake data task more realistic we do have a smoke test that exercises the fake data task so this
This is probably the thing that most choose up action minutes.
but I have not seriously thought about our action minutes in actually ever.
vinitkme Cancel in progress runs if a new commit is pushed https://github.com/django-cms/d…
vinitkme Something like this
Since the first time I have set up the GitHub actions and set up any kind of continuous integration, you know, I looked at it and then the first run was so far under the limit that I was like, ah, we're fine.
And I have not thought about it for years.
Cancel in progress runs if a new commit is pushed.
All right.
I mean, let's take a look at that.
10:39That seems totally reasonable.
Yeah.
So we have the build split up into a couple of sections.
So you'll want to add this to all four of our sections.
But yes, please.
vinitkme Let me see what I can do.
That's definitely going to be useful on pull requests.
vinitkme Will send a PR soon.
Yeah.
We're not such a busy repository that we're going to hit that a lot.
vinitkme It's good for environment nonetheless.
But yeah, that's just a straight improvement because we don't have to be SOC 2 type 2 compliant and run the build on every single commit kind of box checking activity.
vinitkme Less runs, less waste, less emissions
vinitkme :)
I mean, our build has been broken for like a month regardless.
Let's see if Brakeman is updated.
11:32Please? Yay. Oh, okay. So this is probably going to have the fix for the issue we've had. All right, so let's... I'm glad I got reminded. Thank you, Vinit. No, there's the... How did that not...
12:05Well, I'm going to commit it because otherwise the build is going to fail because we're not on the latest version of Breakman.
...43Let's go look at their bug.
...53Fixed with 1928. So I want to say the other. Hang on the other. Duplicate issue saw this alternate error. No, so we got can't modify string. Alright. I will just add it to the bottom of this. I never know with projects whether to reopen issues. I don't mean to be rude. But I think probably we'll reopen. Alright. And let's get, speaking of the build, let's get the latest version of that build failure.
14:00Didn't I?
I didn't push.
Because I wanted the
vinitkme What version of MariaDB do you run on prod?
Let's take a look.
...34Actually, I'm logged into the wrong server.
...49vinitkme 10.11.11
vinitkme It seems
vinitkme on top
this doesn't list it no that's not so helpful oh did you see it go by ah yep there it is good eye thank you why do you ask it's just whatever is in ubuntu long term sable that's not a considered decision there
vinitkme Github actions is outdated
So I pushed that commit.
vinitkme Will sync that up too
So now I can see that build.
15:34Ah, thank you.
Yeah, I wish there was a way that we could sync those.
I tend to be fairly conservative in adopting database features where
I would really like to see them in the database for a few months before I'm like, oh, yeah, let's grab that.
vinitkme Just want them to be same as how it is running to prevent dev-prod parity
Just I'm very conservative there because it's the source of truth.
vinitkme does that makes sense.
Which means we tend to be fine if something is running a late version.
Yeah.
Oh, yeah, I would absolutely rather have them be perfectly in sync all of the time.
I'm just kind of rambling about why it doesn't matter, you know, why things don't tend to break because they can slip out of sync here as they have.
17:26Huh, I cannot reopen. I guess that answers that.
18:43all right so with that all right so vinit hasn't finished his pr just yet so let's look at this one i did peek at this one this morning
So this was the single detail that I extracted.
This new template for display on the single story view, I managed a copy and paste error where I got the closing tag on the A, but not the opening tag.
chamlis_ I have a half memory of that related issue being fixed by updating ruby/prism, it's just that doing that before caused the frozen string bug
So Ooded here has restored that.
This is one of those limits of
19:40Well, I bumped. I wonder if bundler was very conservative about their binding to prism.
...53So it's not listed as a gem file or as a gem.
chamlis_ I think prism is built into ruby itself
Does it have a different name than Prism built into Ruby itself?
I think we're on the latest Ruby, right?
341?
Let's take a look.
Because if it's still... Is it the official Ruby...
language site okay ruby-lang.org a little brain fart there three three three come here current stable version is three four two all right let's just bump it all right and i'm gonna
before this maintainer sees it.
Just add that.
21:08Shamless, would you like credit here?
...17chamlis_ sure, why not, thanks
I'll spend a minute.
Oh, wrong button, I wanted the report.
...42Frici Greetings 👋
Let's see, what do I want here?
RB and install 3.4.2.
Let's get that started.
And then I'm going to annoy every contributor who has a fork.
That's the one reason I don't like bumping the Ruby version.
I'm being good.
Okay, so this pulls from Ruby version, so that's fine.
All right.
Let's give that a minute to run.
I love having a big desktop, make-j24.
All right, give that a few minutes.
Let's see, do I need, no.
Ansible will take care of installing it on the server.
So that'll just be a big deploy.
vinitkme Almost there. Give me 5 mins
I want to see this finish before I can make the commit.
23:00No rush, right? All right. I'm not going to push that commit until I actually see the build work, because even though the build is red right this second, I am averse to making it worse. My goal is to fix the build, so I want to actually see it run here. All right. That took less time than I'm used to. I love my desktop. All right. Let's reinstall all the gems. This is also, I have a bunch of personal projects, and in my personal Ruby projects, since I do almost all of my coding in the lobsters repo, they have .ruby version files that just sim link to this one, so there's going to be a whole bunch of bundle stuff to do. All right, so all this is good. Looks like a bunch of stuff got minor bumps. No, guess not. These are... Okay, I saw this message and I thought it was about an upgrade because maybe the Ruby version had forced some gem to update, but no, this is why I like to make a commit after I do the, or at least do a git add. All right, so let's run the build.
24:32So Chambliss, I just was talking through it a second before you joined the stream, but thanks for your pull request, adding the votes to the fake data task.
We were talking about, Vanita is hacking out a pull request to stop the build if there's a new PR rather than, you know, finish the build that's now obsolete.
Damn it.
It's a break, man.
That didn't fix the issue.
Well, I'm still going to push.
I try and
follow the point releases for Ruby and Rails.
Let's actually, let's check on that.
chamlis_ darn, sorry about that
As long as I'm doing maintenance.
All right, so I'm gonna run that in a second, but first.
25:32And so I take this and I push it up, then I'll get the URL for a new build. Oh, this one. Losing my place because it's such an easy merge. But let me grab the. This guy is going to fail in a second.
26:22Yeah. All right. So can I? That's even nicer.
...46So then this, yes, before I totally lose track of what I'm doing, let's just get that folded in. I was talking to someone just on Mastodon the other day about view component, which is Another alternative to ERB that would have not permitted this kind of mistake. And it's not so much, well, I mean, it is the fact that it's structure rather than string soup.
27:33Get that merged. Great. And then, oh, here's been it.
...50Finit, you are a professional developer. That is a great description.
28:08ghost_user_1984 See I just put "problem" as my job description.
Great.
...14I'm just going to assume that
...23ghost_user_1984 Yes!
I don't get it, ghost user.
What problem is your JavaScript?
Oh, to be a problem, I follow.
All right, well, if this... Now see, GitHub just didn't run the build.
I don't know if it's because this PR touches the build or what.
GitHub UI is so just janky now.
So the build is just missing from this pull request.
...58vinitkme Let me quickly verify if there is an issue withe file sitself
vinitkme It happens sometimes and doesn't run it.
See, it is totally reasonable that there be, like, I understand because we are editing the build that it's not clear which version of the build to run.
But like, you gotta say something, GitHub.
You have to explain why.
vinitkme Don't merge it yet.
Yeah.
I just posted,
As long as we're whining about GitHub, why should I not merge?
So this...
So it went full screen instead of... Can I make it a little bit bigger?
On GitHub, there is this checkbox for allow GitHub to use my data for... And I tried to uncheck it.
And I recorded this little video...
of every time I uncheck the box, well first it jumps and then it rechecks it and rechecks it and rechecks it.
Thanks, GitHub.
That's exactly what I wanted.
I feel like my opt-out is really being honored by having the ability to opt out over and over.
Somebody on Mastodon had a great poll where they said, do you think that Microsoft understands consent?
And the two options were yes and remind me in three days.
That's the Microsoft approach to consent.
30:39All right, so, Vinet, I'm going to hold off on merging, but this does look totally fine to me. I'm not at all an expert on GitHub Actions. So I'll take it when you say it's ready. Yes, OK, so the other thing that happened is I got an activity notification on Chambliss's big PR.
31:10Okay, so we have three new commits, but two force pushes, so I just have to read the whole thing.
chamlis_ so it looks like the first_param issue is in prism and fixed in 1.4.0, but even ruby 3.4.2 is still on prism 1.2.0 https://github.com/presidentbee…
And I don't need the white space.
Thanks, GitHub.
Looks like first parameters in Prism and fixed in 1.4.0.
Oh-ho.
Shamless, you continue to be the queen of research on the stream.
Thank you for searching this out.
...54Yeah, so that's the error.
32:05Did I not see this linked? in my own bug okay that's why i was so i have followed this link before maybe not on this browser profile for streaming on my personal one but i did remember this comment about it and seeing this message before that's why i was thinking these things were related because i half remembered it
...39So if I run... Oh. I mean, if I can get...
33:02So my decision is, do I put no prism in the build knowing I'm not going to remember to take that back out in a month. Just to kind of guess at how long it's going to take to see the thing updated. Hmm.
...48so where's the thank you okay so they tag releases pretty regular is there
34:20I'm wondering if there's a bug over on the Ruby side that tracks it. Are there? No, tags would be pretty great. Let's just search for Prism.
...39chamlis_ they've updated prism in master, but not for 3.4.2 https://github.com/ruby/ruby/bl…
Watching that typo.
ordered a keyboard online and we'll see whether i get to pay more for tariffs or not they've updated prism and master but not for 342 okay so you're ahead of me again as usual on these links let's take a look so if it's in i don't actually know the ruby release process so this well this bumps to one two
So we're on master.
Oh no, this is for three, four, two.
So if I change this to say, okay, so here they're on.
All right.
So when, yeah, they're just tagging the commit channel list.
Do you know?
when the next Ruby point release is likely to be cut?
When was 3.4.2 cut?
35:57chamlis_ I don't really know ruby the language, let alone ruby the project lol
I'm in the wrong place.
I should probably go... Yeah, this is not dated.
Yeah.
I'm just trying to think of...
which is going to update sooner all right so three four two was what is that seven weeks ago and then four one was
six seven weeks ahead of that so maybe 343 will come soon i think i'm okay and i'm just going to leave the build broken rather than putting a time bomb test yeah and then let's
37:51Great.
Okay.
So did init do anything else here?
Oh, now I'm allowed to see the button to approve and run the workflow.
Okay.
I already looked at this.
It's funny, you would think
vinitkme I am on it. Give me 2 more mins
vinitkme Doing some last min fixes.
would think that that button would have like extra warnings when a pull request is modifying the build because that's i don't know more likelihood that someone is trying to sneak in a crypto miner or something i don't know okay no worries vanette i was just trying to
i try not to run these streams ping-ponging between nine things at once i try and ping-pong between like two things at once max so i was trying to finish thinking about your pull request but no worries all right so oh what is this on on body ah chamless you've taken on the big moving the whole page into grid i see
39:24Oh, boy.
Chamlus, if you've touched the logo CSS, I realize this is a small diff, but this must have taken you so much time.
Thank you.
chamlis_ the commits are laid out area by area which might be easier to review?
chamlis_ it's been a stressful week haha
Because I have fought and fought and fought with this logo CSS, and it's fine, but wow.
Yeah.
Well, I am just calling it out because...
Oh man, the couple of times I have touched it, it has taken so much tinkering, especially
like to get the logo to hang in the right place and then the logo does all that clever stuff and to say nothing of what it does with the backgrounds thank you
40:29If you think it's better to go by commit, I will go by commit. I was just jumping in to showing the whole thing because I could see that you force pushed it. And so if I look at the whole thing, it forces me to clear my mental cache. Wait, you can compare the force push or is that comparing the whole thing? Let's look at the URL.
...59All right. Man, that is some shotgun debugging. Or not shotgun debugging, just shotgun editing when CSS is global. All right. So let's... So this one's going to be... Yeah, just this start.
41:27One max content... Oh, so you're doing max content because the logo and the voters are small. And as long as they're centered, we're getting what we want. Oh, that's smart. I like that. And then just use all the rest of it.
...50chamlis_ that might not be the latest version of that commit, I did some force pushing a couple of hours ago
You can see, it is so nice to see these comments of mine getting deleted because these are like
Here's where I lost an hour.
Let me leave myself a note.
Yeah, I'll go through them all here.
And then you had a little margin.
Yeah, this was, I think, slightly different from that overall that I looked at, but that's okay.
42:21Grid column.
What is one slash negative one doing here?
chamlis_ yeah
oh it's from the first column to the last column right you did that so that if we add more columns we don't have to touch that yeah that's smart and then the nav itself is a oh you're changing it from flex to grid very bold and then there's sub grid yeah
And then I, oh, that's nice.
That's much nicer because we're saying what we want instead of how to build it from scratch.
43:15These are in grid column two. So this is referring to the navs grid, right? Flex with a gap. I did not expect you to change the, The nav from flex to grid that's. I think it's a clear expression of what's going on i'm just a little surprised. So then. Inside. I was wondering if we would drop the inside class all together. guess not you can probably drop this margin on it though right because this margin i would rather see that moved into grid layout and then the footer spans it all yeah
44:34Is this into, yeah, okay.
chamlis_ I'll investigate that margin
It's into a media query for the phone.
So I should be making, should I be making comments here?
You'll investigate that margin.
Same one here on the header nav.
Actually, the padding too, padding changes the size of the colored background.
Maybe that wants to be grid, maybe not.
I don't know off the top of my head.
God.
See, this is beautiful.
To delete this thing, that must have been satisfying to delete that diff.
45:28All right. And then, yes.
...39vinitkme Just pushed a commit. Should be fine now
What is dot corner?
OK, I'm going to finish with this thought.
...58I don't remember this class.
46:23Oh, it's to make sure that the inbox on the mobile view floats on top of the other links so that you can always see the inbox. Okay, I understand where it is. Yeah. Not a great CSS name if I had to go dig at the structure and stare at it for a minute to remember that. So that's on me. Chamelis, if you think of a better name than corner, feel free to replace it. Because you must have had to work out what that does too.
47:00All right. And then let's take a second to peek at vignettes. What did you tweak? Explicitly define Ruby version. So vignette. i thought the ruby setup would use the dot ruby version file we have this makes a second place to keep in sync and is already out of date because i just pushed a commit that said three four two like five minutes ago does this setup ruby not use the dot ruby version file
48:19vinitkme Gotcha. Will revert. Was not sure about that
vinitkme Maybe it does.
Yes, we're not doing a matrix.
Oh, here we go.
So it looks like we have to specify that it should use the .Ruby version file.
...55this doesn't apply because it is at the root of the repo okay and then if ruby version isn't specified it tries the one it looks for that by default followed by tool version so yeah you can just please delete these i'm happy to leave that implicit then specify Because it feels very unlikely they're going to change that default behavior for us. Or on us, I should say. All right. So... Chemlist, I can see the care that you put into structuring these commits. This is lovely. All right. So then story lists. Oh, has. The new CSS all-purpose chainsaw.
50:07chamlis_ that's meant to be "everything but the list should span the main body"
oh that's clever but then otherwise wait if you have an ol stories so chanlis i'm a little puzzled here why try to negate this why not just put this up top
Everything but the list should span the main body.
...50chamlis_ there was a reason, let me puzzle that one out
Use the cascade, right?
You could say inside greater than star grid column two, and then this one inside
chamlis_ the :has one is styling #inside, the ol.stories etc are down below
greater than ol stories comma inside greater than ol comments and they overwrite right so the has one is styling inside
51:48chamlis_ line 396 is styling #inside, to be clearer
yeah i can't think of why you wouldn't want to i i follow what you're saying i just can't think of why you wouldn't want this to be universal of if you put it ahead you would just say id inside grid column two for everything and then when it has stories let's do this extra thing when it has comments let's do the extra thing
chamlis_ oh I remember it was to pump the specificity to beat ol.stories lower down
chamlis_ but if we say they're only ever in #inside I can do that in both places
and then specify that, so wait, this selects all the child elements that aren't, and then this is sort of assuming that all those lists
52:45vinitkme Alright, reverted that specific change.
I think you can say that so i've got the application here.
yeah so that inside is in our layout it's not going anywhere, it will always be present I feel like that's a safe.
Okay.
53:13vinitkme ``Error: undefined method 'first_param' for an instance of Array Location: /home/runner/work/lobsters/lobsters/vendor/bundle/ruby/3.4.0/gems/brakeman-7.0.2/lib/brakeman/processors/template_alias_processor.rb:88:in 'Brakeman::TemplateAliasProcessor#process_iter' ``` breaking change with brakeman I guess
vinitkme that is the only one that fails
So if this pulls, and then I got to see this whole thing overall because I'm jumping back and forth.
Yeah, so that's the brake man issue that we were just jumping through.
So that one's fine.
You can ignore that fail.
...49vinitkme I missed one ruby-version I guess.
vinitkme Let me check again
You missed one of the versions.
What is this?
Line 37 of check YAML?
Yep.
But otherwise, this looks great.
54:10Nice to bump to the new versions of these. I'm going to assume that they are, you know, Harder, better, faster, stronger.
...35vinitkme Done
Hey look, so you pushed your commit and I guess it's already using your new files because it canceled that build.
or at least it hit it.
I'm going to assume it canceled that old one.
All right.
So if this is just this, great.
55:34So for anyone closely following, this link's not gonna work for a couple hours, but it will when I push up the archive page for the stream. All right, and we will squash and merge.
...53Actually, let's just tidy these.
56:17All right, and on my local, I'm just pulling down that PR, so that'll run for a second. All right. So let's go back to Chamelis' big CSS fix. I feel like big is not a big enough adjective.
57:05Oh, that's nice.
This CSS...
Okay, so you must be...
chamlis_ I've stripped the margins and reworked to take advantage of the cascade there locally
touching the layout for all of them.
Display.
Oh, that's interesting.
You chose flex instead of making this a grid as well.
...39chamlis_ I guess because it would be a one-column grid
Just let me have this score.
...50I thought you were going to... Let's get the...
Here.
So I thought it was going to be like one, two, three.
I was just assuming.
But...
chamlis_ oh yes, that flex is for aligning the upvote button and the folding line
So does this work without the float?
I'm not getting it just yet.
So we've got the border width.
58:40Ah, I see. So it's just for the... Oh, I get it. It's just for the content. It's not for laying out the... All right. Yeah, I'm... working at the wrong level of the element. I get it now. Thank you. So then we have the story. Yes. And then Storyliner.
59:20It's nice to see these margins starting to disappear.
...44What is the more link?
01:00:11Ah, it's pagination. Well, we've had that, I don't know, six-year-old feature request to redo pagination. Have to improve that CSS class name at that time. Not now. Hang voters in the left margin.
...35Can we get rid of this?
chamlis_ yes, probably
thought this was going to go away with grid because if you're putting the ol comments okay i won't belabor it all right so then we have
01:01:15I wonder what this is overriding.
...32chamlis_ oh that might vanish in the later commit
Sure.
...38So.
...46This table cell must be me and I sure can't remember why I thought that was a good idea. Maybe to make sure that it didn't get a line break in it. Regardless.
01:02:06We must lose more lines than we gain in this diff. Is there a summary? Very close thing.
...20chamlis_ yeah I should do another pass to try and delete more rules
It is at least conceptually similar because there's so much less margin happening just nudging things around.
Alright, so then this one that's the one I just looked at.
This is.
How do these have the same stats this must be the whole PR then not.
...50All right.
...56It's foldable.
01:03:16Ah. so if you have dealt with the logo and the comment folding css you have like opened the necronomicon to stare at the two horrors of our css files because these are the two most complicated and clever bits of CSS. So thank you for staring into the abyss.
01:04:03You've even changed it. Yeah, because I remember struggling to write, I think this selector before colon has before that pseudo selector was available. It was really hard to express what we wanted there.
...25That is a big selector.
...34I get it.
...44chamlis_ makes sure the line goes all the way to the bottom of the comment
what does flex grow do here make sure the line goes all the way to the bottom of the ah okay so i was thinking it was the
And I'm going to get the term wrong, the main access, not the other access.
01:05:35chamlis_ it is but it's in a flex-direction: column
Yeah, flex direction column.
I missed the flex direction.
Thank you.
All right.
See, look at that.
You've deleted another one of my little touchstones for explaining some madness.
Thank you.
I hope it was as satisfying for you to delete those as it is for me to read them gone.
chamlis_ oh absolutely
Because being able to be semantic about, no, there's this column, or putting things in a column is so much nicer than...
remembering all of these other elements and then hoping that none of them ever changes.
It's going to make editing page layouts so much easier.
Good.
chamlis_ in an ideal world I'd love to only size fonts and images and then the rest is a big ol' CSS constraint solving problem
I'm glad you're having some fun with this as opposed to just staring at the horrors.
01:06:39yeah yeah it would be really nice to just let the css deal with it if that's a if that's something you want to take on after a while of when this gets merged i am very happy to see all these little nudges start disappearing and express more things like the gaps between things in terms of rem just so that The site is on a harmonious vertical and horizontal rhythm. We've talked about. Honestly, maybe we shouldn't even size fonts because we did that experiment on the stream a week or two ago where I deleted the font sizes and honestly things look better.
01:07:34So.
...41Why do you need this?
chamlis_ yes I'm looking at those now and I think the general selector handles those now
I would have thought that your parent selector that boiled down to inside all children, you know, greater than star, would have handled it.
Okay.
01:08:08And we have...
...16What is minmax doing? I don't know this function. It's a size range greater than or equal to min. Okay, so it's like a clamp. Oh, this is interesting.
...45chamlis_ that's a sucky line, where I'm setting a minimum width for the upvote/comment folding column, otherwise things didn't line up between sibling subthreads
browser is stuttering to update all right okay so it lets you set like a min width and a max width at the same time effectively but it's in the context of a flex or a grid clever otherwise things didn't line up between hmm
01:09:23Now that you have, whoa, that is not a page I want to run stream.
chamlis_ ideally I think the page-wide subgrid would have many more columns for each level of the thread
Now that you have the voters in mind,
What did you think of the idea of moving the voters and the score into the left column and having the
Many more columns.
01:10:21I'm thinking about that. So our max depth for column replies is, what is that? I want to say in our deepest column that actually exists, deepest reply that actually exists on the site is like 31. And then just to keep things a little more reasonable, I've imposed a limit of like, I want to say 18 or 20 now. That seems like a lot of grid to define. When what's happening is we're just special casing the first one. I guess I can't picture what value we would get from that.
01:11:30Would it be being able to specify the width of this column and the comment in that once at the page level.
01:12:05chamlis_ in the situation where we're letting CSS resolve everything, it would ensure the upvote column width is the same between all comments at that depth
Because I don't think that gets us too much.
...18chamlis_ so if one comment had 99999 upvotes it will still line up at the bigger width
Ah, right.
Would the max content get shared between the columns?
That's interesting.
Huh.
...37Yeah, I didn't think of that.
That's a... Yeah, I think...
So that's really the only variable width thing here.
And I think we're going to have to handle that at two levels.
Number one, instead of using max content, I mean, we could either keep using max content, but then this score display has to change and very strictly limit the number of characters it has.
So rather than just put the score on, say,
I guess, limit it to three digits and say, if you hit 1000, we'll just print that as 1K or 1.1K, that kind of thing.
We should do scientific notation, you know, 1E3.
Actually, that would be very in keeping with the site's ethos to do
chamlis_ binary at a fixed eight bits wide
scientific notation instead of k either would work honestly so could be a cute easter egg to do it at 1024 instead of a thousand kibit upvotes binary put that in your back pocket for april fools we just missed this year's but maybe next year
replace all numbers with binary on the site.
01:14:43If I didn't get dragged into the street for when I turned the site into PHP BB, that would do it.
So I think there's, so knowing that
mean because this layout is going to get real broken when upvote scores go above i mean it's going to get a little broken when they go to three digits but it's going to get real broken at four just because of how deep the indents will get even on desktop so i think you've identified a good concern but maybe the answer there is rather than using max content on this
we write a helper to format the scores and then we just impose a reasonable like three rem or something as the max width on this.
And there really is just this one special case.
So if this, if the top level comments are slightly different than
All child comments, like all the child comments, however nested deep, are going to be the same width because they're using the same CSS rule, correct?
chamlis_ that minmax will do a reasonable width most places with that minimum but allow it to grow and misalign with other subthreads in the extreme cases
I think that's acceptable, probably.
Yeah.
Let's put that on the issues list.
Yeah.
01:17:41Is there... So I know there's... Spell. Yes, we have comment score for user, which is one of these helpers that happens at the model level and probably shouldn't. Yeah.
01:18:16Because there isn't. Sometimes these helpers end up at the model level accidentally and sometimes it's because they also happen in an email and they don't so.
...47Will it have to live in application helper? Yes, because these don't only get rendered by the comments controller, right? Let's just say application helper.
01:19:27know i'll take it six lines at a time we're gonna slim down the god object right what is it yeah it's 700 lines whatever i'll still take one percent off we'll chip it away
01:20:21Let's see this.
...52Do we just want to... What would we do for 100k? That really wants to be...
01:21:22I mean, or the alternative is go straight to enotation.
...45I don't know. Do something smarter than me.
01:22:02And because we're concerned with how many digits, there are it's not going to be. could be prefixes as cute and Easter egg is that would be. It would make all numbers from 1021 to 1024. broken so.
...42There are probably, actually I know because I grep score for users.
...59I guess that's reasonable.
01:25:01All right. I feel like that's a pretty good description of what I want. All right. Big distraction there, but we're getting there. It's fun. I haven't thought about that. You know, I see the 1.2K or whatever on Reddit all the time. And I never thought about that as solving a layout issue. I just thought of it as, well, I mean, you know, once you pass a thousand, do you really care?
...48Alright, so. Yes, this is lovely Oh, this gets back to shameless if you're still here to my question of. On a previous stream I believe you were present for I tinkered with what if we moved the voters into this column over the folder. so that they would be one column instead of two, which would save us on horizontal space, which is useful for deeply nested replies and very useful on mobile at almost every depth. Does that, I mean, with the way you had that,
01:26:37chamlis_ I haven't done that here, I could definitely experiment with that though
The thing with the flex direction that we were just talking about a minute ago that would maintain the comment folders line.
OK. That one.
chamlis_ it'd dovetail nicely I think, yeah
I mean, it's going to be a bit of an uproar, but it would I think it would be a strong improvement for page layout and I say uproar because.
It changes high touch surfaces.
Yeah, I don't know if you keep a personal like idealist or a to do list, but if you want to put that one on and then the other one is the other part of it would be.
pushcx https://github.com/lobsters/lob…
Issue 642, where it's
so this one exists because of this is kind of a legacy code issue the you've seen the way these upvoters work by being css borders there's a lot more ways to draw shapes in css and
chamlis_ I think that might've been inadvertently fixed in the PR but not sure, they seem bigger in this PR than they do on my phone on prod
honestly everybody's got big unicode fonts it probably has an up triangle that we could put in there so then we could make the whole column around actually for the upvoter oh great
If this whole area of the up voter and the score was clickable and the white space to the left and right was clickable that would be a big improvement, and if they were above the folder and then like that's below and is semantically the.
Like I don't want to see this down vote get out of my face.
I think that is worth a change on.
such a high touch surface.
Yeah.
01:29:08I'm just kind of picturing it from where we did it. And I liked that that stream experiment enough that I was like, oh, let me put that in my back pocket. But how the hell am I going to maintain these lines? But if your grid PR is going to maintain these lines, and I see how you did it, that's that puzzle solved. Now I am even more eager to merge your pull request. All right, so then we have this. There's this. All right. How are you able to delete this?
01:30:04I didn't realize you were introducing this CSS class. It's just such a nice semantic name. I assumed it was our name.
...20chamlis_ comment_folder moves into _threads
So this looks like you are always showing people tree lines, which, yeah.
Honestly, I'm not sure that option is ever used.
...51No? Where is this? Oh, because it's misnamed. I thought there was a... setting to hide those lines or something. What am I thinking of?
01:31:19Where's? Oh, all my tabs have gotten out of order. There we go. All right, so this, and then let's get the server turned on comment folder moves into underscore threads I am sorry if you had to fight heinous inline partial over that one I thought there was a I guess I'm imagining things. I thought there was a setting for... I think I've just been thrown by years of looking at this show tree lines. Okay.
01:32:23Well, if you delete it there, you can delete it out of the locals, too. That's a very nice simplification from Something that clearly has gotten lodged in my head in the wrong way. Oh no, you moved it down here? Hmm.
01:33:01This is repeat.
...09Sure, sure. I appreciate that you have picked up on my style of it's okay to just slop the CSS around the mod stuff. Oh, we actually deleted stuff and moved that into CSS. Well, that's fine. You can be much tidier about that than me. Thank you. a pretty low bar when it comes to the mod css i do not give the cobbler's children any shoes and you know now that i say that i remember seeing it up in your css so thanks all right so then this was more of the page stuff yeah when you
01:34:04So, Chamlus, this style of having these pretty deeply nested selectors that are kind of repetitive, when you see that, you know you're looking at an old rule.
I have been slowly working them out of the site because I don't feel that they add much except some breakage and specificity hassles.
So just in general, you can feel real positive about this kind of edit.
chamlis_ right, thanks
Thanks for doing that.
I know there's some that are like three or four levels deep, especially.
You must have seen them.
Yeah.
The... JCS, the original author of all this CSS, is not
principally a web developer, and so I think he did it so that he could mentally keep track of the CSS against the page structure, is my guess.
He didn't have the experience maintaining complex CSS to know where that goes after a couple of years.
There's not any kind of dig on him.
He just does a lot more embedded and Mac development than CSS.
chamlis_ I learnt CSS from a random book my dad had which spent a great many pages on IE conditional comments, I'm certainly no expert at frontend design
So it's a quirky, pervasive style thing because I try not to touch things unless I'm improving them.
Well, you're doing great here.
How long ago did you learn CSS from the random book?
Oh, this word break is great.
chamlis_ maybe 2011 or 2012
I'm sure we have...
weird corner cases when someone like pastes in a 200 character word from some code 10 12 years ago yeah well you've been doing great on these prs all right what is a
Oh, labeled grid is going to be, so is this all for our forms then?
That's great.
Breakout, I see.
I see what you're building up here.
01:36:58chamlis_ yeah, that was the best name I could come up with
chamlis_ semantically it's like key-value pairs
yeah and i don't know if we want one grid class that's used on both profiles and forms it's tempting to make that the same thing because they all like they echo each other but if they end up being two different classes and it really feels likely because of stuff like this where i would expect this to be right on a form
But then on a user profile or the settings page, it really wants to be middle or left.
I don't know.
chamlis_ that's vertical-align, not horizontal-align
I guess what I'm saying is if you think that they are two different things, like a labeled grid and a form grid, break it out into two things.
I trust your judgment here.
You've been doing great.
okay yeah so like this style where please go ahead and drop these element names oh well i guess this is the one place we are using it semantically that we use hints that are in line with the span and on their own line with the div
But otherwise, I had just assumed that these were two different CSS classes and we were repeating the element name.
But that's the kind of thing that we can toss.
01:38:44You're taking the colon out of all the labels?
01:39:02I don't have a strong feeling on that, I guess.
Every time I see this, and this is a sign I've been hanging out with my nibblings, I keep thinking of this as like for real.
chamlis_ something that sparks joy for me, they don't show a colon on mobile where they're on different lines
It is their texting slang.
Ah, thank you.
Yes, it is vertical line, wasn't it?
Then I guess we've started reaching.
Yeah, it was vertical line.
Thank you.
They don't show a colon on mobile world.
Oh, clever.
I get it.
That's nice.
...51This is the tiniest style thing, but could you please put spaces around the greater thans in the child selector? I find it a lot easier to read. And then... Ah, you're fixing our indenting.
01:40:17You are fixing so much weird, slightly janky things.
dzwdz hi
This is all stuff that's hung out for literally a decade.
Thank you.
And then, you know, obviously for stuff that's younger than a decade is being repeated.
Oh, hey, DZ.
I don't have IRC up while I'm streaming.
dzwdz that's why i came lol
Did you see that I sent you a message a couple hours ago?
...52dzwdz but also just to check out what you're doing
Cool.
...58All right, so, yeah.
Yeah, it's nice to get rid of this class D thing.
pushcx https://github.com/lobsters/lob…
So what I am doing is working through Chamlus's PR that is doing a heroic amount of CSS improvement and modernization, and then even cleaning up
weird indenting in our markup and a lot of issues.
She is just killing it here.
So Chambliss, this was why I was talking about please make small PRs because it had the potential to sprawl and I really want to merge your work rather than risk it becoming a let's touch every single line of every single template because you are cleaning up the jank of ages.
and I deeply appreciate it, but I don't want you to get overwhelmed by touching every single line of our templates and every single line of our CSS, which is all a little bit the jank of ages at this point.
Yeah, so this is doing the subgrid.
01:42:20Am I not ignoring? Okay. Why are these changing? Oh, because you get to get rid of the box lines now. Huh? Why are you able to toss that? Because you can put the labels in the left. Oh, that's nice. This must have been a satisfying bit of code deletion. Yeah, we do that all over the place.
01:43:00And I see you're adding more semantic markup. That's very nice. I really appreciate the thoughtfulness you've put into this. I don't want you to get burned out going above and beyond on this. I hope you hear that it's being very appreciated. Ah, yeah, indent. One of those, like, just fixing the slot.
01:44:02dzwdz >slop
dzwdz maybe not the best word to use nowadays
yeah i mean and i guess you know we've reused the word slop to mean llm stuff but we just have a lot of stuff that is like just kind of make it work in our css where we shove things into place or we have to include extra divs and extra classes to just tweak one thing and chamlus is cleaning up so much of it i really appreciate
This level of detail, because I would I would take half of this.
and move more incrementally, but this is lovely.
Oh.
So channels one thing here is.
At one point.
dzwdz i'm swapping back and forth between the screenshots and it does look a lot more polished too :)
I don't know if it was rubo cop that did it or if it was the original style.
But a lot of the CSS templates have line wrapping in odd places.
I honestly don't care about column width in our templates very much at all.
If you want to make long lines, make long lines.
It's totally fine.
chamlis_ thanks!
God, all these little indentation typos that keep slipping in.
01:45:56chamlis_ and glad to hear that
chamlis_ I don't know if you got my PM on the site about it but I got that AWK indentation script working well enough to catch a couple of minor things
Oh, wow, you really are working through every template.
There's a lot of these where we haven't touched these templates for years.
No, I didn't see your message.
Thanks for highlighting it.
I will have to go back and read it.
01:46:47dzwdz wait have i ever sent my chronological sorting userscript anywhere
I don't think I know what that is easy.
Does it sort comments on stream a little while ago I hacked out some CSS to chronologically sort comments.
and
It really wanted to wait until comments were moved over to a grid, but there's a real chance that becomes a real feature on this site sometime in the next couple of months.
dzwdz i was annoyed when coming back to large stories to follow the new discussion
Honestly, sometime a week or two after Jamless's PR gets merged.
01:47:37Yeah, and I added those unread links, but as a longtime forum poster, I appreciate the idea of just shoving them all to the bottom. All right.
01:48:20dzwdz so i made a quick and dirty script that keeps the tree structure but sorts by activity instead of score
dzwdz actually i think i did send it to the irc channel
Okay.
dzwdz yeah, obviously :p
I don't always exhaustively read the IRC channel, so if it was while I was offline, it probably just scrolled by without me noticing.
...36dzwdz https://dzwdz.net/userscript/lo… here it is if you're curious
Sometimes people assume that I read every last word on the site and every comment and everything, and I don't.
It would be a...
I don't know.
three, four hour a day kind of thing to keep up with that much.
Yeah, thank you.
Let's take a look.
Where did I just get dragged over here?
Sorry.
Nice.
dzwdz comments are sorted by the age of the youngest descendant
Yeah, that's totally reasonable.
01:49:28Comments are sorted by the age of the youngest descendant.
Oh, you're not flattening, are you?
dzwdz yup
You're doing it inside the... Yeah, okay.
dzwdz could maybe be an official feature, idk
dzwdz or not
All right.
...57I think what I'm saying about that experiment
dzwdz Lobste.rs Enchancement Suite when
dzwdz or whatever that reddit addon was called
is i think yes it should be an official feature once the css grid lands and the way i did it was all css no javascript so it was kind of a wild addition on the checkbox hack that we use for things like comment collapsing
01:50:34dzwdz how did you even do it with pure css wtf
it's called reddit enhancement suite you remember did i have i gotta sneeze off stream yeah that was why i did it in pure css because it was a hilarious hack hold on
01:51:03pushcx https://push.cx/stream/2025-01-…\
Yeah, here we go.
pushcx https://push.cx/stream/2025-01-…
So I had been dealing with a lot of OSA, and then I wrote a very silly CSS kludge.
Oh, typo on that.
Come here, I'm not clicking that.
Did I copy it here into the... Oh, I didn't put it in the stream notes.
So you're going to have to dig through the video, unfortunately.
But did I...
Did I save it on a CSS or on a git branch?
I'm looking at my local branches to see if I have anything named like hack or kludge or evil.
I may not have saved this because it was such an experiment.
It doesn't look like I did.
Oh, don't load, don't load.
Come here.
So if I search this for hack.
Okay, so here we go.
So it looks like it is roughly
Three and a half hours into this stream.
Oh, that was a marathon.
01:52:43And... Oh, my scrolling is clever. But basically you can extend the checkbox hack to figure out which option in a select was picked. And so I added this little dropdown for sorting threaded by score flatly, by newest, by oldest. And then you can also, now with CSS, look at data attributes. Come here, stop helping me. And It's gonna pop up here somewhere. Yeah, here we are. So you can see I added this data depth, data timestamp, data score, and then come on somewhere in here. Oh, and then I got distracted into some other stuff.
01:54:07I know I saw it work on the stream. I was just trying to hope to land on it. There's going to be a CSS line that I wrote in here that goes and fetches the attribute off of the data and then puts it in. And it mostly worked. There was a thing with depth. I don't remember exactly what it was. Anyways, yes, pure CSS to reorder comments, to toggle them between flat and nested, and to sort them by the current confidence, just by score, or by... Or I should say by confidence, which is just called score, because confidence is a term only used in the code base, rather than out to users. And then... One that's just newest and oldest. And it's hilarious to be able to do that with pure CSS.
01:56:56I'm going to narrow the
01:58:27so chanlis that's kind of me writing up what we just discussed and i like tom sawyer have tried to put onto your to-do list but i i hope i'm not i'm not trying to pressure you i am trying to say i really appreciate your contributions and i want to make sure you always have one more lined up that you could do if you would like You are, of course, never obligated. But anyways, so let me leave a comment that...
01:59:39chamlis_ no worries, thanks for all the feedback
What's the adjective for CSS that breaks all the time every time you touch it?
Not fiddly, but brittle.
02:00:11dzwdz that's what the "cascading" stands for
That's what cascading stands for.
Yeah.
...45So yeah, I guess the other thing I should say.
02:02:34okay so that was big all right i didn't think we had two hours of pr review but man you did a a lot here chanlis thank you and then we also had that fun oh you know what i we have had so much fun code that i have not been maintaining my little dock so There was this let's let's pull this in so that my stream archive is useful, because if I don't do it now, I will never ever. So let's grab the closed one yes there's this there's this.
02:03:23All right, so if it is 1103 all right let me i'll do my little bumper, which is that this is the lobsters office our stream and if you have any questions about.
dzwdz i have a lecture in 25 so if you want to talk about the merged stories we could do that now i guess
The site or the code base, I would really like to hear them and answer them, and you can just drop those questions into chat anytime.
...52I used the wrong clipboard.
Yeah.
Did you end up leaving a comment on the issue?
dzwdz i think i did
If you want to talk about merged.
Which one of these did I get wrong?
So this is 1515.
I can't even read my own little font.
Let's go grab that because this.
Issues.
02:04:28All right, so how is there already a notification here that there is more activity?
Chandler, are you ripping through code even before I can finish looking at it?
dzwdz lol
Yes, you have added four commits in the last two minutes.
Okay.
Cool.
I just wanted to come in here and grab these two links.
02:05:17chamlis_ sorry, I was doing things as you went
You have absolutely nothing to apologize for.
That was me being pleasantly surprised, not like irked.
I am very, very happy to come back to a issue or a pull request and see that someone has contributed more.
chamlis_ it's a relatively short meta-diff, most of it was me faffing with git
Yeah, GitHub.
Single page apps.
Wow, that's a reproducible bug there.
So if I click on the More Actions menu, I bet this is related to window width.
Watch.
All right, so let's reload.
And in a wider window, yeah, it works.
So it's a width-dependent bug.
And people sometimes ask why I don't like single-page apps, and I'm deeply suspicious of...
heavy front ends, and then we get bugs like that.
So on IRC DZ, you and I talked a little about story merging and especially you had, you were writing a blog post to respond to a story and you didn't want to post it immediately because
you felt like it was gonna miss out on visibility by not being its own top level story, by being merged in.
dzwdz but also as an user i don't like how merged stories are hidden away from me
dzwdz i can't see them when i'm just skimming the front page
And that is a frequent concern for contributors, especially folks who are authors.
And you had asked me if, ah, you had asked me sort of implicitly whether it was fine
To just wait a week to post your comment and yeah.
It was really important to say that that's not any kind of gaming the system i'm not going to hassle anybody for it that's totally legit trying to think of the last merge story we had.
So it's only like 1% of stories get merged.
Depending on whether you're counting by parents or children.
So I'm scrolling and scrolling, looking for one.
But I've fairly recently added that icon at the top level to show how many stories were merged in.
If you're concerned as a user, does that help you?
dzwdz i'd still have to click through to those stories
dzwdz and remember what the number was last time
Let's just...
02:08:11dzwdz to tell if a new story got merged or not
Yes, you still have to click through to see it.
That's true.
And they're rare enough that that seemed okay.
...43dzwdz i mean yeah in practice they're indeed rare enough
If it was a...
Every day we had a merge that would maybe not be great UI.
I mean, they're rare enough I can't find one just clicking back on the front page.
dzwdz probably the atop story
And I don't remember off the top of my head when the last time I clicked Merge is.
02:09:13Hmm.
A top.
Yeah, that's probably it.
That one.
So that one was a pretty strong.
pushcx https://rachelbythebay.com/w/20…
Example of why story merging is valuable.
pushcx https://lobste.rs/s/jaxxly/you_…
And for anybody who doesn't remember this one from two weeks ago let's put it in the chat oh that's yeah I want the lobsters link.
But this original post by Rachel by the bay was.
very vague.
and implied strongly that there were serious CVEs, but didn't actually say it.
And then because it was kind of vague,
It wasn't clear whether it was overblown as this person is criticized or not.
And I was almost tempted, even though I only merged them within a week, I was really tempted to merge this one in because this made very little sense out of the context of this.
And this discussion was, especially with like,
The update that Rachel posted, what, like one day after her original?
Yeah.
02:11:09Keeping the discussion together, being able to merge these stories made this a better discussion than it otherwise would have been if on this second commit, or on this second story, we had to completely rehash everything from scratch. because Rachel was not super specific about things when...
...40I'm trying not to descend into the object level of, was this a good blog post?
Was this a good security practice?
I'm certainly not qualified to opine on responsible disclosure as a practice.
dzwdz under the github issue i suggested scoring merged stories separately
But it's this kind of thing where the community has to do a lot of sense-making and contextualizing and criticizing to get to a good discussion where story merging is especially valuable.
02:12:22dzwdz so here you could merge in this new story
So one of my
I didn't see your comment.
...40Oh, let me just finish a thought before I really read.
dzwdz without burying it with the older stories that fell off the front page ages ago
The one thing is that when a story is merged, it gets bumped on slash active, which I put right next to the logo for this reason in part.
Yeah, so when a story gets merged,
It will reappear just first thing at the top of slash active.
So.
All the links.
02:13:21Oh, huh. That would be a really interesting UI. That might be. Clicking on the wrong thing again. That might be a real good fix.
...44dzwdz hm, what if there was something like the "unread" marker for merged stories too
It would be...
If we displayed something more like this.
Hmm.
dzwdz so if a new story gets merged i could tell that the number went up
I think the unread marker for merge stories would be great.
Yeah.
If you didn't include that in your comment, maybe edit it in?
02:14:15Merging stories penalizes newer submissions. I assume the upvote count is shared between the merged stories. The
...43Yeah, this is a...
dzwdz this might not be the clearest comment, sorry
They'll get scored based on the submission time of the first story, but it does... No, it's fine.
You don't have to write like a master's dissertation on this.
You're hitting... You've actually written a very comprehensive comment that is...
you're hitting all of the high points of the discussion we've had for like 14 years about whether story merging is good or not, whether it is worth the little bit of confusion and potentially lowered visibility for new stories.
So you have absolutely nothing to apologize for with your comment, because you're really rounding out the discussion very well.
And things like displaying links to all the merge stories is a novel improvement
02:15:47dzwdz that one i did actually suggest before, and you did not like it
dzwdz lol
Yeah, we could change the way they are merged so that they, when stories are merged, they use the time of the newest submission.
I think that is totally reasonable.
dzwdz no, it was re: my previous message
And I don't know what I said that's funny, unless you're hearing workmen pouring garbage down the stairs behind me, because it sounds like someone is putting on an unauthorized production of Stomp.
Ah, okay.
What if merge stories maintained separate scores?
So it's funny.
In the database, they actually do.
And if you constructed the URL, you could even vote on them.
And I am leaning towards re-exposing the separate scores with putting the list detail header into the threads.
02:16:57And I got to this on a previous stream, but it was such a strong change that I didn't feel super confident and I wanted to kind of let it marinate in the back of my head. So it's really interesting that you've come back to a very similar suggestion. Users could upvote each separately. Stories would be ordered as usual.
02:17:35Yeah. Yeah.
02:18:28dzwdz so the two important points are that this would allow "re-upvoting" merged stories, and if you continued to only show one link, you'd show the "hottest" one
dzwdz instead of the oldest one
This doesn't even roll.
02:19:03dzwdz and to reply to what you're writing right now, sorting based on the most recent timestamp doesn't really sound workable?
You know so i'm doing the thing where I have to repeat myself because I don't get the impression that you know people are watching the stream archives for everything I say about Meta so.
02:20:11When you say sorting based on the most recent timestamp, you mean on slash newest?
dzwdz scoring*
Too important, re-uploading merge stories.
You'd show the hottest one.
Yeah, the idea of showing the hottest one
...39It's not that they're not workable, but part of this is... GitHub, what are you doing?
Why does this...
So much jank every time I scroll past that screenshot.
So...
I think... Yeah, they're all tag story merging.
We've been talking about this a bunch over the last few streams.
And what I eventually decided on for the workflow that became this issue was, let me do all of the UI stuff to inform what should the database be.
dzwdz you've also had issues when scrolling the stream archive, maybe it's something on your end?
Because the way the database works right now is there's a single story model.
dzwdz github works fine for me
And that has a headline and a link.
So this is two rows in the story database.
And this one has a column that says, that's totally possible.
know it probably is me actually the i did something else on a browser and i saw a real stuttery scrolling so maybe i'm just getting jumpy about github's ui because it's been flaky the last few months so so the way this is implemented in the database is that this second story has a column called
merge story id that points at this one and this means so much pain that a row in the stories table is either a top level story or a sub-level story and those have to be treated different by basically every query that deals with stories that what we really would like is either
These stay in the stories table and there is a new top level object that's always present that is like, what should the headline and link be?
And then all the stories linked to that.
So even in the case of a non-merge story, we would have that.
Or we go the other direction.
I guess really it's not the other direction.
That's going to be what the database structure is.
The question is whether this is called a story or that new top level thing is called a story.
wanted to do the ui stuff to figure out this is literally just you know the hardest thing in computer science is naming things struggling with naming things right so that's this refactor the database into headline and stories because my best guess was well what if i call that new top level thing a headline and i think it has to go the other direction because things like
hiding stories and flagging stories probably wants to stay on the top level thing.
So that wants to stay named stories.
dzwdz i think my suggestion kinda fixes that? because the merged stories would be more independent
If you would solve that, it would solve a bunch of this hassle.
But as soon as that database for factor is done, yes, your suggestions become a lot more straightforward to implement once
database is refactored but all of your suggestions i'm not trying to brush them off i think they are very thoughtful this one displaying all the merge stories
You know, it's like the comment folders I just suggested where it's a big change to core UI.
That might be worth it.
But putting the behind a toggle.
So like, if clicking, we could move this icon over and clicking this could expand and show multiple inline.
dzwdz you wouldn't really need to single out a single story as the "main" one
That might be really nice.
dzwdz in the database, sure, but not in the actual user-visible part
And it's super painful with the way...
02:25:09The database does need to single out one as the main story. Yeah.
...28What if Merge Stories maintained separate scores?
...46dzwdz yup, i'm referring to that paragraph
dzwdz with separate stores and ordering
Yeah.
02:26:06Hmm.
02:27:10dzwdz also i always get confused by the number next to the merge icon
dzwdz feels like it should be one less
Yeah.
Yeah.
Whether that is the number of links merged in or the total number of links is something I waffled on and it felt a little better to have it be the total number.
But it's not something I had a strong opinion on because there's, it really is a like, how are you modeling it in your head?
And you can think of it either way.
02:28:20dzwdz "+1" is ambiguous
But it's not a plus.
...26I'm going to grab this.
...32dzwdz as in, one more story
And...
...52chamlis_ do you mean unambiguous?
dzwdz ...yes
dzwdz thanks
Where do I...
chamlis_ :)
Right, this one thing is down at the bottom.
Ah.
Thanks, Shamless.
02:29:24yeah this is a bunch of really clear suggestions and you've done a good job of stating summarizing what our problems are and kicking around some new ideas you know i think the biggest most frequent complaint about story merging has been from submitters usually authors who feel that having their story merged
dzwdz (also my lecture started just now, so i'll bounce after you finish this sentence)
is like taking away the visibility it deserves.
chamlis_ hope it goes well
Maybe the simplest, most powerful fix would be to do this, have slash newest always list the story.
Because then they would still see it and it would get that visibility.
Slash newest is very popular.
Actually, let's say slash newest and slash recent.
02:30:28Yeah, I'm not sure that we could do it before the database refactoring, but that feels like it would be a pretty powerful improvement to the biggest perceived drawback of story merging.
Cool.
Well, and speaking of bouncing, I have a lunch thing that I ought to get to, so I got to bounce too.
But thanks for hanging out, folks.
Yeah.
Oh, I'm getting late.
I got to commute.
chamlis_ thanks!
so thanks everybody for hanging out on the stream especially thank you to Deezy and channelist for all these great improvements let's let's sleep on it and then i'll move some of this stuff up into my to-do list for story merging yeah if we're gonna do i was thinking when i got to
writing up a page about story merging that i was going to post another meta thread but maybe i'll move that one up too and we can bring people here to kick around ideas because if we have already immediately come up with a couple of clear improvements to story merging then more discussion will probably mean more improvements so cool thanks for hanging out everybody take care
Oh, next scheduled stream is Monday afternoon, and I expect to make that.
Yes.