Page caching. For a wagn site to scale, we will need, in many cases, to be able to deliver fully cached pages.
But some kinds of content make this problematic, including: searchescertain contextual names, especially _main and _usercontent with permission restrictionsviews with context-sensitive code The basic idea is to cache all parts of the page without one of the "problems" mentioned above and then make separate requests for those. This core of the problem is caching "nests". The nest cachability test will have three levels: cacheable name? Publicly viewable pages can be cached with Varnish. Link Override Rule.
I can agree that this should be a special view that falls back to link if it doesn't find a rule or view to override it.
I would like to find a solution that you think belongs in the standard mods, but if not we can have a clean optional mod. If you just get a contextual cardname from a rule, and if when you expand the contextual name, you get a URI card (or any card with this special view, I guess), you get the magic. Hmm, in general, what do you think about 'rule for a view' as described here?
Rename set classes - Wagn. What does the s in *stype and *sname stand for?
Well, the idea was "self". not great, huh. I guess an alternative could be *_type, *_name, *_rname, etc. one nice thing there is that it would be easy to see which set classes are "anchorless". What I'm hoping we can achieve is (a) clear, scalable naming patterns, (b) leaving open key star names like *type and *name.
*all plus ..... *all child ? Yeah i think i like the _ better. What do you mean by anchorless? Basically, yes, trunkless. At some point Gerry and I came to clarity around the following: 1. all cards have a trunk and a tag. 2. only plus cards have a left and a right. So, while left and trunk are very close, and right and tag are too, they are not quite identical. Yeah, perhaps *all child or *all children would work. why did you go with child and not children? I think when I pondered this before I considered *children but realized it already had a meaning. Wait, but that breaks the anchorless pattern. doh. Recently created tickets - Wagn. Generalized search caching - Wagn.
Say Coke+claim count is configured by: claim_count+*right+*structure (type = CachedSearch?)
: type:Claimright_plus:[Company, refer_to: _self]return: count (somewhere between ruby and js :) ) When we save that card, that updates an entry in a global "cache_clear" hash. 1. the test(s) of whether cached items need repopulating Based on the WQL, Wagn automatically contructs a test as to whether the current change is one that should cause an update. To frame this a bit, there are really two main kinds of changes we'd be looking at: changes to the Claim card itself (create, delete, or type update) or changes to the +Company card (basically any change matters, though a type update is admittedly debatable). So we have two main tests cases; type==Claim && type_changed? The first one is a fairly obvious translation of the WQL. If either test passes it should return the +company card. 2. the list of cached items to repopulate 3. repopulate cached items.
Support bidirectionality. Whoops, this is a duplicate.
Let's import the best stuff from the old idea here (closing the other one): 1-3 are explorations of the "one approach" (see top of solution). 4 is a different approach, no? Yeah, it is more like creating a join record in ORM. I think it might make sense when we actually are using the *type_plus_type pattern as in wiki-rate extensions. So, I guess it really needs a second thing at the top level. But it does illustrate the concept of linking via namespace (+). Thanks for putting forward the "another solution" (type+type). To me, it has several issues that would need working out. Let's say we have three companies: Holding Co, Producer Co, and Retailer Co.
I should probably clarify that "bidirectionality" might be a confusing word here. To my mind, the Pointer / Search pattern gives us pretty good coverage for representing of standard relationships. See also Relationship Card OK, here's where I am. I'm slowing down a bit on this and need to get to other work. Rename set classes - Wagn.