Re: DIS: Proto-Contract: Industrial Bank Agora

2009-05-03 Thread Charles Reiss
On 5/2/09 5:23 PM, comex wrote:
 On Sat, May 2, 2009 at 6:54 PM, Charles Reiss woggl...@gmail.com wrote:
   
 Also, I rather dislike
 the bias here towards currencies denominated in large units. How about a
 little less such bias, like:
 
 I thought about having it depending on zm but this system is already
 relatively annoying, as you have to remember what you're already
 deposited this week or risk messing up your transactions.  As the main
 purpose of the diminishing returns is to prevent scams, legitimate
 uses should rarely go below 0.80; so it makes little difference, and
 basing it on zm makes deposits even more of a pain to calculate
 because you have to keep a running total of your deposits so far.  If
 it makes a big difference to you, I might change it.
   
I didn't think my proposal was much more burdensome, since I expected
players to be tracking how much zm they think they got from their
deposits anyways so as not to use zm they don't have. (Or, if they
aren't, to not really care exactly how much they have until they see the
President's report.)

A perhaps simpler approach might be to count deposits of some cheap
assets (say Rate  40, covering the common crops initially) as some
fraction (e.g. a quarter) of a deposit. But this probably doesn't remove
burden substantially.

Also, shouldn't there be a rate for X crops initially?

- woggle



signature.asc
Description: OpenPGP digital signature


Re: DIS: Proto-Contract: Industrial Bank Agora

2009-05-02 Thread Jonatan Kilhamn
2009/5/2 comex com...@gmail.com:
 On Fri, May 1, 2009 at 10:54 PM, Benjamin Caplan
 celestialcognit...@gmail.com wrote:
 comex wrote:
   Repeats:   (a nonnegative integer, or infinity; default 1)
 [...]
 An Offer with zero Repeats is automatically destroyed.
 As was pointed out on IRC, this won't ever happen. Try When an Offer
 with one Repeat is filled, instead of its 'Repeats' field being
 decreased, the Offer is destroyed.

 I changed it from 'positive' to 'nonnegative' so this shouldn't be a problem.

 Note: Please do not cast a vote like ISELL(8 zm - AGAINST)*8, as this
 won't do what you think.
 ISELL(1 zm - AGAINST)*8, however, may be desirable -- so much so, in
 fact, that it might be worth working out a clearer syntax for it.
 Perhaps 8*ISELL(1 zm each - AGAINST).

 True.  I was thinking of that, but the current language forces ISELL
 to be up to the voting limit-- 8*ISELL would sell all your votes eight
 separate times, almost certainly resulting in a breach of contract.  I
 guess I may as well reword it to allow separate vote selling, although
 it's unlikely to occur in practice.

How about ISELL(x zm - AGAINST*x)?
Maybe not possible to sell to more than one person, but it allows for
buying only 4 out of 8 votes if that's all that's needed.

-- 
-Tiger


Re: DIS: Proto-Contract: Industrial Bank Agora

2009-05-02 Thread Alex Smith
On Fri, 2009-05-01 at 20:16 -0400, comex wrote:
 Note: Please do not cast a vote like ISELL(8 zm - AGAINST)*8, as this
 won't do what you think.
For the benefit of players too new to remember it: the last time someone
tried a vote like that, it caused a row lasting almost a month before
anyone figured out what had actually happened; the fact that two
different people had made that sort of vote, and meant different things
by it, wasn't particularly helpful either.

-- 
ais523



Re: DIS: Proto-Contract: Industrial Bank Agora

2009-05-02 Thread Roger Hicks
On Fri, May 1, 2009 at 18:16, comex com...@gmail.com wrote:
 The PBA, RBoA, and both Vote Markets are dead, which has made the
 economy a lot less interesting.  This is a draft for a replacement,
 which allows regular banking, trade offers, and vote selling.  Rates
 are manually set by the President (me) without two objections, and
 would be updated on a regular basis.  To prevent scams, you are only
 allowed to deposit about 10 assets per week before you start getting
 less and less cash; withdrawals are not affected.  Comments and
 suggestions are welcome, and I will most likely create the contract
 proper in a few days.


I think the hyper-inflation of the PBA proved auto-rates are not the
end-all be-all that ehird claimed they were. I like what you have here
though I suggest you charge more for withdraws than deposits,
otherwise the bank will never accumulate any equity (and may likely
lose equity leading to inflation of zm as players work around rate
changes to obtain favorable withdraws).

