sheet.git
2 years agoword/edit: fix (vertical) scale with different aspect ratios
Mischa POSLAWSKY [Sat, 22 Jan 2022 20:34:45 +0000 (21:34 +0100)]
word/edit: fix (vertical) scale with different aspect ratios

2 years agoword/edit: image container only needed for source
Mischa POSLAWSKY [Wed, 19 Jan 2022 19:35:36 +0000 (20:35 +0100)]
word/edit: image container only needed for source

2 years agounicode: mathematical hebrew symbols like greek a-b
Mischa POSLAWSKY [Mon, 17 Jan 2022 17:15:59 +0000 (18:15 +0100)]
unicode: mathematical hebrew symbols like greek a-b

2 years agounicode: colour blocks row of hues in unicode 12.0
Mischa POSLAWSKY [Mon, 17 Jan 2022 17:15:50 +0000 (18:15 +0100)]
unicode: colour blocks row of hues in unicode 12.0

2 years agounicode: one set of barb arrows from unicode 7.0
Mischa POSLAWSKY [Mon, 17 Jan 2022 17:13:24 +0000 (18:13 +0100)]
unicode: one set of barb arrows from unicode 7.0

Replace old private use variants by "modern" codepoints.  Limit to one
representative from Arrows-C for now.

2 years agounicode: circled playstation control symbols
Mischa POSLAWSKY [Mon, 17 Jan 2022 17:11:18 +0000 (18:11 +0100)]
unicode: circled playstation control symbols

Variant set completed in Unicode 11.0 with limited font support.

2 years agounicode: precomposed alchemical symbols for elements
Mischa POSLAWSKY [Mon, 17 Jan 2022 17:09:04 +0000 (18:09 +0100)]
unicode: precomposed alchemical symbols for elements

Semantic glyphs have been available since Unicode version 6.0 (2010)
so about time to replace these visual approximations.

2 years agocharset: map classic ti-8x calculators
Mischa POSLAWSKY [Sat, 8 Jan 2022 05:37:06 +0000 (06:37 +0100)]
charset: map classic ti-8x calculators

Closest unicode representations afaict, based on http://shiar.nl/calc/z80
images and guesses from manuals and emulators for unclear semantics.

2 years agocharset: legacy map ansel (and extensions)
Mischa POSLAWSKY [Sat, 8 Jan 2022 04:00:39 +0000 (05:00 +0100)]
charset: legacy map ansel (and extensions)

Reference: Wikipedia, <https://www.gedsite.com/en/character-encoding.htm>

2 years agocharset: compare unknown glyphs in custom tables
Mischa POSLAWSKY [Wed, 29 Dec 2021 18:35:36 +0000 (19:35 +0100)]
charset: compare unknown glyphs in custom tables

Ignore missing classes in Perl v5.28 for Unicode v13.0 legacy computing
symbols, while keeping unassigned code points in unicode blocks (various
gaps in Greek overview).

2 years agocharset: skip empty petscii rows
Mischa POSLAWSKY [Wed, 29 Dec 2021 18:28:12 +0000 (19:28 +0100)]
charset: skip empty petscii rows

Fix startpoint offset.

2 years agocharset: fix unicode name in cell title
Mischa POSLAWSKY [Wed, 29 Dec 2021 18:05:59 +0000 (19:05 +0100)]
charset: fix unicode name in cell title

Broken in commit v1.11-65-g57d7837d68 (2019-07-03)
[charset: silence warning of empty cell arguments].

2 years agocharset: legacy encodings petscii, atascii, msx, zx-spectrum
Mischa POSLAWSKY [Tue, 28 Dec 2021 15:24:38 +0000 (16:24 +0100)]
charset: legacy encodings petscii, atascii, msx, zx-spectrum

Sources now represented by unicode 13.0 legacy computing symbols.
Copied from Wikipedia.

2 years agoword/edit: separate consecutive input fields
Mischa POSLAWSKY [Wed, 12 Jan 2022 15:20:58 +0000 (16:20 +0100)]
word/edit: separate consecutive input fields

Spacing between multiple elements within each row.

2 years agoword/quiz: report table to save user actions
Mischa POSLAWSKY [Tue, 11 Jan 2022 05:53:54 +0000 (06:53 +0100)]
word/quiz: report table to save user actions

Setup basic logging system to gather usage events serverside for debugging
and hopefully difficulty analysis later on.  Initially always enabled while
in private testing.

