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