BobTHJ


Re: DIS: Proto-Contract: Industrial Bank Agora

2009-05-02 Thread Elliott Hird
2009/5/2 Roger Hicks pidge...@gmail.com:
 I think the hyper-inflation of the PBA proved auto-rates are not the
 end-all be-all that ehird claimed they were.

You weren't there for it, so I'll assume you didn't know that the
whole economy stopped and, therefore, since nobody used the bank - duh
- of course it went to pot. If the economy had, say, stayed alive, the
rates would have been more or less fine.


Re: DIS: Proto-Contract: Industrial Bank Agora

2009-05-02 Thread comex
On Fri, May 1, 2009 at 10:31 PM, Elliott Hird
penguinoftheg...@googlemail.com wrote:
 Add auto rates and I'm sold.

I'm explicitly not including auto rates in this.  I actually think the
PBA did pretty well, but my highest priority is preventing scams-- a
bank should be a trustworthy place to invest your assets.  Most normal
transactions are low-volume but scams are very high-volume, and
diminishing returns should significantly slow down the latter without
much affecting the former.  I'm not sure I've set the limit at the
right place, but the rate multipliers can be changed once the IBA has
some real-world experience.  Auto rate systems don't necessarily
enable scams, but your assumption with the PBA was wrong: there was
too much apathy for your expected periodic mini-scams to stabilize the
rates, and I think that applies in general for assumptions about
market forces and whatnot.  So I'm going to go with a manual system
this time, and we'll see what happens!

Second draft, with lots of bugfixes, slightly changed multipliers
(thanks for the advice, BobTHJ), and initial rates at the bottom:

===

I. IBA

This is the Industrial Bank  Agora.  The currency of the IBA is
zorkmids (zm); the recordkeepor of zorkmids is the President.

Any person CAN join this contract by announcement.  Any party to this
contract CAN leave it by announcement, unless e is involved in a
pending Offer.

The President of the IBA is comex.

II. Summary

- You can join the contract by announcement.  Please join before
  attempting to make Offers or vote ISELL-- your only obligations are
  to uphold the terms of Offers you make.

- You can deposit 4 assets per week for the standard rate; further
  deposits give you diminishing returns to prevent scams, but you can
  still get a good price for up to 10.

- You can always withdraw assets for the standard rate.

- You can intend to sell or buy assets, naming a price; this is known
  as an Offer, and other parties can fill the Offer by announcement.

- ISELL works like SELL, but you can vote ISELL on dependent
  actions as well as decisions.

III. Banking

Every asset has a Rate in zorkmids, intially zero.  The President's report
includes a Rate List containing all nonzero Rates.

IV. Withdrawal

A person CAN withdraw an asset in the IBA's possession if e has at
least its Rate in zorkmids; those zorkmids are destroyed in eir
possession and the IBA transfers the asset to em.

V. Deposits

A person CAN deposit an asset by transferring it to the IBA; e then
gains the Effective Rate in zorkmids.

The Effective Rate for a deposit is its Rate, multiplied by a value
depending on the number of previous deposits made in the same week
with the same Executor, and rounded to the nearest integer:

prevrate

0-3 1.00
4-6 0.90
7-9 0.80
10  0.73
11  0.62
12  0.50
13  0.38
14  0.26
15  0.18
16  0.12
17  0.08
18  0.05
19  0.03
20  0.02
21- 0.01

VI. Offers

An Offer is an entity with three fields:
  Selling:   (a nonempty list of assets and/or actions)
  For cost:  (a nonempty list of assets and/or actions)
  Repeats:   (a nonnegative integer, or infinity; default 1)

A person CAN create an Offer by announcement, thus becoming its
offerer.  A person CAN destroy an Offer for which e is the offerer by
announcement.

A party (the filler) CAN fill an Offer by announcement if and only if:
 - the offerer is a party, and
 - the offerer has the assets in the 'Selling' field (if any), and CAN
   perform the actions in that field (if any), and
 - the filler has the assets in the 'For cost' field (if any), and CAN
   perform the actions in that field (if any).

When an Offer is filled,
- the IBA acts on behalf of the offerer to transfer the assets in the
  'Selling' field to the filler, and to take the actions in the
  'Selling' field, and
