Times are UTC Toggle Colours
00:01:12 *** triolus has quit IRC 00:03:43 *** triolus has joined #openttd 00:06:50 *** Samu has quit IRC 00:17:19 *** Flygon has joined #openttd 00:18:55 *** goobot has joined #openttd 00:24:14 *** glavinics has joined #openttd 00:32:19 *** glavinics has quit IRC 00:54:31 *** sushibear has quit IRC 01:30:22 *** Lejving_ has quit IRC 01:45:16 *** glx has quit IRC 02:14:00 *** sim-al2 has joined #openttd 02:35:59 *** triolus has quit IRC 02:38:22 *** triolus has joined #openttd 02:44:48 *** goobot has quit IRC 02:52:04 *** sim-al2 has quit IRC 03:33:28 *** triolus has quit IRC 03:36:19 *** triolus has joined #openttd 04:17:50 *** yellyFish has joined #openttd 04:26:03 <yellyFish> hi. i have been trying to profile my cpu usage and see why does it run slow sometimes and i am no expert in C++ but i could tell that there is a recursive call to deterministspritegroup::resolve that sometimes get pretty deep. As i said i am no expert but i recall hearing that recursive calls are difficult for compilers to optimize by themselves. Does anybody here have the time and knowledge to 04:26:05 <yellyFish> look into it or i am just rambling? 04:40:25 <Eddi|zuHause> no sane person is here at 6AM 04:47:09 <yellyFish> most people here are in europe time zone? 04:47:16 <yellyFish> i guess i'll ask later then 04:56:51 *** rocky11384497 has quit IRC 06:02:49 *** Thedarkb-X40 has quit IRC 06:56:54 *** yellyFish has quit IRC 07:05:26 *** yellyFish has joined #openttd 07:14:38 *** Wacko1976 has joined #openttd 07:21:28 *** glavinics has joined #openttd 07:27:58 *** matt21347 has joined #openttd 07:29:29 *** glavinics has quit IRC 07:47:09 *** Wacko1976 has quit IRC 08:00:46 *** matt21347 has quit IRC 08:01:08 *** matt21347 has joined #openttd 08:13:21 *** Wacko1976 has joined #openttd 09:08:48 *** glavinics has joined #openttd 10:07:34 *** Wacko1976 has quit IRC 10:07:41 *** Wacko1976 has joined #openttd 10:08:24 *** sla_ro|master has joined #openttd 10:44:12 *** Wacko1976_ has joined #openttd 10:48:23 *** Wacko1976 has quit IRC 11:04:28 *** Wacko1976_ has quit IRC 11:10:15 <planetmaker> Eddi|zuHause, can you explain to me how CETS builds for you locally? It doesn't for me: https://paste.openttdcoop.org/padld0gj2 11:11:53 <planetmaker> (using a python3.6 environment) 11:13:28 <LordAro> looks like scripts/write.py is broken :p 12:25:13 *** Wacko1976 has joined #openttd 12:30:35 *** sim-al2 has joined #openttd 12:31:27 *** glavinics has quit IRC 12:52:42 *** sim-al2 is now known as Guest1317 12:52:42 *** sim-al2 has joined #openttd 12:57:36 *** Guest1317 has quit IRC 13:08:46 *** sim-al2 has quit IRC 13:11:47 <Eddi|zuHause> planetmaker: needs python2 13:12:44 <Eddi|zuHause> they removed the inline-decomposition of tuples in python3 13:12:50 <Eddi|zuHause> and i use that all over the place 13:13:57 <Eddi|zuHause> probably the main reason why i never bothered porting 13:14:34 <planetmaker> uh 13:15:15 <planetmaker> py2 is so oldschool :P 13:16:20 <LordAro> booo, py2, etc 13:16:26 <Xaroth> can you link the offending line, Eddi|zuHause? 13:17:51 <Eddi|zuHause> Xaroth: lots of lines in the form "def x((a1, a2)):", where you now need to write "def x(a):\n a1,a2=a" or something like this 13:18:56 <Xaroth> ew :P 13:18:59 <LordAro> or add * to where the function is called 13:19:34 <Eddi|zuHause> LordAro: it's already called with ** 13:20:09 <Xaroth> yeah, there's very strong reasons why they wanted to get rid of tuple parameter unpacking 13:20:21 <LordAro> oh dear 13:20:37 <LordAro> maybe you should just write better code :p 13:21:00 <Eddi|zuHause> should probably replace it with named tuple 13:21:03 <Xaroth> to be fair, the 'workaround' isn't that much work :P 13:21:13 <Eddi|zuHause> so i can write a.a1, a.a2 where needed 13:21:13 <Xaroth> it's just one line of code extra per instance 13:21:16 <planetmaker> aye, ok, builds when I install everything outside an anaconda environment 13:22:22 <planetmaker> locally 13:22:36 <planetmaker> https://jenkins.openttdcoop.org/job/cets/30/console <-- makes me wonder what went wrong there :D 13:23:08 <Eddi|zuHause> the code is really not that bad, the problem is my "identifier" is a tuple, and in some places i don't need to know the components of that tuple, so i just compare the complete ID, and in other places i do need to know the complete ID so i decompose it into the tuple parts 13:23:33 *** Samu has joined #openttd 13:24:14 <planetmaker> use a dict instead of tuple? :) 13:24:32 <Eddi|zuHause> planetmaker: no, that's horrible 13:24:55 <Eddi|zuHause> (to debug typos and stuff) 13:26:27 <Eddi|zuHause> planetmaker: i can't help you with pixa 13:26:59 <planetmaker> I've no clue there either... but I wonder... I don't think I have it installed here localy... so it's not needed. Or is it? 13:27:06 <Eddi|zuHause> planetmaker: maybe your version of pixa is too new to work with python2? 13:27:27 <Eddi|zuHause> i think i have code to skip pixa 13:27:50 <Eddi|zuHause> it won't have the autogenerated (currently placeholder) sprites 13:29:00 <planetmaker> jenkins@jenkins:~/jobs/pixa/workspace$ hg id 13:29:00 <planetmaker> f1d1d7fed9cc tip 13:29:04 <planetmaker> what do you use? 13:29:25 <Eddi|zuHause> uhm, i don't even know where to look 13:29:59 <Eddi|zuHause> b1d2acd778e2 13:31:30 <planetmaker> jenkins@jenkins:~/jobs/pixa/workspace$ hg log | grep b1d2ac 13:31:30 <planetmaker> changeset: 20:b1d2acd778e2 13:31:37 <planetmaker> jenkins@jenkins:~/jobs/pixa/workspace$ hg id -n 13:31:37 <planetmaker> 21 13:31:39 <planetmaker> hm 13:31:50 <planetmaker> one revision difference 13:32:24 <Samu> hi 13:33:49 *** Samu has quit IRC 13:34:02 *** Samu has joined #openttd 13:34:05 <planetmaker> Codechange: make pixa python 3 compatible 13:34:12 <planetmaker> so that actually might break it indeed for you 13:34:17 <Xaroth> heh 13:37:14 <planetmaker> let's muddle around and downgrade DevZone's pixa 13:37:21 <planetmaker> and see how CETS build goes then 13:37:41 <planetmaker> seems to work :P 13:37:45 <planetmaker> https://jenkins.openttdcoop.org/job/cets/31/console 13:38:10 <planetmaker> Eddi|zuHause, so, please blame andy :P 13:38:19 <Xaroth> never not blame andy, right? 13:38:32 <planetmaker> well... mostly :P 13:38:38 <Xaroth> I mean, I could go for "Never not blame TrueBrain" 13:38:39 <planetmaker> but pixa is his baby, it's his commit :) 13:38:40 <Xaroth> but he's not at home 13:38:49 <Xaroth> so it wouldn't be as funny. 13:40:54 <planetmaker> ding. Success in building CETS on DevZone 13:41:42 <Eddi|zuHause> hm, i ran "make -B" but it somehow didn't process the png files (and never got to the point of using pixa) 13:42:56 <planetmaker> now I'm in a dilemma... the builds don't exactly run in a separate environment which is scratched afterwards... I can have only one pixa currently :P 13:43:12 <Xaroth> Rewrite all the things! :P 13:43:27 <Eddi|zuHause> use containers! blockchain! 13:43:31 <Eddi|zuHause> AI! 13:43:32 *** nielsm has joined #openttd 13:43:34 <planetmaker> Xaroth, yes... that's what TB would say. And actually... me, too, in this case ;) 13:43:51 <Xaroth> I've been hanging out with TrueBrain too much.. it's rubbing off 13:43:57 <Xaroth> ... ew, cooties. 13:43:57 *** Flygon has quit IRC 13:45:40 <planetmaker> is andy still using his pixa in his repos, anyone around here right now knows? 13:46:26 <Eddi|zuHause> File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 27, in <module> 13:46:27 <Eddi|zuHause> from . import VERSION, PILLOW_VERSION, _plugins 13:46:29 <Eddi|zuHause> ValueError: Attempted relative import in non-package 13:46:30 <Eddi|zuHause> uhm what? 13:46:48 <Eddi|zuHause> planetmaker: almost certainly 13:47:49 <planetmaker> may I suggest to import the correct pixa revision into your repo so that you can import pixa locally? 13:47:58 <planetmaker> s/import/copy/g 13:48:02 <planetmaker> it's only one tiny file 13:48:10 <planetmaker> at least for the time being until I have a proper solution 13:49:58 <planetmaker> It's a bit ugly, but... knowing my time schedule, I won't have a satisfactory solution this or next week :) 13:53:41 <Eddi|zuHause> let me first see whether i can get pixa to run here again 14:06:02 <Eddi|zuHause> planetmaker: hm, so after fixing a few unrelated things in my code, it seems to run with pixa r21 14:08:09 <planetmaker> :D 14:08:26 <planetmaker> then push and see whether DevZone builds it just fine. It's back to pixa-v21 14:08:30 <Eddi|zuHause> at least i could never reproduce your version of the error :p 14:20:16 <Eddi|zuHause> planetmaker: is it possible that the error is in the PIL version? 14:24:02 <planetmaker> hm, why? 14:24:11 <planetmaker> as the last line of the stacktrace is therein? 14:24:43 <planetmaker> I wondered... yet I assume that rather pixa or cets is passing-through some type which PIL/pillow doesn't expect. dunno 14:24:58 <planetmaker> anyhow, the build on devzone succeeded 14:24:59 <Eddi|zuHause> yes, but i couldn't reproduce that 14:25:54 <planetmaker> do you really use PIL instead of pillow? 14:26:03 <planetmaker> (or does devzone?) 14:26:38 <Eddi|zuHause> i'm not sure 14:27:34 <Eddi|zuHause> i think pillow is providing an implementation of PIL, so from python side they look the same 14:27:55 <planetmaker> that's how pillow started, yes. PIL simply was abandoned 14:28:04 <planetmaker> it's a fork of PIL 14:29:06 <Eddi|zuHause> https://paste.openttdcoop.org/pvbrpvo1j 14:30:53 <Eddi|zuHause> i think the "wrong" way to import had weird side effects 14:33:12 *** sla_ro|master2 has joined #openttd 14:33:26 <Eddi|zuHause> https://jenkins.openttdcoop.org/job/cets/32/changes <-- the links on this page don't work 14:34:05 <planetmaker> ah, hm, yes. probably a broken plug-in on update 14:34:26 <Eddi|zuHause> also, where would i find the output of the build? 14:34:34 *** glavinic_ has joined #openttd 14:34:55 <planetmaker> http://bundles.openttdcoop.org/cets/ 14:35:33 <Eddi|zuHause> 4 years since the last successful build 14:35:39 <planetmaker> :) 14:36:14 <planetmaker> time surely flies 14:38:29 *** sla_ro|master has quit IRC 14:41:35 <planetmaker> seems that the template-plugin works not so well anymore :| 14:42:39 *** glavinic_ has quit IRC 14:48:07 *** HerzogDeXtEr has joined #openttd 14:53:27 *** HerzogDeXtEr1 has joined #openttd 14:53:36 *** guru3 has quit IRC 14:58:17 *** Wormnest has joined #openttd 14:59:09 *** HerzogDeXtEr has quit IRC 15:00:13 *** guru3 has joined #openttd 15:08:39 *** Thedarkb has joined #openttd 15:12:53 *** Alberth has joined #openttd 15:12:53 *** ChanServ sets mode: +o Alberth 15:13:06 <Alberth> o/ 15:13:10 <planetmaker> \o 15:14:35 <Alberth> hi, I wondered if I should do a little advertising for my macro processor :) 15:29:55 *** xdarklight has joined #openttd 15:29:59 <xdarklight> With our IRC ad service you can reach a global audience of entrepreneurs and fentanyl addicts with extraordinary engagement rates! https://williampitcock.com/ 15:30:02 <xdarklight> I thought you guys might be interested in this blog by freenode staff member Bryan kloeri Ostergaard https://bryanostergaard.com/ 15:30:06 <xdarklight> Read what IRC investigative journalists have uncovered on the freenode pedophilia scandal https://encyclopediadramatica.rs/Freenodegate 15:30:09 <xdarklight> A fascinating blog where freenode staff member Matthew mst Trout recounts his experiences of eye-raping young children https://MattSTrout.com/ 15:30:17 *** xdarklight has quit IRC 15:31:12 <planetmaker> hm, maybe it's a good idea, Alberth :) 15:31:40 <planetmaker> will s/o kill me when I push directly to nml master? 15:35:46 <Alberth> if you're developer I think you won't die :p 15:36:20 *** Unit193 has joined #openttd 15:36:24 <Alberth> not sure though, I don't have the permissions memorised 15:37:06 <Alberth> won't do much good if you want stuff reviewed though :p 15:37:12 <planetmaker> lucky me :P 15:37:20 <planetmaker> no, of course not for those cases :) 15:37:23 <Alberth> :) 15:37:30 <planetmaker> But there's stuff which needs no review 15:37:44 <planetmaker> Like devzone integration 15:38:10 <Alberth> I usually do make a branch and a merge/pull request, then presse the "merge" button myself 15:38:21 *** pastly has joined #openttd 15:38:24 <planetmaker> more clicks ;) 15:38:30 <Alberth> ha :) 15:39:03 <Alberth> depends on how much value you attach to the history I guess 15:39:15 <planetmaker> in what way does it differ? 15:39:45 <planetmaker> difference being that github's default merges squash things? 15:39:50 <planetmaker> I find that actually detrimental 15:40:29 <Alberth> that's a setting you can change (if you can :p ) 15:40:59 <Alberth> I like the default of having a merge commit 15:41:47 <Alberth> you get nice groups of commits, and a link to the issue / PR 15:41:50 <planetmaker> it leaves you eventually with a series of 'big' commits which might be not easy to read when you squash every commit series into one for larger features 15:42:09 <Alberth> yeah, squashing is quite bad 15:42:21 *** rocky11384497 has joined #openttd 15:42:34 <planetmaker> having PR and links to issues - that's sth I like as well, yes 15:43:05 <planetmaker> But a PR with no more info than the commit message itself... would be somewhat pointless, too :) 15:43:08 <Alberth> at work my commits are much larger, in the thousands of lines, squashing is a good way to never ever understand the commit any more 15:43:19 <planetmaker> hehe :) 15:43:28 <Alberth> yep, just a group then 15:43:39 <Alberth> it's java eh? bit bloaty :p 15:43:53 <planetmaker> uh, you switched from python to java. Should I pity you? 15:44:17 <Alberth> nah, java is no problem, it's just a silly nanny language 15:44:25 <planetmaker> :) 15:44:36 <Alberth> I do still program python, and C/C++ 15:45:10 <Alberth> java is better than python for large scale programs 15:45:25 <Alberth> I got more and more need for adequate typing support in python code 15:45:50 <planetmaker> hm, I see 15:46:06 <planetmaker> what python offers there meanwhile didn't suffice? 15:46:30 <Alberth> it's purely optional, and not enforced 15:46:39 <planetmaker> indeed 15:46:45 <Alberth> I don't get compile errors when I break something 15:47:18 <Alberth> which is really useful at a scale of a 10K+ line program 15:47:25 <planetmaker> agreed 15:48:08 <Alberth> java code is much much larger even, probably a decade of work in it 15:48:44 <planetmaker> yours, you mean? 15:48:57 <Alberth> I did about 1/2 of that :p 15:49:03 <planetmaker> ha 15:49:44 <Alberth> and my former collegue the other half 15:50:15 <planetmaker> still at the department, are you? 15:52:51 <Alberth> yep, different group though 15:52:52 <Alberth> now more control oriented, more continuous time modeling 15:53:01 <Alberth> research with groups of vehicles at the highway (coupled trucks eg) 15:53:12 <planetmaker> oh :) 15:53:38 <Alberth> and robotics as well 15:54:22 <Alberth> still with wheels though, rather with legs :p 15:54:30 <Alberth> *rather than 15:55:36 <Alberth> you're still making 0-gravity flights? 15:56:42 <planetmaker> indeed I am. Though I meanwhile try to avoid the plane for burocracy reasons 15:57:19 <planetmaker> more targetting to finally get sth into orbit 15:57:59 *** Gja has joined #openttd 15:58:19 <DorpsGek_II> [OpenTTD/OpenTTD] quantuumsnot opened issue #6944: Feature request: Add automatic demolition of supply chain when an industry is depleted https://git.io/fxDb6 15:58:55 <planetmaker> he. Funky issue 15:59:31 <Alberth> "program an AI, you'll never has to play yourself then" :p 16:00:31 <planetmaker> don't we target that for a decade now? :P 16:01:10 <Eddi|zuHause> i imagine something like a selective bulldozer: "only remove rails in this area, leave roads/buildings/trees untouched" 16:01:51 <planetmaker> phrased like that, such feature actually starts to make sense 16:02:11 <Eddi|zuHause> depending on which toolbar you have open right now 16:02:20 <Eddi|zuHause> or something like that 16:04:23 <Eddi|zuHause> an alternative interpretation would be something similar to ctrl+drag signals where the bulldozer follows the rail until the next junction 16:05:08 <Alberth> I hardly ever remove long sections of track 16:05:29 <Eddi|zuHause> me neither, but i also don't work with industry closure 16:05:57 <Alberth> good point 16:06:14 <planetmaker> :) Seems "not my problem" here all-around ;) 16:06:29 <Eddi|zuHause> and when i did, i usually only removed the station and left the rails in place 16:06:40 <Eddi|zuHause> that was before infrastructure maintenance, though 16:06:53 <Alberth> "fully automatic" is just a silly request 16:08:24 <planetmaker> kinda reminds me on an ancient patch which made grass grow on unused tracks 16:08:34 <planetmaker> showing the gradual decay 16:08:45 <Eddi|zuHause> Alberth: we need Big Data to have a mythical Algorithm that knows what the player wants before he knows it 16:08:59 <Eddi|zuHause> Alberth: and then annoy every player that wants to deviate from the norm 16:09:03 <Alberth> has such nice edge cases where you work on connecting a neighbour industry too, but just before you lay the final connection, the previous industry closes 16:09:17 <planetmaker> haha! 16:09:18 <Alberth> just correct the player :p 16:09:35 <planetmaker> My infrastructure barely only serves one purpose 16:09:42 <planetmaker> except the very last bit of tracks 16:10:02 <Alberth> yeah, depending on how you build your network 16:10:09 <planetmaker> sure enough 16:10:20 <Eddi|zuHause> i imagine the majority of people still never figured out signals so they build point-to-point connections 16:12:49 <nielsm> hm what about a feature that lets players save industries from closing (unless it's an extractor and the closing reason is "resources ran out") by paying a sum 16:13:13 <nielsm> you have one month to bail it out 16:13:34 <Eddi|zuHause> completely unrelated? 16:13:58 <Eddi|zuHause> you can already fund a new industry in the place of the old one 16:14:09 <Eddi|zuHause> and that one never closes (afaik) 16:16:04 <nielsm> well, for maybe 1/5 the cost of founding a new industry of that type, you extend the closing industry's life by one year 16:16:05 <nielsm> for example 16:16:46 <nielsm> (and if you manage to begin servicing it in the meantime, it will probably survive) 16:17:06 <planetmaker> I wouldn't mind. Not sure how smoothly that goes with NewGRFs. 16:17:30 <planetmaker> closure of serviced industries is anyway a NewGRF thing 16:24:54 <Alberth> default industries hardly ever close if you serve them properly 16:33:45 <yellyFish> hi. i tried to ask this earlier but i guess it was too late. I have been trying to profile my cpu usage and see why does it run slow sometimes and i am no expert in C++ but i could tell that there is a recursive call to DeterministicSpriteGroup::Resolve that sometimes get pretty deep. As i said i am no expert but i recall hearing that recursive calls are difficult for compilers to optimize by 16:33:46 <yellyFish> themselves. Does anybody here have the time and knowledge, i know that's a lot to ask for, to look into it. And even if it can't be transformed into a tail call, any little optimization should compound greatly. 16:35:27 <Eddi|zuHause> certainly more sane persons here at 6PM than 6AM :p 16:36:06 *** dwfreed has joined #openttd 16:36:48 <Eddi|zuHause> anyway, the problem with recursive function calls is not that compilers cannot optimize them, but that also humans have sometimes trouble picking a better algorithm to replace them 16:36:50 <yellyFish> well, for me it's 1PM. so 16:37:47 <Eddi|zuHause> so i don't know how much effort you want to put into it to squeeze out some optimization 16:39:53 <yellyFish> i can't play in the server i like so i guess i could put that time into it and help everyone at the same time 16:40:12 <yellyFish> i am kinda rusty in C++ tho 16:41:20 <Eddi|zuHause> i'm assuming that code deals with NewGRFs, particularly resolving VarAction2 16:41:59 <Eddi|zuHause> other than using less newgrfs, i'm not sure what you could get out of this 16:44:50 <Eddi|zuHause> as far as difficulty to get into openttd coding, you've picked a project somewhere between "insanely hard" and "nearly impossible" 16:46:14 <Eddi|zuHause> i would suggest an easier project to "get your feet wet" 16:46:52 *** nnplv has joined #openttd 16:48:49 *** Scaredy has joined #openttd 16:50:01 *** Scaredy has quit IRC 16:51:12 <planetmaker> yellyFish, did you do timines with or without NewGRFs? 16:55:28 *** Thedarkb has quit IRC 17:06:21 *** sla_ro|master has joined #openttd 17:09:20 <yellyFish> with NewGRFs and with a tool called perf 17:10:33 <Eddi|zuHause> yellyFish: there are some timing-related debug features in the code, you could try to use them to add the spritegroup resolving to the frame time window 17:10:38 *** Thedarkb has joined #openttd 17:10:56 <Eddi|zuHause> or possibly use them to find out which NewGRF is the worst offender 17:11:37 *** sla_ro|master2 has quit IRC 17:11:52 <yellyFish> are you talking about the -d option? 17:12:03 <Eddi|zuHause> no 17:12:16 *** Wolf01 has joined #openttd 17:12:20 <Wolf01> o/ 17:14:37 *** Progman has joined #openttd 17:22:17 *** pastly has left #openttd 17:23:06 <yellyFish> oh, you mean the frame rate window? 17:24:54 <Eddi|zuHause> yes, in the code there are lines that say things like "start measuring the time now" and "stop measuring the time now". you could put those in the various SpriteGroup::Resolve descendents 17:25:36 <planetmaker> there's TIC and TOC macros in the code 17:25:37 <Eddi|zuHause> in src/newgrf_spritegroup.cpp 17:25:59 <Eddi|zuHause> planetmaker: i think there's something newer/more finegrained now 17:26:07 <planetmaker> even better then :) 17:26:13 <planetmaker> since when? :-O 17:26:24 <Eddi|zuHause> a few months? 17:26:29 <planetmaker> <3 sweet! 17:28:02 <Eddi|zuHause> https://github.com/OpenTTD/OpenTTD/commit/2a868b9f3b8e3b5f8b9e5f728f628ec88fd5e3ad 17:28:58 <Eddi|zuHause> "PerformanceAccumulator framerate(...);" 17:29:17 <planetmaker> ha, ty! 17:29:32 <planetmaker> that totally slipped my attention. Great :) 17:31:53 <Eddi|zuHause> So, something like add "PFE_SPRITEGROUP" into "enum PerformanceElement" (framerate_type.h) and then add "PerformanceAccumulator framerate(PFE_SPRITEGROUP);" in the beginning of the relevant functions 17:32:17 <Eddi|zuHause> additional magic needed to put the value into the GUI 17:32:53 <yellyFish> yes. i was looking to something like that 17:33:58 <yellyFish> but first i should check if there is any particular NewGRF that is taking long 17:42:36 <Eddi|zuHause> yellyFish: well, it's a question of trying out random stuff to see if it has an effect, or find out how much fraction of the frame time goes into NewGRF resolving, to test if it is even worth bothering. 17:43:28 <planetmaker> yeah. First thing to test is w/o NewGRF vs. with your current NewGRF choice 17:43:42 <planetmaker> (what NewGRFs are you using?) 17:43:57 <Eddi|zuHause> it may be tricky to find a similarly filled savegame that has no NewGRF 17:44:20 <planetmaker> hm, yes. Maybe coop has some. Difficult tho 17:44:51 <planetmaker> https://www.openttd.org/en/servers <-- is your server there, yellyFish ? 17:45:03 <yellyFish> yeah. i can run the netsave locally fine at like 0.7 speed but online i get choked 17:45:53 <Eddi|zuHause> well, 0.7 means you can't keep up with the server, so he will throw you out 17:46:00 <yellyFish> yes 17:46:04 <yellyFish> https://www.openttd.org/en/server/121499 17:46:06 <Eddi|zuHause> (server must be the slowest) 17:46:13 <yellyFish> it uses JGRPP 17:46:23 <planetmaker> ah, hm 17:47:26 <yellyFish> but same should apply to both i think. 17:47:45 <planetmaker> yep 17:48:20 <planetmaker> but I don't know where jgrpp deviates and by how much 17:48:25 <Eddi|zuHause> yellyFish: something i might try: just printf the grf-ID inside ::Resolve, and then grep -c to find out which one is most often 17:49:00 <yellyFish> lol. yeah i guess that's a quick way to check 17:50:14 <Eddi|zuHause> the spritegroup should have a way to access the GRF it is contained in to get its ID 17:52:48 <Eddi|zuHause> ResolverObject::grffile 17:52:52 <Eddi|zuHause> or something like that 17:53:05 *** Wormnest has quit IRC 17:53:24 <yellyFish> yes the resolverobject has one 17:54:10 <Eddi|zuHause> so "this->grffile.grfid" 17:54:39 <Eddi|zuHause> note that grfid should be printed as big-endian hex number 17:54:47 <yellyFish> object->grffile.grfid 17:55:36 <Eddi|zuHause> is Resolve a static function? 17:56:15 <Eddi|zuHause> "object" sounds like the parent of "this" 17:56:21 <Eddi|zuHause> or other way around 17:56:44 <yellyFish> it's the resolverobject passed to the resolve function 17:57:10 <Eddi|zuHause> yeah, but "this" is implicitly passed as well 17:58:23 <Eddi|zuHause> ah "this" isn't a ResolverObject but a SpriteGroup 17:58:30 <Eddi|zuHause> that makes sense then 17:59:47 *** sim-al2 has joined #openttd 18:01:32 <yellyFish> how would i go about testing this on the server without having a version mismatch? 18:01:52 <Eddi|zuHause> you don't 18:01:57 <yellyFish> or first check locally? 18:02:07 <Eddi|zuHause> these things you only do locally 18:02:12 <yellyFish> gotcha 18:02:50 *** frosch123 has joined #openttd 18:06:48 *** Sausage has joined #openttd 18:06:48 <Sausage> With our IRC ad service you can reach a global audience of entrepreneurs and fentanyl addicts with extraordinary engagement rates! https://williampitcock.com/ 18:06:49 *** Sausage has quit IRC 18:06:53 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on issue #6943: Music doesn't works https://git.io/fxyYF 18:08:04 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on issue #6944: Feature request: Add automatic demolition of supply chain when an industry is depleted https://git.io/fxyOv 18:09:46 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh merged pull request #6937: Fix #4109: Add more water checks to the Oil Rig layout https://git.io/fxWDM 18:17:45 <Samu> oh, nice thx 18:19:32 <DorpsGek_II> [OpenTTD/OpenTTD] Eddi-z commented on issue #6944: Feature request: Add automatic demolition of supply chain when an industry is depleted https://git.io/fxy3r 18:22:38 *** andythenorth has joined #openttd 18:22:41 <andythenorth> o/ 18:27:47 <planetmaker> \o 18:29:47 <andythenorth> so I just close this one with a comment? 18:29:48 <andythenorth> https://github.com/OpenTTD/OpenTTD/issues/6944 18:31:50 <Eddi|zuHause> no, why? 18:33:45 <andythenorth> because it's not stupid, but totally absolutely untenable 18:33:57 <andythenorth> there is no concept of specific routes in OTTD 18:34:17 <Eddi|zuHause> doesn't mean there's no improvement to be had here 18:35:01 <andythenorth> as usual, I don't see the point because it doesn't fit my play style :P 18:35:08 <andythenorth> what's the case for removing a supply chain? 18:35:32 <LordAro> i don't even see how it could be feasible, let alone actually desired 18:35:33 <Eddi|zuHause> industry closure, it says so? 18:35:55 <yellyFish> like oil rigs getting depleted? 18:36:07 <Eddi|zuHause> for example 18:36:40 <frosch123> maybe they don't know about ctrl+autorail 18:37:14 <andythenorth> industry closure is a bug 18:37:24 <andythenorth> if you have serviced industries closing, then you're doing it wrong 18:37:25 <Eddi|zuHause> frosch123: but that only removes individual track pieces? 18:37:26 <andythenorth> or it's a bug 18:37:35 <DorpsGek_II> [OpenTTD/OpenTTD] quantuumsnot commented on issue #6944: Feature request: Add automatic demolition of supply chain when an industry is depleted https://git.io/fxyGK 18:37:51 <andythenorth> just drag dynamite 18:37:53 <andythenorth> no problem 18:37:59 <frosch123> Eddi|zuHause: if you drag it it is a selective removal 18:38:11 <frosch123> it's definitely faster than building the track 18:38:12 <Eddi|zuHause> frosch123: yes, but too micromanag-y 18:38:29 <Eddi|zuHause> frosch123: there is need for something inbetween 18:38:30 <yellyFish> something like the signal autoplacement but rail removal 18:38:40 <frosch123> "need" :p 18:38:48 <LordAro> at best a "follow bulldozer" could follow a track until a junction, but that would just get stopped by every depot 18:39:03 <Eddi|zuHause> well, "need" is a too strong word, but all other words would have been longer :p 18:39:05 <yellyFish> it's the same like signals anyway 18:39:16 <yellyFish> it would be a nice feature to have that 18:39:18 <DorpsGek_II> [OpenTTD/OpenTTD] andythenorth commented on issue #6944: Feature request: Add automatic demolition of supply chain when an industry is depleted https://git.io/fxyG5 18:41:24 <yellyFish> btw, i sorted the data of NewGRF that use the function most and i have two that use it the most 18:41:30 <yellyFish> what do i do with them now? 18:42:04 <Eddi|zuHause> which ones? 18:42:07 <planetmaker> put them in glas box, and give them extra credit :) 18:43:23 *** Namarrgon has joined #openttd 18:43:40 <yellyFish> GRF ID 44440302, filename: north_american_renewal_set-2.51/newnars.grf 18:44:05 <planetmaker> is that because most of your trains are from that set? 18:44:12 <yellyFish> firs_2-2.1.5/firs.grf 18:44:19 <yellyFish> well, i expected firs 18:44:28 <frosch123> i did not 18:44:44 <frosch123> industry grfs are pretty cheap, unless you do ecs-style tile annimation 18:45:18 <Eddi|zuHause> does this cover callbacks? 18:46:29 <yellyFish> i put the printf just before the most used if branch, where they check if the variable is not available 18:46:39 <Eddi|zuHause> the next two questions i would ask here would be: could some of those calls be eliminated by caching, or are they affecting things that are not visible anyway, and should be skipped? (that would improve larger maps) 18:46:48 <DorpsGek_II> [OpenTTD/OpenTTD] quantuumsnot commented on issue #6944: Feature request: Add automatic demolition of supply chain when an industry is depleted https://git.io/fxyZ9 18:47:15 <frosch123> Eddi|zuHause: for vehicles the solution is to remove caching :p 18:47:32 <frosch123> well, or rather: remove the prefetch of the cache 18:47:45 <Eddi|zuHause> well, yes, lazy caching 18:47:59 <Eddi|zuHause> only fill the cache if it is already being accessed 18:48:29 <frosch123> i started, but did not finish :) 18:49:11 <Eddi|zuHause> that would be the answer to question 2, though 18:50:07 <yellyFish> so check which variable is called the most if any is substantially more than the others? 18:50:21 <Eddi|zuHause> no 18:50:48 <Eddi|zuHause> i don't think that gives you meaningful answers 18:52:47 <frosch123> yellyFish: http://devs.openttd.org/~frosch/profile_ecs.png <- ECS in 2011 18:53:49 <yellyFish> mmmm. didn't know that was in the game 18:53:58 <frosch123> it isn't :p 18:54:03 <Eddi|zuHause> i don't think it is 18:54:24 <DorpsGek_II> [OpenTTD/OpenTTD] nielsmh commented on issue #6944: Feature request: Add automatic demolition of supply chain when an industry is depleted https://git.io/fxyc8 18:54:47 *** glx has joined #openttd 18:54:47 *** ChanServ sets mode: +v glx 18:54:49 *** sim-al2 has quit IRC 18:55:41 <yellyFish> frosch123: then what are you trying to tell me with that? i am confused 18:55:48 <frosch123> https://github.com/frosch123/OpenTTD/tree/feature_newgrf_profiler <- it's just 7 years behind 18:56:22 <frosch123> yellyFish: measuring the amounts of callbacks was my approcach in 2011 18:56:51 <frosch123> which resulted in "ecs is hopeless", and various improvements for other grfs 18:57:28 <frosch123> last year i did some callgrind stuff, which improved nuts by 20% 18:57:53 <frosch123> but there is still lots of optimisation potential for vehicles 18:58:11 <frosch123> industry grfs never appeared on my list, unless you run a 4kx4k map with 3 vehicles 18:58:15 <DorpsGek_II> [OpenTTD/OpenTTD] Wilma456 commented on issue #6943: Music doesn't works https://git.io/fxycb 18:58:53 <frosch123> basically: if industry newgrf need more resources than vehicle grfs, you either use ecs, or you have too few vehicles compared to the number of industries 18:59:07 <yellyFish> no. i have plenty that i am sure 18:59:28 <frosch123> no idea, maybe it's something new then 18:59:54 <frosch123> maybe andy started doing ecs style animation :) 18:59:59 <frosch123> but I doubt that 19:02:45 <yellyFish> maybe check what is making firs go through that branch 19:10:08 *** sekhmet has joined #openttd 19:10:12 <sekhmet> With our IRC ad service you can reach a global audience of entrepreneurs and fentanyl addicts with extraordinary engagement rates! https://williampitcock.com/ 19:10:12 *** sekhmet has quit IRC 19:10:27 <yellyFish> lol 19:10:31 <Wolf01> They are spamming in every server 19:11:26 <frosch123> as if entrepreneurs would use irc 19:12:00 <yellyFish> lol. i see what you did there 19:12:28 <andythenorth> frosch123: ecs style animation is not wiki :P 19:12:31 <andythenorth> what does it mean :P 19:13:06 <frosch123> there is a callback to decide the duration of an animation frame 19:13:19 <andythenorth> that's a nice website he had 19:13:26 <frosch123> but it means that this callback is called every tick for every tile to decide whether the duration is over 19:15:07 * andythenorth clarifies that the 'nice site' comment about the racist site was irony 19:15:09 <andythenorth> just in case 19:15:19 <andythenorth> don't click the link 19:15:28 <frosch123> why did you? 19:15:34 <andythenorth> because curious 19:15:34 <Eddi|zuHause> i really wasn't going to... 19:15:41 <frosch123> deperate to do something else than tanks? 19:15:42 <LordAro> oh dear 19:15:54 <LordAro> you've probably got all the viruses now 19:15:55 *** gelignite has joined #openttd 19:15:57 <glx> hope you did it in private mode 19:15:58 <andythenorth> I am always curious what spammers are promoting 19:17:35 <Eddi|zuHause> i'd not be worried about the content of the site, but about the data harvesting, tracking cookies or flyby infections 19:19:16 <andythenorth> or that clicking creates a business model for people I dislike 19:19:30 <andythenorth> I have yet to be drive-by-ed 19:19:33 <andythenorth> but there's a first time 19:19:50 <andythenorth> I've seen attempted drive-bys 19:20:11 <andythenorth> and I know multiple people who've been conned by fake flash updates 19:20:22 *** tompaw has joined #openttd 19:20:22 <tompaw> With our IRC ad service you can reach a global audience of entrepreneurs and fentanyl addicts with extraordinary engagement rates! https://williampitcock.com/ 19:20:22 *** tompaw has quit IRC 19:20:37 <Eddi|zuHause> well, problematic thing about drive-by-infections is the ones you wouldn't notice 19:20:38 <LordAro> maybe time for +r 19:21:21 <glx> no need for +R with this rate 19:21:54 <yellyFish> Looks like there really is a market for entrepeneurs and fentanyl addicts, huh 19:22:15 <andythenorth> yeah I've seen something like this on multiple macs https://en.wikipedia.org/wiki/Flashback_(Trojan) 19:22:41 <andythenorth> and I once saw an unprompted download in my browser succesfully started from a site 19:23:04 <yellyFish> spooky 19:24:08 <andythenorth> drive-by innit 19:24:17 <andythenorth> anyway 19:24:36 <andythenorth> so ECS style animation :P 19:27:10 <frosch123> it works on 256x256 maps with 100 industries 19:27:19 <andythenorth> frosch123: so animation_speed as a cb, not a prop? 19:27:51 <frosch123> yes, using the speed callback is worse than setting the fastest animation speed 19:28:14 <andythenorth> I use it as a prop 19:28:21 <frosch123> that's fine 19:28:25 <andythenorth> so if nml is doing the right thing, it's not that :P 19:28:43 <frosch123> rewrite the profiler patch, and you can measure it :) 19:29:21 <Eddi|zuHause> how many new windowing systems did we have since 2011? 19:29:48 <frosch123> we also had a major newgrf refactoring 19:30:05 <andythenorth> all the things 19:30:14 <andythenorth> I should finish something newgrf 19:30:57 <nielsm> someone should review those cargo count patches 19:30:58 <frosch123> Eddi|zuHause: the patch already has nested widgets 19:31:07 <frosch123> so, that part is likely the most compatible one 19:31:40 <yellyFish> okay. both newGRFs call the most for variable 1A 19:31:56 <andythenorth> nielsm: maybe Eddi|zuHause can review them? o_O 19:32:04 <andythenorth> now he has commits he's in the zone again 19:32:14 *** Thedarkb has quit IRC 19:32:49 <frosch123> yellyFish: that's not even a variable :p 19:33:32 <yellyFish> variable are in hex right? 19:33:34 <Eddi|zuHause> that's the constant -1 19:33:53 <Eddi|zuHause> (or 0xFFFFFFFF) 19:34:26 <Eddi|zuHause> https://newgrf-specs.tt-wiki.net/wiki/GlobalVariables 19:34:45 <Eddi|zuHause> yellyFish: but as i said, that information is probably not useful for any optimisation purposes 19:35:28 <frosch123> yellyFish: add a shortcut for 1A in static inline uint32 GetVariable(const ResolverObject &object, ScopeResolver *scope, byte variable, uint32 parameter, bool *available), and see wether that has an impact 19:37:22 <frosch123> it safes a non-inlined function call 19:39:50 <Eddi|zuHause> Var 1A is probably used a lot in some internal nml calculations 19:39:53 <frosch123> (assuming you have something like callgrind running, to measure improvments in one-digit percentages) 19:40:03 <frosch123> Eddi|zuHause: nars is nfo 19:41:02 *** Thedarkb has joined #openttd 19:41:37 <yellyFish> mmm i think i found a logic error. i'll check if it's fixed in latest JGR version first 19:42:01 <Eddi|zuHause> frosch123: also "newnars"? 19:42:21 <frosch123> does that exist? 19:42:33 <Eddi|zuHause> frosch123: that's what the filename says above 19:43:18 <frosch123> it says nars 2.51 19:43:19 <Eddi|zuHause> "<yellyFish> GRF ID 44440302, filename: north_american_renewal_set-2.51/newnars.grf" 19:43:29 <frosch123> i assume that is a pikka nars 2 19:43:43 <yellyFish> is it safe to say that there is a semantic error if there is a if branch that can never get evaluated to true? 19:43:51 <Eddi|zuHause> well, there is certainly a difference between NARS2 and NARS2.5 19:44:10 <frosch123> it's on bananas with "custom" license, must be pikka 19:44:11 *** spudly has joined #openttd 19:44:12 <spudly> With our IRC ad service you can reach a global audience of entrepreneurs and fentanyl addicts with extraordinary engagement rates! https://williampitcock.com/ 19:44:12 *** spudly has quit IRC 19:44:23 <Eddi|zuHause> yellyFish: depends 19:44:28 <frosch123> yellyFish: gcc7 should warn about that 19:44:39 <Eddi|zuHause> yellyFish: have a link to the code? 19:45:20 <yellyFish> https://github.com/JGRennison/OpenTTD-patches/blob/b582ef8078a8f66b5f77fabf978c89771e65e260/src/newgrf_spritegroup.cpp#L240 19:46:09 <Eddi|zuHause> yellyFish: so why do you think that can never be true? 19:46:47 <yellyFish> _sprite_group_resolve_check_veh_check starts false and never get assigned true 19:46:52 <Eddi|zuHause> yellyFish: remember that by convention, variables starting with _ are global variables 19:47:14 <Eddi|zuHause> so they might be set in completely different locations 19:47:37 <yellyFish> oh yeah, duh. you right 19:48:03 <frosch123> that's jgr code? 19:48:10 <yellyFish> yes 19:48:40 <frosch123> are they any measurement results about that whitelist? 19:48:43 <frosch123> *there 19:50:03 *** gelignite has quit IRC 19:50:07 <yellyFish> you mean done by me? 19:50:24 <frosch123> i do not follow jgr development 19:50:43 <frosch123> so, i have no idea about that stuff 19:52:34 <yellyFish> well, i was checking that because what i am measuring goes past that whitelist 19:53:23 <yellyFish> there is a case check for that 1A var in the whitelist but doesn't get checked because of that global variable. Not sure what that global variable means tho 19:54:19 <frosch123> https://github.com/JGRennison/OpenTTD-patches/commit/3ac94e97c8eb05e2a767ce5c0267a268e9e12145 <- it's from here 19:54:56 *** sla_ro|master has quit IRC 19:55:19 *** nielsm has quit IRC 19:55:30 <Eddi|zuHause> yellyFish: that whitelist basically only says that the value of var 1A doesn't really change, but it's not where var 1A actually gets evaluated 19:57:08 *** Gja has quit IRC 19:57:59 <Eddi|zuHause> frosch123: i think the idea there is that the cache invalidation is not unconditionally every tick 19:58:15 <frosch123> yes, i read the code 19:58:32 <frosch123> but there is no specific branch for it, so i never noticed it before 19:59:08 <Eddi|zuHause> frosch123: patchpacks is where patches go to die :p 19:59:24 <frosch123> jgr has branches for single features 19:59:33 <frosch123> which makes looking at them a lot easier 20:00:04 <frosch123> Eddi|zuHause: that only applies to patchpacks which are not maintained like jgrpp 20:00:17 <frosch123> jgr knows how to use git 20:00:50 <frosch123> unless he asks his little brother to do stuff :p 20:02:43 <frosch123> i guess it's more likely he has children though, than siblings in influencable ages 20:03:23 <frosch123> andythenorth: what is the status of python/c++ programming skills? 20:03:35 <frosch123> devops? 20:03:45 <andythenorth> status? 20:03:48 <andythenorth> o_O 20:04:16 <frosch123> i talked about deligating tasks to children or siblings :) 20:04:28 <andythenorth> child #1 keeps asking to learn 'snake' 20:04:47 <andythenorth> but when I try and teach him, he gets distracted by it's basic maths calculations 20:04:48 <frosch123> you name it snake so they cannot google for it? 20:04:50 <andythenorth> he really likes maths 20:04:55 <andythenorth> he calls it snake 20:05:06 <andythenorth> he was delighted when saw chameleon in Iron Horse 20:05:14 <andythenorth> more animals :P 20:05:16 <frosch123> :p 20:05:33 <andythenorth> children wouldn't be allowed to devops 20:05:33 <frosch123> i guess flask and flexx are no animals 20:05:40 <andythenorth> nobody should do devops without battle scars 20:06:04 <andythenorth> until you've broken all production Apache at 6.30pm on a Friday, you don't get SSH 20:06:07 <andythenorth> :P 20:06:46 <Eddi|zuHause> over here, nobody is even there fridays at 6:30pm 20:07:06 <frosch123> it's the best time to get work done, if you have to 20:07:14 <Eddi|zuHause> nothing happens friday after 2:30-ish 20:07:35 <Eddi|zuHause> frosch123: yes, but my boss didn't understand it, and demanded i show up at 8AM like everyone else 20:07:52 <frosch123> you can also show up at 5am 20:07:56 <frosch123> it works in both directions 20:08:16 <Eddi|zuHause> not for me 20:08:39 *** ChanServ sets mode: +o orudge 20:09:42 <andythenorth> 8AM is a terrible idea 20:10:20 <Eddi|zuHause> well, technically the rules of the company were 7AM to 4PM 20:10:59 <frosch123> you head for 8am if there is still preparation work for the 10am meeting :p 20:11:57 <Eddi|zuHause> there was a weekly meeting mondays at 8:30, and i said something like "i can do that, if i don't have to show up before 10 the other days" 20:12:57 <Eddi|zuHause> they first agreed, but later they were like "you keep the times like everyone, or else" and i said "then else..." 20:13:09 <frosch123> a meeting with the whole team is like sleep, isn't it? 20:13:39 <andythenorth> the world has 3x as many engineer job openings as engineers afaict 20:13:39 <Eddi|zuHause> not after driving to work... 20:13:47 <andythenorth> why developers stay in crap jobs and moan I don't know :) 20:13:50 <andythenorth> inertia probs 20:14:03 <andythenorth> also engineer salary inflation is a thing currently :P 20:14:06 <Eddi|zuHause> and my usual tendency to be 5-10 minutes late to everything more than 200m away 20:14:12 <frosch123> andythenorth: because 80% of it jobs are crap? 20:14:20 <andythenorth> hmm 20:14:34 <frosch123> but yes, salary inflation :p 20:14:46 <andythenorth> we had a potential hire recently, hates his boss 20:14:50 *** lyf has joined #openttd 20:14:54 *** LazarUS has joined #openttd 20:15:00 <andythenorth> but got offered effective 20% rise so stayed 20:15:11 <andythenorth> hate the work, hate the company BUT THE MONEY 20:15:25 *** LazarUS has quit IRC 20:15:25 *** lyf has quit IRC 20:15:34 <Eddi|zuHause> i could really live without the money... i need a good work environment 20:15:42 <Eddi|zuHause> one that is demanding but not pushy 20:16:06 *** glavinics has joined #openttd 20:16:09 <yellyFish> lol. should use the money to get his boss in a 'accident'. kill two birds with one stone 20:16:51 <Eddi|zuHause> who says the next boss won't be worse? 20:17:14 <frosch123> yellyFish: "having a bad boss" may still be a better option than "having to do the work of a former boss" 20:17:44 <yellyFish> i am working with incomplete information here 20:18:00 <frosch123> Eddi|zuHause: that's the second question. the first is "when will there be a next boss"? 20:19:40 <andythenorth> level up 20:19:41 *** Alberth has left #openttd 20:19:49 * andythenorth is hiring :P 20:20:34 <Eddi|zuHause> andythenorth: you have something i can do from home and not get brexit troubles? 20:22:06 <andythenorth> nah 20:23:14 *** frosch has joined #openttd 20:23:19 <frosch> do you accept remote working from continental europe? 20:23:39 <Eddi|zuHause> that's what i just asked? 20:23:50 <frosch> and yes, my router had a freudian breakdown 20:27:53 *** frosch123 has quit IRC 20:30:06 <andythenorth> somewhat not 20:30:08 <andythenorth> for reasons 20:30:30 <andythenorth> it's hard to get the full benefit of my sense of humour remotely 20:30:59 <frosch> oh, that probably excludes non-native brittish :) 20:34:33 <andythenorth> we have Australians 20:34:41 <andythenorth> New Zealanders 20:36:03 <frosch> a nearby university has an indian community, so recently my indian coworkers outnumber the chinese coworkers 20:37:13 <frosch> even more suprising is that they reach 50% women, compared to 10% in every other group 20:37:48 <planetmaker> andythenorth, aren't those just the criminals from yesterday? :P 20:38:26 <andythenorth> planetmaker: so they tell me 20:38:53 <frosch> i think there was a recent dilbert about that 20:39:09 <frosch> unusual, usually we quote xkcd :) 20:39:44 <planetmaker> I may have, but I didn't try on purpose :) 20:42:21 <frosch> http://dilbert.com/strip/2018-09-20 20:42:28 <frosch> (more main stream than the usual xkcd) 20:42:43 <andythenorth> far too close to the bone 20:42:50 <Eddi|zuHause> frosch: i'm assuming you mean indian from india, not "indian" from america 20:42:59 <andythenorth> they're native americans 20:43:16 * andythenorth doesn't actually know that for a fact 20:43:16 <frosch> Eddi|zuHause: yes, but i may include the occasional pakistani 20:43:22 <frosch> or east-iranian 20:43:23 <andythenorth> indian sub-continent 20:43:34 <Eddi|zuHause> frosch: how about east pakistan? 20:43:47 <planetmaker> he :) 20:44:09 <Eddi|zuHause> (that was a real thing, it's now called Bangladesh) 20:48:21 <Eddi|zuHause> in any case, india is probably more ethnically diverse than "america" 20:55:10 *** frosch has quit IRC 21:03:54 <andythenorth> how is it bedtime already? :( 21:03:56 *** andythenorth has left #openttd 21:04:13 <Eddi|zuHause> bedtime? i barely got up? 21:09:51 <planetmaker> :D 21:14:56 *** elvishjerricco has joined #openttd 21:14:59 <elvishjerricco> With our IRC ad service you can reach a global audience of entrepreneurs and fentanyl addicts with extraordinary engagement rates! https://williampitcock.com/ 21:15:00 *** elvishjerricco has quit IRC 21:15:44 <Eddi|zuHause> how hard is it to kill these things serverside BEFORE their message is delivered to the clients? 21:16:23 <glx> good question 21:17:23 *** Happpy has joined #openttd 21:17:36 *** Happpy has left #openttd 21:18:20 <LordAro> surprisingly hard 21:18:45 <Eddi|zuHause> you'd have to run the filter code on all servers, i presume 21:22:50 <planetmaker> the main problem likely would be to distinguish them from legitimate users 21:23:36 <planetmaker> have them join 10 channels after network join. And send that message. Might be a normal user with a script saying 'hi' in his favourites as well 21:23:39 *** Progman has quit IRC 21:34:49 *** Thedarkb has quit IRC 21:45:54 *** Wolf01 has quit IRC 21:53:23 *** zetaPRIME_ has joined #openttd 21:53:27 <zetaPRIME_> With our IRC ad service you can reach a global audience of entrepreneurs and fentanyl addicts with extraordinary engagement rates! https://williampitcock.com/ 21:53:27 *** zetaPRIME_ has quit IRC 21:58:43 *** Thedarkb has joined #openttd 22:05:56 <Samu> ads? 22:06:40 <dwfreed> just ignore it 22:06:48 <dwfreed> it's spam 22:11:34 <Eddi|zuHause> i think the point of spam is to penetrate the ignore-capacity of enough people 22:16:55 *** matt21347 has quit IRC 22:17:03 <planetmaker> if 1M read it and 100 click it, it might be successful 22:35:28 *** Thedarkb-X40 has joined #openttd 22:57:16 *** Wacko1976_ has joined #openttd 23:02:04 *** Wacko1976 has quit IRC 23:05:18 *** Wacko1976_ has quit IRC