slashes will continue to decrease until morale improves

Streamed

Fixed a critical WebKit bug in Lobsters that was breaking page rendering in Safari. Worked with a surprise visitor from the Blink team to diagnose exponential layout complexity with nested CSS subgrids. Implemented a workaround by adding display:block elements to interrupt grid layout calculations. Merged PR #1537 to fix comment tree lines that disappeared in the process. Attempted to detect ChatGPT-generated content by searching for invisible Unicode watermarks in our database but died on the rocky shoals of character encoding.

scratch


topics
  stats graph job PR https://github.com/lobsters/lobsters/pull/1527
  learning rails
    https://guides.rubyonrails.org/
    https://pragprog.com/titles/rails8/agile-web-development-with-rails-8/
    book club! https://rubycentral.org/news/the-ruby-central-readme-feb-2025-newsletter/#join-us-on-slack
  upvoter hard to click on mobile https://github.com/lobsters/lobsters/issues/1535
  political thread https://lobste.rs/s/fkw9va/tools_i_love_are_made_by_awful_people
  alignment https://github.com/lobsters/lobsters/issues/1543
  comment anchors https://developer.mozilla.org/en-US/docs/Web/CSS/display#display_contents
  comment previewing broken? - nope, but layout bug, screenshot -> 1534
  terminal config - operator sans mono LIGHT italic; added alacritty config to my colorscheme gist

merging ui https://github.com/lobsters/lobsters/issues/1456
  (stories -> headline, stories) or (stories -> stories, posts)
    incoming FKs: comment, hidden_stories, links, moderations, saved_stories, stories.merged_story_id, suggestions, tags
    hidden/saved stories go to top level, all others stay at lower
    are we breaking ui around saving and hiding stories? (if top thing is headline)
    or are we breaking community familiartiy by calling stories 'posts'
  typeid https://github.com/jetify-com/typeid
  https://bookshop.org/p/books/roget-s-international-thesaurus-8th-edition-barbara-ann-kipfer/17364547?ean=9780062843739&next=t

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:03It is a website where we discuss computing. And occasionally, I yell that this is not for comments. That's fine. So let's take a look. pushcx If you have questions about the Lobsters site or codebase, drop them in chat anytime!
So if you have questions about the site or codebase about the lobsters,

...37There we go. I like to leave that message for folks to see. All right. And then when folks don't have a bunch of questions, which are welcome anytime here, I work on the code base. And there is some work to do because I merged a pull request to improve the page layouts. And it is great, except that WebKit has a terrible bug that is just killing performance. Takes forever for the pages to render. And I'm peeking at this other one.

03:27Why would that be in params? Oh, right, because it has to maintain. OK.

...39I mean, at this point, Utarsh's work is probably pretty good. I'll have to play with that before I can merge it, but promising. So the CSS grid was reduce the number of grids that are larger than the viewport. OK. So I've gotten a lot of reports of this. I deployed on, I think, Friday. and on saturday a couple people in the chat room started talking about it and i got an email and somebody posted a story to the site instead of just posting an issue so i moved that over and fingers crossed we get this all sorted out real quick here The really valuable part of this is that Chamlus found the WebKit bug. So I wanted to review that before I got too deep into... We have a nested subgrid and the page won't load. Yeah, I saw this on my iPad. I didn't know what I was seeing because it was like the page load spinner finished like it was loaded, but then... the page was just blank and white. And I had a couple other pages that were slow, but I thought just, you know, the phone is busy doing something else or just being a little bit janky. I didn't connect it to the new layout code because I can't even tell you the last time I saw a performance issue with CSS. All right. And I really think of them as only happening when things are forcing lots of reflows. So when things change size or are linked to the scroll and so it was like yeah we just render the page once and we're done and no all right so i have an ipad off screen here i'm going to try and pull that up all right let's get come here let's get the stream notes up

06:10And the other one is this last read line. So this one is, here's the bug tracking it. And here's the WebKit bug. And then a hopefully partial fix, we will see, dot, dot, dot. All right, so we got that. Does anybody? All right, so we have some examples.

07:03Well, that's sure what Safari looked like for me.

...18All right, let's. Hmm.

...47I'm getting distracted by a text off screen. All right.

08:16I wonder if this is just.

...30I don't think I'm going to use this test case just yet. What do we have here? So Shameless found the bug. fanf here also reported the bug okay ah and says that this page oh boy sorry i'm having a hard time getting into gear today i've been browsing stuff that you all can't see so this is normal amount of snow slowness for archive.org so i was looking at fans comment here that he has reported the bug I was wondering if either of them are going to be available on localhost so I can edit. This is

09:45OK, so I do have this locally. Frici Mondays are rough... Greetings πŸ‘‹
It snaps up here. And I'm going to, on my iPad, see if I can load that real quick.

10:13Frici Starting well I see, with an engine bug to boot!
gtfrvz @Frici maybe get some lasagna
So I can load the home page, and it's SV7LSRV.

...32Ah, yeah. Well, and the worst part is it's a browser engine that doesn't have dev tools, really. So it's not like the iPad has developer tools. Okay. So on my iPad, when I scroll down after the first screen or so, it's just blank. So, okay. So I have a clear, oh, and I scroll back to the top and like the whole thing disappeared for a couple of seconds for a repaint. So, all right. So I have a local, very clear reproduction. All right. So this don't need this. Any other comments since I looked at this? All right. chamlis_ evening, apologies for all this hassle...
And then, yeah, I noted to Fanf that he might want to mention that hopefully this will be fixed. So in his bug, he linked to our page that was not loading in WebKit. And I was like, well, I mean, hopefully I'm going to invalidate your bug report. So let's look at, oh, hey, Chambliss. None of this is your fault. This is a WebKit bug. I appreciate that you have helped diagnose it and I was just going to pull up your pull request to review it here. chamlis_ that PR isn't a real fix, just makes some borderline unusable pages more usable
Okay, so you've added a useful comment or deleted one.

12:05chamlis_ the mo;re complex pages still hang
Okay.

...10and then let's wait so this just removes a layer of nesting okay yeah so it really seems like there's some kind of n squared in webkit's layout engine I think if we touch comments subtree, that might be bad. OK, it's just a styling issue. I wondered if I was going to see JavaScript in here. All right.

13:20All right. I think probably what's happening is if you delete comment subtree, you're deleting a layer of subgrid. And it sounds like, I wonder if we see anything here warning about it. Yeah, I was wondering if Safari was going to have a like asterisk on it of, well, it works, but doesn't no known issues.

