This is a feed of tiny memos highlighting the most interesting things I learned recently.
- NextJS App Router renders pages and layouts in parallel (even nested ones)
- LLMs might be more efficient working with TOON instead of JSON
- Prioritized Task Scheduling API unblocks JS event loop (no Safari support)
- Safari is missing requestIdleCallback support for years at this point
- Server-side JS logic using
fetchWeb API is subject to client-side limitations - Playwright provides LLM-based testing agents to improve e2e test coverage
- "Rust-to-JS" serialization can destroy all performance gains from Rust
- Emacs org-mode can be enhanced into a distributed social network
- In CSS
flex-basis: 0cannot shrink item below its minimum content size - In JavaScript errors can be chained with Error.cause (specified in ES2022)
- In JavaScript Array.prototype.with can modify array in an immutable fashion
- HTML defines a
<datalist>tag to hold options for custom UI controls - Using flags as icons in language select widget is a well-known UX anti-pattern
- Web a11y is likely to be negatively impacted by the OpenAI's Atlas browser
- Introducing
X-…HTTP-headers was officially discouraged a decade ago - VS Code's Open JS Debug Terminal is better than
node --inspect … - HTMLInputElement has
valueAsNumberandvalueAsDateproperties - A legal battle to allow unrestricted use of "JavaScript" is being fought
- The usage of "barrel files" can deteriorate Jest test performance
- HTTPS getting its own dedicated DNS Resource Record to tighten encryption
- CPU bugs exist: Pentium FDIV bug is a prominent historical example
- SVG can be inlined into
<img />using data-URI without base64-encoding - Epiphany ("Gnome WEB") browser can be treated as "Safari on Linux"
- Browser event handler can check if previous handler did e.preventDefault()
- In JavaScript Array.prototype.toSorted can sort array without mutating it
- In JavaScript Array.fromAsync can obtain array from sync and async iterables
- SQLite can be a production datatabse (but needs robust replication system)
- React's "New JSX transform" was backported all the way back to v0.14.10
- HTML specs prioritize users above authors, implementors and specifiers
- Github Actions step can have multi-line variables with "here" documents
- According to the WHATWG spec HTML
divs are valid children of thedllist - Promise could be serialized using streams and passed over the network
- CSS Custom Highlight API provides an easier way to do syntax highlighting
- ECMAScript iterator helpers facilitate memory-efficient method chaining
- React Native becomes more universal thanks to the RSC
- "REST" is the most broadly misused term in computer programming history
- Parcel bundler released React Server Component support alpha
-
graphql-codegencan generate `possibleTypes` for fragment cache - Partytown allows running heavy JavaScript in a background thread
- NextJS might need an encryption key to implement closures in Server Actions
- jujutsu is a VCS written in Rust (compatible with git and other backends)
- NextJS's global-error.js boundary is only displayed on prod
-
el.style.cssTextshould be used for assignment toel.style - GitHub supports RegExp search since October 2022
- NextJS does not provide a secure way to use cookies during SSR pass
- HTTP-status 308 to be preferred over HTTP-status 301 in most cases
- webpack RAM consumption can be adjusted via paralellism config
- TypeScript Explorer is invaluable when debugging complex types
- public suffix list determines eTLD which restricts where cookies can be set
- DOMPurify's parse-serialize-parse cycle can lead to XSS
- AST explorer helps with AST (e.g. writing ESLint rules) and not just in JS
- Haskell's mtl helps manage side-effects, but freer-simple is also good
- Haskell's ReadP allows to easily parse strings into abstract trees
- git-way isn't supperior, there are also "patch theory"-based darcs and pijul