01:21:49 ebering: the window functions you are using aren't supported in mysql 5 01:21:49 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-3099-g23c1886e29 01:21:49 ebering: if you want to use them in dcss_tourney, you'll need to run the code with a mysql 8 backend 01:28:26 wow, gordian knot. The python2 docker image and mysql libs don't support mysql 8. So I have to rebuild it from source 01:37:31 alexjurkiewicz: we have a user installation of mysql 8 (9.0.20) on CDO for purposes of tournament 01:37:35 er 8.0.20 01:38:22 and by mysql I mean the backend server; running independent from the host version already running on CDO 01:40:46 oh great 02:34:06 -!- amalloy_ is now known as amalloy 02:54:13 alexjurkiewicz: re dynamodb being the only free option, what would the costs be otherwise? 02:54:56 it may be worth paying a small amount just to have a smaller set of technologies that we already use elsewhere 02:59:30 hjablowme (L9 DsMo) Crash caused by signal #6: Aborted (D:7) 03:20:46 aidanh: for managed sql, tens per month 03:20:55 for unmanaged compute, starts about $5/mo 03:21:47 what do you mean by unmanaged compute? you mean as opposed to using serveless? 03:22:21 no, I mean like "a linux server" 03:22:21 digital ocean droplet, aws ec2, etc 03:22:21 okay, so we'd definitely pay at least that much 03:22:30 managed sql would be like aws rds mysql, digital ocean managed database 03:22:57 what about something like an attached filesystem with a sqlite db on it? 03:22:59 actually! you can pay $5/mo for the cheapest DO managed mysql. with 1gb ram. That might be a perfect option 03:23:26 that pricing is really good actually. And the offering is right. The operational overhead of it would be near zero 03:24:09 hmm, that does sound pretty nice 03:24:30 well, don't expect me to update the prototype before tourney is done & dusted. But I think I'm convinced -- managed mysql and a stateful compute node would be easier 03:24:43 what about database migrations, how do they work with managed databases? 03:25:17 what sort of migration are you thinking about? Like, modifying the schema? 03:25:22 or bulk import/export of data 03:26:03 schema modifications 03:26:20 the managed sql products sell you a username, password, and hostname. It's just another mysql database. You connect to it like normal. You'd run migrations with any sort of standard migration tool 03:27:49 the 30sec description is: there's a folder in your source control called "migrations" which has files named YYYYMMDD-descriptionofchange.sql. You use a tool like flyway to read those files, figure out which migration you're "up to" (usually by reading a table called "migrations" in your database), and then apply any missing ones. This is run by hand (or automatically on application startup for smaller 03:27:49 projects) 03:28:11 right, seems straightforward 03:28:29 most tools support upgrade and downgrade through migrations. So you really supply two sql statements to go both ways 03:28:36 i've mostly used alembic; i imagine flyway is similar 03:29:02 yes, i've used alembic, same concept 03:30:05 my only reservation with using stateful compute is i'd much rather use docker image than a "server". But no reason you can't build an image and install/run docker on your cheap "server" 03:30:27 i would also much rather use a docker image 03:30:27 "servers" have a way of getting crufty and having hand fixes applied 03:30:45 * aidanh looks at every single crawl server in the history of crawl >_> 03:30:54 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-3099-g23c1886e29 03:31:31 Fork (bcadrencrawl) on crawl.kelbi.org updated to: 0.22.1-2731-g00f1cda6ad 03:31:57 :) 03:32:06 sorry, is that what you meant by unmanaged compute? i 03:34:34 sorry, my use of "unmanaged" was a bit archaic. I meant in that if you want to make changes to what's running on it, you have to do it yourself. For example patching the OS or updating your application 03:35:02 oh, i see 03:35:14 a provider like heroku would be managed. You link them to your git repo and it's running on a server you can't access. They take care of deployment, OS upgrades, etc 03:36:12 gotcha 03:36:26 for this service, it seems all the state will be in the database, so a stateless docker image would be ideal, running on managed docker 03:37:43 just from briefly scanning DO, it looks like the way to achieve that is to deploy a droplet with a preconfigured image with docker; then you have to ssh in and `docker run` your app 03:38:03 so, not as managed as one might wish for 03:40:11 yeah. We could publish these images to the docker hub, so the whole process would be nearly entirely publicly documentable. Except for the database credentials 03:40:29 to be honest, that's pretty managed. To apply OS updates, just rebuild the droplet with the latest version of that image 03:41:00 You had some good ideas for making this service trivially reliable in the face of downtime to upgrades 03:41:42 i did? can't remember :) 03:42:29 about spooling them to local disk on the server. There's no need to send the messages immediately in a sync manner. Some background process can do it while retrying forever 03:42:40 oh, right, yeah 03:44:36 i think i got that from https://apenwarr.ca/log/20190216 03:46:14 does invocation skill increase the length of finesse and heroism? 03:46:22 good post, I remember that doing the rounds 03:46:23 it'd be even better if there was a droplet with nomad preinstalled 03:46:24 oops wrong channel 03:46:27 =_= sorry 03:46:28 runrin: yes fwiw 03:46:32 ty 03:46:49 nomad. now that's a technology I haven't heard in a while 03:46:59 in container years that thing is on the pension 03:48:10 I used it for some local services a while back; it didn't get in the way at all, which is more than I can say for docker 03:49:43 i guess rolling zero-downtime updates won't be needed for a scoring server, but the good thing about running multiple instances is that it forces you to be race-free when talking to the db 03:49:43 good point 03:50:26 docker running two instances is plenty 03:50:43 ...urgh, that's not going to require some load balancer, is it 03:51:13 you coud hack it with iptables :D 03:51:25 and thus begins the slow descent 03:51:32 into a true crawl server 03:52:27 better set up a cron job to wipe and redeploy the droplet every day, just to prevent that 03:52:48 đź’Ż 03:53:10 deploy that cronjob on another droplet... ;) 03:53:49 even better, set it up on some external service like ifttt so in four years some crawl dev is wondering "what the heck is killing this droplet every day?!" 03:54:11 hahahah 04:18:52 did I just see an emoji in this channel 04:18:59 don't make me don the ops 04:20:30 whatever next, emoji in commit messages !? 04:20:58 ebering found the loophole... 04:22:00 btw gammafunk, any idea where scoring, tourney, and cdsc servers are deployed? I gather sequell is hosted by green.snark separately 04:24:38 sure; scoring is on CAO itself, tourney has been run on CDO last two tourneys and we're planning on using it again (was on now-defuct dobrazupa.org server before that), and CDSC was run by ebering on a university server iirc 04:27:13 thanks 04:29:11 if the tourney server is torn down after each tournament, what happens to scores? 04:30:52 the tourney website isn't torn down 04:30:58 just the sql database 04:31:26 eg https://crawl.develz.org/tournament/0.24/overview.html 04:32:02 so all of the scores get baked into these html files, but the actual original data is gone? 04:35:49 yes. Theoretically you could regenerate it by running the correct git revision locally 04:36:08 since the source data is still available, and there are start/end dates baked in the dcss_tourney repo 04:36:24 what do you mean by the source data? 04:37:29 the logfiles & milestone files 04:37:48 on each server? aren't those truncated though? 04:40:01 they are never truncated! 04:40:16 that's a big part of why I want to move away from them :) 04:40:33 # ls -lh /var/dcss/gamedata/dcss-trunk/save/milestones 04:40:36 -rw-rw-r-- 1 games games 475M May 22 08:35 /var/dcss/gamedata/dcss-trunk/save/milestones 04:40:38 huh, i was sure we mentioned there being buggy games caused by improper truncation handling 04:41:01 I think it was the game writing a truncated line 04:41:16 there is junk data in some of the older servers files 04:41:28 ah jeez, my kingdom for a schema 04:42:21 and since the only way to request data is using http byte range requests, nearly everyone reading those files uses `wget -c`, which means you have a complete copy locally 04:42:28 all 30-odd gb iirc 04:42:53 holy shit 04:42:54 that's all servers in total, i'd imagine 04:43:52 yes, including dead ones, where you can only read their data by having already downloaded the files, or asking someone who has them for a copy 04:44:35 aidanh: alexjurkiewicz: one sort of weird potential exception to this is the nemelex choice combos, which are chosen randomly by the scripts as each combo is won; for archival purposes we have these store per-tournament in the repo 04:44:56 those can't be recreated from the logfile/milestone files 04:45:22 ah yeah 04:45:23 how are those stored in the repo? 04:45:44 there's some textfile system to seed it and then they're written to the database, from memory 04:45:45 simple text file, one entry per line, each entry a timestamp and a combo name 04:45:53 ah 04:46:07 btw, digital ocean managed mysql starts at $15/mo which is still pretty reasonable 04:46:32 the "seed" alex is referring to is the set of potential nemelex choice combos to draw from 04:46:53 sounds like you could reconstruct them if you matched each milestone entry to the nemelex choice by timestamp 04:46:55 that set is determined from some query 04:47:21 but you'd have to do it separately, since presumably the tourney server does it according to the in-memory current combo? 04:47:49 the server writes the combo+time of choosing to a table when each combo is chosen, yeah 04:48:10 having chosen it from the set of possible combos, which it loads from a text file 04:48:25 the text file I make by taking a sequell query of combos with number of wins less than some cutoff 04:48:33 i see, thanks 04:50:39 this may seem like a stupid question, but what does the scoring server actually do? 04:51:23 just maintain the pages at http://crawl.akrasiac.org/scoring/ ? 04:53:31 and presumably maintain a bunch of state so that it doesn't have to reprocess every single milestone/whatever entry whenever a new one comes in 05:00:18 aidanh: yes, its function is to product those pages, and it does maintain logfile data in its tables to avoid reprocessing; sequell is doing its own similar thing, but it supports arbitrary queries through listgame/listmilestone, glued together with its 'sequellese' language 05:01:03 advil can tell you a lot more about how the scoring tables are structured; he's the one maintaining that and has done a bunch of work on the scoring scripts recently 05:01:46 and to be clear 05:01:47 !scorepage 05:01:48 http://crawl.akrasiac.org/scoring/players/gammafunk 05:02:26 probably the biggest thing scoring does is the per-user pages; the overview pages you link to are just summarizations across users 05:02:46 gotcha, thanks 05:03:01 sequell supports nice functionality like having nicks, which scoring can't do 05:03:01 this is for the servers overview page, which i'm trying to expand into an infrastructure overview page 05:03:04 !nick gammafunk 05:03:07 Mapping gammafunk => (!gfchallenge) gammafunk 05:03:32 !nick elliptic 05:03:33 Mapping elliptic => (!meleebug) elliptic hyperbolic hyperelliptic circular trigonal 05:03:43 one of the big functions of that is grouping together multiple accounts 05:04:07 but CAO scoring can only make per-login pages 05:05:05 so that's effectively 5 accounts for each server that would be merged, so 5*9 = 45 total 05:33:48 aidanh: yeah, we don't impose limits to sequell nicks 05:33:48 if you think that's bad... 05:33:48 !nick goodplayers 05:33:48 Mapping goodplayers => 78291 bmfx elliptic hyperbolic jeanjacques clouded mikee crate pac bart pivotal stabwound johnnyzero minmay ophanim basil magistern hyperelliptic marvinpa surr nago walkerboh simm wahaha ebarrett ionfrigate mrplanck elynae reid dck sphara cheibrodos morganleah tenaya theglow yermak heteroy itsmu toastyp xyblor casmith789 sar uglything maddasher evilmike vizer araganzar rob e... 05:33:49 !lg goodplayers x=cdist(name) 05:34:03 we have all sorts of nicks defined for purposes of stastical queries 05:34:19 right 05:34:21 not sure if that will succeed but it's probably in the thousands of names 05:34:25 i was more thinking in terms of sso 05:34:40 yeah 05:34:44 !nick spicerack 05:34:45 Mapping spicerack => basil sage thyme mint allspice oregano tarragon rosemary 05:35:03 even individual players (and devs) get carried away 05:35:04 hah 05:35:22 90s limit exceeded: killed !lg goodplayers x=cdist(name) 05:36:04 so it looks like some nick mappings are separate accounts, but many are players who have multiple accounts, even on the same server? 05:38:38 !nick nee 05:38:39 Mapping nee => hittemvvvhard hittemvvvvhard hittemvvvvvhard hittemv20vhard hittemvvvvvvhard hittemvvvvvvvhard hittemvvvvvvvvhard hittemvvvvvvvvvhard hittemvvvvvvvvvvhard 05:39:30 aidanh: yes, many cases would be someone who plays under several accounts on one or two servers 05:39:47 just because they want to have multiple games going at once 05:39:53 should those sorts of accounts be bound together for the sake of scoring? 05:40:07 even if they're not currently, it seems like they should be 05:40:19 well, Sequell nicks leave that up to the user 05:40:32 but sequell does exactly that for any query of a nick 05:40:34 although I suppose scoring works based on the username, and you can't have multiple accounts on one server with the same username 05:40:52 yeah, some people also have multiple nicks 05:40:58 !nick omegafunk 05:40:59 Mapping omegafunk => (gfchallenge || name=omegafunk) gammafunk omegafunk 05:41:17 for "challenge runs" vs playing to win, etc 05:41:37 sequell lets you do stuff like limit specific games 05:41:39 !kw gfchallenge 05:41:41 Keyword: gfchallenge => name=gammafunk char=ddfi|deie|desu|grgl|heie|hesu|hogl|mffi|mfgl|mfbe|mibe|migl|musu|miwr|trck|vsie|vsfi|vssu !gfcasual 05:41:48 !kw gfcasual 05:41:50 Keyword: gfcasual => gid=gammafunk:cszo:20151012005803S|gammafunk:cszo:20151012034623S|gammafunk:cszo:20151012034937S|gammafunk:cszo:20160229014823S|gammafunk:cszo:20160304025005S|gammafunk:cszo:20130010123000S 05:42:21 i see 05:42:24 not sure what scope of functionality you'd want to support 05:42:58 well, multiple accounts on the same server could be tricky 05:44:16 Clumsy Status (dexterity stat zero) can increase EV 13https://crawl.develz.org/mantis/view.php?id=12267 by CanOfWorms 05:46:37 so in this case, is omegafunk a separate account on servers? 05:48:37 aidanh: it's actually just two "views" on two accounts (really one, since I haven't really played under the actual username 'omegafunk', but it's set up to allow that) 05:48:54 the gammafunk account has wins on many servers 05:48:58 !lg :gammafunk won s=src 05:48:59 116 games for :gammafunk (won): 46x cszo, 36x cbro, 13x cjr, 10x cko, 8x cdo, 2x cao, cxc 05:49:12 that's syntax to bypass the nick lookup, just the literal account name 'gammafunk' 05:49:43 but the gammafunk nick excludes challenge run games (filtered mostly by species/class combos I did those challenge runs for) 05:50:12 hm, ok 05:50:12 then omegafunk excludes games that aren't those challenge run games 05:50:36 ideally, a player would visit cao etc, and would be automatically logged in to their account on that server 05:50:40 not a super typical use case; most common use of nick is just to group multiple usernames 05:51:10 i don't know how feasible that's going to be if people have multiple accounts on each server; have an account switcher maybe? 05:52:06 yeah 05:52:40 in any case, this will all require pretty heavy modifications to the webtiles servers 05:53:15 i don't see this happening at all before we improve our webtiles deployment story significantly 06:16:28 03CanOfWorms02 {GitHub} 07* 0.25-a0-1134-gcef5c75: Insert a cap in spell failure calculations 10(10 seconds ago, 1 file, 7+ 0-) 13https://github.com/crawl/crawl/commit/cef5c758032e 06:27:56 advil: did you have a dockerfile for the dgamelaunch config setup? any chance you could post that somewhere or merge it to the repo? 06:28:30 ^status 06:28:30 5 Crawlers. CBRO disk usage=94% (135GB) | RAM usage=32% (4GB)| uptime/CPU= 06:28:31 up 177 days, 4:00, 1 user, load average: 0.07, 0.13, 0.16 (4 Cores) http://status.berotato.org 06:31:57 Unstable branch on crawl.kelbi.org updated to: 0.25-a0-1134-gcef5c75803 (34) 06:33:16 Build failed for master @ cef5c758 https://github.com/crawl/crawl/actions/runs/112355286 (failed: Linting) 06:50:58 03gammafunk02 07* 0.25-a0-1135-g7103978: checkwhite 10(38 seconds ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/7103978af7e5 07:01:49 Unstable branch on crawl.kelbi.org updated to: 0.25-a0-1135-g7103978af7 (34) 07:40:12 Message log text bug (@player_only@ visible) 13https://crawl.develz.org/mantis/view.php?id=12268 by Flugkiller 08:04:36 alexjurkiewicz: i forgot to ask re mysql; how easy is it going to be to move such a db between users when the dev hosting it inevitably moves on? 09:00:30 alexjurkiewicz: I was asleep over the convo but if the central server is gonna be sql I'm gonna hate on mysql 09:00:53 sequell runs postrgre under the hood and uses postgreisms that mysql doesn't support 09:01:32 if it's just a logline table and a milestone table serving up a json api then I guess it doesn't matter 10:16:02 aidanh dgamelaunch-config docker container is here: https://github.com/crawl/dgamelaunch-config/tree/master/utils/testing-container 10:16:23 according to CI it is currently broken, something changed that caused apt to be interactive 10:16:32 I haven't had a chance to sort it out 10:16:46 but that probably wouldn't matter for running it locally 10:22:41 I was thinking of biting the bullet and hosting a server 10:23:18 that image is maybe not what you want, it's more of an exact replication of a typical dgamelaunch-config setup 10:23:34 I think if you were using docker you wouldn't want to have a chroot inside docker 10:24:12 ah, I see, probably not 10:25:38 I'd only be interested if there was an existing op who was losing interest in maintenance though 10:26:39 I.e. if it'd allow making a dent in the server deployment situation 10:28:34 yeah, I've gone back and forth on trying to do this a whole bunch of times too 10:29:57 I have always landed on "no" so far 10:41:34 one thing I've considered doing is setting up a "bleeding edge" server that runs only trunk + 1 stable (+ maybe experimentals), and is assumed to have less reliability guarantees than e.g. cao so that webtiles changes or other extreeme changes could be tested on it 10:43:28 sounds interesting 10:43:49 sounds like a staging / qa environment 10:44:06 which is solving a different problem, but definitely something that'd be nice to have 10:46:24 I took a look at cbros ttyrec folders, seems many of them are empty? even e.g. gammafunks 10:46:54 cbro I think relocates ttyrecs to shallott? 10:47:32 which might mean s3 10:49:24 !lg advil cbro -ttyrec 10:49:36 364. advil, XL27 GnWr, T:123992: Can't find ttyrec 10:49:40 not sure what that means though 10:51:45 unless it has something to do with shallott's webserver having issues 10:52:23 seems to have reset to the default nginx state when greensnark moved servers? 11:15:06 what is shallott? 11:16:21 i was thinking about the ttyrec storage issue, and was thinking of having a ttyrec server; is that what shallott is? 11:16:38 ??shallott 11:16:39 I don't have a page labeled shallott in my learndb. 11:16:46 it's snark's server, it holds many things 11:19:00 ahh 11:19:04 I did a fair amount of research into how best to store ttyrecs which led to me starting to move some of the cao ones into a b2 bucket 11:19:15 definitely better in object storage than a server per se 11:19:48 but I'm still not sure it's worth it 11:20:09 worth it in what sense? 11:23:37 it's just the same tradeoff we've been discussing about them where the ratio of access to data is probably very low for anything past some time window 11:24:11 also the format is non-ideal, because it's a huge number of tiny files 11:25:15 so in terms of cost it's definitely better to keep them in object storage, but the huge number of files also makes that annoying in various ways 11:26:37 I paused uploading CAO to b2 when I realized that very soon it would literally cost me money to list files in the bucket 11:28:02 ah right 11:29:07 well, I remember gammafunk saying that ttyrec retention timelines were up to each op, but I don't know that it's actually a problem they want to deal with at all 11:29:47 i mean, maybe they do? I probably don't understand the motivations / desired degree of control of the ops well enough 11:31:28 I think that is definitely low on the list of things most admins want to deal with 11:31:58 personally if I were building a server from scratch I'd do something like 6 months retention though 11:32:02 re listing starting to cost money, clearly the next step is to shard across devs' b˛ accounts :) 11:32:11 so I'm not sure how valuable archiving really is 11:32:51 to be clear it wouldn't cost a *lot* of money, like $0.01 per list, but it still seemed a bit silly for something I was already ambivalent 11:33:17 in b2 archiving CAO would be about $1 a month, so quite trivial 11:34:12 I think a ttyrec server would solve the "n server ops needing to do irregular toil" problem 11:35:08 if it had a user interface, could also use view counts or some other mechanism to determine which ttyrecs to keep 11:36:12 11:38:46 A rough estimate of the current amount of ttryec-related data would be maybe 4-5T? 11:40:16 hm, yeah, a fair bit 11:40:41 it's a shame there's absolutely no metrics on popularity 11:40:53 sequell has them 11:40:57 !lg . x=ntv 11:40:58 307. [ntv=0] ebering the Slayer (L27 GhNe of Trog), escaped with the Orb and 6 runes on 2020-05-19 17:20:31, with 4101123 points after 74613 turns and 5:50:04. 11:41:07 huh, I did not know that 11:41:42 !cmd .csdc 11:41:42 Command: .csdc => !lg * xl>=5 !won csdc $* max=rend oktv ntv=$(!lg * xl>=5 !won csdc $* min=ntv oktv fmt:"$ntv") -tv:channel=csdc 11:41:42 they're useful in something like this, for finding the latest unwatched 11:42:15 so we could e.g. delete all logs not watched >5 times over 6 months? 11:42:35 just as an example policy; numbers could probably do with some tweaking 11:42:45 yes, in principle 11:43:33 !lg * ntv>5 year 11:43:38 <|amethyst> well, that doesn't count time 11:43:41 13. Niven the Digger (L5 GrEE), killed by miscasting Lee's Rapid Deconstruction on D:3 on 2020-04-18 14:27:37, with 193 points after 2958 turns and 0:12:21. 11:43:56 !lg * ntv>5 year s=name 11:43:58 13 games for * (ntv>5 year): Baphomaniac, Bowmetheus, Coron, dinky, Kawakimi, Monsterracer, Niven, pentaxis93, sentinel, TheMeInTeam, Thraspic, Xzight, YTcomUltraviolent4 11:44:06 !lg * ntv>2 year s=name 11:44:08 124 games for * (ntv>2 year): 4x Yermak, 2x Monsterracer, 2x Sapher, 2x AnimeIsTrash, 2x Bacchus, 2x Lunuwara, 2x maggot, 2x xzight, 2x Mintice, 2x DarthCloakedGuy, 2x pentaxis93, Zorot, tsouns, Tux, Veteran, Vinniefish, W0lfen, WinterSpartan, YTcomUltraviolent4, Zanta616, zhorgal, Znrch, agentgt, Anuprightman, Aston, Bananafish1988, Baphomaniac, Bellerephron, Blackmore, bmfx, Bowmetheus, Broken26... 11:44:13 !lg * ntv>3 year s=name 11:44:17 56 games for * (ntv>3 year): 2x Sapher, 2x Xzight, Zorot, AnimeIsTrash, Anuprightman, Baphomaniac, Bellerephron, Blackmore, Bowmetheus, CanOfBees, Coron, DarthCloakedGuy, dinky, Enzo, filfer, Gall2222, Gargoyl, GordonOverkill, GrandVizier, gressup, grey, Halgar, hydraslayer, Kawakimi, ldierk, Lunuwara, maggot, mdonais, meepyknight, MinDuChiJD, Mintice, Monsterracer, Niven, pentaxis93, petermcneter... 11:44:25 <|amethyst> !lg * ntv>1 year s=name 11:44:27 295 games for * (ntv>1 year): 6x gressup, 6x Yermak, 5x Bowmetheus, 4x Bacchus, 3x AnimeIsTrash, 3x Lunuwara, 3x Flugkiller, 3x Nebukadnezar, 3x Bellerephron, 3x Zorot, 3x mdonais, 3x Mintice, 3x Xzight, 2x maggot, 2x CanOfBees, 2x RoadsterTracker, 2x prickleybob, 2x sentinel, 2x minmay, 2x Veteran, 2x pblur, 2x dickylongcocking, 2x Sapher, 2x SFR, 2x pentaxis93, 2x PleasingFungus, 2x Niven, 2x Se... 11:44:32 and it counts queries, not watches, but it's probably close enough 11:44:34 sorry, wanted to see the scaling for replays 11:44:46 <|amethyst> !lg * year s=name 11:44:55 lol 295 11:44:55 1294509 games for * (year): 8602x knot, 8552x pigah, 5079x Jim, 4922x freshwatercrab, 4411x slep, 3734x Gargoyl, 3566x FishTaco, 3364x cryptstride, 3191x dickylongcocking, 3167x lokapujya, 2830x aravol, 2679x P0WERM0DE, 2628x Xerdoz, 2545x mazerunner, 2531x MaineCoooon, 2457x bmj180, 2375x Katsumi, 2374x takealooook, 2364x anet, 2334x sdcsdc157, 2296x Esekla, 2210x robertstho, 2120x DanceGodDanceK... 11:44:59 <|amethyst> I think even 1 watch would be fine 11:45:29 <|amethyst> unless that induces people to go and watch all their games to preserve them, but even then it probably wouldn't be many people 11:46:08 even 2 orders of magnitude more than 295 would be a *lot* less than how many ttyrecs there are 11:46:13 <|amethyst> yeah 11:46:23 !lg * year ntv>0 11:46:26 1429. nodergak the Skirmisher (L4 HaCK of Xom), mangled by an ice beast in Sewer (sewer_co_tree) on 2020-05-20 00:41:13, with 86 points after 560 turns and 0:05:10. 11:46:34 <|amethyst> oh, that was > not >= 11:47:09 ??oops 11:47:09 pleasingfungus[1/27]: a misleading learndb dev entry ????? 11:47:10 <|amethyst> !lg * 11:47:11 11803515. nodergak the Skirmisher (L4 HaCK of Xom), mangled by an ice beast in Sewer (sewer_co_tree) on 2020-05-20 00:41:13, with 86 points after 560 turns and 0:05:10. 11:47:26 <|amethyst> !lg * ntv>0 11:47:32 34178. nodergak the Skirmisher (L4 HaCK of Xom), mangled by an ice beast in Sewer (sewer_co_tree) on 2020-05-20 00:41:13, with 86 points after 560 turns and 0:05:10. 11:48:02 hahaha 11:48:07 I wish I'd known about this 11:48:14 <|amethyst> of course, the watched games probably do tend to be longer 11:48:42 <|amethyst> !lg * ntv>0 x=avg(turns) 11:48:46 34178 games for * (ntv>0): avg(turn)=68054.79 11:48:50 <|amethyst> !lg * x=avg(turns) 11:49:21 what's the 295 figure here? 11:49:23 <|amethyst> maybe I should have qualified that by date 11:49:26 ntv? 11:49:49 (sequell syntax is still a total mystery to me) 11:49:59 <|amethyst> ntv = number of times it was queried by !tv 11:50:20 <|amethyst> since some date, since I'm pretty sure that field hasn't always been around 11:50:23 90s limit exceeded: killed !lg * x=avg(turns) 11:50:26 I think 295 is the number of players who left a ttyrec in the last year 11:50:44 ahh, thanks! 11:50:44 <|amethyst> who have left a ttyrec that has been watched more than once in the last year 11:50:49 295 is the number of games with > 1 view in the past year 11:50:52 <|amethyst> oh, not number of players, number of games 11:51:20 I think the number of games is 1429 no? 11:51:38 oh sorry 11:51:42 295 was >1 11:51:46 yeah 11:52:03 <|amethyst> 1429 games from the past year that have ever been TVed 11:52:38 <|amethyst> out of 1'294'509 games 11:52:38 <|amethyst> !lg * year x=avg(turns) 11:52:38 1294477 games for * (year): avg(turn)=6986.31 11:52:38 <|amethyst> !lg * year ntv>0 x=avg(turns) 11:52:38 1429 games for * (year ntv>0): avg(turn)=38027.62 11:52:43 there's a small inconsistency there, in that it doesn't include games where the tv was fetched with -ttyrec 11:52:54 but I think the only people doing that regularly are gammafunk and I 11:52:57 <|amethyst> yeah 11:53:06 and always within a week or two of the death at most 11:53:08 <|amethyst> also ones downloaded directly from the data directory 11:54:42 we can always fine-tune the metrics for future games, but this seems pretty good for the 4-5 tb we already have 11:54:43 so for comparison on CAO I archived all of qw's and tstbtto's games, and that was around 13000 games spread over around 1,000,000 individual files 11:58:38 <|amethyst> 34178/11803515 games ever with !tv, which are on average (38027.62/6986.31) times as long as the average game, times let's say 5 TiB, gives < 81 GiB 11:59:22 <|amethyst> s/as the average game// 12:00:18 nice 12:01:33 can ttyrecs be watched live? 12:01:49 <|amethyst> that's how console watching works 12:02:22 <|amethyst> I don't know how well you could stream them to another computer without jitter 12:03:36 ah.. I guess that makes sense 12:04:23 well, the webtiles server could post to a ttyrec server on game completion, and save a ttyrec during play 12:05:00 then the local ttyrec can be deleted after its posted to the ttyrec server (and dumped into b˛) 12:05:57 <|amethyst> there is a small problem there with games that are never completed 12:06:36 <|amethyst> the ttyrec could still be moved of course, but then you'd have to be able to deal with games whose ttyrecs are split across two places 12:06:39 can ttyrecs for those games be queried? 12:07:15 or watched via !tv? 12:07:59 <|amethyst> good question 12:08:01 <|amethyst> !lm . 12:08:21 the webserver could use streaming post as the game is played 12:08:22 <|amethyst> oh, right, !lm is too slow to use right now 12:09:05 38866. [2020-05-19 22:09:36] Neil the Caller (L1 DESu) began the quest for the Orb on turn 0. (D:1) 12:23:49 I don't think ttyrec itself has a problem with never-completed games, the format knows next to nothing about its content 12:24:40 <|amethyst> right, I meant the "only push the the ttyrec server when the game completes" 12:24:46 <|amethyst> s/the the/to the/ 12:25:31 so a few things about troves: 12:25:31 1 - any objections to removing !stabbing from the fees? 12:25:36 2 - any objections to adding ?fog, ?fear and ?summoning to the fees? 12:31:02 <|amethyst> those both sound good, but I feel like there could be more additions 12:31:14 seems fine 12:31:30 technically we have frozen but no one has actually tagged yet 12:31:43 I was going to just do it today if no one objects 12:32:39 alright, I'll only add ?fog and ?fear for now because I'd need to add a check for sac love for ?summoning 12:33:16 I do actually feel like ?stabbing needs some more refinement, which may be related to 1, but I haven't spent a lot of time trying to get my head around them so maybe I'm wrong 12:33:53 <|amethyst> I think 1. is more about the same reason brilliance isn't on the trove list 12:34:05 <|amethyst> because for some characters it's not useful 12:34:15 <|amethyst> or marginally so 12:34:20 might isn't on the list either and that's more useful than brilliance 12:35:16 yes, but I do think it might be better of ?stabbing (or its descendent) were less niche in that respect 12:35:30 <|amethyst> I thought that was the point of the change 12:35:52 <|amethyst> so that players who weren't interested in stabbing could just put them off autopickup and not take up an inventory slot 12:36:29 er, !stabbing I guess 12:36:31 yes, I'm not really talking about this immediate change but the longer term 12:37:22 <|amethyst> I mean, of the change from agility to stabbing 12:38:04 oh, I think it was that they were very similar to other buff potions 12:38:10 "just another buff to stack on the pile and clog up your inventory" 12:39:00 so at least part of it was aiming for a very different style of effect, I think 12:40:59 right now I suspect that any character that could in principle generate distraction somehow ought to be carrying them, which is a lot of characters 12:41:09 the commit message basically says that 12:41:19 but it seems marginal to me for many such characters 12:43:19 <|amethyst> if you gave it the asshood ability 12:43:27 yeah, that seems like a possibility 12:43:39 "potion of assassination" is also a better name 12:43:46 <|amethyst> asspot 12:43:56 but it would make that item less distinctive 12:44:30 <|amethyst> the hood could get the current potion ability 12:57:26 03CanOfWorms02 {GitHub} 07* 0.25-a0-1136-gc1285e6: Adjust troves fees 10(8 seconds ago, 1 file, 3+ 2-) 13https://github.com/crawl/crawl/commit/c1285e62abbe 13:02:11 Unstable branch on crawl.kelbi.org updated to: 0.25-a0-1136-gc1285e62ab (34) 13:06:24 Unstable branch on crawl.akrasiac.org updated to: 0.25-a0-1136-gc1285e6 (34) 13:37:28 -!- elliptic_ is now known as elliptic 13:42:14 alexjurkiewicz do you happen to know what would cause `debconf: unable to initialize frontend: Dialog\n debconf: (TERM is not set, so the dialog frontend is not usable.)\n debconf: falling back to frontend: Readline` in gh actions? Is this just fixable by setting TERM? 13:42:26 and/or did gh actions change whether it sets TERM by default somewhere along the way? 13:42:41 I saw that you had commits to set this in one of the actions PRs 13:43:14 advil: the bit where !invis and !stab are a very strong combination makes !stab quite useful to any character who melees 13:43:32 ah right 13:43:53 so better than marginal 13:43:57 also, about hood of the assassin, I don't think that ability would make a very good potion 13:45:14 it's far weaker than current !stab and it's also not useful for characters who are already using short blades, which is weird for a potion that is supposed to help characters be stabby 13:46:30 I will say that I personally preferred the design of agility as a defensive counterpart to might, rather than just having multiple offensive buff potions 13:49:52 comboing !stab with some distraction or debuff is sort of fun but also feels a bit cheap, like a single potion is simulating most of the effects of an entire skill and weapon class 14:00:00 -!- aidanh_ is now known as aidanh 14:07:13 !learn add reddit Laughs in “when they removed Hill Dwarf” tones 14:07:18 reddit[4/4]: Laughs in “when they removed Hill Dwarf” tones 14:24:23 hah 14:44:36 some guy was playing crawl on twitch this week and had about 700 viewers 15:04:21 wow 15:04:25 thats whack 15:04:31 get them to bump the tourney :P 15:15:09 unless it was the other crawl 16:15:47 this gh issue that just rolled in looks like a really good bug 16:17:38 For one thing, it's making github give me 500 errors 16:24:03 seems like the char might have died, I can't see the save on cao 16:24:38 !lg blergsid 16:24:41 643. blergsid the Destroyer (L11 DECj of Sif Muna), blasted by a rime drake (flash freeze) on Lair:2 (portal_ice_cave_rime) on 2020-05-19 23:51:51, with 12658 points after 14034 turns and 0:42:55. 16:24:49 !lg blergsid muck 16:24:50 No games for blergsid (muck). 16:24:55 !lm blergsid muck 16:24:56 No milestones for blergsid (muck). 16:25:00 hm 16:26:16 http://crawl.akrasiac.org/rawdata/blergsid/morgue-blergsid-20200522-200212.txt 16:26:49 too bad, I couldn't immediately replicate it locally 16:29:52 advil: yeah, I don't know if you saw the discussion on discord about it 16:30:04 it is definitely a good and maybe epic bug 16:30:24 wonder how exploitable it is for casting spells without training 16:30:38 did they give any more details on how it happened? 16:30:49 yes, uh, let me see 16:30:49 I've been trying to do it with rings and &@ and getting nothing 16:30:58 also not sure if worm's recent fix addresses it? 16:31:01 maybe the fact that it is armour is crucial 16:31:06 which could by why you can't recreate? 16:31:35 unless you don't have that fix in your tests 16:31:35 oh 16:31:35 I didn't see that commit 16:31:41 not sure if I have built with that or not but I might have 16:31:45 %git 16:31:45 07CanOfWorms02 {GitHub} * 0.25-a0-1136-gc1285e6: Adjust troves fees 10(4 hours ago, 1 file, 3+ 2-) 13https://github.com/crawl/crawl/commit/c1285e62abbe 16:31:49 doh 16:31:52 %git HEAD~2 16:31:52 07CanOfWorms02 {GitHub} * 0.25-a0-1134-gcef5c75: Insert a cap in spell failure calculations 10(10 hours ago, 1 file, 7+ 0-) 13https://github.com/crawl/crawl/commit/cef5c758032e 16:31:56 yeah, I've built since then 16:31:57 that one 16:32:03 his stats https://cdn.discordapp.com/attachments/205316046230388737/713292141861797908/Screenshot_20200522-002812.png 16:32:05 so yeah, that probably fixes it 16:32:20 and what he was seeing: https://cdn.discordapp.com/attachments/205316046230388737/713290326617358376/unknown.png 16:32:37 yeah there's even more in the gh issue 16:32:41 oh I guess that's not more info than the morgue is it, right 16:33:25 yeah, Summon Hydra Summ #......... 0% 7 N/A etc 16:33:44 seems balanced, ship it 16:34:17 apparently introduced by |amethyst's conversion of the fail formula to a version of the polynomial proposed by minmay 16:34:30 well, my implementation of |amethyst's conversion tbf 16:35:00 haha, quite a pipeline of authors for that change, I guess 16:35:11 should probably be done over a long 16:35:16 not an int 16:35:54 I do think "// If you think this is weird, you should see what was here before." is one of my significant achievements in crawlcode commenting 16:38:07 hm 1400 looks too high for me eyeballing this quickly 16:38:22 that's well into overflow 16:38:32 I will check into this later 17:05:18 <|amethyst> hm, I just noticed that the species data is under dat/; should art-data.txt move there too? 17:05:44 <|amethyst> not until 0.26-a0 of course 17:17:30 advil: if it's relevant I generated the 1400 number by solving the polynomial = 2^32 (which gives x = 147something) 17:18:45 still a pretty hacky solution so something more robust would be better 17:30:13 -!- jfcaron_ is now known as jfcaron 17:40:49 CanOfWorms I think it will overflow before the division, so just doing the numerator gives ((1400 + 426) * 1400 + 82670) * 1400 + 7245398 = 3701943398 17:41:18 yeah that was what I was solving, numerator = 2^32 17:41:37 I guess the overflow point is 2^31? 17:41:46 oh haha yes it is signed 17:42:10 INT_MAX is 2147483647 17:42:23 ebering: i don't care mysql vs postgres. Well, I think mysql has a lower barrier to entry and mysql8 supports json operations 17:43:17 yeah if it's signed we care about then the upper limit is around 1142 17:43:28 so 1000 is probably a reasonable cap? 17:43:35 about storage of ttyrecs in object storage (b2/s3). The major issue is that ttyrec consumers (eg footv) rely on directory listings to find all relevant files 17:44:14 ugh, do they? 17:44:43 footv is one of the few remaining crawl infrastructure things I am blissfully ignorant of 17:44:58 advil: about debconf unable to initialize frontend, try setting TERM yes, to 'dumb' is a good non-interactive value 17:45:13 for b2 I can hook it into cloudflare easily I think 17:45:39 gha has never set TERM, but it's always been required for fake_pty to work. I think if you don't have TERM set `make test` fails with exit code 0 which tripped me up initially 17:46:13 the odd thing about this error is that it did work previously 17:46:19 maybe something changed with apt 17:47:04 |amethyst: moving art-data -- I figure it makes sense to move if there are architectural changes, eg I was proposing changing art-data to dat/unrands/*.yml 17:47:40 advil: oh was that error from apt-get install? Try DEBIAN_FRONTEND=noninteractive 17:48:20 some package is trying to ask you a question on install (eg asking the user what timezone they are) 17:48:20 I think footv has to rely on directory listings because there's no correspondance between milestone time and ttyrec starting time (i.e. the filename) 17:48:32 hm, also if you're using 'apt' rather than 'apt-get' that's a mistake. But I'm guessing just shorthand 17:48:41 since ttyrecs are created when the session begins and milestones happen whenever 17:48:51 I suppose the ttyrec filename could be added as a milestone field though? 17:49:02 or just the starting timestamp of the session, I guess 17:49:57 I guess for the logfile though, it's not going to work unless it contains a set of timestamps for every session 17:50:00 alexjurkiewicz yeah, apt-get,, https://github.com/crawl/dgamelaunch-config/runs/678701403?check_suite_focus=true 17:50:08 gammafunk: Someone looking for you on Discord FWIW 17:50:14 aidanh: you might want to note that CPO doesn't use dgamelaunch-config here https://github.com/crawl/crawl/wiki/DCSS-Servers-overview 17:50:30 <|amethyst> gammafunk: how does !tv handle that when you have multiple concurrent games in different versions? 17:50:43 6h lol 17:50:58 yep DEBIAN_FRONTEND=noninteractive should fix that 17:51:15 and probably TERM=dumb for good measure 17:51:18 |amethyst: that's a very good question 17:51:39 I don't think the timestamp file encodes anything, does it? 17:51:59 they're empty 17:52:07 if that's what you mean 17:52:40 i mean you should set those env vars 17:53:46 alexjurkiewicz: there's no point in splitting unrands into different files because they all touch art-data.h 17:53:46 at the bottom of ci.yml add ` env:\n - DEBIAN_FRONTEND: noninteractive\n - TERM: dumb` 17:53:46 er, art-data.h would depend on all of them 17:53:59 and te info is small enough that splitting them up doesn't seem to be much benefit? 17:54:10 alexjurkiewicz it's part of a Dockerfile 17:54:26 will that still have an effect? 17:54:35 <|amethyst> gammafunk: I don't think so, see _dgl_record_timestamp (and in particular the if (timestamp_first_write)) in chardump.cc 17:54:37 oh, then `docker run -e DEBIAN_FRONTEND=noninteractive -e TERM=dumb .... 17:55:01 or export DEBIAN_FRONTEND=noninteractive ; docker run -r DEBIAN_FRONTEND ... 17:55:09 <|amethyst> gammafunk: it's just a version then a sequence of time_ts 17:55:24 <|amethyst> gammafunk: also, if we plan on Crawl being around in 18 years: 17:55:27 !source _dgl_record_timestamp 17:55:32 1/2. https://github.com/crawl/crawl/blob/master/crawl-ref/source/chardump.cc#L1898 17:55:33 <|amethyst> // [ds] FIXME: Eventually switch to 8 byte timestamps. 17:55:37 heh 17:55:39 I'm not going to be working on scoring this evening so alexjurkiewicz and advil if y'all want to merge the dockerstuff and start landing some of the front end that's good to go 17:55:58 <|amethyst> oh, it is a uint32_t, so maybe 86 more years 17:56:09 alexjurkiewicz: you'll see some new functions in query.py for getting out a dict of player ranks in the different categories 17:56:21 cool. I'll try to do so. I will have either a fair amount of time or zero time today, we'll see 17:56:27 <|amethyst> oh, no, it's implicitly case to int32_t because that's what marshallInt takes 17:57:05 <|amethyst> and probably !tv uses it as though it were signed 17:57:12 |amethyst: I can't recall ever seeing footv get confused about that and loading a wrong game for the same player as I was watching, but I suppose that doesn't mean it doesn't happen 17:57:31 vast majority of footv sessions come from a single tty session, hence a single ttyrec 17:57:33 <|amethyst> gammafunk: yeah... I'm not too familiar with footv's backend 17:58:08 it's the kind of black magic only a snark could write; has all this cool ttyrec frame manipulation done in perl 17:58:21 a snark or a neil, I guess :) 18:01:29 alexjurkiewicz thanks, I ended up doing it with an ARG in the Dockerfile but that seems to have done the trick 18:03:55 that makes sense, if it should always be set 18:05:49 for building the image it should be fine 18:24:12 Unstable branch on underhound.eu updated to: 0.25-a0-1136-gc1285e62ab (34) 19:43:10 New branch created: pull/1421 (1 commit) 13https://github.com/crawl/crawl/pull/1421 19:43:10 03Peter Gerlagh02 07https://github.com/crawl/crawl/pull/1421 * 0.25-a0-1137-gff8498d: force autopickup with ;; 10(14 minutes ago, 3 files, 18+ 10-) 13https://github.com/crawl/crawl/commit/ff8498dcde23 19:43:22 advil: would you like to put a second pair of eyes on https://github.com/crawl/dcss_tourney/pull/5 before I merge it? 19:44:00 the commits are all ugly and messed up, but I don't think it's worth cleaning up (which would require manually stitching together the commits afresh) 19:50:46 what is the retry thing for? is that something that is needed with docker? 19:54:19 yes, the loaddb container will often start up before the mysql container is ready 19:56:38 nothing is standing out as too weird; I might have done the namedtuple stuff with a class but that's probably just preference 19:56:50 `print("Hello from update_index")` has the feel of a debug print 19:57:20 there are some changes to TEST_ things that might or might not be spurious 19:58:01 not sure what happens if you commit `USE_TEST = True` 19:59:48 and yeah I don't think commit history is hugely important for this repo 19:59:48 ??elliptic 19:59:48 elliptic[1/3]: One day we'll discover elliptic is a millionaire recluse who made some technology we all use every day like shoe laces or something 20:00:16 ??yermak 20:00:19 I don't have a page labeled yermak in my learndb. 20:01:16 i'll back out the USE_TEST change 20:01:34 well, we are all testing I guess 20:01:40 I've just never actually used that particular mode 20:02:45 maybe I just have an innate suspicion of debug modes that are that old, the one in scoring was useless and the one in webtiles is like actively harmful 20:02:46 makes the top menu appear 20:03:00 yes, this one is wildly overloaded too 20:03:25 I think a lot of development in the past was done live pre-tourney start, using this option to keep only the rules page visible 20:03:55 sounds plausible 20:05:16 compeltely random thought: I wonder if it's possible to make chei not announce pull requests in ##crawl if it's not going to announce pull request commits 20:05:16 very minor annoyance, but I just noticed it 20:06:27 most annoying thing about testing a full website rebuild is constantly forgetting to run both loaddb and update_index 20:06:36 heh 20:06:56 when working on scoring I often have a single line command chained with && for doing that 20:07:28 well, just pushed my stuff into new-scoring 20:08:20 tl;dr 1) set USE_TEST = True 2) run docker-compose up mysql web in one terminal 3) run docker-compose build && docker-compose up index loaddb in another every time you want to rebuild the website 4) run docker-compose down -v to destroy all data 20:08:28 I'm not sure that there has to be the decoupling of the index page if we set up better arguments for loaddb 20:08:38 hopefully the README makes that all clear, LMK if not 20:08:47 I guess it would be a bit weird given the names of those scripts 20:13:14 someone is going to have to remember to manually clean up old tables in the db 20:13:32 won't they be removed by database.sql when it's run? 20:13:50 I think ebering has removed a lot of the drop table lines while iterating 20:13:53 advil: you can Send Later yourself a message in two weeks on gmail now! 20:13:56 at least, it doesn't work for me right now 20:14:14 ah. I guess those should be re-added 20:14:30 some things may have only existed in interim versions 20:14:46 biggest annoyance of dcss_tourney frontend development: my editor doesn't detect .mako as HTML, so doesn't auto-add closing tags and auto-indent for me 20:15:06 well, there should be no harm in adding DROP TABLE IF EXISTS ... for interim stuff 20:26:25 advil: how do you mean by clean up old tables, by the way? 20:26:40 due to new_scoring structure changing over time? 20:27:11 yeah, ebering is revamping the db structure a fair amount 20:27:11 but actually I guess if there is a new db instance it might start off blank 20:27:11 right, I should give it a whirl 20:27:32 yeah, the CDO mysql is now completely independent from the one we used for last tourney 20:27:59 which, on that note, I can no longer access that old one since the system mysql (5.5.x) refuses to run as it kind find a shared library 20:28:08 s/kind find/can't find/ 20:28:18 guess I can ask nap.kin bout it, but there's no really to care I suppose 20:28:25 s/really/reason/ 20:28:35 not as long as the html is archived 20:28:44 yep, it's still in same place 20:29:09 and plan is to use that same ~/website/tournament directory again (as ~/website/tournament/0.25 presumably) 20:33:58 does anyone know what mysql version we need now? 20:34:31 i think 8 is required for ranking 20:35:10 > The rank() function is pretty cool, but it’s not available prior to MySQL 8.0. 20:35:26 hm ok 20:37:31 ebering: new-scoring branch now has a file `scoring_data.py` that contains descriptions of all categories & banners. Please use it as the authoritative source going forward (over the wiki). It's used to dynamically generate pages like rules & player 20:38:09 it might even be possible to put the scoring logic for each category/banner into that data structure. That might be cool 20:38:42 we need mysql >= 8 20:38:42 advil: Napkin installed 8.0.X for us on CDO, not sure if you heard that 20:38:49 yeah, I did know that 20:38:53 alexjurkiewicz: cool! I'll see what I can re-factor into that 20:39:05 just don't have it installed locally 20:39:06 a lot of the actual scoring checks happen at various places in outline.py 20:39:49 what does that file do? 20:39:53 i haven't had to touch it yet 20:40:32 it does the post-logline-milestone-add recomputations 20:41:00 updating the db w/banner info and combo high scores &c. 20:41:34 i see 21:04:24 oh, by the way, there's a sort of big problem we should fix with these iterations 21:04:52 cwz's data server (https://webzook.net/soup/) goes down in some weird way every night 21:05:32 I think Salmon from discord told me it's a scheduled downtime, or something 21:05:32 but either way during tournament I routinely had to stop scripts, disable fetching from cwz, restart 21:05:36 because the scripts would get hung trying to fetch 21:05:57 then later when it seemed to be back, I could re-enable cwz and restart again 21:06:09 hm I think scoring has a fix for this? 21:06:24 oh, you saw the same problem? that's great 23:25:24 gammafunk I didn't see it but I think there may be a fix from before my time 23:26:52 advil: well, maybe we'll see the bug during testing 23:27:10 I can go look through the scoring source late to see if I can find the fix you're referring to 23:29:09 it may actually just be https://github.com/crawl/scoring/commit/3ee959646cd3 23:29:43 since it appears --timeout is not used in dcss_tourney 23:29:43 yeah, I want to say we do have a timeout set on that, let me see 23:29:56 which it should be even if that doesn't specifically solve the cwz problem 23:30:07 oh...do we not have that... 23:30:13 heh 23:30:14 res = os.system("wget -q -c --no-check-certificate %s -O %s" % (self.url, self.filename)) 23:30:23 is it really that simple... 23:30:26 lol 23:33:55 I should probably do a pass and see if I can spot other fixes in scoring that should be cross-ported 23:34:09 maybe next week 23:34:15 the semester is finall, Really Over 23:34:20 *finally 23:37:45 online classes? yeah, actually, I recall you talking about that 23:38:01 yes 23:38:05 I guess no university in the country is really conducting face-to-face classes right now 23:38:13 grades are in, seniors have graduated, &c 23:38:57 yeah, everything is virtual 23:38:57 there's a lot of pressure for it not to be virtual in the fall 23:39:59 Do you teach any really technical classes from a computer science/programming standpoint? Can't imagine you wouldn't be in demand for that! 23:41:00 I mostly don't, though I had planned on teaching a cross-listed CS class in the spring 23:41:25 schools are just returning next week here. Unis are staying online only for a while yet 23:41:27 CS people doing NLP take my classes 23:42:03 fr: all the crawl devs who are profs get together and teach a class 23:42:10 ah are they still in their summer term or something in aus? 23:42:22 we are thankfully into summer break now 23:42:26 haha 23:44:47 that's at least two mathematicians and two computer scientists, probably more; don't want to see that class exam 23:45:33 I'm not a real computer scientist :-P 23:45:55 that's what they all say... 23:46:20 I know bh is not a real biologist 23:53:52 Real except where declared integer