- the IBA acts on behalf of the filler to transfer the assets in the
  'For cost' field to the offerer, and to take the actions in the 'For
  cost' field, and
- the Offer's 'Repeats' field is decreased by one.

An Offer with zero Repeats is automatically destroyed.

To intend to sell X for Y is to create an Offer with X as 'Selling'
and Y as 'For cost'; to intend to buy X for Y is to create an Offer
with X as 'For cost' and Y as 'Selling'; to intend to sell A*X for Y
each is to create an Offer with X as 'Selling', Y as 'For cost', and A
as 'Repeats'; etc.

Examples:
- I intend to sell a WRV for 8 zm.
- I intend to sell 4 G# Credits for 2 zm each.
- I intend buy a Land for 3 zm.
- I intend to sell a WRV for a Land.

VII. Selling Votes

Voting ISELL(X) on a decision is equivalent to intending to sell a
number of votes equal to your voting limit on that decision for X.

Voting ISELL(X - A*Y) on a decision (A equals one if not specified) is
equivalent to intending to sell A votes on that decision for X, and
then voting A*Y.

Examples:
- ISELL(8 zm)   

Re: DIS: Proto-Contract: Industrial Bank Agora

2009-05-02 Thread Charles Reiss
On 5/2/09 3:09 PM, comex wrote:
 On Fri, May 1, 2009 at 10:31 PM, Elliott Hird
 penguinoftheg...@googlemail.com wrote:
   
 Add auto rates and I'm sold.
 
 I'm explicitly not including auto rates in this.  I actually think the
 PBA did pretty well, but my highest priority is preventing scams-- a
 bank should be a trustworthy place to invest your assets.  Most normal
 transactions are low-volume but scams are very high-volume, and
 diminishing returns should significantly slow down the latter without
 much affecting the former.  I'm not sure I've set the limit at the
 right place, but the rate multipliers can be changed once the IBA has
 some real-world experience.  Auto rate systems don't necessarily
 enable scams, but your assumption with the PBA was wrong: there was
 too much apathy for your expected periodic mini-scams to stabilize the
 rates, and I think that applies in general for assumptions about
 market forces and whatnot.  So I'm going to go with a manual system
 this time, and we'll see what happens!

 Second draft, with lots of bugfixes, slightly changed multipliers
 (thanks for the advice, BobTHJ), and initial rates at the bottom:

 ===

 I. IBA

 This is the Industrial Bank  Agora.  The currency of the IBA is
 zorkmids (zm); the recordkeepor of zorkmids is the President.

 Any person CAN join this contract by announcement.  Any party to this
 contract CAN leave it by announcement, unless e is involved in a
 pending Offer.

 The President of the IBA is comex.

 II. Summary

 - You can join the contract by announcement.  Please join before
   attempting to make Offers or vote ISELL-- your only obligations are
   to uphold the terms of Offers you make.

 - You can deposit 4 assets per week for the standard rate; further
   deposits give you diminishing returns to prevent scams, but you can
   still get a good price for up to 10.

 - You can always withdraw assets for the standard rate.

 - You can intend to sell or buy assets, naming a price; this is known
   as an Offer, and other parties can fill the Offer by announcement.

 - ISELL works like SELL, but you can vote ISELL on dependent
   actions as well as decisions.

 III. Banking

 Every asset has a Rate in zorkmids, intially zero.  The President's report
 includes a Rate List containing all nonzero Rates.

 IV. Withdrawal

 A person CAN withdraw an asset in the IBA's possession if e has at
 least its Rate in zorkmids; those zorkmids are destroyed in eir
 possession and the IBA transfers the asset to em.

 V. Deposits

 A person CAN deposit an asset by transferring it to the IBA; e then
 gains the Effective Rate in zorkmids.

 The Effective Rate for a deposit is its Rate, multiplied by a value
 depending on the number of previous deposits made in the same week
 with the same Executor, and rounded to the nearest integer:

 prevrate

 0-3 1.00
 4-6 0.90
 7-9 0.80
 10  0.73
 11  0.62
 12  0.50
 13  0.38
 14  0.26
 15  0.18
 16  0.12
 17  0.08
 18  0.05
 19  0.03
 20  0.02
 21- 0.01
This needs a ceiling. (If I get infinite currency _X_, I should get a
large but bounded amount of zm within a week.) Also, I rather dislike
the bias here towards currencies denominated in large units. How about a
little less such bias, like:

