Difference between revisions of "LifeWiki:Tiki bar"

From LifeWiki
Jump to navigation Jump to search
(128 intermediate revisions by 16 users not shown)
Line 9: Line 9:


==Archived discussions==
==Archived discussions==
:''Note: active discussions are not archived.''
:''Note: active discussions are never archived while still active.''


* See [[LifeWiki:Tiki bar/Archive/2016]] for Tiki bar discussions started in 2016.
* See [[LifeWiki:Tiki bar/Archive/2016]] for Tiki bar discussions started in 2016.
* See [[LifeWiki:Tiki bar/Archive/2017]] for Tiki bar discussions started in 2017.
* See [[LifeWiki:Tiki bar/Archive/2017]] for Tiki bar discussions started in 2017.
* See [[LifeWiki:Tiki bar/Archive/2018]] for Tiki bar discussions started in 2018.


== LifeViewer inline patterns versus JavaRLE ==
== The list(s) of rules investigated on Catagolue ==


As discussed [http://www.conwaylife.com/forums/viewtopic.php?f=&p=53183#p53183 in a questions thread on the forums] -- do we know enough about LifeViewer, and is it stable enough for all users on all browsers as far as we know, that we should adjust the [http://www.conwaylife.com/wiki/LifeWiki:Pattern_pages Pattern Pages] howto and checklist to explain how to do inline RLE for secondary images in an article, without the nuisance of getting pattern files uploaded as a separate admin-only step?
Short version: these have increasingly become a burden to maintain on-wiki, and with Catagolue now having [https://catagolue.appspot.com/rules its own endpoint] providing an overview over and an exhaustive list of all rules searched, they're largely irrelevant now. (The on-wiki list was only started because Catagolue didn't provide one at the time.)


More ambitious:  might there be some clever way for non-admin users to contribute the baseline pname.rle and pname_synth.rle files directly, using a similarly easy inline-RLE method?  This is already possible by creating a raw RLE page for the pname pattern, but it doesn't work for pname_synth, does it?  Could those RLE chunks be hidden in the actual article text somewhere, in some standard location?
So I'm giving up maintainership of these. If anyone wants to take over, please do! [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 17:00, 7 January 2019 (UTC)


It still seems good to have copies of these patterns available in the downloadable ZIP file, though.  Does that mean we also need a mechanism to assign a pname to each LifeViewer inline pattern?  And then some (semi-automated?) way do the upload, and note in the article that that has been done.
: If we are to retire the [[List of rules investigated on Catagolue]], how should we do this? Add a notice at the top saying:


A vaguely related note: the pattern-file admin maintenance page is getting a little unwieldy as the number of patterns goes up -- it lists every pattern in one page, which is so long now that the load time is really noticeable sometimes, at least on my system.  [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 15:27, 26 November 2017 (UTC)
: "This page is no longer actively maintained in favour of the [https://catagolue.appspot.com/rules equivalent Catagolue page]."


:You're right, pname_synth isn't currently recognized. This could be changed; all we'd need to do is update the pattern templates accordingly.
: or words to that effect?


:I'm not sure I'm a fan of putting the RLE into the article text proper. The most natural place for it would be an infobox parameter, but that might run into subtle parsing issues. For example, I'm not sure if this:
: It still might be a good idea to actually keep the information in the LifeWiki, because Catagolue occasionally has outages when the daily quota has been exceeded, whereas conwaylife.com tends to be permanently accessible. [[User:Calcyman|Calcyman]] ([[User talk:Calcyman|talk]]) 18:26, 7 January 2019 (UTC)


::<tt><nowiki>{{Oscillator</nowiki></tt>
:: The wiki page does have some advantages over the Catagolue one, such as listing the rule integers for outer-totalistic rules and being easier to edit (e.g. adding names for new rules). [[User:77topaz|77topaz]] ([[User talk:77topaz|talk]]) 23:51, 7 January 2019 (UTC)
::<tt><nowiki>|name  = Prancing Ponies</nowiki></tt>
::<tt><nowiki>|pname = prancingponies</nowiki></tt>
::<tt><nowiki>|p    = 49</nowiki></tt>
::<tt><nowiki>...</nowiki></tt>
::<tt><nowiki>|rle  =</nowiki></tt>
::<tt><nowiki>x = 20, y = 17, rule = B3/S23</nowiki></tt>
::<tt><nowiki>...</nowiki></tt>
::<tt><nowiki>|...  = ...</nowiki></tt>
::<tt><nowiki>}}</nowiki></tt>


:...would work, or whether it might break because there's equal signs in the value of the <tt>rle</tt> parameter. I ''think'' MediaWiki is smart enough to handle this these days, and a similar parameter to [[Template:EmbedViewer]] has not caused any trouble yet as far as I'm aware, but this sort of thing still makes me nervous. (The safe way of handling this would be to escape all equal signs in the value passed using an appropriate template, as <tt><nowiki>{{=}}</nowiki></tt>, but users ''will'' forget this, and if it then doesn't work they ''will'' not understand why.)
== Time for a consensus decision on pnames? ==


:The above applies equally to the synthesis RLE, of course. On that note, having the synth RLE for <tt>pname</tt> live in <tt>RLE:pname_synth</tt> or <tt>Synth:pname</tt> or so would be saner. But it would make the RLE less accessible (though of course the pattern templates could also be rigged to check whether the RLE exists, and show a big red "click here to add the missing RLE" link if not.)
I've run the RLE-scraper script to collect new RLE files for a bulk upload. The script found 321 new RLE files. Before I send them to Nathaniel, it looks like I'll be doing some more standardization, especially involving pnames.


:As always, TIMTOWTDI (There Is More Than One Way To Do It)...
The [[LifeWiki:Pattern_pages|guidelines for creating pnames]] say very clearly:
<pre>pname (required) The name of the pattern being described, but converted to lowercase and with all non-alphanumeric characters and spaces removed.</pre>


:For secondary patterns currently using [[Template:JavaRLE]] I think migrating to an on-wiki solution is definitely sensible though. [[Template:EmbedViewer]] already exists and can be used (and [[Special:WhatLinksHere/Template:EmbedViewer|several pages are already using it]]), even if that template's still got room for improvement.
This has worked fine for us for the great majority of cases, but there are two related cases where blindly following that rule creates not-very-good pnames:


:I do agree that the ZIP file containing all uploaded patterns is valuable and should be kept if at all possible. (Do we have statistics on how often that's downloaded, BTW?) As I said on the forums, generating it from on-wiki RLEs would just be a matter of adjusting the generator script, but someone's got to do it, and unless someone else has shell access to conwaylife.com's hosting, it'd probably have to be Nathaniel (who I understand is busy these days with rather more important matters).
# '''apgcode-based names''', where removing the underscore can sometimes concatenate two strings of digits. For example, according to the rule, [[Xs15_3lkia4z32]] is theoretically supposed to have a pname of "xs153lkia4z32", which reads as if it's a 153-bit still life.  Underscores are confusing in article names because MediaWiki turns right around and renders the name without an underscore. But they do seem to work fine, and they're necessary in other article names, anyway -- raw RLE "pname_synth" synthesis files need them.
# '''patterns named after a Niemiec or pentadecathlon.com ID''', where removing a period causes similar problems with readability.  Examples:
* [[37P7.1]], created by Sokwe in 2009 with a pname of "37p7.1" -- including the period. Another similar case is [http://conwaylife.com/w/index.php?title=37P10.1&diff=13437&oldid=13432 37P10.1], where Sokwe changed the pname from Nathaniel's original "37p101" to "37p10.1", back in 2010.


:(Might be a good time to bring up (again?) an old idea of mine, namely that of a Conway Life Foundation that could take some of the responsibility and workload off of Nathaniel's shoulders. Hey, it's worked for N. J. A. Sloane and the OEIS, and Larry Wall and Perl, and Jimbo Wales and Wikipedia...) [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 21:29, 28 November 2017 (UTC)
* [[38P11.1]], with a pname of "38p111". Periods in filenames are definitely annoying because the part after the period can look like a file extension... but I think "38p11.1" would really be better here.


:: Just a note on the technical side of things -- an equals sign within a template parameter indeed won't cause any problems (as long as the parameters are named, as is the case in the pattern infobox templates). The only problem that might arise is if the RLE has vertical bars | in them, but I don't think there's any reason that should ever happen.
* Several patterns with pnames created by Entity Valkyrie recently: 14p2.1, 14p2.3, 14p2.4, 28p7.3, 28p7.3bumperbouncer, 28p7.3eatingss, 31.4, 33p3.1, 33p3.1bumper, 33p3.1eatingss, 33p3.1reactions, 34P6.1.


:: I agree that RLE data should be separated from the main page data in some way, since it is somehow more important and/or should be more "static". We could keep using pattern files, but that has the not-admin-friendly downside. We could use the RLE namespace, which in my opinion isn't bad (maybe slightly clunky). Perhaps a more elegant alternative would be to use the new [https://www.mediawiki.org/wiki/Extension:Cargo Cargo extension] that has recently been made available for MediaWiki. I've tested it out on another wiki that I run, and it works pretty fantastically (though I'd have to update MediaWiki here to a more recent version before it'd work). It introduces a bit of server overhead, but not *too* much based on my testing with it. What it does is makes data entered into templates query-able across the wiki, so on any page of the wiki we could write code that looks something like <nowiki>{{GetRLE|Glider}}</nowiki>, and it would grab the RLE from the pattern template on the "Glider" page. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 17:42, 1 December 2017 (UTC)
====Capitalization Bad====
The last pname in that list is also nonstandard due to capitalization, but that's a separate problem. The full list of capitalized pnames is 35P12, 53P13, 55P10, 113P18, BF20H, BFx59Hinjector, FMHEB, Gtolwss.rle, L112functions, L156reactions, L156variants, L200, Lightspeedcrawler, P5HWV, P58toadflipper, PT8P, PT9B, PT38P -- again all by Entity Valkyrie, I think. I'll definitely have to go through and fix all of these, just because they're dangerous to cross-platform uses of the pattern collection: "35P12.rle" will overwrite "35p12.rle" on a Windows operating system, but not on Linux. And LifeViewer fails to find "RLE:35P12" when told given "pname = 35p12", because the LifeWiki's filesystem is case-sensitive.  So I think the no-capitalization part of the pname guidelines should continue to be very carefully enforced.


::: The Cargo extension looks interesting, but it's a couple of steps removed from what we can do today.  Maybe what we should do is to keep implementing Infobox patterns using uploaded pattern files or the RLE: namespace, whichever one we have -- but also document how to set up subsidiary patterns in an article using LifeViewer and inline RLE, since that's the only way that non-admin users can add such patterns without admin help.
====Periods Not So Bad====
::: The inline LifeViewer method doesn't require the additional patterns to have their own unique pnames, but the docs should ask for one and give a standard way of recording the pname.
However, given the long precedent for pnames occasionally including periods, I'm not planning to change any of Entity Valkyrie's pnames if a period is the only non-standard part. Should probably do something about "31.4", but the rest seem okay.
::: Whenever we come up with a better method, and hopefully while there's still only a manageable number of LifeViewer-with-inline-RLE patterns, we'd probably want to commit to an admin-led effort to convert all trial-format pages to the new long-term format.
::: That seems like one possible way to keep moving forward in smallish steps, while also avoiding the current problem of confused and mystified potential contributors. Thoughts? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 18:39, 1 December 2017 (UTC)


:::: Sorry for the late reply... I agree with Dvgrn, Cargo looks neat, but I'm not convinced it'll help us here. For making it easier for non-admins to contribute/edit RLE files I still think the best current way to do this is to either:
-- Anyone know where the ".4" comes from in "31.4", by the way?  The problem with calling the thing just plain "Snark catalyst" is that there are several workable Snark catalysts. 31.4 is one of the two most common ones, but it's not exactly "the" Snark catalyst.  But no other common name has caught on. ('''Bellman Zero''', anyone? '''Catalyst B0'''?  '''31.4''' seems better than either of those.)


::::* keep RLE in wiki pages, in the existing RLE namespace or a new one (say "RLE synth"); or
====Summary questions====
::::* use regular on-wiki file uploads for RLE files. I've never tried this, but the File: namespace isn't just for images, so I'm sure it could be made to work.
TL;DR: Does anyone object if I adjust the pname guidelines to say that periods are okay, but "only where necessary", or something along those lines?  And also say that underscores are okay only in apgcode pnames and raw-RLE _synth articles?  Underscores are a minor nightmare, because MediaWiki automatically converts them into spaces, and pnames really aren't supposed to include spaces.  I'm reasonably sure that that underscore-to-space conversion is bound to cause coding difficulties somewhere sometime.  But unless someone wants to recommend consistently using periods in place of underscores in apgcode pnames, I just don't see any good alternative.


:::: [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 22:02, 9 December 2017 (UTC)
Comments, suggestions, disagreements? Please post 'em here! [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 17:56, 15 January 2019 (UTC)
:::::Is it time to make an executive decision about supporting <tt>RLE:pname_synth</tt> or <tt>Synth:pname</tt>, with the infobox template rigged to add a raw-RLE link if that page exists? Either option seems fine to me.
:::::This evening I'm feeling brave enough to start editing the Help: files to tell J. Random User step-by-step how to add patterns for use with LifeViewer.  That means deciding what to say about including/not including RLE header lines, comments, etc. The possibility of adding _synth files this way seems like a minor remaining question mark.
:::::Eventually I think all these added patterns in the RLE: namespace should be automatically vacuumed up somehow and added to the pattern collection -- presumably with some kind of comparison tool to make sure that patterns already in the collection are the same as the versions in the RLE: namespace.  (Will work on building that tool later.) [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 22:04, 21 February 2018 (UTC)


::::::Yes, let's [http://i.pinimg.com/originals/86/76/ad/8676ad94c53937330a085a7d0a9bc13a.jpg Make It So]! And automatically copying on-wiki RLE into the pattern collection? Yes, ''please''.
: Also, not sure if anyone will find this note here, but gmc_nxtman's recent series of synthesis postings made for a good test case for reworking several pages recently updated by AwesoMan3000. It's been different changes for every article, but it tends to take a lot of fiddly adjustments to synchronize the pname, RLE, synthesis RLE, LifeViewer config, and any files already uploaded to the LifeWiki server.


::::::Still not sure whether <tt>RLE:pname_synth</tt> or <tt>Synth:pname</tt> would be the better choice; I'm actually leaning toward the former right now. It'll make the script that little bit less complicated; it fits our existing naming scheme for pattern files, images, etc.; and it won't require a new namespace to be configured. (Of course you can create prefixed pages without a namespace as well, with the prefix just being part of the regular title, but that interacts badly with things like [[Special:RandomPage]]; and moving pages over ''after'' a new namespace has been created... well, there's still at least ghost <tt>RLE:</tt> page lingering in the Main namespace right now that is being shadowed by an <tt>RLE:</tt> namespace counterpart.) So yeah, leaning towards <tt>RLE:pname_synth</tt> right now.
: I've done half a dozen articles for starters:  [[very long snake]], [[trans-block on long hook]], [[integral with tub]], [[eater head siamese eater tail]], [[cis-block on long hook]], and [[aircraft carrier with feather]]. LifeViewer generally Just Works once there's a raw RLE article with the right pname, but the images come out too small by default, so I've been adding viewerconfig '''THUMBSIZE 2'''. This should probably be a default added to the template, with SUPPRESS, except I don't know if that will change the looks of a lot of existing articles).


::::::As for what should be included in RLE snippets, I think ideally it should be this, at least:
: This leaves [[boat with long tail]], [[beehive with nine]], [[broken snake]], [[cis-boat with nine]], [[eater bridge eater]], [[long boat tie ship]], [[long shillelagh]], [[ortho-loaf on table]], [[snake siamese snake]], [[snake with feather]], [[snorkel loop]], [[trans-boat on table]], [[very long shillelagh]], and [[sesquihat]] that still need editing to add the latest syntheses. I could definitely use some help with updating these:
# decide whether the pname should change to match the article name
# new synthesis copied from '''Talk:{name}''' to '''RLE:{pname}_synth''', either updating or replacing any RLE that's currently there
# fix "synthesis = {n}" in infobox
# add to infobox: <pre>viewerconfig    = [[ THUMBSIZE 2 ]]</pre>
# remove Life1.05 and Life1.06 lines (optional)
# double-check that article name matches article text and Catagolue link -- there's often something wrong there
# add '''RLE:{pname}''' if it's not there already, to make LifeViewer show up instead of an old image file


#N Pattern name
: A couple other tasks are admin-only --
#O Discoverer
# If pname has been changed, delete {old pname}*.rle from LifeWiki server to keep things in synch
#C One-line description
# If Life1.05 and Life1.06 lines have been removed, delete corresponding files from server. (I'm leaving the "plaintext" (.cells) links, because I'm hoping to generate those automatically for all sub-64x64 patterns currently on the LifeWiki.)
#C Wiki-page link
# When a good break point is reached, re-run the auto-upload script and collect all the new pattern and synthesis RLE text into a ZIP file for bulk upload.
(actual pattern)


::::::We probably can't reasonably expect random users to adhere to that, always --- but guidelines are good having, and if it's on-wiki it's easy to edit.
: Here again, I'm leaving some broken links to pattern or synth files, which I'm planning to fix fairly soon (by putting the files back in place using the auto-upload script).


::::::The only issue I can see right now is conflicts. Suppose you have an RLE file, and an on-wiki RLE snippet, and they're not the same. How do you tell whether a) the RLE file was uploaded by an admin (and should thus presumably ''not'' be overwritten), and b) the RLE file was generated from an earlier revision of wiki page, and thus ''should'' be overwritten?
: This is the kind of project where I'm very unlikely to get everything exactly right. Independent reviews of all this stuff will be greatly appreciated, and just let me know what I've done wrong so far. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 12:33, 21 January 2019 (UTC)


::::::One way around this would be to put a suffix on the files generated from on-wiki RLE snippets, so that e.g. <tt>RLE:ponyexpress</tt> would become <tt>ponyexpress_wiki.rle</tt>, or some such thing. Conflicts could then be handled by simply ''assuming'' that any file whose name is suffixed <tt>_wiki</tt> was imported from the wiki and is fair game for being overwritten (and if it was not, then the uploading admin only has themselves to blame). But is this ideal?
==Special pages broken?==
I have noticed several oddities in a few of the maintenance pages:
* [[Special:BrokenRedirects|Broken redirects]] claims there is an existing page named [[RLE:lobster]] that redirects to a non-existent page named [[RLE:83p7h1v1]], when the opposite is actually true.
* [[RLE:Loafer]] is listed in various places (such as [[Special:ShortPages|Short pages]]) despite being in the wrong namespace.
* [[ConwayLife.com:About]] is listed as in [[Special:DoubleRedirects|Double redirects]] despite not having any redirects.
* [[Special:FewestRevisions|Pages with the fewest revisions]] isn't even close to being correct.
* [[Special:UncategorizedPages|Uncategorized pages]] is quite incomplete; I noticed the articles [[Ruler]] and [[Alternating rule]] were not listed even before I added categories to them, and these are almost certainly not the only examples.


::::::Flagging files externally would also be possible, but the flags should be visible on the mod panel in some way, and they should reset if a file is manually uploaded there.
Anyone know what's up with these? [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 23:35, 15 January 2019 (UTC)


::::::Alternatively we could declare this to be a non-issue and say "the wiki takes precedence, period". This would be the way to go if we want to deprecate the mod panel in the long term. If we did this, of course, we (and by "we" I mean you, heh) should audit the uploaded RLE snippets we've got to make sure we'd not be overwriting any existing RLE files with inferior content. (Comparing conflicting files to see which ones are actually different could also be done programmatically, of course.)
==Rulespace info for eaters, reflectors, conduits, etc.==
So lately I've been busy adding isorule parameters to the infoboxes for various patterns. So far I've stuck with oscillators, spaceships, still lifes, and infinite growth patterns, but I'd also like to expand this to other pattern such as conduits which are a bit more ambiguous. For example, the [[sidesnagger]] works in B/S23, but obviously there are no gliders for it to eat. I'm of the opinion that for these patterns we should show the rules they're actually ''useful'' in, since that's what makes them notable in the first place, (though with the possible exception of [[eater 1]] since it's such a small pattern) but I'd like to hear others' thoughts on this. [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 18:57, 19 January 2019 (UTC)


::::::But that's enough rambling from me! [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 09:08, 22 February 2018 (UTC)
: My main thought is that all but the very simplest and lowest-step-size conduits are very close to rule-specific -- useful only in B3/S23. Adding a B8 or an S8 might be one of the few isotropic bits where some conduits would survive the rule switch (?). Even if a particular conduit works in another rule, it's only interesting if a large enough group of conduits works in the alternate rule to make it computationally universal.  (That would probably make it construction-universal, too, but only after someone re-did all the single-channel search work to produce new recipe libraries.)
:::::::Sounds good -- RLE:pname_synth it is, then.  I'll see if I can dig up a sample or two to add on-wiki, with a suitably modified header:


#N pname_synth
: Anyway, from my point of view the reason why B38/S23 or B3/S238 doesn't get a lot of attention is that there's nothing really new and exciting about those rules to make up for the fact that the rule spec is just that little bit more complicated... pun maybe intended. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 02:04, 20 January 2019 (UTC)
#O Discoverer, optional date (?)
#C Description -- can be one or multiple lines
#C Wiki-page link
#C http://www.conwaylife.com/patterns/{pname_synth}.rle
{actual pattern}
#C LifeViewer config


:::::::I like having the date, if it can be collected, but there's never been a really good place to put it.  It sort of ought to have its own tag, like #D {date}, but #D traditionally meant something else in old Life32 files, and it's a little awkward having it take up its own line anyway, so I usually just put it in the description.
==[[apgsearch]] and [[Catagolue]]==
:::::::It's also nice to have the direct link to the actual pattern file, when that exists.  That might cause headaches because it '''won't''' exist until the hypothetical periodic upload happens, and then it will exist. So probably both the wiki-page link line and the pattern link line really ought to be added programmatically, to signal that the upload has happened.  I think I have the tools to do that, but it's a bit ugly -- will experiment and (eventually) report back.
Would anyone be opposed to a reorganization of the information on these two articles? I noticed that a lot of the information in the Catagolue article really applies more to apgsearch rather than the site itself, and therefore might be worth moving. Such a change would be particularly easy to revert if need be, but I'd rather not go through the effort if that's the case, so I'd also like some feedback about that. [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 23:32, 19 January 2019 (UTC)
:::::::Another awkwardness is the question of whether or not to include a LifeViewer config line, when ''that'' exists, in the uploaded RLE pattern.  This is looking forward a little, but I'd like to programmatically grab that and throw it in also.  Mostly this is because lifeviewer.lua is a thing, and it may eventually allow LifeViewer-like displays in Golly if the config line has been carried over.  Just tried it on-wiki and it's a bad idea to have it in the RLE: namespace due to conflict error messages.
:::::::Next question:  we have [http://conwaylife.com/wiki/Category:Pages_with_raw_RLE_code_but_no_uploaded_pattern_files Category:Pages_with_raw_RLE_code_but_no_uploaded_pattern_files] and [http://conwaylife.com/wiki/Category:Patterns_with_RLE_snippets_but_no_LifeViewer_configuration Category:Patterns_with_RLE_snippets_but_no_LifeViewer_configuration], but that only applies to articles with an associated primary pattern, not articles with one or more subsidiary LifeViewer illustrations. What's the best way to get a link list for everything in the RLE: namespace? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 11:46, 22 February 2018 (UTC)


::::::::Looks good! I just realized that due to MediaWiki's underscore conversion, <tt>RLE:${pname}_synth</tt> will become (i.e. look like <tt>RLE:${pname} synth</tt>). I don't know what title MediaWiki saves the page under internally, so it may be a good idea to code conservatively and convert spaces to underscores.
: No opposition here. I wouldn't think anyone would be likely to revert changes to those articles, just the usual quick review to see if the changes happen to serve as a reminder of anything else that should be added. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 02:04, 20 January 2019 (UTC)


::::::::Re: dates: what does <tt>#D</tt> traditionally mean, then? BTW, we might be able to use <tt>#T</tt> (for "timestamp") or so instead.
== Pattern collections ==


::::::::LifeViewer-config embedded in the RLE file itself, that's certainly doable; if this is done we may eventually want to remove the relevant infobox parameter, it shouldn't be needed anymore then. (The "default configs" could then also go, in a second step.)
I just thought to check the LifeWiki pattern collection for outdated links to Mark's database.  There were 165 RLE files with dead links in the comments.  I fixed two of them, one by creating an RLE:{pname}_synth page and one by editing the pattern comments and deleting and re-uploading the file by hand... and then thought, "Nope.  There has to be a better way."


::::::::Re: pattern file links not being "live" until files are uploaded: as you say, this should be fine if those links are added (and the files uploaded) programmatically. Perhaps the script could also update the on-wiki pattern file?
Now I'm just doing a search-and-replace, "http://www.conwaylife.com/ref/mniemiec" instead of "http://home.interserv.com/~mniemiec/", and will ask Nathaniel to re-upload all those files to the server along with the output of the auto-upload script.


::::::::Getting a list of all <tt>RLE:</tt> pages -- you can do that on-wiki using [[Special:AllPages]], specifically [[Special:AllPages/RLE:]] ([http://conwaylife.com/w/index.php?title=Special%3AAllPages&from=&to=&namespace=3792 here's a better link]). From a script, you're probably better off using the [https://www.mediawiki.org/wiki/API:Main_page MediaWiki API]. I've no experience with this, but the [https://www.mediawiki.org/wiki/API:Allpages <tt>allpages</tt> query] looks promising (you can pass a parameter indicating which namespace you're interested in).
Of course, if these _synth files were created when that website was available, a lot of the actual syntheses might be out of date as well. A dynamic endpoint somewhere for reporting the actual latest synthesis for each object would certainly be a step up from the current perpetually out-of-date synthesis files.
... What does #D mean?  You'll be sorry you asked.  Summary [http://cranemtn.com/life/blog/RLEFormat.htm here].
Xlife tag -- #D x,y:  coordinate differences from
the previous point, separated by newlines
Life 1.05 format -- comment, instead of "#C".
"D" stands for "description".
Life32 format -- initial tag in every saved pattern,
containing an ugly hexadecimal checksum.


Hmm, we start with putting standardized comments in the RLE, and now maybe just move the LifeViewer config line there too?  I almost wouldn't mind thatIhe viewerconfig is generally a lot bigger and uglier than any of the other infobox parameters.
-- On the other hand, there are big advantages to Mark's comprehensive collections of practically every historically known way of constructing each objectSometimes you might want a synthesis with a suboptimal number of gliders but better clearance than usual, or might want an incremental construction starting from one half of the still life, or whatever.  Reporting just a single current-best synthesis would lose a lot of that useful information. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 22:25, 24 January 2019 (UTC)


My first thought was that it was a bad idea, because if we wanted to use the same pattern in a different article with a different LifeViewer animation (highlighting a different reaction, or whatever) then we'd have to duplicate the RLE, name it something different, and add a different config line.
: The problem of deciding what to do about glider syntheses is still where it was in January. I'm still leaning toward leaving things pretty much as they are until Mark Niemiec's new synthesis database becomes available, and then figuring out how to link directly to the relevant Niemiec synthesis page, for any object that has a LifeWiki article -- and removing those _synth files from the Patterns folder.  Most of the Niemiec-derived _synth files that have been uploaded will probably be subtly out of date when the new version comes out. Anyone have any better ideas?


But considering how often pattern re-use has actually happened so far -- approximately never (?) -- I don't think a tiny amount of duplication would be a problem if the case did eventually arise. Should I be brave and start moving config lines into RLE, or is this a good time to hunt for third opinions?
: In other news, [[User:Dvgrn/Plaintext_files]] documents the 695 new plaintext-format .cells files that are available on the server now. This means that a lot of articles' infoboxes could now be updated to say '''|plaintext        = true''' along with '''|rle              = true'''. If nobody wants to tackle making these several hundred edits manually, I might eventually look into setting up some kind of automated search-and-replace functionality, based on this kind of article list. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 22:45, 17 February 2019 (UTC)


On the #T timestamp idea -- I wouldn't mind that too much, but unless the discovery date is going to be filled out really reliably with a #T tag, I don't entirely see why we need a new #T convention. We could equally well say that the new #O convention is #O {discoverername}[, {discoverydate}]. I'm happier when there are fewer half-empty mandated comment lines; the date fits perfectly well on the same line with the discoverer.
:: I noticed once again that there are quite a few patterns with capitalization in their names, most of which ([http://www.conwaylife.com/w/index.php?title=RLE:P52G3to4&action=history with a few exceptions]) were created by [[User:Entity Valkyrie]]. Even [[RLE:ModelD]] is still in that list despite having been deleted and moved over a week ago, so those should probably be fixed. Something more confusing, though, is that certain small patterns (such as [[44P14]] and [[44P12.3]]) were labeled as being too large despite easily fitting within the 64&times;100 limit. What's up with that?


-- Yeah, there are some possible parsing problems with commas if there are multiple discoverers, which could probably only be solved by standardizing the date format. But again, is anyone really ever going to be expecting to find a discovery date reliably with a comment-line parsing script?
:: As for adding these to the infoboxes, I'll probably get to that eventually but I'm a bit too busy at the moment. [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 23:14, 17 February 2019 (UTC)


Thanks for the pointer to "All pages"The amount of wikistuff I don't know still greatly outnumbers the amount I do know. I see the redirects are helpfully italicized. Um... "RLE:Merzenichsp644blockshassling2beehivesand2rpentominos"? What exactly is that doing in there? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 18:09, 23 February 2018 (UTC)
::: Many thanks for the review.  I believe I've patched all the remaining instances of pnames with capital letters: 68p16.cells/.rle, 76p8.cells/.rle, 113p18.cells/.rle, 209p8.cells/.rle, p130shuttle2.cells/.rle, l156reactions.rle, p24lwss.rle, and p52g3to4.rleObviously in the future the auto-upload script should check for capital letters and complain.


:Ah, so the answer re: <tt>#D</tt> is "it's complicated". Gotcha. ;) And OK, let's just extend what <tt>#O</tt> covers, that's probably the most sensible approach.
::: I haven't yet looked into why a few small patterns didn't get .cells files created properly. Will figure it out and fix that bug along with adding the capitalization check. That one isn't too worrisome -- anything that got missed in the first round we should be able to pick up on the next auto-upload. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 19:54, 18 February 2019 (UTC)


:Re: LifeViewer config -- yes, it seems we're not actually reusing patterns in different places, so moving the viewerconfig into the pattern seems sensible.
:::: The missing small files that were flagged as "too big" seem to have been mostly due to patterns with no header lines in the RLE namespace. I think I've fixed all of those now.  A few such files managed to get themselves uploaded to the LifeWiki server, but the auto-upload script now reports those when it sees them, so I think those are all cleaned up now also.


:FWIW, what we're currently lacking is a mechanism for "prioritizing" LifeViewer config parameters. Having a mechanism to assign different priorities to different <tt>#C [<nowiki />[ ... ]]</tt> lines would open up a variety of use cases. Imagine the pattern looks like this:
:::: As before, if anyone wants to add "plaintext = true" to the many articles where that's missing, please go right ahead.  The latest auto-upload script report has been added to [[User:Dvgrn/Plaintext files]], so the dump of newly added .cells files there can be used as a checklist.  There's also the option of adding plaintext file links to embedded viewers as appropriate. I did a couple of samples, e.g., [[68P9]] -- it's pretty easy.  It should always be just a matter of adding this to the caption:
<pre>[http://www.conwaylife.com/patterns/{pname}.rle RLE format]
[http://www.conwaylife.com/patterns/{pname}.cells Plaintext format]<br /></pre>
:::: Maybe this is something that should be done with a template, to make things even easier?


#N Amazingpattern
:::: The script now also checks for pnames with uppercase letters and complains about that. I don't think there are any of those at the moment. If anyone sees other problems or oddities that the auto-upload script should be catching but isn't, or if there are any other surveys or reports that it should do while it's running through all the articles anyway, please make suggestions here. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 15:09, 27 March 2019 (UTC)
#O Cathy Sue Lifeenthusiast, November 2017
#C https://conwaylife.com/wiki/Amazingpattern
#C [<nowiki />[ TRACKLOOP 30 -1/10 -1/10 GPS 15 ]]
x = 48, y = 52, rule = B3/S23
...


:Now imagine that we want to use this pattern somewhere, with a different viewerconfig, and that we could simply say:
::::: I just modified [[Template:EmbedViewer]] to link to the RLE and Plaintext automatically. The biggest problem with this, of course, is the larger patterns don't have a plaintext file. I'm not sure how to elegantly deal with this, unless there's a way to make it read the RLE header and find the pattern size or something. [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 19:55, 27 March 2019 (UTC)


{<nowiki />{EmbedViewer
== Help Wanted with templates and general review ==
|pname        = amazingpattern
|viewerconfig = #C [<nowiki />[ PRIORITY 1 GPS 1 ]]
|caption      = Cathy Sue's Amazing Pattern in slow-motion
}<nowiki />}


:And the explicit viewerconfig would (partially) override the embedded one, by virtue of having a higher <tt>PRIORITY</tt> (the default if none was specified would be 0).
Here are three problems that I'd like to fix. I could probably track down the necessary template changes myself, eventually, but I'd like to have expert advice if I can get it.  Both of these items have been sorta kinda mentioned on the Tiki Bar before, fairly recently:


:Further imagine that there was a default viewerconfig that said e.g.
1. I think '''THUMBSIZE 2''' should be the default for all infobox LifeViewers.  I keep adding '''#C [​[ THUMBSIZE 2 ]]''' to get infobox pattern frames back to the right size.  There seem to be hundreds of these '''THUMBSIZE 2''' specifications by now, but looking through a bunch of new aircraft-carrier-themed still lifes that AwesoMan3000 added recently (see links a few paragraphs up)... those all need the same addition done to them, and there are dozens or hundreds more existing articles that still have the same problem. The [http://lazyslug.no-ip.biz/lifeview/plugin/suppress.html '''SUPPRESS''' command] should follow '''THUMBSIZE 2''', so that the relatively few viewerconfigs that specify '''THUMBSIZE 3''' won't start throwing errors after the change is made.


  #C [<nowiki />[ PRIORITY -1 THUMBLAUNCH THUMBSIZE 2 GRID GRIDMAJOR 0 THEME 6 ]]
2. As of this morning, Nathaniel has officially removed the Life 1.05 and Life 1.06 patterns from the LifeWiki patterns directory. That means the infobox template probably ought to be adjusted to stop showing those links.  We could remove "'''|life105 = true // |life106 = true'''" from all the articles that have those infobox parameters instead, but only if someone wants to get a leg up on entry into the 10,000 Club.


:...thus setting a number of sensible defaults at a lower priority, allowing any viewerconfig embedded in the pattern file or passed explicitely to a template to override it.
The Life 1.0x patterns are still on the server, but [http://conwaylife.com/patterns/lif_pattern_backup.zip hidden in a ZIP file]. It seems to me that going forward, the way to make patterns available in non-standard non-RLE formats will be to publish conversion scripts that work on the contents of all.zip.


:Wouldn't that be neat? Perhaps Chris Rowett could be persuaded to add something along these lines. (Right now, IIRC, LifeViewer throws the towel in the face of conflicting configuration commands.)
Anyway, there are some places in the infobox template documentation and other docs that mention Life 1.0x, which I can track down and fix eventually if no one else gets to it first.


:Finally, re: [[RLE:Merzenichsp644blockshassling2beehivesand2rpentominos]] -- that's apparently a redirect left over from when I moved a page from a previous improper name. I'll delete that, we don't need the redirect.
3. Let's get rid of that dependency where you have to have '''rle = true''' or '''nofile = true''' before LifeViewer will show up -- as per [http://www.conwaylife.com/forums/viewtopic.php?f=4&t=2298&p=68135#p68135 Nathaniel's recent advice]. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 15:51, 25 January 2019 (UTC)


:'''EDIT''': I've also deleted all other redirects in the <tt>RLE:</tt> namespace; none was necessary, and none had any pages linking to it (except for [[RLE:Lightweight spaceship]], which was linked to as an example of ''not'' to name RLE: namespace pages). [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 10:45, 24 February 2018 (UTC)
: Okay, Nathaniel has done a bulk upload of 387 RLE files, collected by the auto-upload script for every article in the main namespace that referenced a pname and had RLE:{pname} and/or RLE:{pname}_synth articles in the RLE: namespace. That means that as of today, there should no longer be any broken RLE pattern download links (the ones that show up when you say '''rle = true''' in the infobox).


:: After looking at the ugliness of competing viewerconfig lines, I was thinking somewhat along the same lines. Another option that would allow many of the same use cases would be a simple command to allow later configs to override earlier ones:
: There shouldn't be a lot of broken '''synthesisRLE = true''' links, either, but those might happen if somebody set that flag to true but then didn't create the RLE:{pname}_synth article.


::viewerconfig = #C [<nowiki />[ OVERRIDE GPS 1 THEME 3 ]]
: I'd suggest that people shouldn't go too wild uploading new glider syntheses, until the next version of Mark Niemiec's database comes out -- and maybe not even then. It would be nice to come up with direct dynamic links to synthesis patterns on Catagolue and/or in Mark's database, so that we don't always have slightly antiquated information copied from those places and uploaded to the LifeWiki pattern collection, where they're kind of hard to keep up to date.


:: However, at the moment all such use cases require quite a bit of imagination -- we don't need to do any such thing with any current patterns, and there's a perfectly good workaround that involves adding RLE:cathysueamazingpatterninslowmotion.  And since I'd much rather Chris worked on some waypoint and point-of-interest stuff, and/or support for Larger than Life which is also in the works, maybe I'll just leave this note here and see if he notices it --!  [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 13:06, 24 February 2018 (UTC)
: I guess the next item to tackle is automatic generation of the '''plaintext = true''' .cells files for every article about a pattern that's 64x64 or smaller (let's arbitrarily say). Does anyone have suggestions for other checks and auto-updates that the uploader script might be able to accomplish? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 04:25, 27 January 2019 (UTC)


:::That works, too -- though an explicit <tt>OVERRIDE</tt> tag would have the disadvantage that you'd explicitely have to spell it out. Say we've got a default viewerconfig for oscillators that should be overridden by more specific viewerconfigs in individual RLE files; then all these files would have to use the <tt>OVERRIDE</tt> tag. And if you then wanted to use the same pattern in several places, and tweak its viewerconfig further, as in the "slow-motion" example above, you'd have to <tt>OVERRIDE</tt> the embedded viewerconfig as well.
:: @Ian07: Wow, that was a lot of fast Life 1.0x cleanup work. Thank you! I'll see if I can get a bulk upload done for .cells format soon, for all sufficiently small patterns (which is most of them). Then the LifeWiki will suddenly be following a standard policy on pattern formats, fairly universally across all articles. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 20:49, 28 January 2019 (UTC)


:::Worse, it's not immediately obvious to me what the result would be in the face of conflicting <tt>OVERRIDE</tt>s. Say, the three viewerconfigs (default, embedded-in-RLE, and explicitely-passed) amount to something like the following:
: I've just added THUMBSIZE 2 as a [[Template:LifeViewer config/default|default option for the viewers]] to save myself some trouble. As for item #3 in your list, the solution probably in [[Template:InfoboxStart]] though I'd rather leave that to someone more experienced with templates. [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 22:12, 13 February 2019 (UTC)


#C [<nowiki />[ GPS 4 ]]
:: Things are starting to look pretty good for plaintext support on LifeWiki. The latest auto-upload report is [[User:Dvgrn/Plaintext_files|here]]. There are still a few weird exceptions getting reported, but for the most part I can happily ignore them now.
#C [<nowiki />[ OVERRIDE GPS 30 ]]
  #C [<nowiki />[ OVERRIDE GPS 1 ]]


:::would the final <tt>GPS</tt> be 30 or 1? I'm tempted to say "1" -- but one ''could'' disagree. And besides, if it is 1, we'd be back to square one; the final result would depend on the order of the lines again, and all we'd have done is a "please don't ignore this line" tag. (<tt>PLEASE ABSTAIN FROM IGNORING</tt>... the INTERCAL version of LifeViewer?) At that point we might as well do away with the tag again and say "later values overwrite earlier ones, so the last value takes precedence".
:: I'm vaguely considering making some custom plaintext files for special-case patterns like the bumpers and bouncers, where there are extra gliders added for animation purposes that happen to increase the bounding box beyond the 64x100 limit. It seems reasonable to upload plaintext versions without the extra gliders for those cases.


:::But yes, let's leave it for Chris. As you say, we can just upload different version of the same pattern ''if'' this ever becomes an issue in practice. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 09:21, 25 February 2018 (UTC)
:: That will give me an excuse to go through the report and make sure there aren't any other odd cases where patterns are mysteriously getting missed, even though they should be small enough for a plaintext version.  I think that's not a problem any more, but I haven't triple-checked. If anyone sees leftover stuff that the auto-upload script still isn't handling correctly, please let me know. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 23:17, 2 April 2019 (UTC)
::::"'''later values overwrite earlier ones'''" is how LifeViewer works today. It just throws errors to tell you that's what happened. If you wrote:


#C [<nowiki />[ GPS 4 ]]
::: I skimmed through the list, and the only problem I found was that [http://www.conwaylife.com/patterns/switchenginechannel.cells switchenginechannel.cells] didn't seem to get generated despite being smaller than the 64x100 limit, even though it has shown up in all of the "Cells files created" sections in [[User:Dvgrn/Plaintext files]]. Other than that, there doesn't seem to be any errors on the computer's part. I saw a few small patterns in the "No plaintext param in infobox" section, but that appears to be due to my own error, so I'll double-check that whenever I get the chance. [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 23:33, 2 April 2019 (UTC)
#C [<nowiki />[ GPS 30 ]]
#C [<nowiki />[ GPS 1 ]]


::::LifeViewer would say:
:::: Huh, that's an odd one. There were a couple of nonstandard things about the uploaded RLE, so I replaced it with a more standard version.  Will re-run the script at some point and see if I get a .cells file out, and one way or another that should help me track down the bug -- can't see why the code has been skipping that pattern, but the script is getting embarrassingly messy so there could be all kinds of subtle errors hiding in there. Thanks for the review! [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 02:33, 3 April 2019 (UTC)


Script errors
== Replacing images with animated viewers ==
GPS 30 overwrites 4
GPS 1 overwrites 30


::::and set GPS to 1.
I just started on a project to add more animated viewers in place of static images on the wiki. However, I've already started running into some problems, particularly with the [[pushalong]]s in the [[114P6H1V0]] article. I already created an [[RLE:114p6h1v0pushalong]], but I'm not sure how exactly the comments in the '''RLE:pname''' page get translated to the actual files, especially since files like [http://www.conwaylife.com/patterns/block.rle <tt>block.rle</tt>] have comments that aren't in the RLE namespace. I'm worried that I'll unintentionally remove said information from the wiki's pattern collection if I'm not careful.


::::Two level config makes sense to me: a baseline (level 1 config) which is the default style for LifeViewer in the Wiki, and then specific extras (level 2) per pattern or class of pattern. In this case you do want "later values overwrite earlier ones" but to be able to suppress the error message the ''first time'' a later script command overwrites something defined in the baseline. The reason for ''first time'' is I'd still want to know if there are multiple definitions of the same parameter in the level 2 script since this is likely an error.
I'm thinking it might be better for now to just focus on the infobox images and not worry about the rest of the article, especially considering the images in the article have colors and arrows and other things which might be lost with an animated viewer. I'd be perfectly fine with [[RLE:114p6h1v0pushalong]] being deleted for the time being so it doesn't replace [http://www.conwaylife.com/patterns/114p6h1v0pushalong.rle <tt>114p6h1v0pushalong.rle</tt>] in the next bulk upload.
::::This suppression could be as simple as a new script command added at the end of the level 1 config.  


#C [<nowiki />[ THUMBLAUNCH THUMBSIZE 2 GRID GRIDMAJOR 0 THEME 6 SUPPRESS ]]
Even then, though, as with the [[Block]] example above, there's still comments in the original files that may or may not be overwritten since I don't know how bulk uploads work. I'd basically just like to know what precautions to take to make sure I don't break anything with this project before I proceed. [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 16:06, 2 February 2019 (UTC)


::::For three level config I'm not clear on how this would work. Are the config levels strictly hierarchical? [[User:Rowett|Chris Rowett]] ([[User talk:Rowett|talk]]) 07:51, 26 February 2018 (UTC)
: All good questions.  The main answer is that the auto-upload script is designed so that it never overwrites any files that are already on the LifeWiki server, so you don't have to worry about overwriting anything.  Comments in block.rle are safe, and the addition of [[RLE:114p6h1v0pushalong]] won't damage the existing uploaded file on the server.


:::::I'll prefix this by saying I don't know exactly how LifeViewer parses its configuration lines -- is it line-based, or are all the lines treated as one continuous stream of config commands internally?
: Now, if we deleted 114p6h1v0pushalong.rle from the server, and added these two comment lines at the top of [[RLE:114p6h1v0pushalong]] --


:::::I've been assuming the former, and on that assumption my initial idea was that config lines like the following:
<pre>#O Hartmut Holzwart
#C A pushalong for the c/6 orthogonal period 6 spaceship 114P6H1V0.</pre>


  #C [<nowiki />[ LOOP 60 GPS 30 ]]
: - then the auto-upload script would regenerate a fairly close copy of the file that we deleted. The #N line would be a little different since the default is now {pname}.rle, and the script produces two URL lines instead of just one: a link to the article followed by a direct link to the (future location of the) file itself on the LifeWiki server.
#C [<nowiki />[ THEME 6 THUMBLAUNCH THUMBBSIZE 2 GPS 3 PRIORITY -1 ]]
  #C [<nowiki />[ GPS 1 PRIORITY 1 ]]


:::::would be parsed into a data structure like the following:
: So far I've always looked through the RLE files produced by the script, and hand-edited anything that didn't come out quite right -- order of comment lines, etc.  That's probably a tradition that I'll continue, so that's another line of defense against accidental damage.  With any luck the next run won't be quite so much work, as long as no one goes back to uploading new headerless RLE or other nonstandard stuff that the script doesn't know how to clean up.


$VAR1 = {
: See also [[User_talk:AwesoMan3000#Standardization_of_comment_lines]] for a summary of what should, or could, still be included in comment lines, versus what is auto-generated.  Maybe after that summary gets a good trial run, I can migrate it into the actual documentation.  It will be strange and wonderful for a new LifeWiki editor to actually have a reasonable way to learn how to add new articles with associated LifeViewer-displayed patterns... the docs have been partly stuck in 2009 ever since, well, 2009 I suppose! [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 04:07, 3 February 2019 (UTC)
          'GPS' => {
                      '-1' => 3,
                      '0' => 30,
                      '1' => 1
                    },
          'LOOP' => {
                      '0' => 60
                    },
          'THEME' => {
                        '-1' => 6
                      },
          'THUMBLAUNCH' => {
                              '-1' => 'true'
                            },
          'THUMBSIZE' => {
                            '-1' => 2
                          }
        };


:::::...which would, in a second step, be tranformed by eliminating the middle layer:
:: One more detail that isn't clear from the above:


$VAR1 = {
:: The auto-upload script will automatically generate a slightly nonstandard #O line including both the discoverer and the discoveryear from the infobox -- like
          'GPS' => 1,
          'LOOP' => 60,
          'THEME' => 6,
          'THUMBLAUNCH' => 'true',
          'THUMBSIZE' => 2
        };


:::::...thus producing the final configuration to use. Of course, this rests on the assumption that the specified <tt>PRIORITY</tt> would apply to the entire line, rather than just one parameter.
<pre>#O Paul Tooke, 2008</pre>


:::::If LifeViewer ''does'' treat all config commands as one continuous stream internally and if you don't want to change that, then yes, it may actually be enough for our purposes here to have a flag to suppress (certain) errors. We'd then just take care to assemble the various config lines in the right order in the templates, subsequent parameter values would overwrite earlier ones, and thanks to the flag, there'd not be any complaints that we had two <tt>GPS</tt> specifications, say.
:: for the 114p6h1v0 article.  But that only works for patterns that have infoboxes. Other patterns may also have pnames, but only show up in embedded viewers in some other article. In those cases the script can't be sure that the discoverer or discoveryear will be correct, so it will just leave that optional line out.


:::::I think the flag could suppress all errors (relating to config values being overwritten, anyway), too. After all, it would only come into effect if explicitely specified -- caveat emptor. Also, it shouldn't suppress ''all'' errors, and LifeViewer could still collect these messages and display them on request, so long as it didn't present them as script errors by default. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:25, 26 February 2018 (UTC)
:: Theoretically we could invent some standard way to include attributes in an embedded viewer template to convey that information. But since those attributes aren't actually used by LifeViewer it seems just as easy to make a habit of adding a comment line to the RLE.


::::::LifeViewer treats all config commands as one continuous stream and as such line breaks have no special meaning. You could still have commands that define priority or error suppression in that stream. Examples of this are the Waypoint commands [<nowiki />[ T ]] and [<nowiki />[ PAUSE ]], and the [<nowiki />[ POI ]] command. These commands signify the start of a new Waypoint or POI and the following commands define that Waypoint or POI, until another Waypoint or POI command is hit. For example:
:: For example, adding "#O Hartmut Holzwart, May 2009" to [[RLE:114p6h1v0pushalong]] would convey slightly more information (month as well as year) than the auto-upload script manages to collect for main-article patterns. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 04:19, 3 February 2019 (UTC)
{{EmbedViewer
|rle = x = 28, y = 5, rule = B3/S23
o2bo2b4o2bo5bo6b2o$o2bo2bo5bo5bo5bo2bo$4o2b3o3bo5bo5bo2bo$o2bo2bo5bo5bo5bo2bo$o2bo2b4o2b4o2b4o3b2o!
|viewerconfig = #C [[ PAUSE 2 X 0 Y -10 ZOOM 6 T 100 X -100 Y -30 ZOOM 2 T 200 X 0 Y 5 ZOOM 8 LOOP 400 AUTOSTART ]]
|caption      = [[Waypoints example]]
}}
#C [<nowiki />[ X 0 Y -10 ZOOM 6 T 100 X -100 Y -20 ZOOM 2 T 200 X 0 Y 5 ZOOM 8 ]]


::::::Means start the camera at x = 0, y = -10 with zoom 6. By generation 100 get the camera to x = -100, y = -20 at zoom 2. Then by generation 200 get the camera to x = 0, y = 5 at zoom 8.
::: Just looked over the first batch of patterns added to the RLE namespace for the convert-static-images-to-LifeViewer project. Everything looks pretty workable. I think I'll adjust the auto-upload script to skip the generation of an #O line if there's one in the RLE already. Usually what's in the RLE will be a more specific date than what the script can produce from the discoveryear parameter.


::::::This could also have been written for clarity as:
::: Maybe I should change the script to find the "name" parameter if there is one, and use that instead of '''{pname}.rle''' in the #N line?  It's kind of weird having ".rle" as part of the defined name.  The problem is, there isn't a '''name=''' line in embedded viewers, but there is a '''pname=''' line, and I wanted some information in that first line that could be collected consistently. (?)


#C [<nowiki />[ X 0 Y -10 ZOOM 6 ]]           initial camera position
::: The only other thing I noticed offhand is that a few RLE files ended up getting comment lines with links: for example, [[RLE:151p3h1v0]] has
#C [<nowiki />[ T 100 X -100 Y -20 ZOOM 2 ]]  first waypoint
#C [<nowiki />[ T 200 X 0 Y 5 ZOOM 8 ]]      second waypoint


::::::But to LifeViewer the two are identical.
<pre>#C http://www.conwaylife.com/wiki/index.php?title=233P3H1V0</pre>


::::::So in the same way a PRIOIRTY or SUPPRESS keyword could apply to all following commands or all previous commands. My intention with SUPPRESS was that it would only suppress "overwrite" errors and not all errors. [[User:Rowett|Chris Rowett]] ([[User talk:Rowett|talk]]) 12:05, 26 February 2018 (UTC)
::: There's a shorter form that works just as well:
:::::::I certainly wouldn't object to a SUPPRESS keyword -- it's simple, and simple is good (and easier to test, too).
:::::::On the other hand, in some sense its function is to hide problems that maybe don't need to be hidden.  ''If'' we can just make a decision and stick to it, about viewerconfig lines belonging at the bottom of the RLE:{pname} pages and nowhere else, then there's really not much potential for conflicts that need to be SUPPRESSed.
:::::::Theoretically I like the idea of abstracting out some general LifeViewer settings that deal with an overall LifeWiki "look and feel", putting them in say the Pattern template, and then being able to change those settings in one place and have it change immediately everywhere.  If we want that functionality, then I guess it would be good to have at least the SUPPRESS keyword, to allow for overriding those defaults without seeing errors.
:::::::In practice, though, what settings could we possibly set at the general level and then alter later, that wouldn't break a whole bunch of carefully configured LifeViewer instances?
:::::::We're currently adding "#C [<nowiki />[ THEME 6 GRID GRIDMAJOR 0 THUMBLAUNCH AUTOSTART ]]", right?  Can someone remind me where exactly that's coming from again?  After finding it in the copied text for Glider, Blinker, etc., I just looked through the Spaceship and Oscillator and Pattern templates, and did searches on "THEME" and "GRID GRIDMAJOR" and "THUMBLAUNCH AUTOSTART".
:::::::Couldn't find the source of that appended viewerconfig line anywhere.  But I did find that all these settings, including THEME, are in fact mentioned specifically in viewerconfigs here and there.  In [[Tanner's p46]], for example, the THEME 6 GRID GRIDMAJOR 0 THUMBLAUNCH AUTOSTART is supplied automatically in the infobox, but has to be explicitly included in the glider-gun illustration in the article.  How should that illustration _really_ be done -- is there a more standard way? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 19:18, 26 February 2018 (UTC)


Chris -- thanks for the clarification re: linebreaks (not) having a special meaning!
<pre>http://www.conwaylife.com/wiki/233P3H1V0</pre>


Dave -- these days, all pattern templates transclude [[Template:InfoboxStart]], passing the <tt>defaultconfig=</tt> parameter; that template then handles all the boilerplate code to open a pattern infobox, including the embedded viewer. The default LifeViewer configuration is loaded from <tt>Template:LifeViewer config/${defaultconfig}</tt>, assuming that exists. You can find a list of current default configurations [http://conwaylife.com/w/index.php?title=Special%3APrefixIndex&prefix=LifeViewer+config%2F&namespace=10 here], by way of [[Special:PrefixIndex]] (another handy [[Special:SpecialPages|special page]] to know about).
::: But really I don't think there's any need to add article or pattern links to the RLE namespace. They'll get generated and added automatically by the auto-upload script. If you're actually looking at an RLE file in the RLE namespace, and wondering which article it goes with, then it's pretty quick to click the "What links here" link in the sidebar to find that out, instead of copying and pasting part of a comment line.


How were these default configurations decided? Truth to be told, I think we simply put whatever seemed like a good idea at the time into them, the goal being (again) to cut down on boilerplate and not having to specify, say, a theme for every pattern but getting something nice and good-looking by default.
::: Based on experience so far, does there seem to be anything else that really ought to be adjusted for this whole conversion / auto-upload process? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 22:54, 3 February 2019 (UTC)


The whole mechanism could be reworked as necessary, of course. We can change these default viewer config as desired, and we can also remove them altogether and instead stipulate that all uploaded RLE snippets should include their own, including all theming.
::: Oh, one more minor thing:  looking at LifeWiki articles with lots of LifeViewers on them, I'm starting to think that there might be such a thing as too much animation sometimes. If the infobox has an animated spaceship or oscillator in it, it might make sense to leave out AUTOSTART on (some?) embedded viewers in the actual article. It can be nice to have something on the page that ''isn't'' moving -- or to be able to open in LifeViewer and step through a pattern one tick at a time, without having to disable AUTOSTART first. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 23:12, 3 February 2019 (UTC)


I don't have any horses in this race, and I don't know much about the technical side of LifeViewer, so I'll just leave this to the two of you. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 19:32, 26 February 2018 (UTC)
:::: I haven't had any other problems so far, though of course I've only just started this project and have only gotten through around 1% of all the articles. As for the comment lines in RLEs, I'll try and be more consistent with them from here on out. (will double-check the ones I've already made to see if there's anything that should be added or removed) And yeah, I do agree that too many auto-started viewers looks very cluttered, so here's a rule of thumb I'm probably going to use: there should be no more than three AUTOSTART viewers in close proximity to each other. Thoughts? [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 23:50, 3 February 2019 (UTC)
: Any suggestions as to how best to set up a default config for secondary illustrations, such as the one in [[Tanner's p46]]?  I think "THEME 6 GRID GRIDMAJOR 0 THUMBLAUNCH AUTOSTART" is really pretty good as a standard.


: It seems reasonable
::::: Fine by me.  I've been thinking two animated viewers at once is usually enough action, but it depends on the article. Just maybe something to keep in mind a little bit. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 01:33, 4 February 2019 (UTC)
:# to assume all of those config settings in a LifeWiki context (in nearly all cases -- maybe with a slight change for still-life patterns, omitting the AUTOSTART), and
:# to '''not''' include any of that outside of a LifeWiki context
:: (so that those details won't get exported and distributed with patterns in The Future LifeWiki Pattern Collection)
: -- whereas things like HEIGHT and WIDTH and GPS '''should''' be included, so they'll go at the end of the RLE:{pname} entry.
: Seems like that strikes a reasonable balance, and avoids adding lots of THEME 6 BLAH BLAH BLAH boilerplate to each and every RLE:{pname} page.  Guess I'll start gradually getting the viewerconfig lines out of existing infoboxes, and see if any unforeseen difficulties crop up. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 20:48, 26 February 2018 (UTC)


== Arbitrary adjective names ==


The double-square-brackets around THEME 6 GRID GRIDMAJOR 0 THUMBLAUNCH AUTOSTART has made it the second-most [[Special:WantedPages|wanted page]] on the LifeWiki. If it's good enough as a standard, should this wanted page be created to explain that THEME 6 GRID GRIDMAJOR 0 THUMBLAUNCH AUTOSTART is a sequence of LifeViewer commands used to give the familiar LifeWiki appearance for embedded patterns? It seems almost too tempting to resist. [[User:Calcyman|Calcyman]] ([[User talk:Calcyman|talk]]) 21:17, 26 February 2018 (UTC)
Per [http://www.conwaylife.com/forums/viewtopic.php?p=71523#p71523 this forum post], I've removed every Arbitrary Adjective Name™ I could find on the wiki and moved it to a more easily-recognizable name (article text has also been properly updated to match title). Here's the list of files that need to be deleted as a result:
    absurdlylongboat.rle
    absurdlylongship.rle
    absurdlylongsnake.rle
    boatwithextralongtail.rle
    extralongbarge.rle
    extralongboat.rle
    extralongcanoe.rle
    extralonghookwithtail.rle
    extralongintegral.rle
    extralongshillelagh.rle
    extralongship.rle
    extralongsnake.rle
    extralongsnake_synth.rle
    extralongtubshillelagh.rle
    ludicrouslylongboat.rle
    ludicrouslylongship.rle
    remarkablylongboat.rle
    remarkablylongcanoe.rle
    remarkablylonghookwithtail.rle
    remarkablylongshillelagh.rle
    remarkablylongship.rle
    remarkablylongsnake.rle
    remarkablylongsnake_synth.rle
    ridiculouslylongboat.rle
    ridiculouslylongship.rle
    stupidlylongboat.rle
    stupidlylongship.rle
    terriblylongboat.rle
    terriblylongship.rle
    terriblylongsnake.rle


: Now it's the first most-wanted page, but thanks to the template changes, the request is for just plain AUTOSTART.  Probably might as well wait a while and see what else changes, before trying to explain anything... but eventually a walkthrough would be really nice, to show exactly how to build a good multi-illustration article. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 16:58, 27 February 2018 (UTC)
[[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 17:12, 23 February 2019 (UTC)


The style stuff should probably be in a single default config that's inherited by all the others. The current default appears to be:
: I think the above are all cleaned up correctly now, as far as uploaded patterns getting deleted.  There was also a file out there called "extraextralongsnake_synth.rle" which turned out to have the Niemiec synthesis file for long^4 snake rather than long^5 snake. (Yup, getting rid of the extra and very and Arbitrary adjectives in favor of a simple long count still seems like a good simplification.)
THEME 6      (alive cells are black, dead cells are white, and no history colours)
GRID        (draw gridlines)
GRIDMAJOR 0  (no major gridlines)
THUMBLAUNCH  (show LifeViewer as a thumbnail that launches when clicked)


As Dave suggested AUTOSTART is not needed for still-life patterns. It'll just burn CPU cycles for no reason.
: The _synth files are still troublesome in general, because the files that are already out there often have generic links to the Niemiec database search page, rather than to the actual file.  And of course on that database search page, the way you'd find a long^5 snake or whatever is actually by looking up "extra extra long snake"... so there's some possibility that the cleanup of "extra" creates some new confusion while reducing some other old confusion.


Perhaps we should have "LifeViewer config/default" that contains just the style stuff above and is always loaded and then one of the specific configs (which now in most cases would just contain AUTOSTART except for the config/stilllife which would be empty).
: Anyway, I'd still recommend not starting any kind of comprehensive review of _synth files until the new version of Niemiec's database becomes available.


{{EmbedViewer
: The second half of this cleanup will require re-running the auto-upload script, to get the .rle and .cells versions of all these files back onto the server with their new longN* names. I'm planning to wait until at least the end of this week before tackling that job. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 22:27, 25 February 2019 (UTC)
|rle = b2o2b2o$3b2o$3b2o$obo2bobo$o6bo2$o6bo$b2o2b2o$2b4o2$3b2o$3b2o!
|viewerconfig = #C [[ AUTOSTART THUMBLAUNCH GRID THEME 7 GPS 5 ZOOM 32 HEIGHT 800 TRACKLOOP 10 0 -1/10  ]]
|caption      = Colour history
}}


If we wanted to globally change the THEME colours or GRID default we just edit "config/default". For example I quite like THEME 7 since it has colour history but it's not good for LOOPing patterns (since on reset there is no history).
:: Upload of new RLE and plaintext files should be done now.  Some of these names are still preserved as redirects, like [[Stupidly long boat]] and also as an alternate name given in the text of the article. I may eventually be inspired to track down all these leftovers and clean them up, but for now I'm kind of worn out from wrestling with the auto-upload script.  There's always another degenerate case that hasn't been handled yet... [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 14:45, 27 March 2019 (UTC)


Also just a note: as it stands EmbedViewer assumes THUMBLAUNCH in the config since the embedded Viewer has the text "click above to open LifeViewer". See the Waypoint example above. [[User:Rowett|Chris Rowett]] ([[User talk:Rowett|talk]]) 21:32, 26 February 2018 (UTC)
==Non-notable isotropic rules==
: Hmm, so that THEME 7 LOOP issue is an argument for the ability to jump instantaneously to a waypoint at an arbitrary (X, Y, T) spacetime location, with non-zero T, and start the LOOPing from there.  [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 04:20, 27 February 2018 (UTC)
Many pages on isotropic non-totalistic rules have been proposed for deletion. It seems that some users (myself included) have moved articles on such rules to their namespace, such as [http://www.conwaylife.com/wiki/User:AwesoMan3000/Goat_Flock here]. This seems to be an ongoing project and deserves discussion here.
::Yes, perhaps a requirement for PLAYFROM and possibly LOOPTO commands. PLAYFROM would replace POIT as a non-POI specific version. LOOP or TRACKLOOP would loop back to the PLAYFROM generation. LOOPTO or TRACKLOOPTO would allow looping back to an arbitrary generation. [[User:Rowett|Chris Rowett]] ([[User talk:Rowett|talk]]) 07:15, 27 February 2018 (UTC)


:Replying to Chris's earlier suggestion re: [[Template:LifeViewer config/default]]: I've gone ahead and created that, and made [[Template:InfoboxStart]] use it in addition to the more specific configurations. I also edited those to remove the common config. Some ([[Template:LifeViewer config/inductioncoil|/inductioncoil]], [[Template:LifeViewer config/methuselah|/methuselah]], [[Template:LifeViewer config/pattern|/pattern]], and [[Template:LifeViewer config/stilllife|/stilllife]]) are empty now, the rest just contain the <tt>AUTOSTART</tt> command.
Should I adopt salad or would someone else like it? I have a couple collections of ships that I’d like to move to the page should it be adopted. [[User:Moosey|Moosey]] ([[User talk:Moosey|talk]]) 17:15, 28 March 2019 (UTC)


:The order in which the various bits of LifeViewer config are assembled in [[Template:InfoboxStart]] still needs reworking, I think, but that's something that can be tackled later. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 09:50, 27 February 2018 (UTC)
: I reverted the speedy deletion tag on [[Goat Flock]] because there's a wiki link from the [https://catagolue.appspot.com/census/b2in3s123a Catagolue rule page] which originates from the [https://gitlab.com/apgoucher/catagolue/blob/master/initialise/all-rules.txt#L120 rule list].


::Looks good.  I'd like to use [<nowiki />[Template:LifeViewer config/default]] in secondary illustrations in various articles like [[Tanner's p46]] -- or I might make a [<nowiki />[Template:LifeViewer config/defaultactive]] and add the AUTOSTART.  Not clear exactly how to invoke the template in that context.  If someone does a sample The Right Way once somewhere, though, I'm a good copycat.
: If there's still a consensus that the main namespace redirect should be deleted, then the rule list would need to be updated with 'Goat_Flock' replaced with 'User:AwesoMan3000/Goat_Flock' after the exclamation mark on line 120. [[User:Calcyman|Calcyman]] ([[User talk:Calcyman|talk]]) 09:53, 29 March 2019 (UTC)


::Also, what template changes need to be made so that [[RLE:Snakewithfeather_synth]] shows up as a "raw RLE" link in the [[Snake with feather]] glider synthesis section of the infobox? Up at the top of this thread it says "all we'd need to do is update the pattern templates accordingly"... [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 14:49, 27 February 2018 (UTC)
:: I like the idea of having some space on the LifeWiki for people to document their favorite isotropic rule discoveries.  It makes sense to me that all of these could go somewhere other than the main namespace, just to keep things that are spaceships in other rules from getting mixed up with Conway's Life spaceships, and so on.  The User namespace seems like a fine place for isotropic rule pages, along the lines of Moosey's suggestion.


:::Re: using [[Template:LifeViewer config/default]] -- that should just require an edit to [[Template:EmbedViewer]].
:: But sometimes it's hard to know who should "claim" a rule -- it doesn't necessarily make sense for any particular user to start a page, and yet it's clear that a page should be started.  Is there any harm in inventing a new namespace for this purpose?  Would anything be wrong with [[Isotropic:Goat Flock]], for example? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 13:59, 29 March 2019 (UTC)


:::Re: "raw RLE" links for uploaded syntheses -- that'll require tweaking [[Template:PatternDownload]].
::: @dvgrn: good idea. It would prevent too much clutter in the main namespace without making anyone frustrated about the fact that <nowiki>[insert frustration here]</nowiki> happened.


:::Neither should be difficult to do, I'll see what I can do in a moment.
::: who can make new namespaces? [[User:Moosey|Moosey]] ([[User talk:Moosey|talk]]) 14:41, 29 March 2019 (UTC)


:::'''EDIT''': done on both counts. Pages using [[Template:EmbedViewer]] will need to be updated so that LifeViewer doesn't throw a wobbly over <tt>THEME 6</tt> overriding <tt>THEME 6</tt>, and all that. [[Template:PatternDownload]] seems to be working (see e.g. [[Snake with feather]]) -- knock on wood! Pages with on-wiki syntheses but no uploaded synthesis files are tracked in [[:Category:Pages with raw synthesis RLE code but no uploaded synthesis files]]. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 09:17, 28 February 2018 (UTC)
::: I agree with the namespace idea. Perhaps we could name it something like "OCA" so we could move existing articles such as [[HighLife]] there. As for specific patterns, I'd suggest making them subpages of their native rules, e.g. [[OCA:HighLife/Bomber]] so they don't get mistaken as rules. Of course, the notability guidelines should still apply here, or else this will become way too hard to maintain. [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 14:33, 30 March 2019 (UTC)


::::Looks good.  Can you add a newline so that, when you hit Ctrl+C in the launched LifeViewer, you get both #C comment tags at the beginning of two lines, instead of piled onto a single line?  Not that it matters a bit, as far as functionality goes.
:::: I agree with all of Ian07's suggestions above: using OCA for the namespace, with rule pages (except for CGoL) in that namespace, and rule-specific patterns as subpages of their rules. [[User:Calcyman|Calcyman]] ([[User talk:Calcyman|talk]]) 17:12, 30 March 2019 (UTC)
::::It appears there are seventy EmbedViewer uses that will need to be checked and have their viewerconfigs probably reduced. I just cleaned up [[Telegraph]], and am planning to sort LifeViewer commands into some kind of standard-ish order for each use, while I'm at it.  Probably AUTOSTART then THUMBSIZE then WIDTH then HEIGHT then ZOOM, then X then Y (if needed), then GPS 20 then LOOP (if any). [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 17:33, 28 February 2018 (UTC)
::::-- Hang on, though.  Supposing one really wanted to use an embedded viewer with THEME 7, let's say, like the example above.  How to avoid the ugly error, exactly?  Do we need a LifeViewer with a SUPPRESS command, or a separate EmbedUnconfiguredViewer template, or what?
::::I'm finding that separating the viewerconfig from the article is significantly awkward, because to make a viewerconfig look just right I usually have to preview it many times.  But I can't preview the RLE:pname page and see any changes on the [<nowiki />[pname]] article page...
::::So what I have to do is to create the RLE:pname page later.  First I put rle= and viewerconfig= lines into the EmbedViewer curly braces, and preview and change viewer commands to my heart's content.  Then cut the rle and viewerconfig lines and paste them into a new RLE:pname page (without the rle= and viewerconfig= tags, of course), and save that.  Then preview one more time to make sure the article still looks the same, and save.
::::It's workable, but more than a little awkward, as I said. Not sure yet if it will make me reconsider the Grand Plan of moving viewerconfig lines into the RLE: namespace. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 18:11, 28 February 2018 (UTC)


:::::Yes looks like we will need SUPPRESS. I'll put it in the next build. We'll then need to update config/default to end with the SUPPRESS keyword. I'll keep you posted. [[User:Rowett|Chris Rowett]] ([[User talk:Rowett|talk]]) 21:38, 28 February 2018 (UTC)
::::: @Moosey (and everyone else) -- based on a [https://www.mediawiki.org/wiki/Manual:Using_custom_namespaces very small amount of Googling], officially adding a new namespace to the LifeWiki namespace dropdown list is a Nathaniel-only change on the server side. I tried moving the "LifeHistory" article to [[OCA:LifeHistory]] as an experiment; the move was technically successful, but I think the article is just called "OCA:LifeHistory" and it's still in the main namespace.


::::::Seems like we would only need SUPPRESS very rarely, e.g., for the broken LifeViewer above in this section, where we want to override a setting in config/default. No need to include SUPPRESS in the default string -- it would just suppress errors that you might want to see, like a setting at the beginning of a long config string duplicated by a setting at the end of the string. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 22:58, 28 February 2018 (UTC)
::::: I've sent a request to Nathaniel. I or somebody will post an update here if and when "OCA" becomes an official namespace. Until then there's probably no point in trying to move any more OCA pages. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 19:34, 30 March 2019 (UTC)


:::::::The function of SUPPRESS would be to allow '''one''' overwriting of each setting defined in the commands '''before''' the suppress keyword. So if, for example, config/default specified [<nowiki />[ '''THEME 6 ZOOM 4''' ]] I'd want to add SUPPRESS to the end of that because it's always OK for posters to override those default values and I don't want them needing to know about SUPPRESS to do so.
:::::: There's now an OCA namespace!  However, I've sent a follow-up question to Nathaniel, because I'm not sure what the best way would be to clean up an embarrassing problem I created. Currently if you follow the [[LifeHistory]] link, you'll see a page called "OCA:LifeHistory", but that's still the actual name of that article, it's not in the OCA namespace. As a weird side effect, it doesn't seem to be possible to either edit or move that "OCA:LifeHistory" page, so it doesn't seem like I can fix the problem.
:::::::[<nowiki />[ '''THEME 6 ZOOM 4 SUPPRESS''' THEME 7 ]] would be valid.
:::::::[<nowiki />[ '''THEME 6 ZOOM 4 SUPPRESS''' THEME 7 THEME 4 ]] would throw the error "THEME 4 overwrites 7".
:::::::I wouldn't expect posters to use the SUPPRESS command themselves but there may be edge cases where that's valid and useful. [[User:Rowett|Chris Rowett]] ([[User talk:Rowett|talk]]) 04:56, 1 March 2018 (UTC)


::::::::SUPPRESS is implemented in LifeViewer Build 238. Test case is [http://lazyslug.no-ip.biz/lifeview/plugin/suppress.html here]. [[User:Rowett|Chris Rowett]] ([[User talk:Rowett|talk]]) 08:33, 1 March 2018 (UTC)
:::::: I can solve most of the problem by changing the LifeHistory redirect and creating an actual LifeHistory page in the OCA namespace. That might leave an orphaned "OCA:LifeHistory" page out there somewhere, but it doesn't seem as if there's any way to get to that article except via the current redirect. Does anyone see an easy way to move that article to where it belongs? I'm a little worried that if I don't clean it up correctly, it will be an unexpected headache sometime somehow. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 15:37, 4 April 2019 (UTC)


Excellent -- how do we get this on the wiki? I don't remember, is Nathaniel the only one who can touch the wiki's LifeViewer code, or do others have the necessary rights?
::::::: Stand by until further notice -- please don't try making any OCA-namespace pages just yet... hoping to get my OCA:LifeHistory mess fixed first. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 17:43, 4 April 2019 (UTC)
:Not sure - I think Nathaniel has to do it. Looks like it's kept at [http://www.conwaylife.com/js/lv-plugin.js http://www.conwaylife.com/js/lv-plugin.js]. [[User:Rowett|Chris Rowett]] ([[User talk:Rowett|talk]]) 09:08, 1 March 2018 (UTC)


Dvgrn-- I've also added linebreaks to [[Template:EmbedViewer]] to hopefully help you with debugging, as you requested. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 08:53, 1 March 2018 (UTC)
:::::::: Okay, it looks like Nathaniel has successfully cleaned up [[OCA:LifeHistory]], so now it's actually in the new OCA namespace. Let's try moving [[Goat Flock]] and other similar pages out of the User namespace and into OCA -- there shouldn't be any need for people to "adopt" these pages individually any more. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 01:55, 5 April 2019 (UTC)


LifeViewer build 238 is now up here and on the forums. You'll need to refresh your browser (on Chrome CTRL-F5). Release notes are [http://www.conwaylife.com/forums/viewtopic.php?f=3&t=1622&p=57182#p57182 here]. [[User:Rowett|Chris Rowett]] ([[User talk:Rowett|talk]]) 05:21, 3 March 2018 (UTC)
(Resetting indent) All of the rule pages have now been moved to the OCA namespace, and the resulting double redirects fixed, but I have a few questions about how to continue from here:


== Stability of Pentadecathlon IDs ==
# Should rule families also be moved (e.g. [[OCA:Generations]]) or should the namespace ''just'' be for individual rules/patterns?
# Should we use the same pattern categories as for Conway's Game of Life, or will that cause confusion?
# Is it possible to make [[Special:SpecialPages]] include OCA pages? This is not as important but it would be nice as a maintenance tool for these articles.


Maybe I should be asking Heinrich Koenig about this instead of posting here, but here goes-- does anyone know whether Pentadecathlon's ID numbers are actually stable?
[[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 20:43, 5 April 2019 (UTC)


The reason I'm asking is that when adding missing info to some patterns, I come across three patterns (out of about three dozen) whose numbers on PD differed from ours. Our 44P12.2 is now [[44P12.3]]; our 42P10.1 is now [[42P10.3]]; and our [[44P7.2]] is now 44P7.3.
: For #3, I don't think there's a (reasonably easy) way to add something like that to [[Special:SpecialPages]], but a list of all pages in the OCA namespace can already be viewed [http://www.conwaylife.com/w/index.php?title=Special%3AAllPages&from=&to=&namespace=102 here]. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 21:39, 5 April 2019 (UTC)


I moved the first two to match their new PD IDs, but not the third. After all, once is happenstance, twice is coincidence, but three times is enemy action; I figured I'd better make sure these ID numbers are stable/reliable to begin with. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 12:38, 25 February 2018 (UTC)
== Caterloopillar "Family Page" vs. Specific Pattern ==


== [[:Category:Toplevel category]] ==
Does anyone have any clever suggestions about how to deal with the problem that


Following some discussion at [[Talk:AUTOSTART]], I've moved a few categories from [[:Category:Toplevel category]] to [[:Category:Everything else]] -- several were already in both --, to make the decision of what's in the latter and what's in the former a little less arbitrary.
1) there is a family of spaceships called Caterloopillar, with different speeds, and different bounding boxes and cell counts for each speed, and


In fact, it should be pretty much entirely ''non''-arbitrary now. [[:Category:Everything else]] states that it "''contains all pages that are not about specific patterns''", so I moved all content categories collecting CA content (CCCCC?) to that category -- except for [[:Category:Pattern categories]], of course.
2) there is a specific Caterloopillar with speed c/8 (for example) and a specific bounding box and cell count


What's left in [[:Category:Toplevel category]] now is the following:
?


* [[:Category:Administrative categories]] -- self-explanatory, I hope; a 2nd-level root category for everything relating to the inner workings of the LifeWiki (the plumbing, as it were, as opposed to the porcelain).
It would be nice to be able to link to a specific pattern or two, in a separate section inside the generic "Caterloopillar" article. But it doesn't really make sense to have bounding box, cell count, etc. parameters in the infobox for the generic article.
* [[:Category:Everything else]] -- CA-related content that isn't patterns.
* [[:Category:Images]] -- self-explanatory.
* [[:Category:Pattern categories]] -- self-explanatory.
* [[:Category:Tutorials]] -- self-explanatory.


I left [[:Category:Tutorials]] in [[:Category:Toplevel category]] on account of its contents not ''describing'' CA-related subject matter, as such; I feel it should be treated the same as (say) [[:Category:Images]], which clearly also belongs [[:Category:Toplevel category]]. (FWIW, I think Tutorials could actually well get their own namespace, but that's a different discussion.)
What's the best way to make this kind of thing clearer?  Could we invent some kind of special "pattern family" infobox template where no parameters are required, and parameters are only displayed if they're defined? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 15:08, 5 April 2019 (UTC)


Long story short, I think [[:Category:Toplevel category]] is much less cluttered now, and the placement of content categories is much less arbitrary. All we still need to do now is keep it that way. ;) [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 15:56, 4 March 2018 (UTC)
We have already several families of patterns. Geminoids are also family and deserve general family page. As well as very soon the 0E0P metacell will start to generate some more interesting news with special cases and other things (especially if we use turing machine to calculate the next iteration). I'm not sure exactly how to classify family. Does the helix based technology which sends *WSS upwards is considered a family of spaceships (as it contains the caterloopillar family). But I think the number of natural families of patterns is small, and it's important to think about pattern families as well. So maybe we need to start from a page where we define what does it means pattern family. I would define it as collection of designed patterns with noticeable feature which constitutes major role in the interest this pattern is arising (geminoids for example, or strange loopers, or helix based spaceships, or natural fuse based etc.).


== Image generation and upload ==
I think also we in total freedom here in the sense how do we analyze the patterns and the scope of the wiki articles. I think the families ignorance might be our weak spot in how we think about CGOL in general, and new families might be found which are less intuitive to think about now, and those families might bring new discoveries and design patterns just due to someone figuring out a new family.


I looked at [[Help:Images]] this morning, and I think it might make sense to do a complete rewrite. Rather than suggesting Golly and Print Screen as a source of screenshots, we should probably create a special page in some namespace or other, that has one or more NOGUI LifeViewers in it, and link to that from Help:Images.
But to state it simply - it would be also nice to simply separate the two articles of caterloopillars that's all. In the banner we can simply place "-" for everything. The bounding box is the only problem as it creates -x- instead of nothing. We can insert adjustable for speed or "Less than c/4".


(This is based on [http://www.conwaylife.com/wiki/LifeWiki:Tiki_bar/Archive/2017#LifeViewer_image_display_and_pattern_copy_functionality last year's discussion about using LifeViewer to capture images].)
[[User:Simsim314|Simsim314]]


The text of this hypothetical image-gathering page might suggest editing the page, replacing the sample RLE with the desired pattern, and hitting Preview (actually saving the changes won't be necessary).  The page can include a list of the relevant LifeViewer scripting commands -- no waypoint stuff, but X Y ZOOM HEIGHT WIDTH, and how to hit 'I' to read that information after manually setting the view up exactly right.
== Glider syntheses from Shinjuku with help from Catagolue ==


When the image looks right, probably after multiple previews, a user can right-click and save it, then upload it to the relevant article.
-- Okay, we can get started on the next stage of improvements for glider synthesis reporting now! This came in from calcyman last night (links slightly edited):
{{LV:Viewer|bo$2bo$3o!
#C [[ NOGUI THEME 6 GRID GRIDMAJOR 0 WIDTH 128 HEIGHT 128 ZOOM 12 ]]}}
... This is certainly somewhat simpler than fiddling with Golly settings to get the colors right, and for most small patterns it allows a wider range of sizes than Golly's simple powers-of-two system can provide.


Still seems like it could be easier, though!  In particular, if you have the NOGUI command set, of course you can't adjust the view, and the 'i' information doesn't pop up.  So you have to remove NOGUI and then add it back when you want the screenshot.
<i><blockquote>Catagolue can now be queried for syntheses from Shinjuku. Here's the [https://catagolue.appspot.com/textsamples/xp8_gg0gba9jz11078987066zx3213/b3s23/synthesis text link] that's probably most appropriate for LifeWiki.


Any suggestions for how to capture an image without having to figure out the scripting commands or go through multiple Preview cycles to get everything right?  Obviously plain Print Screen on the first Preview page is an option, as Help/Images currently suggests, but then it becomes necessary to edit the image in some Paint-type program.
Subsequent path parts are ignored, so you can do things such as: https://catagolue.appspot.com/textsamples/xp14_j9d0d9j/b3s23/synthesis/tumbler_synth.rle


Do all modern OSes have something equivalent to Windows' Snipping Tool, and we could mention those as a way to grab the image directly?
The syntheses are also [https://catagolue.appspot.com/object/xq5_ug1hmgc865da808ad568cgmh1guz124w6yb6w421/b3s23 embedded in a LifeViewer] on the object pages.


... Yes, in many cases we can now just use a NOGUI LifeViewer, and never upload an image at all. So we should say that clearly in [[Help:Images]]. But it's still good to have the option to upload images, for cases like the green-annotation image in [[Blockstacker]].  And it seems like a nice idea to have a static image available as backup, anyway, so let's not get rid of the "View static image" links yet!
Finally, you can query the [https://catagolue.appspot.com/textcensus/b3s23/synthesis-costs best known costs (in gliders)] of all objects known to Catagolue. That's good for finding (for example) disparities between LifeWiki and Shinjuku to see whether either of them needs updating.


The other awkwardnessfulmost detail is when you want to generate an image in a different-shaped rectangle than what the LifeViewer provides by defaultYou pretty much have to figure out the scripting system enough to add WIDTH and HEIGHT tags -- and if you've removed the NOGUI tag, as you kind of have to to do any experimenting, in many cases you'll fall foul of the mysterious minimum and maximum values allowed for LifeViewers with GUI controls.
In particular, the [https://gitlab.com/apgoucher/catagolue/blob/master/initialise/diffupdate.py update script] uses this so as to only bother uploading (and indeed creating) RLEs of the objects that need to be updated.</blockquote></i>
My idea is that this should be an additional link in the "glider synthesis" section of relevant infoboxesIf '''synthesisRLE=true''', then we can serve up both these Catagolue links and the uploaded synthesis file (which may be different from the Shinjuku/Catagolue version:  uploaded files may contain multiple syntheses with different construction envelopes, or continuous instead of incremental syntheses, sometimes two in a row for spaceships to show the repeat time, etc.)


I'm also fishing for options that might allow for dodging the two-step save-file/upload-file.  Is there any way for this hypothetical image-gathering page to pop up immediately when someone clicks on an image redlink -- with a text box to paste RLE into, a LifeViewer frame that's resizable by clicking and dragging, and some button or link on that page that magically collects the current image from LifeViewer when the user says it's ready to be collected?
When the new version of Mark Niemiec's database becomes available, maybe we can use a similar system to link directly to '''conwaylife.com/ref/mniemiec/*''', instead of uploading copies of all those patterns which will then inevitably go out of date.


-- I think that would be just about the minimal, easiest to use designWhat's the closest setup to that, that's actually practical to implement?
However, it's not really ideal to use '''synthesisRLE=true''' to decide whether to show these links.  For example, we can now produce syntheses for all the 12-bit still lifes that AwesoMan3000 made articles for last year, like [https://catagolue.appspot.com/textsamples/xs12_354qic/b3s23/synthesis teardrop with claw] and so onMost of these don't have _synth files in the raw RLE namespace or uploaded to the server -- and now we don't need to do that. But if we had to add '''synthesisRLE=true''' to the infobox to get these new Catagolue links, then a link to the LifeWiki pattern collection would also be created.


TL;DR:  Sorry about the long essayWhat exactly should the Help tell people about how to make standard LifeWiki images? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 15:03, 5 March 2018 (UTC)
If we really want all these syntheses to be part of the LifeWiki pattern collection, then we could certainly bulk-upload them all, and do a new bulk upload every year or so to catch anything that's gotten out of date. However, the total number of files on the server is already getting very unwieldy, at least with the current maintenance system, and this would only increase the painMaybe it would make sense to ''remove'' all the _synth files from the pattern collection instead, and offer a separate downloadable ZIP file for glider syntheses?


:Good points all around -- perhaps the best solution would be to have an online RLE-to-image converter where people could simply paste an RLE snippet (or point to a remote RLE file to be fetched), and which would then spit out a bespoke image, suitable for immediate uploading to the LifeWiki (or further editing as desired). Something vaguely along the lines of Oscillizer is what I'm imagining there.
Maybe we should just ''always'' display a Catagolue synthesis link, and then maybe have Catagolue display something slightly more edifying than [https://catagolue.appspot.com/textsamples/xs38_08e1v0v1u8zc970vg321/b3s23/synthesis "null"] if no synthesis is known. Any other ideas or suggestions?  [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 15:24, 13 April 2019 (UTC)


:For extra brownie points, it could also offer a few form controls to tweak common options, such as live cell/dead cell/grid color, cell size, and so on; all with sensible defaults, of course.
: I think the determining factor (once the remaining small objects are in Shinjuku) is to use Catagolue if there's an apgcode provided, and to fall back on _synth.rle otherwise. The reason is because LifeWiki has Orthogonoid_synth.rle and Demonoid_synth.rle, for instance, and arguably HBK_synth.rle could also be included in LifeWiki but not in Shijuku. [[User:Calcyman|Calcyman]] ([[User talk:Calcyman|talk]]) 16:10, 13 April 2019 (UTC)


:Speaking of which, what should those defaults be? Cell size in particular -- right now quite a few still images (those I made anyway) are smaller than the animated ones, my thought at the time having been that they needed to fit into infoboxes without blowing those up too much. Now that we've entered the age of embedded LifeViewers, this isn't (that much of) a concern anymore.
:: That sounds reasonable-ish.  Mind you, people have been adding apgcodes for a lot of things (from [[lobster]]s to [[Sir Robin]]), so unless we invent a new parameter like ''minsynthesis=true'', we'll occasionally end up making links to Catagolue when no synthesis is actually available. If the link can be created/not created based on the existence of an apgcode without adding any more custom parameters, I think I might rather do it that way and just live with the occasional link to nowhere, instead of taking the ''minsynthesis=true'' route.


:I'm thinking 15x15 pixels for a single cell, plus 1 pixel for the border. Color-wise, we seem to have settled on [http://www.perbang.dk/rgb/C0C0C0/ (192, 192, 192)] (#C0C0C0) as our border color of choice. We've also used [http://www.perbang.dk/rgb/C0EFC0/ (192, 239, 192)] (#C0EFC0) as a light green color for highlighting cells, and [http://www.perbang.dk/rgb/52C052/ (82, 192, 82)] (#52C052) as a dark green, for the border of those highlighted cells:
:: It doesn't seem like there's any harm providing a Catagolue link ''and'' a _synth file link (and a Niemiec-database link, eventually).  It's often very useful to have non-record-breaking syntheses of objects, and we won't get those from Shinjuku.  When you want to construct a new object near some existing object, for example, you might need an expensive synthesis with gliders from just two directions. Or you might want a synthesis of a two-cell edge that creates both cells simultaneously, to make a pseudo still life with an existing object with a two-cell edge.  Existing _synth uploads often have these kinds of options included along with the record-holder. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 16:45, 13 April 2019 (UTC)


[[File:Neighborhood 1c.png|center]]
::: Okay, with Ian07's incredibly helpful help, I've made a first attempt at switching over glider synthesis links to the new Shinjuku/Catagolue source.  Whenever an apgcode is supplied for an object '''and''' the 'synthesis={n}' parameter is set, a Catagolue-generated synthesis link should be provided in the Glider Synthesis section of the infobox.


:Getting back to how to create images... I don't know what support the various OSes do offer. I do, however, think that a two-step process, where you save an image locally and then upload it in a second step, isn't that bad, so long as generating the image in the first place is easy, straightforward, fast, and convenient. (Ideally, all four!)
::: I also disabled the old links to chris_c's automatically generated syntheses, since those aren't reliably up to date any more. And I tried changing the top-level category from >=1000 glider to >100 gliders. (Looks like I still have to work on that detail a bit more.) [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 17:59, 23 April 2019 (UTC)


:Oh, and experimenting with LifeViewer, its config commands, and the limits it imposes? Oh yes, I know ''exactly'' what you're talking about there! WIDTH and HEIGHT will surely be the death of me some day. :) [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 22:00, 5 March 2018 (UTC)
:::: Here's a [http://conwaylife.com/forums/viewtopic.php?p=75407#p75407 current report] on discrepancies between LifeWiki and Shinjuku/Catagolue (I'm assuming the last two are reasonably well synchronized at the moment, since the synthesis-costs summary changed since yesterday; I used this morning's cost summary). I've gone through and cleaned up all the LifeWiki articles where a cost was reported that was larger than what's in Catagolue.


:'''EDIT''': oh, and BTW -- perhaps in addition to a default size for images, we should define standard small(er) sizes as well? For instance, I'm imagining that <tt>Cathysuesamazingpattern.png</tt> might use 15x15 cells, whereas <tt>Cathysuesamazingpattern_small.png</tt> might use 7x7, and <tt>Cathysuesamazingpattern_tiny.png</tt> might use 3x3, all with a 1 pixel border. Or something along those lines, anyway.
:::: This leaves a pile of 170 articles where LifeWiki doesn't know about any synthesis at all... but it looks like that list is being tackled already. Thanks, Ian07! (Anyone else interested, see the above link for how to get the Catagolue synthesis link to pop up in the infobox.)


:This would make it easier to select the right image on-wiki when a specific size is needed, and it would also mean that we could keep all the current images using smaller (e.g. 7x7) cells; we'd just have to rename them. [[Template:InfoboxStart]] could easily be tweaked to display links to all sizes that exist, or only to the largest size that exists, or whatever else we might find best. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 22:04, 5 March 2018 (UTC)
:::: This is all a huge improvement over the old method of creating separate RLE:{pname}_synth articles or {pname}_synth.rle files and uploading them to the server. Anyone see any problems so far?


::Just because both of you mentioned it here are the mysterious LifeViewer width and height rules:
:::: The big remaining improvement would be not having to add "synthesis  = {cost}" to every article manually, and manually update the numbers whenever they go out of date. This is pretty easy maintenance compared to the admin-only file upload stuff, but still it would be nice if each article magically reported the number and provided a link to Catagolue only if the synthesis actually exists on Catagolue. At the moment, articles like [[Snake pit 2]] that have an apgcode but no known synthesis are cheerfully serving up a link to Catagolue that says [https://catagolue.appspot.com/textsamples/xp3_g8o0eh5mggz122q92t0643zy011/b3s23/synthesis/snakepit2_synth.rle "null"].
::1. Common rules:
:::1.1 Width is always (silently) rounded down to a multiple of 8 pixels.
::::Why? Because it makes drawing faster.
:::1.2 Maximum width is 1024 pixels.
::::Why? Arbitrary decision. Could be any multiple of 8. Pick one.
:::1.3 Maximum height is 800 pixels.
::::Why? Arbitrary.


::2. With GUI rules:
:::: So ... is there a clever template-y way to improve on this? We could import the subset of apgcodes from Catagolue's synthesis-cost list that we have articles for on the LifeWiki, and set that list up as a lookup table, for starters. Then maybe the update problem would be reduced to just updating that subset synthesis-cost list now and then. (?) [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 16:48, 24 April 2019 (UTC)
:::2.1 Minimum width is 480 pixels.
::::Why? Any smaller and the GUI wouldn't fit horizontally.
:::2.2 Minimum height is 480 pixels or 240 pixels.
::::Why? 480 for the full GUI to fit vertically. 240 if you don't mind losing the navigation controls.


::3. NOGUI rules (for image display):
::::: Quick reply, since Dave asked me to chime in, and I'll admit I've only skimmed over the preceding discussion --- with glider syntheses being handled by Catagolue / Shinjuku now, it would obviously be ideal for the LifeWiki to simply pull in glider synthesis information from Catagolue. That is to say:
:::3.1 Minimum width is 64 pixels.
::::Why? No GUI to draw. Arbitrary.
:::3.2 Minimum height is 64 pixels.
::::Why? Seemed like a good idea to make it the same as the minimum width.


::4. meta tag
:::::# When a page's parser cache is updated (e.g. when a page is edited), and an apgcode is provided in the infobox template, LW should:
:::4.1 Some LifeViewer settings can be set by putting a <meta name="LifeViewer" content=""> tag in the <head> section of the HTML page.
:::::## poll Catagolue;
:::4.2 If the meta tag doesn't exist, or exists but has the word "limit" in the content="" string then the maximum width is constrained to the width of the element containing the pattern source (typically a textarea or similar containing RLE).
:::::## perform a sanity check; and
:::4.3 For the conwaylife.com forum the meta tag doesn't exist so all Viewers are limited to the width of the HTML element containing their RLE.
:::::## use that information (perhaps marked in some way to indicate external data) in the infobox, as well as for categories.
::::Why? It stops Viewers escaping out of the central column.
:::::# When there is an apgcode, and there is a local synthesis, and Catagolue either doesn't have any synthesis or the one it has is worse than the local one, LW should:
:::4.4 For the Wiki the tag does exist, but doesn't contain "limit", so the maximum width is not constrained by the HTML element containing their RLE.
:::::## use the local synthesis; and
::::Why? Because on the WIKI the RLE is typically not displayed.
:::::## add the page to a tracking category so Shinjuku's DB can be updated. (In the long run, ideally there'd be no such cases --- this'd be a temporary measure, and in fact it might not even be necessary.)
:::::# When there is no apgcode, LW should:
:::::## use a local synthesis if there is one; and
:::::## also add the page to a (different) tracking category, as I believe it already does.


::5. Errors
::::: The big problem with this is the "poll Catagolue" bit. I'm not aware of a way for MW templates to programmatically make external requests and process the results.
:::5.1 If WIDTH or HEIGHT are specified outside of the ranges defined above then the window is sized to be at least the minimum width and height.
::::Why? So you can see the script error message.


::6. Defaults
::::: It could be done client-side, in Javascript, but I believe we don't want that. There's at least two big advantages to doing it server-side:
::::6.1 The default width and height for an embedded Viewer are the size of its HTML canvas element. Silently, the minimum width and height are enforced and the width is rounded down to multiple of 8. Currently, no maximum width and height are enforced - I suspect I forgot.
::::6.2 The width and height of the popup Viewer are fixed to be 560 x 480.
:::::Why? The top and bottom row of GUI controls are 40 pixels each so the display area is 480x480 square.


::Hopefully the rules are less mysterious now. Feel free to suggest better Arbitrary values or any other improvements. [[User:Rowett|Chris Rowett]] ([[User talk:Rowett|talk]]) 01:03, 6 March 2018 (UTC)
:::::# consistency: every user sees the same data; and
:::::# sustainability: if Catagolue is only polled when the page cache is updated, i.e. when Mediawiki re-evaluates templates etc., Catagolue will not be hit with a request every time someone views a LifeWiki page.


:::Thanks for the explanations! We don't have a [[Help:LifeViewer]] page yet -- making one is one of the many items on my to-do list --, but perhaps we could start one now, and seed it with this information.
::::: That still leaves several more avenues:


:::While I'm at it, one question: when using THUMBLAUNCH, is it possible to independently set the width and height of the thumbnail, and the full viewer you get when clicking it? Getting the best possible viewer size/shape in pattern infoboxes can be fiddly, and I've found that playing carelessly with WIDTH/HEIGHT can make the full viewer look funny. Is there such a thing as THUMBWIDTH and THUMBHEIGHT? (If not, I think there really should be!)
:::::# on-wiki Lua scripting (MW supports this with an appropriate extension, though the LifeWiki doesn't);
:::::# using a bespoke Mediawiki extension; and
:::::# keeping things as they are, but using a bot that runs (un|semi)supervised to update template parameters when things change on Catagolue's / Shinjuku's side (the bot in turn could be fed by data pushed out by Catagolue, say an RSS or Atom feed of new/improved syntheses that Catagolue would generate automatically and that the bot would poll periodically).


:::Thanks for all your work on LifeViewer BTW, it really is an excellent piece of software to have, and makes Life (if not life) so much easier and more accessible to newcomers. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 10:20, 6 March 2018 (UTC)
::::: Unfortunately I can't help with any of these. (I couldn't help with templates either, but that's a different story.)


::::There are actually two thumbnail commands: one for embedded Viewers: THUMBNAIL, and one for popup Viewers: THUMBLAUNCH. In both cases they render the Viewer at 1/2, 1/3 or 1/4 of its width and height depending on the value of "THUMBSIZE <2..4>". The default is 1/4 size ("THUMBSIZE 4").
::::: I don't know if any of this is useful --- but as I said, Dave asked me to chime in, and who am I to say no to that? [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 15:14, 27 April 2019 (UTC)
:::::The THUMBNAIL command will resize the Viewer in place when clicked. If you hover the mouse over the Viewer it will say "Expand". The Viewer can be returned to the thumbnail state with hotkey "n" or by clicking the shrink button (top left in the navigation menu assuming the height is at least 480).
{{LV:Viewer|bo$2bo$3o!
#C [[ THEME 6 GRID GRIDMAJOR 0 WIDTH 640 HEIGHT 480 THUMBNAIL ]]}}
:::::THUMBLAUNCH will launch the popup window. If you hover the mouse over the Viewer it will say "Launch". The popup Viewer size is fixed at 560x480 and ignores WIDTH and HEIGHT settings.
{{LV:Viewer|bo$2bo$3o!
#C [[ THEME 6 GRID GRIDMAJOR 0 WIDTH 640 HEIGHT 480 THUMBLAUNCH ]]}}
:::::So I believe that means you are free to use WIDTH and HEIGHT and THUMBSIZE to define the size of the thumbnail for THUMBLAUNCH, knowing that when clicked the popup Viewer will always be 560x480.


::::If you create a [[Help:LifeViewer]] page it's fairly likely I'll update it over time. There's already some documentation on the forum in the [http://www.conwaylife.com/forums/viewtopic.php?f=3&t=1622&start=0 Pattern Viewer for forum threads] thread. For example [http://www.conwaylife.com/forums/viewtopic.php?f=3&t=1622&start=0#p17014 this post] describes how to use LifeViewer in your own web page including details on the meta tag discussed earlier. There's also [http://golly.sourceforge.net/Help/lifeviewer.html documentation in Golly] for the Lua version of LifeViewer which is a subset of the HTML version functionality but still valid.  [[User:Rowett|Chris Rowett]] ([[User talk:Rowett|talk]]) 10:59, 6 March 2018 (UTC)
:::::: Maybe it could be linked in with the Catagolue update process. At the moment, syntheses on Catagolue are added/updated in a very precise manner:


:::::I like defaulting to the pop-up LifeViewer for wiki purposes, mostly because it doesn't force an ugly re-flow of the text around a thumbnail image, and it's guaranteed to appear always in the same place and entirely on the screen (unless you're looking at a very small screen).  The inline viewer that shrinks and expands is often more annoying to use in wiki articles, because either
::::::# A GitLab CI runner is launched;
:::::# the Play/Pause controls at the bottom expand to offscreen and you have to scroll to get to them;
::::::# The entire textcensus of current synthesis costs (but not the syntheses themselves) are downloaded from Catagolue;
:::::# the Play/Pause controls are visible, but the very top of the viewer is offscreen, in which case the first click on the viewer moves the Web page so that the whole viewer is visible, but doesn't actually activate the control you clicked on.  And now whatever you clicked is suddenly not under your mouse any more, so you have to go find it and click again.
::::::# Shinjuku is downloaded, and minimum paths to all objects are computed;
::::::# Only the syntheses with lower cost than Catagolue are generated;
::::::# These syntheses are uploaded (as RLEs) in batches of 1000.


:::::The popup viewer is a bit taller than it is wide, so 480x560.  This does cause some trouble on very small laptop/tablet/phone screens when the window is 480 pixels high -- you have to scroll to make the controls usable. I wonder if it would make sense to reduce the popup window to a square 480x480?
:::::: Since LifeWiki need only display the synthesis ''cost'' in the infobox, rather than the synthesis (which is available with an external link), then I guess this update process could additionally upload the entire set of synthesis costs to LifeWiki into some page which is queried by the infoboxes.


:::::Along the lines of Apple Bottom's THUMBWIDTH and THUMBHEIGHT comment above, I've sometimes wanted to set the popup viewer to landscape format, so to speak.  E.g., when opening the secondary illustration in [[Telegraph]], you don't really need the extra height, but more width would be okay.  I guess this would really be POPUPWIDTH and POPUPHEIGHT, since the thumbnail size is specified by regular WIDTH and HEIGHT.
:::::: Of course, this raises the question: how can an external process upload to LifeWiki? That external process can contain secret environment variables (and indeed does, to securely push updates to the live Catagolue). I believe you had an [[User:Apple Bot]] which automated things -- does that run externally? [[User:Calcyman|Calcyman]] ([[User talk:Calcyman|talk]]) 22:52, 27 April 2019 (UTC)
 
::::: I '''would''' like to bump up the maximum height and width, to be able to use LifeViewer in more or less full-screen mode. 2048x1600?  Or is there any downside to just saying something like 4096x4096, with the understanding that if that causes memory issues then that's the problem of whoever set the size that big? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 16:35, 6 March 2018 (UTC)
 
::::::I like the idea of POPUPWIDTH and POPUPHEIGHT. That would also solve the popup height (560 pixels) since you could put POPUPHEIGHT 480 in config/default if you wanted it to be a site wide standard.
::::::I'll increase the maximum width and height to 2048. Though I'll probably cap it at the actual screen size or we'd be in Viewer half off screen purgatory.
::::::The issue with clicking on a Viewer that's half off the screen is thorny. I remember taking a brief look at it a year or so ago when you last mentioned it. I'll take another brief look. Perhaps two brief looks is enough for inspiration to strike. [[User:Rowett|Chris Rowett]] ([[User talk:Rowett|talk]]) 18:15, 6 March 2018 (UTC)

Revision as of 22:52, 27 April 2019

Taka Tiki Break

Welcome, one and all, to the Tiki bar! This page is used to discuss the technical issues, policies, and operations of the LifeWiki. Or just sit down, relax, and enjoy a cocktail.

Welcome to the Tiki bar

Wikipedia has the Village pump, Wiktionary has the Beer parlour, but the LifeWiki's lacked a central page for discussion so far other than User talk:Nathaniel. So I took the liberty to create the Tiki bar to facilitate discussion in a friendly and relaxed atmosphere. Welcome! Apple Bottom (talk) 11:09, 13 June 2016 (UTC)

Archived discussions

Note: active discussions are never archived while still active.

The list(s) of rules investigated on Catagolue

Short version: these have increasingly become a burden to maintain on-wiki, and with Catagolue now having its own endpoint providing an overview over and an exhaustive list of all rules searched, they're largely irrelevant now. (The on-wiki list was only started because Catagolue didn't provide one at the time.)

So I'm giving up maintainership of these. If anyone wants to take over, please do! Apple Bottom (talk) 17:00, 7 January 2019 (UTC)

If we are to retire the List of rules investigated on Catagolue, how should we do this? Add a notice at the top saying:
"This page is no longer actively maintained in favour of the equivalent Catagolue page."
or words to that effect?
It still might be a good idea to actually keep the information in the LifeWiki, because Catagolue occasionally has outages when the daily quota has been exceeded, whereas conwaylife.com tends to be permanently accessible. Calcyman (talk) 18:26, 7 January 2019 (UTC)
The wiki page does have some advantages over the Catagolue one, such as listing the rule integers for outer-totalistic rules and being easier to edit (e.g. adding names for new rules). 77topaz (talk) 23:51, 7 January 2019 (UTC)

Time for a consensus decision on pnames?

I've run the RLE-scraper script to collect new RLE files for a bulk upload. The script found 321 new RLE files. Before I send them to Nathaniel, it looks like I'll be doing some more standardization, especially involving pnames.

The guidelines for creating pnames say very clearly:

pname	(required) The name of the pattern being described, but converted to lowercase and with all non-alphanumeric characters and spaces removed.

This has worked fine for us for the great majority of cases, but there are two related cases where blindly following that rule creates not-very-good pnames:

  1. apgcode-based names, where removing the underscore can sometimes concatenate two strings of digits. For example, according to the rule, Xs15_3lkia4z32 is theoretically supposed to have a pname of "xs153lkia4z32", which reads as if it's a 153-bit still life. Underscores are confusing in article names because MediaWiki turns right around and renders the name without an underscore. But they do seem to work fine, and they're necessary in other article names, anyway -- raw RLE "pname_synth" synthesis files need them.
  2. patterns named after a Niemiec or pentadecathlon.com ID, where removing a period causes similar problems with readability. Examples:
  • 37P7.1, created by Sokwe in 2009 with a pname of "37p7.1" -- including the period. Another similar case is 37P10.1, where Sokwe changed the pname from Nathaniel's original "37p101" to "37p10.1", back in 2010.
  • 38P11.1, with a pname of "38p111". Periods in filenames are definitely annoying because the part after the period can look like a file extension... but I think "38p11.1" would really be better here.
  • Several patterns with pnames created by Entity Valkyrie recently: 14p2.1, 14p2.3, 14p2.4, 28p7.3, 28p7.3bumperbouncer, 28p7.3eatingss, 31.4, 33p3.1, 33p3.1bumper, 33p3.1eatingss, 33p3.1reactions, 34P6.1.

Capitalization Bad

The last pname in that list is also nonstandard due to capitalization, but that's a separate problem. The full list of capitalized pnames is 35P12, 53P13, 55P10, 113P18, BF20H, BFx59Hinjector, FMHEB, Gtolwss.rle, L112functions, L156reactions, L156variants, L200, Lightspeedcrawler, P5HWV, P58toadflipper, PT8P, PT9B, PT38P -- again all by Entity Valkyrie, I think. I'll definitely have to go through and fix all of these, just because they're dangerous to cross-platform uses of the pattern collection: "35P12.rle" will overwrite "35p12.rle" on a Windows operating system, but not on Linux. And LifeViewer fails to find "RLE:35P12" when told given "pname = 35p12", because the LifeWiki's filesystem is case-sensitive. So I think the no-capitalization part of the pname guidelines should continue to be very carefully enforced.

Periods Not So Bad

However, given the long precedent for pnames occasionally including periods, I'm not planning to change any of Entity Valkyrie's pnames if a period is the only non-standard part. Should probably do something about "31.4", but the rest seem okay.

-- Anyone know where the ".4" comes from in "31.4", by the way? The problem with calling the thing just plain "Snark catalyst" is that there are several workable Snark catalysts. 31.4 is one of the two most common ones, but it's not exactly "the" Snark catalyst. But no other common name has caught on. (Bellman Zero, anyone? Catalyst B0? 31.4 seems better than either of those.)

Summary questions

TL;DR: Does anyone object if I adjust the pname guidelines to say that periods are okay, but "only where necessary", or something along those lines? And also say that underscores are okay only in apgcode pnames and raw-RLE _synth articles? Underscores are a minor nightmare, because MediaWiki automatically converts them into spaces, and pnames really aren't supposed to include spaces. I'm reasonably sure that that underscore-to-space conversion is bound to cause coding difficulties somewhere sometime. But unless someone wants to recommend consistently using periods in place of underscores in apgcode pnames, I just don't see any good alternative.

Comments, suggestions, disagreements? Please post 'em here! Dvgrn (talk) 17:56, 15 January 2019 (UTC)

Also, not sure if anyone will find this note here, but gmc_nxtman's recent series of synthesis postings made for a good test case for reworking several pages recently updated by AwesoMan3000. It's been different changes for every article, but it tends to take a lot of fiddly adjustments to synchronize the pname, RLE, synthesis RLE, LifeViewer config, and any files already uploaded to the LifeWiki server.
I've done half a dozen articles for starters: very long snake, trans-block on long hook, integral with tub, eater head siamese eater tail, cis-block on long hook, and aircraft carrier with feather. LifeViewer generally Just Works once there's a raw RLE article with the right pname, but the images come out too small by default, so I've been adding viewerconfig THUMBSIZE 2. This should probably be a default added to the template, with SUPPRESS, except I don't know if that will change the looks of a lot of existing articles).
This leaves boat with long tail, beehive with nine, broken snake, cis-boat with nine, eater bridge eater, long boat tie ship, long shillelagh, ortho-loaf on table, snake siamese snake, snake with feather, snorkel loop, trans-boat on table, very long shillelagh, and sesquihat that still need editing to add the latest syntheses. I could definitely use some help with updating these:
  1. decide whether the pname should change to match the article name
  2. new synthesis copied from Talk:{name} to RLE:{pname}_synth, either updating or replacing any RLE that's currently there
  3. fix "synthesis = {n}" in infobox
  4. add to infobox:
    viewerconfig     = [[ THUMBSIZE 2 ]]
  5. remove Life1.05 and Life1.06 lines (optional)
  6. double-check that article name matches article text and Catagolue link -- there's often something wrong there
  7. add RLE:{pname} if it's not there already, to make LifeViewer show up instead of an old image file
A couple other tasks are admin-only --
  1. If pname has been changed, delete {old pname}*.rle from LifeWiki server to keep things in synch
  2. If Life1.05 and Life1.06 lines have been removed, delete corresponding files from server. (I'm leaving the "plaintext" (.cells) links, because I'm hoping to generate those automatically for all sub-64x64 patterns currently on the LifeWiki.)
  3. When a good break point is reached, re-run the auto-upload script and collect all the new pattern and synthesis RLE text into a ZIP file for bulk upload.
Here again, I'm leaving some broken links to pattern or synth files, which I'm planning to fix fairly soon (by putting the files back in place using the auto-upload script).
This is the kind of project where I'm very unlikely to get everything exactly right. Independent reviews of all this stuff will be greatly appreciated, and just let me know what I've done wrong so far. Dvgrn (talk) 12:33, 21 January 2019 (UTC)

Special pages broken?

I have noticed several oddities in a few of the maintenance pages:

Anyone know what's up with these? Ian07 (talk) 23:35, 15 January 2019 (UTC)

Rulespace info for eaters, reflectors, conduits, etc.

So lately I've been busy adding isorule parameters to the infoboxes for various patterns. So far I've stuck with oscillators, spaceships, still lifes, and infinite growth patterns, but I'd also like to expand this to other pattern such as conduits which are a bit more ambiguous. For example, the sidesnagger works in B/S23, but obviously there are no gliders for it to eat. I'm of the opinion that for these patterns we should show the rules they're actually useful in, since that's what makes them notable in the first place, (though with the possible exception of eater 1 since it's such a small pattern) but I'd like to hear others' thoughts on this. Ian07 (talk) 18:57, 19 January 2019 (UTC)

My main thought is that all but the very simplest and lowest-step-size conduits are very close to rule-specific -- useful only in B3/S23. Adding a B8 or an S8 might be one of the few isotropic bits where some conduits would survive the rule switch (?). Even if a particular conduit works in another rule, it's only interesting if a large enough group of conduits works in the alternate rule to make it computationally universal. (That would probably make it construction-universal, too, but only after someone re-did all the single-channel search work to produce new recipe libraries.)
Anyway, from my point of view the reason why B38/S23 or B3/S238 doesn't get a lot of attention is that there's nothing really new and exciting about those rules to make up for the fact that the rule spec is just that little bit more complicated... pun maybe intended. Dvgrn (talk) 02:04, 20 January 2019 (UTC)

apgsearch and Catagolue

Would anyone be opposed to a reorganization of the information on these two articles? I noticed that a lot of the information in the Catagolue article really applies more to apgsearch rather than the site itself, and therefore might be worth moving. Such a change would be particularly easy to revert if need be, but I'd rather not go through the effort if that's the case, so I'd also like some feedback about that. Ian07 (talk) 23:32, 19 January 2019 (UTC)

No opposition here. I wouldn't think anyone would be likely to revert changes to those articles, just the usual quick review to see if the changes happen to serve as a reminder of anything else that should be added. Dvgrn (talk) 02:04, 20 January 2019 (UTC)

Pattern collections

I just thought to check the LifeWiki pattern collection for outdated links to Mark's database. There were 165 RLE files with dead links in the comments. I fixed two of them, one by creating an RLE:{pname}_synth page and one by editing the pattern comments and deleting and re-uploading the file by hand... and then thought, "Nope. There has to be a better way."

Now I'm just doing a search-and-replace, "http://www.conwaylife.com/ref/mniemiec" instead of "http://home.interserv.com/~mniemiec/", and will ask Nathaniel to re-upload all those files to the server along with the output of the auto-upload script.

Of course, if these _synth files were created when that website was available, a lot of the actual syntheses might be out of date as well. A dynamic endpoint somewhere for reporting the actual latest synthesis for each object would certainly be a step up from the current perpetually out-of-date synthesis files.

-- On the other hand, there are big advantages to Mark's comprehensive collections of practically every historically known way of constructing each object. Sometimes you might want a synthesis with a suboptimal number of gliders but better clearance than usual, or might want an incremental construction starting from one half of the still life, or whatever. Reporting just a single current-best synthesis would lose a lot of that useful information. Dvgrn (talk) 22:25, 24 January 2019 (UTC)

The problem of deciding what to do about glider syntheses is still where it was in January. I'm still leaning toward leaving things pretty much as they are until Mark Niemiec's new synthesis database becomes available, and then figuring out how to link directly to the relevant Niemiec synthesis page, for any object that has a LifeWiki article -- and removing those _synth files from the Patterns folder. Most of the Niemiec-derived _synth files that have been uploaded will probably be subtly out of date when the new version comes out. Anyone have any better ideas?
In other news, User:Dvgrn/Plaintext_files documents the 695 new plaintext-format .cells files that are available on the server now. This means that a lot of articles' infoboxes could now be updated to say |plaintext = true along with |rle = true. If nobody wants to tackle making these several hundred edits manually, I might eventually look into setting up some kind of automated search-and-replace functionality, based on this kind of article list. Dvgrn (talk) 22:45, 17 February 2019 (UTC)
I noticed once again that there are quite a few patterns with capitalization in their names, most of which (with a few exceptions) were created by User:Entity Valkyrie. Even RLE:ModelD is still in that list despite having been deleted and moved over a week ago, so those should probably be fixed. Something more confusing, though, is that certain small patterns (such as 44P14 and 44P12.3) were labeled as being too large despite easily fitting within the 64×100 limit. What's up with that?
As for adding these to the infoboxes, I'll probably get to that eventually but I'm a bit too busy at the moment. Ian07 (talk) 23:14, 17 February 2019 (UTC)
Many thanks for the review. I believe I've patched all the remaining instances of pnames with capital letters: 68p16.cells/.rle, 76p8.cells/.rle, 113p18.cells/.rle, 209p8.cells/.rle, p130shuttle2.cells/.rle, l156reactions.rle, p24lwss.rle, and p52g3to4.rle. Obviously in the future the auto-upload script should check for capital letters and complain.
I haven't yet looked into why a few small patterns didn't get .cells files created properly. Will figure it out and fix that bug along with adding the capitalization check. That one isn't too worrisome -- anything that got missed in the first round we should be able to pick up on the next auto-upload. Dvgrn (talk) 19:54, 18 February 2019 (UTC)
The missing small files that were flagged as "too big" seem to have been mostly due to patterns with no header lines in the RLE namespace. I think I've fixed all of those now. A few such files managed to get themselves uploaded to the LifeWiki server, but the auto-upload script now reports those when it sees them, so I think those are all cleaned up now also.
As before, if anyone wants to add "plaintext = true" to the many articles where that's missing, please go right ahead. The latest auto-upload script report has been added to User:Dvgrn/Plaintext files, so the dump of newly added .cells files there can be used as a checklist. There's also the option of adding plaintext file links to embedded viewers as appropriate. I did a couple of samples, e.g., 68P9 -- it's pretty easy. It should always be just a matter of adding this to the caption:
[http://www.conwaylife.com/patterns/{pname}.rle RLE format]
[http://www.conwaylife.com/patterns/{pname}.cells Plaintext format]<br />
Maybe this is something that should be done with a template, to make things even easier?
The script now also checks for pnames with uppercase letters and complains about that. I don't think there are any of those at the moment. If anyone sees other problems or oddities that the auto-upload script should be catching but isn't, or if there are any other surveys or reports that it should do while it's running through all the articles anyway, please make suggestions here. Dvgrn (talk) 15:09, 27 March 2019 (UTC)
I just modified Template:EmbedViewer to link to the RLE and Plaintext automatically. The biggest problem with this, of course, is the larger patterns don't have a plaintext file. I'm not sure how to elegantly deal with this, unless there's a way to make it read the RLE header and find the pattern size or something. Ian07 (talk) 19:55, 27 March 2019 (UTC)

Help Wanted with templates and general review

Here are three problems that I'd like to fix. I could probably track down the necessary template changes myself, eventually, but I'd like to have expert advice if I can get it. Both of these items have been sorta kinda mentioned on the Tiki Bar before, fairly recently:

1. I think THUMBSIZE 2 should be the default for all infobox LifeViewers. I keep adding #C [​[ THUMBSIZE 2 ]] to get infobox pattern frames back to the right size. There seem to be hundreds of these THUMBSIZE 2 specifications by now, but looking through a bunch of new aircraft-carrier-themed still lifes that AwesoMan3000 added recently (see links a few paragraphs up)... those all need the same addition done to them, and there are dozens or hundreds more existing articles that still have the same problem. The SUPPRESS command should follow THUMBSIZE 2, so that the relatively few viewerconfigs that specify THUMBSIZE 3 won't start throwing errors after the change is made.

2. As of this morning, Nathaniel has officially removed the Life 1.05 and Life 1.06 patterns from the LifeWiki patterns directory. That means the infobox template probably ought to be adjusted to stop showing those links. We could remove "|life105 = true // |life106 = true" from all the articles that have those infobox parameters instead, but only if someone wants to get a leg up on entry into the 10,000 Club.

The Life 1.0x patterns are still on the server, but hidden in a ZIP file. It seems to me that going forward, the way to make patterns available in non-standard non-RLE formats will be to publish conversion scripts that work on the contents of all.zip.

Anyway, there are some places in the infobox template documentation and other docs that mention Life 1.0x, which I can track down and fix eventually if no one else gets to it first.

3. Let's get rid of that dependency where you have to have rle = true or nofile = true before LifeViewer will show up -- as per Nathaniel's recent advice. Dvgrn (talk) 15:51, 25 January 2019 (UTC)

Okay, Nathaniel has done a bulk upload of 387 RLE files, collected by the auto-upload script for every article in the main namespace that referenced a pname and had RLE:{pname} and/or RLE:{pname}_synth articles in the RLE: namespace. That means that as of today, there should no longer be any broken RLE pattern download links (the ones that show up when you say rle = true in the infobox).
There shouldn't be a lot of broken synthesisRLE = true links, either, but those might happen if somebody set that flag to true but then didn't create the RLE:{pname}_synth article.
I'd suggest that people shouldn't go too wild uploading new glider syntheses, until the next version of Mark Niemiec's database comes out -- and maybe not even then. It would be nice to come up with direct dynamic links to synthesis patterns on Catagolue and/or in Mark's database, so that we don't always have slightly antiquated information copied from those places and uploaded to the LifeWiki pattern collection, where they're kind of hard to keep up to date.
I guess the next item to tackle is automatic generation of the plaintext = true .cells files for every article about a pattern that's 64x64 or smaller (let's arbitrarily say). Does anyone have suggestions for other checks and auto-updates that the uploader script might be able to accomplish? Dvgrn (talk) 04:25, 27 January 2019 (UTC)
@Ian07: Wow, that was a lot of fast Life 1.0x cleanup work. Thank you! I'll see if I can get a bulk upload done for .cells format soon, for all sufficiently small patterns (which is most of them). Then the LifeWiki will suddenly be following a standard policy on pattern formats, fairly universally across all articles. Dvgrn (talk) 20:49, 28 January 2019 (UTC)
I've just added THUMBSIZE 2 as a default option for the viewers to save myself some trouble. As for item #3 in your list, the solution probably in Template:InfoboxStart though I'd rather leave that to someone more experienced with templates. Ian07 (talk) 22:12, 13 February 2019 (UTC)
Things are starting to look pretty good for plaintext support on LifeWiki. The latest auto-upload report is here. There are still a few weird exceptions getting reported, but for the most part I can happily ignore them now.
I'm vaguely considering making some custom plaintext files for special-case patterns like the bumpers and bouncers, where there are extra gliders added for animation purposes that happen to increase the bounding box beyond the 64x100 limit. It seems reasonable to upload plaintext versions without the extra gliders for those cases.
That will give me an excuse to go through the report and make sure there aren't any other odd cases where patterns are mysteriously getting missed, even though they should be small enough for a plaintext version. I think that's not a problem any more, but I haven't triple-checked. If anyone sees leftover stuff that the auto-upload script still isn't handling correctly, please let me know. Dvgrn (talk) 23:17, 2 April 2019 (UTC)
I skimmed through the list, and the only problem I found was that switchenginechannel.cells didn't seem to get generated despite being smaller than the 64x100 limit, even though it has shown up in all of the "Cells files created" sections in User:Dvgrn/Plaintext files. Other than that, there doesn't seem to be any errors on the computer's part. I saw a few small patterns in the "No plaintext param in infobox" section, but that appears to be due to my own error, so I'll double-check that whenever I get the chance. Ian07 (talk) 23:33, 2 April 2019 (UTC)
Huh, that's an odd one. There were a couple of nonstandard things about the uploaded RLE, so I replaced it with a more standard version. Will re-run the script at some point and see if I get a .cells file out, and one way or another that should help me track down the bug -- can't see why the code has been skipping that pattern, but the script is getting embarrassingly messy so there could be all kinds of subtle errors hiding in there. Thanks for the review! Dvgrn (talk) 02:33, 3 April 2019 (UTC)

Replacing images with animated viewers

I just started on a project to add more animated viewers in place of static images on the wiki. However, I've already started running into some problems, particularly with the pushalongs in the 114P6H1V0 article. I already created an RLE:114p6h1v0pushalong, but I'm not sure how exactly the comments in the RLE:pname page get translated to the actual files, especially since files like block.rle have comments that aren't in the RLE namespace. I'm worried that I'll unintentionally remove said information from the wiki's pattern collection if I'm not careful.

I'm thinking it might be better for now to just focus on the infobox images and not worry about the rest of the article, especially considering the images in the article have colors and arrows and other things which might be lost with an animated viewer. I'd be perfectly fine with RLE:114p6h1v0pushalong being deleted for the time being so it doesn't replace 114p6h1v0pushalong.rle in the next bulk upload.

Even then, though, as with the Block example above, there's still comments in the original files that may or may not be overwritten since I don't know how bulk uploads work. I'd basically just like to know what precautions to take to make sure I don't break anything with this project before I proceed. Ian07 (talk) 16:06, 2 February 2019 (UTC)

All good questions. The main answer is that the auto-upload script is designed so that it never overwrites any files that are already on the LifeWiki server, so you don't have to worry about overwriting anything. Comments in block.rle are safe, and the addition of RLE:114p6h1v0pushalong won't damage the existing uploaded file on the server.
Now, if we deleted 114p6h1v0pushalong.rle from the server, and added these two comment lines at the top of RLE:114p6h1v0pushalong --
#O Hartmut Holzwart
#C A pushalong for the c/6 orthogonal period 6 spaceship 114P6H1V0.
- then the auto-upload script would regenerate a fairly close copy of the file that we deleted. The #N line would be a little different since the default is now {pname}.rle, and the script produces two URL lines instead of just one: a link to the article followed by a direct link to the (future location of the) file itself on the LifeWiki server.
So far I've always looked through the RLE files produced by the script, and hand-edited anything that didn't come out quite right -- order of comment lines, etc. That's probably a tradition that I'll continue, so that's another line of defense against accidental damage. With any luck the next run won't be quite so much work, as long as no one goes back to uploading new headerless RLE or other nonstandard stuff that the script doesn't know how to clean up.
See also User_talk:AwesoMan3000#Standardization_of_comment_lines for a summary of what should, or could, still be included in comment lines, versus what is auto-generated. Maybe after that summary gets a good trial run, I can migrate it into the actual documentation. It will be strange and wonderful for a new LifeWiki editor to actually have a reasonable way to learn how to add new articles with associated LifeViewer-displayed patterns... the docs have been partly stuck in 2009 ever since, well, 2009 I suppose! Dvgrn (talk) 04:07, 3 February 2019 (UTC)
One more detail that isn't clear from the above:
The auto-upload script will automatically generate a slightly nonstandard #O line including both the discoverer and the discoveryear from the infobox -- like
#O Paul Tooke, 2008
for the 114p6h1v0 article. But that only works for patterns that have infoboxes. Other patterns may also have pnames, but only show up in embedded viewers in some other article. In those cases the script can't be sure that the discoverer or discoveryear will be correct, so it will just leave that optional line out.
Theoretically we could invent some standard way to include attributes in an embedded viewer template to convey that information. But since those attributes aren't actually used by LifeViewer it seems just as easy to make a habit of adding a comment line to the RLE.
For example, adding "#O Hartmut Holzwart, May 2009" to RLE:114p6h1v0pushalong would convey slightly more information (month as well as year) than the auto-upload script manages to collect for main-article patterns. Dvgrn (talk) 04:19, 3 February 2019 (UTC)
Just looked over the first batch of patterns added to the RLE namespace for the convert-static-images-to-LifeViewer project. Everything looks pretty workable. I think I'll adjust the auto-upload script to skip the generation of an #O line if there's one in the RLE already. Usually what's in the RLE will be a more specific date than what the script can produce from the discoveryear parameter.
Maybe I should change the script to find the "name" parameter if there is one, and use that instead of {pname}.rle in the #N line? It's kind of weird having ".rle" as part of the defined name. The problem is, there isn't a name= line in embedded viewers, but there is a pname= line, and I wanted some information in that first line that could be collected consistently. (?)
The only other thing I noticed offhand is that a few RLE files ended up getting comment lines with links: for example, RLE:151p3h1v0 has
#C http://www.conwaylife.com/wiki/index.php?title=233P3H1V0
There's a shorter form that works just as well:
http://www.conwaylife.com/wiki/233P3H1V0
But really I don't think there's any need to add article or pattern links to the RLE namespace. They'll get generated and added automatically by the auto-upload script. If you're actually looking at an RLE file in the RLE namespace, and wondering which article it goes with, then it's pretty quick to click the "What links here" link in the sidebar to find that out, instead of copying and pasting part of a comment line.
Based on experience so far, does there seem to be anything else that really ought to be adjusted for this whole conversion / auto-upload process? Dvgrn (talk) 22:54, 3 February 2019 (UTC)
Oh, one more minor thing: looking at LifeWiki articles with lots of LifeViewers on them, I'm starting to think that there might be such a thing as too much animation sometimes. If the infobox has an animated spaceship or oscillator in it, it might make sense to leave out AUTOSTART on (some?) embedded viewers in the actual article. It can be nice to have something on the page that isn't moving -- or to be able to open in LifeViewer and step through a pattern one tick at a time, without having to disable AUTOSTART first. Dvgrn (talk) 23:12, 3 February 2019 (UTC)
I haven't had any other problems so far, though of course I've only just started this project and have only gotten through around 1% of all the articles. As for the comment lines in RLEs, I'll try and be more consistent with them from here on out. (will double-check the ones I've already made to see if there's anything that should be added or removed) And yeah, I do agree that too many auto-started viewers looks very cluttered, so here's a rule of thumb I'm probably going to use: there should be no more than three AUTOSTART viewers in close proximity to each other. Thoughts? Ian07 (talk) 23:50, 3 February 2019 (UTC)
Fine by me. I've been thinking two animated viewers at once is usually enough action, but it depends on the article. Just maybe something to keep in mind a little bit. Dvgrn (talk) 01:33, 4 February 2019 (UTC)

Arbitrary adjective names

Per this forum post, I've removed every Arbitrary Adjective Name™ I could find on the wiki and moved it to a more easily-recognizable name (article text has also been properly updated to match title). Here's the list of files that need to be deleted as a result:

   absurdlylongboat.rle
   absurdlylongship.rle
   absurdlylongsnake.rle
   boatwithextralongtail.rle
   extralongbarge.rle
   extralongboat.rle
   extralongcanoe.rle
   extralonghookwithtail.rle
   extralongintegral.rle
   extralongshillelagh.rle
   extralongship.rle
   extralongsnake.rle
   extralongsnake_synth.rle
   extralongtubshillelagh.rle
   ludicrouslylongboat.rle
   ludicrouslylongship.rle
   remarkablylongboat.rle
   remarkablylongcanoe.rle
   remarkablylonghookwithtail.rle
   remarkablylongshillelagh.rle
   remarkablylongship.rle
   remarkablylongsnake.rle
   remarkablylongsnake_synth.rle
   ridiculouslylongboat.rle
   ridiculouslylongship.rle
   stupidlylongboat.rle
   stupidlylongship.rle
   terriblylongboat.rle
   terriblylongship.rle
   terriblylongsnake.rle

Ian07 (talk) 17:12, 23 February 2019 (UTC)

I think the above are all cleaned up correctly now, as far as uploaded patterns getting deleted. There was also a file out there called "extraextralongsnake_synth.rle" which turned out to have the Niemiec synthesis file for long^4 snake rather than long^5 snake. (Yup, getting rid of the extra and very and Arbitrary adjectives in favor of a simple long count still seems like a good simplification.)
The _synth files are still troublesome in general, because the files that are already out there often have generic links to the Niemiec database search page, rather than to the actual file. And of course on that database search page, the way you'd find a long^5 snake or whatever is actually by looking up "extra extra long snake"... so there's some possibility that the cleanup of "extra" creates some new confusion while reducing some other old confusion.
Anyway, I'd still recommend not starting any kind of comprehensive review of _synth files until the new version of Niemiec's database becomes available.
The second half of this cleanup will require re-running the auto-upload script, to get the .rle and .cells versions of all these files back onto the server with their new longN* names. I'm planning to wait until at least the end of this week before tackling that job. Dvgrn (talk) 22:27, 25 February 2019 (UTC)
Upload of new RLE and plaintext files should be done now. Some of these names are still preserved as redirects, like Stupidly long boat and also as an alternate name given in the text of the article. I may eventually be inspired to track down all these leftovers and clean them up, but for now I'm kind of worn out from wrestling with the auto-upload script. There's always another degenerate case that hasn't been handled yet... Dvgrn (talk) 14:45, 27 March 2019 (UTC)

Non-notable isotropic rules

Many pages on isotropic non-totalistic rules have been proposed for deletion. It seems that some users (myself included) have moved articles on such rules to their namespace, such as here. This seems to be an ongoing project and deserves discussion here.

Should I adopt salad or would someone else like it? I have a couple collections of ships that I’d like to move to the page should it be adopted. Moosey (talk) 17:15, 28 March 2019 (UTC)

I reverted the speedy deletion tag on Goat Flock because there's a wiki link from the Catagolue rule page which originates from the rule list.
If there's still a consensus that the main namespace redirect should be deleted, then the rule list would need to be updated with 'Goat_Flock' replaced with 'User:AwesoMan3000/Goat_Flock' after the exclamation mark on line 120. Calcyman (talk) 09:53, 29 March 2019 (UTC)
I like the idea of having some space on the LifeWiki for people to document their favorite isotropic rule discoveries. It makes sense to me that all of these could go somewhere other than the main namespace, just to keep things that are spaceships in other rules from getting mixed up with Conway's Life spaceships, and so on. The User namespace seems like a fine place for isotropic rule pages, along the lines of Moosey's suggestion.
But sometimes it's hard to know who should "claim" a rule -- it doesn't necessarily make sense for any particular user to start a page, and yet it's clear that a page should be started. Is there any harm in inventing a new namespace for this purpose? Would anything be wrong with Isotropic:Goat Flock, for example? Dvgrn (talk) 13:59, 29 March 2019 (UTC)
@dvgrn: good idea. It would prevent too much clutter in the main namespace without making anyone frustrated about the fact that [insert frustration here] happened.
who can make new namespaces? Moosey (talk) 14:41, 29 March 2019 (UTC)
I agree with the namespace idea. Perhaps we could name it something like "OCA" so we could move existing articles such as HighLife there. As for specific patterns, I'd suggest making them subpages of their native rules, e.g. OCA:HighLife/Bomber so they don't get mistaken as rules. Of course, the notability guidelines should still apply here, or else this will become way too hard to maintain. Ian07 (talk) 14:33, 30 March 2019 (UTC)
I agree with all of Ian07's suggestions above: using OCA for the namespace, with rule pages (except for CGoL) in that namespace, and rule-specific patterns as subpages of their rules. Calcyman (talk) 17:12, 30 March 2019 (UTC)
@Moosey (and everyone else) -- based on a very small amount of Googling, officially adding a new namespace to the LifeWiki namespace dropdown list is a Nathaniel-only change on the server side. I tried moving the "LifeHistory" article to OCA:LifeHistory as an experiment; the move was technically successful, but I think the article is just called "OCA:LifeHistory" and it's still in the main namespace.
I've sent a request to Nathaniel. I or somebody will post an update here if and when "OCA" becomes an official namespace. Until then there's probably no point in trying to move any more OCA pages. Dvgrn (talk) 19:34, 30 March 2019 (UTC)
There's now an OCA namespace! However, I've sent a follow-up question to Nathaniel, because I'm not sure what the best way would be to clean up an embarrassing problem I created. Currently if you follow the LifeHistory link, you'll see a page called "OCA:LifeHistory", but that's still the actual name of that article, it's not in the OCA namespace. As a weird side effect, it doesn't seem to be possible to either edit or move that "OCA:LifeHistory" page, so it doesn't seem like I can fix the problem.
I can solve most of the problem by changing the LifeHistory redirect and creating an actual LifeHistory page in the OCA namespace. That might leave an orphaned "OCA:LifeHistory" page out there somewhere, but it doesn't seem as if there's any way to get to that article except via the current redirect. Does anyone see an easy way to move that article to where it belongs? I'm a little worried that if I don't clean it up correctly, it will be an unexpected headache sometime somehow. Dvgrn (talk) 15:37, 4 April 2019 (UTC)
Stand by until further notice -- please don't try making any OCA-namespace pages just yet... hoping to get my OCA:LifeHistory mess fixed first. Dvgrn (talk) 17:43, 4 April 2019 (UTC)
Okay, it looks like Nathaniel has successfully cleaned up OCA:LifeHistory, so now it's actually in the new OCA namespace. Let's try moving Goat Flock and other similar pages out of the User namespace and into OCA -- there shouldn't be any need for people to "adopt" these pages individually any more. Dvgrn (talk) 01:55, 5 April 2019 (UTC)

(Resetting indent) All of the rule pages have now been moved to the OCA namespace, and the resulting double redirects fixed, but I have a few questions about how to continue from here:

  1. Should rule families also be moved (e.g. OCA:Generations) or should the namespace just be for individual rules/patterns?
  2. Should we use the same pattern categories as for Conway's Game of Life, or will that cause confusion?
  3. Is it possible to make Special:SpecialPages include OCA pages? This is not as important but it would be nice as a maintenance tool for these articles.

Ian07 (talk) 20:43, 5 April 2019 (UTC)

For #3, I don't think there's a (reasonably easy) way to add something like that to Special:SpecialPages, but a list of all pages in the OCA namespace can already be viewed here. Nathaniel (talk) 21:39, 5 April 2019 (UTC)

Caterloopillar "Family Page" vs. Specific Pattern

Does anyone have any clever suggestions about how to deal with the problem that

1) there is a family of spaceships called Caterloopillar, with different speeds, and different bounding boxes and cell counts for each speed, and

2) there is a specific Caterloopillar with speed c/8 (for example) and a specific bounding box and cell count

?

It would be nice to be able to link to a specific pattern or two, in a separate section inside the generic "Caterloopillar" article. But it doesn't really make sense to have bounding box, cell count, etc. parameters in the infobox for the generic article.

What's the best way to make this kind of thing clearer? Could we invent some kind of special "pattern family" infobox template where no parameters are required, and parameters are only displayed if they're defined? Dvgrn (talk) 15:08, 5 April 2019 (UTC)

We have already several families of patterns. Geminoids are also family and deserve general family page. As well as very soon the 0E0P metacell will start to generate some more interesting news with special cases and other things (especially if we use turing machine to calculate the next iteration). I'm not sure exactly how to classify family. Does the helix based technology which sends *WSS upwards is considered a family of spaceships (as it contains the caterloopillar family). But I think the number of natural families of patterns is small, and it's important to think about pattern families as well. So maybe we need to start from a page where we define what does it means pattern family. I would define it as collection of designed patterns with noticeable feature which constitutes major role in the interest this pattern is arising (geminoids for example, or strange loopers, or helix based spaceships, or natural fuse based etc.).

I think also we in total freedom here in the sense how do we analyze the patterns and the scope of the wiki articles. I think the families ignorance might be our weak spot in how we think about CGOL in general, and new families might be found which are less intuitive to think about now, and those families might bring new discoveries and design patterns just due to someone figuring out a new family.

But to state it simply - it would be also nice to simply separate the two articles of caterloopillars that's all. In the banner we can simply place "-" for everything. The bounding box is the only problem as it creates -x- instead of nothing. We can insert adjustable for speed or "Less than c/4".

Simsim314

Glider syntheses from Shinjuku with help from Catagolue

-- Okay, we can get started on the next stage of improvements for glider synthesis reporting now! This came in from calcyman last night (links slightly edited):

Catagolue can now be queried for syntheses from Shinjuku. Here's the text link that's probably most appropriate for LifeWiki.

Subsequent path parts are ignored, so you can do things such as: https://catagolue.appspot.com/textsamples/xp14_j9d0d9j/b3s23/synthesis/tumbler_synth.rle

The syntheses are also embedded in a LifeViewer on the object pages.

Finally, you can query the best known costs (in gliders) of all objects known to Catagolue. That's good for finding (for example) disparities between LifeWiki and Shinjuku to see whether either of them needs updating.

In particular, the update script uses this so as to only bother uploading (and indeed creating) RLEs of the objects that need to be updated.

My idea is that this should be an additional link in the "glider synthesis" section of relevant infoboxes. If synthesisRLE=true, then we can serve up both these Catagolue links and the uploaded synthesis file (which may be different from the Shinjuku/Catagolue version: uploaded files may contain multiple syntheses with different construction envelopes, or continuous instead of incremental syntheses, sometimes two in a row for spaceships to show the repeat time, etc.)

When the new version of Mark Niemiec's database becomes available, maybe we can use a similar system to link directly to conwaylife.com/ref/mniemiec/*, instead of uploading copies of all those patterns which will then inevitably go out of date.

However, it's not really ideal to use synthesisRLE=true to decide whether to show these links. For example, we can now produce syntheses for all the 12-bit still lifes that AwesoMan3000 made articles for last year, like teardrop with claw and so on. Most of these don't have _synth files in the raw RLE namespace or uploaded to the server -- and now we don't need to do that. But if we had to add synthesisRLE=true to the infobox to get these new Catagolue links, then a link to the LifeWiki pattern collection would also be created.

If we really want all these syntheses to be part of the LifeWiki pattern collection, then we could certainly bulk-upload them all, and do a new bulk upload every year or so to catch anything that's gotten out of date. However, the total number of files on the server is already getting very unwieldy, at least with the current maintenance system, and this would only increase the pain. Maybe it would make sense to remove all the _synth files from the pattern collection instead, and offer a separate downloadable ZIP file for glider syntheses?

Maybe we should just always display a Catagolue synthesis link, and then maybe have Catagolue display something slightly more edifying than "null" if no synthesis is known. Any other ideas or suggestions? Dvgrn (talk) 15:24, 13 April 2019 (UTC)

I think the determining factor (once the remaining small objects are in Shinjuku) is to use Catagolue if there's an apgcode provided, and to fall back on _synth.rle otherwise. The reason is because LifeWiki has Orthogonoid_synth.rle and Demonoid_synth.rle, for instance, and arguably HBK_synth.rle could also be included in LifeWiki but not in Shijuku. Calcyman (talk) 16:10, 13 April 2019 (UTC)
That sounds reasonable-ish. Mind you, people have been adding apgcodes for a lot of things (from lobsters to Sir Robin), so unless we invent a new parameter like minsynthesis=true, we'll occasionally end up making links to Catagolue when no synthesis is actually available. If the link can be created/not created based on the existence of an apgcode without adding any more custom parameters, I think I might rather do it that way and just live with the occasional link to nowhere, instead of taking the minsynthesis=true route.
It doesn't seem like there's any harm providing a Catagolue link and a _synth file link (and a Niemiec-database link, eventually). It's often very useful to have non-record-breaking syntheses of objects, and we won't get those from Shinjuku. When you want to construct a new object near some existing object, for example, you might need an expensive synthesis with gliders from just two directions. Or you might want a synthesis of a two-cell edge that creates both cells simultaneously, to make a pseudo still life with an existing object with a two-cell edge. Existing _synth uploads often have these kinds of options included along with the record-holder. Dvgrn (talk) 16:45, 13 April 2019 (UTC)
Okay, with Ian07's incredibly helpful help, I've made a first attempt at switching over glider synthesis links to the new Shinjuku/Catagolue source. Whenever an apgcode is supplied for an object and the 'synthesis={n}' parameter is set, a Catagolue-generated synthesis link should be provided in the Glider Synthesis section of the infobox.
I also disabled the old links to chris_c's automatically generated syntheses, since those aren't reliably up to date any more. And I tried changing the top-level category from >=1000 glider to >100 gliders. (Looks like I still have to work on that detail a bit more.) Dvgrn (talk) 17:59, 23 April 2019 (UTC)
Here's a current report on discrepancies between LifeWiki and Shinjuku/Catagolue (I'm assuming the last two are reasonably well synchronized at the moment, since the synthesis-costs summary changed since yesterday; I used this morning's cost summary). I've gone through and cleaned up all the LifeWiki articles where a cost was reported that was larger than what's in Catagolue.
This leaves a pile of 170 articles where LifeWiki doesn't know about any synthesis at all... but it looks like that list is being tackled already. Thanks, Ian07! (Anyone else interested, see the above link for how to get the Catagolue synthesis link to pop up in the infobox.)
This is all a huge improvement over the old method of creating separate RLE:{pname}_synth articles or {pname}_synth.rle files and uploading them to the server. Anyone see any problems so far?
The big remaining improvement would be not having to add "synthesis = {cost}" to every article manually, and manually update the numbers whenever they go out of date. This is pretty easy maintenance compared to the admin-only file upload stuff, but still it would be nice if each article magically reported the number and provided a link to Catagolue only if the synthesis actually exists on Catagolue. At the moment, articles like Snake pit 2 that have an apgcode but no known synthesis are cheerfully serving up a link to Catagolue that says "null".
So ... is there a clever template-y way to improve on this? We could import the subset of apgcodes from Catagolue's synthesis-cost list that we have articles for on the LifeWiki, and set that list up as a lookup table, for starters. Then maybe the update problem would be reduced to just updating that subset synthesis-cost list now and then. (?) Dvgrn (talk) 16:48, 24 April 2019 (UTC)
Quick reply, since Dave asked me to chime in, and I'll admit I've only skimmed over the preceding discussion --- with glider syntheses being handled by Catagolue / Shinjuku now, it would obviously be ideal for the LifeWiki to simply pull in glider synthesis information from Catagolue. That is to say:
  1. When a page's parser cache is updated (e.g. when a page is edited), and an apgcode is provided in the infobox template, LW should:
    1. poll Catagolue;
    2. perform a sanity check; and
    3. use that information (perhaps marked in some way to indicate external data) in the infobox, as well as for categories.
  2. When there is an apgcode, and there is a local synthesis, and Catagolue either doesn't have any synthesis or the one it has is worse than the local one, LW should:
    1. use the local synthesis; and
    2. add the page to a tracking category so Shinjuku's DB can be updated. (In the long run, ideally there'd be no such cases --- this'd be a temporary measure, and in fact it might not even be necessary.)
  3. When there is no apgcode, LW should:
    1. use a local synthesis if there is one; and
    2. also add the page to a (different) tracking category, as I believe it already does.
The big problem with this is the "poll Catagolue" bit. I'm not aware of a way for MW templates to programmatically make external requests and process the results.
It could be done client-side, in Javascript, but I believe we don't want that. There's at least two big advantages to doing it server-side:
  1. consistency: every user sees the same data; and
  2. sustainability: if Catagolue is only polled when the page cache is updated, i.e. when Mediawiki re-evaluates templates etc., Catagolue will not be hit with a request every time someone views a LifeWiki page.
That still leaves several more avenues:
  1. on-wiki Lua scripting (MW supports this with an appropriate extension, though the LifeWiki doesn't);
  2. using a bespoke Mediawiki extension; and
  3. keeping things as they are, but using a bot that runs (un|semi)supervised to update template parameters when things change on Catagolue's / Shinjuku's side (the bot in turn could be fed by data pushed out by Catagolue, say an RSS or Atom feed of new/improved syntheses that Catagolue would generate automatically and that the bot would poll periodically).
Unfortunately I can't help with any of these. (I couldn't help with templates either, but that's a different story.)
I don't know if any of this is useful --- but as I said, Dave asked me to chime in, and who am I to say no to that? Apple Bottom (talk) 15:14, 27 April 2019 (UTC)
Maybe it could be linked in with the Catagolue update process. At the moment, syntheses on Catagolue are added/updated in a very precise manner:
  1. A GitLab CI runner is launched;
  2. The entire textcensus of current synthesis costs (but not the syntheses themselves) are downloaded from Catagolue;
  3. Shinjuku is downloaded, and minimum paths to all objects are computed;
  4. Only the syntheses with lower cost than Catagolue are generated;
  5. These syntheses are uploaded (as RLEs) in batches of 1000.
Since LifeWiki need only display the synthesis cost in the infobox, rather than the synthesis (which is available with an external link), then I guess this update process could additionally upload the entire set of synthesis costs to LifeWiki into some page which is queried by the infoboxes.
Of course, this raises the question: how can an external process upload to LifeWiki? That external process can contain secret environment variables (and indeed does, to securely push updates to the live Catagolue). I believe you had an User:Apple Bot which automated things -- does that run externally? Calcyman (talk) 22:52, 27 April 2019 (UTC)