14:26chamlis_ you might've seen in the issue, but it happens in epiphany on linux too, but not sure if that has better devtools
Oh, that is a chore I have to do later. Helping. So where's my paper?

15:13I'm wondering if this is just specifically a subgrid issue. I can't think, I keep getting texts.

17:01So it really does, if the stories can get laid out with subgrid and they load fine, it really is just the nesting that it cares about or that exercises this bug. So I wonder if I just took that out.

...32And I reload the page on this browser. Let's see what happens. Right, it loaded. No, that's still messed up. I get the first page, but I can't get more.

18:06So if it was the nesting, I would expect that if I just deleted the use of subgrid from the elements. This is just the inside. But inside is the full page thing. Let's reload that. Just thinking about it. Yeah, page isn't repainting. This is the OL for comments. That's a big one on the page. And OL comments li. Okay, so that's nested. chamlis_ I've also seen that if it hangs once you have to close and reopen the tab for it to start processing new CSS
All right. I know this is going to break the hell out of the page layout. I just want to see it. I want to see that it renders without the bug. because I don't have a lot of confidence that I understand the bug. Okay, so when I delete that, I think it's this one here on OL comments LI. The page loaded in a reasonable amount of time and didn't, yep, and then I put it back and the page breaks when I scroll down. Okay, so it's this one that's a big culprit. All right, so let's, take a look at this and just what if I only get rid of this one no bug okay so the other one was comment details the comments subtree yeah that's recursive okay so i'm gonna reload and the page is still broken okay so what which one of these did it Oil comments, comment subtree. What's this one? It's repeated.

20:45The header nav, no way, right? ghost_user_1984 hey random question, does this problem replicate itself in the tech preview?
So if it's gonna be inside, maybe it's... One possible part of this is, It's not so much about recursive subgrids, although that doesn't make it better. ghost_user_1984 because it might be https://github.com/WebKit/WebKi…
It's when the subgrid is bigger than the viewport.

21:16Ghost user, what is the tech preview? Is there like a beta of Safari somewhere? OK. All right, the page loaded fine when I got rid of that third one. All right.

...38ghost_user_1984 yeah it’s a beta of WebKit + safari
I don't have any access to that to say anything about it. It might be this. What do we have?

...57Value of overflow on a block box is neither visible nor clip, nor combination thereof. Establishes an independent formatting context. I see a lot of our keywords here. Oh, hi, BFGeek. ghost_user_1984 check the bug link
How do I... Twitch thinks that you are a ban evader.

22:38ghost_user_1984 it looks like a lot of our CSS
All right, BFGeek, if you could send your message again, I don't think anybody can see it besides me.

...52bfgeek1 you've hit a exponential layout case - https://developer.chrome.com/do… if you interrupt the grid layout with a display:block somewhere that should cut the layout time.
ghost_user_1984 https://bugs.webkit.org/show_bu…
You're saying this link? Here we go.

23:04Block container, flex containers.

...27Okay, so BFGeek, I'm going through this because our pages don't load, period. But if your thing is also, they will never be very performant.

24:46bfgeek1 basically the deep nesting is what is causing the perf explosion, exponential complexity doesn't care how fast your cpu is :)
All right, so BFGeeks link says, even if it works, it may never be performant. And we're hitting something that works well enough in the Chrome and the Firefox layout engines, but not in WebKit.

25:16And this bug. bfgeek1 webkit doesn't have as advanced caching as Chrome/Firefox
I see a lot of our keywords here, but this doesn't quite. Yeah.

...45chamlis_ we interrupt with a new grid pretty frequently, is that enough to allow webkit to consider them separately?
I wonder if we can get rid of the... So here's what it looks like with those subgrids deleted. And it's not terribly wrong. So I wonder if from this, I can persuade it to get back into a reasonably pleasant state. And then we have the page laid out with grid.

26:52bfgeek1 grid inside grid can still be problematic, but if you can place a single `display:block` somewhere it interrupt it that should help.
Thank you.

27:27Thank you.

28:29Thank you.

30:00So ChemLess, you reached for subgrid on things like stories because the things that are getting laid out are not the li elements, An individual story, but their children, the voters, the details. Okay. And it's that fact that they're not directly nested that forces it into sub grid. That makes sense.

31:11chamlis_ I've tested putting a div in there and that's definitely helped, thanks bfgeek1
Now why is this in the wrong place?

...55My insight and footer not lined up.

32:07And they have an insider lined up. Oh, it's because there's some padding around the logo. Logo. It's going to be worse, right? Yeah.

33:21bfgeek1 An alternative is to change all the `1fr` to `minmax(0, 1fr)`
bfgeek1 (in grid-template-columns)
BFGeek, what's the value of that? Grid template columns? Hmm.

34:09So the overall width of these guys is a little wrong, but we're into the right neighborhood now.

...29Where's this enormous white space coming from? Everybody loves the find the invisible padding game in CSS, right? Okay. So you consider it, it's not considered margin. It's not considered padding on the OL.

35:40chamlis_ I've force-pushed my PR with bfgeek1's suggestion, it seems to have fixed things for me but needs cleanup (+credit if bfgeek1 would like it?)
Screen. Screen. Is this.

36:24BFGeek, do you have a GitHub username you'd like credited? I'm happy to push out a temporary fix and then just remove more use of subgrid in another PR.

...56hmm this our selectors are so complicated I'm wondering if having a div is going to break JavaScript.

37:40Yeah, so here's a place in JavaScript that's going to break.

...51That one's fine. bfgeek1 if you change that `grid-template-columns` to `[begin] max-content [main] minmax(0, 1fr) [end] 0.5rem` that might be better.
That's a second one breaking? Yeah. No, that's the one place. bfgeek1 dw about credit.
All right. Channels, if you could look at BFGeek, what line are you thinking of?

38:21bfgeek1 52
bfgeek1 and 448
Because I've made 52.

...33So 52 already says that. bfgeek1 1fr -> minmax(0, 1fr)
And then 448 is, that's what I was writing. Oh, you've got a min-max in there, I see. All right, let me take a look.

...58What's the benefit of that? Yeah, so it's still doing the indent thing that I did. I've got some of that subgrid deleted. It's closer. There's some kind of indent happening twice here, and I'm not getting it.

39:40Spending all day having a difficult couple of conversations has kind of wiped me out for puzzling out fiddly code.

40:03bfgeek1 1fr expands to `minmax(auto, 1fr)`, `auto` likely is part of your performance problem, if you revert other changes it might be ok
Why is this not in inside?

...15All right, let me take a look at that.

