{"pageContext":{"index":158,"total":362,"name":"2022-05-15","items":[{"node":{"frontmatter":{"title":"2022开发者时间花费分配调查","publish":true,"cover":"https://retool.com/static/loc-copied-graph-68d023cab8c472c7494e43fb97c41150.svg","showCover":null,"date":"2022-05-15","category":"career","url":"https://retool.com/reports/state-of-engineering-time-2022/","author":"retool.com","translator":"","tags":["engineer"],"priority":1},"html":"<ul>\n<li>谁都会从网上copy代码  </li>\n<li>等待构建的时间越来越长了  </li>\n<li>不喜欢在面试（别人）上花费太多时间    </li>\n</ul>"}},{"node":{"frontmatter":{"title":"Mitmproxy2swagger – 自动逆向工程 REST API","publish":true,"cover":"https://github.com/alufers/mitmproxy2swagger/raw/master/docs/mitmweb_save.png","showCover":null,"date":"2022-05-15","category":"devops","url":"https://github.com/alufers/mitmproxy2swagger","author":"Albert","translator":"","tags":["api"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Reactathon摘要","publish":true,"cover":"https://pbs.twimg.com/media/FR7whlvUYAAzq-K.jpg","showCover":null,"date":"2022-05-15","category":"frontend","url":"https://swizec.com/blog/learnings-about-the-future-of-the-web-from-reactathon/","author":"Swizec Teller","translator":"","tags":["react"],"priority":2},"html":"<ul>\n<li>remix很棒     </li>\n<li>edge serverless是未来    </li>\n</ul>"}},{"node":{"frontmatter":{"title":"Storybook Performance: Vite vs Webpack","publish":true,"cover":"https://storybookblog.ghost.io/content/images/2022/05/image-10.png","showCover":null,"date":"2022-05-15","category":"frontend","url":"https://storybook.js.org/blog/storybook-performance-from-webpack-to-vite/","author":"Ian VanSchooten","translator":"","tags":["storybook","vite"],"priority":1},"html":"<p>storybook正在为vite优化,获得了比webpack稍微好的性能</p>"}},{"node":{"frontmatter":{"title":"以 100 英里小时的速度更换轮胎 - 零停机时间迁移指南","publish":true,"cover":"https://kiranrao.ca/assets/migration-switch-reads.svg","showCover":null,"date":"2022-05-15","category":"devops","url":"https://kiranrao.ca/2022/05/04/zero-downtime-migrations.html","author":"Kiran Rao","translator":"","tags":["switch"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"Unpaywall：一个包含 31,903,705 篇免费学术文章的开放数据库","publish":true,"cover":"https://unpaywall.org/img/all-logos.af4cd436.png","showCover":null,"date":"2022-05-15","category":"scientist","url":"https://unpaywall.org/","author":"unpaywall","translator":"","tags":["paper"],"priority":1},"html":"<p>另见 <a href=\"https://www.zotero.org/\">https://www.zotero.org/</a> <a href=\"https://oa.mg/\">https://oa.mg/</a></p>"}},{"node":{"frontmatter":{"title":"crypto-random-string - 强加密随机字符串","publish":true,"cover":"","showCover":null,"date":"2022-05-15","category":"javascript","url":"https://github.com/sindresorhus/crypto-random-string","author":"Sindre Sorhus","translator":"","tags":["random"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"fuzzysort - 快速模糊查询","publish":true,"cover":"https://camo.githubusercontent.com/e98439f32ec9b33416483f84f5d4fba8361b6d622a9c4862c53a757e388e0532/687474703a2f2f692e696d6775722e636f6d2f314d365a7267532e676966","showCover":null,"date":"2022-05-15","category":"javascript","url":"https://github.com/farzher/fuzzysort","author":"farzher","translator":"","tags":["fuzzy","sort"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"markdoc - 基于 Markdown 的创作系统","publish":true,"cover":"https://kiranrao.ca/assets/migration-switch-reads.svg","showCover":null,"date":"2022-05-15","category":"frontend","url":"https://github.com/markdoc/markdoc","author":"Markdoc","translator":"","tags":["markdown"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"dflex - 拖放库","publish":true,"cover":"https://user-images.githubusercontent.com/19228730/126757232-0e72a153-7fba-4868-b881-d29f2439d510.gif","showCover":null,"date":"2022-05-15","category":"frontend","url":"https://github.com/dflex-js/dflex","author":"DFlex","translator":"","tags":["drag drop"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"npm为您的帐户提供增强的 2FA 体验","publish":true,"cover":"https://github.blog/wp-content/uploads/2022/05/167610944-f03f09be-1080-4063-b8b9-2636e2355304.gif?resize=1024%2C576","showCover":null,"date":"2022-05-15","category":"nodejs","url":"https://github.blog/2022-05-10-enhanced-2fa-experience-for-your-npm-account/","author":"Myles Borins@github","translator":"","tags":["npm"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"quickwit - 开源和云原生日志管理和分析","publish":true,"cover":"https://github.com/quickwit-oss/quickwit/raw/main/docs/assets/images/quickwit-ui.png","showCover":null,"date":"2022-05-15","category":"devops","url":"https://kiranrao.ca/2022/05/04/zero-downtime-migrations.html","author":"Quickwit OSS","translator":"","tags":["logging"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"scrollex - 滚动特效","publish":true,"cover":"","showCover":null,"date":"2022-05-15","category":"frontend","url":"https://github.com/malerba118/scrollex","author":"Austin Malerba","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"url-js - 符合规范的快速 URL 状态机","publish":true,"cover":"","showCover":null,"date":"2022-05-15","category":"nodejs","url":"https://github.com/anonrig/url-js","author":"Yagiz Nizipli","translator":"","tags":["url"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> URLStateMachine <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'url-state-machine'</span><span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">const</span> state <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">URLStateMachine</span><span class=\"token punctuation\">(</span><span class=\"token string\">'https://www.yagiz.co/implementing-node-js-url-parser-in-webassembly-with-rust'</span><span class=\"token punctuation\">)</span>\n\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>state<span class=\"token punctuation\">.</span>url<span class=\"token punctuation\">)</span>\n<span class=\"token comment\">// {</span>\n<span class=\"token comment\">//   scheme: 'https',</span>\n<span class=\"token comment\">//   username: '',</span>\n<span class=\"token comment\">//   password: '',</span>\n<span class=\"token comment\">//   host: 'www.yagiz.co',</span>\n<span class=\"token comment\">//   port: null,</span>\n<span class=\"token comment\">//   path: [ 'implementing-node-js-url-parser-in-webassembly-with-rust' ],</span>\n<span class=\"token comment\">//   query: null,</span>\n<span class=\"token comment\">//   fragment: null</span>\n<span class=\"token comment\">// }</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"nve - 在特定的 Node.js 版本上运行","publish":true,"cover":"https://raw.githubusercontent.com/ehmicky/design/main/nve/nve.svg?sanitize=true","showCover":null,"date":"2022-05-15","category":"nodejs","url":"https://github.com/ehmicky/nve","author":"ehmicky","translator":"","tags":["nvm"],"priority":1},"html":"<p>不像 nvm exec 它： 可以一次运行多个 Node.js 版本, 可以以编程方式运行,快得多</p>"}},{"node":{"frontmatter":{"title":"为什么需要2FA - 购买过期域名来接管流行的npm包","publish":true,"cover":"","showCover":null,"date":"2022-05-15","category":"nodejs","url":"https://www.theregister.com/2022/05/10/security_npm_email/","author":"Thomas Claburn in San Francisco","translator":"","tags":["npm"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"使用 Web 音频 API 构建乐器","publish":true,"cover":"https://www.taniarascia.com/static/1cb6c0c7b2ca226db4ddbf8c55c2eaed/29007/kascreenshot.png","showCover":null,"date":"2022-05-15","category":"frontend","url":"https://www.taniarascia.com/musical-instrument-web-audio-api/","author":"Tania Rascia","translator":"","tags":["music"],"priority":1},"html":"<p><a href=\"https://github.com/taniarascia/accordion\">源码</a></p>"}},{"node":{"frontmatter":{"title":"react-avatar-editor - 头像编辑器","publish":true,"cover":"https://camo.githubusercontent.com/9028da31e9cc943780fe1761e98f1b37ac04517058a51fa29f328dad31a391d1/68747470733a2f2f7468756d62732e6766796361742e636f6d2f466c61776564426c757368696e674765726d616e77697265686169726564706f696e7465722d73697a655f726573747269637465642e676966","showCover":null,"date":"2022-05-15","category":"frontend","url":"https://github.com/mosch/react-avatar-editor","author":"Moritz","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"在 Node.js 应用程序中管理 OAuth 用户凭证","publish":true,"cover":"https://fusebit.io/assets/images/11ty/c6718e8f-1232.png","showCover":null,"date":"2022-05-15","category":"nodejs","url":"https://fusebit.io/blog/manage-oauth-user-creds","author":"Shehzad Akbar","translator":"","tags":["oauth"],"priority":2},"html":"<p><a href=\"https://github.com/fusebit/everyauth-express\">everyauth-express</a></p>"}},{"node":{"frontmatter":{"title":"哀悼与纪念","publish":true,"cover":"/imgs/aidao.jpeg","showCover":true,"date":"2022-05-15","category":"topic","url":"","author":"","translator":"","tags":["mourn"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"吉他音乐编程","publish":true,"cover":"https://timiskhakov.github.io/assets/images/eks-groups.png","showCover":null,"date":"2022-05-15","category":"other","url":"https://retool.com/reports/state-of-engineering-time-2022/","author":"Timur Iskhakov","translator":"","tags":["music"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"如何使用 GitHub Pulls API 管理Pull Request","publish":true,"cover":"https://fusebit.io/assets/images/11ty/cd9255ad-806.png","showCover":null,"date":"2022-05-15","category":"nodejs","url":"https://fusebit.io/blog/github-pulls-api-manage-prs","author":"Carlos Schults","translator":"","tags":["github"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"十个mac preview的技巧","publish":true,"cover":"","showCover":null,"date":"2022-05-15","category":"mac","url":"https://www.fourth-wall.co.uk/post/10-tips-for-preview-the-default-mac-app-that-people-forget-about","author":"fourth-wall","translator":"","tags":["mac"],"priority":1},"html":"<p>图片背景删除，反转色调，pdf签名</p>"}},{"node":{"frontmatter":{"title":"揭开数据库性能的神秘面纱","publish":true,"cover":"https://imagedelivery.net/lPM0ntuwQfh8VQgJRu0mFg/77f79446-5a52-4fb7-5b45-b894f07e3e00/original","showCover":null,"date":"2022-05-15","category":"database","url":"https://www.crunchydata.com/blog/demystifying-database-performance-for-developers","author":"Christopher Winslett","translator":"","tags":["postgres"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"水果和蔬菜的营养比以前少了","publish":true,"cover":"https://i.natgeofe.com/n/efd3dfc6-d3b0-41a0-a3c3-08965cb178c9/MM9914_220406_002165.jpg?w=2520&h=3360","showCover":null,"date":"2022-05-15","category":"science","url":"https://www.nationalgeographic.com/magazine/article/fruits-and-vegetables-are-less-nutritious-than-they-used-to-be","author":"国家地理","translator":"","tags":["health"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"高效的重复文件查找命令行工具","publish":true,"cover":"","showCover":null,"date":"2022-05-15","category":"devops","url":"https://github.com/pkolaczk/fclones","author":"Piotr Kołaczkowski","translator":"","tags":["cli"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"简单的落沙模拟器","publish":true,"cover":"","showCover":null,"date":"2022-05-15","category":"javascript","url":"https://jason.today/falling-sand","author":"JASON MCGHEE","translator":"","tags":["canvas"],"priority":1},"html":"<p>重力实现：左边没有像素填充左边，再右边，再上面</p>"}},{"node":{"frontmatter":{"title":"文本wrap,break详解","publish":true,"cover":"","showCover":null,"date":"2022-05-15","category":"frontend","url":"https://codersblock.com/blog/deep-dive-into-text-wrapping-and-word-breaking/","author":"WILL BOYD","translator":"","tags":["css"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"禁食科学","publish":true,"cover":"https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7b98ae00-a17e-42a4-8b21-68e41a46491e_4112x1417.png","showCover":null,"date":"2022-05-15","category":"science","url":"https://spyderdoc.substack.com/p/doctors-heart-series-part-6-science","author":"Suman Manchireddy","translator":"","tags":["health"],"priority":1},"html":"<p>自从研究禁食以来，我每周 2 天（周一和周二）减少卡路里（600-800），避免精制碳水化合物，坚持使用非淀粉类蔬菜、肉汤和大量水。最终计划每月进行一次为期 3 天的禁水禁食。</p>\n<p>怀孕和哺乳的人，十八岁以下的儿童严重营养不良。服用药物和有糖尿病史的人应与您的医生讨论。禁食并不适合所有人；突然改变饮食时寻求医疗咨询。</p>"}},{"node":{"frontmatter":{"title":"我们如何在 TypeScript 中使用新的 ES 模块支持","publish":true,"cover":"https://i0.wp.com/yonatankra.com/wp-content/uploads/2022/04/image-7.png?w=936&ssl=1","showCover":null,"date":"2022-05-15","category":"nodejs","url":"https://yonatankra.com/how-to-use-the-new-ecmascript-module-in-typescript/","author":"YONATAN KRA","translator":"","tags":["module"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token comment\">// tsconfig.json</span>\n<span class=\"token punctuation\">{</span>\n    <span class=\"token string\">\"compilerOptions\"</span><span class=\"token punctuation\">:</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token string\">\"module\"</span><span class=\"token punctuation\">:</span> <span class=\"token string\">\"nodenext\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>"}}]}}