Giter Club home page Giter Club logo

humansort's Introduction

humansort

A tool for sorting items by subjective criteria

I have a lot of ideas for future projects, but I also have trouble deciding which one to work on next. I created humansort to help me find out which of my ideas actually hold my interest. But humansort isn't just for lists of ideas โ€” you could use it for anything with a subjective comparator function, like baby names or books.

humansort uses the Elo rating system, which Arpad Elo invented for chess, but which turns out to have lots of applications in competitive games. In a sense, humansort may be viewed as a "competition" among little bits of text. The winners float to the top.

Prerequisites

  • Install Rust
  • For the web interface only:
    • rustup target add wasm32-unknown-unknown
    • cargo install --locked trunk
    • See more detailed docs here

CLI

  1. Create a file with items to sort, one on each line.
  2. Convert it to a humansort file with cargo run -p humansort-cli -- new <name of file>.
  3. Sort interactively with cargo run -p humansort-cli -- sort <name of file>.humansort. During each iteration, press the number key associated with the item you rank highest by your subjective criteria (e.g., highest preference).
  4. After many iterations, exit with Ctrl + C.
  5. Print the sorted list in descending order with cargo run -p humansort-cli -- output <name of file>.humansort.
  6. If you add items to the original list later and want to sort them, add them to humansort with cargo run -p humansort-cli -- merge <name of file> <name of file>.humansort.

Web

  1. cd humansort/humansort-web/
  2. trunk build --release
  3. Serve the contents of humansort/humansort-web/dist/ from a Web server.

humansort's People

Contributors

bmgxyz avatar

Stargazers

Logan Boyd avatar

Watchers

 avatar Kostas Georgiou avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.