...55Hmm. Is my screen funny, or is that too wide? OK, that's a small change. And then what do we have here? Yeah, so there's some minor spacing stuff here, but it's in the neighborhood of correct.

41:21bfgeek1 what is the performance like on webkit now?
And then let me see how this loads on the iPad. Yeah, I'm looking at it off stream it. No, I'm sorry to say it loaded the two years of rust article in a reasonable amount of time. But then as soon as I scroll down a screen and a half, it's just white all the way to the bottom of the page. And it seems to think the page is, Oh no, that's something else. so yeah, it's still having rendering issues with this exact bit of code. All right.

42:07So we'll go back to this. And this one. No, this is still broken. I should have stashed my change. I don't know what I was thinking. All right, so I did at least diff it. So line 52 is back. This one is back. And then the other one is 401. OK, that's commented out again. Oh, I didn't scroll down and see all of it.

43:30I think that one made a difference. There were a couple of these that didn't because they were well contained. That one doesn't.

...50Is it the header nav? No way, right? Because that's not repeated. Oh, yeah, okay. It is this header nav. As soon as I deleted that one. All right. So... Just making my own. You know, let's... Yeah. All right.

44:37What did I just do? I reloaded the iOS browser and no, it's back to failing. What I did was commit. So that I could have like one checkpoint that I could revert to where the problem was gone. Because it feels to me like A useful strategy here would be to pull out enough of the subgrid declarations to stop having the performance issue and then fix whatever's going on on the page. But now I can't get back to a place where it doesn't happen.

45:41OK, wait, here we go. This loaded OK. If I reload, is it still good?

...52No. OK, so I'm going to be driven insane by this bug because it only wants to happen on the second page load, or there's some kind of state in Safari that I don't understand.

46:25chamlis_ the <div> hack has completely fixed things for me I think, trying out as many pages as I can...
no bueno not having a clear test case is very frustrating yeah all right well with that

...57Chambliss, did you get what I had said about the thing to update in JavaScript? Yes, you did. chamlis_ I fixed another CSS selector and the JS, replies work for me
OK. All right, so I'm going to call this a workaround and push it, I think. OK. Alright, so is this pull request up to date with what you are looking at and saying works for you locally? chamlis_ yes
Okay, then I am going to merge this just to fix the bleeding. the least and then.

49:08chamlis_ thanks again bfgeek1
gtfrvz nottin' but a G thangs
We'll get Ansible running, and then I'll check it out on my device in prod in a minute.

...51Okay, give me one second. So my streaming has been distracted by the fact the microphone is being difficult. I have to pause. streaming for two seconds, so hang on on the page and I will be right back.

Recording



11All right, now OBS is behaving.

...21pushcx sorry, wb
Sorry to disconnect folks.

...35All right. Oh boy.

...43All right, so if that's going live, let's go watch that go live. It's workers seven, nine, all right. That's all the workers should be rebooted, right? Yes. Okay. So now if I load, Okay, I'm going to load the Rust story on this iPad in production. And that loaded in a totally normal and reasonable amount of time. Excellent, channel is killing it. That is a good workaround. chamlis_ nah, all bfgeek1
Yes, and I can scroll down the page and things work. All right, let me... Go tell the IRC channel because a lot of people are concerned there.

02:12chamlis_ I wonder why webkit doesn't break at a grid in the same way, if it's not a subgrid I can't immediately think of anything that would couple the two
Yeah, I can't possibly guess. The grids I've used have been pretty small and limited. BFGeek, I don't recognize your username. Are you on the site? Would you like an invite?

...49No, not under that name. Well, if you would like to identify yourself, I'm happy to send you a invite. bfgeek1 I'm a Blink engineer who works on layout - just randomly walked past and saw this.
I'm also curious how you happened to find that bug. Yeah, see, these guys aren't, oh wait, how old is this? I didn't pull this down. gtfrvz KEKW
You're a Blink engineer. bfgeek1 github username bfgeek
Oh, seriously? bfgeek1 bluesky
Like you were surfing around Twitch or surfing around lobsters and you saw it.

03:32Oh, blue sky. Even better. Well, I really appreciate that you dropped in to get us into a working state. Do I have local changes? Okay, let me have that one for the Ruby version, but my logo is in a weird ass place. If I look at prod.

04:05Yeah, okay, so this is something about my local setup is funky. I wonder if it's in the tab, I've been like unchecking things. Hold on, let's make new tabs. No, that's just wrong. chamlis_ you made the WIP commit, right?
Is it broken in Firefox?

...44chamlis_ did you merge into that?
I thought so. Am I on a branch? Oh, it's my whip. That moved my local master, so okay, all right.

05:07All right, so we'll leave that behind. All right, that's a little more reasonable. A little less hair-raising. All right.

...35Okay. Well, anyways, thank you, BFGeek. You had a really very useful bit of info there. bfgeek1 np! good luck!
So now to take it down to what I was thinking for a better long-term fix than like hacking the HTML so that it maybe hits this cache. And BFGeek, my email is peter at push.cx. If you drop me a line, I'll send you an invite to the site if you're not already on it somewhere. We have invites because it's an enormously effective spam mitigation strategy. It is not that we are the cool kids club and only cool kids are allowed. I myself have never been cool. And so, gtfrvz the all elusive invite
We just have to try and keep spam at a dull roar. So if I look at this. Yeah, we are not exactly the hot new Silicon Valley startup.

07:05gtfrvz i just got mine
GT, I thought I invited you, like, weeks or months ago? You're a channel VIP, no? No, you've got the little Twitch crown for Twitch Premium. That's what the logo is. gtfrvz no, my project got posted
gtfrvz so i mightve needed to comment
Okay. Ah.

08:02So ChemList, I was thinking for a long-term fix that if this grid declaration was moved from The body to there is one grid and it has the same spacing info here and this becomes just a fixed width on the left. For this column and then we have the exact same thing for oil stories. And the top level we'd have this and we wouldn't have a sub grid because it really seems to be when those are nested or extended beyond pages. These would just, and then from there, they would all just have a grid that defines the left column. And then it's, I don't know, maybe,

09:56chamlis_ I definitely think that'd be a good idea, it seems subgrids are problematic (which makes sense, I imagine they introduce a lot of constraints)
All right.

10:22chamlis_ I think you'd have to juggle a fair bit of comment markup around to do that, but I can't quite picture it all in my head
Would we? Hmm. Yeah.

...51chamlis_ the gutter would need to be on the subtree, rather than the comment, I think
And I guess i'm i'm saying that because. yeah I agree. The thing about the gutter is that it's a fixed with. and I don't think it's deliberate that it's a little wider on the top level comment than the next one, you know, then the rest. But. As long as it's a fixed with I don't think we need a sub grid, because we can just. You know they're sort of coupled by having the same value.

