Difference between revisions of "LifeWiki:Tiki bar"

From LifeWiki
Jump to navigation Jump to search
(→‎Next Steps: pname fixes and .cells creation mystery)
(241 intermediate revisions by 19 users not shown)
Line 8: Line 8:
Wikipedia has the [https://en.wikipedia.org/wiki/Wikipedia:Village_pump Village pump], Wiktionary has the [https://en.wiktionary.org/wiki/Wiktionary:Beer_parlour 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! [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:09, 13 June 2016 (UTC)
Wikipedia has the [https://en.wikipedia.org/wiki/Wikipedia:Village_pump Village pump], Wiktionary has the [https://en.wiktionary.org/wiki/Wiktionary:Beer_parlour 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! [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:09, 13 June 2016 (UTC)


==[[LV:Viewer]]==
==Archived discussions==
Thanks to [[User:Nathaniel]]'s and [[User:rowett]]'s efforts, the LifeViewer applet's now available on the LifeWiki:
:''Note: active discussions are never archived while still active.''


<center>{{LV:Viewer|2bo4bo2b$2ob4ob2o$2bo4bo}}</center>
* 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/2018]] for Tiki bar discussions started in 2018.


So how do we best integrate this into our existing articles? Ideally I'd like for all articles on spaceships, oscillators, guns etc. to have (at least) one of these so people can easily see patterns in action; but I'd also like for the result to look good. Simply embedding the viewer applet, like I did [http://conwaylife.com/w/index.php?title=Copperhead&oldid=25306 here] on [[Copperhead]], works, but it isn't very pretty.
== Conduits and converters ==


Since we already have infoboxes for pattern, it would be natural to reuse those. Embedding the viewer applet may make them too wide, but we could introduce an extra section (akin to "Rules", "Glider Synthesis" etc). Alternatively, we could add a second tab at the top of the box, allowing the user to switch between a static image and a viewer applet.
I'm gradually gathering the necessary courage to tackle the new Life Lexicon items that start with "P". Looks like one of the big things I should do is to carefully figure out how to make proper use of [[Template:Reflector]], but in this modern LifeViewer age I don't think I agree with the part about "The image in this infobox should '''NOT''' include the glider that is to be reflected...".


For specifying an object's RLE code, we could introduce a new infobox template parameter. However, that might get unwieldy with large patterns, so instead I'd suggest introducing a new namespace, <tt>RLE:</tt>, using the <tt>pname</tt> infobox parameter as the page title. To wit: since [[Copperhead]]'s pname is <tt>copperhead</tt>, its RLE page would be called [[RLE:copperhead]] and would contain only its RLE code, <tt>b2o2b2o$3b2o$3b2o$obo2bobo$o6bo2$o6bo$b2o2b2o$2b4o2$3b2o$3b2o</tt>. This would keep pattern pages from ballooning in size, as well as make it easier to edit RLE codes. It could even be used to auto-generate downloadable pattern files in the future.
Seems to me these template recommendations should be updated to say something like "The image in this infobox '''should''' include the glider that is to be reflected -- optionally, two input gliders separated by the mechanism's minimum [[recovery time]], and an output glider if that allows a smoother animation. However, the bounding box and population count should be calculated with these gliders removed."


Thoughts? [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:09, 13 June 2016 (UTC)
It would actually be pretty annoying to provide RLE of a reflector and not at least show where the input is supposed to go.  When copying and pasting one of these to use in a larger construction, it's usually pretty handy to have some kind of marker for where the the input goes and where the output comes from -- thus the [[ghost Herschels]] in recently added [[Herschel conduit]]s.


:It would be nice if it came in a new Infobox section. Of course, with a [show] button on it so it doesn't clutter everything up, and when it is shown it should be scaled down a bit as to not stretch the infobox.
[Ideally the marks are state-4 LifeHistory so you don't have to edit them out after pasting -- but we should probably stick with simple 2-state Life patterns on the LifeWiki and not open the LifeHistory can of worms.]


:Another idea would be to add it as an external link, similarly to the "View animated image" link. Is could either direct to a blank page with just the LifeViewer applet, or make it pop up like on the forums.
... And we can probably get rid of [[Template:Reflector/Doc]] while we're at it, no?


:Finally, we could dedicate a section to it. Since slapping it at the start of the page is kind of unsightly, it might be better if it (or a scaled down version of it) was placed in the Gallery section.
Before I start this I'll definitely undertake to review all the existing converters and reflectors and conduits -- there are a bunch with raw RLE and/or uploaded pattern files missing.  That's relatively easy to fix, once we have an official decision about whether and how to show inputs and outputs. I'm currently puzzled by the mysterious [[Template:ConduitInput]] and [[Template:ConverterInputOutput]].  Not that that's surprising -- I'm easily confused by all this wiki template trickery. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 15:26, 8 May 2018 (UTC)


-[[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 12:20, 13 June 2016 (UTC)
:I agree that reflector patterns should include the input glider.  I'm the one who originally wrote that they shouldn't, and I'm not really sure why anymore.  It can't have been very good reasoning, because I completely disagree with it now.<br/>~[[User:Sokwe|Sokwe]] 07:08, 9 May 2018 (UTC)


:: The idea that's been floating around in my head is to keep the static images as the "main" images in the infoboxes still, but add a second link (either above or below the current "View Animated Image" link) that says something like "Show in Viewer", and opens a LifeViewer overlay akin to the forums. But if people would prefer having a (smaller) LifeViewer right in the infobox, we can go that route too. Also, using a new RLE: namespace to store the RLE code seems like a great idea. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 12:57, 13 June 2016 (UTC)
:[[Template:Reflector/Doc]] also asks users not to put animated images on pages, instead suggesting that one should "''consider using a static image of the reflector with a caption that links to the animation''". I think this does not match the general current LifeWiki practice regarding animated images, or generally animated content. Should we reconsider? [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 05:25, 7 June 2018 (UTC)


::: I agree that it's often good to start with a static image in the info box, and link from there. It's also nice to be able to define a waypoint animation that illustrates some particular use of a pattern -- a slow-motion loop showing a buckaroo reflecting a glider, or whateverIn that case it might be better to have the viewer inline, and maybe even started automatically with AUTOSTART, making it a higher-function equivalent of an animated GIF.
:: It does seem to me that we have a developing consensus that LifeViewer-based illustrations are a good way to go.  There are quite a few Help documents and templates that were written long before the advent of LifeViewer. I'd love to have the Help actually explain to a new user how exactly to add RLE to the RLE namespace, how to get that RLE to show up in an infobox or an embedded viewer, how to adjust the LifeViewer config so that animations (if any) look good, etc. It will take a while to get all the docs updated, no doubtMy edit yesterday was just a first attempt to start chipping away at the problem. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 14:48, 7 June 2018 (UTC)


:::But maybe in many of these cases the viewer could be initially minimized with the THUMBNAIL tag, so it doesn't take up too much space unless a user wants a closer look?  I haven't discovered how to make waypoints or tags work yet. Also, here's a mystery for y'all: why does the image below show a glider instead of a pentadecathlon, if I include a standard RLE header line? (Mystery solved, see below.)
:::Definitely agree! Unfortunately writing documentation is one of things I'm hopelessly.. well, hopeless at. ;) [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 10:33, 9 June 2018 (UTC)


<center>{{LV:Viewer|x = 10, y = 3
== Lexicon tags ==
2bo4bo2b$2ob4ob2o$2bo4bo!
#C [[ THUMBNAIL AUTOSTART GPS 2 ZOOM 30 ANGLE 45 THEME 4 WIDTH 480 HEIGHT 600 ]]}}</center>
:::Also, unrelated -- is it possible to embed the viewer in a way that allows text to flow around it to the left or right? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 13:41, 13 June 2016 (UTC)


:::: Ah! The pentadecathlon/glider issue is caused by the RLE code starting with "x=". MediaWiki interprets this not as "make the first parameter 'x = 10, y = 3, ...'", but rather as "make the x parameter '10, y = 3, ...'". I'll try to get a workaround for this and the tags not working. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 14:00, 13 June 2016 (UTC)
Many of our articles (glossary, in particular) are based on, or at least synced with, Life Lexicon content. This creates a need to update these articles when the Lexicon changes.


::::: Both issues are now fixed. To make text float around a Viewer, it might be easiest to put a floating DIV around it like this (view this page's source code):
Some of that has been handled in an ad-hoc manner [[User:Apple Bottom/TODO/Life Lexicon|on my userpage]], but the process is fairly involved: look at the project page, find an article to work on, make sure it needs to be worked on, make the necessary edits, make the necessary changes to the project page to reflect the fact you edited the article.
<div style="float:left; padding-right:5px;">{{LV:Viewer|x = 10, y = 3
2bo4bo2b$2ob4ob2o$2bo4bo!
#C [[ THUMBNAIL ]]
#C [[ AUTOSTART GPS 10 ]]}}</div> This is a LifeViewer that floats to the left of its text.
::::: [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 14:31, 13 June 2016 (UTC)
::::::: Looks good!  I've adjusted my example to try some other LifeViewer script tags, and everything seems to work now.  You can hit 'N' to get back to a thumbnail view after a viewer has been expanded.  Is there an obvious way to clue in new users about keyboard shortcuts like this?  Maybe it's simpler to just expect people to refresh the page when they want to reset the viewers.
<div style="clear:both" \>
<br \>
::: A '''div style="clear:both"''' tag stops the text from flowing around the viewer panel, for a paragraph that starts a new topic, like this.
::: Might it be a good idea to put in a warning or a placeholder for LifeViewer, when a browser is non-HTML5-compatible?  I tried turning Javascript off in Chrome just now, and the viewer panels disappeared completely, with no sign that there was supposed to be anything there. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 15:26, 13 June 2016 (UTC)


:::: Has anyone considered my ideas yet?
It's also not easily found by newcomers who may want to help out. (OK, I'll admit, there likely aren't droves of eager newcomers to begin with, but that nonwithstanding, if you don't know said page exists you're not going to find it easily.)
:::: My personal favourite is the basic link one, as it takes up a lot less space. However, embedding the viewer into a new section on the infobox definitely seems like the fanciest idea.
::::: I've also created three pages under the RLE namespace, namely for the three elementary spaceships which don'r link to an RLE.
- [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 17:16, 13 June 2016 (UTC)


[[File:Copperhead infobox mockup.png|right]]
So I was thinking, can't we improve on this? And I just had the idea of tagging articles themselves instead, indicating which version of the Lexicon they correspond to.
:I like the idea of putting a link in the infobox that'll pop up a viewer applet when clicked best. I made a mockup of this, shown on the right &mdash; the links a bit larger and bolder so it'll stand out to people (<tt>font-size: larger; font-weight: bold</tt>). Clicking this link would then create an overlay on the page with the viewer applet so people could play with the pattern; pressing Escape should close the applet again.


:Of course there needs to be a graceful fallback for users who have Javascript disabled, as Dvgrn has pointed out. I think the easiest way to achieve that would be to:
The Nethack wiki does something similar; for instance, take a look at their [https://nethackwiki.com/wiki/Foodless Foodless] article, and you'll find that it has an indicator at the top right saying that the page reflects Nethack 3.4.3 (rather than the current 3.6.1), generated by [https://nethackwiki.com/wiki/Template:Nethack-343 this template].


:# Create a new page in the <tt>LifeWiki:</tt> or perhaps <tt>Help:</tt> namespace explaining that the viewer applet will only work with Javascript
We could use something similar. There wouldn't necessarily have to be a visible indicator (though there could be); at the very least, though, pages could be tracked in appropriate categories, and we'd know at a glance what needs to be updated (or at least reviewed) and what's current.  
:# Have the "View in LifeViewer" link point to that by default, and
:# Use Javascript to change the target of said link dynamically (so that if it's not enabled, the link would keep pointing to the explanatory page).


:Alternatively the link could be inserted using Javascript in the first place, but the downside would be that users who have Javascript disabled would not become aware that there is a LifeViewer applet in the first place.
This way, all edits would be in one place: review an article and make edits as necessary, and also update the tag to indicate it now reflects a newer Lexicon version. And placing those tracking categories into an appropriate supercategory and placing that in the existing category tree in turn would allow editors interested in helping out find articles in need of review.


:Regarding the <tt>RLE:</tt> namespace: so far it's not a proper namespace but rather a title prefix that pages in the main namespace happen to have. If we want to move ahead with this I'd suggest we have Nathaniel add the namespace to the wiki's configuration, and only then begin creating RLE: pages.
There would be two downsides. a) most of the Lexicon doesn't change in each Lexicon release, so we'd have a lot of articles tagged as (say) reflecting v28 when in fact they're also current, by virtue of not having changed since v28. And b) we wouldn't easily be able to see which articles are missing from the wiki entirely.


:It may be worth semi-protecting the entire namespace so only autoconfirmed users can edit it by default, but it may equally well be unnecessary.
I still feel that this would be an improvement though, and there's no reason we couldn't combine these tags with a manually-curated project page to get the best of both worlds.


:Either way, once we have it set up, we can start adding RLE snippets there. This would then allow us to automatically include links using <tt><nowiki>{{#ifexist:}}</nowiki></tt> and <tt>?action=raw</tt>, without sysops having to manually add RLE files for patterns (same for glider synthesis RLE snippets, of course). I imagine one could also write a MediaWiki extension that could be used to automatically convert RLE patterns to Plaintext, Life 1.05 and Life 1.06 format, if desired; this would give automatically give us all patterns in all file formats. (That said, is anyone still using those?)
Also, re: downside a) specifically, I think this could be dealt with by also having an indicator on the wiki saying which Lexicon release is current; pages that haven't been tagged as reflecting the current version would then display a gentle, unobtrusive note, and anyone viewing such a page could quickly check that it does indeed match the current Lexicon release, and update the tag if so.


:The only downside I can see is that there wouldn't be a handy way of compiling the collection of all pattern files that's linked on the Main Page anymore. But Nathaniel could presumably set up a cron job that goes through [[:Category:Patterns]] to collect all the files. (Alternatively, perhaps it would be possible to have every edit in the RLE mainspace reflected in a matching RLE file outside the wiki so the cron job would only have to collect those in a zip file.)  
Thoughts? [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 07:49, 18 July 2018 (UTC)


:Finally, regarding instructions for the LifeViewer &mdash; there ''is'' a Help Button, but if we're going to go the overlay route we could just as well include the most useful keys in the overlay. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 20:52, 13 June 2016 (UTC)
: This seems like a fine idea to me.  As far as downside a) goes, I think that the last year of Life Lexicon updates is highly unusual, since it involved catching up after over a decade of no maintenance at all.
<div style="float:right; padding-left:5px;">{{LV:Viewer|b2o2b2o$3b2o$3b2o$obo2bobo$o6bo2$o6bo$b2o2b2o$2b4o2$3b2o$3b2o!
#C [[ THEME 6 GRID COLOR GRID 229 229 229 COLOR GRIDMAJOR 229 229 229 ]]
#C [[ AUTOSTART GPS 5 ZOOM 32 Y -6 THUMBNAIL LOOP 120 HEIGHT 800 ]]}}</div>
::I like the infobox LifeViewer link idea -- it keeps the page from looking too full busy when it's first loaded.
::That said, I tried some experimental changes to the [[Copperhead]] article to reduce the visual impact of the viewer.  The version there has no gridlines turned on.  With a few more script tags we can match the color of the LifeWiki's usual gridlines fairly well -- see the viewer at right. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 15:45, 14 June 2016 (UTC)


::: I made just some minor changes to match things to our static images a bit more. I like it --- we could have the thumbnail LifeViewer be used by default, but if Javascript is disabled, it will fall back to the regular static image. One thing though -- is there a way to specify width/height of the thumbnail in LifeViewer? If not, I'd like to bug Chris to add that feature. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 16:21, 14 June 2016 (UTC)
: The standard editing methodology for new Lexicon releases is to maintain a Changes section at the top of the raw Lexicon text file, carefully listing every "added" or "edited" entry since the last release, by name. Nobody is supposed to edit a Lexicon definition without updating the change logThis should make it trivial to find missing articles, and hopefully should also allow an easy update to the tagsEvery Lexicon entry that's not listed in the change log can be automatically bumped to the latest lexicon release.
<div style="float:right; padding-left:5px;">{{LV:Viewer|b2o2b2o$3b2o$3b2o$obo2bobo$o6bo2$o6bo$b2o2b2o$2b4o2$3b2o$3b2o!
#C [[ THEME 6 GRID COLOR GRID 229 229 229 COLOR GRIDMAJOR 209 209 209 ]]
#C [[ AUTOSTART GPS 5 ZOOM 32 THUMBNAIL T 98 LINEAR Y Y -10 LOOP 99 HEIGHT 800 ]]}}</div>
:::: The thumbnail view in LifeViewer is always a quarter of the full size. You can specify the full size with the WIDTH and HEIGHT script commands. I've also posted a slightly different way of animating the Copperhead using a LINEAR waypoint. [[User:rowett|rowett]] ([[User talk:rowett|talk]]) 16:49, 14 June 2016 (UTC)
::::: Ah OK, thanks! In that case, could we increase the maximum width/height a bit? As-is, thumbnails can't be larger than 120 pixels wide, and it'd be nice to go up a bit higher than that (e.g., the current static image of copperhead is 161 pixels wide). [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 17:03, 14 June 2016 (UTC)
:::::: My worry would be that if the thumbnail goes much larger, the full-sized LifeViewer will be much bigger than anyone really wantsThese Copperhead thumbnails are already slightly annoying on my laptop screen, because the bottom of the viewer tends to end up scrolled off the screen, and the first click on the frame ends up recentering the LifeViewer instead of interacting with itAs soon as the full-size viewer is taller than the average user's screen, the problems get much worse... What if the thumbnail and full frame sizes were configurable independently, defaulting to quarter-size?
:::::: I really like the moving-grid-lines Copperhead! [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 17:11, 14 June 2016 (UTC)
::::::: The default size of a full-size LifeViewer is 480x480. This can be overridden by the WIDTH and HEIGHT script commands. For width the minimum is 480 and maximum is 1024. For height the minimum is 240 and maximum is 800. With an appropriate meta setting in the webpage LifeViewer is running in you can get it to set its width to the width of the text area containing the pattern rle (this is how it works on the forum) but it will still respect the minimum and maximum width. I'm happy to add a new script command to allow a custom thumbnail divisor to be specified. [[User:rowett|rowett]] ([[User talk:rowett|talk]]) 18:22, 14 June 2016 (UTC)
:::::::: Added a new script command THUMBSIZE to specify the divisor. Value can be 2, 3 or the default 4. An example can be seen [http://lazyslug.no-ip.biz/lifeview/plugin/thumbnail.html here]. [[User:rowett|rowett]] ([[User talk:rowett|talk]]) 19:02, 14 June 2016 (UTC)
::::::::: That's perfect, thanks Chris! [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 19:05, 14 June 2016 (UTC)
::::::::::Are these thumbnails going to appear on other pages like they do on the Copperhead page? Because personally I'm not that much of a fan of that. - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 20:09, 14 June 2016 (UTC)


:Oh, I like the compact viewers that Dvgrn and rowett embedded above! And I agree with AwesoMan3000, the one [http://conwaylife.com/w/index.php?title=Copperhead&oldid=25567 currently] embedded in [[Copperhead]] isn't perfect yet, both due to the lack of gridlines (I just think it's less pretty that way) and the placement.
: That's a lot of small changes to a lot of articles with every Lexicon release, though.  Does it make sense to have the default Lexicon tag be just {{LexiconLatest}} or some such, with a template to display on the page whatever the latest Lexicon release number actually is?


:I'd still prefer to have it embedded in the infobox, either as a (small) viewer or as a link as in the above mock-up. I'd give it a try, but ordinary users lack the ability to fiddle with Javascript on-wiki, of course (and in my case that's probably for the best ;)).
: Then, for the next Lexicon release (30), we can just update the (relatively small) list of changed definitions to say "Release 29" -- and then after each definition is reviewed and patched, the tag is updated at the same time, back to {{LexiconLatest}}? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 22:15, 18 July 2018 (UTC)


:FWIW I think we should continue providing static and animated images in addition to the embedded viewer applet as well; these are very useful to third parties. That said perhaps in a distant future these could be auto-generated from the pattern's RLE snippet as well. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:02, 15 June 2016 (UTC)
::I suppose that would work, but it's pretty much the opposite of what I was trying to accomplish. ;) I was thinking of this as a status checkbox of sorts where editors would check off that yes, this article has been reviewed for Life Lexicon release 30 or 50 or whatever, and any articles that lacked that virtual checkmark would automatically be herded and available for review and/or updating, as necessary.


:: Just so that we are all on the same page, here is what I'm currently thinking as far as the infobox/LifeViewer goes (of course feel free to say yay/nay to any/all of this). (1) For users with JS enabled, where the static image currently is displayed, a LifeViewer thumbnail will instead be displayed, in roughly the same size/formatting as the static image. For users without JS enabled, a static image will be displayed instead, just like the current set-up. And of course, for patterns like still lifes, we can just keep using static images period. (2) Clicking on the LifeViewer thumbnail will not "expand" the LifeViewer, but will instead open a LifeViewer overlay that is separate. The advantage of this is that it doesn't expand the infobox (which will look terrible and mess with page formatting) and it is easier to close due to having an X at the top-right. The disadvantage is that I have to poke Chris (thoughts Chris?) on whether this is even possible (and if it *is* possible, whether it's easy to do).
::Having a "LexiconLatest" tag instead would mean checkmarks that check themselves, by default, and that we'd then have to go and un-check. That's not so different from the current approach, with my TODO page.


:: And as a side-note, yes, for security reasons only sysops (i.e., myself, codeholic, dvgrn, and Sokwe) have the ability to insert raw HTML/Javascript into templates, so most of these templates can't be made/altered by others. But once these templates get set-up, regular users will be able to use them just like any other templates. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 12:15, 15 June 2016 (UTC)
::But you raise a good point. We have a log of Life Lexicon changes, and once we're actually caught up with the Lexicon in general all we'd have to do is keep an eye on those. Hmmm.


::: How would it discern between JS users and not?  
::Here's a thought, admittedly a rather complicated one. How about we do both? That is to say, how about a tag template that has ''both'' an explicit parameter ''and'' uses a default "low watermark", displaying the higher of both?
::: Also, how would it know what RLE to load? Are we going to go ahead with this RLE:patternname namespace thing? And would this override the RLE link in the Pattern files infobox section? - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 12:30, 15 June 2016 (UTC)


:::: There are (relatively straightforward) ways to detect whether or not a browser will display Javascript -- that's something I will take care of on my end, and will just happen automatically as far as users and wiki editors are concerned. The RLE would indeed be loaded from the RLE: namespace. For now, this will *not* override the RLE link in the pattern files infobox section, but once enough RLE codes have been uploaded in the RLE: namespace, that's something we could look at. I suppose one thing I could do is make it so that, if a pattern does not have a proper RLE file, it at least auto-generates a link to its RLE: namespace in the pattern files section of the infobox. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 12:44, 15 June 2016 (UTC)
::The explicit parameter would be used by editors to indicate that a page has been reviewed/updated to reflect a certain Lexicon release; the "low watermark" (kept in a template of its own) would be updated by us whenever we're sure that ''every'' Lexicon-related entry reflects a certain Lexicon version.
::: Added new script command THUMBLAUNCH which changes thumbnail behaviour so when clicked on it Launches the popup viewer rather than Expanding. You can see this working [http://lazyslug.no-ip.biz/lifeview/plugin/thumbnail.html here]. Note you may need to refresh your browser. The first thumbnail on the page should say "Launch" when you mouseover. [[User:rowett|rowett]] ([[User talk:rowett|talk]]) 14:14, 15 June 2016 (UTC)
:::: You make me so happy Chris. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 15:23, 15 June 2016 (UTC)


::::: I uploaded the newest build of LifeViewer. Unfortunately, the LifeViewer popping out gets stuck behind most of the MediaWiki page (click the following example and scroll to the top of the page to see what I mean). Chris -- is this something you can fix on your end? [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 21:25, 15 June 2016 (UTC)
::For instance, assume that all our articles conform to Lexicon release 30. Suppose that release 31 comes out now. We then go through the changelog, edit all articles that need updating, and after that's done, we conclude that no further changes are necessary, and bump the "low watermark" to 31, thus causing ''all'' articles (that reference the Lexicon) to declare that they match release 31.
{{LV:Viewer|b2o2b2o$3b2o$3b2o$obo2bobo$o6bo2$o6bo$b2o2b2o$2b4o2$3b2o$3b2o!
#C [[ THEME 6 GRID COLOR GRID 229 229 229 GRIDMAJOR 0 THUMBLAUNCH THUMBSIZE 3 AUTOSTART GPS 5 ZOOM 32 THUMBNAIL T 98 LINEAR Y Y -10 LOOP 99 HEIGHT 800 WIDTH 483 ]]}}
:::::: Yes, fixed in [http://lazyslug.no-ip.biz/lifeview/plugin/js/lv-plugin.js build 191]. It just needs some CSS for the title bar. You no longer need to specify THUMBNAIL if you're using THUMBLAUNCH. Also no need to specify the GRID COLOR, it defaults to the correct one when the background is light. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 05:33, 16 June 2016 (UTC)


:Nathaniel -- yes, I agree that for JS users, replacing the current static image with a (thumbnailed) LifeViewer applet is a good idea. I've gone ahead and made a change to [[Template:Spaceship]] (which, conveniently, can be edited by trusted users, as opposed to other pattern templates that are fully protected) to handle this.
::One advantage of this would be that we'd still see when an article was last ''explicitly'' reviewed. For instance, an article might say it reflects Lexicon release 31, but the "version=" parameter might still say it was last reviewed for 28. If nothing else, this would make it easier to spot articles that haven't been reviewed for a long time and where discrepancies might've crept in.


:[[Copperhead]] shows this in action. The RLE snippet lives in [[RLE:copperhead]], as discussed above; so far that's a page called "RLE:copperhead" in the Main namespace, rather than a page called "copperhead" in the <tt>RLE:</tt> namespace. If we decide to add that new namespace and move pages over, [[Template:Spaceship]] will require a very minor tweak: the first colon in <tt>{{:RLE:{{{pname}}}}}</tt> will have to be removed.
::Another idea: we've already got [[Template:LinkLexicon]] to link to Lexicon entries. We could repurpose this to also additionally display a tag, which would save us the need to edit 831 articles just to add a tagging template.


:If a ship does not have an associated RLE snippet, the static image will be shown in the infobox, as before. This means we can transition spaceship articles at our leisure and convenience.
::[[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 07:50, 19 July 2018 (UTC)


:Embedded LifeViewer applets can be configured using [[Template:LifeViewer config/spaceship]]. If a pattern-specific configuration template exists (<tt><nowiki>Template:LifeViewer config/{{{pname}}}</nowiki></tt>), e.g. [[Template:LifeViewer config/copperhead]], that will be used instead. This allows us to have sane defaults while still tweaking individual pages as necessary, all while keeping clutter (LV configuration settings) out of the articles themselves.
::: This all seems reasonable to me -- especially sneaking a displayed tag into [[Template:LinkLexicon]].  Now that Golly 3.2 and Release 29 are safely out the door, I'm sorta kinda planning to get back to work on the LifeWiki ToDo list for Lexicon updates, with the intention of getting everything up to date eventually -- hopefully well before Release 30 comes along to confuse things any more.  We already have some kind of a tracking system set up for Release 28 and 29, so maybe it makes sense to keep using that, and design the new template/tag system to really come into use once everything has been updated to Release 29.


:Finally I've also modified the infobox so it includes a link to the static image, if one exists.
::: So in early 2019, if we end up with a list of say fifty articles that have changes for Lexicon Release 30, my thought would be to update just those fifty articles to specifically say "Release 29" (however we decide to do that exactly -- maybe with a template saying "this article is out of date, please help out by updating it"?).  Then bump up the "low watermark" to 30 right away.  As articles get updated, the "please help" template can get removed again with the same edit. Does that work? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 18:49, 19 July 2018 (UTC)


:What's left to do:
::::OK, cool. :) Good to hear you'll have some time to devote to the Lexicon-to-LifeWiki TODO list. I'm not able to put in much effort there myself --- too much studying, too many exams. Ah well.


:# Tweak the viewer applet so the overlay will be displayed.
::::Re: marking e.g. fifty articles as needing updates and everything as conforming to e.g. release 30 by default --- that would be a lot easier if we had Lua scripting available! MediaWiki's templates only go so far and aren't really meant for pushing lots of structured data around.
:# Handle non-JS users and show them the static image instead of the viewer applet. (I would also suggest including a message along the lines of "Please enable Javascript to see the LifeViewer applet" -- they might not realize they're missing out otherwise!).
:# Do the same work for other pattern templates, notably [[Template:Oscillator]] (this one ''is'' fully protected, so I can't edit it).


:[[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 10:05, 16 June 2016 (UTC)
::::Our options there would include at least the following:


:: I added one for [[Loafer]], but as you can see it scrolls the wrong way. - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 11:14, 16 June 2016 (UTC)
::::# Manually edit each of those 50 articles (e.g. by setting an extra template parameter) to override the "low watermark". Not ideal --- we might as well just edit those 50 articles to update them if we're already editing them anyway.
::::# Provide a global "kill switch" for the low watermark that, when set, causes the low watermark to be ignored. Pages explicitely listing a conforming Lexicon release would then display that instead, so those 50 "release 29" articles would show up in the right category, etc. Also not ideal --- there might be many other articles that would also have the explicit "reviewed for release 29" tag, or older tags at that, which would NOT need to be updated.
::::# Keep a list of those 50 articles, and rig the template to display a notice if the title of the transcluding page happens to be on that list. '''Also''' not ideal --- we'd have to curate that list, and as I said, MediaWiki templates aren't really meant for this sort of thing.


:::Adjust [[Template:LifeViewer config/loafer]] (based on [[Template:LifeViewer config/spaceship]]). [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:16, 16 June 2016 (UTC)
::::Maybe there's another solution I'm not seeing, though.


::::What exactly do I have to put in? Like, how do I determine which way it scrolls and how fast? It would be much more convenient "followed" the pattern by default (think there's a button for that). - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 11:19, 16 June 2016 (UTC)
::::That said I also have a feeling we're trying to overengineer the solution, though, or perhaps attacking the problem from the wrong angle. After all, what do we want to do? Keep the LifeWiki current as far as Lexicon content goes. How do we achieve that? By importing Lexicon as necessary, and (once done) keeping an eye on changes made to the Lexicon and mirroring them on the wiki (again, as necessary). And how do we do ''that''? By rolling up our sleeves and working on it. Fancy templates and tagging nonwithstanding we won't get anywhere if we don't just jump in and do it.


:::::I don't know enough about LifeViewer's configuration parameters (yet) to answer that, but you may want to take a look at the documentation etc. [http://lazyslug.no-ip.biz/lifeview/plugin/ here]; there's bound to be some explanation of the parameters somewhere. Otherwise I'd suggest holding off on adding RLE snippets for now. We're in no rush to add these, after all.
::::<small>(And by "we", I mean whoever's willing to do that job.)</small>


:::::I'm furthermore not sure that storing configuration for the viewer in a separate template is actually useful. There are two reasons I did this:
::::[[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 18:16, 20 July 2018 (UTC)


:::::# Make it possible to have (easily-edited) default parameters if none are specified.
:::::Re: overengineering... yeah, offhand I don't see a better solution than the first one:  manually edit 50 articles, copying and pasting the same "stub"-like template marker in as a header.  This is a bit tedious, but that's what multiple browser tabs are for, and it can be done pretty easily in half an hour or so. The idea is that we can make a little bit of effort to spread the update work around.  (Here "we" means the small group of people who have done the work so far -- a small group because it's kind of tricky to do everything right, so not many people have figured out all the fiddly details.)
:::::# Avoid cluttering the RLE itself with viewer configuration comments, seeing as how we might use it for auto-generated downloadable RLE files later.


:::::But perhaps this isn't ideal. We're still in the brainstorming/experimenting phase after all, trying to figure out how to make things work best. So let's finish figuring that out before we do a lot of work that we may later have to undo. ;)
:::::I can add "needs Lexicon update" headers to 50 articles in half an hour, but I sure can't do a careful comparison and repair on 50 articles, especially if it will require adding new illustrations or modifying existing ones. But it seems to me that there's a larger (and growing) population of LifeWiki users who can perfectly well review a particular Lexicon definition when they trip over a "needs Lexicon update" template header begging for help.  Often it isn't too hard to find what needs changing, make the required edits, and remove the "needs Lexicon update" tag at the same time.


:::::Another tip: the name of the RLE snippet has to match the <tt>pname</tt> from the spaceship infobox template, so e.g. [[Lobster (spaceship)|Lobster]]'s snippet should be at [[RLE:83p7h1v1]], not [[RLE:lobster]]. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:23, 16 June 2016 (UTC)
:::::Every one of these articles that someone picks up and fixes, is one that I don't have to do myself... and in the meantime, a half hour of work has already brought the LifeWiki more up to date, by specifically flagging the fact that there's newer information somewhere else that needs to be integrated into the article.  Seems like this might be a good habit to get into, for as long as the Life Lexicon is kept more or less in synch with current reality.
::::::The only documentation currently available is in LifeViewer itself, press Help and then scroll down to the Commands section. Here's a brief explanation of the commands used for the Copperhead animation:
::::::THEME 6 GRID COLOR GRID 229 229 229 GRIDMAJOR 0 THUMBLAUNCH THUMBSIZE 3 AUTOSTART GPS 5 ZOOM 32 THUMBNAIL T 98 LINEAR Y Y 10 LOOP 99 HEIGHT 800 WIDTH 483
::::::*THEME 6 - sets a colour theme (black on white background)
::::::*GRID - switches on the grid display
::::::*GRID COLOR 229 229 229 - sets the RGB value for the grid lines (no longer needed since light background themes now use this grid colour)
::::::*GRIDMAJOR 0 - disables major gridlines
::::::*THUMBLAUNCH - tells LifeViewer to start as a thumbnail and launch the popup viewer when clicked
::::::*THUMBSIZE 3 - defines the size divisor for the thumbnail
::::::*AUTOSTART - tells LifeViewer to start playback automatically
::::::*GPS 5 - defines the number of generations per second for playback
::::::*ZOOM 32 - defines the camera zoom
::::::*THUMBNAIL - tells LifeViewer to start as a thumbnail and expand inline when clicked (not needed when THUMBLAUNCH used)
::::::*T 98 - defines a waypoint at generation 98, any of X, Y, ANGLE and ZOOM commands following define the target
::::::*LINEAR Y - tells LifeViewer to use Linear (rather than the default Bezier) interpolation for the camera for this (and future waypoints) for just the Y axis (could also specify Y, ZOOM or ALL here)
::::::*Y 10 - defines the waypoint target Y coordinate
::::::*LOOP 99 - tells LifeViewer to reset back to generation 0 when it gets to generation 99
::::::*HEIGHT and WIDTH - sets the size of the full size LifeViewer, does not change the popup viewer which is fixed size
::::::So in this case the camera moves from X = 0, Y = 0 (the default reset position) to X = 0, Y = 10 by generation 98 and then loops. If you wanted to go right to left you'd use LINEAR X and then set some X value. Diagonally you'd probably use LINEAR ALL and set both X and Y. You can also specify multiple waypoints by using the T command more than once. Additionally if you want the camera to pause for a time at the current position you can use the PAUSE command. More commands in the built-in help. Check out [http://lazyslug.no-ip.biz/lifeview/plugin/waypoints.html this] example. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 11:55, 16 June 2016 (UTC)


:::::::Hah, excellent example! I didn't know LifeViewer was so advanced, that's awesome! And thanks for the explanation of the commands. Sounds like we need to add [[Help:LifeViewer]] or so to our documentation. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 12:13, 16 June 2016 (UTC)
:::::Sound reasonable?  And could you have a look at [[Template:NeedsLexiconUpdate]] and see if it has everything in it that this plan might need? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 21:02, 20 July 2018 (UTC)


:::::::: I have now added the non-Javascript functionality so that a pattern's static image is instead displayed for users who have Javascript disabled. Note that if you manually disable Javascript in Chrome, you will need to refresh the page about 2 times before things display properly (this is a bug in Chrome and unfortunately there's nothing I can do about it). [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 13:11, 16 June 2016 (UTC)
::::::Redirect pages don't need any markers saying they're from a Lexicon entry -- do they?  I've been trying to rebuild some momentum by getting the remaining redirects done... [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 21:57, 26 July 2018 (UTC)


::::::::Two other waypoint examples can be seen [http://lazyslug.no-ip.biz/lifeview/plugin/name.html here] and [http://lazyslug.no-ip.biz/lifeview/plugin/veryhappy.html here]. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 13:15, 16 June 2016 (UTC)
:::::::Cool, good to see this is already progressing. Good job! :) I'm a little less swamped now, so I'll take a look at the Template'n all over the weekend.


::::::::Nathaniel you'll need to not only style the title bar of the popup viewer but also adjust some of the other portlets which use z-index (specifically p-personal (the top menu) and p-search (the left search box)). They both have a z-index 3 style set which means the popup viewer floats under them not above. I removed their z-index on a local test page and it doesn't appear to have broken anything else. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 15:23, 16 June 2016 (UTC)
:::::::No, I don't think redirect pages need markers. I don't consider these "content" in the strictest sense, in either the Lexicon or the LifeWiki --- they're just tools that help people ''find'' content.


::::::::: I've removed z-index:3 from those two menus like you suggested. I'm being dense though -- what CSS needs to be added to the title bar of the popup viewer? [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 18:56, 16 June 2016 (UTC)
:::::::[[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 08:31, 28 July 2018 (UTC)


::::::::::You may notice on this page the popup has a transparent background to the LifeViewer title bar. Also on the [[Copperhead]] page the popup has a title bar that's about 1 pixel high. These are both caused because on the forum LifeViewer inherits styling for the title from the forum CSS (which doesn't exist here). I've created [http://lazyslug.no-ip.biz/lifeview/plugin/js/lv-plugin.js build 192] which may fix the problem. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 19:14, 16 June 2016 (UTC)
== Object frequency classes ==


:::::::::: Works perfectly now, thanks! [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 19:46, 16 June 2016 (UTC)
I do apologize for my somewhat extended absence. That said, I had an idea (long ago actually) about adding information on the commonness of objects to pattern infoboxes, using data from Catagolue (specifically, B3/S23/C1).


:Excellent, thanks for unprotecting [[Template:Oscillator]], Nathaniel. I've updated it and successfully used it on [[Pentadecathlon]], so now oscillators can have embedded LifeViewers as well. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 16:55, 16 June 2016 (UTC)
I don't think saying "this still life is the 1,691th most common object on Catagolue" is useful, of course. What I'm proposing instead is the frequency class, defined as follows: a pattern is in frequency class X if the most commonly-occurring object (the [[block]], in this case) is 2<sup>X</sup> times more common. X need not be an integer; to strike a balance I'd suggest using one decimal digit.


:: Thanks. I've tweaked the templates so that Template:LifeViewer_config/oscillator now contains general parameters that should be used for *all* oscillators (e.g., grid color) and Template:LifeViewer_config/pentadecathlon contains only those parameters specific to that oscillator (e.g., width/height/generations per second). In fact, what would you think about taking the information in Template:LifeViewer_config/pentadecathlon and just plopping it into another parameter in the Oscillator template? That seems like a less confusion set-up to me, and that way we don't need to create two pages for every new oscillator. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 17:45, 16 June 2016 (UTC)
Let me give an example. The [[twin hat]] has appeared 240,372,408 times on Catagolue (as of this morning), whereas the block has appeared 71,146,901,659,666 times. So the block is approximately 295,986 &asymp; 2<sup>18.17517</sup> times more common, and the twin hat's frequency class is 18.2, rounded to one decimal digit.


:::Sounds good to me; and it'll certainly make it easier for new contributors to find where those settings are tweaked. A new <tt>viewerconfig</tt> parameter, then?
I think this is a fairly intuitive way of capturing commonness. An additional nice property is that if an object has occurred sufficiently often, its frequency class is unlikely to change much, if at all; this is true even for objects whose commonness is very similar and who might switch ranks regularly, with one or the other having occurred more often at any given moment. So once this information's added, we wouldn't need to edit it much, if at all ever.


:::Speaking of which, I've also cleaned up the way the infobox template is included in [[Pentadecathlon]] for the sake of readability, BTW. The same should eventually be done for other pages as well. I'll add it to my ever-growing lists of tasks. :P
Like I said, only sufficiently common objects should have this information added; there's too much uncertainty about the frequency class of an object that has only appeared once, say. I unfortunately lack the statistical background to suggest a good cut-off value ("objects should only have this information in their infoboxes if they have occurred at least ''n'' times"), but unless there are objections I'll add this, or at least do the necessary template work.


:::And of course should modify [[Template:Spaceship]] as well once we're happy with [[Template:Oscillator]] then. And of course guns and other such patterns could get a LifeViewer, too ([[Template:Stillife]] probably doesn't need it). [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 18:25, 16 June 2016 (UTC)
...heck, I'll just go ahead and do it, it's been a while since I've edited anything here. If anyone thinks that this is a load of bull, please just speak up and say so. :) [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 17:56, 1 September 2018 (UTC)


::::: Thanks for cleaning up the infobox template -- I agree that it should be done on other pages too. I've added the viewerconfig parameter to the Oscillator template, and implemented it on the [[pentadecathlon]] page, and I quite like it this way. If other folks like it too, we can start rolling out these changes to other templates (Spaceships, Guns, etc) like you mentioned. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 18:40, 16 June 2016 (UTC)
(P.S. --- although the block is the most common in B3/S23/C1, it isn't necessarily for other B3/S23 censuses; in some symmetries, the [[blinker]] is more common.)


:::::: With the new build of LifeViewer there is no need to use the THUMBNAIL or COLOR GRID 229 229 229 commands. They're redundant and should be removed from templates. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 19:21, 16 June 2016 (UTC)
:Replying to myself, I've started doing this; there is a new template parameter, <tt>fc=</tt>, currently only for [[Template:Stilllife]], [[Template:Oscillator]], [[Template:Spaceship]] and [[Template:Puffer]] (no other types of object have appeared on Catagolue anyway). I've also added a short glossary entry at [[Frequency class]], and added frequency calss data to a couple of object infoboxes, including all with FC &le; 10.0. The script used to generate the necessary data from Catagolue's [https://catagolue.appspot.com/textcensus/b3s23/C1/ textcensus] is this:


::::::: Done, thanks! [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 19:46, 16 June 2016 (UTC)
<pre>
#!/usr/bin/perl


::::::Sounds good to me! If everyone else is in favor, I'd say let's go. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 21:55, 16 June 2016 (UTC)
# usage eg.:
# perl ../frequencyclasses.pl b3s23.C1.txt >frequencyclasses.txt


::::::Addendum -- I've finished cleaning up the pattern infobox transclusions on all pattern pages (i.e. all pages in [[:Category:Patterns]]). Apologies for the barrage of edits. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 18:32, 19 June 2016 (UTC)
use Modern::Perl '2016';


:Hi, I have come to report that the viewer window glitches when using different skins for the Wiki. I found this when studying the [[copperhead]] page but the situation is probably similar for others.
# only patterns with more than $cutoff occurrences should be considered.
:*Under the skins Cologne Blue and Vector (which is my preset), the window cannot be dragged or closed unless one scrolls down.
# mark all other patterns with an asterisk.
:*Under the skin Modern, the window seems fully functional but can be dragged under the blue bar at the top of the screen.
our $cutoff = 10;
:Can someone please fix this? [[User:Gameoflifeboy|Gameof]][[User talk:Gameoflifeboy|life]][[Special:Contributions/Gameoflifeboy|boy]] 03:03, 17 June 2016 (UTC)


:: Thanks for letting me know. I believe this is now fixed in all skins. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 12:36, 17 June 2016 (UTC)
# throw away header line
<>;


::: If a page has an RLE: page but no official RLE pattern file, it now at least displays a link to the raw RLE code in the pattern files section. See [[P32 blinker hassler]] for an example. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 11:50, 18 June 2016 (UTC)
my %objects = ();
my $mostcommon = -1;
my $mostcommoncode = "";
while(<>) {
    chomp;
    next unless m/^"([^"]*)","(\d+)"$/;


A reboot on the topic of category config pages and pattern-specific config pages:  I've tried removing the copperhead-specific spaceship-following viewer tags from  LifeViewer_config:spaceship, and adding them to LifeViewer_config:copperhead.  It definitely has an effect, but it's not the right effect -- see the current [[Copperhead]] page, where the theme and other tags are no longer being applied.  It seems as if the existence of a pattern-specific LifeViewer:pname page breaks the tag-parsing system (i.e., keeps the viewer from applying tags).
    my ($apgcode, $count) = ($1, $2);
    $objects{$apgcode} = $count;


<div style="float:left; padding-right:5px;">{{LV:Viewer|4bobo$2o2bobo$2o3bobo$2o$2bo5bo2$5b2obo$5b2o$5bo2bo$6b2o!
    if($count > $mostcommon) {
#C [[ THEME 6 GRID GRIDMAJOR 0 THUMBLAUNCH THUMBSIZE 3 AUTOSTART GPS 5 HEIGHT 800 WIDTH 483 ]]
        $mostcommon = $count;
#C [[ ZOOM 32 T 700 LINEAR X X -100 LOOP 700 ]]}}</div>
        $mostcommoncode = $apgcode;
Another example to look at:  here's how I think maybe the Infobox loafer might look. General infobox tags are on the first comment line, and loafer-specific tags are on the second line.
    }
}


But if I try creating any LifeViewer_config:loafer page, even a blank one, then tags seem to stop being applied in the loafer infobox's viewer. (?)
my %frequencies = ();
foreach my $apgcode (keys %objects) {
    my $frequencyclass = sprintf("%.1f", (log($mostcommon / $objects{$apgcode})) / log(2));
    $frequencies{$frequencyclass}->{$apgcode} = $objects{$apgcode};
}


I kind of like the idea of these LifeViewer config pages, and kind of don't like them -- seems like the LifeViewer_config:spaceship one might make sense... or maybe it should just be for LifeViewer_config:pattern? ... but I'd rather have the pattern-specific tags right in the Infobox section of the pattern page, somehow, where I can get at them without having to create a whole new config page for every pattern. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 17:50, 18 June 2016 (UTC)
foreach my $frequency (sort { $a <=> $b } keys %frequencies) {
    foreach my $apgcode (sort { $frequencies{$frequency}->{$a} <=> $frequencies{$frequency}->{$b} } keys %{ $frequencies{$frequency} }) {
        print "*" if($frequencies{$frequency}->{$apgcode} <= $cutoff);
        say "$frequency\t $apgcode\t $frequencies{$frequency}->{$apgcode}";
    }
}
</pre>


<div style="float:right; padding-left:5px;">{{LV:Viewer|3o$o$bo!
:(I'm sure there's better ways of doing this, but this worked for me.) [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 18:52, 1 September 2018 (UTC)
#C [[ THEME 6 GRID GRIDMAJOR 0 THUMBLAUNCH THUMBSIZE 3 AUTOSTART GPS 4 HEIGHT 320 AUTOFIT ]]}}</div>
<div style="float:right; padding-left:5px;">{{LV:Viewer|31b3o24b$32bo25b$32bo2bo22b$32bo2bo22b$33bobo22b$48b2o8b$48b2o8b3$32bo
25b$31bobo24b$32bo25b$49bo8b$48bo7b2o$30b4o22b2o$30b2o3bo10bo11b$31bo
4bo9bobo9b$33bob2o10bo10b$34bo23b3$42bobob2o10b$25bo16bobo13b$24b3o17b
o2bo10b$43bo3bo10b$24b3o16b4o2b2o7b$25b2ob2o14bo5b2o6b$27bo21bo8b3$b3o
54b$2bo55b$2bo2bo52b$2bo2bo52b$3bobo52b$18b2o38b$18b2o38b$24bo33b$23b
3o32b$2bo19b2ob2o31b$bobo18bobo33b$2bo19bo35b3$4o54b$2o3bo13bo38b$bo4b
o11bobo37b$3bob2o11bo39b$4bo15b2o36b$21bo36b$18b3o37b$19b2o37b$16bo41b
$16b2o40b$16b2o40b$6b2o6b2o42b$6b2o4b2o44b$12b2obo42b$14b2o42b5$14b2o
42b$14b2o!
#C [[ THEME 6 GRID GRIDMAJOR 0 THUMBLAUNCH THUMBSIZE 3 AUTOSTART GPS 60 HEIGHT 320 AUTOFIT ]]}}</div>
AwesoMan3000 mentioned LifeViewer's AutoFit functionality above, as a possible alternative way of automatically following a spaceship without having to set up a waypoint and use the LINEAR tag and so forth.  I experimented with this a few days ago, and I think it would currently be in danger of inducing mild nausea, even for a simple low-period monotonic spaceship such as a glider... for non-monotonic spaceships it can get really strange.  Click on the Cordership at the right here for a fairly wild ride.


That said, maybe there's a way to add an optional AutoFit parameter, or a different kind of autofit (AUTOTRACK?) to do something a little bit smarter.  The most workable thing I can think of would be to check if the pattern is the same at the end of a LOOP N cycle as it was at the beginning, and if so, set up a LINEAR waypoint automatically from the T=0 pattern center to the T=N center... so the viewer wouldn't track the pattern for the first cycle, but then it could maybe catch up smoothly and follow it from there. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 18:56, 18 June 2016 (UTC)
::Another reply to myself --- [[User:Goldtiger997|Goldtiger997]] [http://conwaylife.com/w/index.php?title=Tumbler&curid=703&diff=46374&oldid=41650 suggested] a cut-off value of 10 (non-inclusive). This strikes me as sensible. So unless there's objections, how about we run with this, and only add frequency class information to objects having appeared more than 10 times?
:::::::::Not sure I fancy the AUTO part of AUTOTRACK. Perhaps a command TRACK <period> <x offset> <y offset> which would (under the covers) generate the appropriate Waypoint script commands. For Copperhead you'd use TRACK 10 0 1, Loafer TRACK 7 1 0 and Glider TRACK 4 1 1. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 22:20, 18 June 2016 (UTC)
::::::::::I like the sound of TRACK N XVAL YVAL.  It's not really necessary, since it could just be syntactic sugar for something that's only slightly more complicated -- T N*10 LINEAR [X|Y|ALL] [X XVAL*10] [Y YVAL*10] LOOP N*10 -- but I think a moving viewport is a fairly common thing to want to set up, so it would be nice to make it as simple as possible.  Might there be a way to set up a moving viewport without any periodic reset? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 00:20, 19 June 2016 (UTC)
:::::::::::Yes it's just syntactic sugar but probably worth it for something fairly common as you said. It would also automatically do the GRIDMAJOR calculation (if specified) i.e. GRIDMAJOR M TRACK N XVAL YVAL would generate GRIDMAJOR M T N*M LINEAR [X|Y|ALL] [X XVAL*M] [Y YVAL*M] LOOP N*M (assuming M > 0).
:::::::::::What's the issue with periodic reset (just flicker, which was fixed today, or something else)? [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 05:58, 19 June 2016 (UTC)
:::::::::::I've implemented TRACK N XVAL YVAL and examples can be seen [http://lazyslug.no-ip.biz/lifeview/plugin/track.html here]. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 07:21, 19 June 2016 (UTC)
::::::::::::I can't advance the pattern generation-by-generation with the TRACK settings applied. Instead, going forward one step advances the frame as dictated by the TRACK settings.<br/>~[[User:Sokwe|Sokwe]] 10:40, 19 June 2016 (UTC)
:::::::::::::In TRACK/Waypoint mode the step forward feature moves the pattern forward at the rate defined by GPS (rather than generation by generation). To step forward a generation at a time either Reset once (which will disable TRACK/Waypoint mode) or use hotkey "w", which toggles TRACK/Waypoint mode. A second Reset while at T=0 will perform a full Reset (and restart Waypoints etc.). [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 11:06, 19 June 2016 (UTC)
<div style="clear:both" \>


: I've made it so that generic config options (like the grid colors) are in Template:LifeViewer_config/spaceship, but Template:LifeViewer_config/copperhead is no longer used. Instead, the template on the [[copperhead]] page itself (and all spaceship pages) has a "viewerconfig" parameter that can be populated with additional options. See the [[copperhead]] page's code to see how this works now. Let me know if this works OK for you. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 19:41, 18 June 2016 (UTC)
::Also --- right now the information is [[Catagolue]]-specific, which is sensible but still somewhat arbitrary; if we want to include more information later (e.g. from Achim's, Andrzej's and Nathaniel's censuses, or from whatever future censuses people may come up with), we can easily adjust the infoboxes to include a new "Commonness" section, and re-interpret <tt>fc=</tt> as "'''f'''requency in '''[c]'''atagolue". [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 09:08, 2 September 2018 (UTC)


::Viewer configuration appears to be broken now; see e.g. [[Loafer]] (does not track the ship anymore) or [[Mangled 1 beacon]] (oscillates at 60 GPS instead of 5). [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 10:47, 19 June 2016 (UTC)
:::Sounds good. However, I already broke my "suggestion" of the 10 occurence cut-off twice; for the [[Coe ship]] and [[Achim's p8]]. Is it worth removing the <tt>fc</tt> parameter for those two articles, or should they just be left as they are? [[User:Goldtiger997|Goldtiger997]] ([[User talk:Goldtiger997|talk]]) 09:26, 2 September 2018 (UTC)


::: The viewerconfig parameter is sensitive to spacing -- see the fix that I just made to the [[loafer]] page. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 12:56, 19 June 2016 (UTC)
::::I think we can grandfather those in --- would be good if you could keep an eye on them in case the information changes, of course, but it's just two articles, so that should be fine. I've also added the cutoff of &gt;10 to the script above; patterns not reaching that cutoff are marked with an asterisk. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 09:35, 2 September 2018 (UTC)


::::Ah, good to know (and thanks for fixing these). Question: given the potential for confusion there, and since <tt>viewerconfig</tt> is inevitably going to be wrapped in <tt><nowiki>#C[[ ... ]]</nowiki></tt> anyway, should we move the comment wrapper into the pattern templates so that the configuration would instead be specified as just e.g. (using [[Loafer]] as an example) "<tt>ZOOM 32 T 700 LINEAR X X 100 10 LOOP 700 GPS 5 HEIGHT 400 WIDTH 400</tt>"? Or are there use cases where having full control over what's passed to LifeViewer would be useful/necessary? Looking at complicated examples such as the [http://lazyslug.no-ip.biz/lifeview/plugin/waypoints.html Waypoints] one Chris mentioned above, it looks like the entire configuration script's still wrapped. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 13:14, 19 June 2016 (UTC)
==Infobox vs. EmbedViewer==
All this interminable Life Lexicon import work has been leading me to believe that there are two classes of articles that can use LifeViewer animations. There are the named patterns, where if you say "Pattern X" there's really only one likely Pattern X that you could be referring to. These get put into an infobox category, with appropriate statistics collected and so forth. The most recent example of this kind of imported Lexicon article is [[line crosser]].


:::::There's an extra "10" in the [[Loafer]] script command list which needs removing: "<tt>ZOOM 32 T 700 LINEAR X X 100 <strike>10</strike> LOOP 700 GPS 5 HEIGHT 400 WIDTH 400</tt>". LifeViewer actually complains about it but you can't see the error until you launch the full size popup viewer. Additionally the script can now be rewritten using the new TRACK command: "<tt>ZOOM 32 TRACK 7 1 0 GPS 5 HEIGHT 400 WIDTH 400</tt>". [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 13:24, 19 June 2016 (UTC)
The other class of article is for a term that might refer to a variety of different patterns, so that there are various examples but no specific example should really be considered to be the one canonical one.  In these cases I've been using an embedded viewer but haven't been bothering with an infobox.  The most recent examples along these lines are [[line-cutting reaction]] and [[line-mending reaction]]. I like the way these are turning out, but am curious to hear if anyone thinks that these should also be infoboxed somehow, or if anything else should be added as standard practice. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 09:45, 12 September 2018 (UTC)


::::::Incorporated, thanks! [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 13:31, 19 June 2016 (UTC)
:I think this is eminently sensible. Off the top of my head, aren't there a few articles that have infoboxes despite being about a family of patterns rather than a specific individual one? (Or patterns with variants, anyway --- the bee shuttles come to mind there.) I've never been quite sure how to handle those, though that's not limited to LifeViewer and embedded patterns: the same goes for other infobox'ed information, such as bounding box, population etc. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 07:54, 13 September 2018 (UTC)
:::::LifeViewer looks for script commands in pattern comments (for rle format files this is lines beginning with #C or any text after the ! terminator). To be recognized the commands must be separated by whitespace and enclosed by <tt><nowiki>[[</nowiki></tt> and <tt><nowiki>]]</nowiki></tt>. You can either have all commands wrapped together <tt><nowiki>[[ AUTOSTART ZOOM 32 GPS 5 ]]</nowiki></tt> or you can wrap separately <tt><nowiki>[[ AUTOSTART ]] [[ ZOOM 32 GPS 5 ]]</nowiki></tt>. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 20:53, 22 June 2016 (UTC)
::::Just a small FYI/reminder for everyone:  as soon as the LifeViewer version on the LifeWiki is updated past the current build 195, existing TRACK and waypoint coordinates will have to be negated, in any scripts where they're used -- e.g., TRACK 7 -1 0 instead of TRACK 7 1 0, above.  It seemed a little odd that TRACK had to be told where the pattern should move to, whereas everything else was defined in terms of where the camera position. Sooner is probably a better time than later, to make that more consistent...  [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 15:27, 29 June 2016 (UTC)


::::: Whoops, sorry for the delay. Build 199 is now live on the wiki. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 23:55, 29 June 2016 (UTC)
::Yup, those are the ones where I find the infoboxes to be not-helpful.  Would suggest in those cases maybe just using an embedded viewer to show one of the family, or maybe a small stamp collection would be better.  The most recent example I dealt with was [[HFx58B]] from the Life Lexicon. Rather than pick a variant, and/or leave out perfectly good information that the Lexicon had, I just threw caution to the winds and put both patterns in the same infobox, but picked the older variant to do the infobox stats about.  Probably this will puzzle somebody sometime, but sometimes Life can be confusing... [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 11:20, 13 September 2018 (UTC)


::::::Something's wrong. Viewers using TRACK (such as the [http://conwaylife.com/w/index.php?title=Loafer&oldid=27504 Loafer's] don't move the camera anymore. Viewers using the older config (such as [http://conwaylife.com/w/index.php?title=Copperhead&oldid=27496 Copperhead]'s) still work. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 09:27, 30 June 2016 (UTC)
== Semi-automated collection of raw RLE ==
:::::::OK so that build escaped before I had a chance to give instructions for the changes that need to be made to the templates here. The <tt>TRACK</tt> command has changed to <tt>TRACKLOOP</tt>, and the way you specify the X and Y speeds has also changed. <tt>TRACKLOOP P X Y</tt> takes the loop period, P, and then the velocity in the X and Y directions in cells/generation. The coordinate system changed so negative values are now up and left.
:::::::For the [[Copperhead]] this means that the original <tt>TRACK 10 0 1</tt> command needs to become <tt>TRACKLOOP 10 0 -1/10</tt> (or <tt>TRACKLOOP 10 0 -0.1</tt> if you prefer). I've made this change to the [[Copperhead]] page. Similar changes will need to be made to other places that use <tt>TRACK</tt>.[[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 12:04, 30 June 2016 (UTC)
::::::::I experimentally fixed [[Loafer]] and [[31P8H4V0]] and a few others, just now.  The TRACKLOOP tracking works fine -- just needs dt, dx, and dy, in the standard Golly coordinate system now.  There's a new zoom-related bug in LifeViewer Build 199, which should be fixed in Build 200, which with any luck will show up on the Wiki fairly soon (hours or days).  Patience is advised... we can probably hold off on fixing the rest of the [http://www.conwaylife.com/w/index.php?title=Special:WhatLinksHere/LV:Viewer&limit=500 pages that link to LV:Viewer] until it's clear that the viewer thumbnail is looking right when we're done. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 14:27, 30 June 2016 (UTC)
:::::::::Nathaniel please upload [http://lazyslug.no-ip.biz/lifeview/plugin/js/lv-plugin.js build 200] when you get a moment. Note that in this new build there should be no need to specify ZOOM (and in most cases HEIGHT) commands in your templates since AutoFit will take care of this. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 16:48, 30 June 2016 (UTC)
::::::::::Build 200 is now live on the Wiki. You may need to refresh your browser to see it. Release notes can be found [http://www.conwaylife.com/forums/viewtopic.php?f=3&t=1622&start=175#p32557 here]. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 21:37, 30 June 2016 (UTC)


::::::::::: Excellent, thanks everyone! [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 10:04, 1 July 2016 (UTC)
I now have a completed Python script -- working on my system, at least! -- that goes through all articles in the main namespace looking for pname definitions in infoboxes and embedded viewers.  If it finds any defined pnames, it checks '''www.conwaylife.com/patterns/{pname}.rle'''; if a Not Found error comes back, it creates an appropriate file using RLE from '''conwaylife.com/w/index.php?title=RLE:{pname}&action=edit''', in a reasonably standard format including pname, discoverer and discovery year if available, and links to the relevant article and the RLE file itself.
::::Tracking should be fixed for all Infobox viewers now.  If you see any exceptions... well, just go ahead and fix them!  Some of the Cordership views can possibly be improved with some future build of LifeViewer, if there's a way to get the (currently automatically set) ZOOM level under better control, and/or allow for a wider viewer frame in the Infobox.  Currently some HEIGHT and WIDTH settings seem to be ignored -- besides any WIDTH<480 or HEIGHT<240 settings, which are below LifeViewer's minimium settings so are ignored for that reason.
:::::I changed [[RLE:coeship]] to a different phase, so that the whole trailing spark is always visible; there might be a few other high-period ships where that workaround could be used. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 14:30, 1 July 2016 (UTC)


:BTW, I'd like to repropose that we introduce a new namespace (in the technical sense) for RLE: pages, the reason being that so long as they're part of the Main namespace, they'll turn up as [[Special:Random|random pages]], among other things.
On the last pass the script found 190 missing RLE files in the main namespace.  These have now been uploaded to the server and added to all.zip.  You can sort the contents of all.zip by date to see the new additions.  Since this was a mostly automated process, the script may have picked up a few patterns that shouldn't really be part of the collection.  If anyone wants to do a quick independent review, I'd appreciate it!


:Obviously this can only be done by a site administrator who's got access to the server config (just Nathaniel, I presume). Documentation for adding namespaces is [https://www.mediawiki.org/wiki/Manual:Using_custom_namespaces here on mediawiki.org].
I think this will make the process of getting RLE uploaded to the server a lot easier for non-admins.  If raw RLE is created in the RLE: namespace, and is used in a pattern infobox or an embedded viewer, then it will make it to the all.zip collection eventually.  To give time for new raw-RLE additions to be peer-reviewed, I would think this script would only be run quarterly or so, with the resulting new RLE files sent as a ZIP file to Nathaniel to do a bulk upload to the server.  There shouldn't be any problem with good files getting overwritten with bad ones, since the script only generates an RLE file if no existing file is found.


:If we decide to do this we'll have to move the existing RLE pages over; there's [[Special:PrefixIndex/RLE:|quite a few]] already, so the best bet would be to automate the task; MediaWiki includes a maintenance script to help with this. We'd also have to make very minor edits to [[Template:Oscillator]] and [[Template:Spaceship]] (basically, remove a colon from each to transclude the page from the correct namespace), but that's all.
It occurs to me that another semi-automated survey might be looking for articles with nofile=true, that do in fact now have raw RLE and/or uploaded RLE files.  I'll try adjusting the script to include any such files it finds in its final report. It's a little trickier to automatically update all such "nofile = true" to say "rle = true" instead -- it's doable, but it needs a different kind of automation.


:Just bringing this up again because I noticed looking at random pages brought up a lot of RLE: ones. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 23:51, 3 July 2016 (UTC)
Thoughts, suggestions, worries, bug reports?  I'll add a link here to the RLE-scraper Python script when I've made it available on GitHub.  [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 14:21, 23 October 2018 (UTC)
: [https://github.com/dvgrn/b3s23life/tree/master/lifewiki-rlescraper Link!] [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 00:58, 26 October 2018 (UTC)
:: The next item on the RLE-scraper script TODO list will be to check for raw-RLE {pname}_synth files, and upload them if they aren't already there.  Longer term, the script can make a report of any differences it finds between files already on the server and the current contents of the RLE: namespace.  Probably best not to upload changed files automatically -- it seems worth having a human review any changes, and take the time to revert any changes that aren't approved for upload to the pattern collection. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 10:46, 25 October 2018 (UTC)


:: Thanks for bringing this up again. I'll create the namespace soon -- unfortunately I'm on vacation with terrible internet right now though so FTP access and whatnot is pretty painful. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 01:06, 4 July 2016 (UTC)
== Oscillator mods ==


::: Along with this, it would be nice to be able to auto-generate real RLE files from the RLE pages... maybe with some kind of minor security system, so that someone can't easily come along and replace every object's RLE with 28bo$28bo$4o2bo3bob4o3b3o3b4o$o3bobo3bobo3bobo3bobo3bo$o3bobobobobo3bob5obo3bo$o3bob2ob2obo3bobo5bo3bo$4o2bo3bobo3bo2b4o2b4o$o$o! or something, and have it show up in the Infobox viewer, or replace perfectly good commented RLE files that have already been uploaded.  Allow raw RLE to be created, but then lock it once it's been confirmed to be the correct pattern, and auto-generate full RLE files whenever the locking happens?  Something like that.
I noticed that all the recently created oscillator pages from the latest Lexicon update (example: [[p29 pentadecathlon hassler]]) have their mods listed along with their periods even if they're equal. Is it agreed upon that this should be the case? Because if so I can go through the [[:Category:Oscillators with unknown mod|unknown mod]] list later and add in all the mods if no one objects to it. [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 14:53, 28 October 2018 (UTC)
:: I also wondered whether it might work to have the RLE and glider-synthesis links in the Infobox open a page with a Select All codebox and a viewer, along the same lines as on the forums -- instead of just a plain-text view of the RLE file. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 03:05, 4 July 2016 (UTC)


::: I especially want to see RLE as a seperate namespace, since you can't search contributions/recent changes for "new pages"-type filters without RLE: pages pouring out of the screen. - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 09:33, 4 July 2016 (UTC)
: I can't claim to have made a really deliberate decision to include the mod when it's the same as the period -- I was just blindly filling in values in the oscillator template I was using. I don't have any objection to listing both period and mod, but let's see if anyone else has a different opinion.  Many thanks for all the cleanup work you've been doing recently, by the way! [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 17:04, 1 November 2018 (UTC)


::::Dave -- Displaying RLE and synthesis RLE as in the forums sounds like an excellent idea as well. And mass-importing existing RLE files should be easy to do with a shell script &mdash; though some manual tweaks may still be needed for e.g. spaceships with large tail sparks. And I agree with muzik that per-namespace filtering of edits would be another perk of a dedicated namespace.
:: Just to chime in --- I think listing both the period and the mod is valuable even if they match. Otherwise, if an infobox doesn't have mod information, a user won't know if that's because we haven't filled in the info or because it's the same as the period.  


::::MediaWiki has [https://www.mediawiki.org/wiki/Manual:$wgNamespaceProtection some support for per-namespace permissions], BTW, so it would be easy to only allow e.g. trusted users to edit pages in the RLE: namespace. Alternatively sysops could of course simply look over each new RLE page (perhaps using [[Special:NewPages]] to monitor activity in this namespace) and lock the ones that are done, fully or to trusted users. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 09:44, 4 July 2016 (UTC)
:: And I agree, thanks are due to Ian07 for all the clean-ups and other work. MediaWiki has barn (heh) stars; do we have something similar? Maybe we should. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 21:01, 3 November 2018 (UTC)
Nathaniel please will you upload [http://lazyslug.no-ip.biz/lifeview/plugin/js/lv-plugin.js build 206] when you get a moment. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 19:39, 13 July 2016 (UTC)
::::: The RLE namespace is now a real namespace, and I have moved the pages over. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 14:17, 21 July 2016 (UTC)


:::::: Excellent, thanks for handling this! [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:12, 22 July 2016 (UTC)
== Conduit orientations and ghost Herschels==


:Thanks Nathaniel!
Quick question, y'all: is "T" a standard designation for a "turned" conduit output orientation? I'm asking because of [http://conwaylife.com/w/index.php?title=Template:Conduit&curid=11630&diff=48592&oldid=45674 this edit] to [[Template:Conduit]] --- I lack the expertise whether this is standard terminology or not.
:Build 206 is now live on the Wiki. You may need to refresh your browser to see it. Release notes can be found [http://conwaylife.com/forums/viewtopic.php?f=3&t=1622&start=175#p33212 here]. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 13:44, 14 July 2016 (UTC)
::Nathaniel to remove the "Script error" messages and to allow wider LifeViewers please can you add the following to the <tt><head></tt> section of the Wiki pages: <tt><meta name="LifeViewer" content="rle code"></tt> [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 15:48, 14 July 2016 (UTC)


::: Done, thanks. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 16:07, 14 July 2016 (UTC)
If it is, it should be documented in the template. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 21:27, 3 November 2018 (UTC)
:::: Nathaniel please will you upload [http://lazyslug.no-ip.biz/lifeview/plugin/js/lv-plugin.js build 207] when you get a moment. Sorry for the quick update but a bug escaped. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 18:27, 14 July 2016 (UTC)


::::: 207's uploaded, script errors persist. Looks like [[LV:Viewer]] still needs to be updated? [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:54, 15 July 2016 (UTC)
: Similarly, [http://conwaylife.com/w/index.php?title=Template%3AConduit%2FDoc&diff=50590&oldid=44902 this edit] to [[Template:Conduit/Doc]] doesn't seen to be adding anything useful to the page. As I've just started here I'm a bit hesitant to go around rolling back changes to Template pages though. [[User:Wildmyron|Wildmyron]] ([[User talk:Wildmyron|talk]]) 03:31, 12 December 2018 (UTC)
:::::: Script errors are because those patterns have scripts containing <tt><nowiki>[[ WIDTH ]]</nowiki></tt> script commands with values of < 480 (which is the minimum width for a non-thumbnail LifeViewer). So those <tt>WIDTH</tt> commands need changing or removing (in which case it will default to 480 pixels width). Then the <tt><nowiki>[[ THUMBNAIL ]]</nowiki></tt> or <tt><nowiki>[[ THUMBLAUNCH ]]</nowiki></tt> commands can be used along with <tt><nowiki>[[ THUMBSIZE ]]</nowiki></tt> to specify how small to make the Thumbnail.
:::::: For example the two viewers on this page with Script Errors both have <tt><nowiki>[[ WIDTH 320 ]]</nowiki></tt> defined. [[User:Rowett|Rowett]] ([[User talk:Rowett|talk]]) 14:31, 15 July 2016 (UTC)


==The [[moon]] and LifeWiki's mission==
:: Thanks for pointing these out. I rolled back the "gray eaters" edit. The "T" option for symmetrical signals is a little more complicated. It is definitely something that I tried as a classifier a few years ago, but it never really caught on.  Now just in the last few days Freywa has done a new update of the Elementary Conduits Collection with a better idea than "T", so I'll have a go at documenting that instead.
It was [http://www.conwaylife.com/forums/viewtopic.php?p=32003#p32003 observed] on the ConwayLife.com forums that the [[moon]] (a [[photon]] in various B2 rules such as [[Seeds]] and [[Live Free or Die]]) has an article on here despite not actually being a spaceship (or indeed any notable pattern) in Conway Life.  


What do we do with this article, then? I'll copy my comments from the forum below for discussion:
:: Another conduit-related topic, for @Sokwe and anyone else interested:  it looks like there isn't universal agreement about whether ghost Herschels are a good idea or not, in conduit patterns.  I recklessly ported them in from the Life Lexicon, and I'm certainly going to keep them there because they're so darn useful.  You can copy conduits out of the Lexicon and string them together immediately.  My theory is that the same is true of patterns on the LifeWiki, and therefore that there ''should'' be a ghost eater in [[Syringe 2]], to match the one in [[syringe]] and the dozens of other instances in various recently added conduits.


:''Right now the wiki is serving two purposes. One, it's a general resource of information about cellular automata, especially Life-like cellular automata. And two, it's a pattern collection for Conway Life specifically.''
:: I can see how this looks a little bit like pollution, though, especially if it's extended to other types of outputs (which isn't very clean or easy to do in general, so let's not do that). I've been careful to link to [[ghost Herschel]] every time I use one (I think), so they shouldn't be mysterious for long -- and I'm seeing them getting a fair amount of use as markers in constructed patterns lately. Anyone want to contribute other opinions on this? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 13:33, 13 December 2018 (UTC)


:''There are no hard and fast rules, but unless and until we want to change this, I'd say we should not add articles for patterns that only exist outside of Conway Life. For example, I agree that an article on the bomber, notable as it may otherwise be, does not belong on the LifeWiki in its current form.''
== Categories and User Pages ==
Entity Valkyrie has been using pattern templates on user pages, causing those user pages to show up in [[:category:patterns]] and other categories. It is my opinion that patterns on user pages should not be included in the categories.  One way to fix this would be to detect the namespace of the page that the pattern template is being used on.  Something like the following:


:''However, that doesn't mean we can't have information on these patterns at all. For example it would be perfectly fine to have an article on [[HighLife]] (in fact, we do), and have a section on the bomber in that article (in fact, we do). A "[[Spaceships in HighLife]]" page would be fine, as that page would clearly pertain to HighLife rather than life, and its contents would not get mixed with information on Life's patterns in the pattern category.''
<code><nowiki>{{#ifeq:{{NAMESPACE}}|User||[[category:patterns]]}}</nowiki></code>


:''Adding "in other rules" sections to articles on Life patterns would also be fine, of course.''
This would categorize a non-user page as a pattern, but would do nothing on a user page.


:''The moon, meanwhile -- well, we don't talk about the moon. Ixnay on the oonmay! ;) Jokes aside, it's an article that probably shouldn't exist in its current form but has sort of been grandfathered in. If it only appeared in a single (notable) rule I'd move it to a section of that one's article -- but it's in at least two important ones, Seeds and Live Free or Die, so I'm not sure how to proceed. For now I don't think it's important enough to really worry about, but I'll start a Tiki bar discussion on the wiki.''
Are there any objections to this proposal?  Comments?<br/>~[[User:Sokwe|Sokwe]] 08:11, 2 December 2018 (UTC)
: I like that plan, especially if someone else implements it who is less likely than me to break templates. I've been trying to keep user namespace stuff out of the main namespace in general, with fairly good success so far I think -- but I don't usually go in and edit things like categories when a page moves from the main namespace to the User namespace. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 11:53, 2 December 2018 (UTC)


TL;DR -- I don't want to change LifeWiki's mission, it's fine as it is for the time being. Patterns from other cellular automata should not have patterns, unless they are interesting patterns in Conway Life as well. As such the [[moon]] should (probably) not have an article, but I don't know where its article's contents should be moved.
== Documenting 12-Bit Still Lifes ==


Thoughts? [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 12:10, 16 June 2016 (UTC)
AwesoMan3000 has been working on a fairly ambitious project to add articles for all of the 12-cell still lifes.  Most of them have systemic names, and it looks like negotiations have been at least partially successful about [http://conwaylife.com/wiki/Talk:Tub_with_tail_with_cape not just making names up] when long-standing existing names are available.  As of this writing, [[swimming cap]] is still an unnecessary neologism for "integral with tub and tail", I believe, and there may be others -- it's hard to keep up, but this is a work in progress with lots of ongoing adjustments.  The plan is for it to be complete by the end of the year.


: If we're going with the "In other rules" section in more pages, seems like the best idea is merging it with [[Grin]]. - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 12:18, 16 June 2016 (UTC)
A number of issues have appeared that I'd be interested in trying to get some kind of consensus about:


:: I agree with merging it with grin. In general, in cases like there where a pattern behaves differently in different rules, the Conway page should be the "main" article, with a subsection describing how it behaves in the other rule. If it is not notable in Conway's Life, then I have no objection to it getting its own page, with two caveats: (1) There should be enough information about it to really warrant its own page --- some patterns like the HighLife replicator can probably have entire articles written about them, but we likely don't need a page for every spaceship in every rule. (2) Since the focus is on Conway's Life, I'd like non-Conway patterns to be *very* clearly marked as non-Conway patterns. I'm thinking that they should all say the name of the rule in the page's title (so a pattern's title might be "Bomber_(HighLife)" or "Moon_(Seeds)" or something like that. [[User:Nathaniel|Nathaniel]] ([[User talk:Nathaniel|talk]]) 12:40, 16 June 2016 (UTC)
# when a still life is renamed for consistency -- e.g., "X and Y" names have been rapidly changing to "X on Y", as in [[block on cap]] -- changing the pname to match the name tends to break lots of links, especially for older 12-bit objects where Life 1.05, Life 1.06, and .cells formats are available.  I'd like to suggest that we can take the radical step of dropping support for Life 1.05, 1.06 and .cells formats, and removing the links for those formats whenever we have an opportunity.  Is there any disagreement on this?  After that, it should be fairly workable to add just RLE:pname.rle and RLE:pname_synth.rle pages wherever necessary.  That will eventually fix the remaining broken links (see below).
# if the pname is changed, '''or''' if the still life in question didn't have an existing article on LifeWiki, AwesoMan3000 has been promising that there is an RLE file, using '''rle = true''' in the infobox parameters, and then uploading raw RLE under that pname. If I remember right, the '''rle = true''' is currently needed to get the infobox template to notice that LifeViewer can be used to display the pattern, instead of looking for an image file.  There isn't actually an uploaded RLE file in the LifeWiki pattern collection, so .rle and _synth.rle links will give Not Found errors for the time being.
# Several still life names have been changed due to an alphabetization rule, e.g., [[barge siamese loaf]] instead of '''loaf siamese barge'''.  This poses the same dangers of link breakage as above, fixable in the same way.  Or... it also seems workable to change the name of the page but keep the pname the same, at least until replacement raw RLE is uploaded.  See [[Talk:Hat_siamese_vase]].  This is being done for the moment in several of the "X on Y" pages. Am I missing other possible problems with this brave but potentially foolhardy renaming-for-consistency project?
# When no systemic or traditional name is available for a still life, either on Catagolue or in Mark Niemiec's database, it's hard to avoid the temptation to invent new names that no one has ever used before, and most likely no one will ever use and they'll just cause confusion.  One way around this would be to make it standard practice to write the article using the apgcode as the systemic name. I don't like this idea all that much, just because the pname would have to have an underscore in it for readability -- and MediaWiki likes to change underscores to spaces in some contexts, and I'm relatively sure that Murphy's Law will produce some unintended consequences somewhere.  Still, it's been tried, and it appears to work okay -- see [[xs15_3lkia4z32]].  Does that seem like a reasonable stopgap solution for unnamed objects?  We can always move apgcode-named articles later if a better systemic naming convention shows up.


::: I don't like the idea of slapping the rule name on the page title, unless it has similarly named patterns or concepts, etc in other rules. So Bomber (HighLife) seems like a good idea as to not get mixed up with the glider gun from normal Life, but something like Puddle jumper (DryLife) is kind of unneccesary if there is no pattern named Puddle jumper in normal Life. If anything, we should add the rule name into the introduction of the article, like "'''Puddle jumper''' is a [[9c/28 orthogonal]] [[spaceship]] in the cellular automaton [[DryLife]]." - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 12:54, 16 June 2016 (UTC)
===Next Steps===
When all raw RLE files have been added in the RLE: namespace for this project, I can re-run the auto-uploader script and make a set of new RLE files for a bulk upload to the LifeWiki server. The script will have to be updated to check for RLE:pname_synth pages as well as RLE:pname files. If the RLE namespace has been populated correctly, this will fix all the remaining broken links.  I'll plan to do a round of auto-updating early in 2019.


::::I'm in favor of adding an indication of the rule(s) a non-Life pattern runs in to the page title, myself. It may be superfluous in the article itself, but it'll make it MUCH easier to pick out these patterns in pattern categories such as [[:Category:Spaceships]] -- seeing "Bomber (HighLife)" there will make it that much clearer that the bomber isn't a spaceship in Conway Life.
As [[LifeWiki:Tiki_bar#Semi-automated_collection_of_raw_RLE|before]], if a pname.rle or pname_synth.rle pattern has already been uploaded to the LifeWiki server, it won't be overwritten by anything added to the RLE namespace. Eventually the script might check whether the uploaded pattern is the same as the raw RLE, and produce a report of any discrepancies so they can be resolved.  Not sure I'll get around to adding that feature in this next update, though.


::::Of course that's assuming we want to use the usual pattern categories for non-Life patterns in the first place. Do we? I'd honestly prefer not to; and while maintaining a separate category hierarchy for each rule would be unwieldy, we could have a second one for non-Life rules. The bomber would then be placed in (say) [[:Category:Spaceships (non-Life)]] or so; same for other patterns such as still lifes, oscillators etc. Category placement could be controlled by an extra infobox parameter, defaulting to using the regular categories (so existing articles on Life patterns would not need to be changed).
Comments, concerns, suggestions? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 17:23, 21 December 2018 (UTC)
: Also, AwesoMan3000 put the following in checkin comments for [[beacon on dock]]:
<pre>can we get a tiki bar discussion on whether all disambiguation pages should have (disambiguation) on the end, by the way? i'd rather cut down on unnecessary redirects where possible</pre>
: So, okay, here's a Tiki Bar discussion. I don't see why the page shouldn't be moved to [[beacon on dock (disambiguation)]] to match the original [[beacon and dock (disambiguation)]] page.  I'm not a big fan of disambiguation pages in general, especially where they can be avoided by making a single page for the most common definition, and linking from that page to other possible meanings under different names. But that doesn't work for cases like this where there isn't a most common definition. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 20:44, 21 December 2018 (UTC)


::::[[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 16:28, 16 June 2016 (UTC)
::'''Re: Made-up names'''


:::::You mean that it would check the "Rules" bit in the infobox, and if the important rule isn't Conway Life it would get added to the non-Life category? - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 15:32, 17 June 2016 (UTC)
::I agree that we should stick to established names when they're available and not make up new ones. OTOH, when an object does ''not'' have any established name (and I really do mean ''does'' not, not just "whoever wrote the article couldn't remember it"), I think it's in the best tradition of Life (and life) to give it one.


::::::That would be even better, but a bit more advanced. As a first approach I was merely thinking of something like <tt>life=true</tt> (default) / <tt>life=false</tt> (with a better name for the parameter). Patterns with <tt>life=false</tt> would then not get added to the [[:Category:Patterns|usual category tree]].
::The question then is whether the LifeWiki is the right place for this. My general feeling is that we're a relatively conservative part of the Life universe: we aim to document, not invent. We're not as anal about it as Wikipedia with its "no-original-research" and "verifiability-not-truth" criteria for inclusion, and neither do we have to be; but just like we're asking people to not create wiki pages for new discoveries of their own but instead share them on e.g. the forums, we can also ask people to not name previously-unnamed on the wiki but instead resort to (again) the forums, etc.


::::::Of course there's still issues. For instance a pattern might be an oscillator in one rule, a spaceship in another, and a still life in a third; I don't think it'd be right to add three infoboxes (two of them specifying <tt>life=false</tt>) to the article then. But as long as we limit ourselves to highly notable patterns such as the HighLife Bomber and don't try to provide a comprehensive repository of all notable patterns in non-Life rules, I think this shouldn't matter in practice.
::OTOH this may very well lead to a situation where a user wanting to name an unnamed object will simply suggest the name on the forum in an appropriate thread (is there one yet?), wait for a few days/weeks/months, and conclude from the resulting thundering silence that there are no objections -- all in favor --, and go ahead and name the object on the wiki. The end result would be the same, modulo the extra pain of that extra waiting time.


::::::TL;DR -- as far as patterns go I feel we should focus primarily on Conway Life in this wiki for now, but the occasional article on highly notable non-Life patterns won't kill us and may well add value, so long as we don't lose sight of our primary focus. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 16:15, 17 June 2016 (UTC)
::And would this gain us anything?


: So, what exactly are the most notable non-Life patterns?  To me, the first thing that comes to mind is the HighLife replicator. Can anyone think of any other non-Life patterns of significant notability?  How many such patterns could we potentially justify pattern pages for?<br/>~[[User:Sokwe|Sokwe]] 01:26, 18 June 2016 (UTC)
::FWIW, what are we looking to gain from a policy that forbids new names from being put on the wiki first anyway? If we don our documentationist's hats (documentationist --- I hope that's a word!) and take no position on whether a named object is somehow preferable to an unnamed ones, if we merely want to document the Life's community works, passively and from the outside, then yes, this is preferable. If we see ourselves as being an ''active'' part of the community, we might find named objects preferable to unnamed ones (and "proper" names preferable to systematic ones, etc).


::Probably the bomber and the c/98 from HighLife, and the 9c/28 from DryLife. - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 08:24, 18 June 2016 (UTC)
::I think I'm in the latter camp myself. I like named objects.


:::My gut feeling is that the bomber at least is probably notable enough to have an article. The other two ships that AwesoMan3000 mentions I don't know about, I'm simply not familiar enough with [[HighLife]] or [[DryLife]] to say one way or another. Based on [[David Bell]]'s 1997 paper on [[Day & Night]] the [[Rocket]] (that's [https://catagolue.appspot.com/object/xq40_0sfvuvfszw1ovo1z0sgpvpgszwcvvvczookpvpkooz8hvvvvvh8z2pfvvvfp2zw37f73/b3678s34678 this xq40]) from that rule is also notable enough.
::What I am worried about is that, if we allow new names to be "born" on the LifeWiki, &hellip; shall we say, ''easily excited'' users might get carried away and go on an editing spree, adding hundreds of new names to previously unnamed objects without any discussion or consensus.


:::But it's a judgement call. To establish a pattern's notability for the purpose of an article in the LifeWiki, do we look at that pattern's importance ''within the rule it appears in'', or within the wider context of [[Life-like cellular automata]]? The former's tempting, but the rules the patterns stem from themselves might not be important. The latter, meanwhile, might exclude some patterns unnecessarily.
:: Going off on a tangent for one paragraph, I also think the creative naming in Life stem in no small part from the need to be able to ''talk'' about objects. These days we have apgcodes, so we can indeed refer to [[xs15_3lkia4z32]] without it having a proper names.  


:::So I'd say "very important patterns in important rules", perhaps (still a judgement call, of course). How does that sound? [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 09:33, 18 June 2016 (UTC)
::The best solution I have is what one might call a four-eyes approach, where


::::Since this is the LifeWiki, I was more thinking of Conway's Game of Life, and rules which are similar to it. So HighLife, DryLife, possibly tlife, etc. Other notable rules could be mentioned here and there.
::# New names are valued in principle;
::# But the person proposing them can't be the one naming the object on the Wiki;
::# If someone wants to add page for a (notable) object that doesn't yet have a name, they should use the object's apgcode.


::::Here's the 9c/28: http://www.conwaylife.com/forums/viewtopic.php?f=11&t=490&p=3326&hilit=Drylife#p3239
:: Whether names are proposed on the forum or elsewhere is largely irrelevant than, though I'd suggest a dedicated thread on the forum. I'd also suggest a certain cool-down period between the proposal and the wiki edit, so that others have a chance to speak up. (What I'm worried about there is the possibility that ''two'' easily-excited users, might join forces after one of them proposed a new name elsewhere, say on Discord: one would propose it, and right after the other would accept it).
::::and c/98: (I mean, you posted in the thread so you should know about it?) http://www.conwaylife.com/forums/viewtopic.php?f=11&t=1612#p16741 <small><span class="autosigned">—&nbsp;Preceding unsigned comment added by [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]] • [[Special:Contributions/AwesoMan3000|contribs]]) 10:10, 18 June 2016 (UTC)</span></small><!-- Template:Unsigned -->


:::::I shoot from the hip and then promptly forget what I said. :P I'm not actually very smart, all things considered.
::'''Re: pname changes, Life 1.05/... support'''


:::::Outside of that -- I don't think there's really a meaningful difference between rules that are "similar" to Conway Life and ones that aren't. They're all Life-like cellular automata, after all; on the other hand even rules that share some patterns with Life (such as [[HighLife]]) still differ substantially from it. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 22:57, 18 June 2016 (UTC)
::No objects to dropping Life 1.05, 1.06, and cells; RLE has clearly emerged as the standard at this point. I don't know if anyone's still using a CA simulator that's not capable of using RLE, but the lack of complaints about ''new'' patterns only having RLE files available and nothing else leads me to believe there isn't. I'd say let's remove support for these and see if anyone speaks up. If there's no complaints, we can flip the switch for good.


:::I personally don't see why these patterns need their own pages.  The 9c/28 "puddle jumper" and its relatives could easily be included in a [[DryLife]] page.  The c/98 HighLife ship could be covered with an external link to the forums.  I think the bomber section on the HighLife page is sufficient for that pattern.
::As for pname changes in general, they're still a pain. I'd suggest that
::: As I see it, there are two main problems with adding non-Life pattern pages.  The first problem is that we don't really have criteria to establish the notability of patterns in other rules.  There's often disagreements over the notability of Life patterns, and non-Life patterns add the extra complexity of rule notability.  The second problem is that we will need to find a way to clearly separate Life patterns from non-Life patterns. I don't want the bomber to show up in [[:Category:Spaceships with speed c/6]], nor do I want categories like [[:Category:Spaceships with speed c/98]], as they could cause confusion with what is known in Life.
:::I personally support a ban on all non-Life pattern pages.  The added difficulties and potential problems of non-Life pattern pages don't seem to be worth it when we aren't likely to add more than 10 such pages.<br/>~[[User:Sokwe|Sokwe]] 05:49, 19 June 2016 (UTC)


::::Okay, no specific pattern pages. What about another approach; clicking on a link for a "non-notable" pattern shows it in LifeViewer?
::# Whoever changes a pname is responsible for cleaning up the resulting mess; and
::::It might be a bit alarming to not know which ones pop up in the viewer or not, so I propose that links that open LifeViewer are green or something, except that would probably be a lot of work to create.
::# pname changes shouldn't be mandatory without a good reason.
::::For example, clicking on the link for the c/98 ship on [[HighLife]]'s elemental spaceship section would open up LifeViewer, so we would get to see the ship. - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 11:53, 24 June 2016 (UTC)


:::::I don't see anything wrong with using the viewer to display these patterns, e.g. on pages such as [[Spaceships in HighLife]] or [[HighLife#Spaceships]] or so. Remember you can just inline viewers using [[LV:Viewer]], too.
::What is a "good reason"? A typo, say --- "<tt>pname = 2enginecrodership</tt>" would obviously require correction. OTOH, if [[Beluchenko's p51]] has "<tt>pname = 112p51</tt>", I see no problem with that at all. (If anyone else does, they're welcome to change it, provided they clean up afterwards, as per 1. above).


:::::Use of the standard infobox templates should still be avoided for now, so in order to not put non-Life patterns into the pattern categories at the very least. In the long run, detailed information on patterns from non-Life rules is likely better off in dedicated wikis anyway, though I personally think general information and "overview"-style articles are fine here. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:58, 24 June 2016 (UTC)
::'''Re: infobox parameters'''


:FWIW, since the [[Moon]] is now mentioned as a B2-photon on [[Grin]], I've turned its page into a redirect to the latter article. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 22:31, 24 June 2016 (UTC)
::These should '''always''' correctly reflect the status quo. If a pattern doesn't have an RLE file uploaded, the infobox template call shouldn't have "rle=true". Don't lie to the infobox templates! It's the responsibility of those who create articles to make sure all parameters are correct to the best of their knowledge.


== [[Pattern naming]] ==
::'''Re: RLE files and raw RLE snippets'''


I've taken the article on [[Unnamed]] patterns and extended it into a general explanation of [[Pattern naming]]. However:
::I'll leave this in your capable hands. :)


# I don't know how to write beautiful prose; and
::'''Final note'''
# I'm still hopelessly confused about the various prefixes (ortho-, meta- etc.).


So therefore it would be great if others could go over it and clarify/expand/edit/fix it as necessary. Thanks! [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:22, 20 June 2016 (UTC)
::I think having articles on all 12-bit still lifes is a worthwhile endeavor, but -- in light of who's doing this, and admittedly without actually having looked at anything that was created recently -- I'd like to remind everyone who's creating articles that they have a duty to exercise care when doing so. In particular, this means not just starting a whole lot of articles and leaving them in half-broken states.


== Macrocell/RLE files for large spaceships ==
::I'd also like to remind people that they should learn from their mistakes. Nobody's perfect, especially newcomers; the LifeWiki can be difficult to get used to, I imagine. We have the right to make mistakes, but we have the duty to learn from them. He who keeps making the same mistakes time and again is either ignorant, or careless, or both, and those are not qualities a LifeWiki editor should have.


[[Macrocell]]/[[RLE]] files for various large spaceships have been uploaded to the <tt>RLE:</tt> namespace recently, including at least the following:
::(And that's about all I can think of, off the top of my head.) [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:20, 22 December 2018 (UTC)


# [[RLE:linearpropagator-mc]] (89 KB)
::: Thanks for the thoughtful review. A couple of template issues have come up where some expert advice would be helpful:
# [[RLE:gemini-mc]] (1.7 MB)
::: 1) A [http://www.conwaylife.com/w/index.php?title=Template:Oscillator&diff=52573&oldid=50579 change made yesterday] to [[Template:Oscillator]] seems to be not working to populate [[:Category:Periodic_objects_with_minimum_population_3]] and all other, um, categories in that category. Is there a misplaced character somewhere in those hideous piles of parentheses, or is the problem actually somewhere else?
# [[RLE:gemini2-mc]] (1.0 MB)
::: 2) Is it possible to do Template Magic (TM) to make glider syntheses behave the same way as regular pattern files do?  That is, if '''synthesisRLE = true''', then the standard link to an uploaded pattern file should appear in the Glider Synthesis section of the infobox -- but otherwise, if there's a page at '''RLE:{pname}_synth''', then a "raw RLE" link should appear instead.
# [[RLE:gemini3-mc]] (1.2 MB)
::: Here's an example of an update currently in process:  we used to have an uploaded eateronboat.rle --
# [[RLE:demonoid-10hd-rle]] (254 KB)
#N Eater on boat
# [[RLE:halfbakedknightship-mc]] (131 KB)
#C A 12-cell still life consisting of an eater 1 and a boat.
#C http://www.conwaylife.com/wiki/index.php?title=Eater_on_boat
::: -- and an uploaded eateronboat_synth.rle --
#N Eater on boat_synth
#O Mark D. Niemiec
#C Glider synthesis of eater on boat.
#C www.conwaylife.com/wiki/index.php?title=Eater_on_boat
::: Then along comes AwesoMan3000, who probably thinks that that's a lousy name for this object because it can mean two different things, and isn't really a common use of "on" anyway. So the name gets upgraded to the more specific "boat tie eater tail", and all the appropriate changes get made to the text of the article.  And there's a redirect from [[eater on boat]], so damage is limited to other pages that link to this page.


If there's a point to this I'm not seeing it. The LifeViewer plugin won't handle these, and embedding these huge ships in a viewer in articles wouldn't make much sense anyway. (Just imagine someone looking up a ship on their mobile device and being handed a multi-megabyte file that the viewer plugin would then try to animate.)
::: However, AwesoMan3000 can't do anything directly about those uploaded pattern files, or the comments in those files.  The simple solution is to just leave the pname the same, still pointing to the old pattern and synth files. That doesn't break any links, but it's a bit confusing because the name doesn't match the article.


Thoughts? [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 12:05, 15 July 2016 (UTC)
::: If we want to get boattieeatertail.rle and boattieeatertail_synth.rle files uploaded to the LifeWiki server, currently what we can do is add those as raw RLE, and change the pname in the article to '''boattieeatertail'''. I've done that experimentally for this example. As a nice side effect, as soon as the pname changes, LifeViewer shows up in the infobox instead of a static image.


*Ironically, these are technically aimed at mobile users - I've stated before on the forums that it's not possible to select long text files as the raw text format. However, this is possible in the wiki editor's raw text editor.
::: That's not too exciting when we're dealing with still lifes... but it does start to get people used to an easier way of getting a copy of the RLE to paste into Golly or wherever -- click to launch LifeViewer, then Ctrl+C.


*Of course, the viewer won't be able to load them, so I moved them to different file names so the viewer wouldn'r be able to find them. (but can we maybe get gifs for them?) - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 12:23, 15 July 2016 (UTC)
::: (If anyone is following along, [[Beehive_at_loaf]] is currently an example of the old style of article, with a separately uploaded static image -- no LifeViewer, just because no raw RLE has been uploaded to [[RLE:beehiveatloaf]].)


::I'm not sure why you'd want a multi-megabyte pattern file on your phone, but sure, I'll take your word that it's useful.
::: Okay, so here is where the difficulty shows up!


::As for GIFs, if you want them you'll have to generate these yourself. Just for fun I created a static PNG of the complete Caterpillar at a scale of 1:1. :P
::: '''PROBLEM''': as soon as the pname is changed from "eateronboat" to "boattieeatertail", the '''rle = true''' and '''synthesisRLE = true''' lines in the infobox suddenly turn into lies.  They're only temporary lies, because there's a plan to run the auto-uploader script and get the new RLE uploaded. But when RLE is being added for dozens or hundreds of still lifes, there's no way that an admin is going to keep up with running the auto-uploader after every change.


$ ls -l caterpillar.png
::: In fact, it just plain doesn't work that way -- the auto-uploader does a scan of the entire main LifeWiki namespace and creates an archive ZIP file of a big pile of changes, intended to be sent to Nathaniel to do a bulk upload to the serverThat should really only happen a few times a year, not every time a change happens. So we wait until a batch of changes have been made, then collect and send them.
-rwxr-xr-x+ 1 User None 11004191 Jul 15 17:45 caterpillar.png
$ file caterpillar.png
  caterpillar.png: PNG image data, 4197 x 330723, 2-bit colormap, non-interlaced
$


:: As you can see the resulting file's surprisingly small at 11 MB, but can't be opened in e.g. GIMP because it's too big (GIMP apparently uses 16-bit integers for an image's width/height). I've not tried uploading it to the wiki; I'm not aware of any specific restrictions that would make this impossible, but I don't see the point, and I believe thumbnail generation etc. wouldn't work.
::: Theoretically we could remove the '''rle = true''' and '''synthesisRLE = true''' lines from each article, then add them right back again after the auto-upload is done. But when the timeline of a project is short enough, that looks like a highly irritating waste of time -- basically, Life is too short.


::An animated GIF, meanwhile, would
::: I hope everyone is okay with the idea of saying that these particular deliberate temporary inaccuracies in infobox parameters are actually not "lies", but rather something along the lines of "promises". [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 13:40, 22 December 2018 (UTC)


::# be much larger. The Caterpillar's got a period of 270, so there'd have to be that many frames to the animation; GIF compression is also inferior compared to PNG compression, though this may be offset partially or completely by the fact you'd only need to compress a delta for each frame. Still I'd expect a filesize on the order of a gigabyte at least.
:::: As for the first issue, I checked and double-checked the template and didn't find any syntax errors. What's weird is if you go to the [[Blinker]] article you can see that it has the [[:Category:Periodic objects with minimum population 3]] category, but the category page says it's empty. This makes me think that there's some sort of glitch with MediaWiki rather than a syntax error, especially considering that, as you pointed out on Discord, LifeWiki is running a [https://www.mediawiki.org/wiki/MediaWiki_1.23 pretty outdated version] of it. [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 14:00, 22 December 2018 (UTC)
::# take much longer to generate. I didn't actually check how long the PNG took, but it was a fair while.
::# be largely useless. For ships like these videos are a much better choice.


::So don't look at me -- but if you want to create an animated GIF for any (or all of these) yourself, by all means knock yourself out, stud. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 21:23, 15 July 2016 (UTC)
::::: Can the links to pattern files be directed to a dynamic endpoint that creates the pattern file? For all patterns with apgcodes, for instance, Catagolue could theoretically include endpoints of the form /objfile/<rule>/<apgcode>/<format> (with support for RLE, Life 1.05, and Life 1.06). That would mean that humans only need to provide static RLE files for large and/or aperiodic patterns. [[User:Calcyman|Calcyman]] ([[User talk:Calcyman|talk]]) 00:36, 23 December 2018 (UTC)


:::For obvious reasons, I don't think that one frame for every generation would be a good idea, especially for geminoids spaceships. - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 22:09, 15 July 2016 (UTC)
:::::: Late reply, but yes, that would definitely be possible. Pattern file links are handled by [[Template:PatternDownload]], which already gets passed the apgcode (if we have it, for a given object), so it'd only be a matter of tweaking that template. And I think doing away with manually-generated and -uploaded RLE files where possible would save us a lot of work.


== More Infobox parameter ==
:::::: (I should qualify this by stating that I'm not suggesting we delete existing manually-generated pattern files; merely that having Catagolue be able to do this would allow us to not have to worry about future ones, except for Patterns of Unusual Size&trade; etc).


Here are three I kind of want:
::::::: I do like the idea of not having to upload pattern files for all the files that have apgcodes, theoretically.  On the other hand, the fastest way to get a picture of an object into an article about the object, these days, is to upload RLE to the RLE namespace and add the relevant infobox.  And the RLE-scraper script can then (with just a small amount of help from me) magically grab all the new pname-linked RLE files, put them in a ZIP archive, and send it to Nathaniel to put on the server -- once every month or three as needed.
::::::: I can add automatic conversion of everything to .cells format and add those files automatically to the ZIP file sent to Nathaniel.  So would we gain much by being able to link to a pattern file on Catagolue?  Not sure.


* mod = Shows the [[mod]] for the pattern
::::::: I'm starting to work on support in the script for {pname}_synth files as well, so that if people put something into RLE:{pname}_synth, it will get turned into {pname}_synth.rle and get thrown in the ZIP file along with everything else. But here I'm really not sure if that's the best thing to do, at least for a lot of cases. There are a couple of big sources of synthesis RLE: chris_c's script (via Catagolue these days) and Mark Niemiec's database.  Maybe Catagolue could serve up RLE without the LifeViewer, or maybe the "Glider synthesis" section in the infobox could be tweaked so that it links to the LifeViewer page on Catagolue showing the relevant synthesis?
* noviewer = If false, then LifeViewer will not appear in the infobox. Good temporary fix for pages I messed up, like [[waterbear]].
* rlelink = Specifies a different link to a page in the RLE:namespace, so I can perhaps link to [[RLE:waterbear-rle]] without having to change the name of the pattern within the infobox and screw up LifeViewer even more.


- [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 20:25, 17 July 2016 (UTC)
::::::: Then for anything that has a synthesis in Mark Niemiec's database, we just need to collect the identifiers and add them to the infobox template (somehow -- suggestions gratefully accepted), then set up the template to link directly to those files.  For example, the path to the beehive synthesis is [http://www.conwaylife.com/ref/mniemiec/0/6hv.rle "0/6hv.rle"], and the path to a beehive on cap synthesis is [http://www.conwaylife.com/ref/mniemiec/14/14-50.rle "14/14-50.rle"].


:Another few:
::::::: That way RLE:{pname}_synth pages would only have to be collected and uploaded for patterns where no synthesis is available on Catagolue or on Mark's site.


* systematicname = Shows the systematic naming code for the pattern
::::::: Something like this would prevent us from continuing to upload so many no-value-added syntheses that are just copies of something from elsewhere (and that won't get updated when Mark's database or chris_c's script gets updated).
* apgcode = The pattern's apgcode


:So in the case of copperhead:
::::::: I don't think we should necessarily start the big project of supplying all those Niemiec-database identifiers to the infoboxes ''quite'' yet:  Mark has said recently that he's close to rolling out a new version of his site, and it might make sense to wait and make sure nothing major has changed in the new version.  But we could try the experiment of getting everything set up correctly for, say, the [http://www.conwaylife.com/ref/mniemiec/p1-12.htm 12-bit still lifes] that were added to the LifeWiki recently.


*Mod = 10
::::::: TL;DR: Templates need tweaking. Anyone interested in trying some experimental additions to the Glider Synthesis section? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 03:59, 10 January 2019 (UTC)
*Systematic name = 28P10H1V0
*apgcode: xq10_o5995ozes88sezw33


:Where those last two would be located in the onto box I do not know. Mod would be directly under period, and the result of rlelink would of course replace the "raw RLE code" link.
:::::::: It seems that MDN has helpfully highlighted objects in a different colour in his version of Extended RLE. I think this means that the .rle files can be automatically reverse-engineered to deduce the objects that are produced, enabling the generation of an apgcode-to-mniemiec-url mapping. [[User:Calcyman|Calcyman]] ([[User talk:Calcyman|talk]]) 16:10, 10 January 2019 (UTC)


:- [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 21:02, 22 July 2016 (UTC)
::::::::: That might work, though it might also be more trouble than it's worth to get the automated reverse-engineering working.  It's not just the target objects that get the "x" color, but also the intermediate stable stages -- and there are a lot of those in some cases, when multiple construction paths are documented.  If you censused all the 'x' objects, the most common object is probably the target object -- or the one that's farthest to the right, I suppose.


::I'm not sure putting the apgcode in the infobox is a good idea. I considered this back in spring, but ultimately ended up creating [[Template:LinkCatagolue]] instead. There's several reasons for this.
::::::::: But that may not be necessary.  Mark sent an email to me over half a year ago saying that he had put together "...vastly improved search pages [which] should include everything necessary to perform searches... pattern lists, statistics for each pattern, and links to other sites (like Catagolue, Pentadecathlon, David Eppstein's Glider Repository, and LifeWiki)". So it's possible that Niemiec Database Mark 2 (heh) might provide a list of the required apgcodes with no need for reverse engineering.


::# First of all, apgcodes are primarily used on Catagolue so far; they haven't (yet) caught on as general descriptors. As such it makes sense to use them in the External Links section, to link to Catagolue specifically.
::::::::: We'll see when the time comes, I guess. At worst, generating that lookup table manually or semi-manually would be a one-time effort -- painful, but finite. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 21:44, 10 January 2019 (UTC)
::# Second, apgcodes can grow without bounds. Gliders, beehives, blinkers etc. have short codes that are easily memorized; larger objects (say, [[112P51]]) do not. Overly long codes would break the infobox layout when they're displayed.
::# Third, apgcodes are generally more suitable for consumption by machines than humans. Longer codes in particular can be confusingly similar despite encoding different objects (contrast e.g. xp30_w33z8kqrqk8zzzx33 and xp30_w33z8kqrqk8zzzw33, the trans- and cis-queen bee shuttles).


::Conversely, I don't see any advantages to adding apgcodes to the infoboxes for the time being.
Resetting indent back to zero, but still talking about kind of the same thing:


::One thing I'd like to do in the medium to long term is tweak the infobox templates to produce machine-parseable data describing patterns in a suitable microformat in addition to displaying a human-readable infobox; for this, apgcodes would then be useful to add (and you'd have the template add them to the machine-parseable data without displaying them in the infobox proper). But that's neither here nor there, and we'd need to lay the foundations before devoting time to implementation details: develop an ontology and write it up in a suitable language (OWL?), at the very least, and only THEN could we start tweaking the templates.
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."


::For now, let's focus on producing decent (informative, useful) articles for human readers. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 10:46, 25 July 2016 (UTC)
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.


::: Mostly irrelevant side note:  apgcodes can certainly grow big enough to be awkward in an infobox, but it's only mostly true that they can grow without bounds. A pattern over 40 cells wide would need a definite official ruling on how to encode longer strings of 0s. Quoting Apple Bottom from [[Apgcode|the apgcode article]]:
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.


::: <blockquote>(Theoretically, runs of more than 39 zeroes should be replaced by 'yz' followed by the coding for the remaining zeroes. At the moment apgsearch labels everything larger than 40x40 as 'oversized' and refuses to process it.)</blockquote>
-- 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. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 22:25, 24 January 2019 (UTC)


::: I'd agree that one or more '''yz''', followed by one more '''y'''-something to get to the required length, is the easiest and most obvious way to extend the apgsearch format to encode patterns bigger than 40x40But it might be worth thinking about a little bit, to see if it might be worth adding a marker that allows arbitrarily large (base 40?) counts to be encoded.  At the moment, sufficiently large sparse patterns can be encoded much more efficiently in RLE format, because RLE can encode long distances of emptiness in a logarithmic number of characters, where apgcode is currently stuck with a linear encoding... a much more efficient encoding, but still linear.
: 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 folderMost 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?


::: I think most current Golly scripts that deal with apgcodes are lifted fairly directly from the old Python apgsearch, so they would similarly fail to handle patterns that need more than thirty-nine 0s, so it would be good to publish "official" encoder and decoder scripts somewhere -- maybe in Lua as well as Python. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 15:25, 25 July 2016 (UTC)
: 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)


::::Touché. (Of course, I must point out I didn't write that bit -- the edit's [http://conwaylife.com/w/index.php?title=Apgcode&diff=prev&oldid=23644 due] to [[User:Rich Holmes|Rich Holmes]], and is lifted straight from the [https://catagolue.appspot.com/help/wechsler.txt wechsler.txt] file on Catagolue.)
:: 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?


::::To split a hair, though, I think this is an issue of decoding vs. encoding. Given an apgcode of the form ...<tt>yzy1</tT>..., it's obvious that this corresponds to a run of 44 zeros, and even absent a formal specification or test suite I think decoders should treat it as such. It's the encoding part that's problematic, since there's no Word of God on which apgcode should be canonical.
:: 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)


::::Indeed, although encoding a run of 44 zeros can be encoded as <tt>yzy1</tt>, it can also be encoded as <tt>y1yz</tt>, which would retain the overall code's length but precede it lexicographically, so a crafty encoder could emit this instead when faced with such a pattern. In fact it could also emit <tt>wxyz</tt> instead. (<tt>0y0yz</tt> would yield a longer code and should thus be rejected.)
::: 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'm tempted to suggest encoding long runs of zeros using a base-36 notation, where <tt>y#</tt> encodes ''<tt>#</tt> + 4'' consecutive zeros, with <tt>#</tt> given in base-36, but since arbitary base-36 digits that aren't part of the code may follow, it would require a stop marker. This would break all existing codes that don't have one, so it's not feasible.
::: 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)


::::What is feasible is repurposing unused letters to indicate how many base-36 digits the number <tt>#</tt> has. For instance, if the <tt>z</tt> digit were used, with ''n'' <tt>z</tt>'s indicating ''n + 1'' digits, code fragments such as <tt>yzzz####</tt> would be unambiguous, and the codes <tt>y0</tt> ... <tt>yy</tt> would remain unchanged. A run of 44 zeros would be encoded as <tt>yz14</tt> with this scheme.
== The list(s) of rules investigated on Catagolue ==


::::This could still be done: a quick check of my files reveals that there are not currently any objects on Catagolue containing either <tt>yz</tt> or <tt>yy</tt> (though there are two containing <tt>yx</tt>, an [https://catagolue.appspot.com/object/xp412_y7444y04bp3zzwezgg8gyrgg08oz32011yr1211zyxezzyeojq4y0444/b358s23 xp412 in B358/S23] and the [https://catagolue.appspot.com/object/xq190_33y1g88gzy133433zyeskszzyjcmm8zyx352/b38s23 ship-pulling xq190 in B38/S23] (one variant, anyway).
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.)


::::So that's two ways out I see:
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)


::::# clarify how runs of more than 40 zeroes are encoded (greedy, e.g. <tt>yzy1</tt>; based on length/lexicographic order, e.g. <tt>wxyz</tt>; or other, to be specified), or
: If we are to retire the [[List of rules investigated on Catagolue]], how should we do this? Add a notice at the top saying:
::::# repurpose <tt>yz...</tt> to encode longer runs (e.g. <tt>yz14</tt>).


::::I personally prefer the first, since it requires no changes to existing decoders, and since I'm not so convinced people are going to want to encode extremely large patterns as apgcodes anyway (as you point out, file formats such as RLE are better suited to that task.) For that matter I also prefer the greedy algorithm, since that'd be easiest to implement.
: "This page is no longer actively maintained in favour of the [https://catagolue.appspot.com/rules equivalent Catagolue page]."


::::BTW -- should we move this discussion to the forums? I've started a thread [http://www.conwaylife.com/forums/viewtopic.php?f=7&t=2307 here], soliciting input from others. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 16:40, 25 July 2016 (UTC)
: or words to that effect?


Kind of related: should we include the "raw RLE code" on all pages with them, alongside the regular RLE link? Doesn't seem way too useful, but hey. - [[User:AwesoMan3000|AwesoMan3000]] ([[User talk:AwesoMan3000|talk]]) 16:17, 1 August 2016 (UTC)
: 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)
::It's nice to have the raw RLE link available if no commented RLE file has been uploaded.  If we have a complete commented RLE file, a link will show up for that instead of the raw RLE. That all seems to me to be working fine just the way it is.
::It would be nice if someone could put together code that would find any LifeWiki articles that have no uploaded commented RLE files, but do have raw RLE -- and build a simple commented RLE from the raw version.
::I could put together something along these lines without too much trouble, I think -- but I would then have to upload the resulting files one at a time, or write some separate silly automation script to do that work for me.  Here's hoping there's a better way out there somewhere (?) [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 17:10, 3 August 2016 (UTC)


:::Finding pages that have raw RLE code but no uploaded file can be accomplished fairly easily by tweaking the pattern templates to put such pages into a (hidden) tracking category. I can go ahead and take care of that.
:: 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)


:::Automatically generating RLE files wouldn't be too much trouble either, but an administrator would have to upload them. I'll leave this part to someone else. ;) [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 20:56, 4 August 2016 (UTC)
== Time for a consensus decision on pnames? ==


:::EDIT: Here's the tracking category: [[:Category:Pages with raw RLE code but no uploaded pattern files]]. It's empty at the moment, which indicates that either a) no such pages exist, or b) MediaWiki hasn't updated category membership information for all pages that transclude [[Template:PatternDownload]] yet. Without knowing off-hand how MediaWiki's internal queue for this sort of thing works, my money's on a). (Yay!) [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 21:14, 4 August 2016 (UTC)
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.


::::How about [[Grandfather_problem]]? Shouldn't that be showing up on [[:Category:Pages with raw RLE code but no uploaded pattern files]]?  I tried to create another instance, [[P11 pinwheel]], but it's not appearing either.
The [[LifeWiki:Pattern_pages|guidelines for creating pnames]] say very clearly:
::::-- Also noticed that [[:Category:Pages without pattern files]] has a surprisingly reasonable number of entries -- someone could clean all of those up without too much effort. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 14:54, 21 September 2016 (UTC)
<pre>pname (required) The name of the pattern being described, but converted to lowercase and with all non-alphanumeric characters and spaces removed.</pre>


:::::The logic used in [[Template:PatternDownload]] to put pages into [[:Category:Pages with raw RLE code but no uploaded pattern files]] was wrong. I believe it should work now. (Famous last words!)
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:


:::::Since I think it may be of general interest, I'd also like to quote from a PM sent to dvgrn on the forums regarding this issue, which has some background on MediaWiki template/... syntax, what the problem was, and what other features of the software mean for us. (Keep in mind that although I have some experience with MediaWiki I'm no wizard, and take what I say with a grain of salt, a slice of lime and a shot of tequila):
# '''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.


::::::<nowiki>[...]</nowiki> Curly braces are being used by MediaWiki for many different things, among them: template inclusion/page transclusion, e.g. <tt><nowiki>{{SomeTemplate}}</nowiki></tt>; accessing template parameters within a template, e.g. <tt><nowiki>{{{1}}}</nowiki></tt> or <tt><nowiki>{{{someparam}}}</nowiki></tt>; parser functions, e.g. <tt><nowiki>{{#if:...}}</nowiki></tt> or <tt><nowiki>{{#expr:...}}</nowiki></tt>; and MediaWiki table syntax, where tables are introduced with a <tt><nowiki>{|</nowiki></tt> and wrapped up with a <tt><nowiki>|}</nowiki></tt>.
* [[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.


::::::What's more, pipes are also used for several different things, notably: to separate parameters in a template call, e.g. <tt><nowiki>{{SomeTemplate|param1=foo|param2=bar}}</nowiki></tt>; in parser functions, to separate different parts of certain expressions, e.g. <tt><nowiki>{{#if:condition|value-if-true|value-if-false}}</nowiki></tt>; and (again) in MediaWiki tables, when a table is begun with a <tt><nowiki>{|</nowiki></tt>, when a new row is started with a <tt><nowiki>|-</nowiki></tt>, and when a table cell is introduced with a <tt><nowiki>|</nowiki></tt> (they appear in more places still in tables).
* 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.


::::::One of the consequences of MediaWiki's ad-hoc syntax is that pipes in e.g. tables clash with the parser function syntax. Template calls and parser functions are evaluated before wiki markup (including tables) gets converted to HTML, so the pipes in tables must be protected against being interpreted as separators. The usual solution is to have a template called <tt><nowiki>!</nowiki></tt> (i.e. [[Template:!]]), which only contains a single pipe and which gets included as <tt><nowiki>{{!}}</nowiki></tt> whenever a pipe symbol must survive the template call/parser function step intact. Unfortunately this further increases the amount of curly braces used, and <tt><nowiki>!</nowiki></tt> is itself used in MediaWiki table syntax (for table header cells), so for a human reader it's not making things any easier.
====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.


::::::As for why why e.g. [[Grandfather Problem]] isn't showing up in the tracking category: looking at [[Template:PatternDownload]] again I think the logic used in that template to put pages into the category was faulty. There was (and still is) a test to see if there's any downloadable patterns for a page:
====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.


::::::<tt><nowiki>{{#if: {{{zip|}}}{{{mc|}}}{{{life105|}}}{{{life106|}}}{{{plaintext|}}}{{{rle|}}}{{#ifexist:RLE:{{{pname}}}|true|}} | ...</nowiki></tt>
-- 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.)


::::::(This concatenates all the parameters to see if any were passed with a non-empty value, and also adds a "true" (i.e. a non-empty string) if a raw RLE snippet exists for a page; if any pattern exists, the whole thing evaluates to a "true" value for the purpose of <tt><nowiki>{{#if:}}</nowiki></tt>.)
====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.


::::::There was an "else" branch (as it were) to that <tt><nowiki>{{#if:}}</nowiki></tt> later on which tested for the presence of a raw RLE snippet and added the tracking category if there was one. However, if there was such an RLE snippet the "else" branch of that <tt><nowiki>{{#if:}}</nowiki></tt> would never be run in the first place, so the category was actually never added to pages. <nowiki>[...]</nowiki>
Comments, suggestions, disagreements? Please post 'em here! [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 17:56, 15 January 2019 (UTC)


::::::As for the category itself -- it does not currently list all pages that should be in it due to MediaWiki's internal page cache / job queue, but it should populate itself in due time. (This is a feature primarily intended for large wikis where templates might be transcluded on hundreds of thousands of pages; synchronously updating category membership information for all of these when the template is saved would be impractical, to say the least.)
: 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.


::::::Individual articles '''should''' show the correct category if you've disabled page caching in your user preferences; if they don't, then doing a null edit (editing and clicking Save without making any changes) should fix this, or alternatively you can purge MediaWiki's cached version of that page by adding <tt><nowiki>?action=purge</nowiki></tt> to the page's URL. (The page cache is shared across all users, so this will fix it for everyone.) I don't recall off-hand what the maximum age is after which page cache entries are considered stale, but it can't be too high, so simply waiting for a bit will also mean any page whose cache has not been purged yet will magically fix itself.
: 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).


::::: [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 18:26, 27 September 2016 (UTC)
: 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


::::::The new category is looking good now!  The count of pages in the category stabilized at a hundred and thirty-odd, so I grabbed all the links and wrote a Python script to create commented RLE files using page title, infobox "discovered by", and pname.
: A couple other tasks are admin-only --
::::::The script creates the files just fine, but there are some problems I'm noticing with pnames.  I filtered out the weird ones; here are the problem cases so far:
# If pname has been changed, delete {old pname}*.rle from LifeWiki server to keep things in synch
::::::[[http://conwaylife.com/wiki/Barge_with_long_tail Barge_with_long_tail]], [[http://conwaylife.com/wiki/Boat_on_aircraft Boat_on_aircraft]], [[http://conwaylife.com/wiki/Boat_on_snake Boat_on_snake]], [[http://conwaylife.com/wiki/Boat_with_hooked_tail Boat_with_hooked_tail]], [[http://conwaylife.com/wiki/Boat_with_very_long_tail Boat_with_very_long_tail]], [[http://conwaylife.com/wiki/Carrier_with_feather Carrier_with_feather]], [[http://conwaylife.com/wiki/Cis-boat_with_nine Cis-boat_with_nine]], [[http://conwaylife.com/wiki/Cis-long_boat_with_tail Cis-long_boat_with_tail]], [[http://conwaylife.com/wiki/Cis-rotated_hook Cis-rotated_hook]], [[http://conwaylife.com/wiki/Claw_with_tub_with_tail Claw_with_tub_with_tail]], [[http://conwaylife.com/wiki/Eater_head_siamese_carrier Eater_head_siamese_carrier]], [[http://conwaylife.com/wiki/Eater_head_siamese_snake Eater_head_siamese_snake]], [[http://conwaylife.com/wiki/Eater_tail_siamese_carrier Eater_tail_siamese_carrier]], [[http://conwaylife.com/wiki/Eater_tail_siamese_snake Eater_tail_siamese_snake]], [[http://conwaylife.com/wiki/Eater_with_cape Eater_with_cape]], [[http://conwaylife.com/wiki/Extra_long_hook_with_tail Extra_long_hook_with_tail]], [[http://conwaylife.com/wiki/Extra_long_shillelagh Extra_long_shillelagh]], [[http://conwaylife.com/wiki/Fuse_with_tail_and_long_tail Fuse_with_tail_and_long_tail]], [[http://conwaylife.com/wiki/Hungry_hat Hungry_hat]], [[http://conwaylife.com/wiki/Integral_with_long_hook Integral_with_long_hook]], [[http://conwaylife.com/wiki/Integral_with_tub_and_hook Integral_with_tub_and_hook]], [[http://conwaylife.com/wiki/Integral_with_two_tubs Integral_with_two_tubs]], [[http://conwaylife.com/wiki/Long_prodigal Long_prodigal]], [[http://conwaylife.com/wiki/Tub_with_cis-tail Tub_with_cis-tail]], [[http://conwaylife.com/wiki/Very_long_integral Very_long_integral]], [[http://conwaylife.com/wiki/Very_very_long_boat Very_very_long_boat]], [[http://conwaylife.com/wiki/Very_very_long_canoe Very_very_long_canoe]].  (Update:  all these are fixed, I think -- new pnames match new raw RLE location, so the LifeViewer works, and now static images have been moved also.)
# 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.)
::::::Looks like the pname is being defined as identical to the name in a lot of these cases --
# 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.
<nowiki>|name        = Boat on aircraft
|pname        = Boat on aircraft</nowiki>
:::::: -- where it should be pname=boatonaircraft, at least according to the [[http://www.conwaylife.com/wiki/LifeWiki:Pattern_pages how-to-contribute page on Patterns]].
::::: Would anyone care to volunteer to repair all these pnames, and move the relevant RLE:{pname} pages... or shall I just go ahead and do it? [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 22:44, 29 September 2016 (UTC)
Also -- many or most of the above linked patterns are recently-added named still lifes from Catagolue, I think.  Is there a reasonably standard recommended LifeViewer config line for small still lifes, or shall I make one up?  [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 14:34, 30 September 2016 (UTC)


:Oh, I'd say you go ahead and do it. ;) The images will have to be moved as well when the pname's changed, of course. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:21, 1 October 2016 (UTC)
: 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).


::I tried fixing the last link, "Very_very_long_canoe", and the pname move worked fine, but the image didn't turn into a LifeViewer instance when I added a viewerconfig line. I admit that this is currently fairly pointless for still lifes -- the LifeViewer just serves as a very complicated generator of a still image, though with some awesome zooming/rotating/panning/coloring options...
: 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)


::However, that could change if LifeViewer starts supporting experimental editing, or selecting/copying patterns. Is there anything else I've forgotten that would enable the LifeViewer, or is that just not something that happens in still-life infoboxes?
==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.


::When I figure all these details out, I should probably update the [[http://www.conwaylife.com/wiki/LifeWiki:Pattern_pages pattern how-to pages]] to mention the viewerconfig line, and raw RLE:pname pages and so forth.  Hints and advice gratefully accepted.  For the time being I probably won't bother adding useless viewerconfig lines to the other mis-pnamed still lifes.  [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 13:13, 3 October 2016 (UTC)
Anyone know what's up with these? [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 23:35, 15 January 2019 (UTC)


:::It's been a bit, but IIRC [[Template:Oscillator]] and [[Template:Spaceship]] were specifically modified to support an embedded viewer, while other pattern templates weren't. I'll go ahead and edit [[Template:Stilllife]] accordingly.
==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)


:::BTW, one of the "would-be-nice-in-the-long-term" items on my to-do list is modifying the various pattern templates to use a common base template (so that only that base would have to be modified to support such things as an embedded viewer. But that's something that would have to be discussed and planned first, obviously. -- [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 19:01, 4 October 2016 (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.)


:::P.S. -- done, and it seems to be working on [[Very very long canoe]]. Still life-specific configuration for the LifeViewer is in [[Template:LifeViewer config/stilllife]]. I've also fixed a minor problem in [[Template:Oscillator]] for patterns with no uploaded image or pattern file/raw RLE (of which there shouldn't be any). [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 19:08, 4 October 2016 (UTC)
: 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)


::::Thanks -- the long term was impressively short in this case...!  I've gotten a script to generate pattern RLE for all of the [[:Category:Pages with raw RLE code but no uploaded pattern files]], and uploaded them all. Now it's just a matter of changing nofile=true to rle=true, and fixing the pname for patterns in the list of links above.  Don't need to add a viewerconfig line at all, right? -- unless I don't like the defaults.
==[[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. [[User:Ian07|Ian07]] ([[User talk:Ian07|talk]]) 23:32, 19 January 2019 (UTC)


::::rle=true successfully removed [[112p5]] from the category list. I tried getting a viewer for the first two items on the list, which were [[(27,1)c/72 Herschel climber]] and [[(34,7)c/156 Herschel climber]], but those are in an odd "Crawler" category which I'm guessing isn't set up quite the same as the main categories.
: 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)


::::I'm ignoring the problem of getting _synth files available for the synthesizable small stable patterns, and keeping the patterns and glider counts up to date.  Will try to keep that on the back burner until the next version of Mark Niemiec's glider synthesis database becomes available.  It might get a sizable update any month now, or at least any year, and possibly also a new URL.  If the new URL seems likely to be stable, maybe it will make sense to provide direct links to the patterns on Mark's site, instead of copying them one-by-one to the conwaylife pattern collection. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 12:57, 6 October 2016 (UTC)
== Help Wanted with templates and general review ==


:::::Is there a good trick for moving an image file to match an edited pname?  So far I've only tried with [[http://conwaylife.com/wiki/Special:FileDuplicateSearch/Barge_with_long_tail.png this case]], but didn't like the resultsAll the attribution information would have to be re-entered for the new copy (I think) and then the old copy could be deleted.  Seems a little silly.  Would a redirect work, maybe?  [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 17:41, 6 October 2016 (UTC)
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 itBoth of these items have been sorta kinda mentioned on the Tiki Bar before, fairly recently:


::::::Images can be [[Special:MovePage|moved]] just like other pages; there's a menu item in the dropdown menu. This'll leave all metadata intact, including the original upload date and uploader, file description, and so on.
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.


::::::Moving an image will also create a file redirect which we may not need, but that can be deleted easily, or even just left for now &mdash; it's harmless after all. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 22:43, 6 October 2016 (UTC)
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.


::::::P.S. -- I've moved the affected images. Since you already uploaded a new copy of [[:File:Barge with long tail.png]], I'd suggest we delete [[:File:Bargewithlongtail.png]] and then move the old one to the new and proper name. I'd do this myself, but I'm not an administrator and cannot delete pages. -- [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 23:03, 6 October 2016 (UTC)
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.


:::::::Okay, [[:File:Bargewithlongtail.png]] is now the right file. Thanks!  On to the remaining no-rle-file patterns, which I think all actually have correct {pname}.rle files but just don't know it yet. -- [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 13:36, 7 October 2016 (UTC)
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.


== Smallest oscillators of a certain period? ==
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)


I think it might be useful to have a category page which shows all oscillators that are currently the smallest oscillator of their period. (In terms of cells). Thoughts? [[User:Gmc nxtman|Gmc nxtman]] ([[User talk:Gmc nxtman|talk]]) 16:41, 14 August 2016 (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).


: If population is the only measure, there's an absolute ceiling for oscillator size no matter how big the period gets.  The "smallest" oscillator will often be a big eight-glider loop made of [[Snark]]s, or I guess maybe just a couple of [[rectifier]]s.  Just need to make sure no one is tempted to add pages for each such oscillator... but I suppose that's not likely to be a problem.  Maybe only include oscillators with period less than 43, or maybe less than 100 since the rectifier's repeat time is 106?  [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 13:55, 21 September 2016 (UTC)
: 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.


== Pattern collection archive ==
: 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 noticed that the [http://www.conwaylife.com/patterns/all.zip pattern collection] linked on the [[Main Page]] only contains RLE files anymore, not files in other formats (Life 1.05, Life 1.06, Macrocell, Plaintext). That's fine in principle, I think; RLE has been established as a standard, and we probably don't need to provide Life 1.05, Life 1.06 or Plaintext files.
: 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)


However, there's a couple of patterns that are now missing entirely from the archive, large patterns that are only available in Macrocell format. Specifically, the following files are gone:
:: @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)


* caterpillar.mc
: 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)
* centipede.mc
* demonoid.mc
* parallelhbk.mc
* shieldbug.mc
* succ.mc


Would be nice if the script generating the archive could be modified to include those again. Oh, and while I'm at it: the <tt>_README_.TXT</tt> file should perhaps be updated as well to reflect the fact Plaintext and Life 1.05/1.06 files aren't included anymore.
== Replacing images with animated viewers ==


One more thing: the archive contains two different "[[B29]] with gliders" files, <tt>B29withgliders.rle</tt> and <tt>b29withgliders.rle</tt>. This is probably unintended, and also causes problems on case-insensitive filesystems. [[User:Apple Bottom|Apple Bottom]] ([[User talk:Apple Bottom|talk]]) 11:24, 8 October 2016 (UTC)
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.
 
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.
 
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)
 
: 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]] --
 
<pre>#O Hartmut Holzwart
#C A pushalong for the c/6 orthogonal period 6 spaceship 114P6H1V0.</pre>
 
: - 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! [[User:Dvgrn|Dvgrn]] ([[User talk: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
 
<pre>#O Paul Tooke, 2008</pre>
 
:: 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. [[User:Dvgrn|Dvgrn]] ([[User talk: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
 
<pre>#C http://www.conwaylife.com/wiki/index.php?title=233P3H1V0</pre>
 
::: There's a shorter form that works just as well:
 
<pre>http://www.conwaylife.com/wiki/233P3H1V0</pre>
 
::: 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? [[User:Dvgrn|Dvgrn]] ([[User talk: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. [[User:Dvgrn|Dvgrn]] ([[User talk: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? [[User:Ian07|Ian07]] ([[User talk: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. [[User:Dvgrn|Dvgrn]] ([[User talk:Dvgrn|talk]]) 01:33, 4 February 2019 (UTC)

Revision as of 19:54, 18 February 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.

Conduits and converters

I'm gradually gathering the necessary courage to tackle the new Life Lexicon items that start with "P". Looks like one of the big things I should do is to carefully figure out how to make proper use of Template:Reflector, but in this modern LifeViewer age I don't think I agree with the part about "The image in this infobox should NOT include the glider that is to be reflected...".

Seems to me these template recommendations should be updated to say something like "The image in this infobox should include the glider that is to be reflected -- optionally, two input gliders separated by the mechanism's minimum recovery time, and an output glider if that allows a smoother animation. However, the bounding box and population count should be calculated with these gliders removed."

It would actually be pretty annoying to provide RLE of a reflector and not at least show where the input is supposed to go. When copying and pasting one of these to use in a larger construction, it's usually pretty handy to have some kind of marker for where the the input goes and where the output comes from -- thus the ghost Herschels in recently added Herschel conduits.

[Ideally the marks are state-4 LifeHistory so you don't have to edit them out after pasting -- but we should probably stick with simple 2-state Life patterns on the LifeWiki and not open the LifeHistory can of worms.]

... And we can probably get rid of Template:Reflector/Doc while we're at it, no?

Before I start this I'll definitely undertake to review all the existing converters and reflectors and conduits -- there are a bunch with raw RLE and/or uploaded pattern files missing. That's relatively easy to fix, once we have an official decision about whether and how to show inputs and outputs. I'm currently puzzled by the mysterious Template:ConduitInput and Template:ConverterInputOutput. Not that that's surprising -- I'm easily confused by all this wiki template trickery. Dvgrn (talk) 15:26, 8 May 2018 (UTC)

I agree that reflector patterns should include the input glider. I'm the one who originally wrote that they shouldn't, and I'm not really sure why anymore. It can't have been very good reasoning, because I completely disagree with it now.
~Sokwe 07:08, 9 May 2018 (UTC)
Template:Reflector/Doc also asks users not to put animated images on pages, instead suggesting that one should "consider using a static image of the reflector with a caption that links to the animation". I think this does not match the general current LifeWiki practice regarding animated images, or generally animated content. Should we reconsider? Apple Bottom (talk) 05:25, 7 June 2018 (UTC)
It does seem to me that we have a developing consensus that LifeViewer-based illustrations are a good way to go. There are quite a few Help documents and templates that were written long before the advent of LifeViewer. I'd love to have the Help actually explain to a new user how exactly to add RLE to the RLE namespace, how to get that RLE to show up in an infobox or an embedded viewer, how to adjust the LifeViewer config so that animations (if any) look good, etc. It will take a while to get all the docs updated, no doubt. My edit yesterday was just a first attempt to start chipping away at the problem. Dvgrn (talk) 14:48, 7 June 2018 (UTC)
Definitely agree! Unfortunately writing documentation is one of things I'm hopelessly.. well, hopeless at. ;) Apple Bottom (talk) 10:33, 9 June 2018 (UTC)

Lexicon tags

Many of our articles (glossary, in particular) are based on, or at least synced with, Life Lexicon content. This creates a need to update these articles when the Lexicon changes.

Some of that has been handled in an ad-hoc manner on my userpage, but the process is fairly involved: look at the project page, find an article to work on, make sure it needs to be worked on, make the necessary edits, make the necessary changes to the project page to reflect the fact you edited the article.

It's also not easily found by newcomers who may want to help out. (OK, I'll admit, there likely aren't droves of eager newcomers to begin with, but that nonwithstanding, if you don't know said page exists you're not going to find it easily.)

So I was thinking, can't we improve on this? And I just had the idea of tagging articles themselves instead, indicating which version of the Lexicon they correspond to.

The Nethack wiki does something similar; for instance, take a look at their Foodless article, and you'll find that it has an indicator at the top right saying that the page reflects Nethack 3.4.3 (rather than the current 3.6.1), generated by this template.

We could use something similar. There wouldn't necessarily have to be a visible indicator (though there could be); at the very least, though, pages could be tracked in appropriate categories, and we'd know at a glance what needs to be updated (or at least reviewed) and what's current.

This way, all edits would be in one place: review an article and make edits as necessary, and also update the tag to indicate it now reflects a newer Lexicon version. And placing those tracking categories into an appropriate supercategory and placing that in the existing category tree in turn would allow editors interested in helping out find articles in need of review.

There would be two downsides. a) most of the Lexicon doesn't change in each Lexicon release, so we'd have a lot of articles tagged as (say) reflecting v28 when in fact they're also current, by virtue of not having changed since v28. And b) we wouldn't easily be able to see which articles are missing from the wiki entirely.

I still feel that this would be an improvement though, and there's no reason we couldn't combine these tags with a manually-curated project page to get the best of both worlds.

Also, re: downside a) specifically, I think this could be dealt with by also having an indicator on the wiki saying which Lexicon release is current; pages that haven't been tagged as reflecting the current version would then display a gentle, unobtrusive note, and anyone viewing such a page could quickly check that it does indeed match the current Lexicon release, and update the tag if so.

Thoughts? Apple Bottom (talk) 07:49, 18 July 2018 (UTC)

This seems like a fine idea to me. As far as downside a) goes, I think that the last year of Life Lexicon updates is highly unusual, since it involved catching up after over a decade of no maintenance at all.
The standard editing methodology for new Lexicon releases is to maintain a Changes section at the top of the raw Lexicon text file, carefully listing every "added" or "edited" entry since the last release, by name. Nobody is supposed to edit a Lexicon definition without updating the change log. This should make it trivial to find missing articles, and hopefully should also allow an easy update to the tags. Every Lexicon entry that's not listed in the change log can be automatically bumped to the latest lexicon release.
That's a lot of small changes to a lot of articles with every Lexicon release, though. Does it make sense to have the default Lexicon tag be just Template:LexiconLatest or some such, with a template to display on the page whatever the latest Lexicon release number actually is?
Then, for the next Lexicon release (30), we can just update the (relatively small) list of changed definitions to say "Release 29" -- and then after each definition is reviewed and patched, the tag is updated at the same time, back to Template:LexiconLatest? Dvgrn (talk) 22:15, 18 July 2018 (UTC)
I suppose that would work, but it's pretty much the opposite of what I was trying to accomplish. ;) I was thinking of this as a status checkbox of sorts where editors would check off that yes, this article has been reviewed for Life Lexicon release 30 or 50 or whatever, and any articles that lacked that virtual checkmark would automatically be herded and available for review and/or updating, as necessary.
Having a "LexiconLatest" tag instead would mean checkmarks that check themselves, by default, and that we'd then have to go and un-check. That's not so different from the current approach, with my TODO page.
But you raise a good point. We have a log of Life Lexicon changes, and once we're actually caught up with the Lexicon in general all we'd have to do is keep an eye on those. Hmmm.
Here's a thought, admittedly a rather complicated one. How about we do both? That is to say, how about a tag template that has both an explicit parameter and uses a default "low watermark", displaying the higher of both?
The explicit parameter would be used by editors to indicate that a page has been reviewed/updated to reflect a certain Lexicon release; the "low watermark" (kept in a template of its own) would be updated by us whenever we're sure that every Lexicon-related entry reflects a certain Lexicon version.
For instance, assume that all our articles conform to Lexicon release 30. Suppose that release 31 comes out now. We then go through the changelog, edit all articles that need updating, and after that's done, we conclude that no further changes are necessary, and bump the "low watermark" to 31, thus causing all articles (that reference the Lexicon) to declare that they match release 31.
One advantage of this would be that we'd still see when an article was last explicitly reviewed. For instance, an article might say it reflects Lexicon release 31, but the "version=" parameter might still say it was last reviewed for 28. If nothing else, this would make it easier to spot articles that haven't been reviewed for a long time and where discrepancies might've crept in.
Another idea: we've already got Template:LinkLexicon to link to Lexicon entries. We could repurpose this to also additionally display a tag, which would save us the need to edit 831 articles just to add a tagging template.
Apple Bottom (talk) 07:50, 19 July 2018 (UTC)
This all seems reasonable to me -- especially sneaking a displayed tag into Template:LinkLexicon. Now that Golly 3.2 and Release 29 are safely out the door, I'm sorta kinda planning to get back to work on the LifeWiki ToDo list for Lexicon updates, with the intention of getting everything up to date eventually -- hopefully well before Release 30 comes along to confuse things any more. We already have some kind of a tracking system set up for Release 28 and 29, so maybe it makes sense to keep using that, and design the new template/tag system to really come into use once everything has been updated to Release 29.
So in early 2019, if we end up with a list of say fifty articles that have changes for Lexicon Release 30, my thought would be to update just those fifty articles to specifically say "Release 29" (however we decide to do that exactly -- maybe with a template saying "this article is out of date, please help out by updating it"?). Then bump up the "low watermark" to 30 right away. As articles get updated, the "please help" template can get removed again with the same edit. Does that work? Dvgrn (talk) 18:49, 19 July 2018 (UTC)
OK, cool. :) Good to hear you'll have some time to devote to the Lexicon-to-LifeWiki TODO list. I'm not able to put in much effort there myself --- too much studying, too many exams. Ah well.
Re: marking e.g. fifty articles as needing updates and everything as conforming to e.g. release 30 by default --- that would be a lot easier if we had Lua scripting available! MediaWiki's templates only go so far and aren't really meant for pushing lots of structured data around.
Our options there would include at least the following:
  1. Manually edit each of those 50 articles (e.g. by setting an extra template parameter) to override the "low watermark". Not ideal --- we might as well just edit those 50 articles to update them if we're already editing them anyway.
  2. Provide a global "kill switch" for the low watermark that, when set, causes the low watermark to be ignored. Pages explicitely listing a conforming Lexicon release would then display that instead, so those 50 "release 29" articles would show up in the right category, etc. Also not ideal --- there might be many other articles that would also have the explicit "reviewed for release 29" tag, or older tags at that, which would NOT need to be updated.
  3. Keep a list of those 50 articles, and rig the template to display a notice if the title of the transcluding page happens to be on that list. Also not ideal --- we'd have to curate that list, and as I said, MediaWiki templates aren't really meant for this sort of thing.
Maybe there's another solution I'm not seeing, though.
That said I also have a feeling we're trying to overengineer the solution, though, or perhaps attacking the problem from the wrong angle. After all, what do we want to do? Keep the LifeWiki current as far as Lexicon content goes. How do we achieve that? By importing Lexicon as necessary, and (once done) keeping an eye on changes made to the Lexicon and mirroring them on the wiki (again, as necessary). And how do we do that? By rolling up our sleeves and working on it. Fancy templates and tagging nonwithstanding we won't get anywhere if we don't just jump in and do it.
(And by "we", I mean whoever's willing to do that job.)
Apple Bottom (talk) 18:16, 20 July 2018 (UTC)
Re: overengineering... yeah, offhand I don't see a better solution than the first one: manually edit 50 articles, copying and pasting the same "stub"-like template marker in as a header. This is a bit tedious, but that's what multiple browser tabs are for, and it can be done pretty easily in half an hour or so. The idea is that we can make a little bit of effort to spread the update work around. (Here "we" means the small group of people who have done the work so far -- a small group because it's kind of tricky to do everything right, so not many people have figured out all the fiddly details.)
I can add "needs Lexicon update" headers to 50 articles in half an hour, but I sure can't do a careful comparison and repair on 50 articles, especially if it will require adding new illustrations or modifying existing ones. But it seems to me that there's a larger (and growing) population of LifeWiki users who can perfectly well review a particular Lexicon definition when they trip over a "needs Lexicon update" template header begging for help. Often it isn't too hard to find what needs changing, make the required edits, and remove the "needs Lexicon update" tag at the same time.
Every one of these articles that someone picks up and fixes, is one that I don't have to do myself... and in the meantime, a half hour of work has already brought the LifeWiki more up to date, by specifically flagging the fact that there's newer information somewhere else that needs to be integrated into the article. Seems like this might be a good habit to get into, for as long as the Life Lexicon is kept more or less in synch with current reality.
Sound reasonable? And could you have a look at Template:NeedsLexiconUpdate and see if it has everything in it that this plan might need? Dvgrn (talk) 21:02, 20 July 2018 (UTC)
Redirect pages don't need any markers saying they're from a Lexicon entry -- do they? I've been trying to rebuild some momentum by getting the remaining redirects done... Dvgrn (talk) 21:57, 26 July 2018 (UTC)
Cool, good to see this is already progressing. Good job! :) I'm a little less swamped now, so I'll take a look at the Template'n all over the weekend.
No, I don't think redirect pages need markers. I don't consider these "content" in the strictest sense, in either the Lexicon or the LifeWiki --- they're just tools that help people find content.
Apple Bottom (talk) 08:31, 28 July 2018 (UTC)

Object frequency classes

I do apologize for my somewhat extended absence. That said, I had an idea (long ago actually) about adding information on the commonness of objects to pattern infoboxes, using data from Catagolue (specifically, B3/S23/C1).

I don't think saying "this still life is the 1,691th most common object on Catagolue" is useful, of course. What I'm proposing instead is the frequency class, defined as follows: a pattern is in frequency class X if the most commonly-occurring object (the block, in this case) is 2X times more common. X need not be an integer; to strike a balance I'd suggest using one decimal digit.

Let me give an example. The twin hat has appeared 240,372,408 times on Catagolue (as of this morning), whereas the block has appeared 71,146,901,659,666 times. So the block is approximately 295,986 ≈ 218.17517 times more common, and the twin hat's frequency class is 18.2, rounded to one decimal digit.

I think this is a fairly intuitive way of capturing commonness. An additional nice property is that if an object has occurred sufficiently often, its frequency class is unlikely to change much, if at all; this is true even for objects whose commonness is very similar and who might switch ranks regularly, with one or the other having occurred more often at any given moment. So once this information's added, we wouldn't need to edit it much, if at all ever.

Like I said, only sufficiently common objects should have this information added; there's too much uncertainty about the frequency class of an object that has only appeared once, say. I unfortunately lack the statistical background to suggest a good cut-off value ("objects should only have this information in their infoboxes if they have occurred at least n times"), but unless there are objections I'll add this, or at least do the necessary template work.

...heck, I'll just go ahead and do it, it's been a while since I've edited anything here. If anyone thinks that this is a load of bull, please just speak up and say so. :) Apple Bottom (talk) 17:56, 1 September 2018 (UTC)

(P.S. --- although the block is the most common in B3/S23/C1, it isn't necessarily for other B3/S23 censuses; in some symmetries, the blinker is more common.)

Replying to myself, I've started doing this; there is a new template parameter, fc=, currently only for Template:Stilllife, Template:Oscillator, Template:Spaceship and Template:Puffer (no other types of object have appeared on Catagolue anyway). I've also added a short glossary entry at Frequency class, and added frequency calss data to a couple of object infoboxes, including all with FC ≤ 10.0. The script used to generate the necessary data from Catagolue's textcensus is this:
#!/usr/bin/perl

# usage eg.:
# perl ../frequencyclasses.pl b3s23.C1.txt >frequencyclasses.txt

use Modern::Perl '2016';

# only patterns with more than $cutoff occurrences should be considered.
# mark all other patterns with an asterisk.
our $cutoff = 10;

# throw away header line
<>;

my %objects = ();
my $mostcommon = -1;
my $mostcommoncode = "";
while(<>) {
    chomp;
    next unless m/^"([^"]*)","(\d+)"$/;

    my ($apgcode, $count) = ($1, $2);
    $objects{$apgcode} = $count;

    if($count > $mostcommon) {
        $mostcommon = $count;
        $mostcommoncode = $apgcode;
    }
}

my %frequencies = ();
foreach my $apgcode (keys %objects) {
    my $frequencyclass = sprintf("%.1f", (log($mostcommon / $objects{$apgcode})) / log(2));
    $frequencies{$frequencyclass}->{$apgcode} = $objects{$apgcode};
}

foreach my $frequency (sort { $a <=> $b } keys %frequencies) {
    foreach my $apgcode (sort { $frequencies{$frequency}->{$a} <=> $frequencies{$frequency}->{$b} } keys %{ $frequencies{$frequency} }) {
        print "*" if($frequencies{$frequency}->{$apgcode} <= $cutoff);
        say "$frequency\t $apgcode\t $frequencies{$frequency}->{$apgcode}";
    }
}
(I'm sure there's better ways of doing this, but this worked for me.) Apple Bottom (talk) 18:52, 1 September 2018 (UTC)
Another reply to myself --- Goldtiger997 suggested a cut-off value of 10 (non-inclusive). This strikes me as sensible. So unless there's objections, how about we run with this, and only add frequency class information to objects having appeared more than 10 times?
Also --- right now the information is Catagolue-specific, which is sensible but still somewhat arbitrary; if we want to include more information later (e.g. from Achim's, Andrzej's and Nathaniel's censuses, or from whatever future censuses people may come up with), we can easily adjust the infoboxes to include a new "Commonness" section, and re-interpret fc= as "frequency in [c]atagolue". Apple Bottom (talk) 09:08, 2 September 2018 (UTC)
Sounds good. However, I already broke my "suggestion" of the 10 occurence cut-off twice; for the Coe ship and Achim's p8. Is it worth removing the fc parameter for those two articles, or should they just be left as they are? Goldtiger997 (talk) 09:26, 2 September 2018 (UTC)
I think we can grandfather those in --- would be good if you could keep an eye on them in case the information changes, of course, but it's just two articles, so that should be fine. I've also added the cutoff of >10 to the script above; patterns not reaching that cutoff are marked with an asterisk. Apple Bottom (talk) 09:35, 2 September 2018 (UTC)

Infobox vs. EmbedViewer

All this interminable Life Lexicon import work has been leading me to believe that there are two classes of articles that can use LifeViewer animations. There are the named patterns, where if you say "Pattern X" there's really only one likely Pattern X that you could be referring to. These get put into an infobox category, with appropriate statistics collected and so forth. The most recent example of this kind of imported Lexicon article is line crosser.

The other class of article is for a term that might refer to a variety of different patterns, so that there are various examples but no specific example should really be considered to be the one canonical one. In these cases I've been using an embedded viewer but haven't been bothering with an infobox. The most recent examples along these lines are line-cutting reaction and line-mending reaction. I like the way these are turning out, but am curious to hear if anyone thinks that these should also be infoboxed somehow, or if anything else should be added as standard practice. Dvgrn (talk) 09:45, 12 September 2018 (UTC)

I think this is eminently sensible. Off the top of my head, aren't there a few articles that have infoboxes despite being about a family of patterns rather than a specific individual one? (Or patterns with variants, anyway --- the bee shuttles come to mind there.) I've never been quite sure how to handle those, though that's not limited to LifeViewer and embedded patterns: the same goes for other infobox'ed information, such as bounding box, population etc. Apple Bottom (talk) 07:54, 13 September 2018 (UTC)
Yup, those are the ones where I find the infoboxes to be not-helpful. Would suggest in those cases maybe just using an embedded viewer to show one of the family, or maybe a small stamp collection would be better. The most recent example I dealt with was HFx58B from the Life Lexicon. Rather than pick a variant, and/or leave out perfectly good information that the Lexicon had, I just threw caution to the winds and put both patterns in the same infobox, but picked the older variant to do the infobox stats about. Probably this will puzzle somebody sometime, but sometimes Life can be confusing... Dvgrn (talk) 11:20, 13 September 2018 (UTC)

Semi-automated collection of raw RLE

I now have a completed Python script -- working on my system, at least! -- that goes through all articles in the main namespace looking for pname definitions in infoboxes and embedded viewers. If it finds any defined pnames, it checks www.conwaylife.com/patterns/{pname}.rle; if a Not Found error comes back, it creates an appropriate file using RLE from conwaylife.com/w/index.php?title=RLE:{pname}&action=edit, in a reasonably standard format including pname, discoverer and discovery year if available, and links to the relevant article and the RLE file itself.

On the last pass the script found 190 missing RLE files in the main namespace. These have now been uploaded to the server and added to all.zip. You can sort the contents of all.zip by date to see the new additions. Since this was a mostly automated process, the script may have picked up a few patterns that shouldn't really be part of the collection. If anyone wants to do a quick independent review, I'd appreciate it!

I think this will make the process of getting RLE uploaded to the server a lot easier for non-admins. If raw RLE is created in the RLE: namespace, and is used in a pattern infobox or an embedded viewer, then it will make it to the all.zip collection eventually. To give time for new raw-RLE additions to be peer-reviewed, I would think this script would only be run quarterly or so, with the resulting new RLE files sent as a ZIP file to Nathaniel to do a bulk upload to the server. There shouldn't be any problem with good files getting overwritten with bad ones, since the script only generates an RLE file if no existing file is found.

It occurs to me that another semi-automated survey might be looking for articles with nofile=true, that do in fact now have raw RLE and/or uploaded RLE files. I'll try adjusting the script to include any such files it finds in its final report. It's a little trickier to automatically update all such "nofile = true" to say "rle = true" instead -- it's doable, but it needs a different kind of automation.

Thoughts, suggestions, worries, bug reports? I'll add a link here to the RLE-scraper Python script when I've made it available on GitHub. Dvgrn (talk) 14:21, 23 October 2018 (UTC)

Link! Dvgrn (talk) 00:58, 26 October 2018 (UTC)
The next item on the RLE-scraper script TODO list will be to check for raw-RLE {pname}_synth files, and upload them if they aren't already there. Longer term, the script can make a report of any differences it finds between files already on the server and the current contents of the RLE: namespace. Probably best not to upload changed files automatically -- it seems worth having a human review any changes, and take the time to revert any changes that aren't approved for upload to the pattern collection. Dvgrn (talk) 10:46, 25 October 2018 (UTC)

Oscillator mods

I noticed that all the recently created oscillator pages from the latest Lexicon update (example: p29 pentadecathlon hassler) have their mods listed along with their periods even if they're equal. Is it agreed upon that this should be the case? Because if so I can go through the unknown mod list later and add in all the mods if no one objects to it. Ian07 (talk) 14:53, 28 October 2018 (UTC)

I can't claim to have made a really deliberate decision to include the mod when it's the same as the period -- I was just blindly filling in values in the oscillator template I was using. I don't have any objection to listing both period and mod, but let's see if anyone else has a different opinion. Many thanks for all the cleanup work you've been doing recently, by the way! Dvgrn (talk) 17:04, 1 November 2018 (UTC)
Just to chime in --- I think listing both the period and the mod is valuable even if they match. Otherwise, if an infobox doesn't have mod information, a user won't know if that's because we haven't filled in the info or because it's the same as the period.
And I agree, thanks are due to Ian07 for all the clean-ups and other work. MediaWiki has barn (heh) stars; do we have something similar? Maybe we should. Apple Bottom (talk) 21:01, 3 November 2018 (UTC)

Conduit orientations and ghost Herschels

Quick question, y'all: is "T" a standard designation for a "turned" conduit output orientation? I'm asking because of this edit to Template:Conduit --- I lack the expertise whether this is standard terminology or not.

If it is, it should be documented in the template. Apple Bottom (talk) 21:27, 3 November 2018 (UTC)

Similarly, this edit to Template:Conduit/Doc doesn't seen to be adding anything useful to the page. As I've just started here I'm a bit hesitant to go around rolling back changes to Template pages though. Wildmyron (talk) 03:31, 12 December 2018 (UTC)
Thanks for pointing these out. I rolled back the "gray eaters" edit. The "T" option for symmetrical signals is a little more complicated. It is definitely something that I tried as a classifier a few years ago, but it never really caught on. Now just in the last few days Freywa has done a new update of the Elementary Conduits Collection with a better idea than "T", so I'll have a go at documenting that instead.
Another conduit-related topic, for @Sokwe and anyone else interested: it looks like there isn't universal agreement about whether ghost Herschels are a good idea or not, in conduit patterns. I recklessly ported them in from the Life Lexicon, and I'm certainly going to keep them there because they're so darn useful. You can copy conduits out of the Lexicon and string them together immediately. My theory is that the same is true of patterns on the LifeWiki, and therefore that there should be a ghost eater in Syringe 2, to match the one in syringe and the dozens of other instances in various recently added conduits.
I can see how this looks a little bit like pollution, though, especially if it's extended to other types of outputs (which isn't very clean or easy to do in general, so let's not do that). I've been careful to link to ghost Herschel every time I use one (I think), so they shouldn't be mysterious for long -- and I'm seeing them getting a fair amount of use as markers in constructed patterns lately. Anyone want to contribute other opinions on this? Dvgrn (talk) 13:33, 13 December 2018 (UTC)

Categories and User Pages

Entity Valkyrie has been using pattern templates on user pages, causing those user pages to show up in category:patterns and other categories. It is my opinion that patterns on user pages should not be included in the categories. One way to fix this would be to detect the namespace of the page that the pattern template is being used on. Something like the following:

{{#ifeq:{{NAMESPACE}}|User||[[category:patterns]]}}

This would categorize a non-user page as a pattern, but would do nothing on a user page.

Are there any objections to this proposal? Comments?
~Sokwe 08:11, 2 December 2018 (UTC)

I like that plan, especially if someone else implements it who is less likely than me to break templates. I've been trying to keep user namespace stuff out of the main namespace in general, with fairly good success so far I think -- but I don't usually go in and edit things like categories when a page moves from the main namespace to the User namespace. Dvgrn (talk) 11:53, 2 December 2018 (UTC)

Documenting 12-Bit Still Lifes

AwesoMan3000 has been working on a fairly ambitious project to add articles for all of the 12-cell still lifes. Most of them have systemic names, and it looks like negotiations have been at least partially successful about not just making names up when long-standing existing names are available. As of this writing, swimming cap is still an unnecessary neologism for "integral with tub and tail", I believe, and there may be others -- it's hard to keep up, but this is a work in progress with lots of ongoing adjustments. The plan is for it to be complete by the end of the year.

A number of issues have appeared that I'd be interested in trying to get some kind of consensus about:

  1. when a still life is renamed for consistency -- e.g., "X and Y" names have been rapidly changing to "X on Y", as in block on cap -- changing the pname to match the name tends to break lots of links, especially for older 12-bit objects where Life 1.05, Life 1.06, and .cells formats are available. I'd like to suggest that we can take the radical step of dropping support for Life 1.05, 1.06 and .cells formats, and removing the links for those formats whenever we have an opportunity. Is there any disagreement on this? After that, it should be fairly workable to add just RLE:pname.rle and RLE:pname_synth.rle pages wherever necessary. That will eventually fix the remaining broken links (see below).
  2. if the pname is changed, or if the still life in question didn't have an existing article on LifeWiki, AwesoMan3000 has been promising that there is an RLE file, using rle = true in the infobox parameters, and then uploading raw RLE under that pname. If I remember right, the rle = true is currently needed to get the infobox template to notice that LifeViewer can be used to display the pattern, instead of looking for an image file. There isn't actually an uploaded RLE file in the LifeWiki pattern collection, so .rle and _synth.rle links will give Not Found errors for the time being.
  3. Several still life names have been changed due to an alphabetization rule, e.g., barge siamese loaf instead of loaf siamese barge. This poses the same dangers of link breakage as above, fixable in the same way. Or... it also seems workable to change the name of the page but keep the pname the same, at least until replacement raw RLE is uploaded. See Talk:Hat_siamese_vase. This is being done for the moment in several of the "X on Y" pages. Am I missing other possible problems with this brave but potentially foolhardy renaming-for-consistency project?
  4. When no systemic or traditional name is available for a still life, either on Catagolue or in Mark Niemiec's database, it's hard to avoid the temptation to invent new names that no one has ever used before, and most likely no one will ever use and they'll just cause confusion. One way around this would be to make it standard practice to write the article using the apgcode as the systemic name. I don't like this idea all that much, just because the pname would have to have an underscore in it for readability -- and MediaWiki likes to change underscores to spaces in some contexts, and I'm relatively sure that Murphy's Law will produce some unintended consequences somewhere. Still, it's been tried, and it appears to work okay -- see xs15_3lkia4z32. Does that seem like a reasonable stopgap solution for unnamed objects? We can always move apgcode-named articles later if a better systemic naming convention shows up.

Next Steps

When all raw RLE files have been added in the RLE: namespace for this project, I can re-run the auto-uploader script and make a set of new RLE files for a bulk upload to the LifeWiki server. The script will have to be updated to check for RLE:pname_synth pages as well as RLE:pname files. If the RLE namespace has been populated correctly, this will fix all the remaining broken links. I'll plan to do a round of auto-updating early in 2019.

As before, if a pname.rle or pname_synth.rle pattern has already been uploaded to the LifeWiki server, it won't be overwritten by anything added to the RLE namespace. Eventually the script might check whether the uploaded pattern is the same as the raw RLE, and produce a report of any discrepancies so they can be resolved. Not sure I'll get around to adding that feature in this next update, though.

Comments, concerns, suggestions? Dvgrn (talk) 17:23, 21 December 2018 (UTC)

Also, AwesoMan3000 put the following in checkin comments for beacon on dock:
can we get a tiki bar discussion on whether all disambiguation pages should have (disambiguation) on the end, by the way? i'd rather cut down on unnecessary redirects where possible
So, okay, here's a Tiki Bar discussion. I don't see why the page shouldn't be moved to beacon on dock (disambiguation) to match the original beacon and dock (disambiguation) page. I'm not a big fan of disambiguation pages in general, especially where they can be avoided by making a single page for the most common definition, and linking from that page to other possible meanings under different names. But that doesn't work for cases like this where there isn't a most common definition. Dvgrn (talk) 20:44, 21 December 2018 (UTC)
Re: Made-up names
I agree that we should stick to established names when they're available and not make up new ones. OTOH, when an object does not have any established name (and I really do mean does not, not just "whoever wrote the article couldn't remember it"), I think it's in the best tradition of Life (and life) to give it one.
The question then is whether the LifeWiki is the right place for this. My general feeling is that we're a relatively conservative part of the Life universe: we aim to document, not invent. We're not as anal about it as Wikipedia with its "no-original-research" and "verifiability-not-truth" criteria for inclusion, and neither do we have to be; but just like we're asking people to not create wiki pages for new discoveries of their own but instead share them on e.g. the forums, we can also ask people to not name previously-unnamed on the wiki but instead resort to (again) the forums, etc.
OTOH this may very well lead to a situation where a user wanting to name an unnamed object will simply suggest the name on the forum in an appropriate thread (is there one yet?), wait for a few days/weeks/months, and conclude from the resulting thundering silence that there are no objections -- all in favor --, and go ahead and name the object on the wiki. The end result would be the same, modulo the extra pain of that extra waiting time.
And would this gain us anything?
FWIW, what are we looking to gain from a policy that forbids new names from being put on the wiki first anyway? If we don our documentationist's hats (documentationist --- I hope that's a word!) and take no position on whether a named object is somehow preferable to an unnamed ones, if we merely want to document the Life's community works, passively and from the outside, then yes, this is preferable. If we see ourselves as being an active part of the community, we might find named objects preferable to unnamed ones (and "proper" names preferable to systematic ones, etc).
I think I'm in the latter camp myself. I like named objects.
What I am worried about is that, if we allow new names to be "born" on the LifeWiki, … shall we say, easily excited users might get carried away and go on an editing spree, adding hundreds of new names to previously unnamed objects without any discussion or consensus.
Going off on a tangent for one paragraph, I also think the creative naming in Life stem in no small part from the need to be able to talk about objects. These days we have apgcodes, so we can indeed refer to xs15_3lkia4z32 without it having a proper names.
The best solution I have is what one might call a four-eyes approach, where
  1. New names are valued in principle;
  2. But the person proposing them can't be the one naming the object on the Wiki;
  3. If someone wants to add page for a (notable) object that doesn't yet have a name, they should use the object's apgcode.
Whether names are proposed on the forum or elsewhere is largely irrelevant than, though I'd suggest a dedicated thread on the forum. I'd also suggest a certain cool-down period between the proposal and the wiki edit, so that others have a chance to speak up. (What I'm worried about there is the possibility that two easily-excited users, might join forces after one of them proposed a new name elsewhere, say on Discord: one would propose it, and right after the other would accept it).
Re: pname changes, Life 1.05/... support
No objects to dropping Life 1.05, 1.06, and cells; RLE has clearly emerged as the standard at this point. I don't know if anyone's still using a CA simulator that's not capable of using RLE, but the lack of complaints about new patterns only having RLE files available and nothing else leads me to believe there isn't. I'd say let's remove support for these and see if anyone speaks up. If there's no complaints, we can flip the switch for good.
As for pname changes in general, they're still a pain. I'd suggest that
  1. Whoever changes a pname is responsible for cleaning up the resulting mess; and
  2. pname changes shouldn't be mandatory without a good reason.
What is a "good reason"? A typo, say --- "pname = 2enginecrodership" would obviously require correction. OTOH, if Beluchenko's p51 has "pname = 112p51", I see no problem with that at all. (If anyone else does, they're welcome to change it, provided they clean up afterwards, as per 1. above).
Re: infobox parameters
These should always correctly reflect the status quo. If a pattern doesn't have an RLE file uploaded, the infobox template call shouldn't have "rle=true". Don't lie to the infobox templates! It's the responsibility of those who create articles to make sure all parameters are correct to the best of their knowledge.
Re: RLE files and raw RLE snippets
I'll leave this in your capable hands. :)
Final note
I think having articles on all 12-bit still lifes is a worthwhile endeavor, but -- in light of who's doing this, and admittedly without actually having looked at anything that was created recently -- I'd like to remind everyone who's creating articles that they have a duty to exercise care when doing so. In particular, this means not just starting a whole lot of articles and leaving them in half-broken states.
I'd also like to remind people that they should learn from their mistakes. Nobody's perfect, especially newcomers; the LifeWiki can be difficult to get used to, I imagine. We have the right to make mistakes, but we have the duty to learn from them. He who keeps making the same mistakes time and again is either ignorant, or careless, or both, and those are not qualities a LifeWiki editor should have.
(And that's about all I can think of, off the top of my head.) Apple Bottom (talk) 11:20, 22 December 2018 (UTC)
Thanks for the thoughtful review. A couple of template issues have come up where some expert advice would be helpful:
1) A change made yesterday to Template:Oscillator seems to be not working to populate Category:Periodic_objects_with_minimum_population_3 and all other, um, categories in that category. Is there a misplaced character somewhere in those hideous piles of parentheses, or is the problem actually somewhere else?
2) Is it possible to do Template Magic (TM) to make glider syntheses behave the same way as regular pattern files do? That is, if synthesisRLE = true, then the standard link to an uploaded pattern file should appear in the Glider Synthesis section of the infobox -- but otherwise, if there's a page at RLE:{pname}_synth, then a "raw RLE" link should appear instead.
Here's an example of an update currently in process: we used to have an uploaded eateronboat.rle --
#N Eater on boat
#C A 12-cell still life consisting of an eater 1 and a boat.
#C http://www.conwaylife.com/wiki/index.php?title=Eater_on_boat
-- and an uploaded eateronboat_synth.rle --
#N Eater on boat_synth
#O Mark D. Niemiec
#C Glider synthesis of eater on boat.
#C www.conwaylife.com/wiki/index.php?title=Eater_on_boat
Then along comes AwesoMan3000, who probably thinks that that's a lousy name for this object because it can mean two different things, and isn't really a common use of "on" anyway. So the name gets upgraded to the more specific "boat tie eater tail", and all the appropriate changes get made to the text of the article. And there's a redirect from eater on boat, so damage is limited to other pages that link to this page.
However, AwesoMan3000 can't do anything directly about those uploaded pattern files, or the comments in those files. The simple solution is to just leave the pname the same, still pointing to the old pattern and synth files. That doesn't break any links, but it's a bit confusing because the name doesn't match the article.
If we want to get boattieeatertail.rle and boattieeatertail_synth.rle files uploaded to the LifeWiki server, currently what we can do is add those as raw RLE, and change the pname in the article to boattieeatertail. I've done that experimentally for this example. As a nice side effect, as soon as the pname changes, LifeViewer shows up in the infobox instead of a static image.
That's not too exciting when we're dealing with still lifes... but it does start to get people used to an easier way of getting a copy of the RLE to paste into Golly or wherever -- click to launch LifeViewer, then Ctrl+C.
(If anyone is following along, Beehive_at_loaf is currently an example of the old style of article, with a separately uploaded static image -- no LifeViewer, just because no raw RLE has been uploaded to RLE:beehiveatloaf.)
Okay, so here is where the difficulty shows up!
PROBLEM: as soon as the pname is changed from "eateronboat" to "boattieeatertail", the rle = true and synthesisRLE = true lines in the infobox suddenly turn into lies. They're only temporary lies, because there's a plan to run the auto-uploader script and get the new RLE uploaded. But when RLE is being added for dozens or hundreds of still lifes, there's no way that an admin is going to keep up with running the auto-uploader after every change.
In fact, it just plain doesn't work that way -- the auto-uploader does a scan of the entire main LifeWiki namespace and creates an archive ZIP file of a big pile of changes, intended to be sent to Nathaniel to do a bulk upload to the server. That should really only happen a few times a year, not every time a change happens. So we wait until a batch of changes have been made, then collect and send them.
Theoretically we could remove the rle = true and synthesisRLE = true lines from each article, then add them right back again after the auto-upload is done. But when the timeline of a project is short enough, that looks like a highly irritating waste of time -- basically, Life is too short.
I hope everyone is okay with the idea of saying that these particular deliberate temporary inaccuracies in infobox parameters are actually not "lies", but rather something along the lines of "promises". Dvgrn (talk) 13:40, 22 December 2018 (UTC)
As for the first issue, I checked and double-checked the template and didn't find any syntax errors. What's weird is if you go to the Blinker article you can see that it has the Category:Periodic objects with minimum population 3 category, but the category page says it's empty. This makes me think that there's some sort of glitch with MediaWiki rather than a syntax error, especially considering that, as you pointed out on Discord, LifeWiki is running a pretty outdated version of it. Ian07 (talk) 14:00, 22 December 2018 (UTC)
Can the links to pattern files be directed to a dynamic endpoint that creates the pattern file? For all patterns with apgcodes, for instance, Catagolue could theoretically include endpoints of the form /objfile/<rule>/<apgcode>/<format> (with support for RLE, Life 1.05, and Life 1.06). That would mean that humans only need to provide static RLE files for large and/or aperiodic patterns. Calcyman (talk) 00:36, 23 December 2018 (UTC)
Late reply, but yes, that would definitely be possible. Pattern file links are handled by Template:PatternDownload, which already gets passed the apgcode (if we have it, for a given object), so it'd only be a matter of tweaking that template. And I think doing away with manually-generated and -uploaded RLE files where possible would save us a lot of work.
(I should qualify this by stating that I'm not suggesting we delete existing manually-generated pattern files; merely that having Catagolue be able to do this would allow us to not have to worry about future ones, except for Patterns of Unusual Size™ etc).
I do like the idea of not having to upload pattern files for all the files that have apgcodes, theoretically. On the other hand, the fastest way to get a picture of an object into an article about the object, these days, is to upload RLE to the RLE namespace and add the relevant infobox. And the RLE-scraper script can then (with just a small amount of help from me) magically grab all the new pname-linked RLE files, put them in a ZIP archive, and send it to Nathaniel to put on the server -- once every month or three as needed.
I can add automatic conversion of everything to .cells format and add those files automatically to the ZIP file sent to Nathaniel. So would we gain much by being able to link to a pattern file on Catagolue? Not sure.
I'm starting to work on support in the script for {pname}_synth files as well, so that if people put something into RLE:{pname}_synth, it will get turned into {pname}_synth.rle and get thrown in the ZIP file along with everything else. But here I'm really not sure if that's the best thing to do, at least for a lot of cases. There are a couple of big sources of synthesis RLE: chris_c's script (via Catagolue these days) and Mark Niemiec's database. Maybe Catagolue could serve up RLE without the LifeViewer, or maybe the "Glider synthesis" section in the infobox could be tweaked so that it links to the LifeViewer page on Catagolue showing the relevant synthesis?
Then for anything that has a synthesis in Mark Niemiec's database, we just need to collect the identifiers and add them to the infobox template (somehow -- suggestions gratefully accepted), then set up the template to link directly to those files. For example, the path to the beehive synthesis is "0/6hv.rle", and the path to a beehive on cap synthesis is "14/14-50.rle".
That way RLE:{pname}_synth pages would only have to be collected and uploaded for patterns where no synthesis is available on Catagolue or on Mark's site.
Something like this would prevent us from continuing to upload so many no-value-added syntheses that are just copies of something from elsewhere (and that won't get updated when Mark's database or chris_c's script gets updated).
I don't think we should necessarily start the big project of supplying all those Niemiec-database identifiers to the infoboxes quite yet: Mark has said recently that he's close to rolling out a new version of his site, and it might make sense to wait and make sure nothing major has changed in the new version. But we could try the experiment of getting everything set up correctly for, say, the 12-bit still lifes that were added to the LifeWiki recently.
TL;DR: Templates need tweaking. Anyone interested in trying some experimental additions to the Glider Synthesis section? Dvgrn (talk) 03:59, 10 January 2019 (UTC)
It seems that MDN has helpfully highlighted objects in a different colour in his version of Extended RLE. I think this means that the .rle files can be automatically reverse-engineered to deduce the objects that are produced, enabling the generation of an apgcode-to-mniemiec-url mapping. Calcyman (talk) 16:10, 10 January 2019 (UTC)
That might work, though it might also be more trouble than it's worth to get the automated reverse-engineering working. It's not just the target objects that get the "x" color, but also the intermediate stable stages -- and there are a lot of those in some cases, when multiple construction paths are documented. If you censused all the 'x' objects, the most common object is probably the target object -- or the one that's farthest to the right, I suppose.
But that may not be necessary. Mark sent an email to me over half a year ago saying that he had put together "...vastly improved search pages [which] should include everything necessary to perform searches... pattern lists, statistics for each pattern, and links to other sites (like Catagolue, Pentadecathlon, David Eppstein's Glider Repository, and LifeWiki)". So it's possible that Niemiec Database Mark 2 (heh) might provide a list of the required apgcodes with no need for reverse engineering.
We'll see when the time comes, I guess. At worst, generating that lookup table manually or semi-manually would be a one-time effort -- painful, but finite. Dvgrn (talk) 21:44, 10 January 2019 (UTC)

Resetting indent back to zero, but still talking about kind of the same thing:

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 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)

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)

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)