2 years agoword/edit: track touch events in crop area
Mischa POSLAWSKY [Tue, 11 Jan 2022 01:01:31 +0000 (02:01 +0100)]
word/edit: track touch events in crop area

Reimplement mobile support lost with croppie.

2 years agoword/edit: custom crop interface superior to croppie
Mischa POSLAWSKY [Mon, 10 Jan 2022 16:13:17 +0000 (17:13 +0100)]
word/edit: custom crop interface superior to croppie

Some minimal js and absolute positioning can replace v1.12-226-gca5f2bee8e
(2022-02-07) [word/edit: croppie js thumbnail selection interface]
to exact demands, without rounding errors and restricted zoom control.

2 years agoword/edit: search button toggles empty input
Mischa POSLAWSKY [Thu, 6 Jan 2022 18:23:29 +0000 (19:23 +0100)]
word/edit: search button toggles empty input

Minimal javascript to make hiding work as expected.

2 years agoword/edit: search input form in hierarchy navigation
Mischa POSLAWSKY [Thu, 6 Jan 2022 18:21:39 +0000 (19:21 +0100)]
word/edit: search input form in hierarchy navigation

Styling to move it to top, and hide input until focused.

2 years agoword/edit: croppie js thumbnail selection interface
Mischa POSLAWSKY [Wed, 5 Jan 2022 00:36:16 +0000 (01:36 +0100)]
word/edit: croppie js thumbnail selection interface

Replace the unintuitive coordinate helper by a free (mit) external library
(~9kB compressed) to select and preview an image crop window.

Reference: <https://github.com/Foliotek/Croppie>

2 years agoword/edit: crop coordinates separate from convert parameters
Mischa POSLAWSKY [Wed, 5 Jan 2022 00:04:53 +0000 (01:04 +0100)]
word/edit: crop coordinates separate from convert parameters

Move -area value into a distinct image column crop32:

UPDATE word SET image = jsonb_insert(
image #- '{convert,0}' #- '{convert,0}',
'{crop32}', image->'convert'->1
)
WHERE image->'convert'->>0 = '-area';

UPDATE word SET image = jsonb_insert(
image #- '{convert,2}' #- '{convert,2}',
'{crop32}', image->'convert'->3
)
WHERE image->'convert'->>2 = '-area'
AND image->'convert'->>0 = '-gravity';

Remaining usage may be influenced by preceding options and need manual
inspection.

2 years agoword/edit: sub signatures in ImagePrep methods
Mischa POSLAWSKY [Mon, 3 Jan 2022 04:16:33 +0000 (05:16 +0100)]
word/edit: sub signatures in ImagePrep methods

2 years agoword: change directory name of 3:2 thumbnails
Mischa POSLAWSKY [Mon, 3 Jan 2022 04:05:43 +0000 (05:05 +0100)]
word: change directory name of 3:2 thumbnails

Specific to convert options (identified by resulting shape), not language.

2 years agoword/edit: decrease webp image quality to 40%
Mischa POSLAWSKY [Mon, 3 Jan 2022 04:55:10 +0000 (05:55 +0100)]
word/edit: decrease webp image quality to 40%

Reduce average size from 24kB to 18kB with the same increased resolution,
more comparable to 11kB JPEGs.

2 years agoword/edit: method generate() to create thumbnail variants
Mischa POSLAWSKY [Mon, 3 Jan 2022 04:04:12 +0000 (05:04 +0100)]
word/edit: method generate() to create thumbnail variants

2 years agoword/edit: remap/rename priority levels
Mischa POSLAWSKY [Sun, 2 Jan 2022 00:00:51 +0000 (01:00 +0100)]
word/edit: remap/rename priority levels

Insert additional levels to distinguish within animal groups, such as
recent mapping of different species with various levels of notoriety.
Splits priority 2 and 3 into two options each:

UPDATE word SET prio = prio + 1 WHERE prio > 2;

0 essential   → essential   : core terms and categorisation
1 basic       → ubiquitous  : beginner level words
2 common      → basic       : internationally known
              → common      : expected, readily recognisable
3 distinctive → distinctive : native names, popular genus
4 optional    → specialised : significant species in field
5 invisible   → rare        : expert distinction or knowledge
                invisible   : placeholder group, ignored

For future listings of people, it would map to Brian Buckley's hierarchy
of fame <https://briandbuckley.com/2017/08/07/a-hierarchy-of-fame/>:

1 = l8 Incredulity (Einstein, Shakespeare, Jesus, Batman)
2 = l7 Reassessment− (Joan of Arc, Bill Gates, Moses, Vader)
3 = l6 Hiccup− (Newton, Jobs, Lennon, Lancelot, Jabba)
4 = l5 Ambivalence (Elon Musk, Carl Sagan, Lovecraft, Boba Fett)
5 = l4 Hiccup+ (Randall Munroe, Shigeru Miyamoto, Sylvia Plath, Mothma)
6 = l3 Reassessment+ (Douglas Hofstadter, Carl Linnaeus, Kosh)
7 = l2 Explanation (notable not famous: Lu Xun, Jane Espenson, Sim Aloo)

2 years agoword/quiz: category selection from location hash
Mischa POSLAWSKY [Thu, 30 Dec 2021 07:14:29 +0000 (08:14 +0100)]
word/quiz: category selection from location hash

2 years agoword/memory: manual grid size override option
Mischa POSLAWSKY [Fri, 31 Dec 2021 13:35:54 +0000 (14:35 +0100)]
word/memory: manual grid size override option

Temporary workaround for unsupported aspect ratio and custom amounts.

2 years agoword/edit: ignore missing binomial name in wp download
Mischa POSLAWSKY [Fri, 31 Dec 2021 04:02:19 +0000 (05:02 +0100)]
word/edit: ignore missing binomial name in wp download

2 years agoword/memory: pick cards to fit grid dimensions
Mischa POSLAWSKY [Thu, 30 Dec 2021 07:05:35 +0000 (08:05 +0100)]
word/memory: pick cards to fit grid dimensions

2 years agoword/multichoice: stop when answers run out
Mischa POSLAWSKY [Thu, 30 Dec 2021 07:04:53 +0000 (08:04 +0100)]
word/multichoice: stop when answers run out

2 years agoword/multichoice: skip imageless (unanswerable) questions
Mischa POSLAWSKY [Thu, 30 Dec 2021 02:41:30 +0000 (03:41 +0100)]
word/multichoice: skip imageless (unanswerable) questions

2 years agoword/memory: celebration pause after each rotation
Mischa POSLAWSKY [Thu, 30 Dec 2021 07:04:05 +0000 (08:04 +0100)]
word/memory: celebration pause after each rotation

Normal visibility for 2 seconds.

2 years agoword/memory: mirrored duplication of unpaired images
Mischa POSLAWSKY [Thu, 30 Dec 2021 06:20:31 +0000 (07:20 +0100)]
word/memory: mirrored duplication of unpaired images

More typical gameplay operating on normal selections, but still distinguish
matches for added difficulty.

2 years agoword/quiz: filter preset category and empty subcategories
Mischa POSLAWSKY [Thu, 30 Dec 2021 04:55:21 +0000 (05:55 +0100)]
word/quiz: filter preset category and empty subcategories

Calculate category tree from references added in the previous commit.
Configure preset.cat to test.

2 years agoword: language includes for general use
Mischa POSLAWSKY [Thu, 30 Dec 2021 02:31:41 +0000 (03:31 +0100)]
word: language includes for general use

Reorder translation columns and add (possibly foreign) category references
as stable interface for quizzes.  Exceptional category index format for .en
English moved to extensionless include.

2 years agoword/quiz: preset configuration filters level
Mischa POSLAWSKY [Thu, 30 Dec 2021 00:40:43 +0000 (01:40 +0100)]
word/quiz: preset configuration filters level

Manual option preset.cat to test difficulty selection.

2 years agoword/wijzer: answers below image in vertical orientation
Mischa POSLAWSKY [Thu, 30 Dec 2021 00:40:13 +0000 (01:40 +0100)]
word/wijzer: answers below image in vertical orientation

2 years agoword/wijzer: quiz based on Per Seconde Wijzer
Mischa POSLAWSKY [Mon, 27 Dec 2021 02:02:38 +0000 (03:02 +0100)]
word/wijzer: quiz based on Per Seconde Wijzer

2 years agoword/quiz: fisher-yates shuffle algorithm
Mischa POSLAWSKY [Wed, 29 Dec 2021 05:04:34 +0000 (06:04 +0100)]
word/quiz: fisher-yates shuffle algorithm

Fixes very bad randomisation in some browsers.

Reference: <https://javascript.info/array-methods#shuffle-an-array>

