Re: DIS: Re: BUS: Archival disclosure

2020-06-21 Thread omd via agora-discussion
On Sun, Jun 21, 2020 at 8:45 PM Aris Merchant via agora-discussion
 wrote:
> My understanding is that this is an intentional noncomformance on the part
> of mailman. As far as I can recall, it's not a bug. They just decided to
> ignore the standard. There are scripts that will transform it to standard
> format. I used to have a link as a citation for this, but I've since lost
> it.

This suggest that it was actually fixed at some point:

https://bugs.launchpad.net/mailman/+bug/266000

And indeed... if you look at the message to agora-business with
Message-ID: 
,
the "From R. Lee" is escaped.

But that fix wouldn't affect older messages already in the mbox file.


Re: DIS: Re: BUS: Archival disclosure

2020-06-21 Thread Aris Merchant via agora-discussion
On Thu, Sep 28, 2017 at 1:30 AM Owen Jacobson  wrote:

> On Sep 28, 2017, at 4:15 AM, Alex Smith  wrote:
>
> > If you're subscribed to the Agora lists (and I'm pretty sure you are),
> > you should also be able to log in to the archive here:
> > 
>
> Would you believe, these archives are corrupt according to the more
> reasonable interpretations of the BSD mbox format? I suspect that there may
> be a very old Mailman bug lurking in them.
>
> The agora-business archive contains, in the message
>
> Date: Sun, 24 Nov 2002 00:31:31 +1100 (EST)
> From: Steve Gardner 
> To: Agora Business 
> Message-id: <
> pine.gso.4.10.10211240018260.10341-100...@sng.its.monash.edu.au>
>
> a line beginning with the characters ‘From ‘ which is not prefixed with >
> or transformed by any encoding.
>
> I’ll happily consider that my parser may be incorrect, but I’m reasonably
> sure that no BSD mailbox should contain such a line, other than as a
> message delimiter.
>
> It’s not the end of the world, I can easily fix the message in my local
> copy and carry on with life, but: wow.
>
> -o


Okay, I know this reply is very late. This is just one of those things that
I keep never having time for, or forgetting. I've been meaning to reply to
this since I originally received it though and now I have the time.

My understanding is that this is an intentional noncomformance on the part
of mailman. As far as I can recall, it's not a bug. They just decided to
ignore the standard. There are scripts that will transform it to standard
format. I used to have a link as a citation for this, but I've since lost
it.

-Aris


Re: DIS: Archive implementation (was DIS: Re: BUS: Archival disclosure)

2017-11-15 Thread Owen Jacobson

> On Oct 5, 2017, at 11:32 PM, Owen Jacobson  wrote:
> 
> 
>> On Sep 29, 2017, at 4:00 AM, Aris Merchant 
>>  wrote:
>> 
>> I love this idea. It seems very practical without sacrificing
>> usability for the end users (i.e. the players). I have a few
>> suggestions:
>> 
>> 1. Who annotates. I think giving everyone access to the annotation
>> interface would probably make sense. You can't personally annotate
>> every message affecting the entire gamestate, and I'd love to help set
>> the formats I'm consuming for Promotor. nichdel came up with a
>> proposal format suggestion, and now that this has come along I'm
>> modifying it to have more information for the Promotor side of the
>> Promotor-Assessor pipeline. I'm sure other officers have input on how
>> formalization for their parts of the gamestate should take place, and
>> they have a unique understanding of what information is needed to do
>> their jobs.
> 
> This is, I strongly believe, the correct answer. We’re none of us as creative 
> or as thorough as all of us, just as a starting point, but I do genuinely 
> believe this could be useful for other officers, and even random Agorans. It 
> might also help provide some continuity between officers if it works out.
> 
> Right now, the API for this thing is totally unsecured - no authn or authz, 
> no abuse detection, no rate limits, nothing. I trust Agorans fairly far, and 
> I don’t think anyone here would make a problem out of this - other than maybe 
> by putting in intentionally-bogus annotations to try to cause self-ratifying 
> reports to be wrong in useful ways, anyways - but that trust does not extend 
> to the internet at large. I’d like to address that, or at least to add some 
> username/password/API token authentication even without any authorization 
> layer, before I open it up further.

I’ve implemented this 
(https://github.com/ojacobson/cadastre/commit/270f506ca8f8a920748eee42473cf220ed165d19
 
),
 which means I feel comfortable publishing the URL now. Cadastre is available 
at https://cadastre.herokuapp.com/  with an 
API documentation endpoint at https://cadastre.herokuapp.com/docs/ 
. This is NOT A LAUNCH ANNOUNCEMENT, 
since the docs are woefully incomplete - a bare list of endpoints doesn’t 
really qualify - but you can see the data I’m using to generate the Surveyor’s 
report by poking the compute_state endpoint:

https://cadastre.herokuapp.com/docs/#compute_state 