11:34yeah. There was a issue I wanted to tags I was thinking about it. yeah that's fine I tagged okay. chamlis_ specifying fixed widths rather than constraints offends my academic sensibilities, but I for sure see the pragmatism there
What does this say now?

12:04Yeah, well, the Lobster's codebase is full of these kind of pragmatic, you shouldn't do it this way, but it works this way things.

13:55When we... Cham, I know you've just been dealing with the CSS grid spec, so I'm wondering... I know that we... You did it here. You named the grid lines, begin, main, end. I think there was one padding as well. That's... chamlis_ the padding was mobile only
weird did we intentionally lose that one did we just reintroduce that little bug looks okay oh no yeah we reintroduced the bug wait for the scroll bar to arc no i've got some glare all right so we can name those grid lines we name the grid sections because it's a little odd to me that we haven't named like gutter and main and i think gutter is a really good name having been a big comics nerd someone has hosted a blog on a wii this is like the inverse of does it run doom how funny

15:44chamlis_ it looks like "grid template areas" is the name for doing that, which I didn't know about
Hmm. Read template areas.

16:09Oh, I've done this. OK.

...20yeah but you name them okay i think it probably don't need to do it i was just trying to remember like can't we name both all right so

17:15chamlis_ the lines being kinda named after areas isn't ideal though, I agree
Oh, it's fine. As long as they have, I mean, honestly, like begin and et cetera, it's just fine. Where do you get extra? Ah, you have margin on you. Yeah. Yeah.

...55You know, I'm thinking about your academic sensibilities and I think CSS variables allow us to avoid repeating ourselves. Because it's not so much that, you know, so much of the layout you just replaced was coupled together by things that just happen to have the same values. And so it was very brittle because we'd edit one and then the other one wouldn't line up anymore. For user CSS variable, probably in pretty good shape.

18:51And then, so we'd say like Oh, we have left middle right and it's tempting to say that that's the same left middle right as on mobile, but these actually work a little different where this one overlaps these things, because when you're logged in this list can be long. Can I yeah I can't horizontally scroll it because there isn't an extra item. Until I do this. which is not quite like things don't disappear under but it's similar.

19:31Okay.

...46so chamlus where's your head at with more thoroughfix is it something you would want to hack out with me on stream here because i know it's your late evening and getting later is it something you'd like to do on your own is it something you'd like me to handle and i guess i'm asking because i know you feel responsible but like you certainly don't have to feel guilty at the least and you don't have to keep editing everybody's a volunteer so i would like to understand chamlis_ if you'd like to give it a go, don't let me stop you. I was probably gonna take a week or so off of layout now the fires are put out
what you'd like to do next so that i can either keep going with this here on stream or i can leave it for you okay hmm all right let's see if we do that if you take a week

21:08Let me look at the other stuff that was open.

23:11All right, so there's that one. All right, so with that,

...58I think I'm going to try and get this last red line fix merged, and then I'm going to call the stream short, because I feel like I'm stumbling through things. So Chambliss, I think I would like to wait a week and get your pass at it, if it's something you'd like to do. And if you change your mind on that, a heads up would be really appreciated. And I can take it back over. This. Oh, this is the poll, not the, okay. And what else do we have?

25:14chamlis_ just so I can mull it over in the meantime, that's dropping subgrid altogether?
Yeah, I think it is. So it's hard to answer because I don't feel 100% confidence. I totally understand this bug. I mostly understand the workaround. But I can actually see two different axes it could have solved on. Like, the problem could be that these things are nested and it's doing some kind of comparison against parent elements or like the parent size depends on the child size the child size depends on the parent size and then it's falling off the end of the world or at least having some kind of exponential blow up right and then the second idea is that it's just too much to solve and that inserting those divs sort of lets it checkpoint its work with a cache as opposed to having to do the whole thing at once. So I don't know whether this is like, I'm not sure I'm even making sense with those two approaches. So I think it's dropping subgrid, yes. But I don't have a lot of confidence in that answer because I don't confidently understand the bug.

26:42or I guess I should call it the WebKit limitation.

28:04chamlis_ I guess we don't know whether this is a stupid use of subgrid or not; the only evidence we have is that most engines can deal with it fine
Wonder where I said update the link as opposed to stored in their session. Because people who aren't logged in don't have a session. They still get the lobster trap cookie.

...40Thank you.

29:29yeah this this pull request looks really nice it's clear what it's expressing newest

30:06NoGoodNick_ hello
it's back to the reload to beat that okay no good nick welcome all right so this this is

...47All right, so all right.

31:21I have the feeling that I'm missing something in this PR.

...51So we could try to grab when they last read a story. Why is it last read newest story?

32:57Did this really just not need any code, just a data column? Yeah. Okay. That's my name.

33:22All right. So this is this stuff.

34:25Hi, Madi, welcome.

...33julianwgs Hi! :)
All right. So if they don't see the last red timestamp. Oh, hey, Julian. So if they don't see the last red timestamp. that's fine because we already touched it when they loaded the first page then if we do see it we display it in line because as soon as you load it yeah yeah this looks totally correct just had to schlep back and forth for me to get how it's going Yeah, Madi, it is going raw. Nope, this is not a video gaming stream. I know I'm on Twitch, but it's a coding stream. I work on this website, Lobsters. It looks like this. It's not really gaming related.

35:40So yeah, I think this is great.

...58gtfrvz there are gamedev lobsters forks
gtfrvz afair
pushcx https://gamedev.city/
Oh yeah, Madi, if you're still here, because, you know, if they didn't immediately close the tab when I said no, go to gamedev.city. I'll throw the link in the chat. This is a fork of the Lobster's codebase that is about game development. It is run by, what's his name, Saint11? They are the he's the guy who did the pixel art for Celeste and a couple of other things and the upcoming game. Oh, he just had a trailer. What was it? Shoot. Can't remember the name of the new game. Yeah. Never wait. That's the new game.

36:53It's interesting. It sort of looks like Farmville. Or not Farmville. What's the other farming simulator one where everybody loves it? Stardew Valley. It's like Stardew Valley, but very purple and creepy. Has a couple of action RPG elements. I like his art style. So anyways, Marty, go to Game Dev City. They'll help you out. All right.

37:28Hey, Marty, what's two plus three?

...48Yeah, I didn't think they're actually reading.

...55Speaking of there's been a whole bunch of talk about self promo on lobsters the last couple of weeks. And,

