Skip to content

Latest commit

 

History

History
4000 lines (3571 loc) · 518 KB

CHANGELOG.md

File metadata and controls

4000 lines (3571 loc) · 518 KB

Changelog

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

3.18.11 (2024-11-15)

✨ Today I Learned

  • deps: update dependencies (non-major) (#573) (1bd8e9c)

3.18.10 (2024-10-15)

✨ Today I Learned

  • deps: update dependencies (non-major) (#566) (0ca5146)

3.18.9 (2024-09-15)

✨ Today I Learned

  • deps: update dependencies (non-major) (#555) (e45d1ad)

3.18.8 (2024-08-15)

✨ Today I Learned

  • deps: update dependencies (non-major) (#548) (881ef74)
  • deps: update dependencies (non-major) (#553) (3b31c55)
  • deps: update dependencies (non-major) to v3.5.1 (#554) (5d4d9a2)
  • linux-wsl2: networking config for WSL2 (33bd781)
  • web-react: form loading state in React v19 (dd467df)

3.18.7 (2024-06-15)

✨ Today I Learned

  • ai-CNN: mnist keras example (e39d812)
  • ai-DL: adaptive learning rate (6ca4071)
  • ai-DL: alignment vector addition to output (ef75fe0)
  • ai-DL: architecture of BERT and GPT (792403a)
  • ai-DL: BERT adapters (3b8e7da)
  • ai-DL: BERT model (e1ff38b)
  • ai-DL: change loss function for easier optimization (5a3a8d3)
  • ai-DL: convolutional layer (1883d9b)
  • ai-DL: critical point in gradient descent (30c1823)
  • ai-DL: generative adversarial networks (78c116d)
  • ai-DL: in-context learning (7b13ae2)
  • ai-DL: instruction-tuning (dda0c4e)
  • ai-DL: learning rate adjustment strategies (fdb6132)
  • ai-DL: long short-term memory network (8771b3a)
  • ai-DL: pre-trained models and downstream tasks (f46981a)
  • ai-DL: recurrent neural networks (5af5d82)
  • ai-DL: saddle point (9c34687)
  • ai-DL: selective synaptic plasticity loss function (17c8380)
  • ai-DL: self-attention calculation by matrix multiplication (3839db4)
  • ai-DL: small batch vs large batch (2f7ddbf)
  • ai-DL: spatial transformer networks (33f6b48)
  • ai-DL: use activation function to fit complex function (ce182da)
  • ai-DL: variational auto-encoders (6975d7d)
  • ai-DL: why deep learning (c5b2fe5)
  • ai-gen: 26 design principles for prompt engineering (22f3642)
  • ai-gen: AI agents (446844a)
  • ai-gen: alignment for LLMs (417cbe0)
  • ai-gen: AR and NAR models (362f730)
  • ai-gen: basic elements of a prompt (1d5a2ef)
  • ai-gen: chain-of-thought prompting (0e5ef4e)
  • ai-gen: ChatGPT alignment (d0c1d2d)
  • ai-gen: data for LLMs (be4ff1b)
  • ai-gen: diffusion model (ee5e52a)
  • ai-gen: encoder-decoder generative framework (d08043b)
  • ai-gen: exchange-of-thought (1d0b695)
  • ai-gen: good parts of instruction-tuning (54c8619)
  • ai-gen: how to fine-tune LLM (3d55c9e)
  • ai-gen: human alignment for LLMs (d389a9a)
  • ai-gen: key advantage of self-attention mechanism (b4bca1d)
  • ai-gen: labelled data and human feedback (ad95083)
  • ai-gen: LLMs cooperation (cf076bb)
  • ai-gen: LLMs survey (972f62f)
  • ai-gen: low-rank adaptation fine-tuning (784e7ec)
  • ai-gen: machine prompting (db6ecae)
  • ai-gen: midjourney cookbook (27ce6cf)
  • ai-gen: multi-agent collaboration (1c6c093)
  • ai-gen: multi-agent debate (69c81e8)
  • ai-gen: program-aided prompting (3263160)
  • ai-gen: prompt compression (b204bf3)
  • ai-gen: prompt engineering guide (7140bc7)
  • ai-gen: quality in and quality out (27b8559)
  • ai-gen: RAG workflow diagram (0e05b99)
  • ai-gen: ReAct prompting (209bc7b)
  • ai-gen: recursive re-prompting and revision (dd15b9b)
  • ai-gen: reinforcement learning from human feedback (00b4511)
  • ai-gen: retrieval-augmented generation (dd87ac3)
  • ai-gen: retrieval-augmented generation example (3f17c9e)
  • ai-gen: retrieve-augmented generation (fe82f8b)
  • ai-gen: reward model as human feedback (42c3aec)
  • ai-gen: RLHF focus on three aspects (333f66a)
  • ai-gen: scaling law and emergent ability (2738870)
  • ai-gen: speculative decoding (90c9842)
  • ai-gen: targets of RLHF (97c5a22)
  • ai-gen: task decomposition prompting (0396edb)
  • ai-gen: task planning (8d632de)
  • ai-gen: tree of thoughts example (4547840)
  • ai-library: multi-agent framework (2329517)
  • ai-llm: ChatGPT learning process (3664f13)
  • ai-ML: actor-critic model for reinforcement learning (b65c8e3)
  • ai-ML: auto-encoder applications (5cfcce4)
  • ai-ML: cycle GAN for unpaired image-to-image translation (1f99b7b)
  • ai-ML: discounted cumulated reward formula (3057b65)
  • ai-ML: explainable AI (3cb5528)
  • ai-ML: extreme example of overfitting (fee6419)
  • ai-ML: inverse reinforcement learning (4229a0a)
  • ai-ML: learn from rewards and mistakes (a0e3506)
  • ai-ML: normalization (ce77540)
  • ai-ML: prevent overfitting (20ed803)
  • ai-ML: principal component analysis (b6700f9)
  • ai-ML: reinforcement learning (89cc325)
  • ai-ML: self-supervised learning story (5c384c3)
  • ai-ML: structured learning (2a4ab42)
  • ai-ML: structured linear model (7ba7c38)
  • ai-ML: underfitting issue (c85ac98)
  • ai-NLP: word embedding (36263be)
  • css-design: design tokens naming convention (34002d9)
  • deps: update dependencies (non-major) (#533) (21d4e05)
  • deps: update dependencies (non-major) (#537) (569b644)
  • deps: update dependencies (non-major) (#540) (fc94c41)
  • react-compiler: useMemoCache hook for React Compiler (9a72877)
  • web-library: collaborative utils (b57742c)
  • web-library: geo library (45587c2)
  • web-library: human-friendly date picker (0bf5606)
  • web-library: modern execa (025e9ef)
  • web-library: mouse-tracing glow effect library (ea8f085)
  • web-library: music notation and guitar tablature rendering library (e720d5d)
  • web-library: one time password input (bbd7647)
  • web-library: optimize compiler for React.js (a017c83)
  • web-library: pglite database (335f93f)
  • web-library: schema validation library (21835c6)
  • web-library: whiteboard and canvas tool (aa8814e)

🚀 Building Work

  • tsconfig: enable strict null checks (91cde2f)

⚡ Performance

3.18.6 (2024-05-15)

✨ Today I Learned

  • ai-CNN: CNN layers description (02ddabb)
  • ai-DL: ReLU can solve gradient vanishing problem (2cb1e6a)
  • ai-DL: common optimization algorithms (349a4e2)
  • ai-DL: dropout strategy (99096d7)
  • ai-DL: mini-batch to speed up training process (e712662)
  • ai-DL: recipe of deep learning (64d2e60)
  • ai-library: curated list of local LLMs (a571bfa)
  • ai-ML: adaptive learning rate strategies (5580770)
  • ai-ML: gradient descent algorithm (8613b91)
  • ai-ML: gradient descent formula (5d8fac6)
  • ai-ML: impulse function (e945d42)
  • ai-ML: logistic regression for classification (8eb7974)
  • ai-ML: loss function for binary classification (3efb978)
  • ai-ML: machine learning tasks (021b2c2)
  • ai-ML: overfitting definition (3ad5761)
  • ai-MLP: backpropagation and gradient descent (d2de76a)
  • ai-MLP: backpropagation calculus (8c7edfd)
  • ai-MLP: chain rule for backpropagation (c23bf8c)
  • ai-MLP: linear calculation in multilayer perceptron (dba64b5)
  • ai-ML: regularization weight decay (f186966)
  • ai-ML: underfitting definition (77ac8c0)
  • ai-prompt: Act as best practice (dc3e3b4)
  • ai-prompt: awesome ChatGPT prompts (4fc35ca)
  • ai-prompt: generative AI image prompts (3772be6)
  • ai-prompt: key principles for prompt design (cc7276e)
  • ai-prompt: prompt engineering frameworks (1b967ab)
  • ai-prompt: prompt for JavaScript console (2ddc5f1)
  • ai-prompt: respectful and professional tone (c3af204)
  • ai-recurrent: recurrent architecture target (139d4e8)
  • ai-sofmax: softmax function with temperature parameter (3120186)
  • ai-transformer: 3b1b self-attention explanation (be5820e)
  • cs-math: discrete fourier transform matrix (4bd4349)
  • cs-math: formula for central limit theorem (ff60ffd)
  • cs-math: Gaussian Integral (365d9a0)
  • cs-math: Lindeberg CLT (2663bb1)
  • cs-math: normal distribution (5142054)
  • css-components: tree view styles (178c07e)
  • css-has: conditional styling with :has() selector (3eb4d99)
  • css-layout: masonry layout debates (67892e2)
  • css-shapes: modern css shapes (5a86add)
  • deps: update dependencies (non-major) (#525) (a454c63)
  • html-a11y: readers a11y. (71080ea)
  • js-perf: inline caches optimization (2965ce4)
  • js-style: document package with JSDoc (82ac72f)
  • math-algebra: change of basis (efaf5c8)
  • math-algebra: determinant (5836186)
  • math-algebra: dimension transformation matrix (76d2c76)
  • math-algebra: dot and cross product (d64c930)
  • math-algebra: Gaussian elimination (5baa839)
  • math-algebra: interactive linear algebra (3a1fc7f)
  • math-algebra: linear transformation (8d36399)
  • math-algebra: quick calculation of eigenvalue (06a34b1)
  • math-analysis: black-scholes / merton equation (b79d2ed)
  • math-analysis: differential equation and phase space (f58eeb9)
  • math-analysis: first order differential equation (8ca5ff0)
  • math-analysis: partial differential equation (644e8c2)
  • math-analysis: radius of convergence of series (6d41d1d)
  • math-derivative: basic rules for derivative (a26ce98)
  • math-limit: L'Hopital's rule (311dc4d)
  • math-series: basic series in math analysis (f8d6e6f)
  • math-statistics: bayes factor (62ef50f)
  • math-statistics: bayes theorem (6fe0d34)
  • math-statistics: binomial distribution (8572101)
  • math-statistics: information entropy (6895173)
  • node-package.json: resolutions field to fix broken version (2255254)
  • react-hooks: useDeferredValue work case (bfeefd0)
  • react-perf: complete guide to rendering behavior (c2ed3be)
  • react-RSCs: pros of RSCs (ffaf10c)
  • web-library: 3D framework for Svelte (a2d9a67)
  • web-library: AST grep CLI tool (316e04c)
  • web-library: browser extension development tool (3b54035)
  • web-library: canvas library (fcb0f48)
  • web-library: date picker and calendar components (c8ea48f)
  • web-library: DnD libraries (1d91059)
  • web-library: e2e testing tool (a076d19)
  • web-library: email components (f6b4100)
  • web-library: fluid typography plugin for Tailwind.css (78d5ea1)
  • web-library: functional programming in TypeScript (c50ad1b)
  • web-library: graphics framework for Svelte (2809681)
  • web-library: GUI solution (004ef58)
  • web-library: guided tour and wizard flow libraries (7334c42)
  • web-library: markdown editors (e3cdb09)
  • web-library: PopIcons (252848a)
  • web-library: promise queue and map concurrently (26680c3)
  • web-library: React layout components (2b0009f)
  • web-library: refine framework (7e17cb2)
  • web-library: SQLite3 for Node.js (298b8b8)
  • web-library: tag component (f01e88e)
  • web-library: TypeScript utility library (bf86872)
  • web-library: user interfaces for react-three-fiber (7edfb2a)
  • web-perf: stale-while-revalidate cache control directive (b37bd88)
  • web-perf: emulate slow third-party resources with Playwright (da4f0c0)
  • web-perf: improve INP for Vanilla.js (dce0a69)
  • web-perf: responsive images (7b02991)
  • web-perf: securely send request while closing tabs (7ebb85e)

🚀 Building Work

  • prism: add bash and json syntax highlighting (081427d)

⚡ Performance

3.18.5 (2024-05-01)

✨ Today I Learned

  • ai-CNN: simple introduction to CNNs (cb5dab8)
  • ai-library: huggingface transformers in browser (da32c76)
  • cs-math: central limit theorem (6106cc3)
  • cs-math: convolution (9ed358c)
  • cs-math: discrete fourier transform (55fe925)
  • cs-math: fast convolution algorithm with FFT (3ebffb5)
  • cs-math: fourier transform (701021a)
  • css-design: prefer web fonts than system fonts (9bf5efd)
  • node: web scraping with impersonation (c6699ba)
  • react-fiber: ability of React Fiber (83b3dab)
  • web-a11y: a11y references (2a77a33)
  • web-a11y: assistive technology key points (5d70ee7)
  • web-a11y: semantic HTML (9498c52)
  • web-library: effect system for TypeScript (d099b4c)
  • web-library: modern crontab parser (20280f9)
  • web-library: rapier physics and mesh for react-three-fiber (a40566c)
  • web-library: WebSockets library (ca67aba)
  • web-library: youtube.js (29e81ed)
  • web-perf: Next.js INP optimization tips (44cbd19)
  • web-perf: performance budgets (8789d88)

3.18.4 (2024-04-29)

✨ Today I Learned

  • deps: update dependencies (non-major) to ^18.3.1 (#520) (1acb7bc)

3.18.3 (2024-04-26)

✨ Today I Learned

  • deps: update dependencies (non-major) (#519) (a0531c5)
  • web-library: push action for GitHub (15e88de)

3.18.2 (2024-04-26)

✨ Today I Learned

  • ai-library: local search aggregator agent (fef29f2)
  • ai-library: vectors and embeddings library (3b58120)
  • css-clamp: create fluid typography with clamp() function (97cfd72)
  • css-font: typefaces and font-family for icons (b6f513c)
  • css-layout: breaking aspect ratio (ae48850)
  • css-layout: full-bleed content in grid layout (bd469b0)
  • css-media query: prefers-color-scheme usage (3a5e7ef)
  • css-media: scripting media query (41d3f8e)
  • css-query: alternating style queries (b0f8c4f)
  • css: naming convention for class names (63ff198)
  • git-clean: dry run option to git clean command (01486bd)
  • git-gpg: export GPG private key as an ASCII armored version (cecbc21)
  • html-attributes: attributes and properties reflection (45a736f)
  • html-attributes: global attributes (3cd8aa2)
  • html-attributes: HTML attributes vs DOM properties (5082632)
  • html-attributes: special case on attributes reflection (b43c5d4)
  • html-attributes: validation and defaults for DOM properties (723398d)
  • html-popover: close button for popover (c30745e)
  • html-popover: popover API (d272caa)
  • html-popover: popover target attribute name (eb4f7a4)
  • js-DOM: DOM properties reflection on HTML attributes (18f641a)
  • js-functional: functional programming principles (de841ba)
  • js-signals: tc39 proposal signals (e7c96fb)
  • node-exports: npm exports field (e72f6e1)
  • react-hooks: useSyncExternalStore params details (91e5370)
  • react-RSC: client boundaries and composition pattern (648ee5a)
  • react-state: atom state library tips (71870bd)
  • react-styling: tao of styling React application (941c989)
  • ts-decorators: modern stage 3 decorators (9e21374)
  • web-framework: build your own RSC framework (a0c9a60)
  • web-library: .xlsx export library (3e8e50d)
  • web-library: adonis server (4dc30b6)
  • web-library: AI-assisted crawler library (508ed75)
  • web-library: Airbnb visualization components (5ef0cc0)
  • web-library: analytics tools (81db62a)
  • web-library: animation engine based on CanvasKit WASM (da1e959)
  • web-library: command palette menu components (4ffb8f7)
  • web-library: concurrent and parallel programming utils (6602b6f)
  • web-library: CRDT support for SQLite (a5ccee9)
  • web-library: CSS resets (0339144)
  • web-library: data visualization library (4a55bda)
  • web-library: database design tool (4b1a2af)
  • web-library: database management platform (887d31b)
  • web-library: database tools (87d6ab3)
  • web-library: DnD page editor (c8ac481)
  • web-library: facebook StyleX system (df1e2d8)
  • web-library: Franken UI (cae0fdf)
  • web-library: GPG key management action (9e86415)
  • web-library: HLS.js (04ce279)
  • web-library: howler.js audio library (8fa4a65)
  • web-library: IndexedDB wrapper (42a4a43)
  • web-library: input mask library (36739e7)
  • web-library: lerna-lite (939ada1)
  • web-library: LocalForage alternative (a6e89dd)
  • web-library: modern backend web frameworks (239e86e)
  • web-library: Next.js MDX documentation static site generator (fb21f09)
  • web-library: Node.js utils (b7978ac)
  • web-library: Phosphor icons (3cde6fb)
  • web-library: react-three-fiber helpers (327435e)
  • web-library: regex live editor (a90dac6)
  • web-library: schema validators (66d5c9f)
  • web-library: spinner and skeleton components (72f2a56)
  • web-library: tamagui UI framework (f45e02e)
  • web-library: TanStack router library (e46eb49)
  • web-library: tooltip component (bcd513e)
  • web-library: Turso database platform powerd by libSQL (d8c9df2)
  • web-library: uptime and monitoring tools (286cf6a)
  • web-library: visual editor for React (77513de)
  • web-library: Wasp fullstack framework (8daf455)
  • web-library: web framework built on web standards (121a8b8)
  • web-library: WebDAV client (e8381a6)
  • web-library: zed code editor (337d07c)
  • web-library: zustand internals (df7b51d)
  • web-perf: responsive images (1d50fa8)
  • web-perf: web latency guide (8b33bcb)
  • web-security: enhance usability of UUID (30f06c7)
  • web-testing: A/B testing (4357971)
  • web-webpack: deep dive into tree shaking (dfe4fa1)
  • web: frontend checklists (b310018)

⚡ Performance

3.18.1 (2024-04-17)

✨ Today I Learned

  • AI-library: coding copilot tools (7e9e061)
  • AI-library: Glarity summaries copilot extension (6cd6279)
  • AI-library: WebChatGPT extension (869e50b)
  • AI-LLM: LangChain modules and examples (582ebfa)
  • AI-MLP: multilayer perceptron (2e16b46)
  • AI-platform: API links (2d982b7)
  • AI-residual: residual connection for gradient propagation (b5eb61e)
  • AI-residual: ResNet keynotes (d1067be)
  • AI-transformer: $XX^T$ and $\sqrt{d_k}$ tips (f355b29)
  • AI-transformer: add transformer architecture figure (ec60204)
  • AI-transformer: code snippet for multi-head attention (42c488f)
  • AI-transformer: matrix manipulation (414469a)
  • AI-transformer: multi-head attention mechanism (1b14c44)
  • AI-transformer: positional encoding mechanism (e3c5c42)
  • AI-transformer: QKV internal understanding (e735141)
  • AI-transformer: spotlight of transformer architecture (e4b4326)
  • css-design: CSS design tokens example (a434830)
  • css-design: design token variants (afa7985)
  • css-design: logo system (374da2f)
  • css-design: pronouns selector and mobile apps (67e02e8)
  • css-nesting: nesting syntax (f0d3a7e)
  • css-scope: [@scope](https://github.com/scope) at-rule (ef3a1ea)
  • css: fluid type and space scale design tokens (45dc15f)
  • css: object-fit for replaced element (1c7db6a)
  • HTML-ARIA: dialog ARIA Role (efb7849)
  • html-input: input types (9aa2ab1)
  • js-engine: object structure in v8 engine (335e286)
  • js-object: deep clone with structuredClone (a07e748)
  • js-perf: dangerous performance cheating hacks (c06e1cd)
  • latex: update tutorial link (72d5a50)
  • node-GraphQL: advantages of GraphQL over RESTful API (e773c9b)
  • react-hooks: update effect callback on deps change (15ea619)
  • react-server: use client directive (1ed6eed)
  • react-server: non-standardized data-fetching in meta-frameworks (eaa874b)
  • react-server: RSC reference links (06d6c56)
  • react-server: RSC virtual DOM mental model (3d68a95)
  • react-server: Server Components under the hood (b6d8216)
  • react: demystifying styled components (8dfb3da)
  • security-library: XSS sanitizer (ce039cd)
  • thml-image: loading attribute of img tag (0e0fd0f)
  • web-canvas: off-screen canvas for web workers (f6510f2)
  • web-library: 2D and 3D rendering engines for web (7d0801b)
  • web-library: awesome cloudflare resources (a8cef18)
  • web-library: blazing fast immutable library (99fb2fb)
  • web-library: codium code copilot (b98ad18)
  • web-library: color library (e001c43)
  • web-library: component library (dad8c57)
  • web-library: CSS-in-JS library (ccb1fdd)
  • web-library: DaaS and BaaS platforms (a8ed336)
  • web-library: dependencies graphs generator (8d3ffcc)
  • web-library: form library (4a7fce1)
  • web-library: gradient tool (1b10ffd)
  • web-library: icons library links (6679819)
  • web-library: images lightbox gallery library (aa1bdb0)
  • web-library: low-code form editor (8b27af7)
  • web-library: material-tailwind tool (810a6f6)
  • web-library: QuickJS JavaScript Engine (15daf77)
  • web-library: remove obsoleted slide and presentation librarie (b04e35f)
  • web-library: remove obsoleted state management libraries (59ef415)
  • web-library: semantic-release GitHub action (5089865)
  • web-library: terminal and console emulator library (4f7ab71)
  • web-library: val.town website (810a64f)
  • web-library: web analytics and monitoring tools (936afee)
  • web-library: web analytics tool (b93993a)
  • web-perf: INP has replaced FID as Core Web Vitals (656e1b4)

🚀 Building Work

  • eslint: disable only-export-components rule (d1498d9)
  • markdownlint: disable MD033 due to MDX components (ef355d6)
  • release: update versioning configuration (ca2287d)

3.18.0 (2024-04-07)

✨ Features

  • ai-library: AI copilot (48f66a6)
  • AI-transformer: self-attention mechanism (23c5ad1)
  • math-AI: start to learn AI basic knowledge (288e471)

✨ Today I Learned

  • ai-library: AI agents (c4fb97e)
  • ai-library: AI-as-a-service (0f63ec7)
  • ai-library: AI-powered developer tools (b9fdce7)
  • css-design: design systems and tokens (b5df036)
  • css-design: homepage design principles (86ebfaa)
  • css-query: interactive container query guide (05bd9ed)
  • js-auth: session auth in Next.js (11b1952)
  • js-testing: testing-library tips (bc0fa95)
  • js-testing: vitest with React Testing Library (036b64e)
  • library-ai: offline ChatGPT alternative (91e70e9)
  • library-web: auth and crypto utils (174dfbf)
  • node-pnpm: install pnpm via corepack (56f27c0)
  • react-docs: update react docs links to react.dev (b5b5595)
  • react-hooks: custom compare deps for useEffect (4a715d4)
  • react-hooks: useOptimistic hook dispatcher (7e5fd3e)
  • react-server: React Server Components (682a0ba)
  • rust-installation: rust up for WSL2 (292421a)
  • vim-neovim: LazyVim distributions for NeoVim (1c22b3d)
  • vim: vim setup and configuration (7f2e205)
  • web-html: self-closing tags discussion (c32d29c)
  • web-js: a new array method with (30ceb37)
  • web-js: BFCache compatible page (a5ac548)
  • web-library: CRDT library (4d4648b)
  • web-library: DaaS and BaaS (1e5eac5)
  • web-library: fast glob library (edda3a0)
  • web-library: local-first library (09961df)
  • web-library: pattern matching library (bfb3ad4)
  • web-library: remove obsoleted audio library (3a7c4cb)
  • web-library: star history website (66ac50f)
  • web-library: TypeScript scheme utils (133faf7)
  • web-node: pnpm non-flat node_modules (111faef)
  • web-perf: images optimization tips (5a5f31f)

🐛 Bug Fixes

  • deps: update dependencies (non-major) (#502) (3b238f4)

⚡ Performance

3.17.1 (2024-04-01)

✨ Today I Learned

  • css-transition: view transitions API (97e2c84)
  • linux-wsl: Wi-Fi delay start problem (f5d13c8)
  • web-eslint: flat config compatibility (3fe3d00)
  • web-js: prefers userEvent in testing-library (17e1f80)
  • web-library: design systems database (89d58ae)
  • web-library: hooks library (a9ee634)
  • web-library: JSON library (e33c390)
  • web-library: library hunt website (50a0704)
  • web-library: tons of components (aca686a)
  • web-security: CSP usage (82e9229)

3.17.0 (2024-03-26)

✨ Features

  • eslint: switch to eslint flat configuration (#490) (7ab6407)

✨ Today I Learned

  • cs-math: point calculation (f0f18f4)
  • css: media query changes listener (e04e2a9)
  • css: use shorthand inset (#413) (2692a43)
  • design patterns: more use case (baeb1fd)
  • github-copilot: tips and best practices (0871717)
  • html-head: all sizes of favicons (7ce4429)
  • js-URL: download files (857601c)
  • library: tidy up (d9da265)
  • linux-wsl: http proxy for GitHub CLI (b40cf81)
  • node-pnpm: ship to pnpm (2e4c688)
  • node.js: exports field for public API (26bb795)
  • web-css: color palettes with color-mix() function (794eccb)
  • web-css: fifty-fifty two column pattern (48f5dc5)
  • web-css: prefer color scheme (e1d135e)
  • web-js: formData API usage (956bd15)
  • web-js: prefer userEvent for testing (50ad2b8)
  • web-library: dashboard and search library (350ec3f)
  • web-library: emoji (3ce6951)
  • web-library: full-stack Next.js app generator (4c491d0)
  • web-library: headless command menu (7ef3347)
  • web-library: Monaco for React (ea08da6)
  • web-library: origin private file system (3675112)
  • web-library: react video player (d7f59ed)
  • web-library: tons of web components (72df217)
  • web-library: tons of web components (ac3dbea)
  • web-library: WebRTC library (2592f08)
  • web-ts: modern TypeScript configuration (74dde29)

🐛 Bug Fixes

  • deps: update dependencies (non-major) (#417) (f5bb6a5)
  • deps: update dependencies (non-major) (#424) (ef43e58)
  • deps: update dependencies (non-major) (#429) (0202482)
  • deps: update dependencies (non-major) (#456) (c45d283)
  • deps: update dependencies (non-major) (#458) (05ab0bc)
  • deps: update dependencies (non-major) (#465) (734a6cb)
  • deps: update dependencies (non-major) to v3.1.0 (#476) (bb05d6b)
  • deps: update dependencies (non-major) to v3.1.1 (#481) (adcc6ba)
  • deps: update dependency katex to ^0.16.8 (#437) (bb8fd51)
  • deps: update dependency rehype-katex to v7 (#459) (f06991d)
  • deps: update dependency remark-math to v6 (#460) (0dd39ea)
  • deps: update docusaurus monorepo to v3 (major) (#470) (aa8434d)
  • lift up blog link (16a7aca)
  • remove useless link (2aebc79)
  • website: remove legacy imports style (4adc705)

3.16.1 (2023-03-08)

🐛 Bug Fixes

  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.35.0 (#409) (cf38602)

✨ Today I Learned

  • css-scrollbar: scrollbar custom app (ea3a52b)
  • git-gpg: git gpg configuration (b400029)
  • git: git configuration files (1f8302c)
  • js-promise: global rejection handling (0c6b4c2)
  • js-promise: returning values from finally() (d3320df)
  • library: chat bot (71f0b02)
  • linux-git: git alias configuration (4e214b2)
  • linux-wsl: gzip bug for windows 11 (2826967)
  • linux-zsh: zsh nvm plugin (1cba498)
  • linux: wsl and git configuration (fe0fe15)
  • web-css: container style query (cee9da0)
  • web-jamstack: islands architecture implementation (c0fa8b2)
  • web-library: CRUD TypeScript framework (160c8f7)
  • web-library: Node.js toolbox (b4c956d)
  • web-library: React simple code editor (d1615a4)
  • web-library: toast component (4a72378)
  • web-library: ts reset (758ed43)

🚀 Building Work

3.16.0 (2022-09-18)

🐛 Bug Fixes

  • deps: update dependencies (non-major) (#350) (129012f)
  • deps: update dependencies (non-major) (#351) (57667ba)
  • deps: update dependencies (non-major) (#357) (6a458c7)
  • deps: update dependencies (non-major) (#359) (5b5edfe)
  • deps: update dependency katex to ^0.16.1 (#356) (38f3168)
  • eslint-WSL: remove ts import to avoid memory leakage (8695c38)

⚡ Performance

✨ Features

  • vue: start to read vue.js internals book (63b0f39)

✨ Today I Learned

  • css-animation: reduced motion styles (d05421c)
  • css-design: component UX design patterns (bbb3975)
  • css-design: UX checklist (0f616b6)
  • css-layer: advanced [@layer](https://github.com/layer) syntax (f1f2129)
  • css-layer: layer priority (d03b21e)
  • css-media: display-mode media query (49195af)
  • css-media: prefers-contrast media query examples (24783b6)
  • css-media: foldable device media query (2a6afb4)
  • css-property: [@property](https://github.com/property) rule fallback (4cfe77a)
  • css-scrolling: scroll port and item properties (ac8d292)
  • css-scrolling: scroll snap for scroll item (885b466)
  • css-variables: space toggle tip (2c417f4)
  • css: css feature detection (8e34493)
  • css: reduced motion query (d650b12)
  • css: responsive image object style (05553dd)
  • git-bisect: git bisect current commit (6b5b32b)
  • git-log: log full history (189cb62)
  • git-objects: git objects store (efc0a83)
  • git-objects: git objects store commands (34cf738)
  • git-proxy: make git proxy great again (7b7fd0d)
  • git: git bisect command (c7b0a58)
  • git: git internals (156bddb)
  • git: git packfiles (b37f9d0)
  • html-form: one-time-code autocomplete input (9ddbfb6)
  • html-form: form [autocomplete] attribute (4e2993d)
  • html-form: form validation guide (a4aa4d7)
  • html-form: fully autocomplete attribute list (906e6ba)
  • html-form: html form enctype example (b94ee2e)
  • html-form: payment form (4fc1d45)
  • js-animations: web animations JavaScript API (88ee2fd)
  • js-devices: web devices-related platform API (14c21bf)
  • js-devtools: console utilities API (d915855)
  • js-DOM: HTML attributes for DOM properties (4052ba5)
  • js-functional: immutable data structure (b401923)
  • js-payment: web payment platform API (0ea8a91)
  • js-performance: video pre-loading (f41cbb0)
  • js: get default HTML attribute (7a6e00d)
  • linux-ffmpeg: media conversion via FFmpeg (78349ae)
  • node-debugging: node debugging cli options (da2a83f)
  • node: nodejs.dev new website (413c2e8)
  • react-effect: useEffect usage guide (cd6b222)
  • react-effect: cleanup API fetching race condition (58443c0)
  • react-effect: cleanup fetching race condition (a31131f)
  • react-effect: event handler not an effect (4f59cb1)
  • react-effect: remove stable value from deps list (dfbc921)
  • react-effect: strict mode for cleanup effects (f2e06e0)
  • react-effect: you might not need effects (f239753)
  • react-hooks: useEvent get latest snapshot (3536ba9)
  • react-hooks: useEvent hook mind model (983c76d)
  • react-hooks: useEvent upside (f3833b8)
  • react-hooks: useLayoutEffect invoke timing (8aed664)
  • react-hooks: primitive deps list (9d1bfc3)
  • react-hooks: ref for latest value (e5498f9)
  • react-hooks: sync external store hook (ff4ab3e)
  • react-performance: prevent re-rendering guide (1d21473)
  • react-ref: uesRef always return same object (900ca3f)
  • react-ref: uesRef examples (4c642ce)
  • react-ref: ref usage timing (baff633)
  • react-ref: refs as escape hatch (952ee6e)
  • react-state: queueing series of state updates (d007c8a)
  • react-state: state structure principles (fd84d2b)
  • ts-assertion: type assertion signature (47b9f23)
  • ts-generics: constrained default generic types (3b3e337)
  • ts-generics: constrained generic return type (b020f09)
  • ts-generics: generic parameters (e1065a3)
  • ts-union: rust-style discriminated union (3c9b8de)
  • ts: constrained template literal types (5034d9f)
  • ts: index signature error (9a37ed0)
  • ts: indexed access types (eb0d6c8)
  • ts: recursive mapped types (e263dc3)
  • ts: route recursive type (306fbc4)
  • vue-component: provide and inject (c2bfe74)
  • vue-components: higher order async component (cf9add2)
  • vue-components: loading component for async component (e424679)
  • vue-composition: composable function example (385e6e7)
  • vue-composition: composable functions (b3122fe)
  • vue-directive: custom directives (9899cbb)
  • vue-lifecycle: composition lifecycle (967a93c)
  • vue-list: list directive (6ef23c7)
  • vue-performance: tree flattening compilation (08934be)
  • vue-reactivity: ref-related APIs (0785bc2)
  • vue-reactivity: auto unref (f8799de)
  • vue-reactivity: computed value best practices (82d0488)
  • vue-reactivity: effects bucket (83b4d03)
  • vue-reactivity: proxy array exotic object (ee4fe98)
  • vue-reactivity: proxy keys method (695f2d7)
  • vue-reactivity: proxy object keys (e9ef738)
  • vue-reactivity: reactive system (375a7b2)
  • vue-reactivity: skip triggering current tracking effect (9bbede7)
  • vue-ref: unwrapping refs (19ea39f)
  • vue-slot: slot usage (8db3ddb)
  • vue-SSR: client only component (04ebcb5)
  • vue-teleport: built-in Teleport component (6d673a5)
  • vue-template: class and style bindings syntax (90b710a)
  • vue-transition: built-in transition component (feb31da)
  • vue-watcher: effect watcher and post watcher (70969e9)
  • vue-watcher: implicit deep watcher (2e8c23d)
  • vue: built-in KeepAlive component (c682d15)
  • vue: component v-model advanced usage (1bbb202)
  • vue: patch dynamic blocks (3719d24)
  • vue: setup render context (ffe2e70)
  • web-devops: hot module replacement internals (0a770d2)
  • web-jamstack: islands architecture (0605754)
  • web-library: atomic stores (730491b)
  • web-library: audio visualization library (b9fb4bb)
  • web-library: automate e2e testing library (63b44ba)
  • web-library: automate visual testing (96f170a)
  • web-library: carousel library (775a69f)
  • web-library: chat component (fc9d3db)
  • web-library: chrome remote interface (5a05a4c)
  • web-library: command palette menu (57bad65)
  • web-library: crawler library (66fda84)
  • web-library: memory leaks and heap snapshots analysis tool (aac84b7)
  • web-library: React prototyping tool (d29998a)
  • web-library: tour guide library (5afe28b)
  • web-library: visual testing library (6334e88)
  • web-library: WebSockets server (4d7b673)
  • web-network: service worker cache (367097e)
  • web-performance: chrome lighthouse audit tab (7b47932)
  • web-performance: core web vitals (72138b2)
  • web-performance: image pre-fetching (8d7a864)
  • web-performance: reduce web font size guide (ebb249d)
  • web-performance: web vitals guide (937a50e)
  • web-pwa: advanced PWA offline features (b46df58)
  • web-security: CSP directives (53d1db6)
  • web-security: same site cookie recipes (a770eee)
  • web-security: sanitize URL (cfc256f)
  • web-security: security headers list (b79da3e)
  • web-security: supply chain threats (14525b9)
  • web-SEO: google SEO testing tools (3f8d292)
  • web-SSR: hydration targets (40a123f)
  • web-SSR: isomorphic router and store (64fa641)
  • web-SSR: SSR components (49811ed)
  • web-SSR: SSR hydration flicking (ca7f013)
  • web-SSR: vue SSR guide (fefb3fc)
  • web: framework design principles (2482d91)
  • web: modern web framework internals (d13a667)
  • web: virtual dom for declarative UI performance (bb4a07a)

3.15.0 (2022-08-05)

✨ Features

  • devops-clean: clean architecture basic notes (125203d)

🐛 Bug Fixes

  • deps: update dependencies (non-major) (#340) (b8113e3)
  • deps: update dependencies (non-major) (#343) (ad8224d)
  • deps: update dependencies (non-major) to v2.0.0-rc.1 (#341) (7973a49)
  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.28.0 (#338) (c7bb96a)
  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.30.2 (#345) (853f2a7)

⚡ Performance

✨ Today I Learned

  • cs-algorithm: sorting algorithm (5d1637f)
  • css-animation: transition directions (80502f0)
  • css-box: BFC containing feature (1504540)
  • css-button: modern buttons (684b84f)
  • css-design: pricing page design principles (dc99db9)
  • css-DPR: pixel order for Retina device (b8e5e89)
  • css-DPR: viewport scale for pixel border (1ea6c0a)
  • css-filter: one line dark mode effect (c3f2c25)
  • css-flex: flex-shrink calculation details (dde99ef)
  • css-inheritance: inheritable CSS property (c98b11b)
  • css-layout: centering pattern (475e88e)
  • css-marker: ::marker pseudo element (f2beb0f)
  • css-scroll: scroll bar located in padding box (5b55929)
  • css-SVG: SVG filter guide (f83f395)
  • css: ::first-letter properties (f3d7213)
  • css: aspect-ratio for images (515fafb)
  • css: button normalize styles (75361db)
  • css: disable auto scale for responsive design (ebccd66)
  • css: logical properties (6e96936)
  • devops-arch: clean architecture (6b526e8)
  • devops-architecture: dependencies stability (f46e685)
  • devops-code: bad code smell (21087b4)
  • devops-code: fan-in and fan-out code (2a3ed1c)
  • devops-code: interface segregation principle (4903058)
  • devops-code: object-oriented programming paradigm (11a49c3)
  • devops-code: programming paradigms limits (4b04da1)
  • devops-code: single responsibility for exception handling (f9ab211)
  • devops-refactor: basic refactoring methods (9122722)
  • devops-refactor: condition and API refactoring (8f859b0)
  • devops-refactor: encapsulation (b523e67)
  • devops-refactor: extract class (20d10ff)
  • devops-testing: testing required attributes (a5f9cd6)
  • git-GPG: GPG fix for WSL 2 (4a0dddf)
  • git-GPG: GPG program configuration (341202b)
  • git-GPG: update existing GPG key (08f0b96)
  • git: GPG key (639d246)
  • js-array: array reduce value (b216543)
  • js-class: class details (59e2d81)
  • js-class: ES5 vs ES6 inheritance (7619fdc)
  • js-closure: closure variables memory storage (f0bc9d3)
  • js-delete: return value of delete operator (ff96c3b)
  • js-devops: hot module replacement (9c9eb29)
  • js-event: composition IME input event (7d6604e)
  • js-event: event handler phase (0515583)
  • js-function: new constructor invocation (b21abe4)
  • js-function: arrow function prototype is undefined (e2d7147)
  • js-function: arrow function can't be generator function (41b2eee)
  • js-function: execution context and stack (4941148)
  • js-function: function invocation priority (52a1a48)
  • js-function: rest function parameter (74c3c63)
  • js-module: ES module static feature (c9a6b41)
  • js-module: ES6 exports live reference (680b019)
  • js-object: object keys functions (a7cbf2a)
  • js-object: object keys order (9335c25)
  • js-object: object keys under the hood (7836e85)
  • js-performance: GIF image beacon (7de37d9)
  • js-performance: HTTP cache (3891159)
  • js-promise: promise finally, all and any polyfill (664b068)
  • js-proxy: proxy features over defineProperty (cd2fb65)
  • js-type: primitive type coercion methods (d8ae3df)
  • js-webpack: webpack build performance (87ec5ba)
  • js-webpack: webpack workflow (8aa0940)
  • js: await in event loop (0290098)
  • js: instanceof operator details (4bcd527)
  • library-web: responsive mail framework (3da77da)
  • linux-WSL: git proxy for WSL 2 (f09b690)
  • linux-WSL: WSL 2 upgrade guide (62b0646)
  • linux-WSL: WSL socks5 proxy setup guide (2bff232)
  • linux-WSL: WSL tips (d19d952)
  • network-HTTP: Keep-Alive header (e603e47)
  • network-HTTP: application layer protocol (6cb0829)
  • network-HTTP: HTTP 302 redirect status code (6b9c6dd)
  • network-HTTP: HTTP redirect response status code (f29ae2f)
  • network-HTTP: HTTP stream for multiplexing (8279aac)
  • network-HTTPS: CA validation (d70b286)
  • network-HTTPS: CA workflow (33ea5cf)
  • network-HTTPS: HTTPS workflow (6a91d4c)
  • network-HTTPS: hybrid crypto workflow (4b196f9)
  • network-HTTPS: security HTTP principles (7b76186)
  • network-HTTPS: TLS workflow (753fbcc)
  • network-TCP: TCP basic features (1798344)
  • network-TCP: TCP flow and congestion control (cecb404)
  • network-TCP: TCP handshake (0ea2a1c)
  • network-UDP: UDP basic features (935c70a)
  • network: form posting content type (d114693)
  • os-mutex: multiple types mutex (3f4eb93)
  • os: I/O model (86a2c21)
  • react-component: component lifecycle (253d55b)
  • react-component: error handling lifecycle (7939bf8)
  • react-context: context scope (57c44d2)
  • react-error: error boundary downside (588cadd)
  • react-event: synthetic event delegation (c98bfad)
  • react-fragment: upside of fragment (d04f1df)
  • react-portal: upside of portal (9102a79)
  • react-ref: legacy string refs (47442fb)
  • react-state: setState mode (ca074db)
  • security-crypto: public and private key (7d10088)
  • security-DoS: SYN flood protection (b7d4ca8)
  • security-XSS: react-dom XSS protection (15ae2d1)
  • security: security search engines (2c122ad)
  • vue-compiler: cache event handlers (7914b71)
  • vue-compiler: compiler static template hoist (ee9527f)
  • vue-directive: v-if directive details (030bda1)
  • vue-directive: v-if over v-for (97f3886)
  • vue-reactivity: proxy-based reactivity features (6d7ed18)
  • vue-tick: asynchronous DOM update tick (e3b6245)
  • vue: Vue.nextTick details (9e52c81)
  • web-auth: single sign on authentication (7f493d3)
  • web-librar: collaborative markdown editor (a2bdfda)
  • web-library: Discord robot utils (03c7e26)
  • web-library: fast URL parser (b3d37e5)
  • web-library: guide tour library (0e8f5ee)
  • web-library: low-code framework (ed23244)
  • web-library: next generation ORM tool (755f7e3)
  • web-library: Next.js authentication library (a7edd0e)
  • web-library: React email framework (e8b9291)
  • web-library: scroll util (bba4b07)
  • web-library: session replay tool (b6a3cbe)
  • web-library: text editor based on lexical.js (2e2f3cb)
  • web-library: visualization library (1183d09)
  • web-library: Vite component playground (d11159e)
  • web-library: web3 libraries (eeb41e1)

3.14.0 (2022-06-28)

✨ Features

  • web-security: web security basic notes (f6fc104)

🐛 Bug Fixes

  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.27.2 (#336) (f6c9ee4)

✨ Today I Learned

  • css-at rule: [@container](https://github.com/container) style query (82ab6de)
  • css-layout: position impact on display items (46c18fd)
  • css-media: media queries level 4 syntax (c0cfb8f)
  • css-normalize: modern normalize styles (05d81c8)
  • css-pseudo: pseudo element click area (8111633)
  • css-selector: :has() selector (6d757c3)
  • css-shapes: bars line shape (303360b)
  • css-text: text wrapping and word breaking (b5b07f4)
  • css: 3D perspective transform parallax effect (e3e3cee)
  • js-comparison: loose comparison algorithm (851f245)
  • js-CORS: GET cross origin request (005c548)
  • js-iframe: <iframe> sandbox security attribute (9c7ce95)
  • js-performance: lazy loading scripts (497d83c)
  • js: AJAX cross origin request (81afa9c)
  • network-CORS: cross origin resource sharing (78324a9)
  • network-HTTP: HTTP/3 details (067b80f)
  • network-security: HTTP strict transport security (e06e22b)
  • network-security: HTTPS nginx configuration (45ae023)
  • react-hooks: useId internal (a161c65)
  • react-SSR: React SSR guide (1e022a8)
  • react-SSR: React SSR hydration warning (3ae3026)
  • security-CSP: content security policy (bc2aa70)
  • security-CSP: content security policy configuration (3d8bc03)
  • security-CSRF: client side local long-lifetime cookie attack (605351f)
  • security-CSRF: CSRF attack methods (64679b5)
  • security-CSRF: CSRF protection (4d3c837)
  • security-CSRF: CSRF protection (29d8886)
  • security-CSRF: CSRF sensitive action protection (514971e)
  • security-CSRF: http request protection (7d3881e)
  • security-CSRF: salt token protection (db6c942)
  • security-DDoS: distributed denial of service attack and (fb905dd)
  • security-DoS: denial of service protection (032c2d6)
  • security-DoS: DoS protection (95bf1eb)
  • security-HTTP: HTTP header injection attack (ca1d82e)
  • security-HTTP: secure HTTP headers (a426e1a)
  • security-injection: command injection (608b887)
  • security-injection: file upload injection (a2ad111)
  • security-injection: file upload protection (f8c7709)
  • security-injection: HTTP header injection protection (6c0b4a5)
  • security-injection: remote command injection (4883dac)
  • security-injection: SQL injection protection (c8becae)
  • security-injection: user input validation (ac3cb33)
  • security-model: threat and risk analysis model (9c98702)
  • security-network: web storage same origin policy (7eb4b2b)
  • security-origin: same origin policy (f500a51)
  • security-password: password management (792f9cc)
  • security-password: password security (765f19c)
  • security-principles: security principles (66c79d0)
  • security-programming: defensive programming (3fa8499)
  • security-session: session fixation protection (5b51406)
  • security-session: session hijacking protection (ef5edc0)
  • security-session: session protection (b8f0ff0)
  • security-vulnerability: security vulnerability (5974c67)
  • security-XML: XML bombs and external entities protection (b23e132)
  • security-XSS: consistent encode protection (e61e790)
  • security-XSS: DOM XSS injection (9ef5f8d)
  • security-XSS: HTML5 XSS attack tags (41d6d33)
  • security-XSS: secure encode protection (0e74724)
  • security-XSS: XSS attack HTML tags (6882e80)
  • security-XSS: XSS attack methods (f656767)
  • security-XSS: XSS attack surface (8995e7e)
  • security-XSS: XSS output protection (6837a87)
  • security: Referer header security (ea58961)
  • security: authentication protection (3997f36)
  • security: authentication vulnerability (40004cd)
  • security: click jacking X-Frame-Options protection (ab24484)
  • security: click jacking protection (6769a96)
  • security: directory traversal protection (d64d9f0)
  • security: file upload protection (581bea1)
  • security: frame busting attack (0fa2a8f)
  • security: information leakage protection (2f060f7)
  • security: information leakage protection (20e52f0)
  • security: malicious redirect protection (d6276c8)
  • security: malicious redirect protection (69e2847)
  • security: MetaSploit penetration testing framework (abe5f0a)
  • security: open source security state of 2022 (79b6c8b)
  • security: remove sensitive data in URL query and Referer (bbe7c7f)
  • security: same origin policy (b91a4ae)
  • security: secure HTTP query and Referer header (c59a8f4)
  • security: software security assurance (94b4651)
  • security: supply chain protection (e1aa450)
  • security: third-party URL redirect protection (81b156d)
  • security: UI jacking protection (28688e9)
  • security: user enumeration protection (e52e653)
  • security: user information protection (7420acf)
  • security: user input check (dd12f21)
  • security: web security cheat sheet (6ac6b4d)
  • security: XSS and CSRF protection (bcd05d1)
  • web-cookie: cookie data range (81f750e)
  • web-library: CRDT library (3d08768)
  • web-library: development CLI tools (56620fd)
  • web-library: hooks library (a8a7312)
  • web-library: icons and avatars library (4ec208c)
  • web-library: ORM tool (6a5b376)
  • web-library: penetration testing framework (94acaec)
  • web-library: PSD parser (ee14288)
  • web-library: React teleport component (dd2a77e)
  • web-library: React tree component (8532579)
  • web-library: responsive email framework (b2848d0)
  • web-library: select library (ad905a6)
  • web-library: Shopify hydrogen React framework (3217500)
  • web-library: Tailwind-in-JS solution (a463f6c)
  • web-library: Telegram bot framework (3fdcbb6)
  • web-library: timeline parser and editor (f495477)
  • web-library: tiny thread pool (3e3ec8b)
  • web-logging: logging information (1ac846c)
  • web-logging: logging type (316d811)

3.13.0 (2022-06-21)

🐛 Bug Fixes

  • deps: update dependencies (non-major) (#335) (954ecbe)

⚡ Performance

✨ Features

  • ts: review TypeScript notes (7d0ee16)

✨ Today I Learned

  • css-a11y: graceful degradation (af85259)
  • css-animation: animatable CSS properties (0faba0c)
  • css-animation: mask fade text (3610752)
  • css-animation: transform and transition 101 guide (1376f06)
  • css-background: background attachment details (097176e)
  • css-background: background color initial value and layer order (e27bd80)
  • css-background: prevent background and border overlapping (2d70014)
  • css-border: fancy gradient border (3392105)
  • css-border: multiple borders (a5052cf)
  • css-calc: broken calc() due to whitespace (ae2c241)
  • css-color: color-scheme property (6839126)
  • css-components: CSS tricks refernece (ed954d6)
  • css-design: data visualization design examples (14f3aff)
  • css-design: home page UX experience (5ac5c7a)
  • css-doodle: css grid doodle library (e7c82a8)
  • css-filter: SVG glitch filter (3d89d01)
  • css-flex: flex-direction effect on flex alignment (d2e5b14)
  • css-flex: auto margin flex items alignment (efc6831)
  • css-flex: flex flow effect on flex alignment (8468116)
  • css-flex: flexbox alignment guide (bbfa852)
  • css-float: float layout details (762c7f0)
  • css-font: relative percentage font size (a4ad93c)
  • css-font: responsive font size (385275a)
  • css-gradient: radial-gradient dots (0359496)
  • css-gradient: snowflake noise signal via repeating-radial-gradient (43459cb)
  • css-grid: grid auto repeat size (09b129b)
  • css-grid: grid item automatic minimum size (d8ff5ab)
  • css-grid: grid pseudo elements usage (e0902f2)
  • css-grid: grid pseudo elements usage (847a3cd)
  • css-grid: grid system (bf1a0b0)
  • css-houdini: animated background gradient via [@property](https://github.com/property) (3eb8d5c)
  • css-layout: float three column details (9233557)
  • css-layout: layout examples (fcaae36)
  • css-layout: layout height alignment (ec0b1bb)
  • css-layout: layout reference (98bcdf6)
  • css-layout: vertical centering tricks (04a1c8f)
  • css-link: styling link (727920f)
  • css-list: styling lists (05ab627)
  • css-margin: margin collapse (0aa2f12)
  • css-object: replaced object styles (365b984)
  • css-order: HTML source order vs CSS display order (5fd0a08)
  • css-outline: outline details (13c2d2f)
  • css-performance: content-visibility and contain-intrinsic-size (d106050)
  • css-performance: CSS performance triggers (ae74bda)
  • css-position: sticky position scrolling index (f387e04)
  • css-resize: image comparison slider (ce022ff)
  • css-scroll: horizontal scrolling styles (42b3518)
  • css-selector: nth selector calculation (c40ab9d)
  • css-shadow: multiple shadow support (6385fce)
  • css-shadow: unique feature of drop shadow (f98a3ed)
  • css-shape: clip-path usage (803d092)
  • css-shape: background gradient shapes (4841fc2)
  • css-shape: pseudo element shape usage roundup (c270ea7)
  • css-specificity: :not(), :is(), :has() specificity (5050ec5)
  • css-specificity: specificity increasing trick (eb59cab)
  • css-spinner: spinner implementation (d6d9ae1)
  • css-SVG: SVG size (9a47caf)
  • css-SVG: SVG SMIL animation (bf8d644)
  • css-SVG: SVG stroke dash array (85d31fe)
  • css-table: table styling quick tips (23e92a5)
  • css-target: :target tab component (48a518a)
  • css-text: hidden text via text-indent (135ed7f)
  • css-text: text truncate box (45adbb1)
  • css-tooltip: tooltip component (f2f62d5)
  • css-transform: 3D perspective transform parallax effect (5298e4a)
  • css-transition: background images transition (a72fd55)
  • css-triangle: linear gradient arrow (912b4ad)
  • css-variables: contextual styling variables (57ee89e)
  • css-wave: border wave line (508618e)
  • css: :checked styling trick (a7a97c9)
  • css: :target and anchor styling trick (6654698)
  • css: blur and contrast filter fusion effect (8f6fa85)
  • css: chrome style tab (b59bf17)
  • css: CSS naming system and architecture (b625dfd)
  • css: gradient border (cb0da6e)
  • css: gradient box shadow (7a5f9d7)
  • css: gradient wave text (e57be17)
  • css: hover direction detection (c249b76)
  • css: prevent jittery scrollbar for content-visibility-auto (3b7d2e6)
  • css: scroll background gradient attachment (6e7bbcc)
  • css: spinner kit (c134987)
  • css: SVG path text (37cb6c1)
  • devops: nginx configuration (a0f750b)
  • html-form: <input> autofocus attribute (4536b4e)
  • html-form: input aria required (6731cd8)
  • html-form: auto complete <input> (1a42adf)
  • html-form: multiple type <input> (303e59d)
  • html-video: video embed tag (681e28a)
  • html: semantic HTML tags (3888dee)
  • js-abort: abort controller helpers (7ac4b46)
  • js-performance: data preloading (1f1df07)
  • js-security: sandbox implementation (489fe65)
  • js-testing: Jest plugins (2761e8e)
  • js-testing: native test runner (5f3d407)
  • js: babel define plugin (f0527db)
  • js: web streams API (e7a3305)
  • node-tools: volta CLI tool (ce4cc4d)
  • react: React component library patterns (13d60ba)
  • ts-const: const assertion readonly tuple (12cd491)
  • ts-generic: generic golden rule (80fc371)
  • ts-generic: generic types (9b67760)
  • ts-interface: call signature interface (c783c57)
  • ts-interface: interface extension (8850c8e)
  • ts-interface: interface function (2f88778)
  • ts-interface: interface implementation (a4078e0)
  • ts-namespace: no namespace except 3rd-party @types/* (0bfdd15)
  • ts-never: never exhaustiveness check (7a1f106)
  • ts-never: never in intersection and union types (e229e1e)
  • ts-performance: project reference build performance (41e0af8)
  • ts-tuple: tuple assignament (c3f08cf)
  • ts-types: index conditional type to access type members (34785e0)
  • ts-types: mapped conditional types (3df3277)
  • ts-types: template literal types (897a576)
  • ts: 3rd-party module types usage (348f1b1)
  • web-ARIA: W3C authoring practices guide (24bbf4d)
  • web-library: animation editor (1884198)
  • web-library: cloud IDE UI components (e8d9106)
  • web-library: color parsing and manipulation library (b0efa69)
  • web-library: comment system powered by GitHub discussion (a075775)
  • web-library: database library (e88eee9)
  • web-library: fastify full stack framework (2a2923b)
  • web-library: flamegraph profiling tool (c21ccf3)
  • web-library: full stack Deno framework (c35e6fe)
  • web-library: function argument validation library (c1d9623)
  • web-library: GitHub color palette tool (4ff5cac)
  • web-library: GitHub primer design system (906bfa0)
  • web-library: image crop tool (d398f7f)
  • web-library: mouse and touch gestures library (f397353)
  • web-library: puppeteer plugin framework (b41f1e0)
  • web-library: React command palette (0ccf299)
  • web-library: React PWA boilerplate (0533f34)
  • web-library: React switch component (72befc2)
  • web-library: scrollbar component (b506b43)
  • web-library: tailwindcss components (ae92618)
  • web-library: TypeScript hooks library (8c5f100)
  • web-library: video.js (64809d7)

3.12.0 (2022-06-14)

✨ Features

  • css: add CSS notes (cfe3dfd)
  • css: advanced CSS tricks (bd87541)
  • js: add JavaScript notes (498fd1c)
  • react: add React hooks and advanced notes (e3765d0)
  • vue: add vue advanced notes (87f8cfb)

🐛 Bug Fixes

  • deps: update dependencies (non-major) (#330) (4cdf297)

⚡ Performance

✨ Today I Learned

  • css-animation: animation direction (f823f1b)
  • css-animation: animation effects (14e332d)
  • css-animation: circular spin rotate animation (6b3f279)
  • css-animation: dropdown and accordion animation (3e6c025)
  • css-animation: typing text animation (b7314d0)
  • css-animtion: simulate GIFs via step animated image sprites (8f11c2e)
  • css-background: background-origin effects (2b23e49)
  • css-background: background scroll view (eab0227)
  • css-background: multiple background stacking (3ab3183)
  • css-background: multiple backgrounds trick (6183d1b)
  • css-blend: PS blending modes guide (2c3e527)
  • css-blend: review blend mode (86c20a2)
  • css-border: alpha and transparent border (6aa59dc)
  • css-border: border radius shorthand property (45786d8)
  • css-box: box-sizing reset styles (02896c2)
  • css-box: BFC creation (e30edd9)
  • css-box: BFC features (37c5e32)
  • css-box: BFC overlapping (d7dffeb)
  • css-box: box height normal flow (00a4df6)
  • css-box: inline box model spacing adjustment (5ac06ef)
  • css-box: margin collapse only happen to normal box layout (284d82a)
  • css-box: percentage height calculation (e3db24a)
  • css-color: hsl() color usage (156a02a)
  • css-design: cicada principle (8d0f689)
  • css-design: hit area (f9913bb)
  • css-design: typography typeface reference (8c44b52)
  • css-design: vertical repeation rhythms (a72738d)
  • css-filter: backdrop-filter polyfill (eedd85c)
  • css-filter: sun filter (cca7c08)
  • css-filter: sun filter effect (079248b)
  • css-flex: order initial value (d96473a)
  • css-float: float and block formatting context (c79afe5)
  • css-float: float box and line box (de27b55)
  • css-float: float clear fix details (c25631c)
  • css-font: font-display details (f384bed)
  • css-font: font-size calculation (dcd0c14)
  • css-footer: flexible sticky footer (d6f1973)
  • css-form: <input /> simulation trick (dbbb3cc)
  • css-form: form reset styles (677edd2)
  • css-gradient: background gradient loading spinner (2211d46)
  • css-gradient: color stop shorthand position 0 (bf4b782)
  • css-gradient: implement corner shape via gradient (5165f65)
  • css-grid: fraction of available space (928c355)
  • css-grid: grid repeat() function (c7608c2)
  • css-grid: grid auto flow gallery (52e2619)
  • css-grid: grid layout basic concepts (4cd67b4)
  • css-inline: inline box model and formatting context (0db7a96)
  • css-inline: inline text vertical alignment details (8ad1366)
  • css-layout: containing block for absolute/fixed element (45e07c0)
  • css-layout: flex and grid alignment (e277918)
  • css-layout: inline-block box model (5000a7c)
  • css-layout: centering pattern (7662d4b)
  • css-layout: horizontal centering container (cd7ff59)
  • css-layout: invalid vertical margin on inline level elements (f4ea6ea)
  • css-layout: negative margin for float element (a5e4a66)
  • css-layout: percentage layout length calculation (8b963e7)
  • css-layout: review box model (02bae39)
  • css-layout: vertical centering tricks (80c7cc2)
  • css-margin: margin collapsing (a70666d)
  • css-margin: margin collapsing prevention (afe7123)
  • css-margin: negative margin details (a9d7485)
  • css-margin: negative margin tips (0c7a6ca)
  • css-media: only media modifier (4d39b43)
  • css-modal: box shadow modal (9f01e5a)
  • css-module: CSS module strctures (42c07a8)
  • css-object: add max-width normalize to replaced element (e250bed)
  • css-performance: contain formal syntax (668f962)
  • css-performance: content-visibility peroperty (9418b5e)
  • css-position: relative oosition flow layout (6ae7a58)
  • css-position: static layout (bfc507d)
  • css-position: sticky layout (0bb889e)
  • css-postcss: use newest features via postcss (fb0bfc0)
  • css-pseudo: ::target-text pseudo element (8e6be3c)
  • css-query: [@container](https://github.com/container) query details (02cc4e6)
  • css-resize: resizable image slider (b219162)
  • css-resize: resizable image slider and range (7353376)
  • css-resize: resizable image width (e5fcc86)
  • css-responsive: breakpoints (5599351)
  • css-responsive: mobile first sesponsive web design (f1d697f)
  • css-responsive: responsive design principles (3c7b19e)
  • css-responsive: responsive fluid box (54290f8)
  • css-responsive: responsive images (da23bbc)
  • css-responsive: responsive size design (c4a06ca)
  • css-responsive: responsive table (4659ea6)
  • css-responsive: rethinking mobile first development (6cdb665)
  • css-responsive: viewport size (2948695)
  • css-selectors: complex structural children selectors (feadde0)
  • css-shadow: bottom side only box shadow (e454641)
  • css-shadow: multiple sides box shadow (420aac4)
  • css-shape: implement grid line via background gradient (44538db)
  • css-shapes: border-radius ellipse shape (7edc913)
  • css-shapes: transform shapes (b1c66a5)
  • css-shapes: checkerboard square gradient shape (ba92c37)
  • css-shapes: conic gradient checkerboard square shape (b0e5a8b)
  • css-shapes: folded corner shape (ef154a3)
  • css-shapes: gradient shapes (fbd6959)
  • css-shapes: implement complex shapes via clip-path: polygon() (6c43c35)
  • css-shapes: polygon shape (eda21fd)
  • css-supports: supports API (91e31b9)
  • css-text: gradient stroked text (8dfad74)
  • css-text: leading and tracking text space (0241385)
  • css-text: retro text shadow (1fc9faf)
  • css-text: text shadow usage (3a9f200)
  • css-text: white space usage (0224829)
  • css-transform: individual quick transform properties (50079a7)
  • css-transform: multiple transform order (fae91f9)
  • css-transition: fade transition (9ddbf28)
  • css-transition: step timing function examples (c9a8056)
  • css-transition: transition property initial value (2cdc28e)
  • css: ::backdrop pseudo element (edffe26)
  • css: [@supports](https://github.com/supports) feature query (336847e)
  • css: add keyword for notes (d77fa82)
  • css: flexible size (9b4b2a3)
  • css: normalize utils library (491da91)
  • css: reponsive size (e79d407)
  • css: responsive design origin (0316b13)
  • css: trapezoid tab navigation (785350f)
  • css: update vendor prefix order (51461bc)
  • html-a11y: <input /> WAI-ARIA AIaccessibility (1b792d0)
  • js-abort: abort controller code snippets (46c9225)
  • js-engine: event loop with animation frame (532f772)
  • js-error: error handling (5d8ea03)
  • js-eslint: browser compatibility checking ESLint plugin (f26df50)
  • js-jamstack: modern websites building patterns (cf4ac22)
  • js-performance: review reflow and repaint (66148fe)
  • js-sandbox: sandbox implementation (e5a5403)
  • js-string: string utils function (195279f)
  • js-testing: cypress cookbook recipes (6652712)
  • js-v8: v8 fast properties (16972f9)
  • js-vite: unbundled development (9507a7b)
  • linux-bash: if statement example (36ba370)
  • react-hooks: useInsertionEffect hook (4986687)
  • rust-library: regular expression language (cc57e07)
  • web-browser: web platform feature status (fb2b80e)
  • web-library: browser extension framework (8c8be3d)
  • web-library: job scheduler library (f6477a8)
  • web-library: PIN input component (1061fca)

3.11.0 (2022-06-06)

🐛 Bug Fixes

  • deps: update dependencies (non-major) (#315) (84b690f)
  • deps: update dependency @easyops-cn/docusaurus-search-local to ^0.27.0 (#316) (2633c0d)

✨ Features

⚡ Performance

✨ Today I Learned

  • css-a11y: focusable areas (672f310)
  • css-alignment: place-* shorthand properties for alignment (a62d293)
  • css-animation: offset path animation (7dbb1f1)
  • css-animation: animation basic properties (7c24a08)
  • css-animation: animation properties (0353153)
  • css-animation: breath and clock animation (f1f735a)
  • css-animation: step timing function (05e17ac)
  • css-background: background-origin (bdf4b00)
  • css-background: background-size formal syntax (901f19c)
  • css-background: background styles (123cdb2)
  • css-blend: mix-blend-mode and background-blend-mode details (96c6dfd)
  • css-blend: pointer-events: none for pseudo blend element (84f8062)
  • css-blend: blend mode effects (7060fd9)
  • css-blend: blend mode list (1f59b0e)
  • css-border: border-image (3641fec)
  • css-border: border-radius detail property (f8b4c3f)
  • css-border: border-radius details (413d65f)
  • css-border: border-radius shape (d6f537f)
  • css-border: border radius calculation (7254787)
  • css-border: custom border style via border-image (a68c799)
  • css-box: box-shadow details (c2cadde)
  • css-box: intrinsic and extrinsic sizing (4a0aeeb)
  • css-break: break-inside details (680271b)
  • css-cascade: cascade order (72b998d)
  • css-clip: clip-path formal syntax (4ba23f6)
  • css-clip: fill-rule for clip-path element (738b15e)
  • css-color: accent-color property (f8eb6ec)
  • css-color: hwb() color (f63c563)
  • css-columns: multiple column layout (59fb057)
  • css-columns: multiple column properties (08e1da0)
  • css-cursor: grab and zoom cursor style (67d0ae6)
  • css-design: optimal line length is 50-75 (b5ceb1b)
  • css-effects: filter and blend effects (e024378)
  • css-filter: filter and backdrop-filter (0a6e4f8)
  • css-flex: flex shorthand property (00481be)
  • css-flex: flex shorthand property (a3d766d)
  • css-flex: flex alignment properties (dcae54a)
  • css-flex: flex flow and alignment (308aee4)
  • css-flex: flexbox children display changes (ec68614)
  • css-flex: flexbox margin alignment (7afb6ff)
  • css-flex: flexbox width calculation (f3e98e5)
  • css-font: font-kerning property (3305704)
  • css-font: font-stretch for font face (eeb57ca)
  • css-font: font-style slant angle (813025f)
  • css-font: font-variant related properties (f63b726)
  • css-font: unicode-range and local() for font performance (ff402c3)
  • css-font: woff2 and woff font family (46aa943)
  • css-font: font pre-loading (32a0d64)
  • css-font: font stack presets (bed2130)
  • css-font: font synthesis and variant controls (1564ee8)
  • css-font: new font-family (c076573)
  • css-font: system font stack presets (3adb425)
  • css-font: useful font-family (9b86e82)
  • css-gap: column, flex and grid layout gap properties (cdc45f8)
  • css-gradient: gradient functions (570e979)
  • css-gradient: linear, radial and conic gradient (381566c)
  • css-grid: complex grid layout shorthand properties (2b7499f)
  • css-grid: grid <repeat> types (c20194f)
  • css-grid: grid data types (dce99e6)
  • css-grid: grid layout property list (d0bbf50)
  • css-grid: grid line details (734811a)
  • css-grid: grid shorthand property (2730f63)
  • css-grid: implicit grid lines (680b404)
  • css-grid: implicit responsive grid layout properties (f3e56ae)
  • css-grid: structural grid related properties (971eac1)
  • css-hacks: browser hacks (737fc4d)
  • css-hacks: selector hacks (1dd0219)
  • css-houdini: houdini custom properties and values API (e0a79f6)
  • css-image: image-set() function example (a613368)
  • css-image: image-set() function for <image> data type (87a007c)
  • css-inset: logical inset property (74f5415)
  • css-layer: [@layer](https://github.com/layer) rule (b858c3f)
  • css-mask: mask properties (d34c9e7)
  • css-math: calc(), min() and max() function (90f4a74)
  • css-math: clamp math function (e07b227)
  • css-media query: prefers-reduced-motion media query (2c6bda5)
  • css-media: modern media query (6447b25)
  • css-object: object-fit property (5c47c0a)
  • css-outline: outline-offset (404f144)
  • css-outline: use outline to simluate background (abafc1b)
  • css-overflow: overflow: clip property (b117ec7)
  • css-performance: contain containment optimization (9586cac)
  • css-performance: high performance animation (ebc825c)
  • css-print: print device style (0acf49d)
  • css-reference: CSS quick reference (1886598)
  • css-responsive: tailwindcss fluid typography size (26c83c2)
  • css-scrolling: scroll-snap properties (d8a6321)
  • css-scrolling: custom scrollbar (0753d8d)
  • css-scrolling: scrolling related properties (f28e0c5)
  • css-selection: ::selection support styles (2f4be58)
  • css-shadow: text-shadow and box-shadow formal syntax (e43e54f)
  • css-shape: <basic-shape> data type (ee15ec7)
  • css-shape: inset() shape function (d84dc38)
  • css-shape: shape-outside related properties (1af2385)
  • css-shape: CSS shape (7d2c014)
  • css-shapes: polygon() shape (13a7a19)
  • css-shapes: draw grid line via linear-gradient (6496c05)
  • css-size: intrinsic size and extrinsic size (eee836d)
  • css-stacking: stacking context creation elements (9ad5dfc)
  • css-sticky: sticky position calculation block (bbbe4e3)
  • css-sticky: sticky position usage (1519ce4)
  • css-stylelint: stylelint plugins (9ceda3e)
  • css-supports: feature query via [@supports](https://github.com/supports) (d5760da)
  • css-svg: css rules and properties for SVG elements (3c14cf8)
  • css-text: <wbr> tag (5001741)
  • css-text: text-align-last and text-justify (4faf704)
  • css-text: text-align (8632558)
  • css-text: text-decoration style (421ccde)
  • css-text: text-emphasis property (411f467)
  • css-text: word-break for CJK text (1bf64df)
  • css-text: adjust tab size (608ad33)
  • css-text: disable text size automatic adjustment (e61f844)
  • css-text: punctuation types (b7de069)
  • css-text: text horizontal and vertical styles (2582a80)
  • css-text: text wrap for line-break and hyphens (b665cfd)
  • css-text: underline styles (6e1c42e)
  • css-touch: touch-action for mobile gestures (814a0cb)
  • css-transform: matrix() transform function (5b70486)
  • css-transform: transform affect on CSS layout (8236c19)
  • css-transform: basic transform functions (eb340b9)
  • css-transform: transform origin and individual transform (dc3acef)
  • css-transform: transform perspective (635c827)
  • css-transition: transition timing function (08fe759)
  • css-types: CSS data type formal syntax list (51016ab)
  • css-types: CSS data types (e9e9e23)
  • css-types: CSS value formal syntax on MDN (933f70d)
  • css-types: CSS value types list (0396c51)
  • css-value: global keyword values (e4b13f0)
  • css-variables: implement if true and if else statement (c715484)
  • css-variables: inherit and scope variables (7f30ddd)
  • css-variables: invalid variables (2119732)
  • css-width: width formal syntax (e9f7006)
  • css: [@container](https://github.com/container) query (6da442d)
  • css: box-decoration-break property (73b27a1)
  • css: fit-content and stretch width (0d00819)
  • css: 3D shadow button (4088907)
  • css: cursor, pointer, touch, resize, select (ccc5953)
  • css: logical property (f129d92)
  • devops-design: scalable React project structure (e56892f)
  • devops-library: kubernetes platform (1aacb78)
  • devops: code smells tools (9ada542)
  • html: form input types (45bd737)
  • js-auth: session cookie and JWT authentication (9e68947)
  • js-cache: Cache-Control directives (3f76b43)
  • js-CSSOM: CSS Typed Object Model API (ae3ea5a)
  • js-history: scroll restoration (51769b6)
  • js-painting: CSS Houdini painting PaintWorklet (325ffef)
  • js-performance: pre-load links (95ddbc5)
  • js-SSR: sever-side rendering reference (0ee36b5)
  • js-testing: cypress v10 configuration (49a5205)
  • js-timer: poll timer event queue (6b616b7)
  • node-deno: deno library (79c96bc)
  • react-hooks: custom data query hook (#317) (a0ad315)
  • ts-types: advanced type challenges and gymnastics (b073358)
  • ts-types: advanced type gymnastics (b22f49a)
  • web-library: box shadow utils (cfc8a96)
  • web-library: browser feature utils (e3443de)
  • web-library: code surface slide library (65f85b6)
  • web-library: data grid library (86c803e)
  • web-library: floating components (616c03c)
  • web-library: keyboard shortcuts library (e0e69c4)
  • web-library: markdown editor (c9f91e3)
  • web-library: operating system components (588a086)
  • web-library: React TypeScript Chrome extension boilerplate (f99bfaf)
  • web-library: shaka player library (f1943c3)

3.10.0 (2022-05-27)

✨ Features

🐛 Bug Fixes

  • website-design: change primary color (#311) (7a6905b)

⚡ Performance

  • assets-images: [ImgBot] optimize images (#310) (3a76ca9)
  • assets-images: [ImgBot] optimize images (#313) (2a19d6f)

✨ Today I Learned

  • css-alignment: height alignment patterns (c9cb73b)
  • css-anchor: anchor scrolling (561edd4)
  • css-animation: animation property (15b8be2)
  • css-background: background position (67dcbae)
  • css-baseline: baseline of inline-block element (bd1dd1d)
  • css-BFC: BFC creation (7cc3906)
  • css-BFC: most to use BFC creation (2eb278d)
  • css-border: border style (cf0fd12)
  • css-border: transparent border (1a0fc5a)
  • css-box: percentage width calculate by containing box (2a974ff)
  • css-box: positioned element containing box (9cdb657)
  • css-cascading: cascading rules (c3cd02e)
  • css-clip: clip element features (4521936)
  • css-color: currentcolor variable (041cf6b)
  • css-column: columns layout (ec320ab)
  • css-column: multiple column layout (e2348de)
  • css-counter: nested counters (763c68b)
  • css-cursor: cursor styles (a595064)
  • css-cursor: cursor styles list (a3c67f1)
  • css-cursor: custom cursor style (2c8e4a9)
  • css-design: design tokens (cd6edb2)
  • css-design: typography basic properties (a09c366)
  • css-flex: flex box width calculation (84af42d)
  • css-float: cleat float for IE7 (a9e6b9e)
  • css-float: float element features (c17995c)
  • css-font: custom font face (c388805)
  • css-form: form a11y styles (21944cd)
  • css-form: form design principle (fe2c52f)
  • css-form: hidden <input> styles (dcb52c1)
  • css-hidden: hidden utility styles (423053c)
  • css-hover: hover animation using background, shadow, clip, mask (ea50ede)
  • css-inline: inline box model (36f6695)
  • css-inline: inline element margin (eb30ce8)
  • css-inline: line box selector (205067d)
  • css-inline: pseudo inline elements (6d20fb5)
  • css-layout: horizontal centering layout (cf36859)
  • css-margin: auto, negative and percentage margin (f9de4cc)
  • css-margin: invalid margin (92feca3)
  • css-margin: margin collapsing (2dd4b5d)
  • css-outline: a11y outline styles (eee6fd6)
  • css-overflow: overflow hidden based on padding box (4988e0d)
  • css-padding: review CSS padding (8f66ab1)
  • css-position: absolute element usecase (0d307ff)
  • css-position: position layout (7bfa82e)
  • css-position: position property of positioned elements (bea8c56)
  • css-position: simulate fixed position via absolute position (9e1070e)
  • css-pseudo: content and counter for pseudo elements (822864e)
  • css-scrolling: custom scroll bar (551cdff)
  • css-scrolling: overflow scrolling compatibility (b3ecb95)
  • css-selector: ::first-letter and ::first-line selector (59ab112)
  • css-selector: :dir() pseudo class (9843cb9)
  • css-selector: :read-only and :read-write pseudo class (000f24b)
  • css-selector: :target-within pseudo class (16e210d)
  • css-selector: :target pseudo class (ca6636b)
  • css-selector: focus-within pseudo class (f7219e2)
  • css-selector: focus pseudo class (9599594)
  • css-selector: attribute selector (c4dd8d1)
  • css-selector: attribute selectors (ec83868)
  • css-selector: ID selector downside (89a2f73)
  • css-selector: input pseudo class details (5fdb351)
  • css-selector: input pseudo class for form widgets (45e3431)
  • css-selector: location pseudo class (196db76)
  • css-selector: pseudo class category (5648752)
  • css-selectors: basic, combinator, pseudo class and element selector (499b72d)
  • css-selector: structural, logical and misc pseudo class (479acb0)
  • css-selector: universal selector (5ac6c91)
  • css-selector: user action pseudo class (adcc444)
  • css-shapes: shapes with padding and background-clip (2b1ecff)
  • css-specificity: selector specificity (97e018f)
  • css-stacking: stacking order (f180716)
  • css-text: text styles (36f9c6c)
  • css-transform: CSS transform (7fc6d87)
  • css-typography: flexible heading with flex box (1feac1f)
  • css-visibility: visibility inheritance (52ab6e8)
  • css: text-align invalid to block level element (bb543eb)
  • css: z-index apply on positioned element, flex and grid (c1585a2)
  • css: BFC creation to clear float impact (162be4a)
  • css: box height hacks (5d14135)
  • css: clip modal styles (923a745)
  • css: CSS line height (a91bc6b)
  • css: CSS styles for dialog (ee43e81)
  • css: decoration styles (738c2cf)
  • css: hidden utility styles (3d2d673)
  • css: inline box model (277ab02)
  • css: remove strut impact on <img> (6f5d3c3)
  • css: replaced element (9e2853d)
  • css: screen readers accessibility (f76bcd0)
  • css: stacking context and z-index (11375e9)
  • css: text direction and writing mode (2e4af59)
  • devops: Nest.js clean architecture template (ddec68c)
  • devops: clean code review (38f8b1b)
  • devpos-testing: testing design and testable code (4d12ef8)
  • html-emmet: review emmet syntax (d90c478)
  • html-form: disabled and hidden form element (2a33ace)
  • js-performance: web performance monitoring real world case (5989228)
  • js-testing: Cypress a11y testing via AXE (a09f856)
  • js-testing: API mocks via msw library (1bdc393)
  • js-testing: cypress a11y AXE plugin (df35c24)
  • js-testing: Jest performance (878a2c3)
  • js: fullscreen API (cc1ee63)
  • linux-tools: modern linux CLI tools (88f0add)
  • testing: test-driven development use case (306b033)
  • ts-compiler: TypeScript compiler internals (3b7afe4)
  • web-library: devops library (5d1cb2b)
  • web-library: multi-touch gestures library (829491c)
  • web-library: payload headless CMS framework (add6b24)
  • web-library: semantic pull pequest GitHub action (7d10062)
  • web-library: state management library (5c080f4)
  • web-library: zero-config animation utility (04b6eaa)

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)