Skip to content

First Congress

Siddhartha Kasivajhula edited this page Jan 23, 2023 · 21 revisions

The First Congress for Attribution-Based Economics

Jan 14 2023

Adjacent congresses: Previous [None] | Up | Next [None]

Docket

  1. Conduct DIA for Symex
  2. Conduct DIA for Qi

Summary

We went through several steps of DIA for the Symex project and agreed to complete the remaining steps in the process offline. We did not consider the Qi project while in session, and agreed to start doing it asynchronously.

Agenda

The congress met online at 12pm US/Central and followed this agenda (Times are in relation to US/Central time for convenience):

  • 12pm - 12:10pm Reception and Introductions
  • 12:10pm - 12:20pm Orientation
  • 12:20pm - 12:30pm Review Symex prepared labor tree
  • 12:30pm - 12:50pm Symex capital analysis => Capital tree
  • 12:50pm - 1:00pm Review Symex ideas tree + add antecedents
  • 1:00pm - 1:20pm Review Symex prepared labor appraisal
  • 1:20pm - 1:40pm Symex capital appraisal
  • 1:40pm - 2:00pm Symex ideas and antecedents appraisal [deferred]
  • 2:00pm - 2:10pm Recess [not taken]
  • 2:10pm - 2:30pm Symex Pricing and Valuation [deferred]
  • 2:30pm - 2:50pm Qi Preview [deferred]
  • 2:50pm - 3:00pm Reflection and Conclusion

Guiding Inputs

The draft constitution in effect was 93dad02.

The DIA process followed was 5b6fa22 live, and 0789bb9 afterwards.

The labor input for Symex was b905f63

The capital input for Symex was b905f63.

The ideas input for Symex was b905f63.

Resources

Attendees reviewed First Congress Resources prior to the congress.

Proceedings

In light of the learnings (regarding how much time the process would need) from the previous day's DIA "dry run" attended by Ariana, Jair and Sid, we agreed to present and consider the constructed labor tree and appraisal from the dry run rather than start from scratch. We constructed the capital tree and appraisal live, used the ideas tree from the project as is, and annotated with antecedents live. Every stage was discussed and the outcome of discussions agreed-upon by all attendees before proceeding to the next stage.

Agree on Trees

Agreed-upon Labor Tree

  • Symex
    • Functional contributions
      • Core
        • The initial prototype was written using Hydra, Lispy, Paredit.
        • The DSL was designed.
        • The traversal-based features unique to symex were designed and implemented.
      • Language support
        • Clojure
          • Parser support for clojure(script) deref reader macro was added
          • UX was unified across clojure (i.e. clojure, clojurescript, clojurec) modes
          • Support was added for pretty printing in clojure
        • Common Lisp
          • SLY support was added for common lisp
        • Non-lisp
          • There was a suggestion to generalize Symex to work with non-lisp languages by using tree-sitter
          • An early proof-of-concept of using tree-sitter was written.
          • A more complete proof-of-concept using tree-sitter was written.
          • The tree-sitter proof of concept was turned into a full implementation.
      • Interfaces
        • Evil
          • The modal interface was implemented in a more robust way using evil.
          • There was a suggestion for a useful keybinding recipe for interoperating with Evil
          • Symex's override of evil's : keybinding was removed
          • Support was added for evil's . (dot/repeat) operator in symex state
        • Visual aids
          • A lightweight UI feedback overlay was added for tree-sitter
          • The overlay was generalized for use in lisp
    • Support
      • Documentation
        • Basic docs were written.
        • There was a suggestion to add "demo gifs" / an animated guide
        • The animated guide was created.
        • A typo was fixed in the readme
      • Bug reports
        • Many early issues were reported.
        • A bug was reported in yank/paste with quoted symbols
        • A generic ecosystem/config-related issue with test modules providing features that conflict in the global namespace was reported
        • There was a bug reported in join-lines-backwards
      • Operational excellence
        • The package was named.
        • There was a suggestion to call the package Symex instead of Symex mode.
        • A code review was done and some implementation improvements were suggested.
        • CI workflows including melpazoid were added.
        • A deprecated dash dependency was updated
        • A failing melpazoid config was fixed
        • Dependency on undo-tree was removed
      • Reach out
        • An in-person meetup was hosted in SF.
        • The video from the meetup was edited and posted on youtube

Agreed-upon Capital Tree

  • Symex
    • Platform/core
      • The platform on which Symex is implemented
    • Dev tools
      • A lint and docstring checking package for the Emacs ecosystem
    • Structural editing primitives
      • Lisp structural editing package A
      • Lisp structural editing package B
      • Evil-friendly Lisp structural editing package C
      • A "text object" library to be able to treat symexes as Evil objects
    • UI libraries
      • A menu-driven interface
      • A modal interface library

Agreed-upon Ideas Tree Annotated with Antecedents

  • Symex
    • Structural editing language (DSL) [Vim, Paredit, Lispy, Parinfer, Gremlin, DrRacket parentheses editing, Wraith]
      • custom syntax [Lisp macros, Emacs keybindings]
      • cursor-oriented semantics [Elisp editing primitives, Lispy]
      • primitives
        • symex-oriented motions [Elisp primitives, paredit, Lispy, tree-sitter]
        • symex-oriented transformations [Elisp primitives, paredit, Lispy]
        • symex-oriented computations
    • Modal Interface (MI) [Vim, Evil, Hydra]
      • linguistic interface [Vim, Evil]
      • "indicated noun" design [point-free programming, Qi, APL, Embark]
    • Language-specific runtime
      • Elisp runtime [Emacs]
      • Racket runtime [Racket Mode]
      • Scheme runtime [Geiser Mode]
      • Clojure runtime [CIDER]
      • Common Lisp runtime [SLIME, SLY]
      • Arc runtime [Arc Mode]

