This page is all first person data; so have many less references. At the point you read this place consult the products current documentation, for recent updates.

Guest lecture on FaunaDB with GraphQL

The service has the same user stories as Heroko with MongoDB and a DB front end, or Magento, or WooCommerce.
It is a commodified tool kit; but this is another “no code solution that you manage by writing code” (FaunaDB API, or graphQL normally). I assume its not written in JS; its not adding more features than normal DB, aside from having the management platform as a required dependency.
Unlike Magento, they claim to be good with technology, using a slow release cycle to supply good/reliable results. This is a service that you rent, not install locally; which is how they make money. They state at present there are no enforced capacity limits. Although it is tidy with operations, they charge per read; so its entirely unsuited for an externalised map/reduce subsystem.
The GUI uses “resolver” as a keyword to register a storproc (basically).
It uses “credential” just like MongoDB does, and as the same permissions model that SQL does. It supports “security triggers”, or events to be processed on a security event.
They claim it is distributed architecture like MongoDB is; but more SQL flavoured in interaction (although 'talk via API' isn't SQL. It has docs which are branded/structured like Stripe docs.


Cypress is an in-browser test library for E2E web app testing. I am not making use of it, as it cannot support MSIE or Safari; for the well-documented reasons for which I need a test tool to support tests in those browsers. As a fairly normal test tool, it supports extensions; and the speaker kept resolving peoples issues by mentioning another plugin. Cypress does modify the stack of the tested code (to be able to see whats happening), so it can't really do performance testing.
Cypress can be used to test things like hovers, and hidden content. It has a mature “retry test” 1 capacity, to manage the widely observed fact that some tests will hit a small deadlock/bad sequencing and sometimes take a lot longer to execute than expected. The presenter claimed in the video that it was possible to “create tests” by using the website as a user (I do not have a clue how automatic creation of assert() would work).
Please read other docs, Cypress seems to have enough of them.


I missed this presentation, due to UX issues. This is like a fast version of Express, with a managed number of middlewares. I do not value really fast middleware; as the slowdown is nearly always the DB (for the type of apps that I write, DB query time is about 80% of E2E execution time ).

I started to ask the presenter questions at the end, as he seemed to be a software engineer, rather than a sales guy. I try not to lead-in questions with my prejudices, as I want to get the other persons opinion; however he seemed to correlate with my understanding. Promises are important to help make code readable; that is all they deliver. As I have written enough code in JS, I don't walk into “callback hell” (I didn't the first time I used CB in JS either, 'cus JS isn't my first programming language).
He says I could link C SO files into a NodeJS process if I need to. I think NodeJS has gotten closer to a normal scripting language.

Other tools

  • As a thing to think about, not a tool, please read 1. This line of reason is why i tried to get away from making REST API a few year ago, as that work seemed about to be automated away.
  • Now have a CMS in NodeJS; called This charges per user!
  • A middleware called Apollo, which is an implementation of GraphQL. Includes a feature like WSDL, for transaction description.
  • A View library called alpineJS, which is smaller than headless/no compiler vue
  • A self-named algorithm visualiser [US locale]
  • There is a sponsor presentation from datadog; which I skipped, as I already know how to data dog (its not hard).
  • There is a sponsor presentation from Frontity; which I skipped.
  • There was a review on several recent JS games, which aren't important to my mostly B2B notes.
  • Azure is a sponsor, but I am not win32 enabled dev.

MuxJS video library

This doc describes things quite well 1. NB: Mux are a sponsor.

This is like angular, but less bureaucracy.
The presenter did a walk through of the nouns he supports; but this content is available as 1; so there isn't any reason to retype it.
He states, as this is just evaluating JS, it can access external objects

Guest lecture on JS architecture