38:19Oh, that's interesting. When I time someone out, it deletes their messages. I just thought it was going to stop him from continuing to advertise.

...33I wonder if they're going to show up in my little script that downloads the chat from my archive page. Hmm.

...49All right. Well, if that's merged, then that's all the time. Let's make sure this is in the scratch.

39:06Yeah, OK.

...30Frici yeah timeout and ban clear the entire chat history. you can delete a single line too but there is no "stop this person from posting but don't cleanup their chatting"
Yeah, I'm honestly thinking of winding down the stream because I feel like I'm half asleep. Are there anything else going on? Hmm. Well, thanks for telling me, Fritchie. I did not know that. And it's a shame that, I don't know, maybe that was a bot, but it sounded like he was half paying attention but not actually reading or trying to interact and so he missed out on a very nice resource instead of just yeah instead of learning anything he just got the yeet hmm

41:17This looks promising.

...26julianwgs Did you remove the vertical line next to comments to mark the depth from the Lobsters page? I just wanted to point out that I like them, but now I can no longer see them and I am confused :D
It's called First Month. They've moved it off to a class.

...37Julian, they're not intentionally removed. Let's look at a story that has some comments on it. No, those went missing with the bug fix we just did. Thank you for catching that. I'll put it in the issue.

42:00Oh, I get why it did it too. Yeah.

...12julianwgs Oh :D This was an unintentional catch
Julian, do you have a GitHub username? julianwgs yes, julianwgs
Frici oh good catch julian, I liked that a lot too LUL
that you would like, or I can leave it blank. Yeah, I should catch it.

...51Thanks for recording it. I appreciate it. It helps a lot when we can see these things fairly quickly.

43:02julianwgs No problem :D
What a great pair of, just a great interaction. How many string types does Python have now? And it's like, the answer is not an integer. The answer is a range.

...20oh yeah this is this is syntax not semantics okay oh unicode reminds me where did i see that here we go let me grab this url so I'll come back to that. I want to finish looking at this PR, and then we'll see the fun Unicode thing. berkandev what's the etiquette for asking a lobsters invite?
I'll stick it down in the... Come here. I hate the Unix clipboard.

44:23So I am struggling to paste that link off screen with the various Linux clipboards. All right. So we have this pull request. pushcx https://lobste.rs/chat
Burke, welcome. If you go to here, I'll throw the link in the chat. But Lobster's has its own chat room. And if you swing by there, it is a great place to ask for an invite. And that document that I just linked tells you how to find the chat room. berkandev Ah, thanks. I saw the /login page 1000 times now because I hipfire upvotes on good comments
It's on IRC because we're old. And either if something you have made has shown up on the site, people tend to give links very quick. Well, thank you. I appreciate you attempting to upvote stuff. Yeah.

45:16And if you don't have something that's been published to the site, it helps a lot if you can demonstrate that you've read that chat page and say, like, right off the top, like, I read the page and it said I should share some social profiles so that you know I'm not a big jerk who's going to reflect poorly on you for inviting me. And then, especially if it's US working hours, there tends to be somebody around. It gets pretty quiet when it's not US working hours, but we're there now for another, what, hour or two, depending on the coast? All right. Big code rearranging. So it moves into a, what is the stats object?

46:08Okay.

...17julianwgs @berkandev Just be kind and it takes only a little bit of effort
Honestly, it's fine to just do these linear. What is the false for? I don't like unnamed Boolean arguments.

...34What is read only? I don't recognize that.

...45So it calls this monthly graph. So not only is it a unnamed Boolean parameter, all that happens is it gets passed through. gtfrvz just wait for april 1st 2038 and lobsters will have free signup again
There's a cache key and options. So if we are read only, we read from the cache. And we do a totally different thing that is not this.

47:28julianwgs The bug I reported has already been fixed. Things moving fast
Yeah, I would rather... What bug has been fixed, Julian? The tree lines? It's been like 90 seconds and I haven't deployed code. julianwgs https://github.com/lobsters/lob…
How would it be fixed?

48:12Oh my god. Chanless is killing it. I didn't get what you were suggesting. berkandev @julianwgs what kind of effort may I ask? Publish stuff, contribute on source?
Huh. Alright. Great. chamlis_ sorry for the derails, I have all the buffer open in emacs and it's as quick to do it now as not
Well, let's, .. .. Burkand, it's mostly... just chat for a minute and like, don't come off like you are spoiling for a fight or trying to promote your hot new startup or your cryptocurrency. If someone says, you know, like if a Python link goes by and you have an opinion on Python strings, can you share a reasonable opinion on Python strings? julianwgs I helped someone out. I took 30min :D
And you say, you know, I'd love to add this as a comment, check out my GitHub profile. Then people go like, oh, They have something to contribute that is not self-promotional, that is not awful. And they have a profile I looked at that sounds reasonable. People tend to hate invites.

49:54so get that merged so chamlus derailing the stream with a bug fix is not derailing, because that's wonderful. It's like, you know, I'm sorry I interrupted watching the TV to tell you you had a winning lottery ticket. You can interrupt me with bug fixes anytime, thank you. I really appreciate your many contributions. All right, so, great. Well... No, we don't want to perform now.

53:37Okay.

54:25Oh, this one is in development. Yeah, I guess that's fine in development. It doesn't really hurt anything. None of these jobs really strictly needs to run in development.

...49So where's the actual... Yeah.

56:35julianwgs How many string "types" does Ruby have? I think all the string "types" of Python have their purpose
And Birkin, if you're still present, if you do Rails development, I do invite anybody who fixes a bug or implements a feature on the site.

...51How many string types? Ruby only has one with the Unicode and it has a char set attached. berkandev HEREDOC strings maybe
its regex type is different from unicode and then it has it has some semantics so there are many constructors for strings there are several ways to do string literals so i can say yeah and so like in that comment i scrolled by hoist by petard listed triple coded strings is a different know that i would consider them a different string type because it's just a constructor so we got like the regular string and you can do it with single quotes and you can do it with i think triple quoted quotes yeah And then where Ruby gets more interesting is it also has stuff like you can say, I can say percent this. And you might say, well, why on earth can I put parentheses around a string? And it's nice because I can write, you can't say that. And then I don't have to worry about escaping either kinds of quotes. julianwgs In Python that what triple quotes are for
gtfrvz qw(hello perl heritage)
then it has a couple of other things so if i said like r i would get this that is not a string that is a regex so it's a different object and then ruby has some more yeah ruby has some more convenience methods like

