{"pageContext":{"index":122,"total":364,"name":"2021-09-05","items":[{"node":{"frontmatter":{"title":"GitHub CLI 2.0 支持扩展","publish":true,"cover":"https://github.blog/wp-content/uploads/2021/08/GitHub-CLI-2-0_social-card.png?w=1200","showCover":true,"date":"2021-09-05","category":"devops","url":"https://github.blog/2021-08-24-github-cli-2-0-includes-extensions/","author":"Billy Griffin","translator":"","tags":["github"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"HashiCorp 云战略状况调查","publish":true,"cover":"https://www.hashicorp.com/_next/static/images/cloud-usage-today-c7bc36e56bd32bcebe75badbdc4827e6.svg","showCover":true,"date":"2021-09-05","category":"devops","url":"https://www.hashicorp.com/state-of-the-cloud","author":"hashicorp","translator":"","tags":["cloud微软预览免费的 Web 版 Visual Studio Code"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"adonisjs - 传统MVC全栈框架","publish":true,"cover":"https://camo.githubusercontent.com/8a6e492d3ced504699ba3a46b1eb480379efa99d2df69d8105a0d060af57d9ac/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f61646f6e69736a732f696d6167652f75706c6f61642f715f3130302f76313535383631323836392f61646f6e69732d726561646d655f7a73637963752e6a7067","showCover":true,"date":"2021-09-05","category":"nodejs","url":"https://github.com/adonisjs/core","author":"AdonisJS Framework","translator":"","tags":["mvc"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"beautiful-react-hooks - 值得拥有的的react hook集合","publish":true,"cover":"https://github.com/antonioru/beautiful-react-hooks/raw/master/usage_example.png","showCover":true,"date":"2021-09-05","category":"frontend","url":"https://github.com/antonioru/beautiful-react-hooks","author":"Antonio Rù","translator":"","tags":["react"],"priority":1},"html":"<p>useMouse, useMouseState and useMouseEvents<br>\nuseTouch, useTouchState and useTouchEvents<br>\nuseLifecycle, useDidMount and useWillUnmount<br>\nuseWindowResize\nuseWindowScroll\nuseRequestAnimationFrame<br>\nuseResizeObserver<br>\nuseTimeout<br>\nuseInterval\nuseDebouncedFn<br>\nuseThrottledFn<br>\nuseLocalStorage\nuseSessionStorage<br>\nuseStorage<br>\nuseDefaultedState<br>\nuseRenderInfo<br>\nuseSwipe, useHorizontalSwipe and useVerticalSwipe<br>\nuseSwipeEvents<br>\nuseConditionalTimeout   </p>"}},{"node":{"frontmatter":{"title":"bioicons - 开源生物和化学科学图例","publish":true,"cover":"https://github.com/duerrsimon/bioicons/raw/main/assets/logo_github.svg","showCover":true,"date":"2021-09-05","category":"other","url":"https://github.com/duerrsimon/bioicons","author":"Simon Duerr","translator":"","tags":["illustration","scientist"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"dicebear - 头像生成","publish":true,"cover":"https://camo.githubusercontent.com/ac918a0462f377851e54ba49534b13cbdfb64a778d9a2845a23c0df23c2cfa9c/68747470733a2f2f64696365626561722e636f6d2f6170692f6d616c652f736565642e7376673f6d6f6f643d6861707079","showCover":true,"date":"2021-09-05","category":"frontend","url":"https://github.com/dicebear/dicebear","author":"DiceBear","translator":"","tags":["avatar"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"fiddly - 将项目readme转换为网页","publish":true,"cover":"https://fiddly.netlify.app/logo.png","showCover":true,"date":"2021-09-05","category":"nodejs","url":"https://github.com/SaraVieira/fiddly","author":"Sara Vieira","translator":"","tags":["markdown"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"PayPal使用GraphQL的故事","publish":true,"cover":"https://miro.medium.com/max/1400/1*uR3-LnwSjmD4nUmiN8gHZg.png","showCover":true,"date":"2021-09-05","category":"devops","url":"https://medium.com/paypal-tech/graphql-at-paypal-an-adoption-story-b7e01175f2b7","author":"Shruti Kapoor","translator":"","tags":["graphql"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"mafs - 数学可视化库","publish":true,"cover":"","showCover":true,"date":"2021-09-05","category":"frontend","url":"https://github.com/stevenpetryk/mafs","author":"Steven Petryk","translator":"","tags":["math"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"github安全主管设计的安全隐私的家庭网络","publish":true,"cover":"","showCover":true,"date":"2021-09-05","category":"security","url":"https://ben.balter.com/2021/09/01/how-i-re-over-engineered-my-home-network/","author":"Ben Balter","translator":"","tags":["network"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-navigation-header-buttons - 支持expo的react-navigation按钮","publish":true,"cover":"https://github.com/vonovak/react-navigation-header-buttons/raw/master/img/ios.gif","showCover":true,"date":"2021-09-05","category":"mobile","url":"https://github.com/vonovak/react-navigation-header-buttons#readme","author":"Vojtech Novak","translator":"","tags":["react native"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-pdf-highlighter - 支持高亮的pdf查看器","publish":true,"cover":"","showCover":true,"date":"2021-09-05","category":"frontend","url":"https://github.com/agentcooper/react-pdf-highlighter","author":"Artem Tyurin","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-virtuoso - react 列表组件","publish":true,"cover":"","showCover":true,"date":"2021-09-05","category":"frontend","url":"https://github.com/petyosi/react-virtuoso","author":"Petyo Ivanov","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"三个错误的 React 代码示例以及解决方案","publish":true,"cover":"","showCover":true,"date":"2021-09-05","category":"frontend","url":"https://css-tricks.com/three-buggy-react-code-examples-and-how-to-fix-them/","author":"Hugh Haworth","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"为什么Electron很好","publish":true,"cover":"","showCover":true,"date":"2021-09-05","category":"frontend","url":"https://nielsleenheer.com/articles/2021/why-electron-apps-are-fine/","author":"Niels Leenheer","translator":"","tags":["electron"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"typeit - 打字输入特效","publish":true,"cover":"","showCover":true,"date":"2021-09-05","category":"frontend","url":"https://github.com/alexmacarthur/typeit","author":"Alex MacArthur","translator":"","tags":["effection"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"使用 Sigstore 和 Cosign 轻松签名软件","publish":true,"cover":"","showCover":true,"date":"2021-09-05","category":"devops","url":"https://martinheinz.dev/blog/56","author":"Martin Heinz","translator":"","tags":["sign"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"实现Javascript 反调试","publish":true,"cover":"https://miro.medium.com/max/1400/0*ujERY6djmQgS85T-.gif","showCover":true,"date":"2021-09-05","category":"javascript","url":"https://medium.com/@weizmangal/javascript-anti-debugging-some-next-level-sh-t-part-2-abusing-chromium-devtools-scope-pane-b2796c00331d","author":"Gal Weizman","translator":"","tags":["sign"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"微软免费的Web 版 Visual Studio Code","publish":true,"cover":"","showCover":true,"date":"2021-09-05","category":"other","url":"https://slack.engineering/how-we-design-our-apis-at-slack","author":"Tim Anderson","translator":"","tags":["VScode"],"priority":1},"html":"<p>官方原帖已经404，不过相信很快会正式发布</p>"}},{"node":{"frontmatter":{"title":"我们如何设计SlackAPI","publish":true,"cover":"https://slack.engineering/wp-content/uploads/sites/7/2021/08/image5.png","showCover":true,"date":"2021-09-05","category":"other","url":"https://slack.engineering/how-we-design-our-apis-at-slack","author":"Saurabh Sahni, Taylor Singletary","translator":"","tags":["slack"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"我如何破解办公室电话来玩DOOM","publish":true,"cover":"https://neilbostian.github.io/static/media/doomphone1.b17bc299.png","showCover":true,"date":"2021-09-05","category":"other","url":"https://neilbostian.github.io/#/doomphone","author":"Neil Bostian","translator":"","tags":["hack"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"教程 - 如何使用 Svelte 的内置状态管理Stores","publish":true,"cover":"https://images.ctfassets.net/23aumh6u8s0i/5sW3mmLvYraDwX9d71RZQY/0582cbbb68c9e9c1c697473e8779237e/svelte_02.jpg","showCover":true,"date":"2021-09-05","category":"frontend","url":"https://auth0.com/blog/state-management-in-svelte-applications/","author":"Fikayo Adepoju","translator":"","tags":["svelte"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"教程 - 使用 AWS Lambda 构建无服务器 GIF 生成器","publish":true,"cover":"https://d2908q01vomqb2.cloudfront.net/1b6453892473a467d07372d45eb05abc2031647a/2021/08/23/gif-6.png","showCover":true,"date":"2021-09-05","category":"nodejs","url":"https://aws.amazon.com/cn/blogs/compute/building-a-serverless-gif-generator-with-aws-lambda-part-1/","author":"James Beswick","translator":"","tags":["serverless"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"我如何构建了年收入30万美元的Vuetify库","publish":true,"cover":"https://s3.amazonaws.com/www.starterstory.com/story_images/images/000/013/429/original/open-uri20210828-3-1r27u8t?1630169948","showCover":true,"date":"2021-09-05","category":"other","url":"https://www.starterstory.com/stories/i-built-a-300k-year-vue-js-component-library","author":"John Leider","translator":"","tags":["career"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"教程 - 构建stepper组件","publish":true,"cover":"https://ishadeed.com/assets/stepper/intro.jpg","showCover":true,"date":"2021-09-05","category":"frontend","url":"https://ishadeed.com/article/stepper-component-html-css/","author":"Ahmad Shadeed","translator":"","tags":["css"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"详细介绍真正的 RBAC,ABAC 安全模型","publish":true,"cover":"https://tailscale.com/blog/rbac-like-it-was-meant-to-be/RBAC_12.png","showCover":true,"date":"2021-09-05","category":"devops","url":"https://tailscale.com/blog/rbac-like-it-was-meant-to-be/","author":"Avery Pennarun","translator":"","tags":["RBAC"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"每个开发人员都应该避免的常见 NPM 错误","publish":true,"cover":"https://miro.medium.com/max/1400/1*pc-MUSUnp-tORkFjNqQqEw.jpeg","showCover":true,"date":"2021-09-05","category":"nodejs","url":"https://blog.bitsrc.io/common-npm-mistakes-every-developer-should-avoid-60ab0642d8f9","author":"Bhagya Vithana","translator":"","tags":["npm"],"priority":1},"html":"<ul>\n<li>不应该手动添加依赖到package.json</li>\n<li>不应该将您的peer依赖项锁定到特定的补丁版本</li>\n<li>不应该将多个模块作为一个包发布</li>\n<li>不应该意外发布敏感数据</li>\n<li>不应该提供常规身份验证令牌</li>\n<li>不应该为了升级而升级</li>\n<li>不应该删除 package-lock.json</li>\n</ul>"}}]}}