User talk:Alan

From Fallen London Wiki

This is my user talk page. Feel free to leave a message if there's anything you want to ask!

Discussion about the Wiki itself[edit]

Hi Alan,

Now that the new Wiki is public, will discussion about the Wiki move onto the Wiki itself? I know that much of the preparation prior to the big event happened on Discord, and my understanding is that was out of a need for privacy when discussion plans. I avoid Discord, so I had to opt out of participating in those discussions. I was wondering if the public launch might move Wiki discussion back into a more public-facing arena (like the Wiki itself) or if people just generally prefer Discord and I'm in the minority.

Thank you for all your hard work and time invested! It's a big benefit to all of us. PSGarak (talk) 03:30, 19 March 2021 (UTC)

Hi! Thanks for the kind words, and for reaching out about your concerns. I fully plan to have discussion of wiki matters shift back on-wiki after launch (i.e. user talk pages and blogs, I assume?)

Discord will remain available for users who prefer it, to submit text for inclusion on the wiki or to get help with templates or modules, e.g., but I won't make any major decisions without giving notice on-wiki, and I'll strongly encourage major discussions to occur on-wiki.

I hope this at least partially assuages your concerns. Please don't hesitate to ask if anything else comes up. Alan (talk) 04:19, 19 March 2021 (UTC)
> Hi! Thanks for the kind words, and for reaching out about your concerns. I fully plan to have discussion of wiki matters shift back on-wiki after launch (i.e. user talk pages and blogs, I assume?)
I must admit I never really liked those as a discussions platform. I did once a long time ago build a basic draft of a central discussions page at User:Asarta/ExampleTalkPage would there be potential in using such a thing? (cc'ing @PSGarak) --Asarta (talk) 14:23, 24 March 2021 (UTC)
Perfect, that's exactly what I was hoping for. Thanks so much! PSGarak (talk) 13:28, 19 March 2021 (UTC)

Fandom account merging[edit]

So… I've created a new account here, with the same username I had on Fandom… can they still be merged somehow? Lohoris (talk) 23:09, 17 June 2021 (UTC)

Hi! From what I can see, the only thing you've done on the Fallen London Wiki on Fandom is one comment four days ago - before then, you didn't exist on that wiki. The list of users was taken on the 22nd March, and it's not possible to merge anything from the Fandom wiki after that. There's not much to be merged, I don't think. Alan (talk) 23:28, 17 June 2021 (UTC)

Parabolan Campaign Calculator[edit]

Hi Alan,

I made a nifty calculator for optimizing Parabolan Warfare. Before I put it on the main Wiki and announce it, I wanted to check in with you about server usage. It takes about 4 seconds of CPU time each time someone submits it. Will this burn down the Wiki? I expect some users would be re-submitting a whole bunch of times to run different scenarios.

See it in action: User:PSGarak/Sandbox/Warplan. I'm still writing up explanatory text but the calculator itself won't change. The backing form is at User:PSGarak/Sandbox/Parabolan War.

The resource usage comes from using nested loops to define about six thousand variables. If we need to slim down the resource count, we could look into the Arrays extension, or port the thing to Lua.

PSGarak (talk) 19:32, 14 November 2021 (UTC)

First of all, thanks for creating this! It's a very impressive feat. I did notice you making edits to that page in recent weeks, and ran it once myself to notice the spike in load.

I think it's unlikely to burn down the wiki, but it's a definite possibility.

I've installed Arrays and it should be working. If that doesn't help, porting to Lua might be necessary. I suspect that defining the thousands of variables inside the parser incurs significant overhead over creating a variable in Lua. I think I recall {{Options}} becoming more efficient when doing the processing in Lua rather than using wikitext, though that might have just been to get around post-expand include size; I'm no longer certain.

Thanks for reaching out to me with this concern, and let me know if you need or want help optimising. Alan (talk) 20:36, 14 November 2021 (UTC)
On further investigation, it looks like WSArrays (ComplexArrays) is better suited that the regular Arrays extension. PSGarak (talk) 23:22, 14 November 2021 (UTC)
Alright, that's enabled now as well. Alan (talk) 00:02, 15 November 2021 (UTC)
Initial testing is that while using actual arrays is definitely easier to read, it's basically a wash for speed.

On the other hand, hoisting loop constants seems to be doing good things for load time. I'll see where we're at for load time after I finish making that change. PSGarak (talk) 04:13, 15 November 2021 (UTC)
I've got the page load time down to about 3.5 seconds on a good day (ironically, by adding more variables). I cut out a smaller section of the whole thing for experiments running tests. See link below for a handful of implementation strategies and timing samples. I've gotten to the point where most of the things I'm trying are making things slower rather than faster.

User:PSGarak/Sandbox/Parabolan War timings

I'll need your help making any improvements, or deciding whether this is "good enough." I'm not able to profile the code so I can't tell where to focus on improvements. If you can point me in the right direction, I can put in the work to get it done. PSGarak (talk) 20:04, 26 November 2021 (UTC)
I haven't been able to find the time to grok your code; sorry! I'm inclined to say that 3.5s is acceptable, especially since the webserver has four cores, and parsing pages only uses one apiece. There might be some performance concerns if too many people try to create warplans at the same time, but I think the risk of that is sufficiently low.

I still suspect that doing these calculations within the parser would be slower than offloading them to Lua, but that change would certainly be significantly more effort. If you want to just go with this as it currently stands, I'd be fine with that. Alan (talk) 01:14, 28 November 2021 (UTC)

Bug with SMW[edit]

Hi Alan,

I've encountered a bug with SMW data, which unfortunately seems to be a database problem that I'll need your help with. Short version: data that is definitely in SMW and gets returned by some queries, is not returned by all queries.

Test example:

The action Another story, not of vengeance but of loss properly has Property:From Card/Storylet data, and it points to a Storylet with proper Property:Located in data. This can be verified from the Browse Properties links on both pages.

Querying the page for its properties returns the data as stored: {{#ask:[[Another story, not of vengeance but of loss]]|?From Card/Storylet|?From Card/Storylet.Located in}}

 From Card/StoryletLocated in
Another story, not of vengeance but of lossAmbition: Nemesis – One Last MatterYour Lodgings

A query that includes this page does not return the relevant chained property, despite correctly returning the relevant property chains for other pages. See the 9th result at{{#ask:[[Gains::Searing Enigma]]|?From Card/Storylet|?From Card/Storylet.Located in|limit=10}}. (The other missing rows are not problematic, they genuinely do not have location data, e.g. Item Actions, universal storylets.)

 From Card/StoryletLocated in
"...yes?"The Deep Archives of the College of St Cyriac
...a Sealed ArchiveA Prize Achieved!On a Heist
...something else.Trade Secret
A Disgruntled AcademicExpanding your NetworkKhan's Heart
A fair exchangeEyeless Skull
A fragile flake of vellumUnpredictable TreasuresBase-Camp
A partial tale, about revenge satisfiedAmbition: Nemesis – One Last MatterYour Lodgings
A very special editionStart the presses!Doubt Street
An unexpected volunteer (30 FATE)SNOWBOUND!
Another story, not of vengeance but of lossAmbition: Nemesis – One Last MatterYour Lodgings
... further results

This bug appears to be true for all chained properties in printout statements, but does not affect selection. {{#ask:[[Gains::Searing Enigma]][[From Card/Storylet.Has Game Type::Storylet]]|?From Card/Storylet|?From Card/Storylet.Has Game Type}} Click for example. If you scroll down, you'll see that issue appears for a number of other Storylets as well, and that it seems to be tied to the Storylet, not the action.

Any idea what might be causing this? My best guess is that when this gets translated to SQL, some JOIN is getting truncated.
- PSGarak (talk) 02:53, 22 February 2022 (UTC)

How troublesome. I'll see if I can enable database query logging tomorrow and suss out the issue that way. Alan (talk) 04:12, 22 February 2022 (UTC)
Whoops, this managed to slip my mind until today. I took a look, and it's admittedly difficult to make heads or tails of - SMW's database structure is far from straightforward. I'll continue to poke at it and try to see what's up. Alan (talk) 20:22, 25 February 2022 (UTC)
No worries, I wasn't expecting this to be quick. It doesn't look like a quick sort of thing.

In case it helps, you can get to a SQL Explain of these queries. But my intuition is that the SQL explain only shows selection, which is working right, not printouts, where our actual trouble is.

Still, if you want to look: Click the "...further results," then the pen icon in the upper-left ("edit" I guess?), then below the query but above the results on the right, click Debug. The "smw_fpt_35ut90060c7g" table looks like it's the Fixed Property Table for Property:Gains, and presumably 2225 is an ID referring to Searing Enigma.

Is there any value in doing one of them Semantic Data Rebuild thingies? Those seem to take a while, I don't know if it would address this type of issue.

- PSGarak (talk) 04:13, 26 February 2022 (UTC)
After a lot of tracing, I've apparently been able to narrow it down to the case where the ?From Card/Storylet value was already used, and where the potentially-problematic value is not adjacent to the previous usage. See:
 From Card/StoryletHas Game Type
Fight without taking your eye off the goods!Intervene in a Dockers' BrawlStorylet
Flash your Special DispensationIntervene in a Dockers' BrawlStorylet
Propose a station that is a defiance to AllConvene a Board Meeting of the Great Hellbound RailwayStorylet
Take a moment to tend your woundsIntervene in a Dockers' BrawlStorylet
Write down some favoured fighting techniquesEpistolary MattersStorylet
Take a moment to tend your wounds is from Intervene in a Dockers' Brawl, which was already displayed above, and Propose a station that is a defiance to All is in the middle, separating it from the previous actions with the same source Card/Storylet. I've narrowed the issue down as having something to do with the PrefetchCache, though I'm still trying to figure what, precisely, the issue is. Alan (talk) 19:57, 28 February 2022 (UTC)
Since the presentation of the error has to do with ordering, I tried adding a Sort setting to see if that was a viable work-around in the meantime. I was surprised by the results, so I figured I should share them in case they're helpful. They also seem non-deterministic, which is everyone's favorite but not entirely surprising for cache issues.
Sorting by Property:From Card/Storylet usually results in even more Property:Has Game Type values being missing, although sometimes all are present. Sorting asc vs desc tends to produce different results. My very small sample size is that the very first query tends to produce more missing values, and subsequent refreshes are more complete.
Open each of these links a few times:
- PSGarak (talk) 20:19, 28 February 2022 (UTC)
Any breakthroughs?

Right now on the SMW work I'm doing, I generally see that chained properties don't load on initial pageload, but only after a page refresh. While I'm not 100% sure what a "Prefetch Cache" is, it sounds related. And also hard to debug. Two hardest problems left in computer science, etc.

- PSGarak (talk) 02:35, 9 March 2022 (UTC)
After narrowing it down, I admittedly got tired of debugging and left it there. I still have the tools open and will return to it later today. Hoping I'll have results by the end of the week. Alan (talk) 14:39, 9 March 2022 (UTC)
Ok, I really should have looked at the issue tracker sooner - it turns out that others have already identified the root cause and offered a patch.
I've applied the patch and it appears to have fixed the issue. Sorry this took so long for me to resolve. Alan (talk) 05:43, 17 April 2022 (UTC)

Just saying hi[edit]

Hi! Thank you for all of your help thus far, I really appreciate it.

I've made a lot of progress on my page, I hope that it looks good! I'm not sure about the name though, honestly.
Would you be okay giving me a couple pointers for how to fit it with the style of the Wiki as a whole?

-Lucy LuciferLilac (talk) 20:44, 25 February 2022 (UTC)

Captcha Problems[edit]


Was trying to make new user but I get the Incorrect or Missing captcha message even though I answered the questions about the 4 stats or starting locations properly... at least I think. Pls tell me there isn't a certain order I need to write them in, that'll cost your slippers. 2A02:AB88:2B8C:1200:284B:87CE:7E8B:4967 10:32, 29 August 2022 (UTC) EDIT: Nevermind, I can't read.