The Effective Rate for a deposit is its Rate, multiplied by a value
depending on the value (in zorkmids) gained from previous deposits made
in the same week with the same Executor, and rounded to the nearest
integer (breaking ties by rounding to even integers):

floor(prev/100) rate

0-3 1.00
4-6 0.90
7-9 0.80
10  0.73
11  0.62
12  0.50
13  0.38
14  0.26
15  0.18
16  0.12
17  0.08
18  0.05
19  0.03
20  0.02
21-30   0.01
31-40   0.005
41-50   0.003
51-60   0.001
61- 0

[Revised summary here is You can deposit 400zm of assets in a week for
the standard rate; further deposits give you diminishing returns to
prevent scams, but you can still get a good rate for up to 1100zm worth.]

-woggle



signature.asc
Description: OpenPGP digital signature


Re: DIS: Proto-Contract: Industrial Bank Agora

2009-05-02 Thread comex
On Sat, May 2, 2009 at 6:54 PM, Charles Reiss woggl...@gmail.com wrote:
 Also, I rather dislike
 the bias here towards currencies denominated in large units. How about a
 little less such bias, like:

I thought about having it depending on zm but this system is already
relatively annoying, as you have to remember what you're already
deposited this week or risk messing up your transactions.  As the main
purpose of the diminishing returns is to prevent scams, legitimate
uses should rarely go below 0.80; so it makes little difference, and
basing it on zm makes deposits even more of a pain to calculate
because you have to keep a running total of your deposits so far.  If
it makes a big difference to you, I might change it.


Re: DIS: Proto-Contract: Industrial Bank Agora

2009-05-01 Thread Elliott Hird
Add auto rates and I'm sold.

Sent from a sentient banana

On 2009-05-02, comex com...@gmail.com wrote:
 The PBA, RBoA, and both Vote Markets are dead, which has made the
 economy a lot less interesting.  This is a draft for a replacement,
 which allows regular banking, trade offers, and vote selling.  Rates
 are manually set by the President (me) without two objections, and
 would be updated on a regular basis.  To prevent scams, you are only
 allowed to deposit about 10 assets per week before you start getting
 less and less cash; withdrawals are not affected.  Comments and
 suggestions are welcome, and I will most likely create the contract
 proper in a few days.

 ===

 I. IBA

 This is the Industrial Bank  Agora.  The currency of the IBA is
 zorkmids (zm); the recordkeepor of zorkmids is the President.

 Any person CAN join this contract by announcement.  Any party to this
 contract CAN leave it by announcement.

 The President of the IBA is comex.

 II. Banking

 Every asset has a Rate in zorkmids, intially zero.  The President's report
 includes a Rate List containing all nonzero Rates.

 III. Withdrawal

 A person CAN withdraw an asset in the IBA's possession if e has at
 least its Rate in zorkmids; those zorkmids are destroyed in eir
 possession and the IBA transfers the asset to em.

 IV. Deposits

 A person CAN deposit an asset by transferring it to the IBA; e then
 gains the Effective Rate in zorkmids.

 The Effective Rate for a deposit is its Rate, multiplied by a value
 depending on the number of previous deposits made in the same week
 with the same Executor, and rounded to the nearest integer:

 prevrate

 1-6 1.00
 7-9 0.80
 10  0.73
 11  0.62
 12  0.50
 13  0.38
 14  0.26
 15  0.18
 16  0.12
 17  0.08
 18  0.05
 19  0.03
 20  0.02
 21- 0.01

 V. Offers

 An Offer is an entity with three fields:
   Selling:   (a nonempty list of assets and/or actions)
   For cost:  (a nonempty list of assets and/or actions)
   Repeats:   (a nonnegative integer, or infinity; default 1)

 A person CAN create an Offer by announcement, thus becoming its
 offerer.  A person CAN destroy an Offer for which e is the offerer by
 announcement.

 A person (the offeree) CAN fill an Offer by announcement if and only if:
  - the offerer has the assets in the 'Selling' field (if any), and CAN
 perform
the actions in that field (if any), and
  - the offeree has the assets in the 'For cost' field (if any), and CAN
 perform
