IRC logs for #openttd on OFTC at 2024-07-01
⏴ go to previous day
01:29:46 *** ladysadie has quit IRC (Quit: Leaving.)
01:52:28 *** ladysadie has joined #openttd
01:53:09 *** Wormnest has quit IRC (Quit: Leaving)
02:45:04 *** gnu_jj_ has quit IRC (Ping timeout: 480 seconds)
02:55:24 *** debdog has quit IRC (Ping timeout: 480 seconds)
03:59:31 *** ladysadie has quit IRC (Quit: Leaving.)
04:42:22 <DorpsGek> - Update: Translations from eints (by translators)
05:16:45 <pickpacket> I didn't know c++ before starting to make OpenTTD contributions. I still don't. I've re-done half of my (two) PRs several times because of code review comments... My experience of it all just makes me want to do more 🤷
05:47:03 *** keikoz has quit IRC (Ping timeout: 480 seconds)
05:57:06 <pickpacket> talltyler: you have a yt channel!
05:57:35 <pickpacket> You know that already, of course. But I stumbled across it this morning
05:58:49 <wensimehrp> at least I see nothing wrong in the WT menu
05:59:55 <peter1139> wensimehrp, just one change, to STR_NEWGRF_SETTINGS_MD5SUM.
06:00:21 <goddess_ishtar> pickpacket: He set a bunch of his old videos to public and everyone in here got recommended them at the same time
06:00:35 <goddess_ishtar> It was hilarious and concerning
06:19:06 *** kuhnovic has quit IRC (Quit: User went offline on Discord a while ago)
06:48:26 <andythenorth> oof my AWS bill has gone up
06:49:19 <andythenorth> Glue is *expensive*
07:05:08 <truebrain> andythenorth: Wtf does glue do? 🙂
07:09:00 <peter1139> Sticks things together?
07:11:51 <peter1139> Hmm, maybe I should somehow pre-itemise text by built-in/not built-in.
07:14:19 <DorpsGek> - Add: summary for week 26 of 2024 (by OpenTTD Survey)
07:14:33 <peter1139> Oh that would probably require knowledge of LTR/RTL though.
07:17:13 <andythenorth> truebrain: it's a serverless set of tools for ETL, so a crawler, a listing of data sources and fields, a data mutation pipeline
07:17:28 <andythenorth> [I say that as though I know what I'm actually talking about]
07:17:45 <truebrain> so you are training your own AI, or why are you using it? 😛
07:17:48 <andythenorth> I wanted to try out the AWS QuickSight dashboard tool for making charts
07:17:51 <peter1139> Probably dropping native layouting and font support, and then always using ICU/Harfbuzz/Freetype would simplify it all.
07:17:58 <andythenorth> I have a DynamoDB running an event queue
07:18:55 <andythenorth> I like AWS, but because distributed....connecting a DynamoDB to the charting dasbboard means
07:18:55 <andythenorth> QuickSight -> Athena -> Glue -> crawler + db + table + schedule -> DynamoDB
07:19:10 <andythenorth> and it doesn't work anyway, for reasons neither GPT now AWS Q bot understand 😛
07:19:25 <andythenorth> remember servers?
07:19:25 <truebrain> and now you have to pay for it 🙂
07:20:17 <andythenorth> $2 for two failed crawler runs, on a DynamoDB that has 10 fields and less than 200 items
07:20:37 <truebrain> and Glue is free for 1 million records!!!! 😛
07:20:38 <andythenorth> at what point is it cheaper to employ sysadmins?
07:20:54 <andythenorth> 'free' but I am being charged anyway
07:21:23 <andythenorth> I can find out why, if I connect CostExplorer to a data mining tool via CloudWatch and EventBridge, and pay someone to tell me what it means
07:22:01 <andythenorth> if this sounds Marvin, I am just seeing the funny side of AWS
07:22:28 <truebrain> no, this is not Marvin-like behaviour. This is the actual experience of any AWS user 😄
07:23:10 <andythenorth> I also have, without the aid of anything except a custom AWS GPT bot, created an API Gateway, a DynamoDB event queue, multiple lambda jobs processing the queue, and an SES email digest that tells me what was in the queue, with a html email template on S3
07:23:59 <andythenorth> it took about a day all-in
07:24:26 <truebrain> You would almost think you have engineers to do that for you 😛
07:25:18 <andythenorth> repetitively in my career I've been sold the idea that systems analysts can design at least working prototypes to show engineering
07:25:38 <andythenorth> depending on what the fashionable technology is at the time, that's sometimes true
07:26:00 <andythenorth> it was true when it was Macromedia Flash running in the client
07:26:07 <andythenorth> it was true when we were using a web-based CMS
07:26:18 <andythenorth> and it's true currently for serverless with GPT helping
07:26:55 <andythenorth> it's not true for LAMP, and I have seen how wrong that can go
07:28:40 <andythenorth> it's also not true when you can write eval() in the system and it does things with web input
07:29:23 <truebrain> hmm, I wanted to do some maintenance on all our backend services, but GitHub is refreshing the dependency bumps today .. so I guess I better wait till it finished that 😛
07:29:32 <truebrain> (it does it every first of the month)
07:33:33 <truebrain> lovely, the latest "pydantic" is not compatible with the latest "pydantic-core"
07:33:36 <truebrain> I never understand that
07:34:13 <truebrain> at least also release one if you release the other. Or at least close after each other
07:42:48 *** ladysadie has joined #openttd
07:45:15 <silent_tempest> pickpacket: What other languages did you know before?
07:52:06 <andriydohniak> truebrain: Thanks for that comment, I found all the issues except the crash, do you remember what you did when it crashed? I think I found where it might have happened, but I couldn't recreate the crash
07:52:35 <truebrain> I was clicking around like a weirdo on the graph
07:52:45 <truebrain> looking at how the colours kept changing 😛
07:52:52 <truebrain> I will try to reproduce it better in a bit 🙂
07:57:00 <truebrain> I cannot even crash it now 😛
07:57:05 <truebrain> damn, I suck as tester 😛
07:59:18 <andriydohniak> Did you do it in wasm or did your compile it yourself? (Shouldn't matter, but idk at this point 😄 )
08:04:21 <andriydohniak> I found a place where it could have happened, but for the life of me I can't reproduce it. I will just assume that fixed it :)
08:04:34 <locosage> pickpacket: Well, I did know c++ pretty well when I started so by far the most comments I get are on the code style. And it's fine when it's clear but sometimes they're not even related to my changes or caused by reviewer not understanding the openttd codebase.
08:20:11 <truebrain> andriydohniak: for the life of me, I cannot reproruce it either! 😛
08:20:26 <truebrain> I assume it has something to do that it doesn't scroll for the first and last entry in the list
08:20:47 <truebrain> euh, no, it doesn't scroll for anything not in view, sometimes
08:21:01 <truebrain> so maybe that leaves it in a weird state. So if you fix that, I assume my crash fixes itself
08:21:36 <truebrain> it is so much fun to mouse-over around on the legend 😄
08:22:22 <andriydohniak> I had similar issues before, and fixed them before, now I have to fix them again because I changed a bunch of stuff
08:22:47 <andriydohniak> truebrain: If you want to have more fun try it with FIRS
08:24:09 <truebrain> okay, now I see it is actually just a SetDirty that is missing, for the issue I found (not the assert, but the issue)
08:25:33 <truebrain> looking at the code, I don't even know why it crashed; the container size shouldn't change, neither should the scrollbar
08:26:17 <truebrain> I really like this PR, it is just fun to click around 😄
08:26:30 <peter1138> Was it an assert in the GetScrolledItem code?
08:26:42 <truebrain> either `GetVisibleRangeIterators` or `GetScrolledItemFromWidget`
08:26:45 <truebrain> I couldn't tell, as, WASM
08:27:04 <peter1138> Yeah, that means the container has been modified without updating the scrollbar count.
08:27:18 <truebrain> which is "impossible" for cargo payment, right?
08:27:23 <andriydohniak> Yea, but when? and how
08:27:35 <peter1138> The container size is modified when filtering, right?
08:28:07 <truebrain> I wasn't doing any filtering at that moment, but .. who knows, I might have misclicked
08:28:23 <andriydohniak> void SelectorWidget::OnEditboxChanged(WidgetID wid)
08:28:23 <andriydohniak> if (wid != WID_SELECTOR_EDITBOX) return;
08:28:23 <andriydohniak> this->string_filter.SetFilterTerm(this->editbox.text.buf);
08:28:23 <andriydohniak> this->parent_window->InvalidateData(0);
08:28:23 <andriydohniak> this->vscroll->SetCount(this->filtered_list.size());
08:28:31 <truebrain> had nothing to do with the cargo payment 😄
08:29:00 <truebrain> Start a new game, open a company graph, set the amount of AIs to accept to more than zero, wait for an AI to start, and open any other company graph
08:29:20 <truebrain> so on new company start, you don't update something properly 😛
08:29:27 <truebrain> the new company also wasn't in the legend
08:29:32 <peter1138> Not updating when a company starts or stops.
08:29:52 <andriydohniak> That's probably it
08:30:01 <peter1138> Old code didn't need to do that the list was fixed 🙂
08:30:44 <truebrain> yeah, even easier: start new game, set allowed AIs to more than zero, open income graph, in console, run `start_ai`, hover over legend
08:31:40 <peter1138> Actually play-testing a change instead of just reviewing the code, huh? Novel...
08:31:58 <truebrain> I am redeploying the Discord<->IRC bridge; we will be right back!
08:34:31 <andriydohniak> I think I fixed it, but I accidentally saved the widget_type.h file so now I need to wait 10min for the compile :)
08:34:43 *** rumor_the_twin_goat has quit IRC (Remote host closed the connection)
08:34:43 *** mryakov has quit IRC (Remote host closed the connection)
08:34:43 *** alfagamma0007 has quit IRC (Remote host closed the connection)
08:34:43 *** ahyangyi has quit IRC (Remote host closed the connection)
08:34:43 *** audigex has quit IRC (Remote host closed the connection)
08:34:43 *** efessel has quit IRC (Remote host closed the connection)
08:34:43 *** michi_cc has quit IRC (Remote host closed the connection)
08:34:43 *** _glx_ has quit IRC (Remote host closed the connection)
08:34:43 *** DorpsGek_vi has quit IRC (Remote host closed the connection)
08:34:43 *** _jgr_ has quit IRC (Remote host closed the connection)
08:34:43 *** andriydohniak has quit IRC (Remote host closed the connection)
08:34:43 *** xarothbrook has quit IRC (Remote host closed the connection)
08:34:43 *** brickblock19280 has quit IRC (Remote host closed the connection)
08:34:43 *** j0anjosep has quit IRC (Remote host closed the connection)
08:34:43 *** gwyd4016 has quit IRC (Remote host closed the connection)
08:34:43 *** ahym has quit IRC (Remote host closed the connection)
08:34:43 *** reldred has quit IRC (Remote host closed the connection)
08:34:43 *** ian01223 has quit IRC (Remote host closed the connection)
08:34:43 *** amadeus6152 has quit IRC (Remote host closed the connection)
08:34:43 *** skipthefox has quit IRC (Remote host closed the connection)
08:34:43 *** ratcircus has quit IRC (Remote host closed the connection)
08:34:43 *** emperorjake has quit IRC (Remote host closed the connection)
08:34:43 *** wensimehrp has quit IRC (Remote host closed the connection)
08:34:43 *** locosage has quit IRC (Remote host closed the connection)
08:34:43 *** rutoks has quit IRC (Remote host closed the connection)
08:34:43 *** tabytac has quit IRC (Remote host closed the connection)
08:34:43 *** goddess_ishtar has quit IRC (Remote host closed the connection)
08:34:43 *** merni has quit IRC (Remote host closed the connection)
08:34:43 *** johnfranklin[d] has quit IRC (Remote host closed the connection)
08:34:43 *** talltyler has quit IRC (Remote host closed the connection)
08:34:43 *** truebrain has quit IRC (Remote host closed the connection)
08:34:43 *** peter1138 has quit IRC (Remote host closed the connection)
08:34:43 *** silent_tempest has quit IRC (Remote host closed the connection)
08:34:43 *** andythenorth has quit IRC (Remote host closed the connection)
08:34:55 *** DorpsGek_vi has joined #openttd
08:34:59 *** truebrain has joined #openttd
08:34:59 <truebrain> "DAT ZAL JE LEREN" (for some reason, that doesn't translate well, so use your own translator to figure out what it means)
08:36:04 <truebrain> Don't worry peter1139, we are all back again 🙂
08:39:51 <peter1139> That's what worries me.
08:45:14 *** andriydohniak has joined #openttd
08:45:14 <andriydohniak> truebrain: Btw because I have AIs disabled, there was literlally 0% chance of me ever finding that bug :)
08:56:28 *** andythenorth has joined #openttd
08:56:28 <andythenorth> appropos of nobody asking me, but GS is not a bad way to learn how things like AWS queues might need to work
08:57:06 <andythenorth> because GS is scheduled loop, and has an event queue, and because the performance is not predictable
08:57:19 <andythenorth> and because game state might change whilst the GS is still executing a loop
08:57:35 <andythenorth> and because we can't put any squirrel objects into the savegame, only basic tables and arrays
08:58:12 <andythenorth> it's not bad training ground
09:06:33 *** kuhnovic has joined #openttd
09:08:42 <truebrain> andriydohniak: No worries; it was pure luck that I enabled AIs 😛
09:09:40 <truebrain> kuhnovic: I did not check the actual PR. I assume it was still the same as when Rb looked at it 😛
09:10:02 <kuhnovic> Yup, just had to resolve a conflict
09:10:55 <kuhnovic> Now my secret changes are in and I can start doing a xz-like exploit
09:11:34 <kuhnovic> (mostly waiting and not a lot of seeing I guess)
09:13:33 <andriydohniak> I think I fixed everything, but pls check :)
09:15:10 <truebrain> andriydohniak: I can make things go boom again?! 😛
09:15:29 <andriydohniak> You are like Linus with linux 🤣
09:16:03 <andriydohniak> As soon as you touch something every bug goes chasing after you
09:16:50 <andriydohniak> But honelstly it's hard to test my own stuff because I don't think about the things I didn't think about when coding
09:18:49 <_glx_> Oh the AI causing crash means it could also crash in MP
09:19:19 <_glx_> Because it's all governed by the same commands
09:20:48 <peter1139> How do I found out what it was I requested? :p
09:21:05 <truebrain> peter1139: insert a better memory-bank, I assume
09:22:11 <peter1139> Probably something like that? I dunno.
09:37:49 *** SigHunter has joined #openttd
09:38:01 <andriydohniak> _glx_: The AI no longer causes a crash
09:38:29 <andriydohniak> truebrain: Did you brake it? I bet you couldn't!
09:39:22 <truebrain> andriydohniak: any chance we can have that the legend always opens right of the window, instead right of the last legend?
09:39:41 <andriydohniak> truebrain: Nope, no control over that
09:39:50 <truebrain> this just looks off 😛
09:40:02 <truebrain> peter1139: do you have a patch for that? 😛
09:40:10 <andriydohniak> I know, but be honest, how often do you have more then one graph open?
09:40:19 <truebrain> what the weird thing is
09:40:26 <truebrain> it does open where I expect
09:40:34 <truebrain> so "no control" seems to not be a completely true statement 🙂
09:41:09 <truebrain> but "very little control" does seem to be true 😛
09:41:11 <andriydohniak> That is probably because the legend is opened at the same time as the graph, so probably a "race condition", but actually deterministic
09:41:31 <truebrain> and I have multiple graphs open a lot, tbh
09:41:43 <truebrain> cargo + company, isn't all that unusual
09:41:58 <truebrain> but it isn't a big problem or anything. More wondering 😄
09:42:04 <andriydohniak> truebrain: I will look into it, but If you like multiple graphs to stay open it's not that hard to drag the window once :)
09:42:39 <truebrain> owh, I forgot about the performance "detail" window
09:42:54 <truebrain> and so ... "a 16 year old made this" 😄
09:42:58 <truebrain> (which is possibly true)
09:43:26 <andriydohniak> Are you talking about me?
09:43:33 *** YourOnlyOne has joined #openttd
09:43:37 <truebrain> still found a bug with starting a new AI
09:43:44 <truebrain> it doesn't set the "Key to .." dirty
09:43:46 <truebrain> so it doesn't update
09:44:13 <andriydohniak> Thanks, will fix that too
09:44:36 <truebrain> at least I expected you to have noticed when testing whether the bug was fixed! 😛 😛 (I am pulling your leg)
09:45:07 <andriydohniak> truebrain: How old are you?
09:45:24 <truebrain> How old do I feel, or how old I actually am? 😛
09:45:45 <truebrain> I have been doing OpenTTD for over 20 years now. So that tells you one part. And my remark tells you the other 😄
09:45:51 <andriydohniak> Are you in the US so it super late for you?
09:46:06 <truebrain> Next you want my social number too! 😛
09:46:21 <andriydohniak> Time zone != SN 🤣
09:47:04 <andriydohniak> I think your comments get happier and happier by the hour, for me that happens if I didn't sleep 18h or if I am really excited about something :)
09:47:19 <andriydohniak> Just making sure you don't need to go to sleep and I am not keeping you up
09:47:20 <truebrain> for me it is just my default 😛
09:47:36 <truebrain> it is almost lunch time, so I will be okay. I think. Maybe.
09:48:04 <andriydohniak> A fellow european! nice!
09:48:31 <andriydohniak> Or no, my time zone / lunch time knowladge is VERY limited
09:49:50 <truebrain> peter1139: Not saying I am disappointing .... 😛
09:51:49 <truebrain> Another "bug": when hovering over the legend, all graphs update. But when clicking on a graph to select another company, only that graph changes. And not the other graphs. This feels inconsistent?
09:51:50 <andriydohniak> TrueBrainviaGitHub: This is very difficult, because: Imagine there are 3 points on top of each other and one a pixel above. You clicked 2 times at the same position, and then your mouse moved 1 px up, what should happen? The point above is closer to the mouse
09:52:11 <truebrain> I would say: find all companies the mouse press collided with, in order
09:52:19 <truebrain> if the current selection is still in that set, go to the next
09:52:32 <truebrain> as you do something like that already clearly, as the current selection isn't reselected
09:52:53 <truebrain> but that is how you would do it with raytracing; not actually sure how you implemented it 😄
09:53:30 <andriydohniak> I think that would be more annoying, because imagine you want to click on another graph that is very close, but not at the same pos, now you have to click through untill it gets selected
09:53:45 <truebrain> at least this also feels rather annoying, I have to admit 🙂
09:53:50 <truebrain> don't get me wrong, it is already a huge improvement
09:54:01 <truebrain> but when you have multiple companies on top of each other, clicking the graph feels weird
09:54:24 <truebrain> but it is like: this is 95%, I am bitching about making it 0.1% better 😛
09:55:10 <andriydohniak> truebrain: It does, so when you want to select a particular line, you click on the line, it selects the apropriate listing in the graph, you disable that, and now nothing is covering the line you want, and if you know the name of the company you want to take a look at, you just do it from the legend
09:55:31 <truebrain> I just wanted to cycle through the companies
09:55:35 <andriydohniak> truebrain: I know, I also thought about it, and I think this is the best solution I could come up with
09:55:53 <truebrain> another "weird thing": on a graph I can select a company, and it stays selected
09:55:58 <truebrain> but in the legend I cannot do the same
09:56:06 <truebrain> in fact, if I hover over it, and leave the window, I lose the selection completely
09:56:35 <truebrain> (and clicking disables the company from listing 😛 )
09:56:35 <andriydohniak> truebrain: Yep, remember your complaint about the text being black first, and later white? That's why
09:57:01 <andriydohniak> andriydohniak: It was intentional, and I changed it, but I can easily change it back
09:57:25 <truebrain> I have no real opinion about whether it is bad or good. I just notice it being inconsistent between different windows 🙂
09:57:30 <truebrain> took me a bit of time to realise what was going on
09:57:44 <truebrain> if your mouse ever so slightly enter the legend window, the selection will be lost
09:57:47 <andriydohniak> truebrain: There was another idea, click to select doulbe click to disabe / enable but 2TallTyler thought that hover is better
09:57:48 <truebrain> even if you don't hover over any company
09:57:57 *** ladysadie has quit IRC (Quit: Leaving.)
09:58:35 <andriydohniak> I would have to think about that, but personally I like permanent selection more
09:58:52 <truebrain> anyway, clicking on one graph, and the other not being set as dirty, actually is a bug
09:59:03 <truebrain> I now see it is a SetDirty missing 🙂
09:59:32 <truebrain> (which you can spot, as any other change around that window does update it to reflect the new selection)
09:59:39 <truebrain> and permanent selection is, for me, excellent 🙂
09:59:45 <_glx_> andriydohniak: Dinner time is more tricky 😉
10:00:01 <truebrain> maybe an extra button right of the company to "select" it
10:00:27 <andriydohniak> truebrain: Thanks again, I didn't even think to test that :)
10:00:41 <truebrain> no worries; monkeys are very good in finding errors 😛
10:00:46 <truebrain> /me monkey, /me pressing buttons
10:01:13 <andriydohniak> /you /monkey /you pressing buttons better then I ever could! Thanks!
10:01:36 <_glx_> Yeah usually the persons writing code only test how they imagine it being used
10:01:59 <_glx_> Andy is very good at breaking things
10:02:16 <truebrain> what does the filter filter for?
10:02:21 <truebrain> as I am not seeing a `b` in `Mail` 😄
10:02:36 <andriydohniak> truebrain: I didn't write it, I used an existing implementation
10:02:47 <truebrain> not saying it is your fault 😄 But this looks weird 😛
10:02:49 <andriydohniak> I think it somehow allows for errors, and a bit too much
10:03:13 <truebrain> `c` matches on `Goods`
10:03:35 <truebrain> `m` matches `Livestock`
10:04:02 <truebrain> must be some other value it also matches on, I imagine?
10:04:25 <_glx_> Could be a bug somewhere in our code
10:04:46 <andriydohniak> _glx_: I am gona check my code again, but I don't think I did anything special there
10:09:24 <truebrain> Towns doesn't have this weirdness
10:10:21 <truebrain> the label seems to be rendered with `STR_JUST_STRING`, but the search seems to be based on `STR_JUST_CARGO`. No clue if that is causing it
10:11:12 <truebrain> the label even seems to be `cargo->name`, where the search is based on `cargo->Index()` with `STR_JUST_CARGO`
10:11:21 <truebrain> so possibly those don't match up
10:12:14 <andriydohniak> but nothing should match "livestock k a k k k k k d"
10:12:22 <truebrain> every word is matched
10:12:30 <truebrain> if all words match, it is a hit
10:12:41 <andriydohniak> there is no D in livestock
10:12:56 <truebrain> neither a `c` in Goods
10:13:09 <truebrain> so maybe look into the difference between `STR_JUST_CARGO` vs `cargo->name` first 🙂
10:13:09 <andriydohniak> I will try switching the strings around
10:13:33 <truebrain> but I am just dryhumping code; can't tell if that is actually the issue 😛
10:13:47 <truebrain> right, now actual lunchtime 🙂
10:20:56 <andriydohniak> I rebased my repo and now I need to recompile everything again! Sad life on the Thinkpad T510
10:26:20 <andriydohniak> I just got OOMed, and had to reboot 🤣
10:36:36 <truebrain> welcome to OpenTTD development 😛
10:48:13 *** toktik has quit IRC (Remote host closed the connection)
10:48:27 <andriydohniak> I have to make clean because the files got corrupted :*(
11:07:59 <pickpacket> silent_tempest: some C, java, kotlin, python, a bit of perl and php, too much bash, some JS and types ript
11:12:26 <pickpacket> Uhm. Ruby too. I'm not an expert in any language but I've use a whole lot of them
11:13:30 <peter1139> I can't think of a situation where adding more debug level will make it load...
11:13:31 <andriydohniak> truebrain: You were right! 50min of compiling later I can confirm!
11:15:11 <peter1139> STR_JUST_CARGO is the wrong string, yes.
11:22:43 <LordAro> it's not really "disable themselves" and more "crash"
11:25:34 <peter1139> I think James would write "crash" rather than "disable themselves"?
11:38:22 <peter1139> Okay, so `} catch (...) {`
11:38:34 <peter1139> Is it tripping up on a bad format string...
11:39:05 <peter1139> But fmt format string validation is compile time, and I get no exceptions on Linux.
11:42:19 <peter1139> Also looks like GrfMsg does actually format all strings even if the debug level isn't met.
11:44:08 <andriydohniak> Ok, now I fixed everything, it's not the prettiest thing in the world, but should be fine
11:47:06 <andriydohniak> peter1138: peter1139: could you respond to my replies on some of the comments you left yesterday?
12:14:20 <peter1139> I'm tempted to close that one just because the tone.
12:16:01 *** Flygon has quit IRC (Read error: Connection reset by peer)
12:19:41 *** locosage has joined #openttd
12:19:41 <locosage> what tone do you expect when you demand people to go around refactoring random stuff so you can understand your codebase 😡
12:20:33 <locosage> and not the first time either
12:22:07 *** Smedles has joined #openttd
12:32:40 *** techmagus has joined #openttd
12:34:16 *** YourOnlyOne has quit IRC (Ping timeout: 480 seconds)
12:47:00 <locosage> btw, I don't even quite agree with the changes in 12833
12:47:19 <truebrain> andriydohniak: "EVERYTHING"?! 😄
12:47:20 <locosage> to me it's just something I have to do to get 11955 moving
12:47:59 <andriydohniak> truebrain: Everything currently known to me* 😄
12:51:24 <pickpacket> I swear the next PR I do is going to be about fixing the ancient compile warnings
12:51:49 <truebrain> you compiling on GCC 3.8?
12:54:27 <pickpacket> I dunno. Haven't checked
12:54:48 <truebrain> You said ancient, so I had some flashbacks 😛
12:55:03 <pickpacket> But it's a few "this variable may be undefined when used"
12:55:41 <truebrain> fix them, fix them, fix them!
12:57:53 <peter1139> pickpacket, in case you're wondering, none of us get any such warnings, otherwise whatever it was wouldn't've got merged.
12:59:58 <pickpacket> peter1139: I'll make sure to save the log from my next compile and show you 🙂
13:01:27 <pickpacket> I won't get to that until sometime after the summer. Have my kids this week, then two weeks to myself where things are planned, including a couple of gamescripts. Then kids, then work, etc
13:01:46 <truebrain> pickpacket: eat-sleep-work-repeat 😄
13:02:10 <pickpacket> I don't understand how you all get so much coding and reviews done 😆
13:02:24 <truebrain> skipping the "work" part does the trick
13:02:50 <truebrain> just a few days off
13:03:25 <pickpacket> I have four weeks off. Doesn't make a big difference for me 😂
13:03:53 <peter1139> pickpacket, you can just include the log in your PR ;-)
13:06:42 <pickpacket> peter1139: I'd rather show if first in case it turns out I'm just doing something wrong 🤪
14:05:43 *** marchnex has joined #openttd
14:38:37 <truebrain> just means I actually have to test with a client 😛
14:40:15 <truebrain> owh, right, this is where most of it started
14:42:49 <truebrain> amazing how much smaller it now is 😄
14:44:10 <truebrain> well, tbh, why should I test. I am 100.1% sure you already did, so what am I adding 🙂
14:44:36 <truebrain> seriously nice work Rubidium, and sorry I didn't get to it earlier 😦
14:45:24 <truebrain> it will be your 400th PR btw
14:46:46 *** marchnex has quit IRC (Quit: marchnex)
14:46:48 *** talltyler has joined #openttd
14:46:48 <talltyler> Wonder if GitHub has a badge for that, or if they only use funny 2^n computer numbers like a computer science student who's made programming their whole personality
14:48:19 <andriydohniak> If no I am merging it
14:49:30 <andriydohniak> Bet you didn't konw I have a backdoor do github 😈
14:49:32 <truebrain> Key window still isn't marked as dirty when a new company is started
14:49:58 <andriydohniak> I thought I fixed it, let me check
14:51:50 <truebrain> and the window stopped scrolling
14:51:54 <truebrain> that is a new bug 😄
14:51:58 <truebrain> when I scroll down on the cargo list
14:52:04 <truebrain> it doesn't scroll to passenger anymore
14:52:30 <truebrain> hmm, no, it is more subtle than that
14:52:33 <andriydohniak> Ok, back to fixing I go...
14:52:50 <truebrain> off by one issue, it seems
14:52:55 <truebrain> when I scroll to just above Valuables
14:52:59 <truebrain> and I click Valuables
14:53:10 <truebrain> but if I scroll up one more
14:53:24 <truebrain> at least the filter works as expected 😄
14:53:49 <andriydohniak> It does for me!
14:54:08 <truebrain> so basically, in vanilla: click the grey line (Steel), the click the top blue line (Valuables)
14:55:04 <truebrain> I love hearing that 😛
14:55:13 <truebrain> I guess a `<` vs `<=` or something silly 🙂
14:56:35 <truebrain> seems I ran out of other bugs to find 😛
14:56:58 <truebrain> and the persistent highlighting is a lot better; although still a bit quirky if you move around in the key window. But that is for another day to look into
14:57:14 <andriydohniak> truebrain: You poor boy let me thow in some more for you 🤣
14:57:37 <locosage> andriydohniak: I don't like how key is a separate window tbh
14:58:01 <locosage> to me the best way of doing charts is how highcharts lib does it
14:58:52 <locosage> though I guess piling all the companies at the bottom can get a bit too busy
14:59:01 <truebrain> I really like that you now get to see company values that are on top of another very clearly. Maybe that is the best part about this feature. No more toggling of other companies to find out where it is at. Just hovering over.
15:00:20 <andriydohniak> locosage: I think you are 100% right, that is the best way to do graphs, but you are mad if you think I can make them like that 🤣
15:01:17 <locosage> well, I went a bit in that direction already xD
15:01:28 <locosage> no hover niceties though
15:02:45 <andriydohniak> locosage: This does look really nice! I fully agree, my patch has more functionality, and the theaming will probably stay for you, so you aren't loosing that much
15:03:27 <andriydohniak> but I won't make this graph a special case ant make it use the small fonts, just much worse in my oppinion
15:04:12 <truebrain> failed to find any other functional issue with your PR. So I would say, fix up that last bug, and then we look at peter1139 if he wants to give it one more look code-wise. As I got lost in GUI code 😄
15:04:14 <andriydohniak> truebrain: Almost, it was `>` that needed to be `>=`
15:06:08 <andriydohniak> The second time is rebased on master
15:07:45 <andriydohniak> locosage: I found a bug in there 🤣
15:08:01 <andriydohniak> At this specific pixel the black marker is not present
15:08:39 <andriydohniak> my mouse is to the right of the vertical center of the red rectangle
15:08:50 <truebrain> stop breaking stuff!!
15:09:39 <truebrain> andriydohniak: also looked into that "setdirty-on-new-company" bug?
15:09:55 <andriydohniak> Nope, not really
15:10:10 <truebrain> I should write it in the ticket, so we don't forget. But .. #lazy 🙂
15:10:38 <andriydohniak> I have 1 hacky solution, it will probably work though
15:10:49 <truebrain> I rather have nice solutions 😄
15:11:30 <truebrain> owh, it isn't a set dirty
15:11:33 <truebrain> it is an invalidate-data, that is missing
15:12:01 <andriydohniak> well yea, but invalidate data on what?
15:12:17 <andriydohniak> There isn't really OnNewCompany trigger
15:12:44 <andriydohniak> do the other windows with such selectors update automatically?
15:13:02 <truebrain> this is not the only window we update
15:13:05 <truebrain> so it is always a question of: where
15:13:22 <peter1139> Also needs to happen when a company dies.
15:13:32 <truebrain> in this case it was easy to find, as we have events that go to AI/GS on new company
15:13:41 <truebrain> peter1139: good point 🙂
15:14:17 <andriydohniak> There is also OnInvalidateCompanyColour
15:14:31 <andriydohniak> truebrain: That's exactly what I am doing
15:14:38 <truebrain> good! Fix them allllll
15:14:45 <truebrain> but yes, company colour change is another trigger for invalidate 🙂
15:14:55 <andriydohniak> Or leave 1 behind four our 16yo to find 🤣
15:15:10 <truebrain> I am no longer 16 years old, so that won't work
15:15:16 <truebrain> or maybe you are; but then fix it now 😛
15:15:39 <andriydohniak> truebrain: Didn't you say you feel like you are 16?
15:15:44 <andriydohniak> or did your mood change?
15:15:45 <truebrain> I never filled in the blank 😛
15:15:58 <truebrain> as I feel like a 5 year old on an average day
15:17:26 <truebrain> andriydohniak: ah, no, that was a reference to the ugliness of the "Detail" window. It wouldn't surprise me if I wrote that when I was younger. 16 being a random young age that came to mind. More likely I was 19 or so
15:18:06 <andriydohniak> WHAT? you were contributing to OpenTTD since you were 19 and at least for 20 years?
15:18:21 <truebrain> I feel you are calling me "old" now 😦
15:18:35 <andriydohniak> No, I am just shocked you aren't bored by now
15:18:54 <andriydohniak> I switch projects on depending on my mood and sometimes once per day
15:19:22 <truebrain> it is like a bomerang. You can run from OpenTTD, but it always hits you in the face when you least expect it
15:19:51 <andriydohniak> truebrain: Ok, I will duck at random moments in public so it hits someone else
15:21:18 <truebrain> that moment andriydohniak finds out they are surrounded by old farts!
15:22:23 <andriydohniak> truebrain: No, that moment I find out ppl who are 2 times my age behave like silly little guys trolling each other and doing random stuff in a game 3x my age. This is fun, and I want to be like that when I grow up
15:22:42 <truebrain> The game is 20 years old. So that makes you .. wait, what? 😛
15:23:01 <andriydohniak> But isn't it a fork of a fork...
15:23:26 <truebrain> it is based on a game from 1994/1995
15:23:32 <truebrain> but OpenTTD exists 20 years now
15:23:36 <truebrain> we celebrated that a few months back
15:23:50 <truebrain> but even with 1994, that would make you .. 10? 😛
15:24:08 <truebrain> and NOW you are getting it 😄
15:24:14 <andriydohniak> That's how I will justify my awesome math skills
15:25:31 <truebrain> "But teacher, I am only 10! A random Discord server said so!"
15:25:54 <_glx_> I hate tracing the throw responsible for a catch
15:26:15 <_glx_> especially when it's a `catch(...)`
15:28:04 <peter1139> If you're looking at the NewGRF debug one, I already have a fix for that.
15:28:53 <_glx_> but my guess is fmt throwing
15:29:20 <_glx_> I just want to see where
15:29:55 <peter1139> Non-UTF8 NewGRF strings being output directly.
15:30:01 <peter1139> In FeatureNewName()
15:32:30 <_glx_> oh and the GrfMsg(6) above should use `endid - 1`
15:33:01 <peter1139> You can independently fix that if you like. They might be others :)
15:34:19 <_glx_> and indeed it's fmt throwing std::runtime_error("invalid utf8")
15:35:07 <_glx_> oh the usual automatic conversion failing, not the first time
15:35:39 <peter1139> NewGRF strings are not utf-8 at this point, they get converted later.
15:35:42 <_glx_> it's in detail::utf8_to_utf16::utf8_to_utf16
15:35:57 <peter1139> So it's not fmt failing, it's newgrf.cpp failing :-)
15:42:20 *** heiki[m] has joined #openttd
15:44:15 <andriydohniak> Ok, now it is fixed
15:44:36 *** heiki[m] is now known as Meiki
15:51:40 <_jgr_> andriydohniak: Some people are very into the meta-game of having a solid green contribution bar on their github profile page, I wouldn't go down that route if I were you 😛
15:52:12 <andriydohniak> _jgr_: Look at my green squares! 🤣
15:52:14 *** goddess_ishtar has joined #openttd
15:52:14 <goddess_ishtar> Don't fall to the Dark Side
15:52:24 <andriydohniak> I am the last person that would care about that
15:52:44 <andriydohniak> there are even bots to do it automatically
15:53:40 <andriydohniak> but if I would have pushed everything I work on to private gh repos, I would have much more squares, I just do a tonn of experiments that teach me things but never become projects worth publishing or saving
15:56:19 <truebrain> andriydohniak: That at least is the right attitude 🙂
15:57:01 <andriydohniak> I know nobody will look at my gh profile in the next 2y, so why bother 🤣
15:57:31 <truebrain> Because it helps for any job after those 2y 😉
15:57:54 <andriydohniak> truebrain: Yea I will start bothering 1 y later 😄
15:58:42 <andriydohniak> Right now I am doing full stack rust, it's very fun
15:59:02 <goddess_ishtar> andriydohniak: the green is shiny
15:59:08 <truebrain> andriydohniak: Till it isn't 😛
15:59:20 <andriydohniak> truebrain: DId you try?
15:59:38 <truebrain> Ofc! As ... because 🙂
15:59:56 <andriydohniak> what was your problem with it?
16:01:18 <andriydohniak> The compatibility with WASM isn't the best, and it's not that fast, especially with CSR, but just for fun and because I like rust, why not
16:01:36 <truebrain> I use Rust a lot to speed up websites 😛
16:01:45 <truebrain> A bit too much maybe 😄
16:01:56 <_glx_> talltyler: I received a badge for 2nd, 16th and 128th merged PR
16:02:04 <andriydohniak> Ahh so the job just makes you not like it?
16:02:25 <truebrain> Nah, Rust is fine .. till it isn't 😄
16:02:50 <truebrain> You can get so lost in "how to make this mutable" 😛
16:03:34 <andriydohniak> I bet I can't! I bet I am better then everybody! I bet I won't have any issues with rust!
16:04:08 <_glx_> every language has its own issues
16:04:09 <andriydohniak> Yea, changing type signatures is a pain in bigger projects
16:05:16 <andriydohniak> I would like the LSPs to support changing the type like they support renaming, but it is just impossible to make it as easy
16:18:02 <andriydohniak> truebrain: If you have a lot of xp in rust also related to web dev would you mind if I sometimes ask you some questions related to that?
16:18:09 <peter1139> I'm sure GrfMsg used to be a macro that didn't evaluate the string formatting unless it was needed.
16:18:13 <peter1139> Isn't Debug() like that already?
16:18:36 <LordAro> probably removed in the fmt rework
16:19:04 <peter1139> Hmm, maybe it does forward it.
16:19:27 <peter1139> In which case the formatting only happens when it's needed, but as you say, now the StrMakeValid will always happen.
16:20:34 <peter1139> Hmm, no, because GrfMsgI takes a std::string.
16:22:04 <peter1139> #define GrfMsg(severity, format_string, ...) do { if ((severity) == 0 || _debug_grf_level >= (severity)) GrfMsgI(severity, fmt::format(FMT_STRING(format_string), ## __VA_ARGS__)); } while (false)
16:22:13 <peter1139> Something like that should cover it all.
16:22:55 <LordAro> certainly the easiest way
16:23:00 <LordAro> i guess there's no "nice modern C++" way?
16:23:09 <LordAro> a lambda would work, i guess
16:24:05 <andriydohniak> you can change `do while(false)` with `for(int i = 0; i < 1; i++) {}`
16:25:32 *** HerzogDeXtEr has joined #openttd
16:26:03 <_jgr_> You'd then end up with ghastly bugs if the expression in the macro body happened to refer to different `i` 😛
16:26:28 <andriydohniak> _jgr_: wow I didn't even think about that! C macros are hard!
16:27:32 <peter1139> LordAro, might as well just do `if (GrfDebug(8)) GrfMsg(8, "...", ...);` though. Probably would be shorter and more performant than lambdas.
16:27:59 <LordAro> i can't remember off the top of my head why the do while is needed at all, instead of just {}
16:28:13 <peter1139> Just in case scope.
16:28:22 <_jgr_> It's so that you don't get weird behaviour if there's an `else` afterwards
16:28:48 <LordAro> peter1139: sure, but how to do that without macros?
16:29:01 <andriydohniak> And all of this because C is weird with variable arguments
16:29:01 <LordAro> (and excessive duplication)
16:29:59 <andriydohniak> I didn't know about macros and I was writing something in C that needed a tonn of loging functions that depended on printf (va_args printf version), and I needed to define 2 types for each function, one for va_args, and 1 normal
16:31:46 <peter1139> Well, `GrfMsg(8, &[]() { return std::format("...", ...); });` is not ideal either.
16:32:41 <andriydohniak> peter1139: Is this a C macro with a C++ lambda?
16:32:54 <peter1139> No, that would just be a function.
16:37:43 <andriydohniak> LordAro: This is all fun and games, but I am noping out of there! I have never seen rust that looks as bad
16:53:28 <peter1139> That seems to be... you can do it with macros, or you can do it with lambdas, or you can do this other way which is a combination of templates, lamdbas and macros...
16:57:22 <peter1139> Oh no, my piano has a 'boots and cats' metronome mode...
17:00:47 <andriydohniak> peter1139: Is there a va_args version of std::fromat?
17:02:02 <LordAro> va_args is very much not good C++
17:02:30 <andriydohniak> Is there a replacement?
17:03:21 *** gelignite has joined #openttd
17:04:00 <andriydohniak> so why not create a new function that uses that?
17:04:20 <LordAro> because each parameter is still evaluated?
17:04:24 <LordAro> va_args didn't help with that
17:04:58 <andriydohniak> Ahh, so you still want lazy evaluation of parameters 🤔
17:07:28 <truebrain> Captured? Playing too much pokomon?
17:08:22 <LordAro> no, i think that's right
17:08:27 *** wensimehrp has joined #openttd
17:08:27 <wensimehrp> I have three copies right on my desk
17:08:46 <truebrain> LordAro: That they are playing too much pokomon?
17:09:07 <truebrain> I tried Palworld the other day .. I liked capturing animals 😄
17:09:15 <LordAro> but i think 'captured' is the correct word here
17:09:29 <peter1139> Cover would be a more appropriate word.
17:10:29 <truebrain> I was mostly just joking around, but now I had to look up what capture meant .. and I am surprised about what LordAro says, given he is from the UK 😛
17:10:37 <peter1139> The cargo list has always done this, however it used to extend to the full window width, just just the left side.
17:10:53 <truebrain> (and so my trolling continues)
17:11:24 <truebrain> peter1139: it does look odd, however 😛
17:11:58 <peter1139> And the reason it doesn't shrink back is so that it doesn't flip-flop between two states, which could happen if the window itself changes where the cursor points.
17:12:37 <peter1139> I recommend using sane industry sets, which OTIS most definitely is not.
17:13:18 <wensimehrp> that's pretty much an extreme case
17:13:39 <truebrain> and is it me, or is there a pixel leaking through just above the "Empty platform"?
17:13:55 *** peter1138 has joined #openttd
17:13:59 <truebrain> halfway in the movie, you still see some brown stuff
17:14:12 <truebrain> like, what is that?
17:14:25 <wensimehrp> GIF compression problem likely
17:14:35 <truebrain> why would any compression do that?
17:15:28 <peter1139> This also happens with OTIS.
17:15:51 <truebrain> who allowed more than 5 cargoes? 😛
17:16:06 <peter1139> Let's do this properly.
17:16:40 <andythenorth> these are the most in FIRS 😛
17:20:55 <peter1139> OTIS is also designed for using overlapping object tiles with. It therefore gets my vote as something to ignore completely.
17:22:02 <peter1139> If only I could go back in time and fix the object (and other tile layout specs) to not allow overlapping tiles...
17:23:29 <truebrain> if you could go back in time, THAT is what you would change? 😛
17:25:21 <peter1139> Yes. Nothing else maters.
17:26:37 <locosage> station acceptance and supply can come from multiple industries
17:38:24 <andythenorth> peter1139: "what are overlapping tiles?"
17:41:44 *** ladysadie has joined #openttd
17:49:53 *** silent_tempest has joined #openttd
17:49:53 <silent_tempest> Can I get a review on:
17:49:53 <silent_tempest> It's been rotting for a while now and it's blocking the rest of the font chooser work.
18:13:17 <silent_tempest> andythenorth: Lunch in +2 hours? Lol
18:15:26 *** jinks has quit IRC (Remote host closed the connection)
18:25:52 <silent_tempest> Bleh it's actually going to way longer than two hours for me to cook this food. :/
19:47:02 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
19:53:12 *** YourOnlyOne has joined #openttd
19:54:47 *** techmagus has quit IRC (Ping timeout: 480 seconds)
20:15:27 *** gelignite has quit IRC (Quit: Stay safe!)
20:38:25 *** ladysadie has quit IRC (Quit: Leaving.)
20:45:28 *** nielsm has quit IRC (Ping timeout: 480 seconds)
21:04:20 <silent_tempest> @pickpacket Sounds like you'll be fine doing C++.
21:04:40 <silent_tempest> Also in regards to compile warnings I get a shit ton from a build of OpenTTD from files I've not touched.
21:06:08 <silent_tempest> I suspect my compiler is more recent than whatever github is using... Or Cmake enabled more warnings on my local build? Either I have quite a few errors that don't seem to showing up for other people. Honestly I looked at fixing a couple of them cause they for sure annoy me but I wasn't sure to actually fix the first couple I looked at...
21:06:26 <silent_tempest> Warnings*... not errors.
21:33:47 *** toktik has quit IRC (Remote host closed the connection)
21:43:16 *** ChanServ sets mode: +v tokai
21:48:32 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:48:33 <LordAro> silent_tempest: PRs accepted
21:48:41 <LordAro> assuming the warnings are genuine :p
21:49:14 <LordAro> msys usually uses the most recent compiler
21:50:18 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
21:54:35 <silent_tempest> All I have are clean-up PR's... :/
21:54:50 <silent_tempest> Also I for real didn't see how to fix the first one I looked at
21:55:00 <silent_tempest> I don't remember what the warning was about
21:55:05 <silent_tempest> I can post it again later
21:55:35 <silent_tempest> talltyler: Thanks.
22:14:23 <_glx_> there are 5 "known" warnings for linux generic release
22:15:12 <_glx_> all of them are "maybe uninitialised"
22:15:59 <_glx_> and 4 are from the same template
22:20:58 <_glx_> and it's using gcc 12.2.1 while CI is on gcc 11.4.0
22:22:10 <_glx_> mingw nightly CI is using gcc 14.1.0 and doesn't warn
22:26:15 <_glx_> looks like false positive to me
22:26:27 <silent_tempest> Omg it's a fucking game changer for me to realize I can view the review comment by commit... Now I know exactly where to go during a rebase to fix each item.
22:26:30 <_glx_> index is always assigned at some point
22:27:20 <_glx_> but adding a default init to 0 should silence them
22:28:04 <peter1138> Which doesn't mean there are none, just we don't know them. So best to report/fix.
22:28:24 <_glx_> CI can't catch everything
22:28:34 <_glx_> so many different compiler versions
22:37:56 <_glx_> yeah the last warning is also false positive
23:25:10 <silent_tempest> Man I'm really confused
23:25:20 <silent_tempest> What is the single line comment format supposed to be?
23:25:51 <silent_tempest> ```/** comment */
23:26:27 <silent_tempest> Are listed in the coding style document but I also see example of:
23:26:27 <silent_tempest> ```/* comment */```
23:26:27 <silent_tempest> in the code base
23:27:00 <silent_tempest> Also that first block has a typo. It should read:
23:27:00 <silent_tempest> ``` /** comment */
23:27:00 <silent_tempest> ///< comment ```
23:28:54 <silent_tempest> There's even a few ``` // comment ``` that I didn't write.
23:42:49 <_glx_> anyway if comments are on their own line (or multiline) use /* */
continue to next day ⏵