Note We agreed live that the antecedents for the "language specific runtime" components would just be the corresponding packages providing that functionality, and the specific packages in the annotations above were added after the fact.

Agree on Appraisal

Agreed-upon Labor Appraisal

  • Symex (100%)
    • Functional contributions (70%)
      • Core (50%)
        • The initial prototype was written using Hydra, Lispy, Paredit. (30%)
        • The DSL was designed. (30%)
        • The traversal-based features unique to symex were designed and implemented. (40%)
      • Language support (30%)
        • Clojure (20%)
          • Parser support for clojure(script) deref reader macro was added (30%)
          • UX was unified across clojure (i.e. clojure, clojurescript, clojurec) modes (40%)
          • Support was added for pretty printing in clojure (30%)
        • Common Lisp (10%)
          • SLY support was added for common lisp (100%)
        • Non-lisp (70%)
          • There was a suggestion to generalize Symex to work with non-lisp languages by using tree-sitter (5%)
          • An early proof-of-concept of using tree-sitter was written. (10%)
          • A more complete proof-of-concept using tree-sitter was written. (20%)
          • The tree-sitter proof of concept was turned into a full implementation. (65%)
      • Interfaces (20%)
        • Evil (85%)
          • The modal interface was implemented in a more robust way using evil. (75%)
          • There was a suggestion for a useful keybinding recipe for interoperating with Evil (3%)
          • Symex's override of evil's : keybinding was removed (2%)
          • Support was added for evil's . (dot/repeat) operator in symex state (20%)
        • Visual aids (15%)
          • A lightweight UI feedback overlay was added for tree-sitter (70%)
          • The overlay was generalized for use in lisp (30%)
    • Support (30%)
      • Documentation (40%)
        • Basic docs were written. (30%)
        • There was a suggestion to add "demo gifs" / an animated guide (10%)
        • The animated guide was created. (60%)
        • A typo was fixed in the readme (0%)
      • Bug reports (15%)
        • Many early issues were reported. (40%)
        • A bug was reported in yank/paste with quoted symbols (20%)
        • A generic ecosystem/config-related issue with test modules providing features that conflict in the global namespace was reported (20%)
        • There was a bug reported in join-lines-backwards (20%)
      • Operational excellence (15%)
        • There was a suggestion to call the package Symex instead of Symex mode. (20%)
        • A code review was done and some implementation improvements were suggested. (40%)
        • CI workflows including melpazoid were added. (23%)
        • A deprecated dash dependency was updated (2%)
        • A failing melpazoid config was fixed (3%)
        • Dependency on undo-tree was removed (5%)
      • Reach out (30%)
        • The package was named. (20%)
        • An in-person meetup was hosted in SF. (40%)
        • The video from the meetup was edited and posted on youtube (40%)

Note: "The package was named" was moved from the "Operational Excellence" category to the "Reach out" category (where it was in the agreed-upon tree).

Agreed-upon Capital Appraisal

  • Symex [100%]
    • Platform/core [30%]
      • The platform on which Symex is implemented [100%]
    • Dev tools [5%]
      • A lint and docstring checking package for the Emacs ecosystem [100%]
    • Structural editing primitives [35%]
      • Lisp structural editing package A [75%]
      • Lisp structural editing package B [20%]
      • Evil-friendly Lisp structural editing package C [2.5%]
      • A "text object" library to be able to treat symexes as Evil objects [2.5%]
    • UI libraries [30%]
      • A menu-driven interface [30%]
      • A modal interface library [70%]

Agreed-upon Ideas and Antecedents Appraisal

Symex ideas + antecedents

Reconcile the Appraisals

This will be added here when it is completed.

Deanonymize and Tally

This will be added here when it is completed.

Reflection

We agreed that all attendees (enumerated in the list below) are attributable an equal share of the DIA attribution (5%, according to the constitution) in the appraised project (i.e. Symex), based on the reasoning that, as one attendee put it, "we are all equally part of the body" of the congress that met this day, even if some were not able to stay for the entire duration.

Learnings

  • We agreed that the DIA process should be done in advance as much as possible, with incremental live discussion stages, as conducting the full process live is infeasible even for a single project (much less two!).
  • As an alternative to the 1-N-N² rule for reconciling appraisals, we discussed the possibility of treating labor as being valuable to users and capital as being valuable to developers, and following that line of thinking to develop alternative weightings or even trees.

Summary of Remaining Items

  • Independent appraisal + shared reconciliation of Ideas and Antecedents tree.
  • Final results of deanonymizing and tallying by contributor to go in the abe/ATTRIBUTIONS.txt file in the repo, once ratified.
  • Agree on Symex "pricing" and valuation, to go in the abe/PRICING.txt and abe/VALUATION.txt files, once ratified.
  • DIA process for Qi, done asynchronously and meeting to discuss as needed.

Attendees

Ariana, Ben, Doris, Hans, Jair, Jake, Sid, Stephen

Clone this wiki locally