59:02You can say %w12, and you get an array of strings. And then I think it's S, and you get an array... Oh, is it capital S? There's a way to get an array of symbols, and I don't always remember what it is. Oh, because it's a constant unknown type of string. Yeah, don't be misled by the word type there. What do we call those? but literals.

...42Yeah. So they're not different types of strings. They're just different literal semantics. julianwgs Yeah I meant that
I'm sorry, literal syntaxes for creating string classes. And I believe in Python, they are actually different types. julianwgs type(object)
gtfrvz type("foo")
like regular string versus unicode string don't even have a python interpreter open okay so if i said what is it is it type boop class oh man it's been so long type of who somebody put me out of my misery i can't remember the python syntax here for asking an object

01:00:31julianwgs type is a function
julianwgs No, they are the same, its just strings
julianwgs Its about how you construct them
gtfrvz t"" is a different type
oh it's parentheses ah right so here like i get a stir but then if i put the u in okay it's still a stir say r still a stir yeah so like all of these i don't think i would count them as different types so i would count yeah i would count differently from hoist by petard i this might be just me being way out of date but i thought i remembered that in the python two days as it was gaining unicode well i'm not running that version of python i thought it was unicode strings and the classic ascii strings were actually different types and maybe they've been unified by now and i just didn't know it because i've been out of python for years gtfrvz now let's do haskell and rust string types
julianwgs Yeah t" is different, but I also didnt use it yet
Or maybe they were under the hood, the same class with some different metadata on them. I just, I am not your Python expert.

01:01:45I mean, if it only got posted to lobsters this morning, when would you have had a chance to use it? It hadn't been announced in the official Python forum of lobsters. And I say that as a very tongue in cheek kind of thing. julianwgs But the PEP was already public
Ruby has this same here doc syntax. And you know, GTFRVZ is right that Ruby gets it from Perl because the old joke is that Ruby is what happens when Smalltalk gets lonely and Perl gets drunk. Okay. Yeah, and getting into symbols.

01:02:37There was, is that RailsConf or RubyConf? I went to both last year, so I don't remember. Yeah, I think it was here in Chicago. there was a talk where someone went through the code base to camping, which was a like sort of jokey, but sort of just for the fun of it, web framework written in Ruby. pushcx https://www.youtube.com/watch?v…
And that was a really fun talk as someone who's, here we are. I really enjoyed this talk because I haven't thought about this code base in years. And it's a MVC web framework that was written in the early 2000s. And so it has a very different, well, some of its style things are, it was deliberately written in a very abbreviated style with single letter variable names to try to like fit on so many printed pages. But then also it...

01:04:06I'm trying to find a good screenshot of the code. Yeah, so some of it is like this. We're squeezing it on one page. Things have single-letter variable names. But then otherwise, it would have these kinds of very clever uses of the Pirelli syntaxes. And you almost never see this stuff in Ruby anymore. This was maybe the most fun talk I went to at a Ruby conference last year, or even that I watched on YouTube, because I watch a lot on YouTube. Because, I don't know, there's just so many silly syntactic sugar things that you can do in Ruby. Yeah. So like this is running a regular expression on to run the routing. And when it breaks out sections into named captures, Ruby has some clever stuff in the regex library so that there are... This is such a pluralism. There are global variables that get filled from your named capture. And so this guy, this code base uses those. That's what this $1 is. And so it's just like this variable falls out of the sky. I don't know, there's so much just fun, silly code here where I don't love reading this code. You know, it's an interesting puzzle. I wouldn't want to have to maintain it, but it must have been a hell of a lot of fun to write, and it is fun to see.

01:05:49This kind of line of code, actually, this derglobing interface is one of the things that had me fall in love with Ruby. I started playing with Ruby before Rails was publicly announced. I had seen the language and it had some of this clever stuff where I was like, wait, I know what you must be doing. That's a very expressive API to let me say what I want with derglobing. And then why is it square brackets? And what is going on with this each do? Like, I can tell this must be a loop. I don't know. I find Ruby syntax really comfortable. Especially after years now. berkandev Thank god it's not norm anymore to optimize for least amount of characters.
I mean, years. julianwgs As a Python developer this looks very weird :D
After 20 years now.

01:06:42Oh, yeah, Julian, and I am deliberately showing you that one because it will look especially weird to Python eyes. Modern Ruby, like, if you click around in the Lobster's code base, you know, if you just ignore the word end, most of the code looks exactly like it does in Python. We don't have doc strings, but otherwise, Ruby and Python are very similar languages. So if I jump into one of our objects like app models user, just to pick a God object, there's just plenty of code in here. Ruby has some expressive stuff at the class level and likes to make these little DSLs that are not quite domain specific languages. We're not quite Lisp, but Like, hey, wait a minute. Where did a method named Boolean come from? Oh, OK. Well, I'm executing in the context given to me by that API. And once we get past all the third clearing here, the actual code is like, OK, so there's a validation about underscores and dashes in the username. We're doing some regular expression. This one, the trailing conditionals, so like return if and return unless, they look a little odd to Python eyes, but they're not very weird. They're only mildly weird. I don't know.

01:08:27I picked speaking of things that came from blue sky because earlier on stream somebody dropped by from blue sky and was like I work on the chrome rendering engine that was what a lucky get. I saw this syntax of you know you could just define a unary method on the class well I guess it's not a unary method even but it lets me go and say. like user pushcx to look up my username i look up users by their username and stories and comments by their ids all the time so it's pretty handy you know we have oh oh i was gonna get back Let's just do a little grab baggy stuff. So the fun Unicode thing is that apparently recent models of chat GPT inject invisible non printed Unicode characters into their output text as like a little watermark.

01:09:56julianwgs I guess Ruby is Python with some more magic and syntactic sugar
berkandev woa
And so I looked at this and I was like, well, you know, the obvious question is, Yes, I think that's a fair description. Ruby and Python are very similar that way. Where Python is explicit, Ruby is willing to be implicit, although the style has shifted away from being implicit and magic and indirect. It still allows it. So let's go look at the production database. And in fact, as long as we're looking at the production database, I gotta, let's go ahead and say, what's the, so I want that berkandev Caught in 4k
And then I want to say 202F is the character it uses. But I'm thinking MariaDB, I have to put a U in front of this. Yes. So who has been pasting stuff from ChatGPT into Lobster's comments, right? And the survey says, We have two comments that include this literal character. And they are talking about the actual Unicode characters. So either I got this syntax wrong and it's just matching that. It must just be matching that text, right? Yeah, let's check. gtfrvz ask chatgpt for correct syntax
Well, if I say, actually, I can probably get MariaDB to check it for me, right? Oh my God, read line. gtfrvz KappaHD
So, select foo, ask ChatGPT. I don't actually have a ChatGPT login.

