utility-function-extractor/packages/webpage-refactor
2022-06-18 14:39:54 -04:00
..
components bug: comparison view no longer an option 2022-06-18 14:30:14 -04:00
data tweaks 2022-06-18 14:18:41 -04:00
lib tweaks 2022-06-18 14:18:41 -04:00
pages fix: import bug 2022-06-18 14:39:54 -04:00
public feat: webpage refactor 2022-06-17 13:44:08 -04:00
styles chore: save progress 2022-06-17 23:55:43 -04:00
netlify.toml feat: webpage refactor 2022-06-17 13:44:08 -04:00
package.json tweaks 2022-06-18 14:18:41 -04:00
postcss.config.js feat: webpage refactor 2022-06-17 13:44:08 -04:00
README.md tweaks 2022-06-18 14:18:41 -04:00
tailwind.config.js feat: webpage refactor 2022-06-17 13:44:08 -04:00
yarn.lock tweaks 2022-06-18 14:18:41 -04:00

About

This repository creates a react webpage that allows to extract a utility function from possibly inconsistent binary comparisons. It presents the users with a series of elements to compare, using merge-sort in the background to cleverly minimize the number of choices needed. Then, it cleverly aggregates them, by taking each element as a reference point in turn, and computing the possible distances from that reference point to all other points, and taking the geometric mean of these distances. This produces a number representing the value of each element, such that the ratios between elements represent the user's preferences: a utility function!

Initially, users could only input numbers, e.g., "A is 3 times better than B". But now, users can also input distributions, using the squiggle syntax, e.g., "A is 1 to 10 times better than B", or "A is mm(normal(1, 10), uniform(0,100)) better than B".

Object structure

The core structure is json array of objects. Only the "name" attribute is required. If there is a "url", it is displayed nicely.

[
    {
        "name": "Peter Parker",
        "someOptionalKey": "...",
        "anotherMoreOptionalKey": "...",
    },
    {
        "name": "Spiderman",
        "someOptionalKey": "...",
        "anotherMoreOptionalKey": "..."
    }
]

Netlify

https://github.com/netlify/netlify-plugin-nextjs/#readme

To do

  • Extract merge, findPath and aggregatePath functionality into different repos
  • Add functionality like names, etc.
  • Send to mongo upon completion
  • Add paths table
  • warn that the paths table is approximate.
  • Push to github
  • Push to netlify
  • Don't allow further comparisons after completion
  • Look back at Amazon thing which has been running