the actions in that field (if any).

 When an Offer is filled,
 - the IBA acts on behalf of the offerer to transfer the assets in the
   'Selling' field to the offeree, and to take the actions in the
   'Selling' field, and
 - the IBA acts on behalf of the offeree to transfer the assets in the
   'For cost' field to the offerer, and to take the actions in the 'For
   cost' field, and
 - the Offer's 'Repeats' field is decreased by one.

 An Offer with zero Repeats is automatically destroyed.

 To intend to sell X for Y is to create an Offer with X as 'Selling'
 and Y as 'For cost'; to intend to buy X for Y is to create an Offer
 with X as 'For cost' and Y as 'Selling'; to intend to sell A*X for Y
 each is to create an Offer with X as 'Selling', Y as 'For cost', and A
 as 'Repeats'; etc.

 Examples:
 - I intend to sell a WRV for 8 zm.
 - I intend to sell 4 G# Credits for 2 zm each.
 - I intend buy a Land for 3 zm.
 - I intend to sell a WRV for a Land.

 VI. Voting as Action  ISELL

 When a Offer is filled that specifies voting on a certain Agoran
 decision in the 'Selling' or 'For cost' field, the offeree or offerer,
 respectively, retracts all eir votes on that decision and votes as
 specified by the other party a number of times equal to eir voting
 limit on the decision, and SHALL NOT retract those votes.

 Voting ISELL(X) on a decision is equivalent to intending to sell one's
 vote on that decision for X.

 Voting ISELL(X - Y) on a decision is equivalent to intending to sell
 one's vote on that decision for X, and then voting Y.

 Examples:
 - ISELL(8 zm)
 - ISELL(8 zm - AGAINST*8)

 Note: Please do not cast a vote like ISELL(8 zm - AGAINST)*8, as this
 won't do what you think.

 VII. Motions

 A motion is an entity which acts identically to an Agoran decision,
 except that the requirement that the voting period last at least seven
 days is waived, and, by default, the eligible voters are the parties
 to this contract, each eligible voter's voting limit is one, and the
 voting period lasts 72 hours.

 Any party CAN initiate a Motion to Amend, specifying a set of
 amendments to this contract.  For this motion, the adoption index is 2.
 If the option selected on a Motion to Amend is ADOPTED, this contract
 is amended as specified.

 VIII. Changing the Rates

 A Rate List is a list of assets and associated Rates.  To effect a
 Rate List is to set the Rate of each 

Re: DIS: Proto-Contract: Industrial Bank Agora

2009-05-01 Thread Benjamin Caplan
comex wrote:
   Repeats:   (a nonnegative integer, or infinity; default 1)
[...]
 An Offer with zero Repeats is automatically destroyed.
As was pointed out on IRC, this won't ever happen. Try When an Offer
with one Repeat is filled, instead of its 'Repeats' field being
decreased, the Offer is destroyed.

 Note: Please do not cast a vote like ISELL(8 zm - AGAINST)*8, as this
 won't do what you think.
ISELL(1 zm - AGAINST)*8, however, may be desirable -- so much so, in
fact, that it might be worth working out a clearer syntax for it.
Perhaps 8*ISELL(1 zm each - AGAINST).



signature.asc
Description: OpenPGP digital signature


Re: DIS: Proto-Contract: Industrial Bank Agora

2009-05-01 Thread comex
On Fri, May 1, 2009 at 10:54 PM, Benjamin Caplan
celestialcognit...@gmail.com wrote:
 comex wrote:
   Repeats:   (a nonnegative integer, or infinity; default 1)
 [...]
 An Offer with zero Repeats is automatically destroyed.
 As was pointed out on IRC, this won't ever happen. Try When an Offer
 with one Repeat is filled, instead of its 'Repeats' field being
 decreased, the Offer is destroyed.

I changed it from 'positive' to 'nonnegative' so this shouldn't be a problem.

 Note: Please do not cast a vote like ISELL(8 zm - AGAINST)*8, as this
 won't do what you think.
 ISELL(1 zm - AGAINST)*8, however, may be desirable -- so much so, in
 fact, that it might be worth working out a clearer syntax for it.
 Perhaps 8*ISELL(1 zm each - AGAINST).

True.  I was thinking of that, but the current language forces ISELL
to be up to the voting limit-- 8*ISELL would sell all your votes eight
separate times, almost certainly resulting in a breach of contract.  I
guess I may as well reword it to allow separate vote selling, although
it's unlikely to occur in practice.