01:12:21gtfrvz ddg has free chatgpt
Yeah, okay, so that's just getting me a string. julianwgs You dont need a login :D
No. Is it like a percent? All right. Duck, duck, go.

...39All right.

...53gtfrvz ddg.gg/chat
Frici slash chat
Oh, slash chat.

01:13:06That's my link from the talk. All right, there we go. Oh, I have to call char? OK, so let's try. So I'm going to search for concat%char202f.

...35berkandev SELECT * FROM your_table WHERE your_column LIKE CONCAT('%', CHAR(0x202F), '%');
unknown character no unknown column so i didn't actually get back a string from that oh it doesn't like the it doesn't like the hex syntax i just looked at this code for 202f is 8239 so here do it with all right let's Here we go. Obviously now look this, I'm becoming a vibe coder. I am copying and pasting.

01:14:14chamlis_ boycotting the stream now
alex4tmm copy/paste NotLikeThis
Oh, it's all right. alex4tmm specia89ElmoSquished
So what if I ask for, is that zero X that's can I say two F

...33These two look equivalent to me. Okay. All right. So we have two valid syntaxes. All right. Well, I can't lose ChamList, so I am going to use the alternate syntax provided by Burkhan instead. Where's my comment query?

01:15:13julianwgs Whoops...
julianwgs Dead internet theory
see how many comments we have god please don't be a big number oh okay that's 10 of comments on the site because that can't be right yeah so we have 570 000 comments in the database and 13 000 of them include That's not likely, because that would have to be 13,000 posted in the last, what, month or two that GPT-4.0 mini? I don't know how long that's been out.

...59gtfrvz can you count the amount and sort by it
No, this can't be right. Look at these comments. ChatGPT didn't write these. I think it is finding me every comment that has a slash in it. because it printed and it looked like a slash, so hang on. So if I said, select me, count star, just because I don't want to blow all that by the terminal again, right? 13,000. And if I replace that with a single slash, 10 times as many. All right, so it's some kind of, weird character issue but i do not believe that we have had almost 14 000 comments that were pasted from chat gpt in the last couple of weeks and like here look if we go back to this one and we say select created at from comments order by id ascending limit three Yeah, some of these are from 2012. That is many years before OpenAI existed. gtfrvz chatgpt invited time travel Keepo
So we do not have the correct search. gtfrvz *invented
How about if we try the vibe coding char 8239? Don't give them ideas. Yeah, see, we're finding the same couple of comments. The timestamps are exactly the same. So whatever this is... julianwgs Can you copy a comment into an editor and check for the char there?
I don't know. Or, you know, the alternate is either maybe this is correct and, yeah, Julian, that was just where I was getting was there must be some other process that's producing these no-break spaces because... or like something weird with the car set. Let's look at the first one, I guess.

01:18:25I'm just going to grab the whole line.

...33Git does not see any odd characters in here. Or I'm sorry, Vim does not see any odd characters in here.

...47Because the... I'm pretty sure Vim is set up to print those. On the other hand, if it's like a non-printable character... Would the terminal emulator pick it up? I think so, because I can copy and paste emojis, and they sometimes get decomposed into multiple characters.

01:19:23julianwgs Didnt the blog post have such an editor?
Yeah, it did. All right, so copy. Whereas it's little, all right, we have these guys tool. Yeah, so it found the CRLF at the end, but the rest of these look fine. Honestly, what if we're finding space slash space? I still come back to what if we're not searching what we think we're searching, because if char set issue 9003 well that's in the neighborhood is the what 13 899 something like that but it's not quite the same

01:20:31are so many layers of the software stack of so we're skipping it's not my terminal it's not my vim it's not ssh because all of this means it can only be happening from maria db down or on the way no not on the way back out yeah just somehow we're not searching so our our vibe coding in the chat failed here though i do wonder about this show me the character set UTF-8, MB3. So the client and the database don't have the same one. That surprises me a little. chamlis_ LIKE "%\\\\u202f%" maybe (apparently it gets escaped twice)
That feels like the kind of gap that this miscommunication could be lurking in.

01:21:37All right, let's give it a try.

...53chamlis_ hmm
Well, this might be accurate to get zero back. That there are none. Can we think of an odd You know, we've had comments that have had emoji in them. They're very uncommon, but we have had a couple. Had somebody get mad that they can't put emoji in titles, which it's very distracting. Kind of clickbait.

01:22:41berkandev Can you enter a test record into database to ensure the query is working?
Maybe I was going to say, what if I just pulled up, all right, 44. No, let's not be, all right, 41. No, decimal 65. You knew that number. All right, so if I said, how many comments have capital A in them? Zero. Okay, that says our search didn't work. chamlis_ it's hex in the unicode escape, right?
because I guarantee that there is a comment in the lobsters database that includes a capital A. What if I took off some slashes? It's hex. Oh, you're right, it is. That's why I pulled up askytable.com. See, I told you I was tired. Let's go back. And that was 41 with channels as syntax, yeah, zero. Now I'm just going to run it with every zero.

01:23:51chamlis_ 0041?
berkandev Slashes will continue to decrease until morale improves
I refuse to believe that we don't have any comments with capital A's. Oh, it's a good idea.

01:24:05Ah, thank you, BirkenDev. There's that stream title. So I make stream titles as silly things I say out of context. But I will take yours. That's pretty good.

...34All right. Unfortunately, as you know, character sets.

...46And you know, I feel like I got failed by my vibe coding. Chat GPT lied to me. I guess it didn't want me detecting how people did that. Or if people did that.

01:25:17Frici "unfortunately Charactersets" is a mood. and the moto for readline probably.
yeah so they do it like this yeah i want to oh man you know i spend a lot of time frustrated by Oh yeah, here you go. Frustrated by read line. It's a little buggy for me. I figure I have some impossible combination of old config because I have basically one set of doc files that I have been updating for, I don't know, 30 years.

01:26:17So what if I grab this and I say, can I not? Did you insert an image? Why can I not select this text? Stack overflow. How am I supposed to be a copy and paste coder if you won't let me copy and paste? what in the weirdest come here can i stack overflow gets mad somewhere around here and well let me select upwards something about the l in value no can't click here can click here is this like they have a espartapalma Hi, it's been a while
They have floating garbage on top of the screen. It's the fucking login with Google. I ad blocked it. gtfrvz πŸ’©
Hey, Spark Palma. Welcome back.

01:27:35chamlis_ time to do it in ruby lol
Okay, so this says if I can get a Unicode 2024 onto my clipboard or 202F,

