Skip to content

Latest commit

 

History

History
2278 lines (2036 loc) · 296 KB

CHANGELOG.md

File metadata and controls

2278 lines (2036 loc) · 296 KB

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

3.9.0 (2022-05-21)

🐛 Bug Fixes

  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.25.0 (#306) (6c13f7f)

✨ Features

✨ Today I Learned

  • css-box: box viewport height (b025f9b)
  • css-box: min and max box width (7a57735)
  • css-normalize: modern CSS normalize (08406ff)
  • css-object: object fit element (843b5d7)
  • css-prefix: CSS vendor prefix order (e928bcc)
  • css-variables: CSS variables usage (0de291d)
  • css-variables: dark mode CSS variables (a45d393)
  • js-array: powerful reduce method (60debe9)
  • js-debugging: chrome devtool rendering panel (601cacc)
  • js-debugging: chrome devtool rendering panel (f08d430)
  • js-events: implement mobile device gesture events (54c9b3d)
  • js-events: standard wheel UI event (88f9026)
  • js-JamStack: build your own Next.js (b39080c)
  • js-low code: low-code development (8516ffb)
  • js-performance: WebPageTest tool (3df77a7)
  • js-webpack: TSX properties parser webpack plugin (be19baf)
  • js: global execution context (d39b8bb)
  • react-store: atom store pattern (811478f)
  • ts-interface: extend 3rd-party module interface (14b09f1)
  • vim-neovim: NvChad configuration (2246b2a)
  • vim: Nvchad lspconfig (d92e773)
  • web-library: collaborative rich text editor (ff51321)
  • web-library: components library (463ce0b)
  • web-library: HTTP security headers library (2c44385)
  • web-library: LaTeX math web component (6c17725)
  • web-library: math components (a630d64)
  • web-library: scroll effect library (aee7a34)
  • web-library: short links expander library (0c00c7f)
  • web-library: TSX React components properties parser (0926313)
  • web-security: security HTTP headers (a675259)

3.8.2 (2022-05-18)

🐛 Bug Fixes

  • baseUrl: change baseUrl based on CI information (731be95)
  • deps: update dependencies (non-major) (#291) (65f2214)
  • deps: update dependencies (non-major) (#295) (61547af)

⚡ Performance

  • assets-images: [ImgBot] optimize images (#302) (2630a04)
  • assets-images: [ImgBot] optimize images (#305) (d5da2ff)
  • assets: [ImgBot] optimize images (#290) (746e033)

✨ Today I Learned

  • a11y: required context role and valid aria attribute (23f165e)
  • css-color: CSS color module level 5 (46b4656)
  • css-design: design better language selector (acd864f)
  • css-design: navigation design (3543704)
  • css-design: push notification design guide (5688e48)
  • css-design: vertical rhythm (7b53efd)
  • css-fonts: font-display for fonts fallback (fd4bc1f)
  • css-fonts: unicode-range for [@font-face](https://github.com/font-face) (31c0e41)
  • css-performance: CSS loading performance (56cee1e)
  • css-performance: CSS selectors performance (33500c2)
  • css-performance: put Critical CSS in <head> to avoid re-rendering (74b5b9f)
  • css-selector: :is selector priority (93aee31)
  • css-selectors: :has selector (458a099)
  • css-selectors: focusable selectors (9239d33)
  • css-tailwind: tailwind.css configuration (4816302)
  • css-text: text wrapping and word breaking (782ea6d)
  • css: carousel design pattern (c3c2b86)
  • css: CSS color value reference (923ecca)
  • css: inline block model (489887c)
  • css: mouse-only focus CSS styles (37017ae)
  • css: put critical CSS in <head> to avoid un-styled content (b6ff018)
  • css: search light effect (e3417e2)
  • css: state of CSS 2022 (0328177)
  • design patterns: design patterns in jQuery (9fa720d)
  • design patterns: frameworks paradigms patterns (b287f3a)
  • design patterns: implement singleton pattern using TypeScript (53531b7)
  • design patterns: IoC and DI pattern (3c20163)
  • html-a11y: a11y form field (fd7c123)
  • html-a11y: a11y tips (f76544c)
  • js-abort: abort controller API (cfc239b)
  • js-array: Array.from function signature (515d01d)
  • js-array: Array.from mapper (0dc3c30)
  • js-array: reduceRight for array (3d1e64d)
  • js-array: Typed Array usage (600e039)
  • js-array: Typed Array use case (58c2db5)
  • js-array: array like interface (7213525)
  • js-array: array methods (580accf)
  • js-array: arrays difference and intersection (aed83a2)
  • js-array: ES2022 array at method (481d41a)
  • js-array: implement groupBy via reduce (3462e76)
  • js-array: recursively flatten array (8802bb6)
  • js-array: remove redundant code examples (bfdbc4b)
  • js-async: callback style asynchronous programming cons (e9f87d7)
  • js-async: prefer async/await not generator control flow (203fc57)
  • js-bigint: bigint usage (a670b2a)
  • js-boolean: convert values to boolean (095e512)
  • js-browser: browser process architecture (5983c80)
  • js-browser: browser thread pipeline (ebf1235)
  • js-browser: renderer process (dd9f21d)
  • js-canvas: draw recursive tree (8bab477)
  • js-class: anonymous class expression (6f48177)
  • js-class: class constructor (21453b5)
  • js-class: class declaration create temporal dead zone (43f95b1)
  • js-class: class inheritance (c01fa43)
  • js-class: class private and public fields (273d6d8)
  • js-class: class private member (3c7e406)
  • js-class: class private member never clash (79c86e2)
  • js-class: class private member store place (d377939)
  • js-class: class properties (bd3b64c)
  • js-class: class prototype chain (60911a7)
  • js-class: throw TypeError for constructing abstract class (9156a6c)
  • js-collection: WeakMap and WeakSet use case (0ebc3f2)
  • js-comparison: loose equality comparison algorithm (0a65939)
  • js-Date: getHours and getSeconds (bdd91d0)
  • js-Date: Date and Temporal API cheet sheet (e2de30c)
  • js-debug: logging setup (ab9f4b9)
  • js-descriptor: Object.getOwnPropertyDescriptor usage (7db76e2)
  • js-destructuring: array and object destructuring (43ef8e6)
  • js-destructuring: iterator and object conversion (2de8875)
  • js-devops: Webpack configuration for CSS loading (8d6acbc)
  • js-devops: docker deployment (5571393)
  • js-DOM: clientLeft and clientTop (4b98d4c)
  • js-DOM: DOm append, insert and traverse (3c22ca8)
  • js-DOM: DOM UI events (574131a)
  • js-DOM: File API (9b15688)
  • js-DOM: form events processing (88a46f0)
  • js-error: ES2022 AggregateError adn Error.cause (d107104)
  • js-error: ES2022 error class (436936c)
  • js-esbuild: ESBuild basic configuration (e15bc13)
  • js-esbuild: esbuild configuration for webpack (54a973f)
  • js-events: ready UI events (b0cfcf1)
  • js-factory: asynchronous factory method (88fe248)
  • js-function: functin.length definition (6bd2a44)
  • js-function: SetFunctionName spec (06833ac)
  • js-functional: functional programming (1139ccb)
  • js-functional: stream and observable (3af287e)
  • js-function: function expression scope (4f9b998)
  • js-function: function invocation types (746bb28)
  • js-function: function parameters (91c5385)
  • js-function: lexical scope for arrow function (0994a08)
  • js-generator: generator object is self iterable iterator (68fc88c)
  • js-generator: generator role (46695de)
  • js-generator: generator traversal (245bd53)
  • js-generator: generator type definition (self reference iterable iterator) (0aa0450)
  • js-immutable: immutable data structure (f7a1891)
  • js-iterator: NodeList is iterable (1f50df8)
  • js-iterator: return(value) for iterator (765275c)
  • js-iterator: return and throw for iterator (5e9717f)
  • js-iterator: asynchronous iterator (7dc4bd8)
  • js-iterator: asynchronous iterator types (86388a5)
  • js-iterator: closable iterator (8f62785)
  • js-iterator: iterable object and class (335854f)
  • js-iterator: iteration protocol (ba03a90)
  • js-iterator: iterator and iterable interface definition (9edf3ad)
  • js-iterator: self iterable iterator (a8b21d6)
  • js-iterator: self iterable iterator usage (5582789)
  • js-JSON: JSON.stringify replacer (2b35955)
  • js-math: math rounding functions (91c457e)
  • js-Math: random number generator (bac1487)
  • js-module: import.meta.url (edcd12c)
  • js-module: ES6 module features (40b85e9)
  • js-module: ES6 module features (6c2ec64)
  • js-module: ES6 module features and exports (b50c73c)
  • js-module: ES6 module static analysis (6bc2568)
  • js-module: ES6 module static structure (c06cf27)
  • js-module: export default value and live reference (3b411bd)
  • js-module: module design principles (0331c65)
  • js-modules: CommonJS (CJS) to ES Module (ESM) exports (bfe21f6)
  • js-modules: CommonJS bundler (79bbbea)
  • js-modules: ES6 imports order (1b39071)
  • js-modules: ES6 module export behavior (213e886)
  • js-modules: import assertion and map (6502a11)
  • js-number: ES6 number feature (49647a7)
  • js-number: NaN query (7e57d26)
  • js-number: number toXXX static methods (6ede218)
  • js-number: number conversion (20214b1)
  • js-number: number judge methods (5ca2f7c)
  • js-number: number static properties (c0a5774)
  • js-number: safe number (f7f5ee0)
  • js-number: underscore separator (3ad1fa8)
  • js-object: Object.assign feature (528551f)
  • js-object: Object.assign pitfall (6139362)
  • js-object: concise deep clone (fbed5ef)
  • js-object: difference between Object.assign and spread syntax (9445f26)
  • js-object: functional concise deep update (ef1321e)
  • js-object: get global object additional keys (acc3026)
  • js-object: obejct descriptor functions (665c70f)
  • js-object: object deep clone (255e127)
  • js-object: object descriptor functions comparison (5a32ce1)
  • js-object: object descriptor get function (72ae887)
  • js-object: object entries methods usage (e5e6ca4)
  • js-object: object spread syntax features (814ed53)
  • js-object: protect objects (094db34)
  • js-object: shallow object freeze (efbeed3)
  • js-operator: logical assignment operators (5bde2a2)
  • js-operators: operator lookup tool (7f9e735)
  • js-: parse HTML via fragment (3859a76)
  • js-patterns: abstract factory method (a134646)
  • js-patterns: class constructor pattern (55b3abb)
  • js-patterns: decorator pattern (ec77d65)
  • js-patterns: deprecated mixin pattern (b2b2717)
  • js-patterns: disadvantage of mediator pattern (99d06bb)
  • js-patterns: disadvantage of pub-sub pattern (8960ff9)
  • js-patterns: factory method pattern (70b4d5a)
  • js-patterns: flyweight pattern (845feef)
  • js-patterns: JavaScript patterns guide (515b4f8)
  • js-patterns: JavaScript useful code patterns (b8dc84a)
  • js-patterns: mixin pattern (9c6732d)
  • js-patterns: observer and pub-sub design pattern (326939a)
  • js-patterns: rendering patterns (dd127cb)
  • js-patterns: review command pattern (debbe44)
  • js-patterns: use Map for flyweights (b53826b)
  • js-performance: cloneNode for performance (c66f516)
  • js-performance: 3rd party scripts loading (2303234)
  • js-performance: bad delete operator (5d03969)
  • js-performance: brotli compression algorithm (bb95efb)
  • js-performance: caching and reducing DNS lookups (81efda3)
  • js-performance: changing optimization for HTTP/2 (c7f511b)
  • js-performance: data loading best practice (e3d8ffc)
  • js-performance: debounce and throttle (8e8052b)
  • js-performance: dynamic loading scripts (e5a5d42)
  • js-performance: ETag request and response (81ed8b0)
  • js-performance: HTTP/1 long live connection (cb6f045)
  • js-performance: HTTP/2 compress header (2e81373)
  • js-performance: image sprites anti-pattern (b376e96)
  • js-performance: LCP SpeedIndex optimization (ec628ac)
  • js-performance: legacy sprites optimization (643b9d5)
  • js-performance: loading priority (6c753ce)
  • js-performance: memoized function helper (db082f5)
  • js-performance: performance best practice (637cb8b)
  • js-performance: performance best practice (c29c86a)
  • js-performance: prefetch library (0f8e422)
  • js-performance: preload pattern (1dced8e)
  • js-performance: preload scanner upside and anti-pattern (2dcf179)
  • js-performance: PRPL pattern (7545a11)
  • js-performance: reduce network protocols cost (e6dc197)
  • js-performance: review HTTP/2 upside (487046f)
  • js-performance: script loading type (72fb6dc)
  • js-performance: simple debounce and throttle (659f997)
  • js-primitives: falsy bigint (e2513d7)
  • js-primitives: zero value expression (e92764e)
  • js-promise: Promise.all usage (1a65188)
  • js-promise: promise combinator functions (ccdf28b)
  • js-promise: promise polyfill (92d2ea7)
  • js-promise: promise pros over callback (eafa04c)
  • js-prototype: Symbol.hasInstance for reference type detection (074cf8f)
  • js-prototype: create own property (b440821)
  • js-proxy: proxy handler for this binding (e28814c)
  • js-proxy: proxy pros (e8289a6)
  • js-proxy: proxy real world usage (bb0cacf)
  • js-proxy: proxy usage (b1704c2)
  • js-reactive: data stream (e89e8bc)
  • js-reactive: observable interface definition (160179b)
  • js-reactive: observable subscription types (b6b8376)
  • js-reactive: observable usage (97e0ac7)
  • js-reactive: RxJS utility functions (d5fd1a4)
  • js-RegExp: common useful patterns (d13b762)
  • js-RegExp: RegExp functions guide (c74a02b)
  • js-RegExp: RegExp named groups usage (da837b1)
  • js-rollup: basic rollup configuration (e117e9b)
  • js-RxJS: reactive programming vs asynchronous iteration (3567901)
  • js-scope: global scope and global object (3cdbb86)
  • js-security: zero trust access control (16e82af)
  • js-set: two set manipulation (f381055)
  • js-stream: data fetch mode between producer and consumer (36b96f2)
  • js-string: string.repeat (4af0570)
  • js-string: ES6 string methods (3dba8de)
  • js-string: string conversion (faa9a12)
  • js-string: string methods (b74a972)
  • js-string: string split/join/slice (9a8817b)
  • js-style guide: remove redundant examples (1bdcaae)
  • js-symbol: object wrapper for symbol primitive (170778d)
  • js-symbol: symbol conversion (effa946)
  • js-tc39: ES2015 features overview (210b269)
  • js-tc39: TC39 proposals process (47cbbf3)
  • js-Temporal: Temporal API (64f9694)
  • js-testing: cy.its and cy.invoke handy methods (1b7dbd1)
  • js-testing: bottom-up vs top-down testing (2de8135)
  • js-testing: cypress action commands (cfb97af)
  • js-testing: cypress async nature (a8c3ef3)
  • js-testing: cypress code coverage plugin (757ad2a)
  • js-testing: cypress commands plugin (216430d)
  • js-testing: cypress custom command (28f64a0)
  • js-testing: cypress custom request commands (eb84a70)
  • js-testing: cypress e2e testing principles (b5155a2)
  • js-testing: cypress e2e testing setup (5775b41)
  • js-testing: cypress events plugin (51c8abb)
  • js-testing: cypress flake resistance and retry-ability (b99c003)
  • js-testing: cypress network commands (113a8a4)
  • js-testing: cypress visual testing plugin (e1a6626)
  • js-testing: fast and isolated tests principle (a4e81f4)
  • js-testing: Jest async return value mocks (a4f2321)
  • js-testing: Jest aysnc reject value mocks (db2b08c)
  • js-testing: Jest mocks API (6155785)
  • js-testing: mock Date API for repeatable tests (92eb8b0)
  • js-testing: mock Timer API for repeatable tests (cd381d5)
  • js-testing: mock make tests deterministic (f62f84d)
  • js-testing: mocks border (1a72532)
  • js-testing: positive, negative and Exception tests (39d292d)
  • js-testing: repeatable tests via mocks (21707c3)
  • js-testing: test-driven development principle (6c21b4d)
  • js-testing: testing design principles (60919da)
  • js-testing: testing-library jest-dom extend matchers (b14a4d8)
  • js-testing: update React testing example (1554da3)
  • js-this: this binding for callable invocation (2a0e564)
  • js-timer: requestAnimationFrame usage (372b6b0)
  • js-type: generator type detection via toString (1c73a3b)
  • js-types: type conversion algorithms (2cb04e0)
  • js-type: type detection regexp (b3de5fb)
  • js-variable: const variable temporal dead zone (8f9dd9b)
  • js-variable: explicit object wrapper for primitives (789eee0)
  • js-variable: object wrapper for primitives (35faf1d)
  • js-variables: variables comparison (2ff0e1c)
  • js-vite: basic vite configuration (e5ee7f4)
  • js-webpack: css-loader CSS modules mode configuration (57c5d60)
  • js-webpack: huge bundle downside (6ee1e0d)
  • js-webpack: Next.js splitChunks best practice (09cc61a)
  • js-webpack: Next.js granular chunking (1f2dcd5)
  • js-webpack: webpack css configuration (e624caf)
  • js: Symbol.toStringTag (e218724)
  • js: dataset (a0ec1c2)
  • js: dynamic script loader (2906619)
  • js: encoding and decoding module (40024b1)
  • js: iframe basis (4d6e4a7)
  • js: iterator and gnerator type definition (eeb6942)
  • js: server side rendering (45f10c5)
  • js: web APIs (f777f71)
  • linux-: compress and extract commands (8008932)
  • linux-ffmpeg: scale and merge pictures (6394a78)
  • linux-man: linux manual pages (e6ee35a)
  • linux: /etc/passwd configuration file (3d7d966)
  • linux: find and search commands (711dfd4)
  • node-assert: Node.js assert module (f76fcff)
  • node-ENV: environment configuration setup (e2acca9)
  • node: Node.js best practice (25a4136)
  • node: Node.js version manager written in Rust (efeaef6)
  • performance-fonts: compress and subset fonts (5141ada)
  • PWA-service worker: caches version for service worker (c74b9f2)
  • react-18: React 18 development strict mode (2c6f7f5)
  • react-components: review compound components pattern (9f99691)
  • react-deployment: skip gh-pages with single command (38753f2)
  • react-hooks: useEffect cleanup function (14c5927)
  • react-hooks: hooks composition pattern (71aebf2)
  • react-patterns: framework paradigm (72eaf65)
  • react-performance: babel plugin to hoist immutable values (82873af)
  • react-performance: composition pattern (a22b8bd)
  • react-router: React router internals (758befb)
  • react-styles: variants driven styled components (4bc03e9)
  • react-types: breaking change in @types/react v18 (24bd510)
  • react: Suspense and ErrorBoundary combined (ffc67e0)
  • security: supply chain attack (0b773ab)
  • ts-cli: ts compiler cli (40466cf)
  • ts-decorators: Reflect metadata API (37b088d)
  • ts-design: function interface design (29faf7d)
  • ts-enum: enums usage (bff66e9)
  • ts-function: funcion overload runtime (619b6a4)
  • ts-generic: generic programming (ff99043)
  • ts-guards: Array.isArray for type guards (0585280)
  • ts-guards: type guards (8330a63)
  • ts-guards: type predicates guard (9cb8599)
  • ts-infer: infer pull request (efebf99)
  • ts-infer: infer type transform (ec94635)
  • ts-interface: interface definition merging (e2adbcc)
  • ts-namespace: namespace compiles to IIFE pattern (4209146)
  • ts-never: exhaustiveness checks (6947696)
  • ts-readonly: readonly is shallow (5891bc8)
  • ts-runtime: TypeScript is superset of JavaScript (a717a2a)
  • ts-system: structural type system (819a098)
  • ts-tools: type coverage tool (e723d47)
  • ts-tools: TypeScript tools (a29da92)
  • ts-types: covariant and contravariant for types (d076393)
  • ts-types: nominal brand types (038c541)
  • ts-types: syncify mapped types (9853a0a)
  • ts-union: IteratorResult discriminated union (#294) (059ad5a)
  • ts-union: discriminated union (4c7562b)
  • ts-union: interface union design (2bea8ac)
  • ts: as const type assertion (d0171bf)
  • ts: void vs never (9e19706)
  • ts: excess property check (43c5836)
  • ts: index types (f592806)
  • ts: type meta programming (abf24de)
  • ts: TypeScript terms to Set terms (bf65861)
  • vim: neovim format configuration (319035c)
  • web-browser: RenderingNG pre-paint phase (ede3d41)
  • web-browser: RenderingNG key changes (a9ead20)
  • web-browser: RenderingNG layout engine (d126ae3)
  • web-browser: RenderingNG video rendering (e370949)
  • web-browser: Viz process for OOP-D, OOP-R and OOPIFs (73f8a69)
  • web-browser: Viz process threads (9b262c6)
  • web-browser: browser engine list (e09bd18)
  • web-browser: Chromium rendering engine (ab4d265)
  • web-browser: components of main thread and compositor thread (41b4d8e)
  • web-browser: CSS transform animation performance (280e037)
  • web-browser: generate immutable flat list for inline content (d66d0f3)
  • web-browser: multi-threads architecture performance advantages (cb2c58d)
  • web-browser: multi-threads render process architecture (3d41a08)
  • web-browser: outputs of RenderingNG layout engine (1cc992a)
  • web-browser: property trees for paint and composite (e252c6d)
  • web-browser: RenderingNG architecture and pipeline (a399838)
  • web-browser: separate main thread and compositor thread (1a54a0e)
  • web-browser: web platform tests (1daeabb)
  • web-devops: devops free list (d6ede53)
  • web-library: accessible primitives UI frameworks (a9b1e15)
  • web-library: audio UI and HTML parser (7f8fd0d)
  • web-library: avatar editor (c280d91)
  • web-library: Babylon.js 3D web engine (0a6227a)
  • web-library: CLI and performance tools (c6537f5)
  • web-library: cloud virtual file system (905fedf)
  • web-library: confetti gun micro-interaction effect (dc81dc1)
  • web-library: date-fns library (8ff0bf6)
  • web-library: emoji mart library (99dd25d)
  • web-library: emoji picker (fc7abcf)
  • web-library: grid layout library (2b40ee6)
  • web-library: hand-drawn notation micro-interaction animation (07c3da1)
  • web-library: image comparison slider (59f759d)
  • web-library: low code editor (fd1e831)
  • web-library: low code framework for admin dashboard apps (5ef4735)
  • web-library: modern loaders and spinners (a2ff5ab)
  • web-library: monorepo tools (6de62ec)
  • web-library: Next UI library (4d947ce)
  • web-library: Node.js clinic library (b1b2c6a)
  • web-library: Node.js server integration testing (38c4712)
  • web-library: notification infrastructure library (99a894f)
  • web-library: npm package analytics (15c3c4d)
  • web-library: oasis web 3D engine (ce4322d)
  • web-library: OSS from Formidable Lab (9e9daa5)
  • web-library: React boilerplate (a4ebcb6)
  • web-library: React components (a762d9b)
  • web-library: React components (b630bd4)
  • web-library: react hooks (7480762)
  • web-library: react hooks library (edd59a2)
  • web-library: React runner live editor (538ae90)
  • web-library: React typewriter effect component (4a9deec)
  • web-library: React UI components (a230fa6)
  • web-library: React Vite starter (e0e79aa)
  • web-library: real-time applications framework (de6a7a4)
  • web-library: serverless framework (23a5956)
  • web-library: sophisticated DnD library (de46b9d)
  • web-library: spreadsheet library (57ea627)
  • web-library: strapi headless CMS (ec94213)
  • web-library: super fast alternative to babel (94c7ab6)
  • web-library: svg.rs and sms library (9ff80ca)
  • web-library: timeline and scroll library (3908bc2)
  • web-library: toolkit under StyleGuidist and DUmi (3e269c8)
  • web-library: UI frameworks and solutions (a186741)
  • web-library: vercel css in js library (f1177fb)
  • web-library: WebRTC mock library (2a89e2b)
  • web-network: Cache-Control: no-cache meaning (0386905)
  • web-network: CORS request and response (1678223)
  • web-network: CDN routes (1ac2ab0)
  • web-network: HTTP 1.1 performance (abaade6)
  • web-network: HTTP 2.0 frame and stream (54879bd)
  • web-network: HTTP 2.0 performance (58ffac0)
  • web-network: network protocols performance (21b965c)
  • web-network: no need for multiple connection for HTTP 2.0 (2852f77)
  • web-network: optimize TLS delay time (f298781)
  • web-network: RESTful API design reference (7cd5b63)
  • web-network: review UDP (3275a64)
  • web-network: server-sent events and event source API (e59e867)
  • web-network: TCP congestion control (7c8ae94)
  • web-network: TCP head-of-line blocking problem (962dd27)
  • web-network: TCP performance optimization (83ef4ab)
  • web-network: TCP RTT cost (c380095)
  • web-network: TCP setup (24ded8d)
  • web-network: TLS performance (4cfbf05)
  • web-network: TLS setup (0a7ff4c)
  • web-network: transport layer security (0236b4e)
  • web-network: UDP performance optimization (014a4de)
  • web-network: WebRTC API (b9297f8)
  • web-network: WebRTC API (e38677e)
  • web-network: WebSocket multiplexing and compression extensions (9d9cd20)
  • web-network: WebSocket multiplexing extension (f17a435)
  • web-network: WebSocket performance optimization (97e59d1)
  • web-network: WebSocket vs long polling (5eac348)
  • web-network: wireless network (5d02291)
  • web-spec: web-interoperable runtimes community group (247c613)

3.8.1 (2022-04-16)

⚡ Performance

🐛 Bug Fixes

  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.23.1 (#284) (9bba6d9)

✨ Today I Learned

  • css-alignment: vertical-align for inline elements (f2f2e7e)
  • css-design: components design patterns (484ee18)
  • css-selector: :has() pseudo class selector guide (ebff4ba)
  • design pattern: proxy use case (818aac5)
  • design patterns: adapter pattern use case (7d76569)
  • design patterns: add reference (af2e5fe)
  • design patterns: aspect oriented programming for proxy pattern (c4a108a)
  • design patterns: callback functions for command pattern (07727b6)
  • design patterns: chain of responsibility pattern usage (a880990)
  • design patterns: chain of responsibility pattern usage (1b7e0cb)
  • design patterns: chain of responsibility use case (8ca10ac)
  • design patterns: command pattern use case (97f03b9)
  • design patterns: command sequences adn queue (2aca4bb)
  • design patterns: composite pattern implementation (dd43f6c)
  • design patterns: composite pattern use case (1f312e4)
  • design patterns: decorator pattern use case (e5d51d0)
  • design patterns: decorator pattern use case (32e3a2e)
  • design patterns: difference between decorator and proxy pattern (f78affa)
  • design patterns: domain driven design details (92a52d8)
  • design patterns: ES6 iterator pattern (fca101c)
  • design patterns: flyweight pattern for performance (69f8aa9)
  • design patterns: flyweight usage (1ef8978)
  • design patterns: flyweight use case (188f340)
  • design patterns: form validator strategy pattern (e5b0e5a)
  • design patterns: functional JS for strategy pattern (b39fdbd)
  • design patterns: higher order function for strategy pattern (b6a24f0)
  • design patterns: IoC container (411b90b)
  • design patterns: least knowledge principle (fd10517)
  • design patterns: mediator pattern use case (4f52edf)
  • design patterns: observer use case (77ea522)
  • design patterns: polyfill implementation with iterator pattern (6a5d29a)
  • design patterns: pros of strategy patterns. (6985015)
  • design patterns: proxy pattern usage (48bc832)
  • design patterns: proxy pattern use case (ca36783)
  • design patterns: proxy type (6a1e8a9)
  • design patterns: review command pattern (254ee47)
  • design patterns: review decorator pattern (1a7fc80)
  • design patterns: singleton factory method (865703b)
  • design patterns: singleton pattern use case (55b7efd)
  • design patterns: SOLID principle patterns (41e0aab)
  • design patterns: state pattern use case (4b37070)
  • design patterns: state pattern use case (83bf635)
  • design patterns: strategy pattern (50ed961)
  • design patterns: template method pattern pros (c49245d)
  • design patterns: template method patterns (f6f5c4b)
  • design patterns: template method use case (9a5f9c4)
  • devops-library: GitHub actions toolkit (6053a7e)
  • devops-library: Grafana visualization monitoring platform (e107169)
  • devops-library: TurboRepo monorepo tool (608ed0d)
  • html-a11y: webaim top a11y errors (775a8ce)
  • js-API: refactor chapters (7ce8277)
  • js-array: array copyWithin method (b809f42)
  • js-array: array splice method (8694cd0)
  • js-array: array query methods (011c7db)
  • js-array: ES6 array methods (c3f5959)
  • js-array: modern array methods (c520477)
  • js-asynchronous: await features (4ebb634)
  • js-asynchronous: sequential and parallel execution (4d08c7b)
  • js-atomics: atomics API (901a2c8)
  • js-BOM: browser object model API (9def9c5)
  • js-browser: browser render engine and JS engine (3da952d)
  • js-canvas: canvas reference resources (e0ad6e3)
  • js-canvas: canvas text API (d287451)
  • js-class: class is actual function (02fa7d7)
  • js-class: new.target for abstract class detection (1b9f319)
  • js-class: super keyword (34166ae)
  • js-class: class inheritance (9503912)
  • js-class: class inheritance (38de3f4)
  • js-class: class lackness (91167bd)
  • js-class: class vs prototype (19a33eb)
  • js-closure: review closure (6647b15)
  • js-comparison: review comparison (d9f4070)
  • js-document: document API (cd26fd4)
  • js-document: legacy document write API (b85518d)
  • js-DOM: document object (20a3c61)
  • js-DOM: event.target bound to trigger element (db4f5a2)
  • js-DOM: NodeIterator and TreeWalker API (7266de7)
  • js-DOM: textContent vs innerText vs innerHTML (9f4cb22)
  • js-DOM: basic DOM API (83e25ae)
  • js-DOM: basic form events (64de3da)
  • js-DOM: client size details (39eec29)
  • js-DOM: clipboard events (4a6ba25)
  • js-DOM: dangerous innerHTML (aedea5a)
  • js-DOM: different DOM node types (52a5f02)
  • js-DOM: document.doctype (2d3e2b3)
  • js-DOM: DOM events (1870cf4)
  • js-DOM: DOM level (5677a6e)
  • js-DOM: DOM mutation observer (3ab5ffa)
  • js-DOM: DOM namespace API (f035603)
  • js-DOM: DOM programming use case (a3c536a)
  • js-DOM: DOM range API (d89417c)
  • js-DOM: DOM rect API (0383826)
  • js-DOM: DOM size (ca18328)
  • js-DOM: DOM style sheets API (e2b5e63)
  • js-DOM: form events handler (1dd89c2)
  • js-DOM: HTML DOM (ca75cb9)
  • js-DOM: HTML DOM document object (c0de68c)
  • js-DOM: HTML5 DOM API (34901f0)
  • js-DOM: modern DOM events constructor API (4ec2f77)
  • js-DOM: MutationObserver on children nodes (76568d5)
  • js-DOM: MutationObserver on subtree nodes (a807736)
  • js-DOM: MutationObserver performance (88964c5)
  • js-DOM: remove children (dbda654)
  • js-DOM: Selectors API and Element Traversal API (b044956)
  • js-error: custom error (f4bc6ee)
  • js-error: error and exception (bffefc2)
  • js-es6: review ES6 primitive types (b6ada43)
  • js-eventloop: time slicing scheduler for long task (8587a81)
  • js-events: DOM events API (0710b7c)
  • js-fetch: pipe readable stream for fetch response (c370e63)
  • js-function: Math and URI function utils (6406196)
  • js-function: this binding under function invocation (82d5899)
  • js-function: this binding under function invocation (11c5733)
  • js-functional: compose/flow/pipe functions (b160b58)
  • js-functional: pipe function (5a056cd)
  • js-function: call by value (b764d3c)
  • js-function: closure function (644d404)
  • js-function: compose function (ad48392)
  • js-function: context stack and scope chain (e97bd17)
  • js-function: function arguments (d9e85bc)
  • js-function: function declaration and expression (b96bfd1)
  • js-function: function default parameters (98aa5c7)
  • js-function: function name (3c3e207)
  • js-function: function property (83a33c0)
  • js-function: immediately invoked function expression (2025da1)
  • js-function: lazy definition function (a4e20a8)
  • js-function: polymorphism function (01b5e6a)
  • js-function: review arrow function bindings (fbdce39)
  • js-function: tail call optimization (f2c33e4)
  • js-function: tail call optimization only work in strict mode (02313e7)
  • js-generator: asynchronous generator (383fe23)
  • js-generator: asynchronous UI events stream (3592241)
  • js-generator: delegating generator via yield * (24e295f)
  • js-generator: generator and iterator (5e22aa6)
  • js-generator: generator usage (ba9d6ec)
  • js-generator: iterator return and throw API for generator (c5bb832)
  • js-generator: recursive generator (9c45e09)
  • js-generator: relationship between generator and async/await (c9b9c8d)
  • js-generator: use generator to implement default iterator (06b29ac)
  • js-generator: use generator to implement recursive algorithm (1480dec)
  • js-generator: walk directory with async generator (cb098f1)
  • js-geolocation: navigator.geolocation API (9a3cbd6)
  • js-geolocation: web geolocation API (aac413b)
  • js-iterator: [Symbol.iterator]() interface (9583b24)
  • js-iterator: break interface for interator (9395afa)
  • js-iterator: built-in implemented iterators (764b476)
  • js-iterator: iterable iterator (e8b56f7)
  • js-iterator: iterator and iterable (be2dff0)
  • js-iterator: iterator syntax sugar (7e3758e)
  • js-JSON: JSON.stringify API (94c22ac)
  • js-let: review block scoping rules for let (45227b1)
  • js-library: RegExp utils and string parsers (c134169)
  • js-location: location navigation API (d99fbf1)
  • js-location: location URL search params (8efaebe)
  • js-map/set: review ES6 map and set (57b48f7)
  • js-microfrontends: applications communication in micro-frontends (7cd6c4f)
  • js-modules: dependency injection (7e3c42c)
  • js-modules: JavaScript modules patterns (0be518a)
  • js-navigator: registerProtocolHandler API (284304c)
  • js-navigator: userAgent data parser (2b3b64f)
  • js-navigator: navigator API list (31f7249)
  • js-navigator: navigator APIs (e2aa955)
  • js-navigator: web navigator.onLine API (e879332)
  • js-navigator: web StorageManager estimate API (cad71c3)
  • js-network: web socket API (51f5fc7)
  • js-oauth: OAuth guide (8a040d5)
  • js-object: Object.hasOwn and Object.keys usage (3567966)
  • js-object: object property iterator (4d1b90b)
  • js-object: object spread syntax feature (13abb2c)
  • js-object: primitive wrapper objects (dfff2a7)
  • js-object: property descriptor getting function (49ba896)
  • js-object: review new constructor (d36405a)
  • js-object: review object notes (27930a6)
  • js-oop: polymorphism and OOP programming (5373601)
  • js-performance: animation throttle (9b4f539)
  • js-performance: bit manipulation (bba2b2e)
  • js-performance: function performance (7a79ae8)
  • js-performance: images performance tips (c3372c2)
  • js-performance: modern images format (fde1d39)
  • js-performance: performance best practice (d62968e)
  • js-performance: performance guide (3ee76b8)
  • js-performance: review performance tips (d4208d7)
  • js-performance: scheduler in React and Vue (2c04c9d)
  • js-performance: unnecessary closure function (41e33e3)
  • js-performance: web vitals optimization guide (bc31a60)
  • js-primitive: auto box and unbox primitive values (ab7ddd4)
  • js-promise: Promise.resolve thenable object (64922b4)
  • js-promise: asynchronous promise error (f161110)
  • js-promise: promise catch and finally (9c1a4ac)
  • js-promise: promise merge functions (bda9aee)
  • js-promise: promise resolve and reject chain (81bf917)
  • js-prototype: getPrototypeOf triggers (b3ec07d)
  • js-prototype: instanceof prototype chain (b006adf)
  • js-prototype: implement prototype inheritance with Object.create (af5833b)
  • js-prototype: legacy object inheritance based on prototype chain (a4d284d)
  • js-prototype: object extend with prototype chain (0f22d1a)
  • js-prototype: review prototype chain (6d0dac8)
  • js-prototype: review prototype chain (7e911fc)
  • js-proxy: Proxy.prototype is undefined (98009dd)
  • js-proxy: proxy basic feature (3b09705)
  • js-proxy: proxy usage (d64fc6d)
  • js-proxy: proxy usage (d1c4d90)
  • js-proxy: revocable proxy (029c017)
  • js-pwa: PWA service worker offline cookbook (b8d8164)
  • js-reflect: reflect overrides behavior (ea670d4)
  • js-RegExp: string.replace(RegExp, replacer) (f82ac16)
  • js-regexp: avoid usage of RegExp static property (d73a1b9)
  • js-regexp: backreference for preventing ReDos (ed1ce2e)
  • js-RegExp: ES2018 regular expression flags (23ce8e9)
  • js-RegExp: named capture group back reference (6b4c33d)
  • js-RegExp: RegExp common pattern (c5f7de6)
  • js-regexp: regular expression flags (df6f897)
  • js-RegExp: unicode property (b0f7061)
  • js-scope: context stack and scope chain (e26b99b)
  • js-screen: window.screen API (19e27ac)
  • js-socket: web Socket API (8398299)
  • js-storage: web storage API (6bf519a)
  • js-string: String methods (794f7fd)
  • js-symbol: [Symbol.species]() API (5338d07)
  • js-symbol: built-in symbol methods (aaa066d)
  • js-symbol: built-in symbol methods (96475df)
  • js-symbol: symbol API (1750ee9)
  • js-symbol: symbol static properties and static methods (bbe936d)
  • js-testing: cypress official guide (585c42b)
  • js-testing: review testing notes (50ae774)
  • js-testing: simple test runner implementation (2574d0b)
  • js-timer: setInterval pitfalls (bb13899)
  • js-timer: timer function this binding (c88c341)
  • js-url: url function (7e02844)
  • js-URL: URL functions (cd2692a)
  • js-variables: variable context (b7b1365)
  • js-variable: variable hoisting (069d4bc)
  • js-window: open new window (0b0d282)
  • js-window: popup window restricts (55a9a3c)
  • js-window: window built-in popups (01c04b3)
  • js-worker: service worker and web worker (2fde0d7)
  • js-worker: service worker simple cache model (56cc3d8)
  • js-worker: web worker API (9eab8ba)
  • js: in operator (21c73ae)
  • js: XMLHTTPRequest (AJAX) and fetch API (8796bad)
  • js: curry function (943c26d)
  • js: execution context and scope chain (9a513f8)
  • js: global object (33a6520)
  • js: lazy singleton pattern (d139bb8)
  • js: micro-frontends (3bdb7be)
  • js: refactor chapters (1fbd348)
  • js: refactor chapters (11a9286)
  • js: refactor chapters (#281) (4eb0888)
  • js: refactor functional JavaScript chapter (7dd514c)
  • js: remove legacy code (9672a25)
  • js: strict mode (f262fd2)
  • js: strict mode details (9f48f4b)
  • js: TextEncoder and TextDecoder API (730be19)
  • js: web worker usage (d51c517)
  • library: file utils and testing libraries (d081768)
  • node-fs: promisify synchronous file API (08d3ccb)
  • os-I/O: zero copy I/O methods (29d7580)
  • react-hooks: custom hooks (c403795)
  • react-hooks: custom mouse hook (5fbd02a)
  • react-hooks: remove internal hook API (a567f18)
  • react: react core bottlenecks and solutions (235fc34)
  • rust: Rust memory model (79dac71)
  • security-crypto: Web Crypto API (c88352f)
  • security: supply chain attack real world case (6db5add)
  • testing: JavaScript testing best practice (80ab19a)
  • ts-performance: TypeScript performance tips (f84635a)
  • vue-reactive: collect array dpes (0ab4f72)
  • vue-reactive: Vue array methods reactive patching (27f43a5)
  • vue-reactive: Vue global reactive set/delete API (850010c)
  • vue-setup: Vue setup internals (2643359)
  • web-library: a11y jest matcher (bc413d1)
  • web-library: app framework (48a2ab4)
  • web-library: ByteDance markdown component (1df6759)
  • web-library: comments system (abc96fb)
  • web-library: CSS gradient generator (cf805dd)
  • web-library: facebook rich text editor (fb9cb77)
  • web-library: formik library (c8b8fb6)
  • web-library: fuzzy search library (de06079)
  • web-library: git interface utils (b367387)
  • web-library: images gallery components (84ef2d5)
  • web-library: modern API framework (35bed4d)
  • web-library: modern CSS resets library (5871fb3)
  • web-library: multi-touch zooming and dragging library (e4f1b63)
  • web-library: Next.js SEO library (3cc9b28)
  • web-library: React admin/B2B frameworks (1b8fd37)
  • web-library: React hamburgers (dff685b)
  • web-library: React Youtube player (55534e2)
  • web-library: RSS parser utils (fe194cd)
  • web-library: scroll snap utils (46b3497)
  • web-library: shadow generator (7d841cc)
  • web-library: TypeScript tools (a7789be)
  • web-library: vite based testing framework (6ec0ab2)
  • web-library: web IDE (5e4c256)
  • web-performance: performance tips (a621545)
  • yarn: yarn dedupe command (fb2e2d3)

3.8.0 (2022-04-05)

✨ Features

  • vue: start Vue source code learning (3764737)

✨ Today I Learned

  • design patterns: merge contents (f5c8e54)
  • devops-library: changesets (8d60421)
  • js-eventloop: simple model for browser eventloop (d8c631d)
  • js-proxy: ES6 proxy (206f26c)
  • js-pwa: service worker caching strategy (61a056f)
  • rust: add books list (dc22f2e)
  • vue-compiler: basic compilation workflow (bbb5f64)
  • vue-extend: Vue extend global API (143464c)
  • vue-lifecycle: lifecycle hooks execution details (d130f62)
  • vue-lifecycle: Vue lifecycle diagram (dfbe34b)
  • vue-lifecycle: Vue mounting workflow (007d416)
  • vue-mount: remove dev statistics (85ce21f)
  • vue-options: Vue options API internals (8d52fe0)
  • vue-prototype: vue prototype setup path (e90187d)
  • vue-reactive: collect deps to Observer (f992035)
  • vue-reactive: computed props and computed watcher (4d20ad2)
  • vue-reactive: Vue Observer class (3671de9)
  • vue-reactive: Vue watcher options API (2c762f7)
  • vue-render: Vue render functions initialization (c726610)
  • vue-router: Vue router reactivity (68dc514)
  • vue-template: mark static template node (4edca49)
  • vue-transition: transition component (700ff09)
  • vue-transition: transition group component (58a6eb6)
  • vue-transition: vue transition Internals (153dd40)
  • vue-vdom: component vnode creation (3cea299)
  • vue-vdom: create children recursively via init hook (70594a2)
  • vue-vdom: main logic of createElement function (80b9922)
  • vue-vdom: Vue VNode constructor (fd62729)
  • vue-vuex: legacy Vuex rely on computed watchers (7d0bfda)
  • vue: <keep-alive> built-in component (73626fc)
  • vue: render and createElement function (ce04095)
  • vue: v-model for child component (458ce81)
  • vue: add static global API for Vue (e7b6d75)
  • vue: full Vue mount method (36e760e)
  • vue: slots vnodes rendering internals (9648c2d)
  • vue: transfer vm.XXX to vm._props.XXX/vm._data.XXX (58a6421)
  • vue: Vue 2 legacy reactive system (7a76571)
  • vue: Vue 2 reactive system (995500c)
  • vue: Vue async components (dca55a2)
  • vue: Vue global mixin and use API (89e6318)
  • vue: Vue global nextTick API (8ce9e68)
  • vue: Vue patch function (725eb36)
  • web-library: ant design pro (f89fb71)
  • web-library: change default libraries (ffc0b87)
  • web-library: kubernetes based serverless platform (719e131)
  • web-library: React component documentation tool (4c3ae7a)
  • web-library: vite web extension starter template (3900cbc)

3.7.1 (2022-04-03)

🐛 Bug Fixes

✨ Today I Learned

  • css-clip: text background clip (e4f1c1c)
  • css-filter: backdrop-filter for blur background effect (c0ef87a)
  • css-media query: pointer and hover media query (99521fe)
  • css: backdrop-filter for frosted glass effect (03ab1e2)
  • design patterns: review SOLID principles (ab9eb20)
  • js-es6: class private member polyfill (0257266)
  • js-modules: review JavaScript legacy modules pattern (78de1b7)
  • js-modules: UMD module pattern (1476a7f)
  • js-sort: locale string sorting. (ceacad9)
  • js: event loop (#275) (1c597f4)
  • js: layout and paint (#276) (a649b64)
  • js: React codemod tool (3b41066)
  • node-fs: modern promise-based fs API (a6c7e04)
  • react-core: interrupted rendering (be300e8)
  • react-core: reconciler rendering recovery by scheduler (2ff1744)
  • react-fiber: fiber.dependencies for Context API (95068cb)
  • react-fiber: Fiber type (6042d8d)
  • react-hooks: Hooks memoizedState for FunctionFiber memoizedState. (1a0f3e1)
  • react-hooks: react-hook-form core logic (ed3aebc)
  • react-performance: avoid children components re-rendering (2007164)
  • react-performance: children components re-rendering problem (f485fe0)
  • react-reconciler: mountChildFibers (#272) (3918595)
  • react-reconciler: class and function component memoizedState calculation (f3aa59b)
  • react-reconciler: memoized state to ReactElement (#274) (c95b15b)
  • react-reconciler: recursive version of performUnitOfWork (f4c3108)
  • react-reconciler: reuse fiber when bailout (#273) (5b7a7f5)
  • react-reonciler: bailoutOnAlreadyFinishedWork entrance judgement (551518d)
  • react-testing: React testing tutorials (2430933)
  • react: React.StrictMode highlight potential problems (7278d01)
  • react: review components lifecycles (9b8bfbf)
  • ts-JSON: resolve JSON module for TypeScript (729a662)
  • web-library: Airbnb visualization components (bd7c77d)
  • web-library: Apache ECharts library (bba3884)
  • web-library: audio.ts (777031f)
  • web-library: CSS borders/corners/dividers/shapes generators (405554e)
  • web-library: draggable grid layout (a724934)
  • web-library: file utils (506013b)
  • web-library: HappyDOM library (74dd0a4)
  • web-library: instance search library (a69278a)
  • web-library: list virtualized library (abfa20c)
  • web-library: macOS and Windows style components (529ce11)
  • web-library: micro-interaction animation (ed474bd)
  • web-library: photo view library (1119f08)
  • web-library: rating component (37de11f)
  • web-library: React image cropping tool (fbba8b9)
  • web-library: React roulette component (fea8bfb)
  • web-library: React scroll parallax library (bf29fba)
  • web-library: React stepper guide component (07414c1)
  • web-library: React table hooks (df9ef8d)
  • web-library: ReduxObservable library (3e65d59)
  • web-library: simple vanilla router (cc048d3)
  • web-library: styled semantic HTML tag library (5a53238)
  • web-library: UI frameworks (c6564fa)

3.7.0 (2022-03-30)

🐛 Bug Fixes

  • deps: update dependencies (non-major) (#270) (599af15)

✨ Features

  • react: React source code learning (a12e5cd)

✨ Today I Learned

  • cs-network: update title (3838e5f)
  • css: box model for img element (35241b5)
  • css: visibility styles (34c2fa1)
  • cs: update title (831c980)
  • design patterns: aspect oriented programming (777b2b7)
  • design patterns: review IoC and DI pattern (7e94799)
  • design patterns: software design principle (5f7615c)
  • html-dialog: <dialog> use case (cc1649b)
  • html: cite and datetime for <del>/<ins> (b70fbb1)
  • intro: add complete notes list (9fc0e35)
  • js-event loop: event loop and task queue (2073c9d)
  • js-event loop: review event loop (a57218b)
  • js-event loop: review event loop (39f36a3)
  • js-lodash: useful lodash functions (cf25c01)
  • js-object: Object.is API (c9cf5fa)
  • js-performance: LCP optimization guide (8bba62a)
  • js-prototype: review prototype chain (d3cf01e)
  • js-prototype: review prototype chain (02d8ae7)
  • js-proxy: array watching in Vue (210dd83)
  • js-Reflect: Reflect API (0e44f01)
  • js-regexp: review regular expression (1197c1a)
  • js-scope: 3 type of scope (38b8d81)
  • js-security: ProxySandbox (cdaccab)
  • node: tao of Node.js (d584e97)
  • react-batching: flushSync API (f68282f)
  • react-batching: automatic batching in React v18 (3d26954)
  • react-core: ReactDOM.createRoot.render (8867dd5)
  • react-core: 3 basic React internal modules (717528b)
  • react-core: bootstrap app from renderer (106b78c)
  • react-core: create Update with hooks.dispatchAction (13eb4c4)
  • react-core: create root container (5c3243c)
  • react-core: create updates from user code (4945608)
  • react-core: Lanes model definition (0add64f)
  • react-core: lanes model use case (fd8048d)
  • react-core: performConcurrentWorkOnRoot (504771c)
  • react-core: React component definition (22a950d)
  • react-core: React component type definition (bfa8703)
  • react-core: React core packages relationship (6ffe1d9)
  • react-core: React fiber mode (c7b8731)
  • react-core: React internal main logic (fbe9788)
  • react-core: React internal synchronous logic (151e7c1)
  • react-core: React internal types definition (9996085)
  • react-core: reconciler commit phases (0dacd0b)
  • react-core: reconciler work loop (e618eb4)
  • react-core: refactor React internal chapters (9e304a5)
  • react-core: renmae Stage to Phase (fac30cd)
  • react-core: Scheduler logic (07d7d99)
  • react-core: work loop in Scheduler and Reconciler (84b4612)
  • react-events: React synthetic events (6d9713d)
  • react-fiber: Update creation (a7fb2e9)
  • react-fiber: React Fiber stateNode (7ca00cd)
  • react-fiber: React Fiber trees (7c02557)
  • react-fiber: relations between FiberRoot and HostRootFiber (e0a1e4f)
  • react-hooks: dispatchAction performance tip (941553f)
  • react-hooks: Reconciler.Commit for useEffect and useLayoutEffect (48bab81)
  • react-hooks: useEffect execution timing (8a6d9ce)
  • react-hooks: useMemo use case (cf14b29)
  • react-hooks: useReducer hooks dispatcher (96ab0fe)
  • react-hooks: useSyncExternalStore use case (ce0dd32)
  • react-hooks: useTransition use case (4cc6a02)
  • react-hooks: Fiber flags for useEffect and useLayoutEffect (87c04fd)
  • react-hooks: hooks internal types (7bd0f14)
  • react-hooks: hooks internal workflow (fb02a23)
  • react-hooks: mountWorkInProgressHook and updateWorkInProgressHook (38e64b3)
  • react-hooks: React hooks dispatcher (b5c3553)
  • react-hooks: Reconciler commit work for Effect Hook (a60209e)
  • react-hooks: store state in the URL (2884621)
  • react-hooks: useSyncExternalStore concurrent hook (b9e7813)
  • react-lanes: global render lane (b5e8042)
  • react-lanes: React Fiber Lanes (2fae0da)
  • react-lanes: reuse Fiber nodes with lanes (9b851ce)
  • react-perf: useDeferredValue/useTransition use case (a06c00a)
  • react-reconciler: beginWork update workflow (956a4ea)
  • react-reconciler: commitBeforeMutationEffects function (1838c3b)
  • react-reconciler: commitLayoutEffects function (837b38f)
  • react-reconciler: commitMutationEffects function (ebed854)
  • react-reconciler: commitRoot function (3586154)
  • react-reconciler: completeWork and updateXXX for Update (d2e22b6)
  • react-reconciler: performUnitOfWork for DFS path (1537342)
  • react-reconciler: prepareFreshStack function (2674f1b)
  • react-reconciler: reconcileChildren function (b8c051d)
  • react-reconciler: renderWithHooks for children hooks fiber (6992dd7)
  • react-reconciler: scheduleUpdateOnFiber (aac81c1)
  • react-reconciler: construct Fiber tree in render phase (52ffa36)
  • react-reconciler: create children Fiber from ReactElement (9f9d09a)
  • react-reconciler: diff algorithm (bc3bebb)
  • react-reconciler: mark and collect effects (947073c)
  • react-reconciler: mark Fiber lanes for update (2b9c5c3)
  • react-reconciler: React reconciler main logic (1c91f6b)
  • react-reconciler: React update queue for reconciler (bcd5635)
  • react-reconciler: reconcile children and collect effects (742ac01)
  • react-reconciler: reconcile children functions (04fedb8)
  • react-reconciler: reconcile on children elements (efe23bc)
  • react-reconciler: reconciler performance tips (e34919c)
  • react-reconciler: reconciler render key path (b6f52a6)
  • react-reconciler: refactor reconciler chapters (20a0cf1)
  • react-reconciler: update judgement for Fiber (c0629d0)
  • react-refs: deprecated string refs (b0952a5)
  • react-renderer: HostConfig protocol details (93dd08b)
  • react-renderer: React renderer (c10d293)
  • react-state: flushSyncCallbackQueue for sync setState (ae95808)
  • react-state: review setState work mode (8106eec)
  • react-suspense: Suspense for SSR (2c02e5b)
  • react-suspense: lazy loading and code splitting with Suspense (d989233)
  • react-suspense: selective hydration and streaming HTML (389a922)
  • react-suspense: suspense design pattern (4ac9179)
  • react-v18: useSyncExternalStore react conf 2021 demo (47c1e66)
  • react: concurrent features (a311e74)
  • react: React Elemnt type definition (6a9806d)
  • react: React SubComponents pattern (27a7c25)
  • rect-reconciler: DFS path for reconciler (890bcfc)
  • ts-types: built-in ThisParameterType (f33b9d2)
  • vim: NvChad shortcuts (03ece70)
  • web-exception: exception handling methods (912de82)
  • web-library: 3rd scripts web worker (a4e7f61)
  • web-library: a11y React UI kit (f10e925)
  • web-library: API development tools (02228dd)
  • web-library: connect HTTP server (862a55a)
  • web-library: CRDT for collaborative apps (c1017ef)
  • web-library: data platform (406fb83)
  • web-library: data processing library (846c06c)
  • web-library: editors (3629e94)
  • web-library: editors library (e6d81ff)
  • web-library: low code engine (a022b52)
  • web-library: low code Node.js app tool (ac66cfc)
  • web-library: MantineUI (8095f2d)
  • web-library: MDX (31b6887)
  • web-library: React modal manager (1ffa8f2)
  • web-library: React node-based charts library (13ba121)
  • web-library: React state usage tracking tool (93e4bb5)
  • web-library: React tree component (5d472b6)
  • web-library: sandpack toolkit (66ce3f7)
  • web-library: supertokens (cf6a709)
  • web-library: web media tools (a451fe1)
  • web-library: XState library (d459880)
  • web-perf: performance monitoring vitals (7f70a08)
  • web-svg: render svg tags with createElementNS function (5dbf722)
  • web: styles isolation (ba7f9ed)

3.6.1 (2022-03-20)

✨ Today I Learned

  • css-float: review legacy float grid pattern (6d2248c)
  • css-svg: svg style rules (37d2a8a)
  • css-switch: grid switch button (1ff5d7e)
  • css: css variables for theme components (d248c53)
  • design patterns: review state pattern (ba99b85)
  • js-genrator: impl async/await with generator and promise (f9a7fbf)
  • js-json: JSON.stringify internal (e4f83f4)
  • js: operator precedence (a930d6d)
  • perf-library: performance tools (1895af8)
  • react-hooks: useMemo and useCallback internal code (f2df38b)
  • react-hooks: useRef, useState and useEffect internal (404c53d)
  • react-state: simple Atom global store (7fdb0fd)
  • rust-async: basic async rust (7c049ec)
  • rust-cargo: cargo cache directories (7add477)
  • rust-cargo: cargo configuration (9e4f3bb)
  • rust-cargo: cargo configuration (c6878eb)
  • rust-cargo: rust target configuration (b1df95a)
  • rust-concurrency: thread, barrier, mutex, channel (ccc9478)
  • rust-drop: Drop trait (11d58a9)
  • rust-error: custom error trait (9fa18fe)
  • rust-futures: futures and wakers (cf0d9b7)
  • rust-generics: generics tips (367dca2)
  • rust-library: benchmarking library (b83c3fb)
  • rust-library: CLI ProgressBar (2103b27)
  • rust-library: concurrent programming tools (c18179b)
  • rust-library: popular rust tools (dff66c4)
  • rust-library: regex regular expression engine (97716b0)
  • rust-library: tokio official web framework (ebf3c75)
  • rust-macro: macros (03cbe6b)
  • rust-pointer: Box smart pointer (520bcbe)
  • rust-tests: unit tests and assertions library (5b7d3a4)
  • rust: (atomic) reference counting type (0e8fca9)
  • rust: Async/Await programming model (9b4c33e)
  • rust: Cell and RefCell type (e1cf889)
  • rust: Error trait (1c7ee33)
  • rust: into_ prefix (cce1029)
  • rust: PhantomData marker type (eeb0ffe)
  • rust: std::convert::From trait (7d0c4d8)
  • rust: std::convert::TryFrom trait (3d6e4de)
  • rust: associated types in generic traits (1867b4c)
  • rust: asynchronous programming (d3e0df0)
  • rust: attributes (4584463)
  • rust: circle reference (e827ec6)
  • rust: CLI parser (e600c82)
  • rust: concurrent thread pool (a48bc2e)
  • rust: conventional changelog generator (6f017f3)
  • rust: format print (9092545)
  • rust: future trait (d1f5603)
  • rust: HashSet collection (8580fd2)
  • rust: interator function signature (45e4cac)
  • rust: IO and Process standard library (9d3bcd9)
  • rust: Iterator methods (9b64745)
  • rust: more iterator adpaters (7064e52)
  • rust: mutex, semaphore and atomic primitives (7ac4180)
  • rust: PhantomData usage (dff8ec0)
  • rust: prelude traits (5e3b936)
  • rust: refactor chapters (ea60c3f)
  • rust: RefCell usage (c5772fd)
  • rust: Result and Option compositor (adb534c)
  • rust: sccache compile cache tool (0482697)
  • rust: send multiple type message via channel (afcf3ea)
  • rust: specific type adapter (d1bdf5b)
  • rust: stack types (5d2a3b2)
  • rust: super trait (240ef2d)
  • rust: tokio runtime (185552a)
  • rust: trait object lifetime (585e604)
  • rust: types conversion (ad59055)
  • rust: unsafe rust code block (6668951)
  • security-sql: sql injection protection (0dd1b99)
  • security: open source supply chain attack (8e85f82)
  • security: supply chain estimate tool (99a5260)
  • vim-neovim: update NvChad configuration (ceef258)
  • web-editor: code editor philosophy (f60d25e)
  • web-http: reasonable HTTP methods and status codes (d94f3d5)
  • web-library: animated grid (e95f5ff)
  • web-library: audio visualizer (b48a628)
  • web-library: Chrome extension boilerplate (acb3c00)
  • web-library: dependency injection tool (e91b353)
  • web-library: emoji picker button (9fdad09)
  • web-library: facebook draft.js (ea1f2ed)
  • web-library: import-local (275f3e1)
  • web-library: IoC container (18e05c5)
  • web-library: ladle tool (1b331b5)
  • web-library: local cert tool (2da274d)
  • web-library: NPM deps updater (991a67f)
  • web-library: NPM package patching tool (7909823)
  • web-library: pinia vue store (4d9810a)
  • web-library: playwright UI testing tool (221fb41)
  • web-library: React interactive video library (4edc141)
  • web-library: regular expression visualization (2afa83d)
  • web-library: telemetry framework (81e5b1c)
  • web-library: User-Agent data parser (5a1c9c3)
  • web: micro frontends (63d6486)

3.6.0 (2022-03-14)

✨ Features

🐛 Bug Fixes

  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.22.0 (#250) (4f03579)
  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.23.0 (#260) (c5d5039)
  • deps: update docusaurus monorepo to v2.0.0-beta.17 (#248) (0c81ce8)

✨ Today I Learned

  • css-query: container query (16d5dcc)
  • design patterns: deps and abstracts in design patterns (7768a6c)
  • design patterns: facts of software design (dc42f74)
  • design patterns: proxy design pattern in Vue (1dded06)
  • design patterns: review command pattern (1d2a5b7)
  • devops-git: GitHub action for Vercel deployment (917516c)
  • devops-library: LaTeX building action (2d47467)
  • devops-library: terraform IaC tool (9aa1ae7)
  • devops-library: text linter and package release tool (10f6dcf)
  • linux-apt: apt ppa key management (ffc0a85)
  • linux-links: review hard and soft links (4d6785a)
  • node-npx: clear npx cache (1b97214)
  • react-v18: new features in react v18 (a016ef3)
  • rust-async: concurrency programming model (5d58e47)
  • rust-ci: basic Rust GitHub action script (5b8bc59)
  • rust-DST: dynamically sized type (6572304)
  • rust-flow: flow control statements (#259) (7a1de86)
  • rust-library: asynchronous version standard library (bd58d01)
  • rust-library: rust basic libraries (037df26)
  • rust-library: rust web server (9baed4a)
  • rust-library: web frameworks (7e1e504)
  • rust-ownership: Copy trait (4d02424)
  • rust-ownership: borrowing ownership (06d6611)
  • rust-pointer: smart pointer with Deref trait (c3f520d)
  • rust-string: string iteration (6776000)
  • rust-string: string type (&str and String) (84e098b)
  • rust-toolchain: cargo code coverage tool (58a0516)
  • rust-toolchain: cargo-release configuration (0a4f043)
  • rust-toolchain: cargo-watch tool (fd26118)
  • rust-toolchain: more cargo toolchain (93a5379)
  • rust-toolchain: rust CI scripts (c8cbf88)
  • rust-toolchain: setup mdbook with GitHub action (ed0fd4b)
  • rust-types: struct, enum and arrary type (7b71202)
  • rust-web: rust bindings for native Node.js modules (cd2b95a)
  • rust-web: rust bindings to Node use case (0723f00)
  • rust: newtype (c0a66f4)
  • rust: closure (4c07cab)
  • rust: collections (fe82934)
  • rust: comments (cebccbe)
  • rust: error handling (48d764a)
  • rust: formatted print (b0e44b6)
  • rust: generics (09e5d95)
  • rust: iterator trait (c989d76)
  • rust: lifetime (283ab95)
  • rust: lifetime constraint (106e412)
  • rust: method (892d81d)
  • rust: pattern matching (e521e1a)
  • rust: slice reference type (f62a0d6)
  • rust: traits (2cf31b3)
  • rust: type alias (64e23d0)
  • vue-vdom: definition of VNode (7544a05)
  • vue-vdom: vnode and children types (#245) (8f84cf8)
  • web-browser: chrome new rendering engine (5d73a0f)
  • web-CSS: alignment via flexbox (a713a6d)
  • web-CSS: CSS triggers for animation performance (a9bab2d)
  • web-CSS: pseudo elements with grid layout (5e55cf3)
  • web-CSS: review flexbox shorthands (e051019)
  • web-CSS: review pseudo elements with flexbox layout (ee91a95)
  • web-HTML: HTML details element (959cd42)
  • web-JavaScript: defensive design and programming (e56af24)
  • web-JavaScript: handle exception with proxy (aaa8156)
  • web-library: Alibaba i18n solution (d22433b)
  • web-library: CRA configuration override tool (1ecdbd2)
  • web-library: full stack web frameworks (ae6db19)
  • web-library: NPM package security (ec55f88)
  • web-library: React components (9833b66)
  • web-library: some React libraries (1ce8bfc)
  • web-library: SonarSouce static code analyzer (ffa22fd)
  • web-library: video creation library (9ec9e81)
  • web-library: web boilerplate and generators (79d2e6b)
  • web-library: web worker offload library (3873d05)
  • web-library: workbox PWA toolbox kit (27b7443)
  • web-Node: dependencies management acrocss package managers (80f098c)
  • web-Node: setup binary proxy for npm/yarn install scripts (#244) (df9d8dd)
  • web-TypeScript: indexed access types (c31ded9)
  • web-TypeScript: never type as switch default guard (515bb5a)

3.5.7 (2022-02-28)

🐛 Bug Fixes

  • deps: update docusaurus monorepo to v2.0.0-beta.15 (#219) (415137f)
  • deps: update docusaurus monorepo to v2.0.0-beta.16 (#233) (a44c844)

✨ Today I Learned

3.5.6 (2022-01-05)

🚀 Building Work

  • deps-bot: disable lockfile maintenance (6d27673)
  • yarn: bump yarn from v3.0.2 to v3.1.0 (d657bee)

✨ Today I Learned

  • git-GitHub: dependabot configuration (a58a114)
  • git: allow edits from maintainers when PRs (34e567d)
  • git: git reflog (0262d15)
  • web-CSS: custom bootstrap with dart-sass (ac58f26)
  • web-CSS: pseudo elements for custom form components (8cd87c9)
  • web-JavaScript: canvas real world case (b77b9a0)
  • web-JavaScript: media session API (c9d7e5d)
  • web-library: Bull distributed jobs library (335330c)
  • web-library: cursor library (6ff3954)
  • web-library: data tables and grids library (3b34a6f)
  • web-library: date and locale library (97f7ddf)
  • web-library: Graph theory network visualization library (9629195)
  • web-library: logging library (a5f447e)
  • web-library: markdown editor (3470aaa)
  • web-library: material UI data table (444c2cd)
  • web-library: Modern from ByteDance (6e2271b)
  • web-library: multi window layout manager (fbb3ea6)
  • web-NPM: remove node-sass proxy, ship to dart-sass (dart2js) (824851c)

🐛 Bug Fixes

  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.20.0 (#193) (9a9d885)
  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.21.0 (#202) (c5618e3)
  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.21.1 (#205) (3008da8)
  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.21.4 (#208) (36708cd)
  • deps: update docusaurus monorepo to v2.0.0-beta.13 (#206) (a367fb9)
  • deps: update docusaurus monorepo to v2.0.0-beta.14 (#211) (e6df034)
  • deps: update docusaurus monorepo to v2.0.0-beta.9 (#190) (cff93da)

3.5.5 (2021-10-24)

🚀 Building Work

  • deps: bundle bod deps into single PR (f8aeb3c)

✨ Today I Learned

  • devops-library: Google release bot (01d9646)
  • web-CSS: GitHub link component (55230ad)
  • web-CSS: modern CSS features (2021) (b719cc0)
  • web-JavaScript: performance.getEntriesByType API (574e947)
  • web-JavaScript: CORS - cross origin resource sharing (df57ff9)
  • web-JavaScript: performance observer (0ff9aa6)
  • web-JavaScript: review DOM manipulation performance (1150e17)
  • web-JavaScript: review web worker (28bfbb8)
  • web-JavaScript: web worker performance (df904dd)
  • web-JavaScript: webpack compression plugin (f123cab)
  • web-JavaScript: webpack JavaScript obfuscator plugin (acd1892)
  • web-library: 3D parallax effect (43e795f)
  • web-library: animation and canvas engine (71ec3f5)
  • web-library: CSS-in-JS and cookie library (9eba125)
  • web-library: FFmpeg CLI tool (adea7ba)
  • web-library: full stack serverless framework (f1458a1)
  • web-library: function memoization library (2abf986)
  • web-library: image zoomable previewer like Medium (a4e0abe)
  • web-library: remove outdated library (0ff0471)
  • web-library: shell.js (a592636)
  • web-library: terminal library (ec5d281)
  • web-library: Vue comment system (7c6b116)
  • web-TypeScript: Awaited utility type in TypeScript 4.5 (7f5ef52)
  • web-TypeScript: covariance and contravariance (a2088fe)
  • web-Vue: reactivity API (220ecd3)

🐛 Bug Fixes

  • deps: update docusaurus monorepo to v2.0.0-beta.8 (5f658ba)
  • lint: add type check (#135) (4d28e7a)

3.5.4 (2021-10-08)

✨ Today I Learned

  • web-HTML: embed media best practice (30bd462)
  • web-JavaScript: pros and cons of ES6 Proxy (07f2e69)
  • web-JavaScript: service worker guide (7c793f9)
  • web-library: headless CMS system (7c7e612)
  • web-library: pdf.js (53c42a0)
  • web-library: React boilerplate (8c7e549)
  • web-library: UnifiedJS (118240b)
  • web-React: review HOC and render props (4f56588)
  • web-React: template-free reuse pattern (4c47195)
  • web-Vue: computed internal (via createEffect) (91e10a3)
  • web-Vue: createEffect composition internal (ffde9c8)
  • web-Vue: ref internal (small reactive) (c3359f2)
  • web-Vue: basic targetMap/depsMap for reactivity (397f830)
  • web-Vue: caveat for Vue 2 reactivity (fd46478)
  • web-Vue: composition API basis (b0c39aa)
  • web-Vue: hoist static template blocks (489354f)
  • web-Vue: lifecycle hooks for composition API (5600ae5)
  • web-Vue: performant ref (745a46d)
  • web-Vue: rename deps to effects (4faf230)
  • web-Vue: scoped slot (10d19f5)
  • web-Vue: scoped slots data direction (2237ad8)
  • web-Vue: SFC with script setup (f2d6424)
  • web-Vue: simple reactive value implementation (9b565d9)
  • web-Vue: Vue reactivity package structure (4b50cb2)

3.5.3 (2021-10-03)

🐛 Bug Fixes

  • website-SVG: rectify SVG import style (8fbe9b9)

🚀 Building Work

  • deps-bot: remove GitHub dependabot (4b51593)
  • eslint: add dg-scripts linter configuration (86be0e3)
  • lint: disable auto-fix for linter (bdcae56)

✨ Today I Learned

  • devops-library: useful GitHub actions (c35b54f)
  • git-commit: lint files with husky and lint-staged (98d7a82)
  • library-devops: cypress and lighthouse CI action (7068698)
  • library-devops: GitHub release action (7032574)
  • library-devops: linter actions (e58f878)
  • library-web: animate library (6cca528)
  • library-web: animation motion library (80a3183)
  • library-web: Blitz fullstack React framework (281f23a)
  • library-web: comments widget based on GitHub issues (aa999f7)
  • library-web: css buttons library (6fde460)
  • library-web: CSS design and shapes tools (13f98a5)
  • library-web: GitHub hotkey library (bb9204f)
  • library-web: NanoID library (798313a)
  • library-web: passport.js authentication (1d0562b)
  • library-web: React count up animation component (3b82185)
  • library-web: Rust and C++ desktop application solution (0645d8f)
  • library-web: state management library (a0a1ec7)
  • library-web: Three.js renderer for React (53b70a6)
  • library: code call graphs generation (8385ff9)
  • linux-zsh: autosuggestions and syntax highlighting plugins (4e26431)
  • vim-LSP: language server for Vue (a1b51c0)
  • web-CSS: change default styles for form elements (ac6c287)
  • web-CSS: CSS performance guide (3e4508a)
  • web-CSS: sticky footer with grid and min-content (aa51246)
  • web-devops: monorepo management tool (721ec93)
  • web-JavaScript: default event processing mode (e42e8a9)
  • web-JavaScript: drag event pitfalls (2ff5cdc)
  • web-JavaScript: handler for client auth error (4756e73)
  • web-JavaScript: HTTP status codes (9bc8ebc)
  • web-JavaScript: JavaScript implementation list (45d66c1)
  • web-JavaScript: JWT auth client (46d4245)
  • web-JavaScript: real world use case for Drag and Drop API (f7b260d)
  • web-JavaScript: replace . with destructuring whenever possible (7e401d2)
  • web-JavaScript: review DOM API (126c55c)
  • web-library: HTTP/1.1 client from Node.js team (166c6f3)
  • web-library: JavaScript and NodeJS library (e46dd83)
  • web-library: React device detection library (951820c)
  • web-library: record and reploy testing library (1a4e662)
  • web-library: SEO helper library (89580e7)
  • web-library: slider and carousel library (2b27618)
  • web-library: Tailwind visualization tool (fee9796)
  • web-library: VSCode web IDE (815eba2)
  • web-Node: NPM ghost dependencies (c28e244)
  • web-React: useMemo to Context value (99e1dd5)
  • web-React: concurrent debounce hooks in React 18 (a2e449e)
  • web-React: hooks value attach to fiber node (cbfd0f1)
  • web-React: priority scheduler in React 16 and 17 (baaacf0)
  • web-React: React 18 concurrent mode (80b3a87)
  • web-React: React children API (99c64b6)
  • web-React: SPA deployment (956c680)
  • web-React: synthetic events delegation in React 17 (41afd51)
  • web-Redux: new paradigm for state management (e61b9a9)
  • web-Vue: setup SFC can't access this (9d34450)
  • web-Vue: useRoute and dynamic router (6c84ed7)
  • web-Vue: v-if vs v-show (6fae454)
  • web-Vue: access vite env variables via import.meta.env (019e930)
  • web-Vue: attributes binding directive (208b5de)
  • web-Vue: basic usage of Vue router (4c68caf)
  • web-Vue: class and style binding directives (bd7b2fc)
  • web-Vue: combine JS animation library with transition (403392d)
  • web-Vue: combine named slots and scoped slots (bf51874)
  • web-Vue: component v-model directive (9721ecd)
  • web-Vue: component v-model directive implementation (ff2cbbb)
  • web-Vue: components custom events (79927cf)
  • web-Vue: computed value (51cbd5e)
  • web-Vue: conditional and list rendering (adc82d4)
  • web-Vue: event handlers directive (9de75d6)
  • web-Vue: fallback, named and scoped slots (7c9ae1f)
  • web-Vue: named scoped slots shorthand (c3024ee)
  • web-Vue: named slot directive shorthand (42348df)
  • web-Vue: named Vue routes (da269c3)
  • web-Vue: navigation guards routes (f962830)
  • web-Vue: nested routes (0ef2ffb)
  • web-Vue: programmatic routes navigation (6d69070)
  • web-Vue: replace and traverse routes (6b0a5ac)
  • web-Vue: SFC and Composition API reference (4363c7d)
  • web-Vue: testing friendly for passing route props (b04d717)
  • web-Vue: transition group (7afad4a)
  • web-Vue: transition JavaScript hooks (d348152)
  • web-Vue: two methods to access route params (72957c5)
  • web-Vue: v-model directive (ca339e4)
  • web-Vue: v3 transition class name (b350823)
  • web-Vue: vite basic configuration (8cc61f4)
  • web-Vue: Vue 3 API and tooling best practice (101bd01)
  • web-Vue: Vue suspense for async components (3a6ccb7)
  • web-Vue: Vue transition and animation (74ea94c)
  • web-Vue: vuex types guide (3cd37a1)
  • web-Vue: vuex TypeScript types (3d544f8)
  • web-Vue: wrap vuex useStore (e892367)

3.5.2 (2021-09-23)

✨ Today I Learned

  • git-commit: git commitizen tools (dd0fe66)
  • library-web: avatar image library (18c412d)
  • library-web: command P interface widget (a8c771d)
  • library-web: NPM publish action (d8cb7a0)
  • library-web: pino logger middleware (1507384)
  • library-web: React SVG icons library (5e11757)
  • library-web: web driver framework (04f30bf)
  • linux-zsh: zsh basic setup configuration (d8440b1)
  • web-JavaScript: cypress E2E testing example (8d229a7)
  • web-JavaScript: review web animation API (6c2a748)
  • web-JavaScript: user event for testing-library (a323574)
  • web-JavaScript: web animation API abstraction (399cd10)
  • web-React: complex custom useStore hook (b12e7f0)
  • web-Vue: review Vue design pattern (4b12c26)

3.5.1 (2021-09-21)

🐛 Bug Fixes

  • deps: update dependency @mdx-js/react to ^1.6.22 (#139) (731c423)
  • deps: update react monorepo to ^17.0.2 (#140) (cbb0bb5)
  • web-CSS: rectify syntax error (b98bffb)

🚀 Building Work

  • CI: add multiple environment for building (fb9ff57)
  • CI: reduce virtual machines efforts (cb10354)
  • CI: reduce virtual machines efforts (f81c6f6)
  • deps-bot: change PR concurrent limits (7f85fdb)
  • deps-bot: enable pin version (20e42aa)
  • deps-bot: enable non-major deps automerge (68974a0)
  • deps-bot: setup renovate bot configuration (23ae45d)
  • deps-bot: widen peerDeps and engines (65a6bf8)
  • deps-style: add eslint and stylelint support (62dbbe2)
  • deps: add webpack package (066c1f4)
  • deps: pin dependencies (5b624a0)
  • website-deps: pin [@docusaurus](https://github.com/docusaurus) version (5d27e2e)

✨ Today I Learned

  • git-branch: list upstream branches (20398b7)
  • git: disable autocrlf (fc1af62)
  • library-CLI: ncc and pkg CLI tools (dd999ce)
  • library-CLI: task runner UI for CLI app (0bb3722)
  • library-devops: auto approve action (aeef9d6)
  • library-devops: bundle size action (1dcf795)
  • library-devops: bundle size action (50f5214)
  • library-devops: GitHub stale action (4cfe012)
  • library-devops: lock issues and PRs github action (1e2ae2e)
  • library-web: Alibaba formily library (d34589b)
  • library-web: box shadow CSS utils (08cfcd5)
  • library-web: BundlePhobia fro NPM size cost (2b5b907)
  • library-web: charts and UML draw utils (9f18b40)
  • library-web: charts visualization library (bd55f9e)
  • library-web: color utils and palette tools (d64a76a)
  • library-web: css doodle (b621054)
  • library-web: graceful shutdown middleware (4cef86d)
  • library-web: Markdown parser and compiler (0ec5d8a)
  • library-web: Node server middlewares (a276db4)
  • library-web: OpenAPI SDK generator (956d9d4)
  • library-web: PDF library (07ffb08)
  • library-web: Redux framework (42674a9)
  • library-web: type safe CLI library used by yarn berry (6885453)
  • library: JS parser (9cd268d)
  • linux: refactor commands list (3d1cce1)
  • neovim: LunarVim configuration for NeoVim (8fa50ce)
  • Node-NPM: setup npm registry token (f27d11d)
  • Node-yarn: yarn up command usage (5355745)
  • Node-yarn: yarn basic configuration (b6b12e1)
  • vim-LSP: NeoVim language server (3bacfb7)
  • vim-plugins: NeoVim tree sitter plugin (a23b8ac)
  • vim: NeoVim installation (f43f174)
  • vim: setup NeoVim configuration (9efc7e0)
  • web-CSS: reducing need pseudo elements (a67e76c)
  • web-devops: dependencies maintenance action (0f4a2a7)
  • web-HTML: semantic search element (511019b)
  • web-JavaScript: 7 primitive values (1c3d7ae)
  • web-JavaScript: AJAX alternatives (bd335bf)
  • web-JavaScript: basic testing API comparsion (0d1afe4)
  • web-JavaScript: Chromium internal reference (4811741)
  • web-JavaScript: complete console API (79dad68)
  • web-JavaScript: log points via Node debugger (3c3ae3b)
  • web-JavaScript: more console functions (e0fd2f8)
  • web-JavaScript: offscreen canvas API (661ca4e)
  • web-JavaScript: performance API (978493d)
  • web-JavaScript: remove var usage (63a7d4b)
  • web-JavaScript: review client Rect APi (58b9f59)
  • web-JavaScript: review ES6 Proxy feature (5b2b2db)
  • web-JavaScript: simple test runner implementation (6174c70)
  • web-Node: dependency pinning guide (cf2696d)
  • web-Node: Node crash handling (2fc9cec)
  • web-Node: review npm/yarn lockfile (d30b7d5)
  • web-Node: yarn berry real world use case (5660089)
  • web-Node: yarn berry use case (b169a7b)
  • web-performance: chrome user experience report (6f8e5fb)
  • web-performance: devtool performance panel (8818164)
  • web-React: Context API usage patterns (a1c0fac)
  • web-React: custom Recoil hooks implementation (99d4c73)
  • web-React: framework paradigm guide (c82efe3)
  • web-React: React GitHub CI testing (9b899d1)
  • web-React: Recoil minimal implementation (d7a9e39)
  • web-React: review React performance mental model (84309f6)
  • web-React: two way binding for parent Atom children selector (bc90b7d)
  • web-Redux: createAsyncThunk API (d801f78)
  • web-Redux: dispatch type definition (7c6e68a)
  • web-Redux: react-redux binding library (28c3e2d)
  • web-Redux: advanced usage for RTK query (bc13efe)
  • web-Redux: async thunk action types (c152ccb)
  • web-Redux: basic configureStore usage (d4cac6e)
  • web-Redux: basic SSR for Redux (c37de03)
  • web-Redux: create store manually (5b4cf2b)
  • web-Redux: dynamic reducers and middlewares (e882e27)
  • web-Redux: ImmerJS in Redux toolkit (205c4d9)
  • web-Redux: importance of memorized selectors (18251fa)
  • web-Redux: internal types for RTK API (38f3eff)
  • web-Redux: less boilerplate code with createAsyncThunk (59a5404)
  • web-Redux: normalizing data state (27299e6)
  • web-Redux: quick start guide for RTK (fa3059f)
  • web-Redux: reduce middlewares with reverse order (d84cd60)
  • web-Redux: reducer boilerplate and enhancer (aae79dc)
  • web-Redux: reducer matcher example (e42ece5)
  • web-Redux: Redux style guide (34011a0)
  • web-Redux: Redux undo library (616b700)
  • web-Redux: reselect selectors mental model (ac54109)
  • web-Redux: RTK qeury cache utils (6443e46)
  • web-Redux: RTK query code splitting (a397ea9)
  • web-Redux: side effects logic in middlewares (16128a0)
  • web-Redux: strict reference comparison for useSelector (4c61c20)
  • web-Redux: usage of Redux middlewares (9a08fd9)
  • web-Redux: useSelector hook internal (80655e2)
  • web-TypeScript: discussion on TypeScript turing complete (fbc2d9c)
  • web-TypeScript: review tuple type (eb70526)
  • web-TypeScript: TS compiler internal (3c5b089)
  • web-webpack: hot module replacement internal (e6762ef)
  • web-yarn: yarn basic usage (797aab1)

3.5.0 (2021-09-11)

✨ Features

  • yarn: switch from npm to yarn 2 (c46fc82)

✨ Today I Learned

  • library-devops: GitHub actions (9d373c7)
  • library-devops: monorepo specific version and changelog tool (cdb4865)
  • library-JavaScript: JavaScript parsers (32119ad)
  • library-JavaScript: RE2 regular expression engine (02c4517)
  • library-JavaScript: regular expression string utils (48c684a)
  • library-React: React hooks gallery (d16e6c0)
  • library-React: React loading placeholder components (3997137)
  • library-web: AST explorer (1cabb36)
  • library-web: carousel component (f45daa8)
  • library-web: local GitHub action runner (7466f69)
  • library-web: monorepo project tools (9217a3d)
  • library-web: React form components (5873930)
  • library-web: React JSON schema form component (d60a7e5)
  • library-web: React library (aca1e81)
  • vim: NeoVim configuration (15b7cef)
  • web-babel: correct babel preset modules configuration (b44c70b)
  • web-CSS: fusion effect with CSS filter (7fa0c17)
  • web-i18n: i18n solution (0250e2c)
  • web-JavaScript: review strict equal operator (20472fb)
  • web-JavaScript: VSCode intellisense for configuration files (2c606ea)
  • web-Node: yarn 2 (berry) migration guide (c46bb77)
  • web-NPM: NPM dependencies resolution (7ebd57a)
  • web-React: React performance mental model (578e8bc)
  • web-React: review React.memo usage (b65844f)
  • web-security: review CSRF protection (25a42f6)
  • web-security: review web authentication (b98fa77)
  • web-webpack: capture build erros via done hook (bd5dc54)
  • web-webpack: library bundle configuration (acacc14)
  • web-webpack: typed custom plugin via JSDoc annotation (d847462)

🚀 Building Work

  • CI: change to yarn berry (af85e48)
  • deps-bot: add renovate.json (#131) (1d242b4)
  • deps-bot: change semantic commit type (3d1c771)
  • deps-bot: disable renovate dashboard (3029f19)
  • deps-bot: schedule deps bot to weekend (c8974e7)
  • deps-bot: setup renovate bot configuration (f5f4684)

3.4.1 (2021-09-09)

🚀 Building Work

  • bot: add configuration for todo bot (f9f361b)
  • bot: change keyword for todo bot (b397889)
  • CI-CodeQL: change crontab time (636570e)
  • CI-CodeQL: setup CodeQL analysis (faed98f)
  • dependabot: change versioning strategy (6e89768)
  • deps-dev: bump @docusaurus/module-type-aliases (#126) (e12ab29)
  • deps-dev: bump @types/react from 17.0.19 to 17.0.20 (#125) (375c511)
  • deps-dev: bump prettier from 2.3.2 to 2.4.0 (#129) (7338a2a)
  • deps: bump @docusaurus/core from 2.0.0-beta.5 to 2.0.0-beta.6 (#123) (a69f13f)
  • deps: bump @docusaurus/preset-classic (#124) (7404338)

⚡ Performance

✨ Today I Learned

  • library-web: cutting edge state management library (f1a8693)
  • library-web: tracing based JavaScript assertions (85d359e)
  • library-web: utils (9566a41)
  • linux: linux fonts installation and configuration (839a46e)
  • linux: list available fonts (2592945)
  • web-authentication: review token authentication (b16600b)
  • web-CSS: mobile viewport utils (bd8deee)
  • web-CSS: prefers media query (b13e951)
  • web-fingerprint: information to generate fingerprint (593c806)
  • web-HTML: a11y for figure and figcaption (139d80d)
  • web-JavaScript: CSR, SSR, SSG and ISR (4db1ad5)
  • web-JavaScript: review DOM API (e6b35ec)
  • web-Node: corepack tool (package manager manager) (e040b88)
  • web-Node: Node version manager usage (a11f028)
  • web-Node: simple web crawler (9095e2d)
  • web-React: event listener hook (e1f3c5c)
  • web-React: review complex hooks form (5fe9819)
  • web-React: server state management (41c2405)
  • web-Redux: action creator in Redux toolkit (a265827)
  • web-Redux: basic RTK query usage (e087a12)
  • web-Redux: case and match reducer execution order (9227a61)
  • web-Redux: curry function for implementing Redux middleware (488d661)
  • web-Redux: data selectors (3b4ef0a)
  • web-Redux: ImmerJS in createReducer and createSlice (ffa12f2)
  • web-Redux: ImmerJS pitfalls (1f989af)
  • web-Redux: memorized selector functions with Reselect (ffa2946)
  • web-Redux: mutate-style reducer in redux toolkit (687618e)
  • web-Redux: necessity for Redux (dcc701c)
  • web-Redux: normalize state via createEntityAdapter API (3e928bc)
  • web-Redux: only string action types (d91c92b)
  • web-Redux: Redux performance best practice (a5aa745)
  • web-Redux: Redux slice (c72eae8)
  • web-Redux: review Thunk (45468fa)
  • web-semver: pre-release semantic version (11d439c)
  • web-webpack: set maxSize for chunks splitting (586bb61)

3.4.0 (2021-09-05)

🚀 Building Work

  • CI-azure: remove azure pipelines (3b0d76d)
  • CI: format code (d5c5126)
  • CI: remove redundant artifacts stage (66b90c2)
  • CI: remove redundant stage (c86e106)

✨ Today I Learned

  • design pattern: front end domain driven design guide (fd1bd33)
  • design pattern: inject deps into context API (b5be056)
  • git: git rev-list command (89ce892)
  • library-web: cypress axe integration library (f389caa)
  • library-web: data mock library (6f6b603)
  • library-web: domain parser (725ee38)
  • library-web: Formik library (ced6715)
  • library-web: formula library (cfc7a33)
  • library-web: http data mock library (c2e1b72)
  • library-web: Node server solution (1570e4c)
  • library-web: parallax library (a171440)
  • library-web: React Redux toolkit library (030d3f1)
  • library-web: redux reselect library (8115e45)
  • library-web: tailwind classes merge utility (ec3fa92)
  • library-web: TypeScript utility types (aef2bdc)
  • library-web: universal headless automation tool (7248d1b)
  • library-web: universal solution for miniapp (508e7b6)
  • library-web: Vue composition utilities (8acac51)
  • web-a11y: a11y usage rule (8d53bbb)
  • web-a11y: WAI-ARIA example (711e2fd)
  • web-css: review sticky footer (1eaa963)
  • web-css: timeline and steps css style (448069c)
  • web-JavaScript: clear memory leak (40e940f)
  • web-JavaScript: ES2022 class static block (36d06f4)
  • web-JavaScript: memorize async function with Promise (57fc6d3)
  • web-JavaScript: V8 garbage collection mechanism (53579f0)
  • web-JavaScript: webpack devtool source map config (7198c23)
  • web-network: QUIC protocol (32d793f)
  • web-network: review HTTPS (af266cc)
  • web-React: code splitting in create-react-app (92306ef)
  • web-React: compound components (1466645)
  • web-React: context API to avoid prop drilling (5f829f6)
  • web-React: context API use case for AuthProvider (48cb6e2)
  • web-React: disable source map generation in CRA (e6adf25)
  • web-React: server state management (254a265)
  • web-security: review XSS, CSRF and DDoS (bbb6569)
  • web-webpack: advanced webpack chunks splitting configuration (643b6b2)
  • web-webpack: CSS tree shaking plugin (4b6bda5)
  • web-webpack: detailed webpack chunks splitting configuration (dcfbcac)
  • web-webpack: improve webpack build performance (cc9cfa1)
  • web-webpack: resolve tsconfig plugin (4e245e1)
  • web-webpack: split chunks vendor search path (c3bceac)
  • web-webpack: split runtime chunk (430403f)
  • web-webpack: webpack 5 cache feature (8a44704)
  • web-webpack: webpack caching for modern browser (dc156c5)
  • web-webpack: webpack minimize configuration (8ade6db)
  • web-webpack: webpack optimization guide (d0f8e23)

✨ Features

  • tags: add tags metadata (962a99e)

3.3.0 (2021-08-31)

🚀 Building Work

  • deps-dev: bump @docusaurus/module-type-aliases (0231dc4)
  • deps-dev: bump typescript from 4.3.5 to 4.4.2 (8fe81fe)
  • deps: bump @docusaurus/core from 2.0.0-beta.4 to 2.0.0-beta.5 (30a32c0)
  • deps: bump @docusaurus/preset-classic (f3defd0)

✨ Today I Learned

  • algorithm-OJ: two pointers for palindrome (61ac40f)
  • algorithms-OJ: palindrome problem (117f994)
  • algorithms: set for duplicates problem (c364fb5)
  • cs-OJ: KMP string search algorithm (1503067)
  • cs-OJ: middle limits process in binary search (9c7ef1a)
  • cs-OJ: refactor OJ basic notes (62a8dbd)
  • cs-OJ: repeated string problem (72becfb)
  • cs-OJ: review segment tree (3cc7e8c)
  • cs-OJ: two pointers in array for slide window (30cc8cc)
  • cs-OJ: xor operator usage (8334639)
  • design patterns: review basic design patterns (834fea3)
  • library-devops: feature toggle service (A/B test) (2206b78)
  • library-web: carousel and presentation slides (052c396)
  • library-web: community excel library (eb4a3f9)
  • library-web: front-end checklist (e02a21e)
  • library-web: FS mock library (4a7190b)
  • library-web: graceful Node file system API alternative (ad81ef1)
  • library-web: Jotai state management (3a56b95)
  • library-web: JSON GraphQL mock server (c420d0b)
  • library-web: markdown editor (dfdd225)
  • library-web: Next.js documentation static site generator (3c61d0d)
  • library-web: Node file system utils (01952ad)
  • library-web: Node standard API alternatives (0dc576d)
  • library-web: React hooks for remote data fetching (88a1fb5)
  • library-web: React i18n library (c041ba0)
  • library-web: React inspector tools (d49d289)
  • library-web: React Query library (98a77c0)
  • library-web: React toast notifications (4c00442)
  • library-web: React UI library (e7db005)
  • library-web: redux framework (bb7792e)
  • library-web: regular expression online tool (e0e98d4)
  • library-web: state hook (f4cd4c6)
  • library-web: TinyMCE rich text editing library (78d979f)
  • library: file utils library (8cf76fe)
  • web-JavaScript: devtool panel detection (5ae6f15)
  • web-JavaScript: tree shaking tips (ee87fc3)
  • web-JavaScript: webpack internals (8a1b2f1)
  • web-modules: CommonJS require execution (fd99ed4)
  • web-performance: window.performance.timing API (b40e5e0)
  • web-React: context usecase (c1566ba)
  • web-React: review React performance tips (5c96ead)
  • web-TypeScript: indexed access types (cbe5d90)
  • web-TypeScript: symbol and template literal index signature (6fedf88)
  • web-webpack: webpack CLI UI and profiler plugin (6e9f75c)

3.2.0 (2021-08-26)

✨ Today I Learned

  • library-web: JieBa chinese text segmentation (b4b54f0)
  • oj: some OJ tips (3454d7d)

✨ Features

  • oj: remove C++ OJ notes, ship to TS (a59a408)

3.1.0 (2021-08-22)

🐛 Bug Fixes

  • website: remove redundant pages (37dd740)

✨ Today I Learned

  • library-web: file saver library (ce55911)
  • library-web: text and document search library (7d26554)
  • web-module: CommonJS vs ES6 module (fb957b1)
  • web-module: module require and evaluation (1a0ff96)
  • web-performance: review memory leak in JS (e29831e)
  • web-React: truth about React virtual DOM (b261418)
  • web-React: virtual DOM library (c19d93a)
  • web: eslint and webpack plugin for circular imports (213473b)

✨ Features

  • website-search: add document search (lunr.js) support (aa196cb)

3.0.0 (2021-08-21)

⚠ BREAKING CHANGES

  • web: switch from vitepress to docusaurus.

🚀 Building Work

  • deps-dev: bump @sabertazimi/vitepress from 0.16.0 to 0.17.0 (ca18287)
  • deps-dev: bump vitepress to latest version (b8dc0a0)

✨ Features

  • web: switch to docusaurus notes generator (e21b7ba)

✨ Today I Learned

  • library-web: alert, notification, prompt and toast (59dbb8a)
  • library-web: Prism React renderer (dcf8ed9)
  • library-web: React live editor (6d102ae)
  • library: svg and perf site (a69ee2e)
  • web-cache: file hash name and cache control (5531c5d)
  • web-performance: HTML parser performance (4bed462)
  • web-performance: perf data reporting methods (0dab02d)
  • web-performance: review code splitting (70dea1f)
  • web-React: CRA environment variables (84f1399)
  • web-React: CRA environment variables list (d0e64df)
  • web-React: CRA PWA template (f99047b)
  • web-React: CRA relative paths deployment (52614fa)
  • web-security: content security policy for prevent XSS (68c1dd6)

🐛 Bug Fixes

  • CI-build: rectify building result directory (5f0637d)
  • code-dark theme: change dark code theme to vscode (a13ace1)
  • docusaurus-navbar: rectify active class for navbar links (99aa3f0)
  • java: add correct code block (5383373)
  • NPM-ignore: remove unnecessary ignore file (6ae273f)
  • README: rectify generator (5a89365)
  • syntax highlight: add complete prism highlight (024bc83)
  • website: add more navbar links (88d223c)
  • website: hidden navbar when scrolling (70d1321)

2.1.2 (2021-08-18)

🐛 Bug Fixes

  • deps-ddp: remove duplicated packages (88aa3a8)
  • lint: remove empty line (54a3637)

✨ Today I Learned

  • git: git clean command (b3b3d8b)
  • git: git commit emoji (3b50c3b)
  • library-devops: monorepo devops tools (2037f2d)
  • library-web: file watch library (88778b7)
  • library-web: hyper formula excel calculation libary (42902f8)
  • library-web: JS zip library (683729e)
  • library-web: open source icons (e654189)
  • library-web: pace.js site progress bar (97be7d0)
  • library-web: popper.js v2 (860027f)
  • library-web: React benchmark component (74740f1)
  • library-web: TypeScript AST utils (28c7075)
  • library-web: unused TS exports detection (c7c5a29)
  • web-css: PostCSS and StyleLint plugins (9d7c368)
  • web-JavaScript: definition of tree shaking (48e7425)
  • web-JavaScript: ES6 iterable types (d87e7d5)
  • web-JavaScript: ESLint plugins (dc1b2af)
  • web-JavaScript: macro and micro tasks (b8f3934)
  • web-JavaScript: review RegExp (1e594ee)
  • web-JavaScript: review tree shaking case (edcc9b7)
  • web-NPM: add useful NPM mirrors URL (e2dd782)
  • web-npm: invalid pacakge (98c4c92)
  • web-performance: monitor reporting performance (4404f89)
  • web-performance: performance user case (e0b5429)
  • web-React: CRA and react-scripts initialization (22405ee)
  • web-React: CRA css usage (cc97854)
  • web-React: new jsx transform (ee100eb)
  • web-React: public folder (PUBLIC_URL) hatch (9bf4796)
  • web-React: react-scripts start locally (4370582)
  • web-React: router basename (7fee77a)
  • web-React: routes for CRA deployment (1f05d4d)
  • web-security: user privacy leaks (1428be4)

🚀 Building Work

  • CI-azure: add more pipeline triggers (68ab749)
  • CI: initialize git config (f082d33)
  • CI: set up CI with Azure Pipelines (6f89bd2)
  • markdown-toc: change toc level to 3 (29e3850)

2.1.1 (2021-08-12)

✨ Today I Learned

  • library-web: Code House cheat sheets (fe968da)
  • library-web: css background util (70702ac)
  • library-web: private npm registry (449795d)
  • web-JavaScript: form validity APi (59a33c2)
  • web-React: CRA template default types definition (8082ab7)
  • web-React: custom react scripts (88f1ca7)
  • web-React: deployment services for SPA (4a5eef8)
  • web-React: deps in CRA template (d06663b)
  • web-testing: Jest async testing (119872e)
  • web-testing: user event testing library (28d86a7)

2.1.0 (2021-08-10)

Features

  • GitHub Linguist: enable markdown lanuage detection (e1ff4aa)

Testing

  • web-testing: e2e testing focus (0089521)

Today I Learned

  • design patterns: review design patterns (a33bf44)
  • git-GitHub: GitHub linguist config (1535147)
  • git-log: git log advanced filters (5bf75d1)
  • jest-paths: resolve paths from tsconfig.json (1f41e63), closes #105
  • library-devops: application performance monitoring system (346a617)
  • library-web: 3d tilt library (7528f89)
  • library-web: auto mapper TS library (6e08d33)
  • library-web: chokidar file watching library (3c8ef44)
  • library-web: currencies i18n TypeScript library (fdee495), closes #105
  • library-web: design resources (2bd6e40)
  • library-web: i18n library (19250b6)
  • library-web: JamStack rendering policy (c992cc9)
  • library-web: postcss preset env plugin (1e3b30a)
  • library-web: React toast library (9e92024)
  • library-web: three CSS-in-TypeScript library (d2f86f0), closes #105
  • library-web: type-safe (TypeScript) APIs server (de131f1), closes #105
  • library-web: TypeScript audio library (2765feb)
  • library-web: universal tool for packges comparison (a8857ab), closes #105
  • library-web: V8 compile cache (67f0a83)
  • library: devops platform (a931127)
  • library: image and audio library (f3704e5)
  • library: micro front-ends (6ffa8f5)
  • library: souregraph (e2ec8bb)
  • web-a11y: a11y 101 tips (4f15cbe), closes #105
  • web-a11y: a11y checklist (ec6f894), closes #105
  • web-a11y: a11y devtools (f1786f0), closes #105
  • web-a11y: devtools element inspection (80230b9), closes #105
  • web-a11y: WAI-ARIA roles (3bbbb84), closes #105
  • web-a11y: WAI-ARIA roles (40220d1), closes #105
  • web-a11y: web concent a11y guidelines (5eedbce), closes #105
  • web-css: BootStrap 5 cheatsheet (b573512), closes #105
  • web-css: button label vertical alignment (b515d03)
  • web-CSS: CSS shapes and icons (3fa4a58)
  • web-css: custom form widgets (949b76f)
  • web-css: custom table cells (06c83b8)
  • web-css: diff between *-content and *-items in flex/grid (57badf7)
  • web-css: geometry tips (9d9add0)
  • web-css: homepage UX tips (2269f57)
  • web-css: hover gradient button (81c699c)
  • web-css: move css perf to basic notes (99efa72)
  • web-css: multiple-column layout (704d471)
  • web-css: shape-outside style (1739b55)
  • web-css: size and position for gradient button (4d937a8)
  • web-JavaScript: cypress reference (8060214)
  • web-JavaScript: JamStack methodology (0b7ad9d)
  • web-JavaScript: memory snapshot panel (47d5925)
  • web-JavaScript: monkey patch debug tips (7505bd2)
  • web-JavaScript: more ESNext features (a6a88c2)
  • web-React: React children array API (91bc504), closes #105
  • web-React: react hooks testing (1cbfdb6)
  • web-Redux: redux performance pitfalls (cda0db7)
  • web-testing: jest expect DOM extension (1cc94f9)
  • web-testing: Jest API and mocks (eea850d)
  • web-testing: Jest DOM expect API (2c4811b), closes #105
  • web-testing: jest mock (a714277)
  • web-testing: jest setup configuration (badc164)
  • web-testing: more jest configuration (f5484c0), closes #105
  • web-TypeScript: function overload (4a93478)
  • web-TypeScript: generic types constraints (e79e935)
  • web-TypeScript: implicit index signature error (51a54a0), closes #105
  • web-TypeScript: input types (94316c7), closes #105
  • web-TypeScript: pros of decorators (374f5c1)
  • web-TypeScript: static files modules (7572010), closes #105
  • web-TypeScript: type guard (2a24820)
  • web-webpack: get paths from tsconfig.json (6c5c75d)
  • web-webpack: webpack 5 assets module (88dcabf)

2.0.3 (2021-08-03)

Bug Fixes

  • markdownlint: remove redundant words (9c13e21), closes #105

Building Work

  • CHANGELOG: add update field for TIL (bf7cdf6)

Today I Learned

  • git-GitHub: review GitHub pages setup (b2d180a)
  • web-Node: exports and typeVerions fields (4bd5de3), closes #105
  • web-Node: exports path alias (bf359ab), closes #105
  • web-NPM: npm workspaces basic usage (5fc2884), closes #105
  • web-TypeScript: index signature of Enum (0346523)
  • web-TypeScript: module resolution (a9353e0)
  • web-TypeScript: paths mapping in tsconfig.json (274de00)
  • web-TypeScript: workspaces and references for monorepo (65a715a), closes #105

2.0.2 (2021-08-02)

Bug Fixes

  • release: tag with signature (6f79032)

2.0.1 (2021-08-02)

Building Work

  • CHANGELOG: add more fields to CHANGELOG (0d0903a)
  • scripts: add dry-run release support (c25fa6e)

2.0.0 (2021-08-01)

Features

  • branch: git branch management (dbf0e5a)
  • C-BasicNotes: learn tips on pointer and process functions (cd3255c), closes #26
  • C-Demo: add alloctor functions' implementation (377aa5e), closes #26
  • CodeGuide-Bug: learn common bug list (1e33f91), closes #8 #10
  • ComputerSystem: begin to learn theory about CS (9d2bd5d), closes #18 #25 #26 #27
  • cpp: start learn basic cpp grammar (39a1721)
  • CS-CSAPP: Start make notes about csapp (44e1640)
  • cs-social network: add social network basic notes (2d62630)
  • CSS-CSS3: complete learning CSS3 Basic (62eef07)
  • CSS-Demo: complete code cademy proj (66a5bce), closes #43
  • CSS-Selector: wholly master CSS 3 Selectors (1aef0b1)
  • Data Base - MongoDB: add mongdb set up intro (50b4512)
  • Device: Add a list of computer devices I want to own (4702355)
  • Git-Basic: whole learn basic git knowledge (4547ad2), closes #22
  • Git-GitHub-License: addd 4 unique license (e6ef4c1)
  • Git-GitHub: create repo in bash by curl (4ab7a79)
  • Git-GitHub: Shorten GitHub URL with git.io (b450c95)
  • Git: learn git basic (dcb4626)
  • H5: new tags (22fbdcc)
  • Haskell-Advanced-Monad: learn advanced monad but not understand (78e61ec), closes #32
  • Haskell-functionalTypeclass: learn functor Applicative monoid (5174a03), closes #32
  • Haskell-Functor: learn haskell functor Typeclass (9d22667), closes #32
  • Haskell-IO: learn file input/output actions (ffc70fc), closes #32
  • Haskell-Monad: learn Monad feature and Maybe Monad (217f5bb), closes #32
  • Haskell-OJ: add OJ profile to reserve solutions on codewars.com (34904f8), closes #32 #28 #34
  • Haskell-Syntax: learn syntax of function (599dd1c), closes issue#32
  • Haskell-type/IO: learn type and IO basic (3a6a86c), closes #32
  • Haskell-Typeclass: learn typeclass (734ab27), closes #32
  • Haskell: dive into haskell world (d7c32bd)
  • Haskell: learn higher order function and module (20a7cdc), closes issue#32
  • Haskell: today i learned (f192d53), closes #32
  • HTML5 && Linux-SetUp: learn something about HTML5;change editor (2473714)
  • Java: change JavaBasic.docx to JavaBasic.md (969c85f), closes #1
  • JS-Demo-Tips: add useful js demo (8f79f32), closes #30
  • lang-golang: start to learn golang to write a jvm with golang (77e48ce), closes sabertazimi/awesome-notes#25
  • language-english: start take vocabulary notes on github with md (573e3c8)
  • Linux Setup;Git;HTML5 (e49b9df)
  • Linux-IRC: learn IRC basic commands (3caad02)
  • linux-makefile: learn basic makefile grammar (e323895)
  • linux-set up: add npm install feature for ubuntu_setup.sh (367995f)
  • Linux-SetUp: shell command line making soft link about VSCode (45b747c)
  • Linux-Shell: Add read passward for sudo shell script (b799e7a)
  • Linux-SSH: with config file, auto-switch ssh file (17161ef)
  • Linux-Vim: learn vim advanced feature (99680b0), closes #21
  • Linux: change Linux.docx to Linux.md (63c4339), closes #2
  • MachineLearning-Sklearn: first try on sklearn (f37b7a0), closes #47
  • makefile: add rule for running program (7e08dd6)
  • Matlab: add matlab set up intro (da220eb)
  • Nodejs-Module: my first self-defined module (ac4af4b), closes #51
  • Nodejs-Workshop-IO: complete some exercises on workshop (ad45677), closes #51
  • os: start to learn operating system (f820ef5)
  • Python-Jobs: 面试题 (704c196)
  • reac-router: learn basic perspective about react router (16b0cd1), closes #11
  • search Engine: learn index list in SE from zhihu (8a48b7c)
  • Test-Fuzzing: learn fuzzing Testing (724e06a), closes #31
  • Wbe-H5: learn Canvas/Web Storage/Web Sockets (7058406)
  • Web-ES2016: refactor js basic notes markdown file (9f3b79d)
  • Web-H5: add H5 canvas demo html (5b9fd80)
  • Web-H5: learn Geolocation API (886ec2a)
  • Web-H5: learn Web Socket Basic (97a0aee)
  • Web-H5: learn Web Storage API basic (b087a4d)
  • Web-JS-Advanced: learn Event-Delegate Mechanism (d02311c), closes #61
  • Web-JS-Proj: complete freecodecamp Proj (d7efb1a), closes #13 #29
  • Web-JS/Node: learn js node (54257fa), closes #5
  • Web-JS: complete some practice on Free Code Camp (238d8e5)
  • Web-JS: learn DOM basic (cd1bb99)
  • Web-JS: learn DOM-core HTML-DOM CSS-DOM (6a3aa07)
  • Web-JS: learn js function and object basic (07fae37)
  • Web-JS: learn object details and design patterns (d851dcb)
  • Web-JS: learn patterns for modules management (69f7333)
  • Web-JS: learn useful function mode (5cddb6b)
  • Web-JS: MVC (613e01a)
  • web-react-redux: learn some basic principles on redux (311c302)
  • Web-React: learn React Framework (180b1fb)
  • web-security: learn sql injection and click jacking hacking (02d05c2)
  • web-webpack: learn some optimization tips on webpack (106f09e)

Bug Fixes

  • C-Thread-Semaphore: fix some typo (9391c6c), closes #7
  • clrs: fix == typo (1e3e384)
  • clrs: fix right_rotate bug (8f81e60)
  • compiler: fix markdown typo (e9bdc22), closes #25
  • compiler: fix markdown typo (a03ea6d), closes #25
  • C: refactor directory (72bd966)
  • Git-Branch: fix markdown syntax error (c52af3a)
  • Haskell: fix markdown syntax error (97f1019), closes #32
  • js: rectify markdown syntax error (1b40d4b), closes sabertazimi/awesome-notes#105
  • language-cpp: rectify some typo (0a8000f)
  • LeetCode: 5 Longest Palindrom Substring (60767df)
  • lint: rectify lint error (7892d1c)
  • Linux-Setup: fix typo (b53e239)
  • Linux-SetUp: fix wrong shell command about soft link on VSCode (425f129)
  • linux: rectify gdb gui typo (fa67da0)
  • markdown-style: rectify linter error (6b35ba8)
  • os: fix error (3076dcd), closes #27
  • README: fix directory instruction and contact (98d3644)
  • readme-contact: fix color typo (e56b886)
  • readme-contact: fix email error (5e57aa2)
  • readme-contact: fix email error again (837fcd9)
  • readme-contact: fix email error at third time (1108dff)
  • README: fix process of this repo (407b281), closes #26
  • readme: fix super link error in readme (e0302a4)
  • style guide: remove trailing punctuation in heading (61c2b6f)
  • style: rectify markdownlint error (b0281e7)
  • style: rectify mdlint error (a01a928)
  • Web-CSS3: fix markdown syntax error (5825b07)
  • Web-JS-Proj-Print: Fix wrong generate path (3311f5b)
  • Web-JS-RegExp: Fix markdown syntax error (68ec4c8)
  • Web-Template-Gulpfile.js: fix concat css bug (0faf91b)
  • web: SPA SEO basics (984904a)