> The other blocker for general adoption is a user interface. Right now I have 
> a CLI tool (https://github.com/ojacobson/cadastre-cli/), and I plan on 
> publishing docs for the HTTP API to hopefully make it possible to do other 
> things with this, but there’s no HTML UI. I don’t think that’s viable if 
> anyone other than the most hard-core software heads are going to touch it.

I’ve still been focussing on the CLI I use to work with this document store, 
but I still think an HTML UI is essential. I put it off because…

>> 2. Annotation style. As you've mentioned, your format is a bit forced.
>> You're doing a great job with what you have to work with, but I think
>> the basic problem may be that you're trying to use markup to represent
>> transactions. It works wonderfully for representing the data (and
>> should probably be a base format for that), but poorly for
>> representing things like conditional actions. You can add and add to
>> the format, but you'll just be making it more complicated to use. I
>> suggest you consider using programs (possibly with methods you
>> provide) as annotations. It feels kind of intuitively weird to
>> represent an annotation as a program, and they don't have the nice
>> formal properties the data itself does (except maybe if you used
>> Haskell or something), but I think it might be a lot more practical
>> for actual use. Programs allow for loops, unrestricted conditionals,
>> and the like, meaning that you don't have to work something out by
>> hand or create a new transaction type just for one complicated
>> transaction. They would work well for this because they take data and
>> compute changes, which is exactly what our action system does. There
>> is thus a neat one-to-one correspondence between an action and a
>> program.

…Aris was right. Patch-style annotations are impractical at any kind of scale, 
because they’re not flexible enough, and fixing that issue requires coding a 
surprising amount of Agora’s rules into the system. I’m not up for that; I’d 
prefer to keep the rules on the outside.

> All of which is a long-winded way of saying that if the annotations are code, 
> then I suspect we’ll have to design a programming language. That’s not 
> terribly daunting to me - I’ve done language work before - but 

Re: DIS: Re: BUS: Archival disclosure

2017-10-06 Thread Alexis Hunt
I believe we've had at least one 12-year old playing on the past, but I
believe the honor goes to the President, which was a player from the first
instant of its (rule-defined) existence.

On Fri, Oct 6, 2017, 09:20 Gaelan Steele,  wrote:

> I just turned 16 about two weeks ago. I’ve registered in the past—we could
> find my past registration dates and do the math.
>
> Gaelan
>
> > On Oct 6, 2017, at 4:03 AM, Publius Scribonius Scholasticus <
> p.scribonius.scholasti...@googlemail.com> wrote:
> >
> > I wonder who the youngest Agoran ever has been. Does anyone know?
> > 
> > Publius Scribonius Scholasticus
> > p.scribonius.scholasti...@gmail.com
> >
> >
> >
> >> On Oct 6, 2017, at 3:46 AM, Quazie  wrote:
> >>
> >> I played agora for the first time as a teenager - learned of nomic in
> high school and played for the first time back around 2005 maybe? This was
> similar timing to my muffin centric blog nomic win
> >> On Fri, Oct 6, 2017 at 00:03 Gaelan Steele  wrote:
> >> Wow, I’m surprised. I assumed I was pretty young among Agorans, but I
> guess not.
> >>
> >> Gaelan
> >>
> >>> On Oct 5, 2017, at 10:43 PM, Aris Merchant <
> thoughtsoflifeandligh...@gmail.com> wrote:
> >>>
> >>> I was hoping to avoid this, but: me too. (blushes)
> >>>
> >>> -Aris
> >>>
> >>> On Sun, Oct 1, 2017 at 12:44 AM, Gaelan Steele 
> wrote:
>  Hey, I’m not the only one!
> 
>  Gaelan
> 
> 
>  On Sep 30, 2017, at 10:06 PM, VJ Rada  wrote:
> 
>  I'm just a random teenager.
> 
>  On Sunday, October 1, 2017, Gaelan Steele  wrote:
> >
> > Out of curiosity: is anybody around here *not* a programmer of some
> sort
> > these days?
> >
> > Oh, and no language which thinks that `[1, 2] + [3, 4] == "1,23,4”`
> is
> > working fine.
> >
> > Gaelan
> >
> >> On Sep 30, 2017, at 7:14 PM, Aris Merchant
> >>  wrote:
> >>
> >> I've used it, and indeed use it for most of my scripting. JavaScript
> >> is a general purpose language, and it works fine for non-web usages.
> >>
> >> -Aris
> >>
> >> On Fri, Sep 29, 2017 at 4:54 PM, Publius Scribonius Scholasticus
> >>  wrote:
> >>> I have used Node.JS before and I don't like it because it is using
> >>> javascript for something it isn't supposed to be used for.
> >>> 
> >>> Publius Scribonius Scholasticus
> >>> p.scribonius.scholasti...@gmail.com
> >>>
> >>>
> >>>
>  On Sep 29, 2017, at 5:29 PM, ATMunn . 
> wrote:
> 
>  To be honest, although Python is my favorite language, I really
>  haven't tried many. The only other languages I really know are C#
> (which I
>  don't really like anymore) and a bit of Lua and Javascript.
> 
>  I have several friends who really like Javascript, (specifically
>  Node.JS) so that's one I have interest in learning.
> 
>  On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson 
>  wrote:
> 
> > On Sep 28, 2017, at 12:29 PM, Gaelan Steele 
> wrote:
> >
> > [sits in corner with my Ruby-powered ruleset]
> >
> > Gaelan
> 
>  I like Ruby. It and Go pay my rent, and they’re interesting
> languages.
> 
>  I just happen to like Python more for this specific use case. (I
>  seriously considered writing it in Rust, too.)
> 
>  However, I’m a big believer in interoperability. The framework I’m
>  using, apistar, automatically generates API docs in HTML form, as
> well as a
>  coreapi schema document, for APIs implemented against it. The
> support for
>  including useful prose in those docs is limited, but it’s
> improving (and I
>  may send the apistar author a few pull requests about that
> myself, too).
> 
>  The idea is that the archive is an API-first service, accessible
> by
>  any language, so that if it’s useful, any Agoran can write tools
> against it
>  in their languages of choice.
> 
>  -o
> 
> 
> >>>
> >
> 
> 
>  --
>  From V.J. Rada
> 
> 
> >>
> >
>
>


Re: DIS: Re: BUS: Archival disclosure

2017-10-06 Thread Gaelan Steele
I don’t think I ever accomplished much back then, but I was 13 at the time of 
my first registration. 
https://www.mail-archive.com/agora-business@agoranomic.org/msg27158.html 


Gaelan

> On Oct 6, 2017, at 6:19 AM, Gaelan Steele  wrote:
> 
> I just turned 16 about two weeks ago. I’ve registered in the past—we could 
> find my past registration dates and do the math.
> 
> Gaelan
> 
>> On Oct 6, 2017, at 4:03 AM, Publius Scribonius Scholasticus 
>>  wrote:
>> 
>> I wonder who the youngest Agoran ever has been. Does anyone know?
>> 
>> Publius Scribonius Scholasticus
>> p.scribonius.scholasti...@gmail.com
>> 
>> 
>> 
>>> On Oct 6, 2017, at 3:46 AM, Quazie  wrote:
>>> 
>>> I played agora for the first time as a teenager - learned of nomic in high 
>>> school and played for the first time back around 2005 maybe? This was 
>>> similar timing to my muffin centric blog nomic win
>>> On Fri, Oct 6, 2017 at 00:03 Gaelan Steele  wrote:
>>> Wow, I’m surprised. I assumed I was pretty young among Agorans, but I guess 
>>> not.
>>> 
>>> Gaelan
>>> 
 On Oct 5, 2017, at 10:43 PM, Aris Merchant 
  wrote:
 
 I was hoping to avoid this, but: me too. (blushes)
 
 -Aris
 
 On Sun, Oct 1, 2017 at 12:44 AM, Gaelan Steele  wrote:
> Hey, I’m not the only one!
> 
> Gaelan
> 
> 
> On Sep 30, 2017, at 10:06 PM, VJ Rada  wrote:
> 
> I'm just a random teenager.
> 
> On Sunday, October 1, 2017, Gaelan Steele  wrote:
>> 
>> Out of curiosity: is anybody around here *not* a programmer of some sort
>> these days?
>> 
>> Oh, and no language which thinks that `[1, 2] + [3, 4] == "1,23,4”` is
>> working fine.
>> 
>> Gaelan
>> 
>>> On Sep 30, 2017, at 7:14 PM, Aris Merchant
>>>  wrote:
>>> 
>>> I've used it, and indeed use it for most of my scripting. JavaScript
>>> is a general purpose language, and it works fine for non-web usages.
>>> 
>>> -Aris
>>> 
>>> On Fri, Sep 29, 2017 at 4:54 PM, Publius Scribonius Scholasticus
>>>  wrote:
 I have used Node.JS before and I don't like it because it is using
 javascript for something it isn't supposed to be used for.
 
 Publius Scribonius Scholasticus
 p.scribonius.scholasti...@gmail.com
 
 
 
> On Sep 29, 2017, at 5:29 PM, ATMunn .  wrote:
> 
> To be honest, although Python is my favorite language, I really
> haven't tried many. The only other languages I really know are C# 
> (which I
> don't really like anymore) and a bit of Lua and Javascript.
> 
> I have several friends who really like Javascript, (specifically
> Node.JS) so that's one I have interest in learning.
> 
> On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson 
> wrote:
> 
>> On Sep 28, 2017, at 12:29 PM, Gaelan Steele  wrote:
>> 
>> [sits in corner with my Ruby-powered ruleset]
>> 
>> Gaelan
> 
> I like Ruby. It and Go pay my rent, and they’re interesting languages.
> 
> I just happen to like Python more for this specific use case. (I
> seriously considered writing it in Rust, too.)
> 
> However, I’m a big believer in interoperability. The framework I’m
> using, apistar, automatically generates API docs in HTML form, as 
> well as a
> coreapi schema document, for APIs implemented against it. The support 
> for
> including useful prose in those docs is limited, but it’s improving 
> (and I
> may send the apistar author a few pull requests about that myself, 
> too).
> 
> The idea is that the archive is an API-first service, accessible by
> any language, so that if it’s useful, any Agoran can write tools 
> against it
> in their languages of choice.
> 
> -o
> 
> 
 
>> 
> 
> 
> --
> From V.J. Rada
> 
> 
>>> 
>> 
> 



Re: DIS: Re: BUS: Archival disclosure

2017-10-06 Thread Gaelan Steele
I just turned 16 about two weeks ago. I’ve registered in the past—we could find 
my past registration dates and do the math.

Gaelan

> On Oct 6, 2017, at 4:03 AM, Publius Scribonius Scholasticus 
>  wrote:
> 
> I wonder who the youngest Agoran ever has been. Does anyone know?
> 
> Publius Scribonius Scholasticus
> p.scribonius.scholasti...@gmail.com
> 
> 
> 
>> On Oct 6, 2017, at 3:46 AM, Quazie  wrote:
>> 
>> I played agora for the first time as a teenager - learned of nomic in high 
>> school and played for the first time back around 2005 maybe? This was 
>> similar timing to my muffin centric blog nomic win
>> On Fri, Oct 6, 2017 at 00:03 Gaelan Steele  wrote:
>> Wow, I’m surprised. I assumed I was pretty young among Agorans, but I guess 
>> not.
>> 
>> Gaelan
>> 
>>> On Oct 5, 2017, at 10:43 PM, Aris Merchant 
>>>  wrote:
>>> 
>>> I was hoping to avoid this, but: me too. (blushes)
>>> 
>>> -Aris
>>> 
>>> On Sun, Oct 1, 2017 at 12:44 AM, Gaelan Steele  wrote:
 Hey, I’m not the only one!
 
 Gaelan
 
 
 On Sep 30, 2017, at 10:06 PM, VJ Rada  wrote:
 
 I'm just a random teenager.
 
 On Sunday, October 1, 2017, Gaelan Steele  wrote:
> 
> Out of curiosity: is anybody around here *not* a programmer of some sort
> these days?
> 
> Oh, and no language which thinks that `[1, 2] + [3, 4] == "1,23,4”` is
> working fine.
> 
> Gaelan
> 
>> On Sep 30, 2017, at 7:14 PM, Aris Merchant
>>  wrote:
>> 
>> I've used it, and indeed use it for most of my scripting. JavaScript
>> is a general purpose language, and it works fine for non-web usages.
>> 
>> -Aris
>> 
>> On Fri, Sep 29, 2017 at 4:54 PM, Publius Scribonius Scholasticus
>>  wrote:
>>> I have used Node.JS before and I don't like it because it is using
>>> javascript for something it isn't supposed to be used for.
>>> 
>>> Publius Scribonius Scholasticus
>>> p.scribonius.scholasti...@gmail.com
>>> 
>>> 
>>> 
 On Sep 29, 2017, at 5:29 PM, ATMunn .  wrote:
 
 To be honest, although Python is my favorite language, I really
 haven't tried many. The only other languages I really know are C# 
 (which I
 don't really like anymore) and a bit of Lua and Javascript.
 
 I have several friends who really like Javascript, (specifically
 Node.JS) so that's one I have interest in learning.
 
 On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson 
 wrote:
 
> On Sep 28, 2017, at 12:29 PM, Gaelan Steele  wrote:
> 
> [sits in corner with my Ruby-powered ruleset]
> 
> Gaelan
 
 I like Ruby. It and Go pay my rent, and they’re interesting languages.
 
 I just happen to like Python more for this specific use case. (I
 seriously considered writing it in Rust, too.)
 
 However, I’m a big believer in interoperability. The framework I’m
 using, apistar, automatically generates API docs in HTML form, as well 
 as a
 coreapi schema document, for APIs implemented against it. The support 
 for
 including useful prose in those docs is limited, but it’s improving 
 (and I
 may send the apistar author a few pull requests about that myself, 
 too).
 
 The idea is that the archive is an API-first service, accessible by
 any language, so that if it’s useful, any Agoran can write tools 
 against it
 in their languages of choice.
 
 -o
 
 
>>> 
> 
 
 
 --
 From V.J. Rada
 
 
>> 
> 



Re: DIS: Re: BUS: Archival disclosure

2017-10-06 Thread Publius Scribonius Scholasticus
I wonder who the youngest Agoran ever has been. Does anyone know?

Publius Scribonius Scholasticus
p.scribonius.scholasti...@gmail.com



> On Oct 6, 2017, at 3:46 AM, Quazie  wrote:
> 
> I played agora for the first time as a teenager - learned of nomic in high 
> school and played for the first time back around 2005 maybe? This was similar 
> timing to my muffin centric blog nomic win
> On Fri, Oct 6, 2017 at 00:03 Gaelan Steele  wrote:
> Wow, I’m surprised. I assumed I was pretty young among Agorans, but I guess 
> not.
> 
> Gaelan
> 
> > On Oct 5, 2017, at 10:43 PM, Aris Merchant 
> >  wrote:
> >
> > I was hoping to avoid this, but: me too. (blushes)
> >
> > -Aris
> >
> > On Sun, Oct 1, 2017 at 12:44 AM, Gaelan Steele  wrote:
> >> Hey, I’m not the only one!
> >>
> >> Gaelan
> >>
> >>
> >> On Sep 30, 2017, at 10:06 PM, VJ Rada  wrote:
> >>
> >> I'm just a random teenager.
> >>
> >> On Sunday, October 1, 2017, Gaelan Steele  wrote:
> >>>
> >>> Out of curiosity: is anybody around here *not* a programmer of some sort
> >>> these days?
> >>>
> >>> Oh, and no language which thinks that `[1, 2] + [3, 4] == "1,23,4”` is
> >>> working fine.
> >>>
> >>> Gaelan
> >>>
>  On Sep 30, 2017, at 7:14 PM, Aris Merchant
>   wrote:
> 
>  I've used it, and indeed use it for most of my scripting. JavaScript
>  is a general purpose language, and it works fine for non-web usages.
> 
>  -Aris
> 
>  On Fri, Sep 29, 2017 at 4:54 PM, Publius Scribonius Scholasticus
>   wrote:
> > I have used Node.JS before and I don't like it because it is using
> > javascript for something it isn't supposed to be used for.
> > 
> > Publius Scribonius Scholasticus
> > p.scribonius.scholasti...@gmail.com
> >
> >
> >
> >> On Sep 29, 2017, at 5:29 PM, ATMunn .  wrote:
> >>
> >> To be honest, although Python is my favorite language, I really
> >> haven't tried many. The only other languages I really know are C# 
> >> (which I
> >> don't really like anymore) and a bit of Lua and Javascript.
> >>
> >> I have several friends who really like Javascript, (specifically
> >> Node.JS) so that's one I have interest in learning.
> >>
> >> On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson 
> >> wrote:
> >>
> >>> On Sep 28, 2017, at 12:29 PM, Gaelan Steele  wrote:
> >>>
> >>> [sits in corner with my Ruby-powered ruleset]
> >>>
> >>> Gaelan
> >>
> >> I like Ruby. It and Go pay my rent, and they’re interesting languages.
> >>
> >> I just happen to like Python more for this specific use case. (I
> >> seriously considered writing it in Rust, too.)
> >>
> >> However, I’m a big believer in interoperability. The framework I’m
> >> using, apistar, automatically generates API docs in HTML form, as well 
> >> as a
> >> coreapi schema document, for APIs implemented against it. The support 
> >> for
> >> including useful prose in those docs is limited, but it’s improving 
> >> (and I
> >> may send the apistar author a few pull requests about that myself, 
> >> too).
> >>
> >> The idea is that the archive is an API-first service, accessible by
> >> any language, so that if it’s useful, any Agoran can write tools 
> >> against it
> >> in their languages of choice.
> >>
> >> -o
> >>
> >>
> >
> >>>
> >>
> >>
> >> --
> >> From V.J. Rada
> >>
> >>
> 



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: DIS: Re: BUS: Archival disclosure

2017-10-06 Thread Quazie
I played agora for the first time as a teenager - learned of nomic in high
school and played for the first time back around 2005 maybe? This was
similar timing to my muffin centric blog nomic win
On Fri, Oct 6, 2017 at 00:03 Gaelan Steele  wrote:

> Wow, I’m surprised. I assumed I was pretty young among Agorans, but I
> guess not.
>
> Gaelan
>
> > On Oct 5, 2017, at 10:43 PM, Aris Merchant <
> thoughtsoflifeandligh...@gmail.com> wrote:
> >
> > I was hoping to avoid this, but: me too. (blushes)
> >
> > -Aris
> >
> > On Sun, Oct 1, 2017 at 12:44 AM, Gaelan Steele  wrote:
> >> Hey, I’m not the only one!
> >>
> >> Gaelan
> >>
> >>
> >> On Sep 30, 2017, at 10:06 PM, VJ Rada  wrote:
> >>
> >> I'm just a random teenager.
> >>
> >> On Sunday, October 1, 2017, Gaelan Steele  wrote:
> >>>
> >>> Out of curiosity: is anybody around here *not* a programmer of some
> sort
> >>> these days?
> >>>
> >>> Oh, and no language which thinks that `[1, 2] + [3, 4] == "1,23,4”` is
> >>> working fine.
> >>>
> >>> Gaelan
> >>>
>  On Sep 30, 2017, at 7:14 PM, Aris Merchant
>   wrote:
> 
>  I've used it, and indeed use it for most of my scripting. JavaScript
>  is a general purpose language, and it works fine for non-web usages.
> 
>  -Aris
> 
>  On Fri, Sep 29, 2017 at 4:54 PM, Publius Scribonius Scholasticus
>   wrote:
> > I have used Node.JS before and I don't like it because it is using
> > javascript for something it isn't supposed to be used for.
> > 
> > Publius Scribonius Scholasticus
> > p.scribonius.scholasti...@gmail.com
> >
> >
> >
> >> On Sep 29, 2017, at 5:29 PM, ATMunn . 
> wrote:
> >>
> >> To be honest, although Python is my favorite language, I really
> >> haven't tried many. The only other languages I really know are C#
> (which I
> >> don't really like anymore) and a bit of Lua and Javascript.
> >>
> >> I have several friends who really like Javascript, (specifically
> >> Node.JS) so that's one I have interest in learning.
> >>
> >> On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson 
> >> wrote:
> >>
> >>> On Sep 28, 2017, at 12:29 PM, Gaelan Steele 
> wrote:
> >>>
> >>> [sits in corner with my Ruby-powered ruleset]
> >>>
> >>> Gaelan
> >>
> >> I like Ruby. It and Go pay my rent, and they’re interesting
> languages.
> >>
> >> I just happen to like Python more for this specific use case. (I
> >> seriously considered writing it in Rust, too.)
> >>
> >> However, I’m a big believer in interoperability. The framework I’m
> >> using, apistar, automatically generates API docs in HTML form, as
> well as a
> >> coreapi schema document, for APIs implemented against it. The
> support for
> >> including useful prose in those docs is limited, but it’s improving
> (and I
> >> may send the apistar author a few pull requests about that myself,
> too).
> >>
> >> The idea is that the archive is an API-first service, accessible by
> >> any language, so that if it’s useful, any Agoran can write tools
> against it
> >> in their languages of choice.
> >>
> >> -o
> >>
> >>
> >
> >>>
> >>
> >>
> >> --
> >> From V.J. Rada
> >>
> >>
>
>


Re: DIS: Re: BUS: Archival disclosure

2017-10-06 Thread Gaelan Steele
Wow, I’m surprised. I assumed I was pretty young among Agorans, but I guess not.

Gaelan

> On Oct 5, 2017, at 10:43 PM, Aris Merchant 
>  wrote:
> 
> I was hoping to avoid this, but: me too. (blushes)
> 
> -Aris
> 
> On Sun, Oct 1, 2017 at 12:44 AM, Gaelan Steele  wrote:
>> Hey, I’m not the only one!
>> 
>> Gaelan
>> 
>> 
>> On Sep 30, 2017, at 10:06 PM, VJ Rada  wrote:
>> 
>> I'm just a random teenager.
>> 
>> On Sunday, October 1, 2017, Gaelan Steele  wrote:
>>> 
>>> Out of curiosity: is anybody around here *not* a programmer of some sort
>>> these days?
>>> 
>>> Oh, and no language which thinks that `[1, 2] + [3, 4] == "1,23,4”` is
>>> working fine.
>>> 
>>> Gaelan
>>> 
 On Sep 30, 2017, at 7:14 PM, Aris Merchant
  wrote:
 
 I've used it, and indeed use it for most of my scripting. JavaScript
 is a general purpose language, and it works fine for non-web usages.
 
 -Aris
 
 On Fri, Sep 29, 2017 at 4:54 PM, Publius Scribonius Scholasticus
  wrote:
> I have used Node.JS before and I don't like it because it is using
> javascript for something it isn't supposed to be used for.
> 
> Publius Scribonius Scholasticus
> p.scribonius.scholasti...@gmail.com
> 
> 
> 
>> On Sep 29, 2017, at 5:29 PM, ATMunn .  wrote:
>> 
>> To be honest, although Python is my favorite language, I really
>> haven't tried many. The only other languages I really know are C# (which 
>> I
>> don't really like anymore) and a bit of Lua and Javascript.
>> 
>> I have several friends who really like Javascript, (specifically
>> Node.JS) so that's one I have interest in learning.
>> 
>> On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson 
>> wrote:
>> 
>>> On Sep 28, 2017, at 12:29 PM, Gaelan Steele  wrote:
>>> 
>>> [sits in corner with my Ruby-powered ruleset]
>>> 
>>> Gaelan
>> 
>> I like Ruby. It and Go pay my rent, and they’re interesting languages.
>> 
>> I just happen to like Python more for this specific use case. (I
>> seriously considered writing it in Rust, too.)
>> 
>> However, I’m a big believer in interoperability. The framework I’m
>> using, apistar, automatically generates API docs in HTML form, as well 
>> as a
>> coreapi schema document, for APIs implemented against it. The support for
>> including useful prose in those docs is limited, but it’s improving (and 
>> I
>> may send the apistar author a few pull requests about that myself, too).
>> 
>> The idea is that the archive is an API-first service, accessible by
>> any language, so that if it’s useful, any Agoran can write tools against 
>> it
>> in their languages of choice.
>> 
>> -o
>> 
>> 
> 
>>> 
>> 
>> 
>> --
>> From V.J. Rada
>> 
>> 



Re: DIS: Re: BUS: Archival disclosure

2017-10-05 Thread Aris Merchant
I was hoping to avoid this, but: me too. (blushes)

-Aris

On Sun, Oct 1, 2017 at 12:44 AM, Gaelan Steele  wrote:
> Hey, I’m not the only one!
>
> Gaelan
>
>
> On Sep 30, 2017, at 10:06 PM, VJ Rada  wrote:
>
> I'm just a random teenager.
>
> On Sunday, October 1, 2017, Gaelan Steele  wrote:
>>
>> Out of curiosity: is anybody around here *not* a programmer of some sort
>> these days?
>>
>> Oh, and no language which thinks that `[1, 2] + [3, 4] == "1,23,4”` is
>> working fine.
>>
>> Gaelan
>>
>> > On Sep 30, 2017, at 7:14 PM, Aris Merchant
>> >  wrote:
>> >
>> > I've used it, and indeed use it for most of my scripting. JavaScript
>> > is a general purpose language, and it works fine for non-web usages.
>> >
>> > -Aris
>> >
>> > On Fri, Sep 29, 2017 at 4:54 PM, Publius Scribonius Scholasticus
>> >  wrote:
>> >> I have used Node.JS before and I don't like it because it is using
>> >> javascript for something it isn't supposed to be used for.
>> >> 
>> >> Publius Scribonius Scholasticus
>> >> p.scribonius.scholasti...@gmail.com
>> >>
>> >>
>> >>
>> >>> On Sep 29, 2017, at 5:29 PM, ATMunn .  wrote:
>> >>>
>> >>> To be honest, although Python is my favorite language, I really
>> >>> haven't tried many. The only other languages I really know are C# (which 
>> >>> I
>> >>> don't really like anymore) and a bit of Lua and Javascript.
>> >>>
>> >>> I have several friends who really like Javascript, (specifically
>> >>> Node.JS) so that's one I have interest in learning.
>> >>>
>> >>> On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson 
>> >>> wrote:
>> >>>
>>  On Sep 28, 2017, at 12:29 PM, Gaelan Steele  wrote:
>> 
>>  [sits in corner with my Ruby-powered ruleset]
>> 
>>  Gaelan
>> >>>
>> >>> I like Ruby. It and Go pay my rent, and they’re interesting languages.
>> >>>
>> >>> I just happen to like Python more for this specific use case. (I
>> >>> seriously considered writing it in Rust, too.)
>> >>>
>> >>> However, I’m a big believer in interoperability. The framework I’m
>> >>> using, apistar, automatically generates API docs in HTML form, as well 
>> >>> as a
>> >>> coreapi schema document, for APIs implemented against it. The support for
>> >>> including useful prose in those docs is limited, but it’s improving (and 
>> >>> I
>> >>> may send the apistar author a few pull requests about that myself, too).
>> >>>
>> >>> The idea is that the archive is an API-first service, accessible by
>> >>> any language, so that if it’s useful, any Agoran can write tools against 
>> >>> it
>> >>> in their languages of choice.
>> >>>
>> >>> -o
>> >>>
>> >>>
>> >>
>>
>
>
> --
> From V.J. Rada
>
>


Re: DIS: Re: BUS: Archival disclosure

2017-10-05 Thread Owen Jacobson
On Sep 30, 2017, at 10:06 PM, VJ Rada > wrote:

> I'm just a random teenager.

On Oct 1, 2017, at 3:44 AM, Gaelan Steele  wrote:

> Hey, I’m not the only one!

For the record, you’re both well-spoken, diligent, intelligent, very easy to 
get along with, and a joy to play alongside.

-o



signature.asc
Description: Message signed with OpenPGP


Re: DIS: Archive implementation (was DIS: Re: BUS: Archival disclosure)

2017-10-05 Thread Owen Jacobson

> On Sep 29, 2017, at 4:00 AM, Aris Merchant 
>  wrote:
> 
> I love this idea. It seems very practical without sacrificing
> usability for the end users (i.e. the players). I have a few
> suggestions:
> 
> 1. Who annotates. I think giving everyone access to the annotation
> interface would probably make sense. You can't personally annotate
> every message affecting the entire gamestate, and I'd love to help set
> the formats I'm consuming for Promotor. nichdel came up with a
> proposal format suggestion, and now that this has come along I'm
> modifying it to have more information for the Promotor side of the
> Promotor-Assessor pipeline. I'm sure other officers have input on how
> formalization for their parts of the gamestate should take place, and
> they have a unique understanding of what information is needed to do
> their jobs.

This is, I strongly believe, the correct answer. We’re none of us as creative 
or as thorough as all of us, just as a starting point, but I do genuinely 
believe this could be useful for other officers, and even random Agorans. It 
might also help provide some continuity between officers if it works out.

Right now, the API for this thing is totally unsecured - no authn or authz, no 
abuse detection, no rate limits, nothing. I trust Agorans fairly far, and I 
don’t think anyone here would make a problem out of this - other than maybe by 
putting in intentionally-bogus annotations to try to cause self-ratifying 
reports to be wrong in useful ways, anyways - but that trust does not extend to 
the internet at large. I’d like to address that, or at least to add some 
username/password/API token authentication even without any authorization 
layer, before I open it up further.

The other blocker for general adoption is a user interface. Right now I have a 
CLI tool (https://github.com/ojacobson/cadastre-cli/), and I plan on publishing 
docs for the HTTP API to hopefully make it possible to do other things with 
this, but there’s no HTML UI. I don’t think that’s viable if anyone other than 
the most hard-core software heads are going to touch it.

> 2. Annotation style. As you've mentioned, your format is a bit forced.
> You're doing a great job with what you have to work with, but I think
> the basic problem may be that you're trying to use markup to represent
> transactions. It works wonderfully for representing the data (and
> should probably be a base format for that), but poorly for
> representing things like conditional actions. You can add and add to
> the format, but you'll just be making it more complicated to use. I
> suggest you consider using programs (possibly with methods you
> provide) as annotations. It feels kind of intuitively weird to
> represent an annotation as a program, and they don't have the nice
> formal properties the data itself does (except maybe if you used
> Haskell or something), but I think it might be a lot more practical
> for actual use. Programs allow for loops, unrestricted conditionals,
> and the like, meaning that you don't have to work something out by
> hand or create a new transaction type just for one complicated
> transaction. They would work well for this because they take data and
> compute changes, which is exactly what our action system does. There
> is thus a neat one-to-one correspondence between an action and a
> program.

I’m enough of a lisp weenie that I don’t think of the two as distinct models. 
Code and data are, in important ways, the same thing - what’s important is the 
interpretation of that data. The JSON-Patch approach I’m using is, arguably, a 
programming language - albeit a very inexpressive one which can only write 
programs that terminate in constant time and which use constant space. I think 
you’re right that the annotations need to be more powerful than that - I’m not 
convinced they need to be turing-complete, but I think there’s a strong case 
that linear programs aren’t sufficient.

There are complicated constraints, though.

One - I’m not up to allowing arbitrary internet persons to upload code if that 
code could even potentially escape from the service or access code or data held 
by the service other than the state currently being evaluated. Sandboxing 
support is weak in a lot of languages - even Lua has primitives for basic IO, 
and they’re surprisingly hard to disable completely. Blizzard has spent years 
chasing sandboxing bugs in their own Lua implementation. This complaint extends 
to V8, embedded Python, “just use execfile”, Ruby, shell scripts, and most 
embedded languages.

Two - I would dearly like to be able to query the service for things like “show 
me all the emails in this date range that affected my Shiny balance.” In a 
fully turing-complete language, that property is not necessarily computable, 
and it’s certainly not computable in any widespread language. The python-ish 
program

if balances.o >= 5:
balances.o -= 5
   

Re: DIS: Archive implementation (was DIS: Re: BUS: Archival disclosure)

2017-10-05 Thread Owen Jacobson
I have. It merits a more thorough response than I’ve been able to give it but 
with archiving up I can put thought towards it now. I’ll write more tomorrow.

-o

P.S.: https://twitter.com/derspiny/status/915838104304590848

> On Oct 5, 2017, at 2:21 AM, Aris Merchant 
>  wrote:
> 
> o, have you seen this?
> 
> -Aris
> 
> On Fri, Sep 29, 2017 at 1:00 AM, Aris Merchant
>  wrote:
>> On Thu, Sep 28, 2017 at 12:28 AM, Owen Jacobson  wrote:
 This is the first stage of an attempt to create an annotation system 
 designed to formalize game state changes by attaching formal descriptions 
 of those changes to documents, represented by email messages. At this 
 time, I plan only to archive messages, but there will be a read element 
 allowing anonymous users to read and enumerate messages from the archive 
 in the near future.
>>> 
>>> The broader scheme here is this:
>>> 
>>> 1. A client app forwards public messages to the archive. They sit in an 
>>> “unannotated messages” queue until someone - me, probably - picks them up 
>>> and annotates them.
>>> 
>>> 2. A user annotates each message with a short formal description of the 
>>> game-state changes imposed by a message. These annotations are mutable, so 
>>> mistaken annotations are not a permanent problem, and are versioned so that 
>>> vandalism can be undone. I haven’t worked out the exact schema for these 
>>> annotations, yet, but the concept I’m working with is loosely based on the 
>>> RFC 6902 JSON Patch format, adapted for Agora’s specific needs. For 
>>> example, an annotation transferring shinies might read, in YAML form for 
>>> readability:
>>> 
 - op: event
  office: Secretary
  summary: o paid Ørjan 1 sh.
 
 - op: transfer
  from: /Shinies/Player/o
  to: /Shinies/Player/Ørjan
  delta: 1
>>> 
>>> Obviously, this is an awkward format, but it has some nice properties that 
>>> I think make it worth building on. I’m still tweaking the actual format for 
>>> annotaitons, and it’s likely I’ll add a UI or some variety of terse syntax 
>>> so that it’s possible to write this kind of simple action in fewer than 
>>> eight lines.
>>> 
>>> 3. The archive exposes an API that can sum up the annotations, starting 
>>> from the beginning of time, all the way up to a specific point in time, and 
>>> then return the computed state of the game plus a list of events by office. 
>>> My report scripts will become “query this API in a specific way, and feed 
>>> the resulting data to a template to render it for email.”
>>> 
>>> The idea is that instead of trying to reduce Agora to a set of formal 
>>> actions, I instead want to keep the prose forms as the primary documents 
>>> and allow formal note-taking alongside them. Many of Agora’s state changes 
>>> are formalizable, and from there, those parts of Agora’s state are 
>>> computable, so this could take a bunch of load off for computing those 
>>> parts of the game.
>>> 
>>> I’ve had some success with a reduced version of this approach for the 
>>> office of Surveyor. All Surveyor’s reports have been generated by a 
>>> built-to-purpose Python script that applies the same principles to a set of 
>>> local YAML files instead of a web API.
>>> 
>>> -o
>> 
>> I love this idea. It seems very practical without sacrificing
>> usability for the end users (i.e. the players). I have a few
>> suggestions:
>> 
>> 1. Who annotates. I think giving everyone access to the annotation
>> interface would probably make sense. You can't personally annotate
>> every message affecting the entire gamestate, and I'd love to help set
>> the formats I'm consuming for Promotor. nichdel came up with a
>> proposal format suggestion, and now that this has come along I'm
>> modifying it to have more information for the Promotor side of the
>> Promotor-Assessor pipeline. I'm sure other officers have input on how
>> formalization for their parts of the gamestate should take place, and
>> they have a unique understanding of what information is needed to do
>> their jobs.
>> 
>> 2. Annotation style. As you've mentioned, your format is a bit forced.
>> You're doing a great job with what you have to work with, but I think
>> the basic problem may be that you're trying to use markup to represent
>> transactions. It works wonderfully for representing the data (and
>> should probably be a base format for that), but poorly for
>> representing things like conditional actions. You can add and add to
>> the format, but you'll just be making it more complicated to use. I
>> suggest you consider using programs (possibly with methods you
>> provide) as annotations. It feels kind of intuitively weird to
>> represent an annotation as a program, and they don't have the nice
>> formal properties the data itself does (except maybe if you used
>> Haskell or something), but I think it might be a lot more practical
>> for 

Re: DIS: Archive implementation (was DIS: Re: BUS: Archival disclosure)

2017-10-05 Thread Aris Merchant
o, have you seen this?

-Aris

On Fri, Sep 29, 2017 at 1:00 AM, Aris Merchant
 wrote:
> On Thu, Sep 28, 2017 at 12:28 AM, Owen Jacobson  wrote:
>>> This is the first stage of an attempt to create an annotation system 
>>> designed to formalize game state changes by attaching formal descriptions 
>>> of those changes to documents, represented by email messages. At this time, 
>>> I plan only to archive messages, but there will be a read element allowing 
>>> anonymous users to read and enumerate messages from the archive in the near 
>>> future.
>>
>> The broader scheme here is this:
>>
>> 1. A client app forwards public messages to the archive. They sit in an 
>> “unannotated messages” queue until someone - me, probably - picks them up 
>> and annotates them.
>>
>> 2. A user annotates each message with a short formal description of the 
>> game-state changes imposed by a message. These annotations are mutable, so 
>> mistaken annotations are not a permanent problem, and are versioned so that 
>> vandalism can be undone. I haven’t worked out the exact schema for these 
>> annotations, yet, but the concept I’m working with is loosely based on the 
>> RFC 6902 JSON Patch format, adapted for Agora’s specific needs. For example, 
>> an annotation transferring shinies might read, in YAML form for readability:
>>
>>> - op: event
>>>   office: Secretary
>>>   summary: o paid Ørjan 1 sh.
>>>
>>> - op: transfer
>>>   from: /Shinies/Player/o
>>>   to: /Shinies/Player/Ørjan
>>>   delta: 1
>>
>> Obviously, this is an awkward format, but it has some nice properties that I 
>> think make it worth building on. I’m still tweaking the actual format for 
>> annotaitons, and it’s likely I’ll add a UI or some variety of terse syntax 
>> so that it’s possible to write this kind of simple action in fewer than 
>> eight lines.
>>
>> 3. The archive exposes an API that can sum up the annotations, starting from 
>> the beginning of time, all the way up to a specific point in time, and then 
>> return the computed state of the game plus a list of events by office. My 
>> report scripts will become “query this API in a specific way, and feed the 
>> resulting data to a template to render it for email.”
>>
>> The idea is that instead of trying to reduce Agora to a set of formal 
>> actions, I instead want to keep the prose forms as the primary documents and 
>> allow formal note-taking alongside them. Many of Agora’s state changes are 
>> formalizable, and from there, those parts of Agora’s state are computable, 
>> so this could take a bunch of load off for computing those parts of the game.
>>
>> I’ve had some success with a reduced version of this approach for the office 
>> of Surveyor. All Surveyor’s reports have been generated by a 
>> built-to-purpose Python script that applies the same principles to a set of 
>> local YAML files instead of a web API.
>>
>> -o
>
> I love this idea. It seems very practical without sacrificing
> usability for the end users (i.e. the players). I have a few
> suggestions:
>
> 1. Who annotates. I think giving everyone access to the annotation
> interface would probably make sense. You can't personally annotate
> every message affecting the entire gamestate, and I'd love to help set
> the formats I'm consuming for Promotor. nichdel came up with a
> proposal format suggestion, and now that this has come along I'm
> modifying it to have more information for the Promotor side of the
> Promotor-Assessor pipeline. I'm sure other officers have input on how
> formalization for their parts of the gamestate should take place, and
> they have a unique understanding of what information is needed to do
> their jobs.
>
> 2. Annotation style. As you've mentioned, your format is a bit forced.
> You're doing a great job with what you have to work with, but I think
> the basic problem may be that you're trying to use markup to represent
> transactions. It works wonderfully for representing the data (and
> should probably be a base format for that), but poorly for
> representing things like conditional actions. You can add and add to
> the format, but you'll just be making it more complicated to use. I
> suggest you consider using programs (possibly with methods you
> provide) as annotations. It feels kind of intuitively weird to
> represent an annotation as a program, and they don't have the nice
> formal properties the data itself does (except maybe if you used
> Haskell or something), but I think it might be a lot more practical
> for actual use. Programs allow for loops, unrestricted conditionals,
> and the like, meaning that you don't have to work something out by
> hand or create a new transaction type just for one complicated
> transaction. They would work well for this because they take data and
> compute changes, which is exactly what our action system does. There
> is thus a neat one-to-one correspondence between an action and a
> program.
>
> o, 

Re: DIS: Re: BUS: Archival disclosure

2017-10-01 Thread Gaelan Steele
Hey, I’m not the only one!

Gaelan

> On Sep 30, 2017, at 10:06 PM, VJ Rada  wrote:
> 
> I'm just a random teenager. 
> 
> On Sunday, October 1, 2017, Gaelan Steele  > wrote:
> Out of curiosity: is anybody around here *not* a programmer of some sort 
> these days?
> 
> Oh, and no language which thinks that `[1, 2] + [3, 4] == "1,23,4”` is 
> working fine.
> 
> Gaelan
> 
> > On Sep 30, 2017, at 7:14 PM, Aris Merchant 
> > > wrote:
> >
> > I've used it, and indeed use it for most of my scripting. JavaScript
> > is a general purpose language, and it works fine for non-web usages.
> >
> > -Aris
> >
> > On Fri, Sep 29, 2017 at 4:54 PM, Publius Scribonius Scholasticus
> > > wrote:
> >> I have used Node.JS before and I don't like it because it is using 
> >> javascript for something it isn't supposed to be used for.
> >> 
> >> Publius Scribonius Scholasticus
> >> p.scribonius.scholasti...@gmail.com <>
> >>
> >>
> >>
> >>> On Sep 29, 2017, at 5:29 PM, ATMunn . > wrote:
> >>>
> >>> To be honest, although Python is my favorite language, I really haven't 
> >>> tried many. The only other languages I really know are C# (which I don't 
> >>> really like anymore) and a bit of Lua and Javascript.
> >>>
> >>> I have several friends who really like Javascript, (specifically Node.JS) 
> >>> so that's one I have interest in learning.
> >>>
> >>> On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson > 
> >>> wrote:
> >>>
>  On Sep 28, 2017, at 12:29 PM, Gaelan Steele > wrote:
> 
>  [sits in corner with my Ruby-powered ruleset]
> 
>  Gaelan
> >>>
> >>> I like Ruby. It and Go pay my rent, and they’re interesting languages.
> >>>
> >>> I just happen to like Python more for this specific use case. (I 
> >>> seriously considered writing it in Rust, too.)
> >>>
> >>> However, I’m a big believer in interoperability. The framework I’m using, 
> >>> apistar, automatically generates API docs in HTML form, as well as a 
> >>> coreapi schema document, for APIs implemented against it. The support for 
> >>> including useful prose in those docs is limited, but it’s improving (and 
> >>> I may send the apistar author a few pull requests about that myself, too).
> >>>
> >>> The idea is that the archive is an API-first service, accessible by any 
> >>> language, so that if it’s useful, any Agoran can write tools against it 
> >>> in their languages of choice.
> >>>
> >>> -o
> >>>
> >>>
> >>
> 
> 
> 
> -- 
> From V.J. Rada



Re: DIS: Re: BUS: Archival disclosure

2017-09-30 Thread Aris Merchant
On Sat, Sep 30, 2017 at 9:17 PM, Gaelan Steele  wrote:
> Out of curiosity: is anybody around here *not* a programmer of some sort 
> these days?

Only in my spare time.

> Oh, and no language which thinks that `[1, 2] + [3, 4] == "1,23,4”` is 
> working fine.

I will admit that there are some problems with casting and deep
equality. Still, every language has some flaws and JavaScript is
pretty decent overall.

-Aris


Re: DIS: Re: BUS: Archival disclosure

2017-09-30 Thread VJ Rada
I'm just a random teenager.

On Sunday, October 1, 2017, Gaelan Steele  wrote:

> Out of curiosity: is anybody around here *not* a programmer of some sort
> these days?
>
> Oh, and no language which thinks that `[1, 2] + [3, 4] == "1,23,4”` is
> working fine.
>
> Gaelan
>
> > On Sep 30, 2017, at 7:14 PM, Aris Merchant <
> thoughtsoflifeandligh...@gmail.com > wrote:
> >
> > I've used it, and indeed use it for most of my scripting. JavaScript
> > is a general purpose language, and it works fine for non-web usages.
> >
> > -Aris
> >
> > On Fri, Sep 29, 2017 at 4:54 PM, Publius Scribonius Scholasticus
> > > wrote:
> >> I have used Node.JS before and I don't like it because it is using
> javascript for something it isn't supposed to be used for.
> >> 
> >> Publius Scribonius Scholasticus
> >> p.scribonius.scholasti...@gmail.com 
> >>
> >>
> >>
> >>> On Sep 29, 2017, at 5:29 PM, ATMunn .  > wrote:
> >>>
> >>> To be honest, although Python is my favorite language, I really
> haven't tried many. The only other languages I really know are C# (which I
> don't really like anymore) and a bit of Lua and Javascript.
> >>>
> >>> I have several friends who really like Javascript, (specifically
> Node.JS) so that's one I have interest in learning.
> >>>
> >>> On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson  > wrote:
> >>>
>  On Sep 28, 2017, at 12:29 PM, Gaelan Steele  > wrote:
> 
>  [sits in corner with my Ruby-powered ruleset]
> 
>  Gaelan
> >>>
> >>> I like Ruby. It and Go pay my rent, and they’re interesting languages.
> >>>
> >>> I just happen to like Python more for this specific use case. (I
> seriously considered writing it in Rust, too.)
> >>>
> >>> However, I’m a big believer in interoperability. The framework I’m
> using, apistar, automatically generates API docs in HTML form, as well as a
> coreapi schema document, for APIs implemented against it. The support for
> including useful prose in those docs is limited, but it’s improving (and I
> may send the apistar author a few pull requests about that myself, too).
> >>>
> >>> The idea is that the archive is an API-first service, accessible by
> any language, so that if it’s useful, any Agoran can write tools against it
> in their languages of choice.
> >>>
> >>> -o
> >>>
> >>>
> >>
>
>

-- 
>From V.J. Rada


Re: DIS: Re: BUS: Archival disclosure

2017-09-30 Thread Gaelan Steele
Out of curiosity: is anybody around here *not* a programmer of some sort these 
days?

Oh, and no language which thinks that `[1, 2] + [3, 4] == "1,23,4”` is working 
fine.

Gaelan

> On Sep 30, 2017, at 7:14 PM, Aris Merchant 
>  wrote:
> 
> I've used it, and indeed use it for most of my scripting. JavaScript
> is a general purpose language, and it works fine for non-web usages.
> 
> -Aris
> 
> On Fri, Sep 29, 2017 at 4:54 PM, Publius Scribonius Scholasticus
>  wrote:
>> I have used Node.JS before and I don't like it because it is using 
>> javascript for something it isn't supposed to be used for.
>> 
>> Publius Scribonius Scholasticus
>> p.scribonius.scholasti...@gmail.com
>> 
>> 
>> 
>>> On Sep 29, 2017, at 5:29 PM, ATMunn .  wrote:
>>> 
>>> To be honest, although Python is my favorite language, I really haven't 
>>> tried many. The only other languages I really know are C# (which I don't 
>>> really like anymore) and a bit of Lua and Javascript.
>>> 
>>> I have several friends who really like Javascript, (specifically Node.JS) 
>>> so that's one I have interest in learning.
>>> 
>>> On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson  wrote:
>>> 
 On Sep 28, 2017, at 12:29 PM, Gaelan Steele  wrote:
 
 [sits in corner with my Ruby-powered ruleset]
 
 Gaelan
>>> 
>>> I like Ruby. It and Go pay my rent, and they’re interesting languages.
>>> 
>>> I just happen to like Python more for this specific use case. (I seriously 
>>> considered writing it in Rust, too.)
>>> 
>>> However, I’m a big believer in interoperability. The framework I’m using, 
>>> apistar, automatically generates API docs in HTML form, as well as a 
>>> coreapi schema document, for APIs implemented against it. The support for 
>>> including useful prose in those docs is limited, but it’s improving (and I 
>>> may send the apistar author a few pull requests about that myself, too).
>>> 
>>> The idea is that the archive is an API-first service, accessible by any 
>>> language, so that if it’s useful, any Agoran can write tools against it in 
>>> their languages of choice.
>>> 
>>> -o
>>> 
>>> 
>> 



Re: DIS: Re: BUS: Archival disclosure

2017-09-30 Thread Aris Merchant
I've used it, and indeed use it for most of my scripting. JavaScript
is a general purpose language, and it works fine for non-web usages.

-Aris

On Fri, Sep 29, 2017 at 4:54 PM, Publius Scribonius Scholasticus
 wrote:
> I have used Node.JS before and I don't like it because it is using javascript 
> for something it isn't supposed to be used for.
> 
> Publius Scribonius Scholasticus
> p.scribonius.scholasti...@gmail.com
>
>
>
>> On Sep 29, 2017, at 5:29 PM, ATMunn .  wrote:
>>
>> To be honest, although Python is my favorite language, I really haven't 
>> tried many. The only other languages I really know are C# (which I don't 
>> really like anymore) and a bit of Lua and Javascript.
>>
>> I have several friends who really like Javascript, (specifically Node.JS) so 
>> that's one I have interest in learning.
>>
>> On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson  wrote:
>>
>> > On Sep 28, 2017, at 12:29 PM, Gaelan Steele  wrote:
>> >
>> > [sits in corner with my Ruby-powered ruleset]
>> >
>> > Gaelan
>>
>> I like Ruby. It and Go pay my rent, and they’re interesting languages.
>>
>> I just happen to like Python more for this specific use case. (I seriously 
>> considered writing it in Rust, too.)
>>
>> However, I’m a big believer in interoperability. The framework I’m using, 
>> apistar, automatically generates API docs in HTML form, as well as a coreapi 
>> schema document, for APIs implemented against it. The support for including 
>> useful prose in those docs is limited, but it’s improving (and I may send 
>> the apistar author a few pull requests about that myself, too).
>>
>> The idea is that the archive is an API-first service, accessible by any 
>> language, so that if it’s useful, any Agoran can write tools against it in 
>> their languages of choice.
>>
>> -o
>>
>>
>


Re: DIS: Re: BUS: Archival disclosure

2017-09-29 Thread Publius Scribonius Scholasticus
I have used Node.JS before and I don't like it because it is using javascript 
for something it isn't supposed to be used for.

Publius Scribonius Scholasticus
p.scribonius.scholasti...@gmail.com



> On Sep 29, 2017, at 5:29 PM, ATMunn .  wrote:
> 
> To be honest, although Python is my favorite language, I really haven't tried 
> many. The only other languages I really know are C# (which I don't really 
> like anymore) and a bit of Lua and Javascript.
> 
> I have several friends who really like Javascript, (specifically Node.JS) so 
> that's one I have interest in learning.
> 
> On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson  wrote:
> 
> > On Sep 28, 2017, at 12:29 PM, Gaelan Steele  wrote:
> >
> > [sits in corner with my Ruby-powered ruleset]
> >
> > Gaelan
> 
> I like Ruby. It and Go pay my rent, and they’re interesting languages.
> 
> I just happen to like Python more for this specific use case. (I seriously 
> considered writing it in Rust, too.)
> 
> However, I’m a big believer in interoperability. The framework I’m using, 
> apistar, automatically generates API docs in HTML form, as well as a coreapi 
> schema document, for APIs implemented against it. The support for including 
> useful prose in those docs is limited, but it’s improving (and I may send the 
> apistar author a few pull requests about that myself, too).
> 
> The idea is that the archive is an API-first service, accessible by any 
> language, so that if it’s useful, any Agoran can write tools against it in 
> their languages of choice.
> 
> -o
> 
> 



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: DIS: Re: BUS: Archival disclosure

2017-09-29 Thread ATMunn .
To be honest, although Python is my favorite language, I really haven't
tried many. The only other languages I really know are C# (which I don't
really like anymore) and a bit of Lua and Javascript.

I have several friends who really like Javascript, (specifically Node.JS)
so that's one I have interest in learning.

On Fri, Sep 29, 2017 at 1:15 AM, Owen Jacobson  wrote:

>
> > On Sep 28, 2017, at 12:29 PM, Gaelan Steele  wrote:
> >
> > [sits in corner with my Ruby-powered ruleset]
> >
> > Gaelan
>
> I like Ruby. It and Go pay my rent, and they’re interesting languages.
>
> I just happen to like Python more for this specific use case. (I seriously
> considered writing it in Rust, too.)
>
> However, I’m a big believer in interoperability. The framework I’m using,
> apistar, automatically generates API docs in HTML form, as well as a
> coreapi schema document, for APIs implemented against it. The support for
> including useful prose in those docs is limited, but it’s improving (and I
> may send the apistar author a few pull requests about that myself, too).
>
> The idea is that the archive is an API-first service, accessible by any
> language, so that if it’s useful, any Agoran can write tools against it in
> their languages of choice.
>
> -o
>
>


DIS: Archive implementation (was DIS: Re: BUS: Archival disclosure)

2017-09-29 Thread Aris Merchant
On Thu, Sep 28, 2017 at 12:28 AM, Owen Jacobson  wrote:
>> This is the first stage of an attempt to create an annotation system 
>> designed to formalize game state changes by attaching formal descriptions of 
>> those changes to documents, represented by email messages. At this time, I 
>> plan only to archive messages, but there will be a read element allowing 
>> anonymous users to read and enumerate messages from the archive in the near 
>> future.
>
> The broader scheme here is this:
>
> 1. A client app forwards public messages to the archive. They sit in an 
> “unannotated messages” queue until someone - me, probably - picks them up and 
> annotates them.
>
> 2. A user annotates each message with a short formal description of the 
> game-state changes imposed by a message. These annotations are mutable, so 
> mistaken annotations are not a permanent problem, and are versioned so that 
> vandalism can be undone. I haven’t worked out the exact schema for these 
> annotations, yet, but the concept I’m working with is loosely based on the 
> RFC 6902 JSON Patch format, adapted for Agora’s specific needs. For example, 
> an annotation transferring shinies might read, in YAML form for readability:
>
>> - op: event
>>   office: Secretary
>>   summary: o paid Ørjan 1 sh.
>>
>> - op: transfer
>>   from: /Shinies/Player/o
>>   to: /Shinies/Player/Ørjan
>>   delta: 1
>
> Obviously, this is an awkward format, but it has some nice properties that I 
> think make it worth building on. I’m still tweaking the actual format for 
> annotaitons, and it’s likely I’ll add a UI or some variety of terse syntax so 
> that it’s possible to write this kind of simple action in fewer than eight 
> lines.
>
> 3. The archive exposes an API that can sum up the annotations, starting from 
> the beginning of time, all the way up to a specific point in time, and then 
> return the computed state of the game plus a list of events by office. My 
> report scripts will become “query this API in a specific way, and feed the 
> resulting data to a template to render it for email.”
>
> The idea is that instead of trying to reduce Agora to a set of formal 
> actions, I instead want to keep the prose forms as the primary documents and 
> allow formal note-taking alongside them. Many of Agora’s state changes are 
> formalizable, and from there, those parts of Agora’s state are computable, so 
> this could take a bunch of load off for computing those parts of the game.
>
> I’ve had some success with a reduced version of this approach for the office 
> of Surveyor. All Surveyor’s reports have been generated by a built-to-purpose 
> Python script that applies the same principles to a set of local YAML files 
> instead of a web API.
>
> -o

I love this idea. It seems very practical without sacrificing
usability for the end users (i.e. the players). I have a few
suggestions:

1. Who annotates. I think giving everyone access to the annotation
interface would probably make sense. You can't personally annotate
every message affecting the entire gamestate, and I'd love to help set
the formats I'm consuming for Promotor. nichdel came up with a
proposal format suggestion, and now that this has come along I'm
modifying it to have more information for the Promotor side of the
Promotor-Assessor pipeline. I'm sure other officers have input on how
formalization for their parts of the gamestate should take place, and
they have a unique understanding of what information is needed to do
their jobs.

2. Annotation style. As you've mentioned, your format is a bit forced.
You're doing a great job with what you have to work with, but I think
the basic problem may be that you're trying to use markup to represent
transactions. It works wonderfully for representing the data (and
should probably be a base format for that), but poorly for
representing things like conditional actions. You can add and add to
the format, but you'll just be making it more complicated to use. I
suggest you consider using programs (possibly with methods you
provide) as annotations. It feels kind of intuitively weird to
represent an annotation as a program, and they don't have the nice
formal properties the data itself does (except maybe if you used
Haskell or something), but I think it might be a lot more practical
for actual use. Programs allow for loops, unrestricted conditionals,
and the like, meaning that you don't have to work something out by
hand or create a new transaction type just for one complicated
transaction. They would work well for this because they take data and
compute changes, which is exactly what our action system does. There
is thus a neat one-to-one correspondence between an action and a
program.

o, honestly, this is an amazing idea. This is such a brilliant
solution to the entire problem that I'm kind of kicking myself for not
coming up with it (not that I would have been able to implement it if
I had).

-Aris


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Owen Jacobson

> On Sep 29, 2017, at 1:31 AM, Gaelan Steele  wrote:
> 
> Fair enough.
> 
> Side note: many claim the the Rulekeepor is a challenging office, but I’d 
> argue that in some ways it’s one of the easiest. The Secretary has to watch 
> pretty much every BUS message for a random shiny spend; all I have to do is 
> post an SLR when I see the Assessor message.

You also have to interpret all of the random clauses people put into proposals. 
There are backstops (both the CFJ and CoE systems can be used to catch 
incorrect rules publications) but you’re the first line of interpretation for 
those instruments, and they can be very hairy instruments indeed.

-o



signature.asc
Description: Message signed with OpenPGP


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Gaelan Steele
Fair enough.

Side note: many claim the the Rulekeepor is a challenging office, but I’d argue 
that in some ways it’s one of the easiest. The Secretary has to watch pretty 
much every BUS message for a random shiny spend; all I have to do is post an 
SLR when I see the Assessor message.

Gaelan

> On Sep 28, 2017, at 10:21 PM, Owen Jacobson  wrote:
> 
> 
>> On Sep 29, 2017, at 1:18 AM, Gaelan Steele  wrote:
>> 
>> I’m kind of curious what the eventual goal here is. Are we trying to build 
>> something with sufficient detail that the gamestate could be reconstructed? 
>> If so, we’d need support for conditionals, which means the “annotations” may 
>> need to support arbitrary code. Is it simply “find me all messages with 
>> votes on proposals”? That seems much more possible, and may even be largely 
>> automatable.
>> 
>> Gaelan
> 
> The goal is a calculator that can work out the correct state of the game for 
> certain kinds of values. I have no desire to try to capture all of Agora in 
> code: it’s impossible, and as I’ve said in the past, Agora’s prose nature is 
> part of its appeal to me. Instead, I want to streamline my offices, and maybe 
> help others streamline theirs, by providing a tool with well-defined 
> properties that can be applied to the problems posed by those offices while 
> being flexible enough to handle some portion of future needs as well.
> 
> I suspect it’ll need some variety of condition, but it’ll also likely need 
> active curation as the “correct” annotation for a message may change due to a 
> CFJ, or due to better understanding of the consequences of schema choices, or 
> due to evolution of the software.
> 
> “Find me all the messages with votes on proposals” is a good example use 
> case. For me, it’s “store data that lets me generate the weekly reports for 
> surveyor and secretary mechanically.” And “keep me interested and help me 
> practice my skills as a developer."
> 
> -o
> 
> 



Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Owen Jacobson

> On Sep 29, 2017, at 1:18 AM, Gaelan Steele  wrote:
> 
> I’m kind of curious what the eventual goal here is. Are we trying to build 
> something with sufficient detail that the gamestate could be reconstructed? 
> If so, we’d need support for conditionals, which means the “annotations” may 
> need to support arbitrary code. Is it simply “find me all messages with votes 
> on proposals”? That seems much more possible, and may even be largely 
> automatable.
> 
> Gaelan

The goal is a calculator that can work out the correct state of the game for 
certain kinds of values. I have no desire to try to capture all of Agora in 
code: it’s impossible, and as I’ve said in the past, Agora’s prose nature is 
part of its appeal to me. Instead, I want to streamline my offices, and maybe 
help others streamline theirs, by providing a tool with well-defined properties 
that can be applied to the problems posed by those offices while being flexible 
enough to handle some portion of future needs as well.

I suspect it’ll need some variety of condition, but it’ll also likely need 
active curation as the “correct” annotation for a message may change due to a 
CFJ, or due to better understanding of the consequences of schema choices, or 
due to evolution of the software.

“Find me all the messages with votes on proposals” is a good example use case. 
For me, it’s “store data that lets me generate the weekly reports for surveyor 
and secretary mechanically.” And “keep me interested and help me practice my 
skills as a developer."

-o




signature.asc
Description: Message signed with OpenPGP


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Owen Jacobson

> On Sep 28, 2017, at 3:55 PM, Kerim Aydin  wrote:
> 
> 
> 
> You have just reminded me of my (real world) thesis.  What wasn't in Excel/VB 
> was
> in Perl.  *shudder*.

The core parts of perldoc are still, in my view, the sine qua non of good 
developer documentation. They’re almost exactly the right balance of normative 
specifications of the language and library and informative commentary on the 
use and implementation considerations.

For example, consider perldoc perlmod: https://perldoc.perl.org/perlmod.html 


It’s something I aspire to when writing docs in any language.

-o



signature.asc
Description: Message signed with OpenPGP


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Gaelan Steele
I’m kind of curious what the eventual goal here is. Are we trying to build 
something with sufficient detail that the gamestate could be reconstructed? If 
so, we’d need support for conditionals, which means the “annotations” may need 
to support arbitrary code. Is it simply “find me all messages with votes on 
proposals”? That seems much more possible, and may even be largely automatable.

Gaelan

> On Sep 28, 2017, at 9:44 PM, Owen Jacobson  wrote:
> 
> 
>> On Sep 28, 2017, at 5:52 AM, Publius Scribonius Scholasticus 
>>  wrote:
>> 
>> I would be happy to help you code or annotate, whoever word you are using, 
>> each message.
> 
> Thanks, I’ll probably take you up on that. It’s a daunting job.
> 
> -o
> 
> 



Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Owen Jacobson

> On Sep 28, 2017, at 12:29 PM, Gaelan Steele  wrote:
> 
> [sits in corner with my Ruby-powered ruleset]
> 
> Gaelan

I like Ruby. It and Go pay my rent, and they’re interesting languages.

I just happen to like Python more for this specific use case. (I seriously 
considered writing it in Rust, too.)

However, I’m a big believer in interoperability. The framework I’m using, 
apistar, automatically generates API docs in HTML form, as well as a coreapi 
schema document, for APIs implemented against it. The support for including 
useful prose in those docs is limited, but it’s improving (and I may send the 
apistar author a few pull requests about that myself, too).

The idea is that the archive is an API-first service, accessible by any 
language, so that if it’s useful, any Agoran can write tools against it in 
their languages of choice.

-o



signature.asc
Description: Message signed with OpenPGP


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Owen Jacobson

> On Sep 28, 2017, at 5:52 AM, Publius Scribonius Scholasticus 
>  wrote:
> 
> I would be happy to help you code or annotate, whoever word you are using, 
> each message.

Thanks, I’ll probably take you up on that. It’s a daunting job.

-o




signature.asc
Description: Message signed with OpenPGP


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Publius Scribonius Scholasticus
If I am elected, I would be happy to work with you on developing compatible 
systems.

Publius Scribonius Scholasticus
p.scribonius.scholasti...@gmail.com



> On Sep 28, 2017, at 5:06 PM, Gaelan Steele  wrote:
> 
> I change my assessor vote to [Gaelan, PSS, G]. If I can’t do it myself, at 
> least a common language will make automation easier.
> 
> Gaelan
> 
>> On Sep 28, 2017, at 12:38 PM, Publius Scribonius Scholasticus 
>>  wrote:
>> 
>> I love Ruby. R is my favorite, behind it is Ruby and Python and C and Java 
>> behind them.
>> 
>> Publius Scribonius Scholasticus
>> p.scribonius.scholasti...@gmail.com
>> 
>> 
>> 
>>> On Sep 28, 2017, at 12:29 PM, Gaelan Steele  wrote:
>>> 
>>> [sits in corner with my Ruby-powered ruleset]
>>> 
>>> Gaelan
>>> 
 On Sep 28, 2017, at 6:38 AM, ATMunn .  wrote:
 
 Sounds interesting. I also see that you're using Python, my favorite 
 programming language. Nice.
 
> On Thu, Sep 28, 2017 at 3:28 AM, Owen Jacobson  wrote:
> This is the first stage of an attempt to create an annotation system 
> designed to formalize game state changes by attaching formal descriptions 
> of those changes to documents, represented by email messages. At this 
> time, I plan only to archive messages, but there will be a read element 
> allowing anonymous users to read and enumerate messages from the archive 
> in the near future.
 
 The broader scheme here is this:
 
 1. A client app forwards public messages to the archive. They sit in an 
 “unannotated messages” queue until someone - me, probably - picks them up 
 and annotates them.
 
 2. A user annotates each message with a short formal description of the 
 game-state changes imposed by a message. These annotations are mutable, so 
 mistaken annotations are not a permanent problem, and are versioned so 
 that vandalism can be undone. I haven’t worked out the exact schema for 
 these annotations, yet, but the concept I’m working with is loosely based 
 on the RFC 6902 JSON Patch format, adapted for Agora’s specific needs. For 
 example, an annotation transferring shinies might read, in YAML form for 
 readability:
 
> - op: event
> office: Secretary
> summary: o paid Ørjan 1 sh.
> 
> - op: transfer
> from: /Shinies/Player/o
> to: /Shinies/Player/Ørjan
> delta: 1
 
 Obviously, this is an awkward format, but it has some nice properties that 
 I think make it worth building on. I’m still tweaking the actual format 
 for annotaitons, and it’s likely I’ll add a UI or some variety of terse 
 syntax so that it’s possible to write this kind of simple action in fewer 
 than eight lines.
 
 3. The archive exposes an API that can sum up the annotations, starting 
 from the beginning of time, all the way up to a specific point in time, 
 and then return the computed state of the game plus a list of events by 
 office. My report scripts will become “query this API in a specific way, 
 and feed the resulting data to a template to render it for email.”
 
 The idea is that instead of trying to reduce Agora to a set of formal 
 actions, I instead want to keep the prose forms as the primary documents 
 and allow formal note-taking alongside them. Many of Agora’s state changes 
 are formalizable, and from there, those parts of Agora’s state are 
 computable, so this could take a bunch of load off for computing those 
 parts of the game.
 
 I’ve had some success with a reduced version of this approach for the 
 office of Surveyor. All Surveyor’s reports have been generated by a 
 built-to-purpose Python script that applies the same principles to a set 
 of local YAML files instead of a web API.
 
 -o
 
>> 



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Kerim Aydin


You have just reminded me of my (real world) thesis.  What wasn't in Excel/VB 
was
in Perl.  *shudder*.

On Thu, 28 Sep 2017, Cuddle Beam wrote:
> >not using excel sheet formulas like real pros
> smh
> 
> On Thu, Sep 28, 2017 at 9:49 PM, Kerim Aydin  wrote:
> 
> 
>   On Thu, 28 Sep 2017, Gaelan Steele wrote:
>   > I’ll ty and get one out today. Also, why are there mail headers here?
> 
>   Something on your setting that puts full headers in reply?  That's 
> definitely
>   not in the copy in my Sent folder.
> 
>   And thanks much for the ruleset!
> 
> 
> 
> 
> 
>


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Cuddle Beam
>not using excel sheet formulas like real pros

smh

On Thu, Sep 28, 2017 at 9:49 PM, Kerim Aydin  wrote:

>
>
> On Thu, 28 Sep 2017, Gaelan Steele wrote:
> > I’ll ty and get one out today. Also, why are there mail headers here?
>
> Something on your setting that puts full headers in reply?  That's
> definitely
> not in the copy in my Sent folder.
>
> And thanks much for the ruleset!
>
>
>
>


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Publius Scribonius Scholasticus
I was introduced to it for stats, but now use it for all sorts of things.

Publius Scribonius Scholasticus
p.scribonius.scholasti...@gmail.com



> On Sep 28, 2017, at 3:47 PM, Kerim Aydin  wrote:
> 
> 
> 
> 
> On Thu, 28 Sep 2017, Publius Scribonius Scholasticus wrote:
>> I love Ruby. R is my favorite, behind it is Ruby and Python and C and Java 
>> behind them.
> 
> Yay, another R lover!  Rare outside of the straight stats community now that 
> Python
> is taking over so much.
> 
> I go R, C, Fortran (2003 or later Fortran is actually v. nice, very 
> expressive for matrices.
> Not Fortran 77!)  Still stuck in php for web stuff though.
> 
> 
> 



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Kerim Aydin


On Thu, 28 Sep 2017, Gaelan Steele wrote:
> I’ll ty and get one out today. Also, why are there mail headers here?

Something on your setting that puts full headers in reply?  That's definitely
not in the copy in my Sent folder.

And thanks much for the ruleset!





Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Kerim Aydin



On Thu, 28 Sep 2017, Publius Scribonius Scholasticus wrote:
> I love Ruby. R is my favorite, behind it is Ruby and Python and C and Java 
> behind them.

Yay, another R lover!  Rare outside of the straight stats community now that 
Python
is taking over so much.

I go R, C, Fortran (2003 or later Fortran is actually v. nice, very expressive 
for matrices.  
Not Fortran 77!)  Still stuck in php for web stuff though.





Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Publius Scribonius Scholasticus
I love Ruby. R is my favorite, behind it is Ruby and Python and C and Java 
behind them.

Publius Scribonius Scholasticus
p.scribonius.scholasti...@gmail.com



> On Sep 28, 2017, at 12:29 PM, Gaelan Steele  wrote:
> 
> [sits in corner with my Ruby-powered ruleset]
> 
> Gaelan
> 
> On Sep 28, 2017, at 6:38 AM, ATMunn .  wrote:
> 
>> Sounds interesting. I also see that you're using Python, my favorite 
>> programming language. Nice.
>> 
>> On Thu, Sep 28, 2017 at 3:28 AM, Owen Jacobson  wrote:
>> > This is the first stage of an attempt to create an annotation system 
>> > designed to formalize game state changes by attaching formal descriptions 
>> > of those changes to documents, represented by email messages. At this 
>> > time, I plan only to archive messages, but there will be a read element 
>> > allowing anonymous users to read and enumerate messages from the archive 
>> > in the near future.
>> 
>> The broader scheme here is this:
>> 
>> 1. A client app forwards public messages to the archive. They sit in an 
>> “unannotated messages” queue until someone - me, probably - picks them up 
>> and annotates them.
>> 
>> 2. A user annotates each message with a short formal description of the 
>> game-state changes imposed by a message. These annotations are mutable, so 
>> mistaken annotations are not a permanent problem, and are versioned so that 
>> vandalism can be undone. I haven’t worked out the exact schema for these 
>> annotations, yet, but the concept I’m working with is loosely based on the 
>> RFC 6902 JSON Patch format, adapted for Agora’s specific needs. For example, 
>> an annotation transferring shinies might read, in YAML form for readability:
>> 
>> > - op: event
>> >   office: Secretary
>> >   summary: o paid Ørjan 1 sh.
>> >
>> > - op: transfer
>> >   from: /Shinies/Player/o
>> >   to: /Shinies/Player/Ørjan
>> >   delta: 1
>> 
>> Obviously, this is an awkward format, but it has some nice properties that I 
>> think make it worth building on. I’m still tweaking the actual format for 
>> annotaitons, and it’s likely I’ll add a UI or some variety of terse syntax 
>> so that it’s possible to write this kind of simple action in fewer than 
>> eight lines.
>> 
>> 3. The archive exposes an API that can sum up the annotations, starting from 
>> the beginning of time, all the way up to a specific point in time, and then 
>> return the computed state of the game plus a list of events by office. My 
>> report scripts will become “query this API in a specific way, and feed the 
>> resulting data to a template to render it for email.”
>> 
>> The idea is that instead of trying to reduce Agora to a set of formal 
>> actions, I instead want to keep the prose forms as the primary documents and 
>> allow formal note-taking alongside them. Many of Agora’s state changes are 
>> formalizable, and from there, those parts of Agora’s state are computable, 
>> so this could take a bunch of load off for computing those parts of the game.
>> 
>> I’ve had some success with a reduced version of this approach for the office 
>> of Surveyor. All Surveyor’s reports have been generated by a 
>> built-to-purpose Python script that applies the same principles to a set of 
>> local YAML files instead of a web API.
>> 
>> -o
>> 



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Gaelan Steele
I’ll ty and get one out today. Also, why are there mail headers here?

> On Sep 28, 2017, at 11:01 AM, Kerim Aydin <ke...@u.washington.edu> wrote:
> 
> Return-Path: <agora-discussion-boun...@agoranomic.org>
> Delivered-To: gae...@mail.canishe.com
> Received: from localhost (localhost [127.0.0.1])
>by mail.canishe.com (Postfix) with ESMTP id 0F43041E6B0D
>for <g...@canishe.com>; Thu, 28 Sep 2017 11:02:50 -0700 (PDT)
> X-Virus-Scanned: amavisd-new at mail.canishe.com
> Received: from mail.canishe.com ([127.0.0.1])
>by localhost (mail.canishe.com [127.0.0.1]) (amavisd-new, port 10024)
>with ESMTP id Ag0NhmEU5t4M for <g...@canishe.com>;
>Thu, 28 Sep 2017 11:02:43 -0700 (PDT)
> Received: from vps.qoid.us (unknown [71.19.146.223])
>by mail.canishe.com (Postfix) with SMTP id 8CF5841E6B01
>for <g...@canishe.com>; Thu, 28 Sep 2017 11:02:43 -0700 (PDT)
> Received: (qmail 24208 invoked from network); 28 Sep 2017 18:02:39 -
> Received: from vps.qoid.us (127.0.0.1)
>  by vps.qoid.us with SMTP; 28 Sep 2017 18:02:39 -
> Delivered-To: agn-agora-discuss...@agoranomic.org
> Received: (qmail 24192 invoked from network); 28 Sep 2017 18:02:37 -
> Received: from mxout25.s.uw.edu (140.142.234.175)
> by vps.qoid.us with SMTP; 28 Sep 2017 18:02:37 -
> Received: from smtp.washington.edu (smtp.washington.edu [140.142.234.163])
> by mxout25.s.uw.edu (8.14.4+UW14.03/8.14.4+UW16.03) with ESMTP id
> v8SI10q100
> (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK)
> for <agora-discussion@agoranomic.org>; Thu, 28 Sep 2017 11:01:01 -0700
> X-Auth-Received: from hymn01.u.washington.edu (hymn01.u.washington.edu
> [140.142.9.110]) (authenticated authid=mailadm)
> by smtp.washington.edu (8.14.4+UW14.03/8.14.4+UW16.03) with ESMTP id
> v8SI10Z7003506
> (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
> for <agora-discussion@agoranomic.org>; Thu, 28 Sep 2017 11:01:00 -0700
> X-UW-Orig-Sender: mail...@smtp.washington.edu
> X-Auth-Received: from [161.55.112.117] by hymn01.u.washington.edu via HTTP;
> Thu, 28 Sep 2017 11:01:00 PDT
> Date: Thu, 28 Sep 2017 11:01:00 -0700 (PDT)
> From: Kerim Aydin <ke...@u.washington.edu>
> To: "Agora Nomic discussions (DF)" <agora-discussion@agoranomic.org>
> Subject: Re: DIS: Re: BUS: Archival disclosure
> In-Reply-To: <c4d0141a-06d9-4e82-bd23-7d98ff656...@canishe.com>
> Message-ID: <alpine.lrh.2.01.1709281101001.16...@hymn01.u.washington.edu>
> User-Agent: Web Alpine 2.01 (LRH 1302 2010-07-20)
> MIME-Version: 1.0
> Content-Type: TEXT/PLAIN; charset=US-ASCII
> Content-Transfer-Encoding: 8BIT
> X-PMX-Version: 6.3.3.2656215, Antispam-Engine: 2.7.2.2107409,
> Antispam-Data: 2017.9.28.175115, AntiVirus-Engine: 5.36.0,
> AntiVirus-Data: 2017.5.15.5360003
> X-PMX-Server: mxout25.s.uw.edu
> X-Uwash-Spam: Gauge=, Probability=8%, Report='
> HTML_00_01 0.05, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0,
> BODY_SIZE_1000_LESS 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0,
> BODY_SIZE_500_599 0, BODY_SIZE_7000_LESS 0, DATE_TZ_NA 0, IN_REP_TO 0,
> LEGITIMATE_SIGNS 0, MSG_THREAD 0, NO_CTA_URI_FOUND 0, NO_URI_FOUND 0,
> NO_URI_HTTPS 0, __BOUNCE_CHALLENGE_SUBJ 0, __BOUNCE_NDR_SUBJ_EXEMPT 0, __CT 0,
> __CTE 0, __CT_TEXT_PLAIN 0, __HAS_FROM 0, __HAS_MSGID 0, __IN_REP_TO 0,
> __MIME_TEXT_ONLY 0, __MIME_TEXT_P 0, __MIME_TEXT_P1 0, __MIME_VERSION 0,
> __NO_HTML_TAG_RAW 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __SUBJ_ALPHA_NEGATE 
> 0,
> __TO_MALFORMED_2 0, __TO_NAME 0, __TO_NAME_DIFF_FROM_ACC 0, __TO_REAL_NAMES 0,
> __USER_AGENT 0'
> X-BeenThere: agora-discussion@agoranomic.org
> X-Mailman-Version: 2.1.22
> Precedence: list
> List-Id: "Agora Nomic discussions \(DF\)" 
> List-Unsubscribe: 
> <https://mailman.agoranomic.org/cgi-bin/mailman/options/agora-discussion>, 
> <mailto:agora-discussion-requ...@agoranomic.org?subject=unsubscribe>
> List-Archive: 
> <https://mailman.agoranomic.org/cgi-bin/mailman/private/agora-discussion/>
> List-Post: <mailto:agora-discussion@agoranomic.org>
> List-Help: <mailto:agora-discussion-requ...@agoranomic.org?subject=help>
> List-Subscribe: 
> <https://mailman.agoranomic.org/cgi-bin/mailman/listinfo/agora-discussion>, 
> <mailto:agora-discussion-requ...@agoranomic.org?subject=subscribe>
> Reply-To: "Agora Nomic discussions \(DF\)" <agora-discussion@agoranomic.org>
> Errors-To: agora-discussion-boun...@agoranomic.org
> Sender: "agora-discussion" <agora-discussion-boun...@agoranomic.org>
> 
> 
> 
>> On Thu, 28 Sep 2017, Gaelan Steele wrote:
>> [sits in corner with my Ruby-powered ruleset]
&g

Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Kerim Aydin


On Thu, 28 Sep 2017, Gaelan Steele wrote:
> [sits in corner with my Ruby-powered ruleset]
> 
> Gaelan

Hey Gaelan,

Is there a chance you will get an SLR up in the next day or so before the 
end of the month?  My reason is specific - I was foolish enough in the
Fearmongor proposal to require making a random rule selection from the
plantonic ruleset (rather than from an LR) before the end of the month, 
and in this case the most recent SLR is quite different than current.  I 
can manage it, but if you know you'll get a doc out soon, I'll wait...

-G.






Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Gaelan Steele
[sits in corner with my Ruby-powered ruleset]

Gaelan

> On Sep 28, 2017, at 6:38 AM, ATMunn .  wrote:
> 
> Sounds interesting. I also see that you're using Python, my favorite 
> programming language. Nice.
> 
>> On Thu, Sep 28, 2017 at 3:28 AM, Owen Jacobson  wrote:
>> > This is the first stage of an attempt to create an annotation system 
>> > designed to formalize game state changes by attaching formal descriptions 
>> > of those changes to documents, represented by email messages. At this 
>> > time, I plan only to archive messages, but there will be a read element 
>> > allowing anonymous users to read and enumerate messages from the archive 
>> > in the near future.
>> 
>> The broader scheme here is this:
>> 
>> 1. A client app forwards public messages to the archive. They sit in an 
>> “unannotated messages” queue until someone - me, probably - picks them up 
>> and annotates them.
>> 
>> 2. A user annotates each message with a short formal description of the 
>> game-state changes imposed by a message. These annotations are mutable, so 
>> mistaken annotations are not a permanent problem, and are versioned so that 
>> vandalism can be undone. I haven’t worked out the exact schema for these 
>> annotations, yet, but the concept I’m working with is loosely based on the 
>> RFC 6902 JSON Patch format, adapted for Agora’s specific needs. For example, 
>> an annotation transferring shinies might read, in YAML form for readability:
>> 
>> > - op: event
>> >   office: Secretary
>> >   summary: o paid Ørjan 1 sh.
>> >
>> > - op: transfer
>> >   from: /Shinies/Player/o
>> >   to: /Shinies/Player/Ørjan
>> >   delta: 1
>> 
>> Obviously, this is an awkward format, but it has some nice properties that I 
>> think make it worth building on. I’m still tweaking the actual format for 
>> annotaitons, and it’s likely I’ll add a UI or some variety of terse syntax 
>> so that it’s possible to write this kind of simple action in fewer than 
>> eight lines.
>> 
>> 3. The archive exposes an API that can sum up the annotations, starting from 
>> the beginning of time, all the way up to a specific point in time, and then 
>> return the computed state of the game plus a list of events by office. My 
>> report scripts will become “query this API in a specific way, and feed the 
>> resulting data to a template to render it for email.”
>> 
>> The idea is that instead of trying to reduce Agora to a set of formal 
>> actions, I instead want to keep the prose forms as the primary documents and 
>> allow formal note-taking alongside them. Many of Agora’s state changes are 
>> formalizable, and from there, those parts of Agora’s state are computable, 
>> so this could take a bunch of load off for computing those parts of the game.
>> 
>> I’ve had some success with a reduced version of this approach for the office 
>> of Surveyor. All Surveyor’s reports have been generated by a 
>> built-to-purpose Python script that applies the same principles to a set of 
>> local YAML files instead of a web API.
>> 
>> -o
> 


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread ATMunn .
Sounds interesting. I also see that you're using Python, my favorite
programming language. Nice.

On Thu, Sep 28, 2017 at 3:28 AM, Owen Jacobson  wrote:

> > This is the first stage of an attempt to create an annotation system
> designed to formalize game state changes by attaching formal descriptions
> of those changes to documents, represented by email messages. At this time,
> I plan only to archive messages, but there will be a read element allowing
> anonymous users to read and enumerate messages from the archive in the near
> future.
>
> The broader scheme here is this:
>
> 1. A client app forwards public messages to the archive. They sit in an
> “unannotated messages” queue until someone - me, probably - picks them up
> and annotates them.
>
> 2. A user annotates each message with a short formal description of the
> game-state changes imposed by a message. These annotations are mutable, so
> mistaken annotations are not a permanent problem, and are versioned so that
> vandalism can be undone. I haven’t worked out the exact schema for these
> annotations, yet, but the concept I’m working with is loosely based on the
> RFC 6902 JSON Patch format, adapted for Agora’s specific needs. For
> example, an annotation transferring shinies might read, in YAML form for
> readability:
>
> > - op: event
> >   office: Secretary
> >   summary: o paid Ørjan 1 sh.
> >
> > - op: transfer
> >   from: /Shinies/Player/o
> >   to: /Shinies/Player/Ørjan
> >   delta: 1
>
> Obviously, this is an awkward format, but it has some nice properties that
> I think make it worth building on. I’m still tweaking the actual format for
> annotaitons, and it’s likely I’ll add a UI or some variety of terse syntax
> so that it’s possible to write this kind of simple action in fewer than
> eight lines.
>
> 3. The archive exposes an API that can sum up the annotations, starting
> from the beginning of time, all the way up to a specific point in time, and
> then return the computed state of the game plus a list of events by office.
> My report scripts will become “query this API in a specific way, and feed
> the resulting data to a template to render it for email.”
>
> The idea is that instead of trying to reduce Agora to a set of formal
> actions, I instead want to keep the prose forms as the primary documents
> and allow formal note-taking alongside them. Many of Agora’s state changes
> are formalizable, and from there, those parts of Agora’s state are
> computable, so this could take a bunch of load off for computing those
> parts of the game.
>
> I’ve had some success with a reduced version of this approach for the
> office of Surveyor. All Surveyor’s reports have been generated by a
> built-to-purpose Python script that applies the same principles to a set of
> local YAML files instead of a web API.
>
> -o
>


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Publius Scribonius Scholasticus
I would be happy to help you code or annotate, whoever word you are using, each 
message.

Publius Scribonius Scholasticus
p.scribonius.scholasti...@gmail.com



> On Sep 28, 2017, at 3:28 AM, Owen Jacobson  wrote:
> 
>> This is the first stage of an attempt to create an annotation system 
>> designed to formalize game state changes by attaching formal descriptions of 
>> those changes to documents, represented by email messages. At this time, I 
>> plan only to archive messages, but there will be a read element allowing 
>> anonymous users to read and enumerate messages from the archive in the near 
>> future.
> 
> The broader scheme here is this:
> 
> 1. A client app forwards public messages to the archive. They sit in an 
> “unannotated messages” queue until someone - me, probably - picks them up and 
> annotates them.
> 
> 2. A user annotates each message with a short formal description of the 
> game-state changes imposed by a message. These annotations are mutable, so 
> mistaken annotations are not a permanent problem, and are versioned so that 
> vandalism can be undone. I haven’t worked out the exact schema for these 
> annotations, yet, but the concept I’m working with is loosely based on the 
> RFC 6902 JSON Patch format, adapted for Agora’s specific needs. For example, 
> an annotation transferring shinies might read, in YAML form for readability:
> 
>> - op: event
>>  office: Secretary
>>  summary: o paid Ørjan 1 sh.
>> 
>> - op: transfer
>>  from: /Shinies/Player/o
>>  to: /Shinies/Player/Ørjan
>>  delta: 1
> 
> Obviously, this is an awkward format, but it has some nice properties that I 
> think make it worth building on. I’m still tweaking the actual format for 
> annotaitons, and it’s likely I’ll add a UI or some variety of terse syntax so 
> that it’s possible to write this kind of simple action in fewer than eight 
> lines.
> 
> 3. The archive exposes an API that can sum up the annotations, starting from 
> the beginning of time, all the way up to a specific point in time, and then 
> return the computed state of the game plus a list of events by office. My 
> report scripts will become “query this API in a specific way, and feed the 
> resulting data to a template to render it for email.”
> 
> The idea is that instead of trying to reduce Agora to a set of formal 
> actions, I instead want to keep the prose forms as the primary documents and 
> allow formal note-taking alongside them. Many of Agora’s state changes are 
> formalizable, and from there, those parts of Agora’s state are computable, so 
> this could take a bunch of load off for computing those parts of the game.
> 
> I’ve had some success with a reduced version of this approach for the office 
> of Surveyor. All Surveyor’s reports have been generated by a built-to-purpose 
> Python script that applies the same principles to a set of local YAML files 
> instead of a web API.
> 
> -o



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Owen Jacobson
On Sep 28, 2017, at 4:15 AM, Alex Smith  wrote:

> If you're subscribed to the Agora lists (and I'm pretty sure you are),
> you should also be able to log in to the archive here:
> 

Would you believe, these archives are corrupt according to the more reasonable 
interpretations of the BSD mbox format? I suspect that there may be a very old 
Mailman bug lurking in them.

The agora-business archive contains, in the message

Date: Sun, 24 Nov 2002 00:31:31 +1100 (EST)
From: Steve Gardner 
To: Agora Business 
Message-id: 

a line beginning with the characters ‘From ‘ which is not prefixed with > or 
transformed by any encoding.

I’ll happily consider that my parser may be incorrect, but I’m reasonably sure 
that no BSD mailbox should contain such a line, other than as a message 
delimiter.

It’s not the end of the world, I can easily fix the message in my local copy 
and carry on with life, but: wow.

-o



signature.asc
Description: Message signed with OpenPGP


Re: DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Owen Jacobson

> On Sep 28, 2017, at 4:15 AM, Alex Smith  wrote:
> 
> I recommend doing that sort of bulk download rather than trying to
> piece together archives from current players. (Older messages,
> predating a-b, are another issue and one that may well take some
> Internet-forensics work.)

I’ve done something that I hope is smart, rather than clever, by rigging the 
archive to accept (and retain) multiple “revisions” of the same document. (I 
intend for document revisions and annotation revisions to operate 
independently.) If you submit a second email with the same Message-ID header, 
then either:

* If it’s byte-for-byte identical to the currently-stored version, it’s 
accepted but ignored.
* If it’s not, it creates a new revision, which becomes the current revision of 
that document.

Since the “same email” from different recipients will inevitably vary at least 
by the Received: headers, I _hope_ that the worst that can happen when 
importing emails piecemeal is that the archive will end up with multiple 
revisions of a few messages.

I agree with your advice, nonetheless. No amount of foresight beats ongoing 
thought.

-o



signature.asc
Description: Message signed with OpenPGP


DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Alex Smith
On Thu, 2017-09-28 at 03:05 -0400, Owen Jacobson wrote:
> Hello,
> 
> As part of a project to mechanize some of my reports (and, hopefully,
> others eventually), I will begin archiving public messages to a
> Heroku application in approximately 72 hours, unless someone objects
> before that time. Once I begin archiving, I will retroactively
> archive all public messages I have at my disposal, stretching back
> well over a year; I would also welcome submissions from others who
> have much more substantial archives.

Several archives already exist, at least one of which is public
(; it
doesn't have an easy way to mass-download that I'm aware of). This
means that people are unlikely to object to an additional public
archive.

If you're subscribed to the Agora lists (and I'm pretty sure you are),
you should also be able to log in to the archive here:


This will allow you to bulk-download all the messages that have ever
been sent via a-b (see the "download the full raw archive" link near
the top). Equivalent archives exist for a-o and a-d; edit the URL in
the obvious way. They don't contain the entire history of Agora, as we
haven't always used the lists in question, but they certainly contain a
large portion.

I recommend doing that sort of bulk download rather than trying to
piece together archives from current players. (Older messages,
predating a-b, are another issue and one that may well take some
Internet-forensics work.)

-- 
ais523


DIS: Re: BUS: Archival disclosure

2017-09-28 Thread Owen Jacobson
> This is the first stage of an attempt to create an annotation system designed 
> to formalize game state changes by attaching formal descriptions of those 
> changes to documents, represented by email messages. At this time, I plan 
> only to archive messages, but there will be a read element allowing anonymous 
> users to read and enumerate messages from the archive in the near future.

The broader scheme here is this:

1. A client app forwards public messages to the archive. They sit in an 
“unannotated messages” queue until someone - me, probably - picks them up and 
annotates them.

2. A user annotates each message with a short formal description of the 
game-state changes imposed by a message. These annotations are mutable, so 
mistaken annotations are not a permanent problem, and are versioned so that 
vandalism can be undone. I haven’t worked out the exact schema for these 
annotations, yet, but the concept I’m working with is loosely based on the RFC 
6902 JSON Patch format, adapted for Agora’s specific needs. For example, an 
annotation transferring shinies might read, in YAML form for readability:

> - op: event
>   office: Secretary
>   summary: o paid Ørjan 1 sh.
> 
> - op: transfer
>   from: /Shinies/Player/o
>   to: /Shinies/Player/Ørjan
>   delta: 1

Obviously, this is an awkward format, but it has some nice properties that I 
think make it worth building on. I’m still tweaking the actual format for 
annotaitons, and it’s likely I’ll add a UI or some variety of terse syntax so 
that it’s possible to write this kind of simple action in fewer than eight 
lines.

3. The archive exposes an API that can sum up the annotations, starting from 
the beginning of time, all the way up to a specific point in time, and then 
return the computed state of the game plus a list of events by office. My 
report scripts will become “query this API in a specific way, and feed the 
resulting data to a template to render it for email.”

The idea is that instead of trying to reduce Agora to a set of formal actions, 
I instead want to keep the prose forms as the primary documents and allow 
formal note-taking alongside them. Many of Agora’s state changes are 
formalizable, and from there, those parts of Agora’s state are computable, so 
this could take a bunch of load off for computing those parts of the game.

I’ve had some success with a reduced version of this approach for the office of 
Surveyor. All Surveyor’s reports have been generated by a built-to-purpose 
Python script that applies the same principles to a set of local YAML files 
instead of a web API.

-o


signature.asc
Description: Message signed with OpenPGP