Install ImageMagick for image conversion:
brew install imagemagick
Install tesseract for OCR:
brew install tesseract --all-languages
Or install without --all-languages
and install them manually as needed.
Install ImageMagick for image conversion:
brew install imagemagick
Install tesseract for OCR:
brew install tesseract --all-languages
Or install without --all-languages
and install them manually as needed.
packages: | |
yum: | |
git: [] | |
gcc: [] | |
make: [] | |
openssl-devel: [] | |
ImageMagick: [] | |
option_settings: | |
- option_name: NODE_ENV |
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.
elem.offsetLeft
, elem.offsetTop
, elem.offsetWidth
, elem.offsetHeight
, elem.offsetParent
'use strict'; | |
const theGlobal = typeof window === 'object' ? window : global; | |
const realPromiseConstructor = theGlobal.Promise; | |
const wrappedPromiseConstructor = function (resolve, reject, progress) { | |
const originalPromiseInstance = new realPromiseConstructor(resolve, reject, progress); | |
// Who called us? Let's store it. |
/** | |
* Minimal demo of parser combinators, possibly as a target for recent | |
* JS web dev graduates to implement as an exercise. | |
* | |
* Huge credit to Hutton, Meijer, and Swierstra for their papers | |
* on the subject. | |
*/ | |
class Parser { |