...54Really? We have... I would have believed 37 comments with poop emojis. I do not believe 3,000 comments with poop emojis.

01:28:15I guess we have a few. So these are... Yeah, but these aren't poops. These are shrugs.

...30chamlis_ long time no see espartapalma!
See, this is like, it has a smiley face. I feel like something in the MariaDB client is like smashing my value down to some generic value because we know the terminal can render the poop emoji. God, I feel like such a grownup. And these comments don't actually include it.

01:29:00Oh yeah, and this one is like a skull emoji and nothing else. All right, so this is MariaDB is doing something strange. Somehow, MariaDB does not like searching for this Unicode character, because even though it can round trip it, when I'm searching for it, I'm getting nonsense.

...49Peace.

01:30:05All right. I do actually want to do this on prod because these are recent comments.

...52julianwgs I consulted ChatGPT and got this: WHERE your_column REGEXP '\x20\x2F';
yeah whatever this is it's happening down in maria db and not the client because here i'm hitting it through the ruby active record interface so i think we are sol on looking for the fingerprint right now I don't have anything else to try. Oh yeah? I'll give it one more try.

01:31:53Zero. What's the.

01:32:06One. If it's an extra, so it's. What I say. Oh, one F-480. let's see if shrug is it a lower number yes but it didn't give me the okay well we know we saw this this 2000d so i just want to search for something i know i have seen go by just so that i know that julianwgs Sorry :D
julianwgs Why is this so hard....
yeah see this is not do you want capital we know we saw this we scrolled by it just a minute ago so there is something weird happening either with this maria db or the database that's okay it's a fun exploration somebody will figure this out because this is a weird but tractable problem. I think it's hard because it's computers, and they're hard. As part, if you're wondering for context, apparently ChatGPT has been salting non-printable, invisible Unicode characters into its output. gtfrvz there was an update to the postgresql migration issue...
And I was curious to see if we could find any in our database, but we cannot actually successfully search our database.

01:34:01You're right, there was. Let's take a look.

...14chamlis_ how do we know *you're* not using chatgpt and fumbling to hide your crimes?
gtfrvz because it surely will just work tm on psql
Doja Cell threw in a comment. Fumbling to hide my crimes. Oh. Oh, that could be it. I'm sabotaging it. All right, gemless, I'll just give you a read on the server and you find it.

01:35:19chamlis_ give everyone root on the server!
gtfrvz i would just watch httpacces logs all day
everyone or maybe there could just be we'll have a monthly lottery and every month someone who has vip status on the office hour stream will get root on the production server you know i had a guest a couple of months ago on stream and we had a gtfrvz so soothing
the Zed editor for sharing files so that he could see and edit files. And then we could view his typing live and it worked great. But when I went to the restroom, I had to boot him off so that, you know, he didn't have a login on my computer. It's just kind of funny how that's connected.

01:36:23julianwgs Anyway, I need to leave, but I would be very interested in a follow-up! Good night :)
Frici take care julianwgs πŸ‘‹
Julian, I'm at the end of my patience on the Unicode thing, but if anybody gets an idea, I am happy to run more queries. We'll see. All right. And you know, I think if Julian's out, I'm going to be out too. chamlis_ I wonder if for april fools you could make SSH on lobsters point to an airgapped server where you can "mess" with the site
We're at what? Two hours and 40 minutes. We've had some fun on stuff, but I think I'm pretty much done. mess with the site hmm that could be fun i think it's since your time but we did have one april fool's gag that i really liked i did this ages ago

01:37:25Frici i Loved that one LUL
that I took lobsters and I made it look like PHPVB and this all worked. chamlis_ that's really well done
So all of this was live. Ah, Fridji's been here for a minute. gtfrvz i was there, 3000 years ago
Didn't this look nice and terrible? You know, I got to put a little signature in. chamlis_ phpbb is older than me haha
There were a couple of people who were very, very ready at the end of April 1st for this to go away. I guess they spent enough time on the forums back in the day. PHPBB is older than you. Ah. Yeah, that's a thing that happens more now that I'm in my 40s or 50s, that People are like, what's that? Oh, it's ancient technology from before I was born. Yeah, I got a bunch of stuff working, not just the discussions, but there's like a user list page. So, this is just discussions. Oh yeah. Frici I spent enough time on phpbb forums to hate remembering it, I still found this absolutely glorious πŸ˜‚
All these fricking user bars, the layout of topics looked correct. The account settings page, oh man, this required some tinkering. And channelists, you'll appreciate this. chamlis_ oh yeah, lobsters should definitely have signatures
The way I made this work was I actually found a zip of the PHPBP source and I copied the templates over and then rewrote from PHP to Ruby. So this was exactly their table markup. Signatures, especially animated GIFs. Ah yeah, here's the user list. chamlis_ excellent commitment
think the aim and icq were like linking to github and keybase or twitter and yeah the profiles god this was so ugly it was wonderful ah yes there is a screenshot of it you could register so i took their registration page and I made this live and we actually had bots dzwdz oh hell yeah there are still bots
sign up for the site because there are still bots that recognize the phpbb registration form and they filled in the form and they submitted and then they posted spammy comments and then i banned them that is the last time so lobsters has always required an invite to sign up except for What was this day? April 1st, 2018. espartapalma "made with technology invented (created) before I was born", and we'll going to die and some systems will be using with COBOL
And so for that one ridiculous day, we got spam bots that clearly were coded in the 90s. dzwdz i've had bots manage to get into an oauth-only phpbb forum somehow, i have no idea how
That was a fun one. Yes, top comment. April Fool's Day is over. Can this please go away?

01:40:51DZ, if you have seen that, your forum is not that OAuth only. There is an endpoint hanging out that does not require OAuth. You have extra URL routes hanging around that you don't know about. dzwdz i mean that's what i assume happened
You have an API. You have something. Something is hanging out there. Your fly is down on that forum.

01:41:19dzwdz also they hijacked an existing account
I would assume that PHP BB has a bigger surface area than is visible, but yeah. Hijacked an existing account. Ah, wow. We've seen that there is an open feature request to implement. Have I been pwned? Because we have seen, I think some account take over now. Yeah. All right.

...56dzwdz like i'm just wondering if it was a bot smart enough to figure out the custom oauth stuff, or what
chamlis_ thanks for the stream
As much fun as it is to reminisce about the 90s, I am going to call it... I can't guess. Some of the bots seem to be very smart nowadays. Well, thank you for the bug fixes, Chamlus. And... Yeah, the next scheduled stream will be Thursday morning and I will talk to you all then. Until then, take care.