Matt Low 8526dcd083 optimize generate()
Before we masked all except the removed cell rows, then unmasked all
rows on every removal attempt.

Now, we mask all except the removed cell rows once each attempt in an
order such that we can simply unmask the last (values - 1) rows to try
the next cell. An unmask/remask cycle is only required when a removal
attempt fails.
2021-03-03 23:15:55 -07:00
2021-03-03 23:15:55 -07:00
2021-02-19 23:55:49 -07:00
2021-02-19 23:55:49 -07:00
2021-02-25 11:30:20 -07:00
2021-02-19 23:55:49 -07:00

BlueBlog API

A GraphQL blogging API.

Features

  • Username/Password JWT based authentication
  • Blog posts and client-side encrypted journal entries
  • Obfuscated IDs via hashids
  • Drafts for both of the above
  • Blog post edit history

Environment Variables:

# The secret used for JWT signatures creation and verification
SECRET=my-super-secret

# So hashids are unique
HASHIDS_SALT=salty

# PostgreSQL connection params
DB_HOST=localhost
DB_NAME=blueblog
DB_USER=blueblog
DB_PASSWORD=password
DB_PORT=5432

# Application startup PostgresSQL connection attempts & retry delay
DB_CONNECT_ATTEMPTS=6
DB_CONNECT_RETRY_DELAY=5

# Service responds at http://localhost:$LISTEN_PORT/graphql
LISTEN_PORT=4000
Description
Generate Sudoku puzzles with arbitrary region sizes and clue counts using Donald Knuth's Algorithm X, exposed as a GraphQL API.
Readme 202 KiB
Languages
TypeScript 96.7%
Dockerfile 1.9%
JavaScript 1.4%