2 years agoword/quiz: common js function to shuffle arrays
Mischa POSLAWSKY [Wed, 29 Dec 2021 05:00:24 +0000 (06:00 +0100)]
word/quiz: common js function to shuffle arrays

2 years agoword/quiz: common base class for all subpages
Mischa POSLAWSKY [Thu, 30 Dec 2021 04:57:50 +0000 (05:57 +0100)]
word/quiz: common base class for all subpages

Only json loading from multichoice to start with.

2 years agoword/quiz: rename initial subpage to multichoice
Mischa POSLAWSKY [Thu, 30 Dec 2021 04:54:04 +0000 (05:54 +0100)]
word/quiz: rename initial subpage to multichoice

Free the generic name since most pages will be quizzes.

2 years agoword: ignore non-numeric selection arguments
Mischa POSLAWSKY [Mon, 27 Dec 2021 00:00:54 +0000 (01:00 +0100)]
word: ignore non-numeric selection arguments

2 years agoword: webp images at double resolution
Mischa POSLAWSKY [Wed, 29 Dec 2021 04:23:31 +0000 (05:23 +0100)]
word: webp images at double resolution

Modern compression format supported by modern Imagemagick and browsers,
efficient enough to allow 600x400 quality (better detail @2x pixel density
or as workaround for upscaled covers and in quizzes, until dedicated
alternatives) at acceptable file sizes ~25kB.

2 years agoword: store data entries as prepared subarrays
Mischa POSLAWSKY [Sun, 26 Dec 2021 20:06:12 +0000 (21:06 +0100)]
word: store data entries as prepared subarrays

Time to split strings is comparable to directly loading structured values.
Considered hashes for scalability with more (optional) columns, but not
worth the cost at this time.

Benchmark loading 1264 rows in perl:
       rate memory size
strings 468/s  52kB 15kB
split  257/s 152kB  "
arrays 221/s 133kB 17kB
hashes 126/s 188kB 27kB

2 years agoword/memory: fullscreen grid of 4x3 or 2x6 cards
Mischa POSLAWSKY [Thu, 23 Dec 2021 02:12:13 +0000 (03:12 +0100)]
word/memory: fullscreen grid of 4x3 or 2x6 cards

2 years agoword/memory: celebration animation on completion
Mischa POSLAWSKY [Thu, 23 Dec 2021 01:27:04 +0000 (02:27 +0100)]
word/memory: celebration animation on completion

2 years agodieren: fill remaining placeholders for paard and hond
Mischa POSLAWSKY [Sat, 11 Dec 2021 12:29:03 +0000 (13:29 +0100)]
dieren: fill remaining placeholders for paard and hond

Replace adjective forms by distinct entities, but also an obscure easter egg
over non-animal turnpaard.

2 years agosource: subdirectory index for tools/
Mischa POSLAWSKY [Wed, 24 Nov 2021 23:58:19 +0000 (00:58 +0100)]
source: subdirectory index for tools/

2 years agosource: highlight preprocessor code like statements
Mischa POSLAWSKY [Wed, 24 Nov 2021 23:51:05 +0000 (00:51 +0100)]
source: highlight preprocessor code like statements

Identify @media parts in css.

2 years agosource: cache syntax highlighted html
Mischa POSLAWSKY [Wed, 24 Nov 2021 23:48:49 +0000 (00:48 +0100)]
source: cache syntax highlighted html

Massive speedup on repeated requests since Text::VimColor is so slow
(but the only readily available option for plp syntax).

2 years agosource: prepare highlighted lines before output
Mischa POSLAWSKY [Wed, 24 Nov 2021 23:45:16 +0000 (00:45 +0100)]
source: prepare highlighted lines before output

Code cleanup for readability and to facilitate upcoming caching.

2 years agobrowser: replace inter-feature links to caniuse.com
Mischa POSLAWSKY [Wed, 17 Nov 2021 01:37:54 +0000 (02:37 +0100)]
browser: replace inter-feature links to caniuse.com

2 years agobrowser: indicate release year in version title
Mischa POSLAWSKY [Mon, 15 Nov 2021 20:28:21 +0000 (21:28 +0100)]
browser: indicate release year in version title

2 years agobrowser: retain prefix of merged agents
Mischa POSLAWSKY [Mon, 15 Nov 2021 20:27:24 +0000 (21:27 +0100)]
browser: retain prefix of merged agents

