A piggy bank of commands, fixes, succinct reviews, some mini articles and technical opinions from a (mostly) Perl developer.

Improve website usability, with Javascript

// You need a certain control to be clicked when you press a certain button? Such codez!

window.addEventListener('keyup', function(event) {

  if (event.keyCode === 27) { // escape

        $('.component---BWa8p').focus().click();

  }

});

Node CRUD basics

Javascript philosophy and execution flow is quite different to Perl:

  • With Perl it's strongly discouraged to wrap an operation in a `try { ... }` block without a `catch { ... }` block following it, because any errors would be hidden and the operation might silently fail.
  • With Javascript and Promises, many operations are automatically wrapped in a `try { ... }` block, and are not even executed if they don't have a `.then()` or a `.catch()` added, so they silently fail!
Knex basics

Basic Node package recommendations

Recommendations for your javascript application:

  • Web framework: express
  • DB abstraction: knex, sequelize, db-migrate
  • DB Migration: knex, db-migrate
  • HTTP client (for external API requests): axios (older apps use superagent, axios has better features)
  • Templating: handlebars
  • Testing: mocha, sinon (mocking), chai (assertions), karma, jasmine, qunit, jest, cypress, storybook, ava
  • Integration testing: puppeteer, playwright, webdriverIO
  • Code Coverage: Istanbul
  • Process management (in production): pm2
  • Linting and code standards: eslint prettier
  • Inline documentation: JSDoc
  • Typescript: https://www.typescriptlang.org/docs/handbook/interfaces.html