Files
artcraft/TODO.md
T

3.0 KiB

Remaining Tasks

Last Minute Burndown

  • AWS / Cloudfront Hosting

    • Move jungle.horse to cloudfront.
  • In-Memory LRU Cache

  • Better audio samples

    • Multiple "umm" / "uhh" samples
    • Fix words that sound bad
  • User input filtering

    • Strip spaces in frontend.
    • Make sure there's no XSS injection.
    • Maximum # characters (frontend, backend)
    • Maximum # words (backend, ie. number expansion)
      • Configs
    • Remove speed query parameter (for now).
  • Frontend filesize

    • Downscale the animation. Maybe make a sprite sheet?

Super Low Priority

  • Frontend filesize:
    • Progressive loading of the animation (involved).
    • Zepto.js
    • Remove pixi.js dependency

Old Goals

HIGH LEVEL GOALS

  1. Sound better
  2. Handle load
  3. Recoup costs
  4. Look good (UI, speaking capability) - good reflection
  5. Good code

Audio Samples

  • MORE SAMPLES
  • IMPROVED SAMPLES
  • Remove extra space between words (using parsing to insert spacing)
  • No more missing phonemes
    • Real versions of ['AO0', 'AW0', 'AW2', 'AY0', 'EY0', 'OY0', 'UH0'], which were backfilled with fakes.

Scaling

  1. Load test
  2. Read wave files into memory
  3. Multi-server, with nginx as load balancer
  4. Prevent others from calling it
  5. Caching strategy - Caching headers (make sure they work) - Filter strings clientside to boost savings.

Tokenizing

  • Plurals
  • Times (9 p.m. ET)

Parsing

  • (Everything in tokenizing)
  • Decimal numbers
  • Collapse pauses, eg: "Foo,,," -> "Foo (breath)"
  • Numbers that are years (2016)!
  • Twitter hashtags, usernames - conjoined word parsing (difficult)

Synthesis

Cleanup

  • Refactor into a very well-defined "SpeakRequest" with all parameters, including new ones like "is_twitter", "missing_word_mode = slience, record_pop, umm", etc.
  • Remove old query parameters
  • Set default volume

Server

  1. Favicon, .ico and apple icon
  2. robots.txt

Hardening

  1. Reduce API surface
  2. Limit length of input sentences
  3. Rate limiting

Presentation

  • Better frontend UI
  • Testing page (current frontend)

Monetization

  • Can I get sued?
  • Ads
  • Native Apps
    • (I don't have time to learn this.)
    • Contact other developers?
    • PhoneGap? (Blah)

Extra

  • Clientside speed changing
  • Let people type nonsense syllables

Parsing Examples

  • Camel case even outside of hashtags:
    • "Google acquires FameBit", StateOfW, AdaLovelaceDay
  • Time: 7:30pm, 5:30ET, 9pm ET, 8:00 P.M., 8pm ET
  • Hyphenated: 2-party
  • They will get horrible sentences, violently.We have the support.#RepealThe1st
  • #100YearsStrong