2 years agobrowser: merge deprecated agents on newer target
Mischa POSLAWSKY [Mon, 15 Nov 2021 19:41:49 +0000 (20:41 +0100)]
browser: merge deprecated agents on newer target

Originally inverted to keep deprecated names, but after this long Edge
should be more familiar than IE.  Special case and_chr to keep shorter
"And." though.

2 years agobrowser: determine development status from version release
Mischa POSLAWSKY [Mon, 15 Nov 2021 19:09:42 +0000 (20:09 +0100)]
browser: determine development status from version release

Instead of assuming special status of last three version columns,
convert version metadata into a lookup hash so it can be used.

2 years agobrowser: store only changed values in version support
Mischa POSLAWSKY [Mon, 15 Nov 2021 18:15:25 +0000 (19:15 +0100)]
browser: store only changed values in version support

Full storage does not scale well, taking over 1.2s to load the current 23MB
perl structure (mostly indentation, minified it's 3MB like the original json).
Simple deduplication reduces this to 2.6MB pp (800kB as json) which takes only
0.2s excluding parsing.

2 years agobrowser: coalesce duplicate agent version in caniuse data
Mischa POSLAWSKY [Mon, 15 Nov 2021 18:12:57 +0000 (19:12 +0100)]
browser: coalesce duplicate agent version in caniuse data

Development version 95 in android is joined with and_chr.

2 years agobrowser: drop unused agent version metadata
Mischa POSLAWSKY [Mon, 15 Nov 2021 18:11:35 +0000 (19:11 +0100)]
browser: drop unused agent version metadata

2 years agobrowser: omit empty values from caniuse data
Mischa POSLAWSKY [Mon, 15 Nov 2021 17:58:01 +0000 (18:58 +0100)]
browser: omit empty values from caniuse data

Currently shaves 460kB off 23MB.

2 years agolatin: capital suetterlin letters on hover
Mischa POSLAWSKY [Mon, 15 Nov 2021 16:52:10 +0000 (17:52 +0100)]
latin: capital suetterlin letters on hover

Show additional divergent forms already available in font.

Restriction on first-letter seems broken in Firefox, but wanted to prevent
all-caps samples.

2 years agolatin: enlarge horizontal domino tiles to letter height
Mischa POSLAWSKY [Mon, 15 Nov 2021 16:51:46 +0000 (17:51 +0100)]
latin: enlarge horizontal domino tiles to letter height

2 years agolatin: alternate tap styling using crossed dashes
Mischa POSLAWSKY [Mon, 15 Nov 2021 16:51:07 +0000 (17:51 +0100)]
latin: alternate tap styling using crossed dashes

2 years agolatin: palm graffiti font placeholder
Mischa POSLAWSKY [Mon, 15 Nov 2021 16:50:43 +0000 (17:50 +0100)]
latin: palm graffiti font placeholder

Downloaded from https://blogfonts.com/graffiti--palm--1.font as preview.

2 years agoword: common language handling in quiz
Mischa POSLAWSKY [Mon, 15 Nov 2021 16:43:40 +0000 (17:43 +0100)]
word: common language handling in quiz

Replace hardcoded nl include by same ?lang result as overview.

2 years agoword/quiz: answer selection styling (hover)
Mischa POSLAWSKY [Mon, 15 Nov 2021 16:42:59 +0000 (17:42 +0100)]
word/quiz: answer selection styling (hover)

2 years agoword: prevent infinite loops on invalid data
Mischa POSLAWSKY [Mon, 1 Nov 2021 23:38:57 +0000 (00:38 +0100)]
word: prevent infinite loops on invalid data

2 years agosc: redirect subpage aliases to preferred canonical names
Mischa POSLAWSKY [Wed, 10 Nov 2021 23:37:52 +0000 (00:37 +0100)]
sc: redirect subpage aliases to preferred canonical names

2 years agosc: display upgrade range of 0 bonus damage
Mischa POSLAWSKY [Wed, 10 Nov 2021 03:15:57 +0000 (04:15 +0100)]
sc: display upgrade range of 0 bonus damage

Fix missing values for Hellbat and Tempest, after initial workaround in
commit v1.11-29-g7813ee51b9 (2018-05-10) [visibility of optional hellbat
bonus damage].

2 years agosc: lotv unit updates to patch 5.0.2 BU
Mischa POSLAWSKY [Wed, 10 Nov 2021 01:27:04 +0000 (02:27 +0100)]
sc: lotv unit updates to patch 5.0.2 BU

Changes copied from Blizzard patch notes.

Retains all earlier values since patch 4.1.4 hidden behind a hardcoded
version variable.

2 years agosc: lower precedence of hp order
Mischa POSLAWSKY [Thu, 28 Oct 2021 00:20:18 +0000 (02:20 +0200)]
sc: lower precedence of hp order

2 years agosc: apply html paging to 404 errors
Mischa POSLAWSKY [Sat, 16 Oct 2021 15:50:38 +0000 (17:50 +0200)]
sc: apply html paging to 404 errors

2 years agositemap: link recently developed pages
Mischa POSLAWSKY [Tue, 9 Nov 2021 03:10:17 +0000 (04:10 +0100)]
sitemap: link recently developed pages

In order: dieren, codec, sc/hots, keyboard, sample, plan.

2 years agobase: group related columns and rows
Mischa POSLAWSKY [Mon, 8 Nov 2021 19:19:33 +0000 (20:19 +0100)]
base: group related columns and rows

Divide about halfway conveniently after decimal, and after every 8-16 rows.

2 years agoindex: link scope in git messages to existing page
Mischa POSLAWSKY [Sun, 7 Nov 2021 04:40:47 +0000 (05:40 +0100)]
index: link scope in git messages to existing page

Assumes prefix matches page names.

2 years agoindex: retrieve git log from cached text include
Mischa POSLAWSKY [Sun, 7 Nov 2021 04:36:31 +0000 (05:36 +0100)]
index: retrieve git log from cached text include

While git is fast, it still results in a ~50ms command for an otherwise
static ~5ms landing page.  Run `make -B UPDATE` as post-commit git hook
(and post-rewrite, and post-checkout) on live checkouts.

2 years agodigraphs: parse recent plan9 character additions
Mischa POSLAWSKY [Sun, 7 Nov 2021 00:41:07 +0000 (01:41 +0100)]
digraphs: parse recent plan9 character additions

Fix syntax warnings for 2020-05-19 change in upstream repository to support
higher-plane unicode references.  Record download rule for future validation.

2 years agocodec: page intro from format data
Mischa POSLAWSKY [Tue, 2 Nov 2021 02:52:55 +0000 (03:52 +0100)]
codec: page intro from format data

2 years agocodec: derive column groups from generation sequence
Mischa POSLAWSKY [Tue, 2 Nov 2021 00:02:43 +0000 (01:02 +0100)]
codec: derive column groups from generation sequence

Not specific to hardcoded image formats.

2 years agocodec: audio type with 5 lossy music formats
Mischa POSLAWSKY [Sat, 30 Oct 2021 02:42:10 +0000 (04:42 +0200)]
codec: audio type with 5 lossy music formats

Some readily available facts and opinions about the most popular audio
codecs AFAIK.

2 years agocodec: page request overrides image type
Mischa POSLAWSKY [Sun, 31 Oct 2021 01:00:48 +0000 (02:00 +0100)]
codec: page request overrides image type

2 years agocodec: constant table column widths
Mischa POSLAWSKY [Fri, 29 Oct 2021 20:28:14 +0000 (22:28 +0200)]
codec: constant table column widths

Styling hack assuming ≤10 similar cells regardless of missing data.

2 years agocodec: netpbm (pnm) format for completeness
Mischa POSLAWSKY [Sun, 31 Oct 2021 00:59:03 +0000 (02:59 +0200)]
codec: netpbm (pnm) format for completeness

Does not compress, but significant for legacy Unix compatibility
and good as lossless baseline.

2 years agocodec: calculate theoretical minimal overhead
Mischa POSLAWSKY [Fri, 29 Oct 2021 18:52:23 +0000 (20:52 +0200)]
codec: calculate theoretical minimal overhead

Optimal sizes of 1x1 black images as researched by Jon Sneyers [1]
with later AVIF data [2] and 2021-10-25 breakthrough for JPEG-XL [3].

An example found for HEIC [4] may not be golfed, but kind of irrelevant
considering the container.  Its 212 byte JPEG-2000 example is larger than a
naive ImageMagick conversion.

[1] https://cloudinary.com/blog/one_pixel_is_worth_three_thousand_words
[2] https://twitter.com/jonsneyers/status/1333037638840967169
[3] https://twitter.com/jonsneyers/status/1452727349405966341
[4] https://github.com/mathiasbynens/small/commit/e05a006dd

2 years agocodec: rate browser support in my biased opinion
Mischa POSLAWSKY [Fri, 29 Oct 2021 18:52:16 +0000 (20:52 +0200)]
codec: rate browser support in my biased opinion

Likely the most important and most subjective (except for jpeg ubiquity).
Of the newer formats currently only webp and avif have been widely adopted.
Personal bonus point for any kind of implementation or compatibility.

2 years agocodec: technical values or details om hover
Mischa POSLAWSKY [Fri, 29 Oct 2021 16:29:00 +0000 (18:29 +0200)]
codec: technical values or details om hover

Explain disputable ratings like royalties, and other optional annotations
to clarify included source values and maybe prevent complaints.

2 years agocodec: append data values to score array
Mischa POSLAWSKY [Fri, 29 Oct 2021 15:24:26 +0000 (17:24 +0200)]
codec: append data values to score array

Store as single entries as they are different representations of the same
results and should not be maintained separately.

2 years agocodec: gif format (best effort comparison)
Mischa POSLAWSKY [Fri, 29 Oct 2021 13:34:18 +0000 (15:34 +0200)]
codec: gif format (best effort comparison)

Should definitely be included as major legacy web format, despite palette
restrictions not present in other competitors.  Colour quantisation can be
graded as quality loss similar to 4:2:0 subsampling.

2 years agocodec: prefer webp for thumbnail fidelity
Mischa POSLAWSKY [Fri, 29 Oct 2021 14:39:35 +0000 (16:39 +0200)]
codec: prefer webp for thumbnail fidelity

Diverge from the original assessment, likely thinking of an even lower
quality level for which jpeg-xl is less suited imho.

2 years agocodec: categorise related features in groups
Mischa POSLAWSKY [Fri, 29 Oct 2021 13:57:29 +0000 (15:57 +0200)]
codec: categorise related features in groups

2 years agocodec: grade numeric results and freeness levels
Mischa POSLAWSKY [Fri, 29 Oct 2021 13:26:59 +0000 (15:26 +0200)]
codec: grade numeric results and freeness levels

2 years agocodec: compare 7 image encoding formats
Mischa POSLAWSKY [Fri, 26 Feb 2021 11:15:03 +0000 (12:15 +0100)]
codec: compare 7 image encoding formats

An initial summary of current technologies following the completion of
JPEG-XL.  Started out with original research, but then encountered an
article by Jon Sneyers with very similar results, so copied that instead:
https://cloudinary.com/blog/time_for_next_gen_codecs_to_dethrone_jpeg

2 years agoplan: publish todo text as html page
Mischa POSLAWSKY [Thu, 28 Oct 2021 00:29:12 +0000 (02:29 +0200)]
plan: publish todo text as html page

Parsing as Markdown results in intended formatting after a single character
escape.

2 years agoword: minify put.js library using uglifyjs
Mischa POSLAWSKY [Mon, 25 Oct 2021 21:04:23 +0000 (23:04 +0200)]
word: minify put.js library using uglifyjs

Reduce download size from 3.4kB compressed to just 1.2kB.
Dependency node-uglify chosen because of Debian availability.

2 years agoword/memory: card game to find matching pairs
Mischa POSLAWSKY [Mon, 25 Oct 2021 20:57:11 +0000 (22:57 +0200)]
word/memory: card game to find matching pairs

Another quiz concept well suited to this image dataset.  Initially populated
with distinct sets of grebes (currently the only untranslated references) to
experiment with variance as a somewhat unique selling point.

2 years agoword/edit: allow unnamed and/or untranslated entries
Mischa POSLAWSKY [Mon, 25 Oct 2021 19:14:25 +0000 (21:14 +0200)]
word/edit: allow unnamed and/or untranslated entries

Alternative variants can be populated without textual distinction, for
example sexual dimorphism without specific terms, identified by category
override alone.

Probably still a good idea to describe eventually, but this is optional
metadata for visual presentations.

2 years agoword/edit: search query ^ to search root categories
Mischa POSLAWSKY [Mon, 25 Oct 2021 14:36:10 +0000 (16:36 +0200)]
word/edit: search query ^ to search root categories

Also fix Unicode conversion for anything else.

2 years agoword/quiz: rewrite javascript object to class
Mischa POSLAWSKY [Wed, 20 Oct 2021 21:35:08 +0000 (23:35 +0200)]
word/quiz: rewrite javascript object to class