{"pageContext":{"index":136,"total":364,"name":"2021-12-12","items":[{"node":{"frontmatter":{"title":"GitHub 为 npm Registry 推出强制执行的 2FA","publish":true,"cover":"https://github.blog/wp-content/uploads/2021/02/npm-github.png?w=1200","showCover":true,"date":"2021-12-12","category":"nodejs","url":"https://github.blog/2021-12-07-enrolling-npm-publishers-enhanced-login-verification-two-factor-authentication-enforcement/","author":"Myles Borins","translator":"","tags":["npm"],"priority":1},"html":"<p>对于所有公共包发布者将在明年初强制实施两步验证。</p>"}},{"node":{"frontmatter":{"title":"React 服务器组件 vs Remix","publish":true,"cover":"","showCover":true,"date":"2021-12-12","category":"frontend","url":"https://remix.run/blog/react-server-components","author":"Ryan Florence@Remix","translator":"","tags":["react"],"priority":1},"html":"<blockquote>\n<p>Remix快几倍</p>\n</blockquote>"}},{"node":{"frontmatter":{"title":"Redux作者Dan的的react编码面试","publish":true,"cover":"","showCover":true,"date":"2021-12-12","category":"frontend","url":"https://www.zhihu.com/pin/1449896304831242240","author":"Limboer","translator":"","tags":["react"],"priority":1},"html":"<blockquote>\n<p>听说过 redux 吗, 请问什么是 redux, 使用场景有哪些(Dan: 我听说过这个库)</p>\n</blockquote>"}},{"node":{"frontmatter":{"title":"Rust 作为 Linux 的第二官方语言","publish":true,"cover":"","showCover":true,"date":"2021-12-12","category":"rust","url":"https://www.zdnet.com/article/rust-takes-a-major-step-forward-as-linuxs-second-official-language/","author":"Steven J. Vaughan-Nichols","translator":"","tags":["linux"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Code Hike：增强代码阅读体验(mdx)","publish":true,"cover":"https://user-images.githubusercontent.com/1911623/144417674-e5ac77d9-e491-449c-aa70-6f8b46ffd6c6.png#gh-light-mode-only","showCover":true,"date":"2021-12-12","category":"frontend","url":"https://github.com/code-hike/codehike","author":"Code Hike","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"React Native Gesture Handler - 关注性能的react native手势触摸处理","publish":true,"cover":"","showCover":true,"date":"2021-12-12","category":"mobile","url":"https://github.com/software-mansion/react-native-gesture-handler","author":"Software Mansion","translator":"","tags":["react"],"priority":1},"html":"<p>使用 UI 线程,使移动设备的触摸和手势更流畅、更可靠和更确定。</p>"}},{"node":{"frontmatter":{"title":"VSCode 11月发布新版本默认提示不可见字符","publish":true,"cover":"https://code.visualstudio.com/assets/updates/1_63/unicode-highlighting-invisible.png","showCover":true,"date":"2021-12-12","category":"ide","url":"https://code.visualstudio.com/updates/v1_63","author":"microsoft","translator":"","tags":["VSCode"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"async-sema - 异步信号量实现","publish":true,"cover":"","showCover":true,"date":"2021-12-12","category":"javascript","url":"https://github.com/vercel/async-sema","author":"Vercel","translator":"","tags":["asynchrous"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> <span class=\"token punctuation\">{</span> Sema <span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'async-sema'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">const</span> s <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Sema</span><span class=\"token punctuation\">(</span>\n  <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token comment\">// Allow 4 concurrent async calls</span>\n  <span class=\"token punctuation\">{</span>\n    capacity<span class=\"token punctuation\">:</span> <span class=\"token number\">100</span> <span class=\"token comment\">// Prealloc space for 100 tokens</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">async</span> <span class=\"token keyword\">function</span> <span class=\"token function\">fetchData</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">await</span> s<span class=\"token punctuation\">.</span><span class=\"token function\">acquire</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span>\n    console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>s<span class=\"token punctuation\">.</span><span class=\"token function\">nrWaiting</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token string\">' calls to fetch are waiting'</span><span class=\"token punctuation\">)</span>\n    <span class=\"token comment\">// ... do some async stuff with x</span>\n  <span class=\"token punctuation\">}</span> <span class=\"token keyword\">finally</span> <span class=\"token punctuation\">{</span>\n    s<span class=\"token punctuation\">.</span><span class=\"token function\">release</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">const</span> data <span class=\"token operator\">=</span> <span class=\"token keyword\">await</span> Promise<span class=\"token punctuation\">.</span><span class=\"token function\">all</span><span class=\"token punctuation\">(</span>array<span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span>fetchData<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"jsdom - web dom标准nodejs实现","publish":true,"cover":"","showCover":true,"date":"2021-12-12","category":"nodejs","url":"https://github.com/jsdom/jsdom","author":"jsdom","translator":"","tags":["dom"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"ink - 使用react渲染命令行ui","publish":true,"cover":"https://github.com/vadimdemedes/ink/raw/master/media/logo.png","showCover":true,"date":"2021-12-12","category":"nodejs","url":"https://github.com/vadimdemedes/ink","author":"Vadim Demedes","translator":"","tags":["react"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"guacamole - 浏览器连接的远程桌面网关","publish":true,"cover":"","showCover":true,"date":"2021-12-12","category":"system","url":"https://guacamole.apache.org/","author":"Apache Guacamole™","translator":"","tags":["remote desktop"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"noisecraft - 节点流程化的可视音乐创作.md","publish":true,"cover":"https://github.com/maximecb/noisecraft/raw/main/doc/screenshot.png","showCover":true,"date":"2021-12-12","category":"javascript","url":"https://github.com/maximecb/noisecraft","author":"Steven J. Vaughan-Nichols","translator":"","tags":["music"],"priority":1},"html":"<blockquote>\n<p>这也够复杂的，适合程序员？</p>\n</blockquote>"}},{"node":{"frontmatter":{"title":"react-transition-state — React动画hook","publish":true,"cover":"https://user-images.githubusercontent.com/41896553/142855447-cb8d8730-f8fb-4296-a3db-d1523b0fa2d9.png","showCover":true,"date":"2021-12-12","category":"frontend","url":"https://github.com/szhsin/react-transition-state","author":"Zheng Song","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"VSCode 11月发布新版本默认提示不可见字符","publish":true,"cover":"https://s26162.pcdn.co/wp-content/uploads/2021/11/Everyone-a-Worker.png","showCover":true,"date":"2021-12-12","category":"literature","url":"https://lithub.com/from-construction-to-teaching-seven-writers-on-their-day-jobs","author":"Emily Alexander","translator":"","tags":["VSCode"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"ssr-proxy-js - 服务端渲染代理","publish":true,"cover":"","showCover":true,"date":"2021-12-12","category":"nodejs","url":"https://github.com/Tpessia/ssr-proxy-js","author":"Tpessia","translator":"","tags":["SSR"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"zod - typescript优先地schema验证","publish":true,"cover":"https://github.com/colinhacks/zod/raw/master/logo.svg","showCover":true,"date":"2021-12-12","category":"nodejs","url":"https://github.com/colinhacks/zod","author":"Colin McDonnell","translator":"","tags":["schema"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"使用 Microsoft Edge Detached Elements 工具调试内存泄漏","publish":true,"cover":"https://blogs.windows.com/wp-content/uploads/prod/sites/33/2021/12/Picture3.png","showCover":true,"date":"2021-12-12","category":"frontend","url":"https://blogs.windows.com/msedgedev/2021/12/09/debug-memory-leaks-detached-elements-tool-devtools/","author":"Patrick Brosset","translator":"","tags":["performance"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"免费圣诞节3d插图","publish":true,"cover":"https://d17v9ds8p1uxd3.cloudfront.net/images/christmas/xmas-0.png","showCover":true,"date":"2021-12-12","category":"resource","url":"https://wannathis.one/freebies/free-christmas-3d-illustrations","author":"wannathis","translator":"","tags":["picture","christmas"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"数学 - 三次贝塞尔 从数学到动画","publish":true,"cover":"","showCover":true,"date":"2021-12-12","category":"math","url":"https://res.cloudinary.com/dg5nsedzw/image/upload/f_auto,w_3840,q_50/blog/dev-tools-cubic-bezier","author":"MAXIME HECKEL","translator":"","tags":["Cubic Bézier"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"新站点 - Google 的字体知识库","publish":true,"cover":"https://fonts.gstatic.com/s/img/knowledge/modules/choosing_type/lessons/emotive_considerations_for_choosing_typefaces/images/thumbnail_411126311.svg","showCover":true,"date":"2021-12-12","category":"frontend","url":"https://fonts.google.com/knowledge","author":"谷歌","translator":"","tags":["font"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"谷歌的 Chrome DevTools 团队将node_modules加入代码管理","publish":true,"cover":"","showCover":true,"date":"2021-12-12","category":"nodejs","url":"https://www.jackfranklin.co.uk/blog/check-in-your-node-dependencies/","author":"Jack Franklin","translator":"","tags":["node_modules"],"priority":1},"html":"<ul>\n<li>免除安装造成的问题</li>\n<li>固定依赖，配合安全检查</li>\n</ul>"}},{"node":{"frontmatter":{"title":"图解计算机网络","publish":true,"cover":"https://iximiuz.com/computer-networking-101/broadcast-domain-l2-only-2000-opt.png","showCover":true,"date":"2021-12-12","category":"devops","url":"https://iximiuz.com/en/posts/computer-networking-101","author":"Ivan","translator":"","tags":["network"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"教程 - Node.js 内存限制","publish":true,"cover":"https://v8.dev/_img/trash-talk/02.svg","showCover":true,"date":"2021-12-12","category":"nodejs","url":"https://blog.appsignal.com/2021/12/08/nodejs-memory-limits-what-you-should-know.html","author":"Camilo Reyes","translator":"","tags":["GC"],"priority":1},"html":""}}]}}