--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/87v9chkahg.fsf%40dustycloud.org.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAOXxbHwmNNFT9sx5R5RH2kVZAHmswh96%3DcXgHasOnDovoE-cUQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/87o8i9k76f.fsf%40dustycloud.org.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CANwk4UYfQEC2RGmXtOC701yfcLC4WTicf%2BAYv_j4v3oHWUvx2g%40mail.gmail.com.
[Craig et. al. 2018] illustrate the power of strong types along with the Actor Laws of Locality [Hewitt and Baker 1977] with an example of a logging procedure, which uses an append-only file and a read-only socket using the following type definitions:
Logging:[AppendOnlyFile, ReadOnlySocket ]→Logger // Logging is a procedure that takes
// an append-only file and a read-only socket returning a logger
AppendOnlyFile interface append[String]→Void // AppendOnlyFile is an interface that implements
// the message append[String] returning Void
ReadOnlySocket interface read→String // ReadOnlySocket is an interface that that implements
// the message read returning a String
Using the Laws of Locality discussed in this article, it is easy to see that given afile:AppendOnlyFile and aSocket:ReadOnlySocket that Logging.[afile, aSocket] is thereby provided the means to only send read to aSocket and append[aString] to afile, where aString:String. According to the Laws of Locality while communicating across the Internet, a string provided by a read-only socket could perhaps provide information about the addresses of Actors on remote computers, which might in turn provide access to local Actors.
What did I miss
from [Craig et. al. 2018]?
Thanks!
Carl
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc1_TXqTbE4YwP16KP7M0RHOT3gVAe6zy-NXqu2YZzbybg%40mail.gmail.com.
I am most concerned about proving security properties of Citadels because they are
fundamental to the future of representative government and civil liberties.
The importance of Citadels is developed here:
Project Liftoff: Universal Intelligent Systems (UIS) by 2030Logging:[AppendOnlyFile, ReadOnlySocket ]→Logging
AppendOnlyFile interface append[String]→Void
ReadOnlySocket interface read→String
Using the Laws of Locality, it is easy to see that
given afile:AppendOnlyFile and aSocket:ReadOnlySocket that
Logging.[afile, aSocket] is thereby provided the means to append to afile and
to read from aSocket.
To go beyond the above, claims (like the kinds in your paper)
can be made about what Actor addresses are held by
the implementation of the procedure Logging
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CANwk4Ua2Y8%3DG3YiXgnFKCueAoRh7-F%2BsbRb9brJ-0hSqfcqZbw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/87turx3mhp.fsf%40dustycloud.org.
It can be difficult to show that no changes haveoccurred as a result of sending a message toan Actor on another device in a Citadel becauselogging, caching, etc. may have taken place.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z2Mfn8xJwHTqEWN1%2BfAiHGOw%2BhM8P59jy-DhLn0AGLcBA%40mail.gmail.com.
"I'm not sure if I'll have read your use of the term "citadel" correctly
(how far does it encompass "externalized device access"?)
A home citadel should ideally encompass
all the devices of a home including router, car, big screen, smart phones, etc.
Military citadels are similarly local.
Cheers,
Carl
However, for many Intelligent Applications, it is going to be very difficult toseparate application information from other ontological information.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z0HTt1Mi6nOEigAc%3Dowf0GcNDSgh6wg9PjLoyLDgTejog%40mail.gmail.com.
BTW, it strikes me there are really two versions of "what code can do"
that people mean:
- An actor's change of its own internal behavior/state (popularly,
"become")
- Effects in from or out to the outside world
I read most of your paper today (thought it seemed quite good, despite
my limitations of understanding notation); I think most of it focused on
the latter more than the former, is that right?
I suspect both would be interesting to be able to demonstrate/analyze
though. There may be value in being able to perform an invocation that
is demonstratably "read-only", including to actor state changes.
Thanks for your excellent paper btw!
Here's a suspicion I have:
- Once you try to do something like CapTP's assumption of cooperation
across a *mutually suspicious* network where many participants are
*remotely opaque*, I think you're going to lose access to this. (The
point where this might be false is if the "remote vat/machine" is
actually something like a blockchain... but that throws away the
"remotely opaque" part of it.)
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/r480Ps-10146i-5DE7323455D3416ABCC7D01FC314263F%40Williams-MacBook-Pro.local.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/r480Ps-10146i-A7C1A32AB3DC45619DC03B5144D1DD6F%40Williams-MacBook-Pro.local.
How does that help against trapdoors built into cpus by the manufacturer?
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAJ7XQb5T37K-fwN_4KubMeGmi9przd1eKpo9%2B88x%3DrPZHAOBOA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAK5yZYjBP3zMzWxe5Qkw0hZ_M1W-cghG%3D2ZG4uqN6eUaMB2FEQ%40mail.gmail.com.
I have written on my whiteboard a reminder to explain The DRM Problem. Below that, I have a note for The Inverse DRM Problem. I don't think that they're solvable, which is why they seem relevant to formal methods, and they are applicable to the direction to which the thread has turned.The DRM Problem is simple: It seems impossible to make DRM work. In particular, it doesn't seem workable to give an actor a cryptographic payload, a key, and some sort of non-local trusted (read: bogus) promise that the actor will only apply the key to the payload under certain conditions.
More generally, in any category which understands that some computations are non-local, it doesn't seem workable to give an actor an arrow (read: a function) and an element (read: a value) and trust the actor to only compose the element with the arrow (read: apply the function to the value) only under certain conditions.The Inverse DRM Problem is much trickier to state. Informally, we might imagine that we could publish cryptographic payloads to a hyperbolically-connected (public) network; how can we hide those payloads from network operators? Grepping my #erights logs, I see that the examples I've mentioned are:* SGX or other secure-computing enclaves: how can a customer actually be secure in an SGX context when there are so many sensors and side-channels right next door?* Unguessable refs at scale: how can pirates or dissidents or other rebels share refs to Bittorrent or other public content-addressed payloads without Eve finding out about the rebels and their refs? (The conversation was more mundane: how can a Monte user download a module from Bittorrent without Eve gaining a list of potentially-vulnerable modules to use as an attack surface?)Like I said, I think that these might be fundamental obstacles. The DRM Problem seems provably problematic, and in practice, it certainly seems to frustrate game publishers regularly. I think that The Inverse DRM Problem is just as impossible to deal with, but proving it seems so much harder and I don't know if there's fundamental stegonographic techniques that we could bring to bear. It could well be that this is dependent upon which of Impagliazzo's Five Worlds we're in; maybe this is related to whether public-key cryptography is even possible! Depressing, but it would at least indicate to us what we could try to build.
On Monday, January 4, 2021 at 10:22:48 PM UTC-8 rao...@gmail.com wrote:I may have jumped off the train tracks apologies if so.Maybe things-that-are-over-my-head could make cloud computing "safe"... like maybe homomorphic encryption or super heterogeneous consensus voting cloud of cloud things might be able to give us more chance to prevent black hats from interfering with our computations?but i have to inject my plaintext somehow. and i want to read my plaintext somehow.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/0cf5664a-64cc-4c96-b374-820255064403n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CANwk4Ub__0_Eci%3DYRcsKDhbT2YyM%3D8DDOzb-okGCA2Mk4H6B2A%40mail.gmail.com.
Hello,
When it comes to supply chain reliability we had some recent real world
discussions here
(https://www.sftichallenge.govt.nz/news/veracity-technology-mission-calling-for-expressions-of-capability/)
where it turned out to be close to impossible to convince non-software
people as to "why they should trust the software" - they seem to assume
that as a given.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/4d46f3cf-f105-14b0-ec4b-28c8bc50054c%40ecs.vuw.ac.nz.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAK5yZYiz8oMJqtu0uU2u%2B03DbWpDMSVHjwivOVdb9DSDL54qzw%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/r480Ps-10146i-5DE7323455D3416ABCC7D01FC314263F%40Williams-MacBook-Pro.local.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAK5yZYjBP3zMzWxe5Qkw0hZ_M1W-cghG%3D2ZG4uqN6eUaMB2FEQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CANwk4Ub__0_Eci%3DYRcsKDhbT2YyM%3D8DDOzb-okGCA2Mk4H6B2A%40mail.gmail.com.
Unfortunately, there are many supply chain attacks thatcannot be defeated just using blockchains :-(
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc0Kv4LyXf6cXnb7vQ%3DaH8bxyagdZ1ru8WEkZf19%2Bm_szg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAK5yZYh6Pu9YWoD1a74Nr1j1Nv0zvAMV_6sbedpbRqvqGrXxSg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAKQgqTYzv%3D%3DwZ%2B04Q4nv5nQOHYJMR_bOhj0pnkdT_3nBifishg%40mail.gmail.com.
As I understand it, crypto ledgers can play a small role in security by enabling detection of erasure of previous entries.How do you envisage using crypto ledgers to solve a crucial supply chain security issue that cannot be better addressed in another way?
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc0jy1UeOvQAWVgpX65KiuG7TvpCCZC00Q592n_tzV2Y%3DQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAKQgqTZE7xfojGuBayk3N9uBeB0texS9qFjFw0cwdvuMLni%2BSA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAK-_AD46%2BEPqot-bm4FHyw8LSa1zSdMzZTAX%2BHMYsi-OJ19CEA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAK5yZYgsAVbiRNOyuVsnX%2B5ZeBiwVvQos9S5jLuWNHV9KegVtA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc0MsHfsBjED0Hgt1YABFj89wMUAfpU_j7yEj6yYmMtCzw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAK-_AD5SY%2B0%2B_KyxQe1du%2B2LG7O%2B6R131%2B%2BG53kfvioLnUpuOw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc0x9NVCCJOVW8bW-gcardaG2RhtY6YEgZ%2Bw1uP1WHUmjg%40mail.gmail.com.
also in my mind "types" are never sufficient to guarantee all properties i'd want in a system. advanced types get ever more powerful but then we are back to the "turtles all the way down" that in general from what i have seen of software engineering, we cannot "specify" our way out of even a paper bag.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAJ7XQb4LPeN%3Dy-s1DNcV6V4rFYq-BHrE7xEx8gDUcyv3xiq7NA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAK-_AD6YwpXVOE8rAtVdzCLy6__g_Zj4%2BQeK4GnTF%3DKaxzc%2B9g%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/r480Ps-10146i-D3D00AF9D5C74123AEE2B551A55B25D6%40Williams-MacBook-Pro.local.
a movie must still make it to my eyes and ears, and I can record the
streams of light and sound in-between. My brain would require
significant re-arrangement for this to not be the case. So, DRM'ed
media can still be "ripped" (perhaps it's a lossy rip).
> The analog hole has always been the way around DRM. The argument made in court is that a copy made that way is less than full fidelity, so the copyright holder's rights are preserved.
tell that to the AIs. :-)
Carl,
https://doi.org/10.1145/73560.73564
"effects describe the side-effects that an expression may have"
There has been a lot of followon work from Lucassen and Gifford's
original idea and I'm pretty sure all of it uses the word "effect"
in pretty much the same way. Basically effects are to an
expression's potential side effects as types are to its potential
values. Because of Lucassen and Gifford it usually has this
technical meaning in the programming languages literature.
I can imagine using the word "effect" to describe actual side effects (dynamically) of a particular execution instead of potential side effects (statically) of an expression, just as "type" is sometimes used to talk about actual values in hand instead of potential values of an expression, but I don't think anyone does that.
- Different Jonathan
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc1ZRigEchHpoOOkQX42BMuqF7-_fS3MGPUEjG%2BX0aX9CQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/a03a07d1-0494-0cc5-1554-2a4d56efa669%40mumble.net.
Oh sorry I thought the PDF link there worked.
Got this link via google scholar:
Got this link via web search:
http://groups.csail.mit.edu/pag/OLD/parg/lucassen88effects.pdf
There are lots of similar articles which turn up pretty easily in
searches. I use 'lucassen gifford effect system' or similar search
terms.
Best,
Jonathan
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc0HGZ54LokH1qjYPOXPz1MMf2j0YJF2UDPJY55sW1KURg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/a03a07d1-0494-0cc5-1554-2a4d56efa669%40mumble.net.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/991f2aec-6a65-3d70-737d-e6cb8ac21b8d%40mumble.net.
I doubt I have any particular inside information that would make
my web research better than yours - just try the searches and see
what you fancy
https://scholar.google.com/scholar?hl=en&as_sdt=0%2C22&q=lucassen+gifford+effect+system&btnG=
https://duckduckgo.com/?q=lucassen+gifford+effect+system&t=ffab&ia=web
If you're familiar with monads the papers in those searches that make the link with monads should be of interest - but I haven't read them
Jonathan
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc0D28ovrpWUPv7Wa9G8uFcvd4VPJqZE1RdOUcxzS2mxyA%40mail.gmail.com.
So an effect is a local state change in an Actor?
Among other things. Any non-applicative expression, i.e. any that has some important meaning other than its value as a deterministic function of its execution context, would have a nontrivial 'effect'. Nondeterministic choice would be another kind of 'effect' because amb(1,2) or whatever is not applicative. We don't usually say nondeterministic choice is a kind of side effect, so the definition I quoted is incomplete. A Lisp/Java/etc (throw ...) expression would also be said to have an effect.
An expression creating a new actor would also have an 'effect',
if that actor started running at the point of creation. Since I'm
not fluent in any actor language I can't say where the list ends.
Just use the criterion of 'purity' or applicativity. An expression
that might do something impure has an effect.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc3feLbGiFjF-%3D9-FazM3BMgBqvrOYQRTmXmq_s8_dH_XA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/75082274-9e05-6989-03b6-f9980a0c1d8a%40mumble.net.
On Sun, 10 Jan 2021 at 09:00, Carl Hewitt <carl.e...@gmail.com> wrote:
- Creation of a new Actor
- Evaluation of (0 finishesFirst 1) which returns either 0 or 1 indeterminately depending on arbitration
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/991f2aec-6a65-3d70-737d-e6cb8ac21b8d%40mumble.net.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc2UvyHBWx6FroOTwpQ6p1Gb24rn36Wc6%2B%3D0KULmsp_uXw%40mail.gmail.com.
Carl,
I was trying to diagnose the disconnect here and I think I see what happened. In the introduction to Lucassen and Gifford 1988, 'effects' are equated with 'side effects' (in the sense of state changes per usual computer-sciency usage), and early messages in this thread (including mine) reinforced that idea. But as this line of research evolved, it was seen that 'effect systems' could be applied to things other than 'side effects' - basically any kind of 'impure' operation: catch/throw, exceptions, list comprehension, *ndeterminism, backtracking etc. etc. - anything you'd want a monad for in Haskell.
Even in Lucassen and Gifford 1988 section 3, simply _reading_ state is an 'effect', contradicting the introduction.
An effect system is an analysis tool for understanding and auditing what a program does, focused on impure language features. William Leslie pointed out that the set of phenomena covered by that system depends on the system. So the question "what is an effect" is not meaningful out of context; it depends on the particular system.
(0 finishesFirst 1) is impure because it is not a mathematical function of 0 and 1; its value depends also on who won the race. If you wanted to you could create an effect system for a typed actor language that treats *ndeterminism, or an operation that causes a newly created actor to start running, or any other 'impure' operation, as an effect, but that would be a design choice.
Jonathan
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc2UvyHBWx6FroOTwpQ6p1Gb24rn36Wc6%2B%3D0KULmsp_uXw%40mail.gmail.com.
Carl,
I was trying to diagnose the disconnect here and I think I see what happened. In the introduction to Lucassen and Gifford 1988, 'effects' are equated with 'side effects' (in the sense of state changes per usual computer-sciency usage), and early messages in this thread (including mine) reinforced that idea. But as this line of research evolved, it was seen that 'effect systems' could be applied to things other than 'side effects' - basically any kind of 'impure' operation: catch/throw, exceptions, list comprehension, *ndeterminism, backtracking etc. etc. - anything you'd want a monad for in Haskell.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/9b70bcc8-8bc4-1ae4-d180-f20b89963286%40mumble.net.
Track and reason about effects in the example below, which is excerpted from the following article:
https://papers.ssrn.com/abstract=3418003
A controller could have the following interface:
Controller interface
open→Void // when received a message to open door, return Void after it is open
close→Void // when received a message to close door, return Void after it is closed
move→Void // when received a message to move train return Void after it is moving
stop→Void| // when received a message to stop train, return Void after it is stopped
A very simple controller manager
could have the following implementation:
ControllerManager:[ ]→Interface controller → Controller,
upgrade[ControllerManagerConstructor] → Void|
≡ [ ] ↦↦ // constructor has no arguments
moving := False // train is initially not moving
isOpen := False| // door is initially closed
controller ↦ controller // get controller facet of this implementation
upgrade[aNewVersionConstructor] ↦
Become aNewVersionConstructor.[moving is moving, isOpen is isOpen]|
// upgrade to a new version which is provided current local state
Facet controller implements Controller
open ↦ moving cases // Received message to open door, so
False then isOpen := True; // if not moving, then set isOpen to True and then
Hole door.open; // send door an open request in hole of the region and
// after door reports that it is open,
moving cases True then Throw TrainMoving[] // if moving, then throw exception
close ↦ Hole door.close; // Received message to close door, so send door a close request
// in a hole of the region and after door reports that it is closed,
isOpen := False // set isOpen to False
move ↦ isOpen cases False then // Received a message to move train so if door is not open, then
moving := True; // set moving to True and then
Hole engine.move; // send engine a move request in a hole of the region and
// after engine reports that it is moving,
isOpen cases True then Throw TrainMovingWhileDoorOpen[]
True then Throw DoorOpen[] // if door is open, then throw exception
stop ↦ Hole engine.stop; // received a message to stop train, so send engine a stop request in
// a hole of the region and after engine reports that it is stopped,
moving := False // set moving to False
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CAGLSb_Xz%3DWvy4XJD0inCFVX-xh%2BXTJEbPs1Ydm41R4Ec13gKpQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/9b70bcc8-8bc4-1ae4-d180-f20b89963286%40mumble.net.
It's not up to me, I didn't pick the word. The literature has used the word "pure" (and its negation "impure") this way for a very long time (I found a 1973 use very easily) and it's nonprejudicial among the people who use it this way. It's a very natural concept - it explains the difference between expressions in a programming language and expressions in mathematics - and offhand I don't know of a better word for it.
The water we drink is almost always impure, but that can be a
good thing, not a bad thing (try drinking distilled water
sometime).
If you're talking to someone outside this community who will go
batty on hearing the word, sure, pick a different word.
Different Jonathan
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc212ThWEunM%3DnUYCG_sxNX-enN6NzTNjLaB8Me4ZEeC4g%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/8e3c5e4d-30f7-d3a5-26fd-8a5e50b0aa86%40mumble.net.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CA%2BymXc35MaPTfptbVRh_m1ONvKqs9Fzos_JSyarMAZjSzp3AqQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cap-talk/CANwk4UZ6Av9HQ8nNUAvz%3DkrE5JL6dT0vUmJ1M5dHRitaeHxTCA%40mail.gmail.com.