Config
Log for #openttd on 31st May 2021:
Times are UTC Toggle Colours
00:29:48  *** glx has quit IRC
00:33:17  *** glx has joined #openttd
00:33:17  *** ChanServ sets mode: +v glx
00:37:00  *** tokai|noir has joined #openttd
00:37:00  *** ChanServ sets mode: +v tokai|noir
00:43:02  *** gelignite has joined #openttd
00:43:58  *** tokai has quit IRC
00:44:52  *** Gustavo6046 has quit IRC
00:46:42  *** Gustavo6046 has joined #openttd
00:54:16  *** geli has quit IRC
01:05:27  *** tokai has joined #openttd
01:05:27  *** ChanServ sets mode: +v tokai
01:12:14  *** tokai|noir has quit IRC
01:17:39  *** tokai has quit IRC
01:20:24  *** tokai has joined #openttd
01:20:24  *** ChanServ sets mode: +v tokai
01:24:15  *** tokai|noir has joined #openttd
01:24:15  *** ChanServ sets mode: +v tokai|noir
01:31:07  *** tokai has quit IRC
01:46:42  *** tokai has joined #openttd
01:46:42  *** ChanServ sets mode: +v tokai
01:52:15  *** Beer has quit IRC
01:53:37  *** tokai|noir has quit IRC
02:03:34  *** tokai|noir has joined #openttd
02:03:34  *** ChanServ sets mode: +v tokai|noir
02:10:41  *** tokai has quit IRC
02:31:23  *** tokai has joined #openttd
02:31:23  *** ChanServ sets mode: +v tokai
02:38:20  *** tokai|noir has quit IRC
02:47:10  *** tokai|noir has joined #openttd
02:47:10  *** ChanServ sets mode: +v tokai|noir
02:54:19  *** tokai has quit IRC
02:55:17  *** Wormnest has quit IRC
03:07:07  *** glx has quit IRC
03:21:35  *** tokai has joined #openttd
03:21:35  *** ChanServ sets mode: +v tokai
03:28:32  *** tokai|noir has quit IRC
03:40:48  *** tokai|noir has joined #openttd
03:40:48  *** ChanServ sets mode: +v tokai|noir
03:44:11  *** Flygon has joined #openttd
03:47:51  *** tokai has quit IRC
04:15:43  *** Gustavo6046 has quit IRC
04:28:43  *** tokai has joined #openttd
04:28:43  *** ChanServ sets mode: +v tokai
04:35:36  *** tokai|noir has quit IRC
05:47:59  *** snail_UES_ has quit IRC
06:02:09  <DorpsGek> [OpenTTD/OpenTTD] btzy commented on pull request #8461: Feature: Permanent rivers https://git.io/JG8SR
06:59:00  *** andythenorth has joined #openttd
07:03:47  *** gelignite has joined #openttd
07:12:27  <andythenorth> yo
07:12:28  *** andythenorth has quit IRC
07:12:36  <TrueBrain> now that is rude
07:15:38  *** EER has joined #openttd
07:15:51  *** andythenorth has joined #openttd
07:32:38  <TrueBrain> holy crap, what happened with the saveload of GameLog .. now that is an odd duck
07:33:26  *** HerzogDeXtEr has joined #openttd
07:38:14  *** gelignite has quit IRC
08:00:48  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain opened pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
08:10:28  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain opened pull request #9324: Codechange: use AsIntSetting()->Read() wrapper if possible https://git.io/JG4mS
08:11:51  <DorpsGek> [OpenTTD/OpenTTD] LordAro approved pull request #9324: Codechange: use AsIntSetting()->Read() wrapper if possible https://git.io/JG4mN
08:12:03  <TrueBrain> wow, that was .. quick :P
08:12:19  <DorpsGek> [OpenTTD/OpenTTD] btzy opened pull request #9325: Feature: Ctrl-Click on vehicle list in GB_SHARED_ORDERS opens order window https://git.io/JG4mh
08:13:27  <DorpsGek> [OpenTTD/OpenTTD] btzy updated pull request #9325: Feature: Ctrl-Click on vehicle list in GB_SHARED_ORDERS opens order window https://git.io/JG4mh
08:13:28  <TrueBrain> time for "preview" label!
08:14:31  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
08:14:35  <TrueBrain> ugh, can't we just add #include <vector> and friends in stdafx.h
08:14:44  <TrueBrain> only MSVC doesn't seem to have that included by default :P
08:15:37  <LordAro> TrueBrain: was simple :p
08:16:01  <LordAro> could do i suppose, might need some compiletime profiling
08:16:20  <LordAro> don't really want to turn stdafx into "include all the stl"
08:17:04  <TrueBrain> yeah, not sure it is a good idea
08:17:11  <TrueBrain> it just annoys me it is only MSVC who doesn't have it
08:17:26  <TrueBrain> means I have no way of knowing till the CI complains :P
08:17:33  <TrueBrain> andythenorth: https://www.reddit.com/r/openttd/comments/nooalw/animated_map_of_7_competing_ais_over_100_monthly/ <- he made it more awesome
08:17:58  <LordAro> more likely is that gcc has it in one of the headers already in stdafx
08:18:04  <LordAro> memory or so
08:18:37  <TrueBrain> ah, yeah, that would be possible too :D
08:18:48  <TrueBrain> well, not long now every header has #include <vector>  anyway, at this rate :P
08:19:03  <TrueBrain> owh, that animation makes me want to revive the AI tournament
08:19:16  <TrueBrain> where we constantly let all AIs available on BaNaNaS battle to give back a ranking based on map-settings
08:19:37  <LordAro> samu, is that you?
08:19:51  <TrueBrain> so tempted to follow up with @kick :)
08:20:24  <LordAro> :<
08:20:56  <TrueBrain> too bad I don't really have access to infinite CPU time anymore
08:21:08  <TrueBrain> we used to run it on .. "a place" where they didn't mind it takes full CPUs for hours at end :P
08:21:21  <LordAro> haha
08:21:44  <LordAro> get a cheap dedicated thing from hetzner
08:21:59  <LordAro> doesn't have to be "official"
08:22:46  <TrueBrain> I liked the AI tournaments, pushed AI developers of doing better than the competition at the start
08:23:38  <LordAro> trouble is, it doesn't really make AIs better to play against
08:24:01  <TrueBrain> no .. it just kickstarted AIs using each others work to get better :)
08:24:43  <TrueBrain> long-term it has little meaning, to let them battle each other .. you only get "rondje om de kerk" approaches to win :P
08:25:12  *** Beer has joined #openttd
08:25:15  <LordAro> i'd like to see more 'balanced' AIs
08:25:18  <LordAro> like simpleai
08:25:25  <TrueBrain> define "balanced"?
08:25:54  <LordAro> 'easier' :p
08:26:04  <LordAro> doesn't just build as fast as it can
08:26:24  <LordAro> /make as much profit as it can
08:26:32  <TrueBrain> one of the main issues with AIs I have found, the game is way too complex for a single developer to really make a good AI
08:26:41  <TrueBrain> (in terms of: nice to play with)
08:26:47  <TrueBrain> or against, of
08:26:48  <TrueBrain> c
08:27:35  <TrueBrain> and I guess your balanced requires an AI to understand how the player is doing, and adjust accordingly
08:27:43  <TrueBrain> so for newbies it is more relaxed than for experts :P
08:27:51  <LordAro> relatedly, i think we should be able to fix/patch/paper-over the AIs that crash
08:27:58  <LordAro> makes for bad game experience
08:28:22  <TrueBrain> yeah, AIs do a bad job handling their errors
08:28:37  <TrueBrain> it is not like we gave tools to help with it
08:28:53  <TrueBrain> honestly, I expected a boilerplate AI by now, that does most of the ground work for you
08:28:58  <TrueBrain> and you can just add your own logic on top
08:28:59  *** OsteHovel has joined #openttd
08:29:02  <LordAro> even aroai crashes in some rare newgrf-related case :p
08:29:42  <TrueBrain> I guess a benefit of doing AI tournaments would be that we can collect the most common crashes etc
08:29:50  <TrueBrain> and see if we can address them code-wise
08:30:18  <TrueBrain> we also don't really have a "how to get started making your own AI" guide :)
08:30:49  <TrueBrain> again, I was really hoping with NoAI it would spin up an community that would take care of all that :)
08:31:14  <LordAro> the stuff on the wiki wasn't *that* bad
08:31:37  <TrueBrain> well, these days, if it isn't in a YouTube format
08:31:39  <LordAro> i figured out programming in general from it, afterall
08:31:49  <LordAro> but yeah, could definitely be better
08:32:04  <TrueBrain> and I don't mean as much the content, but more the form
08:32:21  <TrueBrain> as such, YouTube is a nice media for it
08:32:30  <TrueBrain> doing a bit of coding, showing what it does
08:32:30  <LordAro> really?
08:32:36  <TrueBrain> telling where to click, what to see, how to deal with it all
08:32:57  <TrueBrain> I learnt Unity mostly from YouTube movies, for example
08:33:15  <LordAro> i generally dislike video tutorials
08:33:20  <TrueBrain> as with the text variants, I was spending 10 minutes finding the menu
08:33:22  <TrueBrain> or the button
08:34:20  <TrueBrain> searching on youtube gives 0 hits so far :P
08:37:01  <TrueBrain> I also still thinks it doesn't help our AI framework is in Squirrel, a relative unknown language
08:37:08  <TrueBrain> for non-programmers that makes it a lot harder getting into it
08:38:23  <TrueBrain> that you got through that .. is the exception, it feels like :P
08:40:21  <planetmaker> Hi TrueBrain , I did. I thought Spike handled it? Or something else?
08:40:35  <TrueBrain> no clue, was just making sure you got the message :)
08:40:52  <planetmaker> yes, I do. And I do read here (or discord)
08:40:56  <TrueBrain> cool :)
08:41:06  <TrueBrain> I never know who reads what anymore :P
08:41:15  <planetmaker> just quite busy times ... so not very talkative usually :)
08:41:26  <TrueBrain> that is perfectly fine :)
08:41:50  <planetmaker> I'm always amazed how vibrant and busy this channel and github is. <3
08:42:03  <TrueBrain> haha, just 2 or 3 people, looks can be deceiving :P
08:42:04  <TrueBrain> :D :D
08:42:20  <TrueBrain> but will openttdcoop survive a bit longer you think?
08:42:25  <planetmaker> just introduced the next generation players to how to OpenTTD the other weekend. They love it:)
08:42:50  <TrueBrain> haha, I cannot believe people like a 17 year old game :P
08:43:02  <planetmaker> I've no plan to shut it down.... but it really needs to go down in required maintenance :D
08:43:06  <LordAro> TrueBrain: whatever did we do without Rb? :p
08:43:07  *** WormnestAndroid has quit IRC
08:43:08  <TrueBrain> for the nostalgic player, I can understand it .. but new players? :)
08:43:20  *** WormnestAndroid has joined #openttd
08:43:21  <planetmaker> well... 12 and 14 years is new, definitely :P
08:43:30  <TrueBrain> planetmaker: if I can help keep it alive, let me know .. would be a shame to lose it, honestly
08:43:50  *** WormnestAndroid has quit IRC
08:44:01  <planetmaker> what part is particularily useful?
08:44:03  *** WormnestAndroid has joined #openttd
08:44:26  <TrueBrain> for me personally: https://wiki.openttdcoop.org/ProZone:Archive_-Games_1-_10
08:44:27  <TrueBrain> :D
08:44:30  <planetmaker> :D
08:45:02  <TrueBrain> could all be read-only as far as I care, but having the history available is very very nice from time to time
08:45:18  <TrueBrain> ofc also https://webster.openttdcoop.org/
08:45:41  <TrueBrain> and for "where the fuck is this GRF" ofc https://bundles.openttdcoop.org/
08:45:52  <planetmaker> yes, it is, I agree. Well, the server is paid for by me. Andy chips in a few bucks every month. Dihedral so far covers the domain costs...
08:46:29  <TrueBrain> we could for example make a read-only copy of everything and host that (rather cheap) on AWS / Cloudflare
08:47:04  <TrueBrain> I have no clue how many projects on https://dev.openttdcoop.org/projects haven't moved to GitHub, that might be a bit more difficult to read-only copy
08:47:40  <TrueBrain> example of how openttd.org uses read-only copies: https://bugs.openttd.org/task/3232
08:47:44  <TrueBrain> there is nothing dynamic about that page
08:49:53  <TrueBrain> https://bundles.openttdcoop.org/dutchtrains/releases/?C=M&O=D <- at least someone is still actively using devzone :D
08:51:15  <planetmaker> :) Yeah.
08:51:47  <planetmaker> as to projects from devzone: I started moving projects (quite some time ago). But there are projects which are not nicely imported by github's import
08:52:25  <TrueBrain> :( That is always rather annoying, as that means the time to do that explodes .. and time is the one resource we are short of :D
08:52:44  <planetmaker> not sure what to do about those. But actually the hosting part (at least for general  public), I'd like to get rid of. Not to get rid of the server, but to get rid of the maintenance for all the related services which require more attention than there are people to give attention to it
08:53:22  <TrueBrain> I remember the moment I switched off the old OVH server for openttd.org ... it made me sleep a whole lot better at night I can tell you :)
08:53:50  <planetmaker> I will keep the server around for any forseeable future - also for other reasons... personal playground :P
08:53:55  <TrueBrain> haha :D
08:54:14  <TrueBrain> well, going read-only for large parts might already reduce the burden of maintaining
08:54:29  <TrueBrain> not having to update or care about the redmine version for example, I can imagine helping out :D
08:54:39  <andythenorth> the projects that won't move were mostly due to eints making invalid hg commits
08:54:43  <andythenorth> but hg accepting them
08:54:43  <andythenorth> hurrah
08:54:48  <TrueBrain> lolz
08:54:50  <andythenorth> hg 'user friendly' :)
08:54:57  <andythenorth> they can be fixed up manually
08:55:00  <planetmaker> :D hi andy
08:55:02  <andythenorth> I may even have written down how to do
08:55:04  <andythenorth> hi
08:55:18  <TrueBrain> planetmaker: anyway, just wanted to check up, glad to read it is on your mind :) And again, if I can help, just let me know!
08:55:43  <andythenorth> allegedly https://gist.github.com/andythenorth/3ff4f8f04b37518d5a3d769027671366
08:56:11  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain merged pull request #9324: Codechange: use AsIntSetting()->Read() wrapper if possible https://git.io/JG4mS
08:56:11  <andythenorth> that is quite local to me, in respect of python paths etc ^
08:56:31  <andythenorth> also https://github.com/frej/fast-export
08:56:42  <andythenorth> and https://dzone.com/articles/convert-a-mercurial-repository-to-git-using-hg-fas
08:56:49  <planetmaker> aye, I shall definitely remember that offer and very much appreciate that. I shall have to sort my thoughts on how to consolidate the running services and then I will come back to you (yes... I always take my time to think about that... alas... stuff doesn't vanish while I do :P )
08:56:53  <TrueBrain> cannot believe andythenorth of all people has a written down guide for this, lolz :)
08:57:11  <TrueBrain> planetmaker: like I move fast with any of such changes, haha :)
08:57:19  <andythenorth> TrueBrain funny how I work
08:57:31  <TrueBrain> I think that is very healthy to think about it :)
08:57:33  <andythenorth> because I am a bad programmer, I often write down my steps so I can repeat them
08:57:43  <andythenorth> but TBH some of that was from frosch
08:58:20  <TrueBrain> right, I am off, ciao for now :)
08:58:24  <andythenorth> bye
08:58:26  <TrueBrain> and nice "seeing" you again planetmaker :)
08:58:34  <planetmaker> ^^ same, same
08:58:36  <TrueBrain> we really need an OpenTTD meet-up :P
08:58:39  <TrueBrain> stupid Covid ...
08:58:40  *** tokai|noir has joined #openttd
08:58:40  *** ChanServ sets mode: +v tokai|noir
08:58:41  <TrueBrain> "soon" (tm)
08:58:44  <planetmaker> we should think about an OpenTTD party when we can again ;)
08:58:53  <TrueBrain> absofuckinglutely
08:59:42  <planetmaker> but... only 25584 commits in github. We used to have more, did we? :D
09:01:55  <planetmaker> woo... r25k party is... 8 years ago :-O
09:02:30  <planetmaker> r25k was 1.3.0-RC1 :D
09:02:49  <planetmaker> hm... no, branching 1.3.0. Not an actual release :)
09:03:16  <DorpsGek> [OpenTTD/OpenTTD] btzy updated pull request #9325: Feature: Ctrl-Click on vehicle list in GB_SHARED_ORDERS opens order window https://git.io/JG4mh
09:03:19  <planetmaker> <@DorpsGek>	Commit by rubidium :: r25000 branches/1.3/ (2013-02-14 18:52:05 UTC)
09:03:44  <Xaroth> wait, party, does that require being social?
09:03:55  <Xaroth> it's been so long that I've forgotten how to social.
09:03:58  <planetmaker> no. Only sociopaths are allowed
09:04:06  <Xaroth> phew, I should fit right in then.
09:04:15  <planetmaker> ^^
09:04:28  <Xaroth> (I figured I'd say that before TrueBrain tried to make that joke)
09:05:39  *** tokai has quit IRC
09:07:09  <LordAro> according to GH's commit count, we got to 25k again a month or two ago
09:07:36  <LordAro> not quite sure where 3k commits disappeared to in the conversion
09:11:02  <Xaroth> so r50k party
09:13:33  <LordAro> what is this 'r' of which you speak?
09:15:09  *** ioangogo has quit IRC
09:15:41  *** iSoSyS has joined #openttd
09:15:52  <Xaroth> c50k sounds a bit.. weird
09:18:00  <DorpsGek> [OpenTTD/OpenTTD] JGRennison commented on pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4Br
09:20:11  *** iSoSyS has quit IRC
09:20:28  <planetmaker> y2k22 party? :D
09:25:02  *** sla_ro|master has joined #openttd
09:35:53  *** ioangogo has joined #openttd
09:57:30  *** redisku has joined #openttd
09:59:44  *** redisku has quit IRC
10:01:42  <andythenorth> hmm
10:02:06  <andythenorth> the requirement for Food in Tropic / Arctic is....not always wanted
10:02:29  <andythenorth> some way to circumvent it?
10:13:43  <DorpsGek> [OpenTTD/OpenTTD] JGRennison commented on pull request #9322: Add: store settings as key->value pair https://git.io/JG4wM
10:23:00  *** tokai has joined #openttd
10:23:00  *** ChanServ sets mode: +v tokai
10:29:43  *** andythenorth_ has joined #openttd
10:30:01  *** tokai|noir has quit IRC
10:34:16  *** andythenorth has quit IRC
10:55:22  *** tokai|noir has joined #openttd
10:55:22  *** ChanServ sets mode: +v tokai|noir
10:58:45  *** Samu has joined #openttd
10:59:01  <Samu> wow, the new landscape grid is very confusing
11:02:14  *** tokai has quit IRC
11:02:19  <Xaroth> the new what is what?
11:04:32  <Samu> https://github.com/OpenTTD/OpenTTD/blob/master/docs/landscape_grid.html
11:08:34  <peter1138> Weird, turns out my raspberry pi is on a different circuit.
11:09:07  <peter1138> Just tripped the downstairs breaker with an apparently bad garden extension lead :/
11:14:22  <andythenorth_> such excite
11:41:43  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #9322: Add: store settings as key->value pair https://git.io/JG47C
11:51:50  <peter1138> That's the meadow partly cleaned up
11:53:07  <peter1138> Urgh, just remembered I need to replace a seatbelt as was chewed by a oog :/
11:53:17  <andythenorth_> oogs are the worst
11:53:23  <andythenorth_> what kind of oog?
11:53:46  <peter1138> Terrior-cross. Little thing got angsty.
11:56:06  *** andythenorth has joined #openttd
11:56:56  <peter1138> Terrier? Something like that.
11:56:59  <peter1138> She's a terror.
12:01:56  *** andythenorth_ has quit IRC
12:04:07  <TrueBrain> hmm .. having templates in the .h and .c file is always a bit more tricky than I would like :)
12:04:53  <andythenorth> so are we still banning military stuff?
12:05:12  * andythenorth designing a FIRS economy that might include naval dockyard, and explosives factory
12:09:28  *** sla_ro|master has quit IRC
12:09:41  <TrueBrain> sometimes people are vague enough that I am left standing: yeah, and now what?
12:09:49  <TrueBrain> :D
12:10:04  <TrueBrain> even someone else upvoted it .. I am none the wiser how to proceed :P
12:10:20  <TrueBrain> well, lets just do something and see if that results in better indication in what to do next :D
12:10:29  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4FP
12:10:32  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
12:15:26  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
12:23:12  *** andythenorth has quit IRC
12:30:55  *** glx has joined #openttd
12:30:55  *** ChanServ sets mode: +v glx
12:37:19  <TrueBrain> I think it is funny that most things in C++ now has to be done very explicit, but a thing like std::initializer_list to std::vector is done silently .. and if you look at the code that it generates, I would rather have that it complained in some way about me trying :D
12:58:11  <DorpsGek> [OpenTTD/OpenTTD] glx22 commented on pull request #9180: Codechange: Remove FOR_ALL_CHUNK_HANDLERS https://git.io/JGBv0
13:00:27  <TrueBrain> chunk_handlers = [*chunk1 + *chunk2]
13:00:31  <TrueBrain> sometimes Python is just easier :P
13:01:07  *** tokai has joined #openttd
13:01:07  *** ChanServ sets mode: +v tokai
13:02:31  <TrueBrain> glx: maybe typedef "std::initializer_list<ChunkHandler>"; I did that in #9323 for the SaveLoad, at least I think that makes it a lot more readable :)
13:08:04  *** tokai|noir has quit IRC
13:18:28  <DorpsGek> [OpenTTD/OpenTTD] SamuXarick updated pull request #8461: Feature: Permanent rivers https://git.io/JLS3A
13:26:56  <glx> ah yes it's cleaner with a typeded :)
13:27:03  <glx> *typedef
13:27:10  <DorpsGek> [OpenTTD/OpenTTD] JGRennison commented on pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JGBk0
13:30:32  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JGBI7
13:31:32  <TrueBrain> now that is an explanation I can work with :D
13:32:16  *** nielsm has joined #openttd
13:34:32  *** sla_ro|master has joined #openttd
13:53:57  *** tokai|noir has joined #openttd
13:53:57  *** ChanServ sets mode: +v tokai|noir
14:01:22  *** tokai has quit IRC
14:04:38  *** tokai|noir has quit IRC
14:07:46  *** tokai has joined #openttd
14:07:46  *** ChanServ sets mode: +v tokai
14:18:03  *** snail_UES_ has joined #openttd
14:20:13  *** snail_UES_ has quit IRC
15:00:18  *** Wormnest has joined #openttd
15:21:14  *** andythenorth has joined #openttd
15:23:34  <TrueBrain> ugh, so many shit "since c++20"
15:23:38  <TrueBrain> can't we just switch to c++20? :P
15:25:10  <LordAro> could import gsl
15:25:34  <glx> or use boost ;)
15:25:36  * glx runs
15:26:08  <TrueBrain> LordAro: I am now copying selective from gsl :P
15:26:11  <TrueBrain> not sure that is any better
15:26:12  <TrueBrain> well, gsl-lite
15:26:30  <TrueBrain> my selective copying gives a nice small class to work with
15:26:32  <TrueBrain> bbuuutttt
15:26:35  <TrueBrain> it doesn't have all nice things
15:26:48  <TrueBrain> as std::is_layout_compatible is C++20
15:38:53  <LordAro> does that rely on language features or something?
15:39:55  <TrueBrain> what part are you asking about?
15:40:13  <LordAro> is_layout_compatible
15:40:20  <TrueBrain> I dunno why it is C++20 :P
15:40:24  <TrueBrain> it just is :)
15:40:25  <LordAro> i.e. why can't you just copy it from somewhere else
15:40:37  <TrueBrain> owh, I now copied gsl-lite
15:40:41  <TrueBrain> but it is one hell of a template
15:40:45  <TrueBrain> not the easiest code
15:40:54  <LordAro> you seem surprised :p
15:41:09  <TrueBrain> but: template<class Container, typename std::enable_if<(is_compatible_container<Container, element_type>::value), int >::type = 0>
15:41:15  <TrueBrain> that works :)
15:41:16  <LordAro> just stick it in 3rdparty folder and never look at it ;)
15:41:40  <TrueBrain> the drawback of gsl(-lite), that it does its own compiler-detection etc
15:41:55  <TrueBrain> I am not sure that is really going to help us in the long run
15:49:18  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
15:49:41  <andythenorth> goes it multi-cargo ships when please
15:49:42  <andythenorth> ?
15:49:49  <andythenorth> mail and pax on same boat
15:51:07  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JGBV3
15:51:45  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
15:51:57  <TrueBrain> LordAro: I ended up with this: https://github.com/OpenTTD/OpenTTD/pull/9323/files#diff-5b4485311ae15cafdc7c13f8382b0c6d82b5bb2e4b202c7bb01d93ba2c1bfa94
15:53:51  *** Progman has joined #openttd
15:53:55  <TrueBrain> very curious if all compilers are going to accept the templates :)
15:55:31  <LordAro> :)
15:56:20  <TrueBrain> I really have no clue what is_compatible_element does
15:56:22  <TrueBrain> it is just a blob of code :P
15:57:30  <TrueBrain> even MSVC accepts this code :o
15:58:25  <TrueBrain> I am also pretty sure in places we already use std::vector where we actually wanted std::span :P
15:59:05  <TrueBrain> as in, I am a bit surprised this came up only now, and not a while ago :D
16:00:08  <LordAro> mm
16:00:17  <LordAro> i've wondered about it a bit
16:00:34  <TrueBrain> all green \o/
16:00:52  <LordAro> string_view essentially being span but as a special case for string
16:00:57  <TrueBrain> yes
16:00:58  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
16:01:03  <TrueBrain> that is exactly how it is advertised too :)
16:01:25  <LordAro> :)
16:03:13  <TrueBrain> std::span is the template version of std::string_view :P
16:03:19  <TrueBrain> but the latter also has some more functions, ofc
16:04:54  <TrueBrain> when I wouldn't know all this, I would have assumed that std::vector etc would have a parent class which you can use for this kind of stuff
16:05:07  <TrueBrain> but .. it turns out we needed something else to mimic that :P
16:17:12  *** Beer has quit IRC
16:17:52  *** andythenorth has quit IRC
16:19:12  *** andythenorth has joined #openttd
16:22:15  *** gelignite has joined #openttd
16:31:17  <DorpsGek> [OpenTTD/OpenTTD] Wahazar commented on pull request #7955: WIP Feature: NewGRF Road Stops (Feature 14) https://git.io/JGBX9
16:59:09  <andythenorth>  goes it mail and pax on same boat?
17:00:29  <glx> you need articulated boat for that
17:02:18  *** Flygon has quit IRC
17:03:41  <andythenorth> wake sprite
17:03:47  <andythenorth> or shadow
17:05:45  <andythenorth> we haven't done any big changes since 1.11, we might as well push the boat out
17:05:51  <andythenorth> game is practically dead at this point
17:10:19  *** frosch123 has joined #openttd
17:12:52  <LordAro> frosch123: chastise andy for me
17:13:03  *** Wolf01 has joined #openttd
17:14:06  <frosch123> someone lead tb to sfinae, everything is lost
17:15:21  <LordAro> m'bad
17:17:09  <andythenorth> mail-pax boat https://en.wikipedia.org/wiki/File:MV_Loch_Seaforth.jpg
17:17:14  <andythenorth> is looks nice
17:18:39  <peter1138> Don't be silly, only passenger OR mail boats exist.
17:21:17  <Wolf01> Put the mail in the shadow
17:21:39  <andythenorth> peter1138 but this is the place where I learnt what XOR means
17:22:05  <peter1138> EOR in BBC BASIC land.
17:22:34  <andythenorth> I think I knew about eeyore
17:22:41  <andythenorth> not sure I knew how to use bools in basic though
17:22:45  <andythenorth> it was all goto
17:23:15  <andythenorth> I mostly wrote pre-sequenced animations
17:23:31  <Wolf01> Yummm spaghetti code
17:24:25  <andythenorth> the code for "AND and OR" seems very familiar https://www.bbcbasic.co.uk/bbcwin/tutorial/chapter09.html
17:24:50  <andythenorth> and the case handling
17:25:19  <Wolf01> Look, they even made train examples
17:25:26  <peter1138> These operators are not about booleans though.
17:25:49  <andythenorth> these are the ones I knew how to use
17:26:09  <andythenorth> operators on 0 and 1 I only learnt here 20 years later :P
17:26:28  <TrueBrain> frosch123: sfinae is fun :D
17:26:39  <TrueBrain> Gives a lot better compiler errors ;)
17:26:39  <andythenorth> prior to that 'boolean' was something I did in 3D programs to make complex shapes from primitives
17:26:45  <EER> I remember my first basic programs on C64 were just quizzes with hardcoded if statements for each question, I hope I'd do it in a less work-intensive way now
17:27:07  <andythenorth> I remember finding arrays in flash
17:27:08  <frosch123> TrueBrain: just make sure you forget everything about sfinae, once you have access to c++20 concepts
17:27:19  <TrueBrain> Yup ....
17:27:21  <andythenorth> "OMG I can just make a list of questions"
17:27:26  <EER> I didn't discover arrays until about 20 years later
17:27:40  <frosch123> TrueBrain: anyway, where did you get the idea to use std::initializer_list for a global constant... i have never seen that, i have no idea what it does
17:27:53  <TrueBrain> Which was funny ... while writing this for the lack of C++20 I kept finding proper ways to wrote this.. with C++20 ...
17:27:54  <andythenorth> the basic I learnt really made no separation between content and logic
17:27:56  <frosch123> why isn't it just static const std::vector ?
17:28:29  <TrueBrain> frosch123: you had to ask .. well ...
17:28:39  <TrueBrain> when I use "const std::vector" we have a developer that says: NO, don't do that
17:28:46  <TrueBrain> when you try std::array you .. are hurting yourself .. a lot
17:29:00  <TrueBrain> so a while back another developer started using std::initializer_list
17:29:08  <TrueBrain> which triggers the least amount of people so far
17:29:23  <TrueBrain> so it would be fun if you go: nah, don't do this, as then we can make a triangle :P :P
17:29:43  <TrueBrain> in all seriousness, it seems C++ doesn't lack opinions on "what is better"
17:29:45  <frosch123> there is no std::initializer_list in my checkout?
17:29:47  <TrueBrain> and it is all a bunch of shit :P
17:29:55  <andythenorth> would it be as fun as boats with pax and mail?
17:29:57  <glx> std::initializer_list works well for chunks too
17:30:11  <TrueBrain> frosch123: check gameopt_settings.ini, as example
17:30:26  <TrueBrain> if it isn't there, you really haven't updated in a while :D :D
17:30:32  <frosch123> TrueBrain: i have no opinion, i just have seen 500+ hours of c++ talks, and noone ever used std::initializer_list like that
17:30:40  <TrueBrain> :D
17:30:49  <TrueBrain> I am really good in copy/pasting
17:30:55  <TrueBrain> as I still only understand like 10% of all this C++ bla :P
17:30:55  <frosch123> and unusual things make me suspicious
17:31:37  <frosch123> ah, it was added recently, i did not pull yet
17:31:46  <TrueBrain> I told you! :)
17:32:06  <frosch123> anyway, where can i read up on this "don't use const std::vector"
17:32:08  <frosch123> on discord?
17:32:14  <frosch123> because i would indeed say the opposite
17:32:15  <TrueBrain> no, just poke LordAro  :)
17:32:22  <frosch123> even "constexpr std::vector" exists at some point
17:32:27  <TrueBrain> if I check godbolt, indeed a const vector is rather ... weird
17:32:30  <TrueBrain> even with -O2
17:33:08  <TrueBrain> https://godbolt.org/z/ToW8vEK1d
17:33:11  <glx> I think there's a some moving involved with vector
17:33:15  <TrueBrain> just flip the comments ..
17:33:35  <TrueBrain> (don't mind the gsl::span there, I was testing shit)
17:33:53  <TrueBrain> std::vector seems to insist on calling the new operator
17:33:57  <frosch123> so fine, std::vector constructor is only constexpr since c++20
17:33:58  <TrueBrain> even if it is const
17:34:10  <TrueBrain> seems a lot of shit around this is solved with c++20 :)
17:34:19  <TrueBrain> can't we just upgrade? :D
17:34:29  <frosch123> TrueBrain: std::span is fine, i know that. you use it in places where i expect it
17:34:47  <TrueBrain> \o/
17:34:52  <frosch123> "static std::initializer_list<const char*>" is wtf though :p
17:34:53  <TrueBrain> well, it is not std::span, but :P
17:35:04  <TrueBrain> yeah .. not a conversation to have with me, sadly :)
17:35:10  <TrueBrain> I can see std::vector is .. weird
17:35:14  <TrueBrain> and std::array is a bitch to use
17:35:28  <glx> std::array is fully compile time
17:35:30  <TrueBrain> (it just doesn't result in maintainable code :P)
17:36:48  <TrueBrain> I just want a static list that has an iterator :)
17:37:03  <TrueBrain> well, std::span can do that with a [] list
17:37:08  <TrueBrain> but .. yeah ... we are back to C++20 :D
17:39:11  <TrueBrain> https://godbolt.org/z/a1694hTdW <-  a smaller snippet to see the difference between vector / initializer_list / list
17:41:26  <TrueBrain> static const auto a = {SaveLoad(), {}, {}}; <- that is also a nice one btw
17:41:32  <TrueBrain> just that the first element needs to define the type is less nice
17:42:01  <frosch123> that's probably the same as the initializer_list
17:42:03  <TrueBrain> from what I understand, that is the same as static const std::initializer_list<SaveLoad> a = {{}, {}, {}} btw
17:42:05  <TrueBrain> :)
17:43:32  <TrueBrain> I copy/paste "constexpr std::vector" example from a page
17:43:35  <TrueBrain> and it does not work
17:43:36  <TrueBrain> lol
17:44:32  <TrueBrain> " constexpr variable cannot have non-literal type 'const std::vector<int>'"
17:50:22  <TrueBrain> what ever I try, I cannot get that to work with -std=c++20 :( Sadddd
17:51:29  <frosch123> yep, i also tried that. looks like it is not implemented yet
17:51:41  <frosch123> btw. you can use "constinit" instead of "constexpr"
17:51:56  <frosch123> that will result in a compiler failure, when the compiler cannot initialise it at compile tmie
17:52:17  <TrueBrain> nice :)
17:52:21  <TrueBrain> I like all this extra hinting of shit
17:52:35  <frosch123> "constexpr" is a "allow the compiler to do something". "constinit" is "do or die" :)
17:52:56  <frosch123> but as you probably guessed... it's c++20 as well :p
17:53:01  <TrueBrain> I looked it up :P
17:53:03  <TrueBrain> I didn't even guess :D
17:53:51  <TrueBrain> but so yeah .. with std::array being nearly impossible to use in a sane way, and std::vector insisting on doing things runtime .. all we have left is the other :P
17:54:23  <frosch123> https://stackoverflow.com/questions/57894444/using-stdinitializer-list-as-const-list-of-lists-of-varying-length <- this is the only hint i can find on this usage of std::initializer_list
17:54:40  <TrueBrain> you have to check with Rubidium how he came up with this, I have no clue :)
17:54:50  <TrueBrain> I just like that it is a near drop-in replacement :)
17:55:32  <frosch123> i have only seen std::initializer_list as temporary object. so i did not know whether it owns or references its items
17:56:26  <TrueBrain> "Copying a std::initializer_list does not copy the underlying objects. "
17:56:39  <TrueBrain> suggests it doesn't own them
17:57:10  <frosch123> "The lifetime of the underlying array is the same as any other temporary object, except that initializing an initializer_list object from the array extends the lifetime of the array exactly like binding a reference to a temporary (with the same exceptions, such as for initializing a non-static class member). " <- that's the important sentence
17:57:49  <TrueBrain> yeah, and I clicked the link in there
17:57:51  <TrueBrain> was looking at that page and
17:57:52  <TrueBrain> went
17:57:53  <TrueBrain> no
17:57:57  <TrueBrain> and closed it :P
17:58:17  <frosch123> so, i guess, everyone agrees that this usage of std::initializer_list is weird, but it works :p
17:58:38  <frosch123> we have to wait for newer c++ standard to have something prettier
17:58:43  <TrueBrain> like?
17:58:56  <frosch123> but now that you started with sfinae, the "pretty" battle is lost anyway :p
17:59:05  <TrueBrain> haha :D
17:59:21  <TrueBrain> I didn't want to do it, but I had to .. as I couldn't find the right way to otherwise load in a const array :)
17:59:24  <TrueBrain> it kept refusing it :P
17:59:33  <frosch123> TrueBrain: c++20 advertises to construct all constant std containers at compile time.
17:59:48  <TrueBrain> frosch123: godbolt suggests that is still not true for std::vector?
17:59:54  <frosch123> it didn't work in the godbolt i tried
18:01:14  <TrueBrain> I just cannot believe they didn't make a nice method for this
18:01:56  <frosch123> c++11 is also already 10 years ago :p
18:02:06  <TrueBrain> mostly, I cannot believe they added N to std::array
18:02:09  <TrueBrain> I mean .. wth
18:02:34  <frosch123> std::array is a different type for each size, so usually you put it into a std::span anyway
18:02:35  <FLHerne> andythenorth: There's still a jet-blows-up-refinery disaster in the _base game_
18:02:55  <FLHerne> I don't think there's ever been a credible ban on such things :p
18:03:06  <TrueBrain> frosch123: mostly what annoys me, that this doesn't work: static const std::array<SaveLoad, 3> a { {}, {}, {} };
18:03:23  <FLHerne> Also please yes cargo-mail ships
18:03:42  <TrueBrain> static const std::array<SaveLoad, 3> a {SaveLoad(), SaveLoad(), SaveLoad() }; does
18:03:47  <andythenorth> FLHerne so Devonport and some armaments factories
18:03:48  <TrueBrain> but constant repeating yourself constant repeating yourself constant repeating yourself
18:03:50  <TrueBrain> isn't good for anyone
18:03:56  <andythenorth> West Country revival economy
18:06:02  <FLHerne> Sounds good
18:08:16  <frosch123> "No compiler so far supports the constexpr std::vector and std::string." <- from a blog from september 2020
18:08:27  <TrueBrain> static constexpr auto a = {SaveLoad(), {}, {} };
18:08:27  <TrueBrain> static constexpr std::span<const SaveLoad> b(a);
18:08:29  <frosch123> so, meh :)
18:08:31  <TrueBrain> can that be put on a single line, I wonder
18:08:48  <TrueBrain> still a shitty place to indicate its type
18:10:41  <TrueBrain> static const auto a = std::initializer_list<SaveLoad> {{}, {}, {} };
18:10:50  <TrueBrain> :D
18:11:05  <TrueBrain> can godbolt tell me the type something is .. VSCode can
18:11:52  <frosch123> std::cout << typeid(SaveLoad).name() << std::endl;
18:12:05  <frosch123> that's what I use :p no idea whether there is something better
18:12:29  <TrueBrain> good enough
18:12:49  <frosch123> it's mangled though
18:12:54  <TrueBrain> yeah, but I can read that fine :)
18:13:13  <frosch123> "c++filt" in your console
18:14:24  <TrueBrain> the C++ Insight button also works
18:14:28  <TrueBrain> shows everything it did
18:15:31  <TrueBrain> static const SaveLoadTable a = std::vector<SaveLoad, std::allocator<SaveLoad> >{std::initializer_list<SaveLoad>{{0}, {0}, {0}}, std::allocator<SaveLoad>()};
18:15:35  <TrueBrain> is what a vector really does
18:15:58  <frosch123> never saw that button
18:16:08  <frosch123> so, i learned two things today :p
18:17:28  <TrueBrain> hmm ..
18:17:29  <TrueBrain> static const SaveLoad a[] = {{}, {}, {} };
18:17:31  <TrueBrain> also "just works"
18:17:45  <TrueBrain> but yeah, passing that along other functions is an issue :)
18:18:56  <frosch123> you can use the span there
18:19:05  <TrueBrain> was just trying that :D
18:19:09  <frosch123> a std::span accepts an array iirc
18:19:13  <TrueBrain> make it into a span directly after, and it stores the size
18:19:20  <TrueBrain> it does
18:19:38  <frosch123> no need to make a static span
18:19:47  <frosch123> you can do that when you pass the array to some function
18:19:51  <TrueBrain> ofc
18:20:33  <TrueBrain> static const SaveLoad a[3] = {{0}, {0}, {0}};
18:20:33  <TrueBrain> static const std::span<const SaveLoad, 3> b = std::span<const SaveLoad, 3>(a);
18:20:40  <TrueBrain> so that could work too
18:20:47  <TrueBrain> means I need to extend my span to accept it too
18:20:51  <TrueBrain> but I can copy/paste real good
18:21:21  <TrueBrain> might not be a bad idea, compared to the std::initializer_list
18:22:03  <TrueBrain> https://godbolt.org/z/63nG48hGx
18:22:05  <TrueBrain> is what you end up with
18:22:18  <TrueBrain> and yes, the static is not needed :)
18:22:23  <TrueBrain> but this way we can compare it easier with the others ;)
18:22:42  <LordAro> TrueBrain: remind me why you need anything other than a static (c) array?
18:22:58  <TrueBrain> LordAro: we pass it between functions
18:23:02  <TrueBrain> so length is lost
18:23:13  <TrueBrain> now we solve that by adding a SLE_END marker, meaning you cannot use for (a : b) constructs
18:23:22  <TrueBrain> (similar if we would append the length manually)
18:23:42  <TrueBrain> but std::span seems to solve that issue nicely
18:23:46  *** andythenorth_ has joined #openttd
18:24:38  <LordAro> templates would allow you to pass the actual array, no?
18:25:15  <frosch123> TrueBrain: https://godbolt.org/z/xvMzGP31b <- no need for the static span
18:25:27  <TrueBrain> LordAro: I have no clue what you said .. guess you have to godbolt it :)
18:25:37  <TrueBrain> frosch123: again, I know
18:25:44  <TrueBrain> 3rd time I am saying that now :)
18:25:51  <TrueBrain> I just wanted to keep it comparable with the other godbolt
18:25:56  <frosch123> reading is hard
18:26:05  <TrueBrain> :P
18:27:35  <TrueBrain> also actually seems to work
18:27:47  <TrueBrain> lets apply that to all the SaveLoad thingies ... takes a while, there are many ...
18:28:50  <LordAro> TrueBrain: i think i'm thinking of https://stackoverflow.com/a/16505386/995325, but is super ugly
18:28:56  <LordAro> i like frosch123's version better
18:29:06  <TrueBrain> that is mine version
18:29:09  <TrueBrain> how did he get credits for it? :P
18:29:20  <frosch123> i got used to that
18:29:28  <TrueBrain> and yes, std::span kinda solves all that ugly mess LordAro :)
18:29:32  <frosch123> in the backlog andy blamed me for hg->git conversion
18:29:38  <frosch123> no idea how i was involved in that
18:29:45  <TrueBrain> magic :D
18:29:46  *** andythenorth has quit IRC
18:29:51  <frosch123> haha
18:29:58  <frosch123> be gone!
18:30:00  <LordAro> i only looked at the last godbolt link :p
18:30:05  <LordAro> i have no idea what was in previous
18:30:09  <TrueBrain> yes, this is how things go wrong LordAro :P
18:30:24  *** andythenorth_ has quit IRC
18:30:55  *** andythenorth has joined #openttd
18:32:25  <frosch123> [20:29] <TrueBrain> how did he get credits for it? :P <- maybe i have management potential?
18:32:53  <frosch123> https://dilbert.com/ <- i forgot that was today's theme
18:37:34  <peter1138> What is it?
18:37:55  <TrueBrain> frosch123: haha :D
18:38:05  <peter1138> Dilbert's author is a jerk, not gonna give him click.
18:39:05  <frosch123> it's the same thing that happened: someone passed someone else's work as their own. when exposed it's interpreted as management potential
18:39:51  <TrueBrain> static const SaveLoad _glog_emergency_desc[] = {};
18:39:55  <TrueBrain> I don't understand that line :P
18:40:11  <andythenorth> there's a Dilbert about data collection
18:40:21  <andythenorth> but I had to click through a big cookie capture warning
18:40:32  <andythenorth> #ironyfail
18:40:43  <andythenorth> has anyone drawn more Sam boats yet?
18:40:46  <andythenorth> I did 20 already
18:44:04  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
18:44:15  <TrueBrain> frosch123: I think the C-style method works best in combination with span<>
18:44:18  <TrueBrain> as by PR
18:46:13  <frosch123> yay :)
18:46:52  <TrueBrain> https://github.com/OpenTTD/OpenTTD/pull/9323/files#diff-f57a97e91e4d7ed6bd7db22d69ffb2a4dcffdb0dfdf7d9e20ba7adf10e43d729R457
18:46:56  <TrueBrain> in rare cases you need to "cast" early
18:47:27  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
18:48:10  <TrueBrain> https://github.com/OpenTTD/OpenTTD/pull/9323/files#diff-c1dbf03d12ea4f4a2b228772f4f6b5d21a4483c31c94e3af9ec66097cad2bb01R855 <- even that works this way
18:48:11  *** snail_UES_ has joined #openttd
18:48:15  <frosch123> the funny part about c++ changing so fast is that people wildly mix old and new stuff :)
18:48:17  <TrueBrain> just you have to keep track of the memory real careful :)
18:48:33  <TrueBrain> as in, the span<> doesn't own the memory ..
18:48:38  <TrueBrain> which is easy to forget
18:48:41  <TrueBrain> and use a stack variable
18:49:12  <TrueBrain> lifetimes in Rust is a real pleasure in that regard
18:49:14  *** andythenorth has quit IRC
18:49:22  <TrueBrain> annoying as fuck, as it is always complaining
18:50:25  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JGRvt
18:54:16  *** andythenorth has joined #openttd
18:54:27  <andythenorth> it's funny what TrueBrain is prepared to do to avoid learning what newgrf is
18:55:16  <andythenorth> the plan to trick TB into grf isn't working frosch123 :(
18:55:27  <andythenorth> now TB is learning C++ instead
18:55:43  <TrueBrain> He is already annoying me enough to think about speeding up NewGRF scanner
18:56:57  <frosch123> andythenorth: i am worried about him. sfinae has never lead to anything good
18:57:05  <andythenorth> I read what it was
18:57:11  <andythenorth> doesn't sound good
18:57:23  <andythenorth> do we need to stage an intervention
18:57:25  <andythenorth> ?
18:57:32  *** CDbreaker[m] has left #openttd
18:57:38  <frosch123> it's an abbreviation. if you say the full wording, you directly fall through the floor into hell
18:57:41  <TrueBrain> Well, I can now remove it!
18:58:00  <TrueBrain> But not going to :p
18:58:10  <frosch123> vade retro!
18:58:13  <TrueBrain> Do we just want to add gsl-lite btw?
18:59:40  <LordAro> what does it come with?
19:00:22  <frosch123> people praise it for zstring
19:00:24  <TrueBrain> https://github.com/gsl-lite/gsl-lite
19:00:27  <frosch123> but we almost got rid of all those
19:00:58  <frosch123> then it has Expects and Ensures instead of assert
19:01:30  <frosch123> well, and some backports of newer c++ things for older compilers
19:01:40  <frosch123> TrueBrain: it looks smaller than boost :)
19:01:42  <TrueBrain> Sorry: https://github.com/gsl-lite/gsl-lite#features
19:01:57  <frosch123> previously we had a copy of boost::optional, which we deleted again
19:02:05  <frosch123> so now we can have a copy of gsl-lite for 3 yeas
19:03:08  <frosch123> boost is weird these days... everything good went into std, or is about to. only weird and niche things remain
19:03:30  <glx> gsl-lite is available through vcpkg
19:03:53  <TrueBrain> I was thinking about vendoring it tbh
19:03:59  <TrueBrain> It is a single file
19:05:15  <glx> it would still be nice for std to get a command line arg parsing thing
19:06:01  <frosch123> haha, yeah, but pretty unlikely :)
19:07:05  <TrueBrain> But, yea or nay on gsl-lite? :)
19:07:12  <frosch123> yay from me
19:07:26  <frosch123> not that i would help with anything though :p
19:07:52  <TrueBrain> Saves me from finishing my custom span implementation :p
19:08:26  <frosch123> though i have the suspicion that we will only use span from it
19:08:50  <TrueBrain> I agree
19:09:03  <frosch123> unless someone finds a usecase for zstring
19:09:35  <TrueBrain> But having someone else maintain span alone helps ofc :D
19:14:14  <andythenorth> maybe it's time to add the houses to FIRS
19:14:23  * andythenorth has been putting it off
19:20:55  <LordAro> TrueBrain: idk, as long as it's only span that's wanted/needed, i think just that single file is fine
19:21:06  <LordAro> no need to pull in an extra "full" dependency
19:22:15  *** andythenorth has quit IRC
19:22:36  <TrueBrain> LordAro: "that single file", what do you mean?
19:22:39  <TrueBrain> gsl-lite is 1 file
19:22:46  <TrueBrain> (that is why I suggest using it, over GSL :P)
19:23:22  <LordAro> your custom span, i mean
19:23:33  <TrueBrain> yeah, but my custom one is a really trimmed down version
19:23:37  <TrueBrain> so there are risks involved in that :)
19:24:19  <TrueBrain> (as about 50% of gsl-lite is about gsl::span :D)
19:25:18  <TrueBrain> well, we can see how long it takes before we need something from span that I did not add, I guess
19:25:37  <LordAro> ¯\_(ツ)_/¯
19:25:51  <LordAro> stick yours and gsl-lit in godbolt, see what asm comes out :p
19:26:00  <TrueBrain> I copied from gsl-lite
19:26:04  <TrueBrain> pretty sure it is identical :)
19:26:17  <TrueBrain> but I didn't copy over reverse-iterator, for example
19:26:19  <TrueBrain> or all the ctors
19:26:22  <TrueBrain> (so no std::array)
19:26:30  <TrueBrain> and more of those things
19:26:46  *** virtualrandomnumber has joined #openttd
19:26:53  <LordAro> they can be copied as needed :)
19:26:56  *** virtualrandomnumber has quit IRC
19:27:19  <TrueBrain> I also did only a part of the sfinae
19:27:23  <TrueBrain> as there is like ... 200 more lines of that :P
19:29:15  <TrueBrain> okay, last question about this: do we want to put span<> in a namespace?
19:29:57  <glx> if we use gsl-lite it will be in gsl namespace
19:30:26  <TrueBrain> yeah, but I guess we can start off by what-ever I copy/pasted together
19:30:31  <TrueBrain> and just see how long it takes before that annoys me
19:30:33  <TrueBrain> me = us
19:30:50  <glx> we already use std:: everywhere
19:31:05  <TrueBrain> I am not going to push this in the std namespace :P
19:31:07  <TrueBrain> that is weird :D
19:31:23  <TrueBrain> well, it should be compatible, so I guess
19:31:25  <TrueBrain> we could
19:31:36  <glx> of course, but it's own namespace doesn't hurt
19:32:19  <TrueBrain> but which one :)
19:35:00  <TrueBrain> funny, we aren't really using namespace anywhere
19:35:44  <frosch123> namespaces are for libraries
19:35:50  <frosch123> using ottd:: is silly
19:35:53  <glx> openttd stuff is in default namespace
19:36:05  <TrueBrain> frosch123: fair
19:36:07  <frosch123> ofc you could add saveload:: and newgrf::
19:36:16  <TrueBrain> mainly: core:: :)
19:36:48  <glx> in most case namespace is in function name ;)
19:37:05  <TrueBrain> just span<> feels odd, but lets go with it for now!
19:37:13  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
19:37:14  <TrueBrain> okay, that should be ready in that case
19:38:45  *** tokai|noir has joined #openttd
19:38:45  *** ChanServ sets mode: +v tokai|noir
19:40:00  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
19:40:08  <TrueBrain> that was clearly a lie :P Okay, now I am done :)
19:44:48  <LordAro> i think putting something we expect to move namespaces later (span) in its own namespace now is a good idea
19:45:02  <LordAro> makes finding it easier later
19:45:06  <TrueBrain> I was thinking about making sed easier
19:45:09  <TrueBrain> but span< is already unique
19:45:16  <TrueBrain> so that argument went out the window for me :P
19:45:16  <LordAro> true
19:45:24  <TrueBrain> it annoyed me
19:45:30  <TrueBrain> as I thought it was a solid argument :D
19:45:34  *** tokai has quit IRC
19:46:04  <frosch123> using stdspan = gsl::span;
19:46:19  <frosch123> i would keep the gsl::span
19:46:29  <TrueBrain> yeah, for now didn't do the gsl-lite
19:46:30  <frosch123> replacing the namespace should be an easy grep
19:46:46  <TrueBrain> I have 1 yea and 1 nay .. and it takes more effort to do so, so I went with the nay :)
19:46:46  <frosch123> then do stdspan, only needs :: later :p
19:47:08  <frosch123> but whatever compiles :)
19:47:11  <TrueBrain> but it isn't even close to the std::span .. so I was a bit afraid that would give people "wtf" moments :P
19:47:19  <TrueBrain> bikeshedding .. you got to love it :)
19:47:28  <frosch123> just don't do std::span :)
19:47:37  <TrueBrain> span<> it is
19:47:46  <TrueBrain> quick review, and go go go? :P
19:49:26  <frosch123> or spanwijdte
19:49:48  <TrueBrain> fuckarray<> ?
19:51:03  <michi_cc> Minor bikeshed, span could also be a good variable name. "int span; span<T> foo;" does not what you want :)
19:51:20  <TrueBrain> that is why namespaces are nice, indeed
19:51:57  <TrueBrain> but, we haven't used "span" as variable in 17 years
19:51:59  <TrueBrain> why start now? :D
19:52:11  <TrueBrain> worst counter-argument EVAH :D
19:52:28  <frosch123> probably apple had something named "span" in global namespace
19:52:34  <frosch123> only reason i can imagine :p
19:52:57  <TrueBrain> its weird how little that would surprise anyone
19:53:23  <TrueBrain> well, if I follow OpenTTD convention, I should call it Span, not?
19:54:00  <TrueBrain> honestly, I rather call it fuckarray :P
19:54:12  <frosch123> you replace some SaveLoadGlobVarList
19:54:24  <frosch123> but you do not remove the typedef itself
19:54:28  <TrueBrain> I didn't? :o
19:54:35  <TrueBrain> lets address that right now :D
19:54:56  <frosch123> also use "using" instead of "typedef" while you are at it :p
19:55:06  <TrueBrain> what is the difference?
19:55:14  <glx> using is c++ :)
19:55:30  <frosch123> it's easier to read, and also works as template
19:56:07  <milek7> I always forget typedef argument order
19:56:30  <TrueBrain> glx: best argument evah :D
19:56:35  <TrueBrain> :D
19:56:45  <frosch123> "typedef span<const SaveLoad> SaveLoadTable;" is the same as "using SaveLoadTable = span<const SaveLoad>;". but there is also "template <class T> using MySpan = span<T>;" which has no equivalent with typedef
19:57:34  <TrueBrain> so MySpan<ClassName> becomes valid, or how do I read that?
19:57:43  <frosch123> yes
19:57:45  <Rubidium> I used std::initializer_list as I wanted an collection of unique_ptrs and the compiler was complaining a lot,,, so I was browsing cppreference and it was talking about initializer lists. Clicking further I found it was actually a type and figured out... that it doesn't work in a vector is because it makes the initializer_list first and then copies it to the vector. So why not just... well... use the
19:57:48  <TrueBrain> ah, funny
19:57:51  <Rubidium> collection that is put into the vector, and that's how that's born
19:58:04  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
19:58:39  <frosch123> TrueBrain: it's a bit silly in my example, but imagnie the rhs having more template parameters than the lhs
19:58:51  <TrueBrain> yeah, I can imagine it being useful like that
19:59:01  <frosch123> "template<class T> foo = bar<int, T>;" or something
19:59:07  <TrueBrain> bit of a niche most likely, but as is the same with templating in general :)
19:59:08  <frosch123> +using
19:59:36  <TrueBrain> so learnt another new thing today
20:00:53  <TrueBrain> found another boo-boo :D
20:00:54  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
20:04:28  <frosch123> why does _glog_desc need the extra SaveLoadTable(...), but _veh_descs doesn't?
20:04:41  <TrueBrain> remember I said I found another boo-boo 4 minutes ago? :D
20:04:53  <frosch123> pff, what are the chances :p
20:05:06  <TrueBrain> well, at least your review is top quality :)
20:05:44  <TrueBrain> I really like span<>
20:06:01  <TrueBrain> the caller doesn't have to care
20:06:05  <TrueBrain> and the function doesn't need to know
20:06:32  <TrueBrain> "this is a list, you can iterate over it, it is somewhere in the memory, trust me" :)
20:06:42  <frosch123> looks good. only OCD i found: when using "const SaveLoadTable" as return-value, the "const" has no effect
20:06:56  <TrueBrain> lolz
20:07:17  <TrueBrain> this happens with copy/pasting a lot :P
20:09:42  <TrueBrain> why do compilers not just warn for these things?
20:10:10  <frosch123> sometimes they do
20:11:24  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
20:11:44  <TrueBrain> owh, I see that most functions already did return a "const", that explains why it was there
20:12:43  <frosch123> "(const SaveLoad)*" vs "const (SaveLoad*)" :)
20:13:20  <TrueBrain> which one does it do with "const SaveLoad *" I now wonder :P
20:13:24  <TrueBrain> I don't know :D
20:13:36  <frosch123> read inside-out :)
20:13:53  <frosch123> just don't convert to east-const
20:14:17  <TrueBrain> east-const? Is that SaveLoad const *?
20:14:28  <frosch123> yes
20:14:49  <TrueBrain> gsl-lite uses that
20:14:50  <frosch123> west-const vs east-const was a meme at cppcon2019 or so
20:15:18  <TrueBrain> btw, "inside-out" doesn't mean much to me :)
20:16:03  <frosch123> const Foo * (*bar)[5];
20:16:24  <frosch123> starting at "bar", reading inside out: bar is a pointer to an array to a pointer to const Foo
20:16:36  *** tokai has joined #openttd
20:16:36  *** ChanServ sets mode: +v tokai
20:16:45  <TrueBrain> how is that inside out? :P
20:16:54  <TrueBrain> that is more like right-to-left ?
20:16:54  <glx> bar is inside :)
20:17:11  <frosch123> you start with the thing in the inner-most parentheses
20:17:19  <TrueBrain> and what if there are none
20:17:22  <TrueBrain> you start .. somewhere? :D
20:17:31  <frosch123> ok fine, inside-out, right-to-left
20:17:34  <TrueBrain> :P
20:17:36  <TrueBrain> haha
20:17:42  <TrueBrain> sometimes wording makes me more confused :D
20:17:59  <TrueBrain> but so, just to check: "const SaveLoad *" is "const (SaveLoad *)"
20:18:05  <TrueBrain> and as such, pointless as return value, right?
20:18:07  <TrueBrain> (well, since C++11)
20:18:36  <frosch123> "const Saveload *" is meaningful
20:18:40  <DorpsGek> [OpenTTD/OpenTTD] DorpsGek pushed 1 commits to master https://git.io/JGR3e
20:18:41  <frosch123> the SaveLoad is const
20:18:41  <DorpsGek>   - Update: Translations from eints (by translators)
20:18:51  <glx> worse every day
20:18:57  <TrueBrain> yeah, it is insane ... holy crap
20:18:58  <frosch123> but the return value itself, the pointer, cannot be const in a meaningful weay
20:19:37  <LordAro> TrueBrain: https://cdecl.org/?q=const+char+*+%28*bar%29%5B5%5D%3B
20:19:57  <TrueBrain> LordAro: haha :D Cool :D
20:20:07  <LordAro> (Foo replaced with char because types)
20:21:24  <TrueBrain> yeah, okay, my sanity is restored again now :)
20:22:21  <TrueBrain> I indeed replaced "SaveLoad *" with SaveLoadTable :P
20:22:42  <DorpsGek> [OpenTTD/OpenTTD] frosch123 approved pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JGR3X
20:22:56  <frosch123> sorry, took longer, i pressed the wrong button first :p
20:23:01  <TrueBrain> :D
20:23:07  <TrueBrain> what button did you press? :P
20:23:30  <TrueBrain> and tnx for the review :) Maybe this all also inspires glx for his PR :)
20:23:34  *** tokai|noir has quit IRC
20:23:41  <TrueBrain> and .. this is a huge merge-conflict on my savegame-header patch ofc :P
20:23:53  <frosch123> i forgot to select the "approve" radiobutton, so it was still on "comment". and when i clicked "finish review" it complained that i should add a comment
20:23:56  <frosch123> which confused me
20:24:05  <frosch123> like: mandatory comment on approve, what? :p
20:24:07  <TrueBrain> haha, I have that too!!
20:24:31  <TrueBrain> I get why they did this, but I would love just a button for "Approve"
20:24:37  <TrueBrain> that checkbox  is not easy to spot
20:24:46  <TrueBrain> prevent accidental approvals, for sure
20:24:56  <TrueBrain> just not sure in the balance of things when it is confusing more :)
20:26:48  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain merged pull request #9323: Codechange: C++-ify lists for SaveLoad https://git.io/JG4t7
20:38:06  <TrueBrain> why did I do all that again?
20:38:11  <TrueBrain> because it was annoying me, I think
20:41:02  <LordAro> lol
20:41:32  <TrueBrain> ah, yes, "SaveLoad *", it was guessing every time what it meant
20:41:32  <frosch123> to get rid of the weird vector.push_back(SLE_END()) in the schema PR
20:41:34  <TrueBrain> an item or a list
20:41:41  <TrueBrain> that too :P
20:43:02  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store settings as key->value pair https://git.io/JGlmd
20:43:10  <TrueBrain> right, rebased that .. tomorrow again an attempt to convert as many chunks as I can :)
20:43:36  <TrueBrain> and just as a FYI, all this for the STUN PR .. so I can move away secrets and private settings to other files .. so I can store a cookie for the join-key ..
20:43:38  <TrueBrain> yes yes :P
20:46:30  *** andythenorth has joined #openttd
20:52:35  <frosch123> do you have a pet at home?
20:52:44  <frosch123> shall we start a fundraiser to get a rabbit for you?
20:53:08  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store settings as key->value pair https://git.io/JGlmd
20:53:16  <TrueBrain> I do not have a pet, but I would love a kitten
20:53:19  <TrueBrain> can we call it a kitten hole?
20:53:22  <TrueBrain> sounds ... weird
20:53:42  <frosch123> kittens turn into cats after some time
20:53:43  <TrueBrain> (I deliberately didn't pick "pussy", to be clear :P)
20:53:44  <andythenorth> peter1138 has an oog
20:53:52  <andythenorth> so you could get an aat
20:54:01  <TrueBrain> is that an english word, now I wonde
20:54:01  * andythenorth has iish
20:54:02  <TrueBrain> hmm
20:54:11  <andythenorth> most of the iish died
20:54:13  <andythenorth> only 2 left
20:54:13  <TrueBrain> ah, it is also english
20:54:20  <TrueBrain> wtf are iish?
20:54:25  <andythenorth> they're like oogs
20:54:30  <andythenorth> but they live in a tank
20:54:33  <andythenorth> and swim around
20:54:36  <frosch123> TrueBrain: "muschi" also works in german for both
20:54:38  <andythenorth> oogs bark
20:54:42  <frosch123> seems to be universal
20:54:46  <andythenorth> aats miaow
20:54:55  <TrueBrain> it is very normal to call a cat "poes" over here
20:54:56  <TrueBrain> which means pussy
20:55:02  <andythenorth> uussy
20:55:04  <TrueBrain> yet in english .. it has a much weirder taste to it
20:55:17  <andythenorth> pussy cat had no bad connotations when I was younger
20:55:24  <TrueBrain> anyway, that PR I just merged gave a lot of cool shorter ways of doing the one I just updated
20:55:26  <TrueBrain> which is nice :)
20:55:31  <andythenorth> the other meaning might have been an import from USA or something
20:55:35  <TrueBrain> "pussy cat" is normal
20:55:39  <TrueBrain> but we don't say "poes kat"
20:55:47  <andythenorth> puss puss puss
20:55:53  <TrueBrain> I do not know why english insists on repeating itself
20:56:00  <TrueBrain> like ... "pussy dog" is not a thing?
20:56:06  <andythenorth> really noy
20:56:07  <TrueBrain> well, your dog can be a pussy, ofc
20:56:08  <andythenorth> not
20:56:17  <andythenorth> bow wow dog
20:56:21  <TrueBrain> a dog cannot be a "poes", in Dutch
20:56:22  <andythenorth> anyway dogs are oogs now
20:56:23  <TrueBrain> funny
20:56:25  <andythenorth> or doges
20:56:31  *** nielsm has quit IRC
20:56:49  <andythenorth> I had some grf idea, but I've forgotten it now
20:56:59  <glx> hmm span doesn't like to work with extern [] declarations it seems
20:57:20  <TrueBrain> glx: that makes little sense also
20:57:24  <TrueBrain> the span itself doesn't keep memory
20:57:34  <TrueBrain> it is just a view of a piece of memory
20:57:50  <TrueBrain> sure you can have that in a list, I guess, but that sounds a bit unusual
20:58:22  <TrueBrain> if you have some code for us to look at, we might be able to help out :)
20:58:42  <andythenorth> what is the grf cargo limit now?
20:59:07  <FLHerne> andythenorth: Does Horse need one of this? https://www.youtube.com/watch?v=oZ-rdVZHOzw
20:59:24  <andythenorth> FLHerne that's a Timberwolf thing
20:59:29  <andythenorth> Timberwolf has sails already in voxels
20:59:53  <FLHerne> It has its very own song
20:59:59  <DorpsGek> [OpenTTD/OpenTTD] TrueBrain updated pull request #9322: Add: store settings as key->value pair https://git.io/JGlmd
21:00:01  <FLHerne> How many rail vehicles have their very own song?
21:01:04  <glx> I'm just trying to change _chunk_handlers type in saveload.cpp
21:01:19  <TrueBrain> owh, wait, I misread what you wrote, at least, I think :)
21:01:44  <TrueBrain> do remember that if you have "const A [] {}", that it becomes "span<const A>", not "span<A>" :)
21:01:47  <andythenorth> hmm I could easily exceed 64 cargos
21:01:48  <TrueBrain> that took me a while to realise :P
21:01:49  <andythenorth> oops
21:03:33  <glx> can't convert 'const ChunkHandler []' to 'span<const ChunkHandler>'
21:03:50  <glx> but probably because they are just extern declarations
21:04:36  <TrueBrain> ah, yes, ofc
21:04:41  <TrueBrain> the length is not available
21:04:46  <TrueBrain> so it cannot figure out what size they are
21:04:57  *** sla_ro|master has quit IRC
21:05:01  <glx> yeah so span won't work for chunks
21:05:23  <TrueBrain> unless you locally make the span external
21:06:21  <TrueBrain> extern const span<const ChunkHandler> _industry_chunk_handlers(__industry_chunk_handlers);
21:06:39  <TrueBrain> that would contain the length now
21:06:52  <glx> and make old extern static
21:06:58  <TrueBrain> yup
21:07:15  <TrueBrain> no clue if it is a good solution
21:07:22  <glx> I can try
21:07:25  <TrueBrain> but at least is the most sane to write, I think :)
21:08:18  <TrueBrain> sadly I would guess that still needs a std::vector to combine them all
21:08:25  <TrueBrain> but not sure that is a bad thing
21:09:52  <frosch123> FLHerne: that sail is really small. it must be really windy to work. are you sure they are not just going downhill? :p
21:10:03  <glx> yeah that, or a smart iterator that could read line by line as if it was a flat container
21:10:14  <andythenorth> FML how is it 22.10 already
21:10:27  * andythenorth didn't make all the grfs yet
21:11:04  <FLHerne> frosch123: Note there are two sails -- the white one was much too small, then they made a red one that was merely too small
21:11:17  <TrueBrain> glx: it runs once on startup .. pretty sure we survive :P
21:11:19  <frosch123> TrueBrain: maybe you want to include rangesv3 next :p that allows concatenating ranges, and iterating over them
21:11:30  <TrueBrain> frosch123: I was just reading up on ranges :P
21:11:32  <TrueBrain> but yeah .. no
21:11:53  <TrueBrain> just switch to c++20 already
21:11:58  <FLHerne> Of course, the thing it's a replica of was designed to operate on Spurn Point, here https://www.openstreetmap.org/#map=13/53.5911/0.1572
21:12:07  <FLHerne> which is always windy because it's in the middle of the sea
21:12:29  <TrueBrain> https://github.com/ericniebler/range-v3/tree/master/include/range/v3 <- its huge! :P
21:12:44  <frosch123> https://en.cppreference.com/w/cpp/compiler_support#cpp20
21:14:03  <frosch123> oh, msvc claims to have finished the standard library
21:14:09  <TrueBrain> "using enum" not in CLang yet? Tssk
21:14:10  <frosch123> how unusual, usually they are the last one
21:14:48  <TrueBrain> HIDDEN AGENDA!
21:14:53  <TrueBrain> was needed for the microships in the vaccines
21:15:09  <frosch123> ships :p
21:15:31  <TrueBrain> even "Layout-compatibility and pointer-interconvertibility traits " they already have
21:15:34  <TrueBrain> where the rest is slacking
21:15:46  <TrueBrain> even constexpr std::vector
21:15:49  <TrueBrain> happy I didn't test on MSVC :P
21:16:10  <TrueBrain> I cannot believe clang lags behind gcc
21:16:37  <frosch123> yes, it's weird. it was h2h before c++20, each of them implementing prototypes for the new features
21:16:53  *** Samu has quit IRC
21:16:57  <frosch123> and various talks about "how easy it is to extend clang"... but somehow gcc is still ahead
21:17:08  <frosch123> but well, competition is good :)
21:17:23  <glx> yeah vs2019 16.10.0 changelog says c++20 is done
21:17:44  <frosch123> only the library, not the compiler
21:18:54  <LordAro> stop trying to use c++20 :p
21:19:02  <TrueBrain> but it is better!!!!!
21:19:18  <frosch123> but well, there will be a new debian stable in a few weeks, and it won't have c++20 support
21:19:53  <frosch123> TrueBrain: but it does not support windows 3.1
21:20:02  <frosch123> nor apple 1
21:20:34  <TrueBrain> yeah ...... my point exactly :P
21:20:47  <TrueBrain> cannot believe people actually still use WinXP
21:21:01  <TrueBrain> the security expert in me is horrified by that .. especially as they appear to be internet connected ...
21:21:30  <frosch123> write a virus that force-updates them :p
21:23:44  <TrueBrain> the things I have seen .... the world has a lot of catching up to do
21:23:46  <TrueBrain> lets keep it at that
21:24:55  <TrueBrain> I once wanted to make a quiz with questions like: "how many % of the companies have sysops that login on their desktop as Domain Administrator"
21:25:01  <TrueBrain> but I realised it would be a very depressing quiz
21:26:16  <frosch123> i only had the opposite: this backup runs over unencrypted nfs. let's disable it.
21:26:25  <frosch123> no replacement
21:26:38  <milek7> patched winxp doesn't have known remote vulnerabilites, I think
21:27:04  <TrueBrain> "how many % of the companies have no retention set on their HR export?"
21:27:30  <frosch123> though i like the new fake smartphone usb chargers, that break your device
21:27:57  <TrueBrain> "new"? :D
21:28:20  <frosch123> fine, new to me :)
21:28:22  <TrueBrain> :D
21:28:30  <TrueBrain> they have done a lot of cool shit with USB chargers
21:28:43  <TrueBrain> you can put a lot of electronics in it
21:28:44  <glx> they are not fake, they charge it too :)
21:28:45  <TrueBrain> like .. a lot!
21:29:00  <TrueBrain> I like the one that exploits the phone, and has a built-in wifi module
21:29:14  <TrueBrain> so while charging, it can just do what-ever on your phone, without leaving a trace on the phone itself
21:29:58  <TrueBrain> but what I absolutely love most, are USB dongles that act as a keyboard
21:30:04  <TrueBrain> so when you insert it, it just opens a browser and goes to a site
21:30:07  <TrueBrain> those are absolutely amazing
21:30:57  <glx> well people still plug random usb devices
21:31:09  <frosch123> but that leaves a visible trace, doesn't it?
21:31:44  <TrueBrain> well, it is like it was typed on the keyboard
21:31:49  <TrueBrain> so as much trace as you would do it yourself
21:32:09  <frosch123> yes, but i mean, while you plug it in, you have a chance to see that it does something
21:32:14  <frosch123> it's not unattended
21:32:16  <TrueBrain> yeah
21:32:40  <TrueBrain> most people won't even react on that btw
21:32:46  <TrueBrain> "owh, that must be sysops doing an update"
21:32:55  <TrueBrain> it is insane how little effort you have to do to hide that :D
21:33:00  <frosch123> good explanation :)
21:33:26  <TrueBrain> and if you name the file <company-name>-mandatory-update.exe
21:33:34  <frosch123> i still like the popcorn, err, it forum at my company
21:33:35  <TrueBrain> they will even click OK on the Windows Security dialog
21:34:43  <milek7> I think 'Microsoft', 'Mozilla' or 'Google' would work even better ;p
21:34:43  <glx> oh some always click ok/yes on whatever message box opens
21:35:02  <TrueBrain> glx: "some" is on the low end of the spectrum :)
21:35:11  <TrueBrain> people are terribly trained
21:35:19  <TrueBrain> absolutely horrifying terribly
21:36:00  <glx> the number of fishing mail I receive that are so easy to spot, and yet people still fall
21:36:16  <TrueBrain> for phishing, you only need 1 to click it
21:36:19  <Xaroth> but the thing of phishing mails is that they don't need everybody to fall for it
21:36:21  <TrueBrain> it is a really unfair game
21:36:35  <TrueBrain> but, it is never 1
21:36:38  <TrueBrain> not even 1%
21:36:39  <TrueBrain> lot more :)
21:37:11  <TrueBrain> worst thing to experience: send phishing, N% falls for it, have an awareness campaign, do another phishing .... ~N% falls for it
21:37:12  <TrueBrain> ffs
21:38:05  <glx> yeah even the simple things to check are ignored
21:38:05  <frosch123> my IT department created a phishing mail themself, to check how many clicked it
21:38:24  <frosch123> but they were probably not allowed to identify individuals
21:38:33  <LordAro> we encourage people to send emails they're not sure about to IT, so we can check it for them (a pain, but better than the alternative)
21:38:47  <TrueBrain> LordAro: that is the correct thing to do
21:38:49  <LordAro> some of the ones we grt are.. painfully obvious
21:38:57  <LordAro> get*
21:39:22  <glx> hey at least they are not sure, it's a progress
21:39:27  <LordAro> indeed
21:39:34  <milek7> what counts for 'falls for it'? running random binary?
21:39:40  <TrueBrain> another fun quiz question: "how many % of the employees' password can be cracked by a simple dictionary attack"
21:40:10  <frosch123> milek7: just clicking a link
21:40:20  *** Wolf01 has quit IRC
21:40:35  <TrueBrain> I once gave a training for a board of what-ever company, and I was showing some bad passwords .. 1 person left in a hurry, came back and had to admit: after seeing this, I had to change my password real quick
21:40:39  <TrueBrain> it was cute he admitted it
21:41:13  <TrueBrain> at least the training made an impact :)
21:41:28  <LordAro> one of the more recent ones was so unsure they checked the domain in the From, and was still questioning why a company (that could conceivably be a customer, but wasn't) was sending unlock-your-mailbox emails
21:41:38  <frosch123> TrueBrain: i new an enthusiastic teenager (not me), who ran a password cracker on the university machines and automatically sent notifications "your password is unsafe" to all found. which included some admin accounts
21:41:58  <LordAro> hahaha
21:42:00  <Xaroth>  heh
21:42:01  <TrueBrain> yeah ... you can alter the question to: how many % of the admin account ....
21:42:15  <TrueBrain> cyber security is in a really terrible state :(
21:42:56  <TrueBrain> but .. we had a demo .. that was fun :) Live (on a closed-network) we cracked another laptop right in front of their faces, and showed how easy it was and what you could do with it
21:43:01  <TrueBrain> mostly started with phishing or what-ever
21:43:15  <TrueBrain> demo of less than 15 minutes
21:43:24  <TrueBrain> and most people left with: euh .. shit .. this is real .. I should pay attention now
21:43:29  <TrueBrain> which is always fun :D
21:43:51  <TrueBrain> most people didn't care till you opened the "Pictures" folder on the cracked laptop :D
21:44:06  <TrueBrain> its funny how little people care if a hacker is on the corp-network
21:44:11  <TrueBrain> but as soon as they access personal files
21:44:14  <TrueBrain> now THAT is not okay :P
21:44:34  <TrueBrain> hmm .. good times
21:44:45  <frosch123> now you want to reapply? :p
21:44:51  <TrueBrain> fuck no :)
21:45:02  <TrueBrain> one things of a few years of this kind of stuff .. you get really paranoia
21:45:13  <TrueBrain> there are places I refuse to go, because I know how bad .. -everything- is
21:45:35  <frosch123> nuclear power plants?
21:46:27  <frosch123> i am against nuclear power since i know how "industrial software for very few customers" is written :p
21:46:28  <TrueBrain> it really doesn't matter which sector ... there are always very good companies in a sector
21:46:30  <TrueBrain> and REALLY terrible ones
21:47:23  <TrueBrain> it is not only software
21:47:33  <TrueBrain> more often than not, it is policies that are just completely out of whack
21:47:36  <TrueBrain> and complete lack of awareness
21:48:39  <TrueBrain> "So, we are now in the center of this company, here is where the magic happen. This computer contains our best-kept secrets" - "owh, I see it is running Spotify?" - "yeah, I am listening to music"
21:48:43  <TrueBrain> I mean ... just carry me away
21:48:50  <LordAro> frosch123: oddly, i'm more reassured by aeroplanes
21:49:03  <LordAro> the code is shit, sure, but it's ridiculously well tested
21:49:42  <LordAro> automotive on the other hand...
21:49:46  <LordAro> run far, far away
21:49:50  <milek7> ...737 max?
21:49:54  <frosch123> you know that aircraft manufacturer who built an aircraft that only flies as long as the software works?
21:50:25  <frosch123> and changing the physical layout would require a new approval from scratch, so they keep changing the software
21:50:33  <LordAro> milek7: i can go on a rant for about 20 minutes listing the number of things thst went wrong to cause that
21:50:48  <TrueBrain> so those manufactures can be solid, best quality software etc .. but they work with a lot of partners .. and how secure are they? And how do those 2 connect? :D
21:52:14  <frosch123> car industry is funny though. they are about to lose all their core experience (combustion engines and gearing), and have to become entirely different companies
21:52:33  <TrueBrain> and already years behind on that curve :P
21:52:38  <frosch123> i'll look from the outisde
21:52:57  <TrueBrain> but, most innovation happens when under pressure
21:53:08  <TrueBrain> so sure, some people might die due to poor software/hardware
21:53:11  <TrueBrain> but .. in the long run :P
21:53:22  <TrueBrain> ghehehe, balancing people's life as if it is nothing >:D
21:53:29  <frosch123> TrueBrain: you can also end up in a kodak-like situation
21:53:36  <TrueBrain> innovate or die
21:53:45  <TrueBrain> true in every sector, always, everywhere
21:53:52  <TrueBrain> many companies found out during covid :P
21:54:12  <frosch123> like, you were a huge company in the past, then your core product became obsolete, your company shrinked by 80%, and the remaining 20% have to pay the retirement funds of the former 100%
21:54:20  <TrueBrain> gyms where here complaining that people couldn't get within 1.5 meter, and that made it impossible, and blablablabla
21:54:25  <TrueBrain> others were like: yeah, we solved it, you are welcome here
21:54:52  <TrueBrain> just the inability to adjust to a new situation .. kills many companies
21:55:14  <TrueBrain> but, ironically, cyber security doesn't seem to be part of that equation (yet)
21:55:33  <TrueBrain> "owh no, a huge databreach" - *turns around* - "lets go back to this company now and buy more stuff"
21:55:55  <TrueBrain> we nerd care a bit about that ..
21:55:58  <TrueBrain> but that seems to be about it :P
21:56:01  <frosch123> well, hardware has become pretty stable in the last 2 decades
21:56:04  <Xaroth> It's amazing how covid has changed the IT landscape at a lot of companies
21:56:08  <frosch123> maybe the same happens with software
21:56:15  <Xaroth> for years companies were hesitant to embrace the whole online
21:56:18  <TrueBrain> I am more worried about policies honestly
21:56:26  <Xaroth> take one pandemic, and that all turned around in days.
21:56:33  <frosch123> when the technology changes slower, more people can keep their "stop learning after 25"
21:56:48  <milek7> didn't kodak kill their own digital camera development because they feared it would eat theirs film business?
21:56:57  <TrueBrain> frosch123: true :) But it means IT as a whole needs to slow down
21:57:01  <TrueBrain> not happening any time soon :P
21:58:43  <frosch123> milek7: there was only one steelmill company that succesfully operated a mobile phone network
22:03:56  * andythenorth must to sleep
22:03:58  *** andythenorth has quit IRC
22:06:09  <TrueBrain> https://steamcommunity.com/app/1536610/discussions/0/3090011896393157200/ <- incoming mystery, I guess :P
22:08:13  *** gelignite has quit IRC
22:08:20  <frosch123> one of the fff talked about how they run a system check at startup
22:08:30  <frosch123> they claimed many games would do that
22:08:36  <TrueBrain> with what goal?
22:08:46  <frosch123> detect completely broken memory
22:09:39  <Xaroth> better to trigger a BSOD at launch than halfway through the game? :P
22:10:01  <milek7> how? preallocate and check estimated amount of memory?
22:10:09  <TrueBrain> I am still curious if we integrate sentry, how often OpenTTD really crashes
22:11:20  *** HerzogDeXtEr has quit IRC
22:12:12  <TrueBrain> but yeah, a BIOS does some checks too, to see if the system is sane
22:15:03  <glx> not even sure they get crash log or dmp (based on the report)
22:15:22  <TrueBrain> I wasn't sure either, but .. without it, it is impossible to trace anyway :)
22:15:26  <TrueBrain> so I just assume it is there :)
22:16:48  <glx> freeze could be a deadlock in threads, but we take high care of that
22:17:13  <TrueBrain> well, he says "freeze", but he can still save the game
22:17:18  <TrueBrain> those 2 things are hard to combine in my head
22:17:25  <milek7> somehow game thread dies but main thread keeps running?
22:17:48  <frosch123> ah, factorio did not do the hardware check, they only considered doing this: http://www.codeofhonor.com/blog/whose-bug-is-this-anyway
22:17:53  <TrueBrain> but as that goes with such reports, the language the user speaks doesn't have to be the language we speak :)
22:19:09  <frosch123> https://www.factorio.com/blog/post/fff-131 <- 5 years ago :p
22:19:16  *** Kitrana has quit IRC
22:22:25  <TrueBrain> right, zzz time
22:29:44  *** frosch123 has quit IRC
22:38:06  *** urdh has quit IRC
22:39:01  *** urdh has joined #openttd
22:51:13  *** urdh has quit IRC
22:51:25  *** urdh has joined #openttd
23:05:12  *** urdh has quit IRC
23:05:20  *** Progman has quit IRC
23:14:56  *** urdh has joined #openttd
23:19:13  *** Kitrana has joined #openttd
23:19:40  *** urdh has quit IRC
23:21:54  *** urdh has joined #openttd

Powered by YARRSTE version: svn-trunk