IRC logs for #openttd on OFTC at 2020-11-14
⏴ go to previous day
00:03:14 <TrueBrain> I believe you can do anything! :D
00:11:11 <TrueBrain> right, send CloudFlare another email
00:11:28 <TrueBrain> I just asked them what it would cost us to get an Enterprise Plan :P I can imagine it being a lot, but if you never ask ........ you never know
00:11:42 <TrueBrain> I will ask our master in chief to get 2 VPSes at OVH tomorrow LordAro
00:11:59 <TrueBrain> after I brought the wiki live, I will see what code-changes are needed :)
00:12:26 <TrueBrain> we got somewhat side-tracked, but frosch123 , do you see any blockers to bring the wiki online?
00:13:18 <frosch123> no :) i procrastinated writing the frontpage/news. when the forums-url-sed grew out of hand :p
00:13:32 <TrueBrain> well, you have tomorrow for that :P
00:13:45 <TrueBrain> we are missing the search bar, but we have to wait for search engines to pick up the new goodies
00:13:51 <TrueBrain> I am pretty happy with the 150 requests/s
00:14:17 <frosch123> still no ngynx, right?
00:14:17 <TrueBrain> and pretty sure we can delay going live for months, and finetune it further and further
00:14:45 <TrueBrain> I would have to load it as a side-car, as I showed with gollum
00:14:47 <TrueBrain> it is a bit annoying to do
00:14:53 <TrueBrain> this seems fine too :P
00:14:54 *** WormnestAndroid has joined #openttd
00:15:00 <frosch123> yeah, no more delays
00:15:41 <TrueBrain> owh, and if "git" fails for what-ever reason
00:15:47 <TrueBrain> the pod kills itself and reboots
00:15:53 <TrueBrain> I didn't want to deal with "read-only" mode :P
00:16:02 <frosch123> and sentry reports?
00:16:09 <TrueBrain> yes, there will be a sentry report
00:16:23 <TrueBrain> it is my: WAKE UP SOMETHING BROKE, signal
00:16:35 <frosch123> we'll see who digs up skynet
00:16:52 <TrueBrain> the good thing is, with wiki migrated ... I can shut down the MySQL :D
00:17:05 <TrueBrain> next up, email ... we know what to do, we just have to do it
00:17:20 <TrueBrain> and, of course, supybot ... :P
00:17:37 <TrueBrain> after that ... I once a month have to cycle servers for them to receive upgrades .. and every N months cycle secrets ..
00:17:43 <TrueBrain> I am looking forward to that moment
00:18:04 <TrueBrain> everything managed \o/ \o/
00:18:22 <TrueBrain> might cost 40 euro a month more ... pretty sure my time is worth more :D >:D
00:19:00 <frosch123> i think that's the whole business plan of aws and friends :)
00:19:15 <TrueBrain> and it really is totally worth it
00:19:28 <TrueBrain> the security of openttd.org is now 1000x better than it was
00:19:51 <milek7> I still think all that cloud is ridiculously overpriced..
00:20:21 <TrueBrain> it really isn't; but you have to look beyond the managed vs unmanaged
00:20:34 <TrueBrain> well, the bandwidth price is overpriced, that is very true
00:20:39 <TrueBrain> but it will go down over time :)
00:21:07 <TrueBrain> I remember 1 mbit/s was costing 15 euro a month, on a 95% rating
00:21:17 <TrueBrain> that is 300GB for 15 euro, give or take
00:21:31 <TrueBrain> it is now at 0.09 :D
00:23:09 <TrueBrain> it means very little to me :P
00:23:33 <TrueBrain> do consider how letsencrypt is going to verify the domain
00:23:39 <TrueBrain> there will be 2 VPSes on the same hostname
00:24:10 <TrueBrain> so http-validation can easily fail
00:24:19 <TrueBrain> DNS validation is an option, no clue how that works in ansible
00:24:22 <LordAro> well, i'm trusting the example i copied it from, but geerlingguy's stuff tends to be pretty sound - he writes a decent percentage of all ansible 'recipies'
00:24:37 <TrueBrain> it is a bit rare, what I would like
00:24:53 <TrueBrain> we can, if that is easier, also use bananas-1.cdn.openttd.org and bananas-2.cdn.openttd.org
00:25:06 <TrueBrain> and I can make the redirector we have in front of it pick one at random
00:25:59 <TrueBrain> with 2 different domains, you can use the letsencrypt http validation
00:26:03 <TrueBrain> which I think your snippet uses
00:26:29 <TrueBrain> (as that is default for certbot)
00:28:21 <TrueBrain> we would only need to change that to pick one from a list, basically
00:28:45 <TrueBrain> pretty trivial change
00:28:51 <TrueBrain> so okay, lets do that instead :)
00:28:54 <LordAro> round robin should still be fine, i think
00:28:59 <LordAro> but it is a bit nasty :p
00:29:13 <LordAro> (round robin DNS itself)
00:29:25 <TrueBrain> on all OSes except Windows it is fine :P
00:29:31 <TrueBrain> but I guess you have a point there
00:29:51 <TrueBrain> how to upload files there .. hmm ... that needs some more consideration ..
00:30:06 <TrueBrain> we can either have the API upload it there
00:30:13 <TrueBrain> or we can have a simple script sync every N minutes
00:30:35 <frosch123> then you have to track sync status, or people get a lot 404
00:30:58 <TrueBrain> storage backends are very simple
00:31:31 <TrueBrain> if I can make it so we can daisy-chain them
00:31:36 <TrueBrain> it becomes a configuration problem
00:31:39 <milek7> maybe nginx could rewrite 404 to some php/something script, that fetches it from s3?
00:31:40 <frosch123> so just a subprocess("scp")?
00:31:40 <TrueBrain> which is a nice problem to have :)
00:31:56 <TrueBrain> milek7: I did that for a while, that is not a bad idea honestly
00:32:19 <TrueBrain> where is my nginx config for that ...
00:33:34 <TrueBrain> so instead of copying files there, it is a caching proxy
00:33:43 <TrueBrain> means it is always up-to-date
00:33:49 <TrueBrain> doesn't require copying files
00:33:56 <TrueBrain> everything we have can stay the same
00:34:12 <TrueBrain> just the "60m" should be like ..... A LOT
00:34:38 <TrueBrain> line 12 and 30 .. 39 are important
00:34:43 <TrueBrain> rest is not needed for this
00:34:58 <TrueBrain> I really like that ... makes it really simple to implement
00:35:06 <TrueBrain> no clue why I forgot about this :D
00:37:50 <TrueBrain> LordAro / frosch123 : good idea / bad idea? :)
00:39:17 <frosch123> does that also work for the url rewrite magic?
00:40:03 <TrueBrain> using the AWS infrastructure
00:40:06 <frosch123> then it sounds cool :)
00:40:17 <TrueBrain> in other words: it would be a poor-mans CloudFlare solution
00:40:27 <LordAro> i was halfway through working out how to make nginx do the url rewriting :p
00:42:01 <TrueBrain> well, it sounds like this VPS solution uncomplicated itself over the evening :D Nice
00:42:32 <TrueBrain> happy DigitalOcean was being a twat with "no IPv6 for Spaces", and I once already figured out how to do caching nginx :P
00:43:02 <TrueBrain> there is a 40GB SSD in those VPSes
00:43:05 <TrueBrain> so that is PLENTY of storage
00:43:06 <milek7> maybe I'm just having needlessy evil thoughts... but that rewrite can be abused somewhat
00:43:19 <milek7> fetch random filenames to clog cache
00:43:47 <TrueBrain> you mean the regex LordAro showed, or my proxy_pass?
00:44:19 <milek7> that proxy_pass, ie. fetch random visible names that are fetching same file over and over
00:44:32 <TrueBrain> if you want to hurt us, you can :)
00:45:18 <TrueBrain> but if you like, we can rewrite the URL to not include that for the caching
00:45:31 <TrueBrain> meaning LordAro's work is not in vain :P
00:45:47 <TrueBrain> (rewrite the URL to not have the "/filename.tar.gz" at the end and proxy-pass that)
00:46:26 <TrueBrain> not completely sure what the key is for the cache entry
00:46:36 <TrueBrain> but that can be found out :D
00:48:31 <TrueBrain> locations of the VPSes will be Roubaix and Frankfurt, I think
00:48:40 <TrueBrain> Roubaix as it is in the core of OVH, so good connectivity
00:48:50 <TrueBrain> and Frankfurt to have a fallback somewhat further away
00:49:05 <TrueBrain> I don't see a need to have one outside of Europe
00:50:42 <frosch123> frankfurt is de-cix
00:52:14 <TrueBrain> yeah, and if I remember OVH infrastructure good enough, that is also pretty connected :D
00:52:26 <frosch123> but if i understand you well, we can just add and remove vps as needed. balancer needs to know which cdn-1..cdn-N exist, and then they will sync themself
00:53:30 <TrueBrain> so that makes the question .. how is the balancer going to detect that, or are we going to hardcode it
00:53:48 <frosch123> well, depends whether it shall ping them
00:54:10 <TrueBrain> that they ping the balancer, telling: I AM HEREEEEEEEE
00:54:20 <frosch123> oh yeah, that sounds cool. vps register at it via ping :)
00:54:22 <TrueBrain> and if that ping is away for N minutes
00:54:34 <frosch123> so balancer does not need to know them at all
00:54:34 <TrueBrain> it knows: it is goneeeeeee
00:55:17 <TrueBrain> does require something on those VPSes to do the ping
00:55:24 <TrueBrain> (a simple cron-curl would be fine)
00:55:48 <TrueBrain> ghehe :) Yes, some secret indeed :)
00:56:17 <TrueBrain> within AWS I take care of these things via a private DNS
00:56:29 <TrueBrain> the services register a DNS entry there, which other parts pick up
00:56:40 <TrueBrain> but ... we don't have a shared DNS, I guess
00:56:44 <frosch123> can sentry report when a ping is lost and comes back?
00:56:54 <TrueBrain> Sentry can do alerts, so yes
00:57:28 <TrueBrain> Metric Alerts, the interface mention
00:57:33 <TrueBrain> so .. I guess .. it can do metrics :D
00:57:35 <frosch123> some message when the balancer adds or removes a mirror
00:59:16 <frosch123> hmm, it's 1am again
00:59:24 <TrueBrain> yeah, time to get some shut-eye
00:59:40 *** WormnestAndroid has quit IRC
01:00:11 *** WormnestAndroid has joined #openttd
07:56:21 *** longtomjr has joined #openttd
08:32:08 <longtomjr> Oooh in a hot country is out for FIRS4. Might be time for another africa-themed multiplayer game in a bit
08:40:09 *** andythenorth has joined #openttd
08:41:17 <longtomjr> andythenorth, having a look at FIRS 4 alpha 4 now. A lot of exciting changes :)
08:41:34 <andythenorth> have you played previous alphas? o_O
08:42:29 <longtomjr> Just read the changelog for alpha 4, super happy about in a hot country being back
08:43:25 <longtomjr> From recent games, my in a hot country game I ran were definately one of my favorites.
08:44:45 <longtomjr> I really like the addition of only spawning primary industries during the game, and not secondaries.
08:47:00 <longtomjr> also, I have an IH request if you are taking those (is there a box I missed on the way in?). Having ng torpedo wagons would be nice, since I tend to use ng for my factory complexes as a bit of a veriaty.
08:48:41 <longtomjr> I don't know how historically accurate it is, I don't think I have seen one in South Africa ever.
08:48:57 <longtomjr> And we tend to export most of our iron and manganese at this point
08:49:34 <longtomjr> Japan might have some
08:56:35 <longtomjr> andythenorth, there seems to be some glich with the coke oven
08:56:50 <andythenorth> flickering sprite?
08:56:58 <andythenorth> yup, it's annoying
08:57:21 <andythenorth> unfortunately :|
08:57:36 <longtomjr> or is it an ottd issue?
08:57:47 <andythenorth> it's probably something I've done wrong
08:57:57 <andythenorth> I don't really understand sprite sorting, it just mostly works
08:58:05 <andythenorth> when it doesn't I have no clue why :)
08:58:47 <longtomjr> Is the coke oven one you made larger?
09:02:38 * andythenorth looking for narrow gauge bottle cars
09:04:18 <longtomjr> I also had a look, but i am certain you have better resources for this
09:04:55 <andythenorth> doesn't need to be realistic
09:07:03 *** sla_ro|master has joined #openttd
09:13:34 <andythenorth> the primary issue is that I will have to rework the current sprite for size :P
09:15:59 <longtomjr> Odd, the ng ladle wagon looks like the same size, or even bigger (but that is probably the smaller rail playing tricks on my midn)
09:16:25 <andythenorth> it's moved down by 1 pixel
09:16:35 <andythenorth> so the ladle looks larger relative to wheels
09:17:23 <andythenorth> do you want the appearance of the bottle car, or just a dedicated pig iron wagon?
09:18:02 <longtomjr> I like the idea of transporting molten metal between the different part of my industrial complex.
09:18:08 <longtomjr> So that is about it.
09:18:21 <longtomjr> I would even be ok if the ladle wagon can just refit to pig iron
09:18:27 <longtomjr> since that makes sense for small distances
09:18:46 <longtomjr> (I think, I am not an expert on any of this)
09:19:53 <longtomjr> But I mean it is really not a big deal. Currently you can just work around it if you have a dual guage track. So you build a dual guage depot, and then just use ng trakcs
09:19:59 <longtomjr> and the pig iron wagon will work
09:21:20 <longtomjr> but this is obviously a a nice-to-have and were just a suggestion :)
09:31:44 <andythenorth> oh is there a grf with dual gauge now?
09:32:23 <longtomjr> U&Rermm 2 has a dual guage depot, don't know about other options
09:34:14 <andythenorth> or I might do the torpedo
09:34:20 <andythenorth> it's been on my list for a while
09:34:37 *** jottyfan has joined #openttd
09:34:54 <longtomjr> Ah ok, will be fun to have options :)
09:35:42 <longtomjr> btw, I am getting an error when trying to make IH locally "AttributeError: 'list' object has no attribute 'pipeline'"
09:36:04 <longtomjr> in render_graphics.py
09:39:53 <longtomjr> whmm what am I missing
09:44:30 <longtomjr> andythenorth, it seems like you are passing in the list that you are looping over, instead of the variable assigned in the loop in line 82 of render_graphics.py
09:45:33 <longtomjr> yep, changing that fixed the build step
09:45:49 *** HerzogDeXtEr has joined #openttd
09:47:07 <andythenorth> there's a known current bug
09:47:28 <andythenorth> if you're using the makefile, set the var for the number of pool workers
09:48:11 <longtomjr> I am not a walrus lol
09:48:23 <andythenorth> can't even remember what that's for :P
09:48:29 <andythenorth> mostly I remove outdated error messages
09:49:03 <longtomjr> hmm, getting an nmlc error now
09:49:10 <longtomjr> `nmlc ERROR: "generated/iron-horse.nml", line 4528: Switch-block requires 4 parameters, encountered 5`
09:49:36 <longtomjr> were there an update
09:50:13 <longtomjr> I am on the latest release version. Are you using a later version from git?
09:52:41 <andythenorth> I have a patched version, I was testing PRs
09:53:17 <longtomjr> Aaah ok ,I think that commit that I linked can be the one that adds the extra switch params
09:53:46 <longtomjr> Sorry for bothering with this, just wanted to play around and look at the IH code.
10:12:31 *** Progman has joined #openttd
10:24:39 *** Gustavo6046 has joined #openttd
10:34:44 <TrueBrain> wow, CloudFlare already replied .. in fact, they replied within 2 hours
10:34:54 <TrueBrain> but no, we cannot afford CloudFlare doing our binary distribution :P
10:35:33 <LordAro> TrueBrain: i "finished" the ansible thing btw
10:35:50 <TrueBrain> can you test it out somewhere?
10:39:50 <TrueBrain> so how do you know it works? :P
10:40:01 <TrueBrain> I will see if we can get the VPSes :)
10:40:11 <LordAro> because it looks fine :p
10:40:30 <TrueBrain> ...... rriiiggghhttt .. I don't know a lot about Ansible, but I know that isn't how it works :D
10:40:41 <TrueBrain> setup a VM and provision that?
10:40:42 <LordAro> i have no doubt there will be additional tweaks required, hence '"finished"' ;p
10:40:49 <TrueBrain> but we can also wait for the VPSes, and "test it live" :)
10:45:14 <TrueBrain> I sent a mail to the mister in charge to rent those 2 VPSes :)
10:47:58 <TrueBrain> LordAro: did you add the proxy_pass to it already?
10:48:51 <LordAro> i didn't, what was that needed for?
10:49:00 <TrueBrain> did you miss a part of the conversation yesterday? :P
10:49:02 <LordAro> i thought this was pure file serving
10:49:19 <TrueBrain> we decided yesterday that it would be a lot easier if these nginx VPSes are cache proxies
10:49:22 <TrueBrain> and fetch their data from AWS
10:49:25 <TrueBrain> and cache it for .. a long time
10:49:35 <TrueBrain> as that means we don't have to actively push data to these VPSes
10:49:52 <TrueBrain> I linked example configuration for that
10:50:01 <TrueBrain> then you complained your regex would be for nothing
10:50:23 <TrueBrain> as you should rewrite before doing the proxy_pass
10:50:56 <TrueBrain> it is a bit more complex configuration, but one which you can test locally :)
10:51:21 <TrueBrain> I test nginx config via a Docker :)
10:52:38 <LordAro> i'd have to reboot into linux though :p
10:53:00 <LordAro> and i need to do various disk shuffling before i can use it sanely
10:53:18 <TrueBrain> well, you can wait for the VPSes to be provisioned of course
10:54:02 <TrueBrain> right, bringing the wiki live was the next task on the list ... lets see ...
10:54:45 <TrueBrain> I think we did everything we could to prepare .. so it is now basically flipping the switch ...
10:54:56 <TrueBrain> which does require some reprovisioning of certificates, but that will be fine
10:58:33 <TrueBrain> what always the interesting thing is about changing domains with CDK and AWS .. you get these conflicts
10:58:46 <TrueBrain> one part generates the listener with the right domain etc, and outputs what he is called
10:58:53 <TrueBrain> another part uses that name to provision the container to link to that
10:59:06 <TrueBrain> the problem is ... you cannot change the listener to another domain, as that changes the name, and the old name is in use
10:59:21 <TrueBrain> it becomes this infinite: I AM STUCK, situation
10:59:27 <TrueBrain> which kinda cracks me up :P
11:11:17 <TrueBrain> hmmm ... ponies .....
11:11:22 <andythenorth> could I have some random bits from the vehicle group?
11:11:48 <andythenorth> can you supply that to every player in every game?
11:11:59 <TrueBrain> I -could-, but I really do not want to :)
11:12:15 <andythenorth> we haven't broken enough newgrf stuff recently
11:12:48 <TrueBrain> every time I think about these things, so many cool things pop in my mind, what we could do with OpenTTD etc ... LALALALALALALAALALA, I have other things to do :P
11:13:08 <andythenorth> first we need to clone ourselves
11:13:15 <andythenorth> I have only 2x as many ideas as time
11:13:34 <TrueBrain> I still want to finish my SNES decompiler/emulator ...
11:13:39 <TrueBrain> haven't had time for that in months now
11:13:42 <TrueBrain> stupid AWS migration :P
11:13:55 <TrueBrain> why did I build my own wiki server? :D
11:13:56 <andythenorth> what we need is to print money and not have jobs
11:14:05 <andythenorth> how could we arrange that?
11:14:19 <TrueBrain> owh, ffs, deployment is failing because of more dependencies .. silly dependencies being silly
11:14:47 <TrueBrain> pre-checks didn't show me it would do this .. grrr
11:15:44 <TrueBrain> meh, I am just going to remove it then .. some downtime, but what-ever
11:19:10 <TrueBrain> some days I like 100% uptime, some days I just cannot be bothered :P
11:32:04 <andythenorth> longtomjr pushed a fix to the single-process rendering, thanks
11:36:05 <TrueBrain> so many 404s coming in :P
11:36:51 <TrueBrain> why do so many browsers hardcoded try /favicon.ico, instead of what is indicated on the page?
11:36:54 <TrueBrain> I don't get that ...
11:40:58 <longtomjr> Thanks andythenorth :)
11:41:45 <LordAro> TrueBrain: gist updated as requested
11:41:50 <LordAro> and completely untested, ofc
11:42:06 <LordAro> stackoverflow says it should work
11:42:13 <TrueBrain> I assume the first "location" block is a typo? :)
11:42:26 <TrueBrain> URL is bananas.cdn.openttd.org btw
11:42:50 <LordAro> yes, because i didn't want to delete it while i was still modifying it :p
11:42:58 <TrueBrain> and you are missing the line that configured the cache
11:44:51 <TrueBrain> next up would be: how do we announce these proxy VPSes to the balancer ...
11:44:59 <TrueBrain> do we hard-code it? But what if they crash for what-ever reason?
11:45:46 <TrueBrain> that .. is not what it should say, ofc :D
11:46:01 <TrueBrain> lol .. that page is cached .. how ...
11:46:05 <TrueBrain> I believe you, no worries :)
11:46:36 <TrueBrain> you aren't really logged in, so anything that requires logged in, will tell you to login
11:46:39 <TrueBrain> but .. that is not correct :D
11:47:08 <LordAro> TrueBrain: gist fixed (for when you're not fighting caching issues)
11:47:49 <TrueBrain> nice catch Wolf01 :)
11:47:56 <reldred> Lol I've got it as well
11:48:00 <Wolf01> It happened with our institutional sites as well, they enabled caching to keep up with the requests and you were able to see the details of the last person which logged in before you
11:48:50 <TrueBrain> LordAro: your comment about not logging 200s is a lie
11:48:56 <TrueBrain> that part only works if there really is something in front of it :D
11:49:09 <TrueBrain> if you enabled log-rotate, I would just log everything, tbh
11:49:19 <TrueBrain> inactive=60m should also be: inactive=1y
11:49:45 <reldred> Also that newgrf list needs some work, all my stuff is on bananas/github now
11:49:58 <LordAro> i just copied the comment from your original nginx conf
11:50:08 <TrueBrain> LordAro: yeah, but I wouldn't copy that whole block
11:50:13 <TrueBrain> why not log 200s on the VPSes
11:50:33 <TrueBrain> and I like the argument: I JUST COPIED IT! I HAVE NO BRAAIINNNZZZZ :P :P :P :D <3 <3
11:50:57 <TrueBrain> reldred: I suggest you hit that Login button and fix it ;)
11:51:58 <TrueBrain> LordAro: on AWS, there is first a loadbalancer, which logs everything, and then the containers; those containers, if they also log 200s, spams the logs, which are stored in AWS for debugging. That is a lot of noise. So there we disable 200s from the logs, as if we want to know the 200s, we can check with the load balancer
11:52:11 <TrueBrain> for these VPSes, there is nothing in front of them, so I guess storing them on disk is fine, as long as there is a log rotate ofc
11:52:17 <TrueBrain> for like, what, 90 days? 30 days?
11:52:48 <TrueBrain> w00p, now it is LordAro that is logged in :P
11:52:53 <TrueBrain> depplooyyy quuiiccckkkeeerrrr
11:54:05 <TrueBrain> I like how it is always something that breaks :P
11:54:16 <TrueBrain> but I absolutely love how easy this was to fix on production .. I mean, what, 5 minutes?
11:55:00 <TrueBrain> I am happy you spotted it as soon as you did Wolf01 :) Otherwise it could have been hiding for a while :D
11:56:30 <TrueBrain> so how are we going to announce these VPSes?
11:56:37 <TrueBrain> how do we know if they are online, basically
11:57:04 <TrueBrain> do we push or do we pull
11:57:11 <LordAro> `location = /status { return 200; }` ?
11:57:25 <TrueBrain> yeah, well, use /healthz , but yes :)
11:57:37 <TrueBrain> but we can also push
11:57:45 <TrueBrain> that the VPSes tell the balancer every 5 minutes: I AM HERE
11:57:50 <TrueBrain> possibly with a payload with some stats
11:58:22 <LordAro> could do, though that's more work :p
11:58:40 <Wolf01> That's like one of the first thing I do... check if forums etc use the same session of another user, the support forum of the development tool we use at work used to append the session string parameter to the urls, so when you wanted to link to another topic you had to remove it manually or other users were able to switch user after they clicked on you link... luckily thei fixed it after one
11:58:40 <Wolf01> user started to post contents like "[user A] hello, I'm user B, I clicked on a user A link and now I'm him"
11:58:46 <TrueBrain> LordAro: more work for who, is the question ;)
11:59:26 <TrueBrain> LordAro: one of the two sides has to get the status of the other side, so there is some work involved no matter what
11:59:37 <TrueBrain> or we can say: WE TRUST THE VPSES ARE ALWAYS UP :D
12:00:21 <TrueBrain> ideally, what frosch123 mentioned, we would like to be informed when a VPS is down
12:00:23 <TrueBrain> which can be done via Sentry
12:00:35 <TrueBrain> but that means we have to send stats to Sentry
12:01:11 <TrueBrain> and this is why pushing can be useful, as that can include some metrics of the VPS
12:01:19 <LordAro> i would think it would much easier to get the bananas-server to do: `for server in fileservers: if server.get("/healthz"): return server.get(actualfilepath)`
12:01:24 <TrueBrain> but the free version of nginx has poor status-information
12:01:41 <TrueBrain> LordAro: we are NOT going to do that for EVERY request :P
12:01:57 <TrueBrain> you want to do health-checks every N seconds
12:02:14 <TrueBrain> it would kill the balancer otherwise
12:02:18 <LordAro> i guess that is a bit much
12:02:27 * LordAro has no experience with distributed systems
12:02:39 <TrueBrain> the problem with your solution is, that adding/removing VPSes means a configuration change of the balancer
12:02:45 <TrueBrain> with pushing, it will be dynamic
12:02:52 <TrueBrain> (if a VPS announces itself, it is there)
12:03:02 <TrueBrain> there are pros and cons to all of this btw, there is no "right way"
12:03:26 <TrueBrain> but decoupled systems are easier to maintain, in general
12:03:39 <TrueBrain> as, if you want to upgrade one of the VPSes, you can just do that
12:04:32 <TrueBrain> but okay, for a v1 of this, we can indeed hardcode the URLs in the balancer (well, via configuration, but it would require a redeployment to change)
12:04:41 <TrueBrain> and query every N seconds if they are still there
12:04:57 <TrueBrain> I am however wondering how much work the other way around is
12:05:08 <TrueBrain> it would require a Python script on the VPS on a crontab
12:05:12 <TrueBrain> which first checks if the nginx is alive
12:05:20 <TrueBrain> then call the balancer with a secret telling: HI!
12:05:40 <TrueBrain> basically, you reverse the trust
12:09:35 <DorpsGek_III> - Add: remove the "aws.openttd.org" domain alias (by TrueBrain)
12:09:36 <DorpsGek_III> - Fix: remove AWSALB cookie from our traffic (by TrueBrain)
12:09:37 <DorpsGek_III> - Add: run wiki on ECS for both production and staging (by TrueBrain)
12:09:38 <DorpsGek_III> - Add: scale up our ECS cluster to 4 nodes, as we are out of memory (by TrueBrain)
12:10:44 <LordAro> TrueBrain: a couple of lines with requests, i think?
12:11:04 <TrueBrain> it sounds trivial to write
12:11:09 <TrueBrain> I just wonder if it is a good idea :D
12:11:31 <LordAro> if requests.get(localhost/healthz): requests.post(bananas.openttd.org/update_fileserver, some_secret_here)
12:11:46 <TrueBrain> it does need to tell the URL it is on too
12:12:00 <LordAro> if requests.get(localhost/healthz): requests.post(bananas.openttd.org/update_fileserver, my_hostname, some_secret_here)
12:12:22 <LordAro> tricky bit (to me) is getting the secret right
12:13:17 <TrueBrain> andythenorth: well, the lack thereof, is the conclusion :P
12:13:18 <andythenorth> should I buy an AS thing?
12:14:24 <TrueBrain> LordAro: what I like about that solution, that if you want to do maintenance on a VPS, you disable that cronjob for a few minutes
12:14:29 <DorpsGek_III> [OpenTTD/OpenTTD] LordAro commented on pull request #8340: Draft: Feature: Create Universal (x86_64 + Apple Silicon) build on macOS https://git.io/Jk3Rx
12:14:32 <TrueBrain> meaning the balancer will no longer direct traffic to it
12:14:59 <andythenorth> the raw geekbench numbers on Apple silicon are high
12:15:08 <andythenorth> maybe Mac laptops will stop being achingly horribly slow
12:15:17 <TrueBrain> LordAro: I like how your comment also announced our ticket on their tracker :D
12:15:49 <TrueBrain> so how to deal with secrets .. hmm ...
12:16:21 <andythenorth> my kids' £400 2016 iPads substantially outperform my £2500 i9 Mac
12:16:30 <andythenorth> Apple laptops are crap
12:17:01 <andythenorth> as per all those issues we have about OpenTTD mac performance
12:17:04 <LordAro> that is... surprising
12:17:11 <TrueBrain> LordAro: guess you have to look into Ansible Vault :P
12:17:28 <andythenorth> we should get Apple to focus on OpenTTD benchmarks TBH
12:17:33 <andythenorth> maybe I will email them
12:17:59 <LordAro> TrueBrain: quite likely!
12:18:18 <TrueBrain> is that doable? As I agree with you that the most complex part of this idea is how to share the secret
12:18:22 <LordAro> we just put passwords into the config files in ansible at work, as it's all fully internal :p
12:18:37 <TrueBrain> I am going to pretend I did not read that
12:18:58 <TrueBrain> but otherwise we can just do it the hard-coded way
12:19:04 <TrueBrain> I mean .. that would be fine for now too
12:20:27 * LordAro does some ansible-vault reading
12:20:44 <TrueBrain> wow ... our request/sec doubled, with the switch of wiki :P
12:21:57 <TrueBrain> might be interesting to see if we hit AWS ALB limits :P
12:22:12 <TrueBrain> it is funny .. all the domains are in a single list on the ALB, and it triest to match them from top to bottom
12:22:17 <TrueBrain> I add new services at the bottom, because that is easier
12:22:26 <TrueBrain> meaning 7 rules are evaluated before wiki is considered
12:22:30 <TrueBrain> I... might want to change that :D
12:23:35 <TrueBrain> Application Load Balancer
12:29:40 <TrueBrain> our main website is 60% of the requests compared to the wiki
12:31:04 <TrueBrain> it is like: 1000 / 680 / 150 / 23 requests per 5 minutes for wiki / www / eints / binaries
12:31:29 <TrueBrain> (CDN information is not part of the same graph, so I don't know that)
12:32:37 <TrueBrain> and other than a lot of people getting 404s, it seems stable, the wiki
12:34:48 <TrueBrain> takes a bit of time for search engines to update :)
12:34:51 <TrueBrain> not something we can help/fix
12:35:26 <TrueBrain> hmm .. pretty sure my caching is too aggressive ... Categories and Folders are cached, but never invalidated ... :P
12:45:24 <LordAro> TrueBrain: i wrote some more things in the gist
12:45:45 <LordAro> i should point out that i am being really bad - every single bit of this has been written in the github web interface
12:45:55 <LordAro> not even slightly been checked for syntax, other than using the highlighting :p
12:51:41 <TrueBrain> What could possibly go wrong, right? :D
12:51:54 <andythenorth> hmm will I update nml to trunk?
12:52:00 <andythenorth> I have some PR I am depending on
12:52:08 <andythenorth> what could go wrong? :P
12:52:17 <LordAro> we merged most of them..
12:54:52 <andythenorth> wow nml trunk got noisy
12:55:15 <LordAro> yeah, we rewrote everything
12:55:45 <andythenorth> 3729 Horse warnings where previously there were none
12:56:06 <andythenorth> dunno which of these are spurious and which are the actual errors
12:56:16 <LordAro> ideally none of them are spurious :p
12:57:08 * andythenorth looks what broke
12:58:52 <andythenorth> getting a lot of 'not referenced' for cases I don't understan
12:59:04 <andythenorth> what triggers not referenced now?
12:59:07 <TrueBrain> LordAro: how does Ansible Vault work, as in, can you commit these playbooks? Does it need a password to unlock?
12:59:35 <LordAro> TrueBrain: aiui, yeah
13:00:02 <LordAro> --ask-vault-pass when running the playbook
13:00:12 <TrueBrain> well, that works, I guess
13:00:23 <andythenorth> 'breeze_switch_create_effect_check_railtype_unreversed' is unreferenced
13:00:32 <andythenorth> but that paste suggests otherwise
13:00:44 <TrueBrain> now the question: how often do we do the healthz check
13:00:48 <TrueBrain> on AWS everything run on 30 seconds
13:00:52 <LordAro> andythenorth: sounds like a bug that you should complain at glx about
13:00:54 * andythenorth tanks for a bit, 3729 errors are a lot
13:01:29 <TrueBrain> guess 30 seconds is fine here too
13:01:53 <TrueBrain> (direct people to a broken server for 5 minutes sounds too much, but I dunno)
13:02:04 <LordAro> difficult to run a cron more than once a minute :p
13:02:07 <TrueBrain> well, no, AWS does a check every 30 seconds, and if you missed 2, you are marked unhealthy
13:02:16 <TrueBrain> owh, yes, cron .. hmm
13:07:35 *** jottyfan has joined #openttd
13:08:08 <LordAro> TrueBrain: thought: will proxying http -> https actually work?
13:08:30 <LordAro> i.e. bananas-1.cdn:80 -> bananas.cdn:443
13:08:32 <reldred> I've done it with nginx and haproxy before
13:08:35 <TrueBrain> it is not a proxy, what we are doing
13:08:43 <TrueBrain> nginx fetches the file
13:08:47 <TrueBrain> and returns it as if it was his
13:09:04 <TrueBrain> well, it is a proxy, but .. euh .. it is not forwarding
13:09:07 <TrueBrain> so nginx creates the connection
13:09:12 <TrueBrain> so yeah, that works
13:09:17 <TrueBrain> well, test it out! :P
13:10:53 <TrueBrain> oeh, someone found a bug! :D
13:11:45 <TrueBrain> well, that is a most unusual request that someone did to the server
13:12:24 <andythenorth> hmm, now I need to bisect to a functional nml rev :)
13:12:29 <andythenorth> Horse is quite broken in game
13:17:26 <andythenorth> not sure Horse is actually broken in game
13:18:06 <TrueBrain> the input LordAro gives to this conversation is amazing :D
13:18:13 <TrueBrain> so happy he hasn't found the UTF-8 variants :P
13:18:22 <andythenorth> are constants being substituted for switch results, leaving the switch orphaned?
13:19:45 <LordAro> andythenorth: if you could produce a minimal example, i'm sure glx would appreciate it :p
13:20:57 <andythenorth> I have a feeling the cases are obvious
13:21:58 *** frosch123 has joined #openttd
13:31:54 <milek7> LordAro: apart from cron, there is systemd timers thing
13:32:10 <LordAro> not sure if that can run more often than 1min though
13:32:16 <LordAro> or if it's advisable to do so
13:32:30 <TrueBrain> right, pushing a few to wiki now to fix cache invalidation issues :)
13:32:38 <TrueBrain> not that anyone would have noticed, as nobody is editing :(
13:32:47 <LordAro> clearly just have 2 cron rules - `./foo` and `sleep 30 && ./foo` :p
13:33:04 <TrueBrain> LordAro: we could also just make a Python process run for-ever, I guess
13:33:21 <milek7> knowing systemd, it likely can :P
13:33:37 <TrueBrain> but that is making things even more complicated, honestly
13:34:05 <TrueBrain> you know what, lets first get this to work, and extend on it later
13:34:10 <TrueBrain> so hardcoding a list it is
13:34:11 <milek7> AccuracySec= Specify the accuracy the timer shall elapse with. Defaults to 1min. [...] To get best accuracy, set this option to 1us.
13:34:18 <TrueBrain> and bananas will query the server regular for healthz
13:42:52 <TrueBrain> what to do if there are no servers? Hmm
13:42:56 <TrueBrain> fall back to AWS, I guess
13:43:16 <LordAro> what if AWS doesn't work? :p
13:43:24 <TrueBrain> you cannot reach the service ;)
13:50:29 <andythenorth> oof I have discovered Horse lacks many wagon types
13:53:05 <TrueBrain> 2020-11-14 13:52:53 ERROR CDN server "http://127.0.0.1:8080" offline: Cannot connect to host 127.0.0.1:8080 ssl:default [Connect call failed ('127.0.0.1', 8080)]
13:53:10 <TrueBrain> that will go to sentry if a server goes offline
13:53:14 <TrueBrain> sounds good enough to me :D
13:54:47 <TrueBrain> LordAro: owh, btw, can you also provision "staging" variant?
13:55:08 <TrueBrain> so they should listen on both bananas-1.cdn.openttd.org as bananas-1.cdn.staging.openttd.org
13:55:49 <TrueBrain> hmmm .. TrueWiki error .. a cache file is not there that should be there ... interesting ...
13:56:25 <TrueBrain> ah, of course, oops
13:57:52 *** ChanServ sets mode: +v tokai
14:01:53 <TrueBrain> so many fixes for the caching .... it is funny :D
14:04:01 <TrueBrain> deploying fix for the page that broke ... pompiedom :)
14:06:05 <Wolf01> Deploying fixes, deploying bugs, deploying fixes for bugs that weren't :P
14:06:24 <TrueBrain> LordAro: how about we start with something simple like that ^^ ?
14:06:49 <TrueBrain> means you can do away with the cron + Python script
14:06:52 <TrueBrain> only /healthz is needed
14:08:12 <TrueBrain> if it misses a single health-check, the server is marked as offline
14:08:20 <TrueBrain> we could fancy-pancy that a bit by allowing to miss 1 or 2
14:08:29 <TrueBrain> but .. we can test this on staging, see how often that happens
14:11:12 <TrueBrain> means you can remove the vault stuff too btw :P
14:11:48 <TrueBrain> and now we wait for orudge to read his email :P :D :)
14:44:17 <frosch123> TrueBrain: i cannot use [[Folder:foo | bar]] to link to folders?
14:44:44 <TrueBrain> frosch123: [[:Folder:en/]] should work
14:46:54 <frosch123> nope, depending on leading : or trailing / i get different error messages, but none work
14:49:00 <TrueBrain> it is was is used internally .. let me check :D
14:49:37 <TrueBrain> [[:Folder:Page/en/]]
14:49:53 <TrueBrain> yeah, ofc with Page :)
14:50:13 <TrueBrain> well, ofc .. Folder is the exception I guess
14:50:19 <TrueBrain> but I hope that does make sense :P
14:51:02 <TrueBrain> okay ... for the led-strip I had in mind, I need a 18A power supply .. which costs 20 euro .. pffff
14:51:10 <TrueBrain> the powersupply is more expensive than the led-strip itself
14:52:20 <frosch123> [[:Folder:Page/en/]] works, but [[:Folder:Page/en/ | foobar]] does not
14:53:02 <TrueBrain> lose the spaces, I guess
14:53:20 <frosch123> yes, spaces are the problem :)
14:53:35 <TrueBrain> guess it is missing a strip() somewhere :)
14:53:56 <TrueBrain> maybe the author can be bothered to fix it :P
14:54:04 <TrueBrain> btw, frosch123 , how about a news item? :D :D :P
14:54:20 <frosch123> i am working on the pages i want to link from it :p
15:01:50 <frosch123> ah, no dorpsgek yet?
15:02:50 <TrueBrain> yeah .. from "en" and "nl" those references are already removed
15:02:55 <TrueBrain> maybe you want to put them back :P
15:03:17 <frosch123> yeah, from the frontpage. but they do not belong tehre
15:03:27 <frosch123> so, no, i won't put them back :p
15:03:33 <frosch123> but yes, frontpage is next
15:03:50 <TrueBrain> I mention it, as for other languages you do change them
15:04:07 <frosch123> yes, sed applies to everything
15:04:13 <frosch123> not my fault when people edit stuff manually :p
15:04:28 <TrueBrain> if you promise to remove them for other languages too :P
15:04:48 <frosch123> i may ask the translators to do so :)
15:05:14 <frosch123> did we ever test update on push?
15:05:21 <TrueBrain> not yet on production
15:05:34 <TrueBrain> well, I did in pre-production
15:06:03 <TrueBrain> well, the action triggered
15:06:54 <TrueBrain> it did work for some languages, not for others
15:06:58 <TrueBrain> either cache invalidation failed ...
15:07:22 <TrueBrain> or you didn't do all languages :P
15:07:31 <TrueBrain> ah, you only did the english links
15:07:39 <TrueBrain> the translated sandboxes don't work :D
15:08:18 <TrueBrain> cannot believe the reload "just worked"
15:08:20 <TrueBrain> that is pretty neat :)
15:08:30 <TrueBrain> and no, someone has to add a .dorpsgek.yml to the repo
15:08:32 <TrueBrain> with the right settings
15:08:39 <TrueBrain> don't know if we want to announce pushes here
15:21:03 <Eddi|zuHause> is that more or less than last time?
15:26:19 <andythenorth> no-one did the next line of lyrics also Eddi|zuHause :|
15:26:53 <Eddi|zuHause> i don't know the lyrics well enough
15:27:16 <Eddi|zuHause> well, that goes for almost any lyrics, really :)
15:31:04 <TrueBrain> and I count at least 2 archive links :o
15:31:27 <frosch123> then your cache shows a different page
15:31:32 <frosch123> or you are looking at dutch again :)
15:32:09 <TrueBrain> hmm, cache issue indeed
15:32:13 <LordAro> frosch123: i removed the deadlinks from the main page a few hours ago
15:32:32 <TrueBrain> right .. I go hunting again why the cache did not invalidate as it should
15:32:43 <LordAro> didn't know you were planning to rewrite them to staging
15:32:46 <frosch123> LordAro: ok, let's say there are "dead" links, and there are "zombie" links
15:33:00 <TrueBrain> owh, I know why ... lol ...
15:33:09 <TrueBrain> okay, if you are not logged in, you see old pages :D
15:36:14 <FLHerne> andythenorth: I thought you said Horse was 100% the other week? :p
15:36:22 <FLHerne> I guess you found more things to put in it...
15:37:16 <andythenorth> not enough metals wagons
15:40:25 <TrueBrain> this is now, what, fix 6 for cache? I wish I never added it :P :P
15:41:12 <andythenorth> 'you added caching, now you have 6 problems'
15:41:24 <TrueBrain> yeah .. and I am not really surprised either :P
15:41:46 <TrueBrain> when you are logged in, browser-cache is enabled, but server-side on-disk cache is not
15:41:46 <andythenorth> caching is like monitoring windows
15:41:52 <andythenorth> there's no optimum answer
15:41:52 <TrueBrain> so it became a bit complex logic :D
15:47:03 <TrueBrain> so I do time.time(), and store this file
15:47:05 <TrueBrain> after that, I write a file
15:47:10 <TrueBrain> I do getmtime() of the file
15:47:15 <TrueBrain> it is from before time.time()
15:47:44 <TrueBrain> difference of 0.01 seconds
15:47:50 <TrueBrain> so not rounding or anything
15:54:04 <milek7> "Internally, the ext4 filesystem code calls current_fs_time() which is the current cached kernel time truncated to the time granularity specified in the file system's superblock which for ext4 is 1ns. The current time within the Linux kernel is cached, and generally only updated on a timer interrupt. So if your timer interrupt is running at 10 milliseconds, the cached time will only be updated once every 10 milliseconds."
15:54:28 <milek7> (maybe outdated, it is from 2013)
15:55:46 <TrueBrain> seems it is still accurate ;)
16:05:03 <TrueBrain> right ... rewrote this patch a few times now, I think this should be it :P
16:05:09 <TrueBrain> but clearly I have to simplify it a bit :P
16:13:29 <TrueBrain> lot simpler, the page now :D Which is good
16:26:35 <TrueBrain> frosch123: for some reason I am very tempted to make a tool that tells translators when the original language has changed, by looking at the structure of the page
16:26:47 <TrueBrain> I am just scared 90% of the pages would require attention :D
16:27:09 <frosch123> not sure what you mean with "structure"
16:27:22 <TrueBrain> so headers, paragraphs, sentences
16:27:52 <TrueBrain> if links point to a page that is the translation of the english page
16:27:59 <frosch123> you could check whether both pages contain the same links (while evaluating Translation:) :)
16:28:29 <TrueBrain> but, honestly, I think next week I am going to do nothing for OpenTTD :P
16:29:04 <TrueBrain> well, aliexpress ... won't be in for a few weeks :P
16:29:58 <TrueBrain> I hope it is in before xmas ... even that you can't be sure about :D
16:30:55 <TrueBrain> can you still "force" a reindex on search engines these days
16:30:59 <TrueBrain> or is it just a matter of waiting
16:34:22 <TrueBrain> slowly you see the covid map in The Netherlands turning a light-blue color again (meaning no infections)
16:34:28 <TrueBrain> damn, that took for-ever ....
16:35:39 <TrueBrain> lot longer than in March/April at least ...
16:39:49 <frosch123> here they just keep changing the colour scale :)
16:40:08 <frosch123> anyway, duckduck still does not find "github truewiki"
16:53:25 <TrueBrain> Google did already pick it up
16:53:40 <TrueBrain> Shows it is a good name :D
16:56:53 <glx> we just have different red levels here
17:00:30 <frosch123> i did not replace links in old news posts
17:00:56 <frosch123> various links just did not make sense, so i would have had to change the news text as well
17:02:34 <frosch123> lol, we already got the first mail, that google+bing link to dead wiki lniks
17:03:15 <TrueBrain> I earlier had one on Discord .. but he understood it quickly enough :)
17:03:53 <frosch123> yeah, "Main Page" did not quite fit in that case
17:07:07 <TrueBrain> lol, nice read frosch123 :) I wouldn't mind highlighting a bit more the amount of work you put int he restructuring, but otherwise a nice read :)
17:11:15 <frosch123> oh, i forgot to mention the elephant
17:11:26 <frosch123> i wanted to add a note about the search :)
17:13:14 <TrueBrain> owh LordAro ....... I have credentials for yooouuuuu
17:14:00 <frosch123> added on item about the search :)
17:16:12 <TrueBrain> so I try to login to OVH, it sends an confirmation code by email .... which ... is ... not ... arriving :P
17:16:48 <frosch123> it already sent 7 mails
17:17:48 <TrueBrain> VPSes only have an IPv4, hmmmmm
17:17:54 <TrueBrain> I hope that is a setting :D
17:18:42 <TrueBrain> well, soon we will migrate the mail to Zernebok, hopefully that helps with these annoying delays :P
17:22:09 <TrueBrain> okay, IPv6 is assigned, but the box doesn't pick it up .. fine, we will figure that out :)
17:24:24 <TrueBrain> orudge: you are awesome :) Just wanted to mention that :D
17:24:45 <frosch123> we need to bake more cookies :)
17:25:25 <TrueBrain> okay, DNS entries created
17:25:53 <TrueBrain> now it is LordAro's job .. job 1, reset the passwords ASAP :P
17:26:16 <TrueBrain> vps-be46 is bananas-1.cdn, the other bananas-2.cdn
17:26:40 <TrueBrain> if this works, with the caching proxies ... this is a very simple, elegant, and money-saving solution :D
17:27:22 <TrueBrain> frosch123: you could add a <!-- more --> tag to the news
17:27:27 <TrueBrain> so it doesn't take up so much space on the frontpage
17:27:32 <TrueBrain> but .. meh, I am good with this what-ever
17:27:44 <frosch123> oh, never used that
17:28:10 <TrueBrain> we added that for these kinds of posts :P
17:28:37 <TrueBrain> I could have thought about that before the merge, ofc, but meh
17:31:22 <DorpsGek_III> [OpenTTD/website] frosch123 opened pull request #174: Fix: front page should have shortened news. https://git.io/Jkse1
17:33:01 <DorpsGek_III> [OpenTTD/website] TrueBrain approved pull request #174: Fix: front page should have shortened news. https://git.io/JkseF
17:36:37 *** Wormnest has joined #openttd
17:38:16 <DorpsGek_III> [OpenTTD/website] frosch123 merged pull request #174: Fix: front page should have shortened news. https://git.io/Jkse1
18:00:59 <andythenorth> 1: return palette_2cc(company_colour1, COLOUR_CREAM);
18:01:14 <andythenorth> instead of COLOUR_CREAM, how do I return 8 other indexes (of my choice)
18:04:05 <frosch123> you have to create a set of 16 recolourmaps for each company_colour1 and your custom seconds
18:05:05 <frosch123> or use spritestacks :)
18:07:07 <andythenorth> I can probably create the 16 recolourmaps
18:07:15 <andythenorth> that sounds generatable :P
18:14:20 <andythenorth> ha I think I already had the company colour indexes for use in docs python image recolouring
18:28:28 <frosch123> and you cannot find them in the ottd source, they are in the baseset
18:28:41 <frosch123> i believe pikka had a "better cc" grf or so
18:33:11 <TrueBrain> now you are a gun :D
18:33:50 <andythenorth> oh can I re-randomise bits within a switch chain?
18:33:56 <andythenorth> I want to make 2 independent choices :P
18:36:00 <TrueBrain> frosch123: I see I was too forgiving in the use of / :P :P
18:36:49 <TrueBrain> frosch123: do we want to support both [[Folder and [[:Folder ? Or do we want to promote the one over the other?
18:37:04 <frosch123> he, i asked that question :p
18:37:20 <TrueBrain> I just don't know ... wikilinks are WEIRD
18:37:26 <TrueBrain> [[:File is always a link
18:37:35 <andythenorth> can I slice only some of the random bits, and use different ones later in the varaction2 chain?
18:37:39 <TrueBrain> and otherwise there is no real difference between [[NNN and [[:NNN
18:37:46 <frosch123> i am fine with :Folder, maybe later we get some magic folder page, that would be shown for Folder without leading :
18:37:54 <TrueBrain> [[Media also makes a link ... and [[:Media doesn't work
18:37:57 * andythenorth pretends to know what talking about
18:38:20 <frosch123> TrueBrain: oh, yeah, Folder: without leading : could be a TOC that you can transclude
18:38:27 <frosch123> so, yeah, link is :Folder: only
18:39:20 <TrueBrain> [[:Category:en/Bla | bla]]
18:39:23 <TrueBrain> etc is also invalid :)
18:39:41 <frosch123> two fixes for one? :)
18:40:24 <frosch123> i like the "send instructions" in the bottom right corner
18:40:37 <TrueBrain> frosch123: guess I mostly didn't want to support [[:Category: en/Bla]] (space after second :)
18:40:41 <andythenorth> if only that were intentional :)
18:42:43 *** gelignite has joined #openttd
18:42:50 <frosch123> TrueBrain: don't worry, i removed all [[File:<-- yo, how is the weather? -->Image<!-- png rulez-->.png]] in the conversion
18:43:23 <andythenorth> but some results in some of the random switches seem to be never reached
18:43:37 <andythenorth> unless it's just that I need a larger sample set
18:44:03 <frosch123> andythenorth: don't use "random_switch" except when you have to rerandomise
18:44:13 <TrueBrain> now [[:Folder: en/Bla | Bla]] will work
18:44:21 <frosch123> use getbit(random_bits, ....) or something
18:45:05 <glx> you can use dependant and independant too I think
18:45:37 <andythenorth> yes, but I think that's for a different case?
18:45:55 <frosch123> no, it's for this case
18:46:01 <frosch123> but i don't trust it working :)
18:46:20 <frosch123> 8 random bits are too few for automatic allocation
18:46:55 <frosch123> TrueBrain: they can leave their hat on?
18:47:42 <andythenorth> hmm I've forgotten how to bits
18:47:48 <andythenorth> I have 5 possible results
18:48:00 <andythenorth> getbits(random_bits, 0, 5) or getbits(random_bits, 0, 3)?
18:49:27 <glx> 5 values -> at least 3 bits
18:49:37 <frosch123> so, how does this dorpsgek.yml work?
18:49:48 <TrueBrain> frosch123: copy it from any other repo :P
18:51:25 <TrueBrain> that looks like this:
18:51:26 <TrueBrain> - new page: en/Folder Links (by frosch123)
18:52:11 <andythenorth> hmm this doesn't work as expected
18:52:17 <andythenorth> and I am only doing it for lolz :)
18:53:03 <frosch123> will "Libararian" work for "except-by"? it's no gh user
18:53:38 <andythenorth> I still have random_switch elsewhere in the chain though :|
18:53:56 <andythenorth> not sure how to get evenly balanced results with random_bits
18:54:08 <andythenorth> given, e.g. odd number of choices
18:55:04 <frosch123> oh, i think i misunderstood what "push" really is
18:55:09 <frosch123> it's "push" without "pr"
18:56:03 <andythenorth> glx also I didn't do a ticket, but nml since 7f62081693d5e3b0e4a0ea84d5f17bfb5e7947b9 produces about 3700 warnings with Horse
18:56:28 <andythenorth> a lot are switches 'unused' because they resolve to a constant
18:56:42 <andythenorth> but the switch in some cases exists to do a necessary STORE_TEMP
18:57:04 *** otetede has joined #openttd
18:57:44 <glx> if there's a store_temp it should not optimise
18:57:47 <andythenorth> can the constant result also do the STORE_TEMP? I have no idea how it all resolves to advanced varact2 internally
19:04:01 <glx> if there's a STORE_TEMP it's not optimised
19:04:58 <andythenorth> I try nml head again shortly and see
19:05:04 <andythenorth> currently lost in random bits :P
19:05:41 <andythenorth> does reading the random bits destroy them?
19:06:57 <andythenorth> oh do I have to read specific bits?
19:07:06 <andythenorth> "Feature-specific random data: triggers in low byte, bits in other three bytes. Bits of the variable not associated with random or trigger bits are reserved."
19:07:53 <frosch123> randombits should already be only the random bits, without triggers
19:08:20 <andythenorth> if I read the same random bits twice, and expect a different result
19:08:26 <andythenorth> disappointment will ensure
19:11:26 <andythenorth> ha ha 'totally random' looks like puke :)
19:12:01 <LordAro> TrueBrain: so i'm guessing you want a public key?
19:19:35 <andythenorth> ha I sack this totally random :D
19:23:08 <TrueBrain> LordAro: no, I want to give you the root credentials :P
19:23:26 <TrueBrain> LordAro: can you access info@ mailbox?
19:23:45 <frosch123> ^^ that's a trap :p
19:24:27 <TrueBrain> host: bananas-N.cdn.openttd.org
19:24:40 <TrueBrain> IPv6 won't work, as the box isn't configured for it, it seems
19:25:11 <TrueBrain> glx: no shit :P Possibly exactly what I just did ;)
19:25:40 <LordAro> s'ok, i haven't got IPv6 anyway :p
19:26:11 <TrueBrain> no clue how that works with Ansible :)
19:26:50 <LordAro> i'll see what i can figure out :p
19:26:58 <LordAro> might not get round to doing anything with it oday
19:27:40 <TrueBrain> for the IPv6 you can dig the AAAA
19:27:43 <TrueBrain> the gateway is at ::1
19:28:09 <TrueBrain> if there is anything I can help with, let me know!
19:29:13 <TrueBrain> and commit it there
19:29:39 <TrueBrain> having everything in a single place is nice :)
19:29:48 <TrueBrain> hmm, certificate of webster expired
19:29:56 <TrueBrain> guess I really should hurry up with supybot
19:32:32 <andythenorth> ok let's try this nml thing
19:34:19 <DorpsGek_III> [OpenTTD/wiki-data] frosch123 merged pull request #2: Add: IRC announcements for PRs and issues. https://git.io/JksLx
19:34:28 <andythenorth> ok looks like 3742 warnings
19:34:48 <TrueBrain> owh, frosch123 solved 20k in a few days, so you can solve 4k in an hour
19:35:06 <andythenorth> so do I need to refactor my code generation?
19:35:10 <andythenorth> to avoid returning constants?
19:35:24 <TrueBrain> owh, btw, frosch123 , push owner is which ever account is used to push; it doesn't matter what the author or commiter is (for .dorpsgek.yml)
19:35:29 <TrueBrain> so it is always DorpsGek, basically
19:36:20 <andythenorth> oof this is going to be a thing :|
19:36:37 <andythenorth> code generator assumes it's ok to have switches that only have one value
19:37:02 <andythenorth> I will need to do a lot of python conditionals on len(foo)
19:38:05 <andythenorth> I have done this kind of thing before to try and optimise compile speed
19:38:08 <andythenorth> so I know what's required
19:38:29 <andythenorth> but codebase gets very confusing
19:38:30 <TrueBrain> doesn't make it better now, does it? :D
19:38:31 <LordAro> len(foo) == x or x < len(foo) < y ?
19:38:39 <LordAro> if the former, you could use a dict
19:39:29 <andythenorth> I have to tell the templater to conditionally insert different things :P
19:39:35 <andythenorth> the conditions are in the templater langauge
19:40:14 <andythenorth> yes, it's the method for generating conditional nml :P
19:40:30 <andythenorth> there are alternatives, but they get worse
19:40:41 <andythenorth> meh this is a shitload of work :)
19:43:53 <andythenorth> I've written a lot of nml on the basis that there can be a single default result
19:45:42 <andythenorth> oh can I trick it like we used to trick renum?
19:45:49 <andythenorth> by inserting a spurious range check?
19:46:01 <andythenorth> or does it resolve the entire switch chain?
19:48:34 <andythenorth> hmm that seems like the wrong approach
19:49:44 <andythenorth> glx I can't figure out what my goal should be
19:50:00 <andythenorth> presumably I need to refactor my nml generation to not return these constants via switches?
19:50:37 <glx> oh webster certificate expired
19:52:55 <glx> well at some point optimisation warnings will be mutable
19:53:13 <glx> same for deprecated warnings
19:55:23 * andythenorth trying to figure out how the code generator can pre-emptively analyse the results of the code generation
19:55:58 <andythenorth> I think it's just a lot of case(1) and case(n) handling
19:56:33 <FLHerne> andythenorth: Does it matter? NML optimizes them out for you now
19:56:57 <andythenorth> yes, warnings can't pass
19:57:26 <FLHerne> That just means we need more warning settings :p
19:59:20 <FLHerne> -Wno-switch-opt or something
20:00:09 <andythenorth> I don't see how it can work though? o_O
20:00:33 <andythenorth> the optimisation generates about 1900 'not referenced' warnings for Horse
20:00:45 <andythenorth> which can't be suppressed, that's a necessary warning
20:02:52 <FLHerne> andythenorth: That's an nmlc bug
20:03:11 <FLHerne> The 'not referenced' warnings are bogus
20:03:26 <andythenorth> I also don't understand how the store_temp case is handled
20:03:44 <FLHerne> It decides the switches aren't needed, removes them, and replaces their uses with use of the original value
20:04:26 <FLHerne> But somehow it doesn't remove them enough, because *then* it checks to see if they're used
20:04:55 <FLHerne> And complains because the uses it just replaced don't exist anymore
20:05:54 <andythenorth> it's detected as a constant
20:06:10 * andythenorth might be wrong, dunno
20:09:08 <TrueBrain> seems I should start working on splitting OpenTTD from TrueWiki
20:09:16 <TrueBrain> just to make it more clear what is where :)
20:09:27 <TrueBrain> not terribly difficult
20:09:36 <andythenorth> I would have said use the conventional breakpoints, and have a bunfight about an XL viewport at 1200px or so
20:09:52 * andythenorth stays out of CSS, I will be glad if I never have to do any ever again
20:10:03 <TrueBrain> I feel the same! :D
20:10:54 <TrueBrain> hmm ... should the CSS and Templates be part of wiki-data, I wonder
20:11:16 <TrueBrain> in .truewiki or something
20:11:31 <TrueBrain> means you don't need to release a new "openttd-truewiki" every "truewiki" release
20:11:34 <TrueBrain> frosch123: what do you think?
20:11:51 <FLHerne> andythenorth: That switch shouldn't be removed, and with iron-horse master I don't think it is
20:13:30 <FLHerne> andythenorth: As the nml code you linked says, STORE_TEMP isn't read-only
20:14:03 <andythenorth> but it's in a chain no?
20:14:18 <andythenorth> breeze_switch_create_effect_default_unreversed is only reached via breeze_switch_create_effect_check_railtype_unreversed
20:14:21 <andythenorth> and breeze_switch_create_effect_check_railtype_unreversed is removed
20:14:38 <andythenorth> I'm not sure that's true yet
20:15:03 <andythenorth> puzzlingly, breeze_switch_create_effect_default_unreversed is not referenced as unreached
20:15:13 <andythenorth> oh is the 'constant' the next switch ID?
20:15:21 <FLHerne> andythenorth: 'removed' means 'replaced by its return value'
20:15:34 <andythenorth> ok so it's a varact2 ID
20:15:45 <FLHerne> andythenorth: So all uses of breeze_switch_create_effect_check_railtype_unreversed should turn into breeze_switch_create_effect_default_unreversed
20:15:56 <andythenorth> not a constant in the sense of global constant
20:16:05 <andythenorth> ok that makes sense
20:16:19 <FLHerne> (and then the former gets erroneously marked as unused)
20:17:24 <TrueBrain> which I cannot help being ironic
20:19:06 *** WormnestAndroid has quit IRC
20:19:44 *** WormnestAndroid has joined #openttd
20:22:47 <frosch123> TrueBrain: css yes, templates no?
20:23:00 <TrueBrain> they contain OpenTTD snippets
20:23:13 <TrueBrain> otherwise I have to make variables out of that, and put a JSON file with those, or something?
20:23:22 <TrueBrain> would be cleaner, now I come to think of it
20:25:49 <TrueBrain> funny .. seems my "Windows" button on my keyboard isn't registered by Windows as such :P
20:27:07 <TrueBrain> oowwwhhh, so that is what that button on my keyboard is for
20:27:57 <frosch123> for how long do you have that keyboard?
20:28:06 <TrueBrain> poeh .... close to 10 years now?
20:28:27 <frosch123> i learned that notebooks now have fn-locks
20:28:49 <andythenorth> I have to fn-lock the stupid emoji bar to play openttd
20:28:56 <TrueBrain> LordAro: PowerToys is cool :D Tnx for mentioning it :)
20:28:56 <andythenorth> but I don't have fn-lock, only fn
20:29:43 <frosch123> and i randomly discovered that my mouse@work had not only a button when pressing the scroll wheel, but also when pushing it left or right
20:29:54 <frosch123> which is super weird, and i have no idea who would use that for anything
20:30:04 <TrueBrain> mine has that too ... NEVER use it
20:30:41 <TrueBrain> I also never press down my scrollwheel ..
20:30:45 <TrueBrain> I don't understand all those extra buttons :P
20:30:56 <LordAro> middle click is extremely useful
20:31:01 <TrueBrain> (says the person with 18 configurable keys on my keyboard ...)
20:31:12 <milek7> ..how do you open links in new tab?
20:31:14 <TrueBrain> what does your middle click do? :)
20:31:23 <frosch123> middle click is pan in a lot of applications
20:31:28 <frosch123> middle click is "close tab"
20:31:32 <frosch123> and middle click is paste
20:31:42 <frosch123> middle-click-paste is way better than right-click-paste
20:31:45 <TrueBrain> right click is paste (and copy)
20:31:46 <frosch123> i hate the windows coonsole
20:32:02 <TrueBrain> I do like my extra mouse buttons next to my thumb
20:32:08 <TrueBrain> especially the press-to-talk I have bound there
20:32:13 <TrueBrain> that ... helps a lot in games :D
20:32:13 <LordAro> middle click is paste for the selection clipboard on linux too
20:32:42 <frosch123> i do not know how to remap the thumb buttons on windows
20:32:52 <andythenorth> there's no shorthand for scoping to 'first unit of articulated vehicle'?
20:32:59 <TrueBrain> logitech drivers allow you to
20:33:02 <frosch123> so i hate them since i press them accidentally all the time :p
20:33:03 <andythenorth> I know it was discussed at least once, but I forget the outcome
20:33:03 <TrueBrain> but it is button-4 etc for me
20:33:09 <TrueBrain> which I can bind in applications
20:33:17 <andythenorth> PARENT gets me lead engine
20:33:37 <frosch123> enter stuff in website form, accidentially click the mouse-back button, meh
20:33:42 <TrueBrain> and he is talking about trains again,pfft :P
20:34:39 <frosch123> andythenorth: the additional scopes were never implemented. but you can use the "position within aticulated vehicle" and "variable of nearby vehicle"
20:35:07 <andythenorth> I've done it before :)
20:35:42 <frosch123> TrueBrain: btw. not sure whether you meant that.. but wiki-data should contain the whole "static" folder, not just "static/css"
20:36:07 <TrueBrain> "static" folder and a "settings" YAML
20:36:13 <TrueBrain> static just in the root, you think?
20:36:20 <TrueBrain> truewiki.yaml + static in / ?
20:36:38 <frosch123> yes, Page, Category, Template, File are unique enough
20:37:41 <TrueBrain> sounds like a plan! Well, not today .. soon :)
20:37:56 <TrueBrain> means all those pesky CSS discussions can be held in other repositories :D
20:40:03 <TrueBrain> funny, now I pay attention to it ... I haven't visited a website yet that is full width
20:40:12 <TrueBrain> all my most frequent visited websites limit the width to ~1000px
20:41:16 <andythenorth> for conventional websites, endless liquid layouts are poor
20:41:18 <TrueBrain> not on my list of "frequent", sorry :)
20:41:19 <andythenorth> they're a QA nightmare
20:41:28 <TrueBrain> and wikipedia is just awefull to read on a 2k monitor
20:41:36 <andythenorth> and there is an optimum ratio of column width to font size
20:41:43 <andythenorth> due to line length readability
20:41:54 <TrueBrain> there are studies about this shit
20:42:00 <TrueBrain> starting in the 1800s somewhere :P
20:42:03 <andythenorth> after adding 2 columns of ads, there's no further use for space
20:42:15 <milek7> well, it is not that browser window can't be resized :P
20:43:28 <TrueBrain> wait, you don't have all windows open fullscreen?
20:45:28 <frosch123> i always wanted to use a tiling window manager
20:45:39 <frosch123> but talking about them seems nicer than using them
20:47:16 *** gelignite has joined #openttd
20:47:25 <TrueBrain> as with many things :P
21:06:02 <TrueBrain> kamnetToday at 9:05 PM
21:06:02 <TrueBrain> If you wanna delete newgrf list by region, feel free to nuke it
21:10:41 <frosch123> isn't that already in archive?
21:11:57 <frosch123> should i get discord?
21:14:33 <TrueBrain> I like Discord more than IRC, but that is me
21:14:45 <TrueBrain> And they are a friendly bunch
21:14:56 <TrueBrain> There is no andy there
21:17:33 <FLHerne> frosch123: Tiling WMs are great on laptops
21:17:42 <andythenorth> I considered joining reddit
21:17:49 <andythenorth> can we move chat to /r/openttd?
21:18:08 <frosch123> reddit is writeonly
21:18:38 <frosch123> but i guess you can use it upload screenshots/images, and link them here
21:24:39 <frosch123> maybe you can render horse docs as image, and also host them there
21:25:09 <andythenorth> well I could PDF them
21:25:14 <andythenorth> then rasterise the PDF
21:25:26 <andythenorth> then auto-generate VERY LONG alt texts
21:28:29 <FLHerne> TrueBrain: Find a way to encode basesets as valid PNGs, and upload them to Google Photos
21:28:49 <FLHerne> They're less than 15GB :p
21:34:19 <frosch123> "pngcodec" is already taken
21:35:02 <TrueBrain> Pngfuckgooglecodec?
21:35:22 <TrueBrain> Pngwedonotplayfaircodec?
21:35:52 <andythenorth> TermsAndConditionsApplyCodec
21:36:00 <TrueBrain> Pnghideasaphotobutiamreallyabasesetcodec?
21:36:22 <frosch123> that may be a unique name
21:38:05 <frosch123> FLHerne: can you do that in a way, so it still looks like a cat photo?
21:40:40 <andythenorth> this would need some very artful steganography :P
21:42:01 <TrueBrain> With png, funny enough, it is very easy
21:42:24 <TrueBrain> So you can just add random data as an unknown chunk
21:42:39 <TrueBrain> Just ... hopefully their service doesn't strip it :p
21:45:20 <glx> <FLHerne> (and then the former gets erroneously marked as unused) <-- I can probably fix that
21:46:44 <FLHerne> glx: If not, it's on my to-do list (I got sidetracked by RL again)
21:47:56 <TrueBrain> Wuth? What is that concept you call RL?
21:53:20 <frosch123> it's an open world game
21:53:25 <frosch123> mostly a walking simulator
21:55:23 <frosch123> andy plays it a lot. it has weird daily quests like "lunch". tanks are are
21:58:30 <FLHerne> It *was* an open world game
21:58:40 <FLHerne> They added limits recently :-(
21:59:08 <andythenorth> it's mostly a sitting simulator for me
21:59:15 <TrueBrain> No, not limits. Thet increased the difficulty setting
21:59:19 <andythenorth> they should make bed a savegame point
22:07:40 <Eddi|zuHause> they don't allow save scumming, sadly
22:11:59 <LordAro> FLHerne: no, just open PRs against github's DMCA repo, use that
22:16:34 <andythenorth> I like plain text savegame formats
22:16:43 <andythenorth> they make for the easiest winning of the game
22:18:02 <andythenorth> I would like to be able to edit, e.g. daily tasks
22:18:11 <FLHerne> KSP has those, but half my editing attempts lead to the ship exploding ludicrously when reloading
22:18:18 <andythenorth> lunch_complete=False > lunch_complete=True
22:18:29 <andythenorth> Euro Truck Simulator has them, editing money is fine
22:18:36 <andythenorth> editing co-ordinates is a bit dodgy
23:56:01 *** WormnestAndroid has quit IRC
23:56:50 *** WormnestAndroid has joined #openttd
continue to next day ⏵