Presenter defines 'architecture'; in the context of quite a few companies are under cash flow pressure due to Covid19 disruption. Describes how job roles (with reduced headcount) are merging to stop companies folding. To maintain cash flow companies could also deliver more things to buy, as a another solution.
The presenter proposes using Monorepos to increase velocity to deliver more faster. In the context of JS, all operations run faster when there is only 1 node_modules directory (statement doesn't apply to other languages/platforms). Outlines two tools “Lerna” and “NX”, which are opensource and getting more features which make them more useful. Being able to treat code repos in the same organisation structure as business units is worth some value. This seems like it will be a better solution in the future, as setting up tooling isn't a business objective, its a process.
He also advertises GraphQL, but supplies a much better 'why use GraphQL?' than the common advert on twitter which is 'a REST API can only talk to 1 DB table, we are sooo much better than that'. The presenter uses GraphQL as a REST framework, with Caching and Message DeDup (good items); stating that this can be put infront of current REST API making FE devs lives faster/easier. As Caching would be per client, I'm not sure how much value it provides compared to Varnish. GraphQL 'auto-coding'/boilerplate is based on Types. They state major sales benefit as same library to link mobile apps and NodeJS based micro-services (or see above DBs middlewares).

Notes on Unicode in JS

I haven't had time to look at this previously in any coordinated fashion.

  • A Unicode is technically a big set of abstract letters/ glyths
  • A code point is a specific implementation inside the Unicode
  • There are planes inside Unicode - subsets, for admin reasons
  • The first Unicode only had 7000 points
  • JS is abit broken with Unicode
  • A wonky JS string hasn't glued the chars together properly; and so has a unexpected value in length
  • A JS string can be decomposed into raw chars with split("")
  • A wonky JS string can be glued together with normalise()
  • There are zeroWidthJoiner chars which do the joining
  • The colour rangein emoji is done with Fitzpatrick uv-light dermatology scale
  • Mathias Bynens is a good blog to read
  • Guess utf-8 is 8 bits for plane def
  • Reference

Announce Vue3

Here, the presenter announced new features in Vue3, which is currently in Beta (so of no value to people making commercial code). They state they are not currently deprecated any older API, even though they think there are some wonky ones.
The presenter described Mixins...(also documented elsewhere); and some normal things about software engineering. Then described Slots (also documented elsewhere), but notes slots are slower.
Thirdly, added a new feature Object composition (which I was already using, but without framework support). They add a new feature ref(), which explicitly builds Perl-like reference to an object (like setState but more generic). Ref() can be nested, but need to be careful with pointer pointers.
She cannot announce a release date for Vue3 not being beta (unfortunately); she states that css-in-components needs to be used judiciously, as if you are using a CSS framework how much CSS do you write?

Project tracking notes on TS

This talk was presented by a MSFT employee. He was mostly talking about policy and vision. Apparently Vue3 is built using TS. Microsoft are strong backers for TS as a) PR for MSFT; b) TS assists MSFT do large projects. TS is changing use of expression features.
He mentions that TS39 are a group of people (not all MSFT employees) and they control path of JS-the-language. TS isn't that committee; but do feed them ideas. He states that although MSFT have a tradition of making compilers, and trying to control markets; this doesn't work NOW for JS. There are several other JS runtimes (flow, heggle, closure script); closed source compilers are now a very hard proposition (e.g. look at Deno)
He mentions jsdocs as a standard (like javadoc, but for JS); which is managed by Nathan Sanders. I use Javadoc in JS, but hadn't looked if there was a JS specific standard.

Notes on Angular

Started with break down of hierarchy in Angular. The presenter announces Angular v10rc is released, I assume written in TS; spoke about warning on type-warnings.
There is a scale of predictable code vs flexible code; Angular has moved across the range of options.

  • features of static types (predictable): clean IDE support, easier to optimise, as everything is defined easier code visualisation
  • features of dynamic types (flexible): lazy loading code (frequently faster exec), fast restart as no recompile

Sample range: idris (biggest types), haskell, rust, c#, java, typescript, go, ruby, javascript (biggest flexibility)
ng1 very loose, ng2 very strict, ng4 abit less strict, ng10 choice of strict
New version has: es5 support flag, common js flag, strict typescript, zero overhead i18n. If there is dynamic generation of static content; try using jamstack 1 and scully 2 3 to move the computation to compile/ deploy time.

Some similar articles in research

Some similar articles in uitools