{"pageContext":{"index":96,"total":364,"name":"2021-03-07","items":[{"node":{"frontmatter":{"title":"2021 - DigitalOcean vs. Lightsail vs. Linode vs. UpCloud vs. Vultr","publish":true,"cover":"https://joshtronic.com/images/vps-showdown/2021/03/cpu-info.png","showCover":true,"date":"2021-03-07","category":"devops","url":"https://joshtronic.com/2021/03/01/vps-showdown-digitalocean-lightsail-linode-upcloud-vultr/","author":"Josh Sherman","translator":"","tags":["vps"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"DevTools开始支持CSS-in-JS","publish":true,"cover":"https://developers.google.com/web/updates/images/2021/02/css-in-js/constructable.png","showCover":true,"date":"2021-03-07","category":"frontend","url":"https://developers.google.com/web/updates/2021/02/css-in-js","author":"Alex Rudenko","translator":"","tags":["chrome"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Dexie.js - 浏览器IndexDB封装","publish":true,"cover":"","showCover":true,"date":"2021-03-07","category":"javascript","url":"https://github.com/dfahlander/Dexie.js","author":"David Fahlander","translator":"","tags":["indexdb"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Flutter 2正式发布","publish":true,"cover":"https://1.bp.blogspot.com/-vFRhACmbKzk/YD1rhezcy9I/AAAAAAAAJ3k/AKfGALIMfNQUXjzGxDQ6cbcMFXPt2_r0QCLcBGAsYHQ/s0/image%2B1.png","showCover":true,"date":"2021-03-07","category":"mobile","url":"https://developers.googleblog.com/2021/03/announcing-flutter-2.html","author":"谷歌","translator":"","tags":["flutter"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"Go恶意软件现在很普遍，已经被APT(国家级黑客组织)和电子犯罪组织采用","publish":true,"cover":"https://www.zdnet.com/a/hub/i/2021/02/26/df4b0c3b-d521-4728-86b1-f600760e3610/go-lang.png","showCover":true,"date":"2021-03-07","category":"golang","url":"https://www.zdnet.com/article/go-malware-is-now-common-having-been-adopted-by-both-apts-and-e-crime-groups/","author":"Catalin Cimpanu","translator":"","tags":["security"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"JSON互操作性漏洞探索","publish":true,"cover":"https://labs.bishopfox.com/hs-fs/hubfs/Photoshop%20Fail%20Image%2004%2072PPI-01.jpg?width=1400&name=Photoshop%20Fail%20Image%2004%2072PPI-01.jpg","showCover":true,"date":"2021-03-07","category":"javascript","url":"https://labs.bishopfox.com/tech-blog/an-exploration-of-json-interoperability-vulnerabilities","author":"Jake Miller","translator":"","tags":["security"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"bash_unit bash脚本单元测试框架","publish":true,"cover":"","showCover":true,"date":"2021-03-07","category":"devops","url":"https://github.com/pgrange/bash_unit","author":"Pascal Grange","translator":"","tags":["bash"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"docker-mailcatcher 本地邮件测试工具","publish":true,"cover":"","showCover":true,"date":"2021-03-07","category":"devops","url":"https://github.com/Jean-Beru/docker-mailcatcher","author":"Hubert Lenoir","translator":"","tags":["email"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"extension-create - 跨浏览器扩展开发工具","publish":true,"cover":"https://user-images.githubusercontent.com/4672033/106188671-04dc7200-6186-11eb-940a-52aebab46f31.gif","showCover":true,"date":"2021-03-07","category":"javascript","url":"https://github.com/cezaraugusto/extension-create","author":"Cezar Augusto","translator":"","tags":["extension"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"fs.promises.readFile比fs.readFile慢40%","publish":true,"cover":"https://user-images.githubusercontent.com/709451/109779471-d6a1e600-7bba-11eb-851d-a25eaf1cd0b6.png","showCover":true,"date":"2021-03-07","category":"nodejs","url":"https://github.com/nodejs/node/issues/37583","author":"Jarred Sumner","translator":"","tags":["nodejs"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"node-address-rfc2822 邮件地址解析","publish":true,"cover":"","showCover":true,"date":"2021-03-07","category":"nodejs","url":"https://github.com/haraka/node-address-rfc2822","author":"Haraka","translator":"","tags":["email"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"node-unzipper 流式解压缩","publish":true,"cover":"","showCover":true,"date":"2021-03-07","category":"nodejs","url":"https://github.com/ZJONSSON/node-unzipper","author":"Ziggy Jonsson","translator":"","tags":["unzip"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"orbit-db 浏览器去中心化点对点数据库","publish":true,"cover":"https://github.com/orbitdb/orbit-db/raw/master/images/orbit_db_logo_color.png","showCover":true,"date":"2021-03-07","category":"javascript","url":"https://github.com/orbitdb/orbit-db","author":"OrbitDB","translator":"","tags":["p2p"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"overreact - 在你写memo()之前","publish":true,"cover":"","showCover":true,"date":"2021-03-07","category":"frontend","url":"https://overreacted.io/zh-hans/before-you-memo/","author":"Dan Abramov(redux作者)","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-native-collapsible-tab-view 支持expo的滚动tab组件","publish":true,"cover":"https://github.com/PedroBern/react-native-collapsible-tab-view/raw/main/demo/default.gif","showCover":true,"date":"2021-03-07","category":"mobile","url":"https://github.com/PedroBern/react-native-collapsible-tab-view","author":"pedrobern","translator":"","tags":["react native"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"shepherd - web页面引导程序框架","publish":true,"cover":"https://camo.githubusercontent.com/6aec35e0a5b3b1bf5717cec6ba00bd9124d01763b39ce99ee2927f28bc0835cf/68747470733a2f2f73686570686572646a732e6465762f6c616e64696e672f6173736574732f696d672f64656d6f2e706e67","showCover":true,"date":"2021-03-07","category":"frontend","url":"https://github.com/shipshapecode/shepherd","author":"Ship Shape","translator":"","tags":["guide"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"web-minecraft 我的世界web客户端","publish":true,"cover":"https://camo.githubusercontent.com/664cfc61a90b2f313e80bdcbebabff21b47b7592825acf43498e16dd90c7e7ee/68747470733a2f2f692e6962622e636f2f62506839394d562f6879706978656c2e706e67","showCover":true,"date":"2021-03-07","category":"javascript","url":"https://github.com/michaljaz/web-minecraft","author":"Michał Jażdżyk","translator":"","tags":["minecraft"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"一行代码按顺序唯一化数组","publish":true,"cover":"","showCover":true,"date":"2021-03-07","category":"nodejs","url":"https://github.com/sindresorhus/array-union/blob/main/index.js","author":"Sindre Sorhus","translator":"","tags":["nodejs"],"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 function-variable function\">arrayUnion</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">...</span>arguments_<span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">[</span><span class=\"token operator\">...</span><span class=\"token keyword\">new</span> <span class=\"token class-name\">Set</span><span class=\"token punctuation\">(</span>arguments_<span class=\"token punctuation\">.</span><span class=\"token function\">flat</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"使用Apple Silicon（M1）开发连个月，感觉非常好","publish":true,"cover":"https://blog.earthly.dev/content/images/2021/02/img1.png","showCover":true,"date":"2021-03-07","category":"other","url":"https://blog.earthly.dev/using-apple-silicon-m1-as-a-cloud-engineer-two-months-in/","author":"Vlad A. Ionescu","translator":"","tags":["mac"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"停止在code review中挑剔吧","publish":true,"cover":"","showCover":true,"date":"2021-03-07","category":"other","url":"https://blog.danlew.net/2021/02/23/stop-nitpicking-in-code-reviews/","author":"DAN LEW","translator":"","tags":["code review"],"priority":1},"html":"<blockquote>\n<p>👍</p>\n</blockquote>"}},{"node":{"frontmatter":{"title":"教程 - React Navigation 5：单元测试组件","publish":true,"cover":"","showCover":true,"date":"2021-03-07","category":"frontend","url":"https://spin.atomicobject.com/2021/02/24/react-navigation-5-unit-testing-components/","author":"Alex Zurek","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"是时候停止使用图标字体改用svg了","publish":true,"cover":"https://www.irigoyen.dev/assets/blog/svg-logo.webp","showCover":true,"date":"2021-03-07","category":"frontend","url":"https://www.irigoyen.dev/blog/2021/02/17/stop-using-icon-fonts/","author":"OrbitDB","translator":"","tags":["svg"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"向上遍历目录树，直到找到指定的路径","publish":true,"cover":"","showCover":true,"date":"2021-03-07","category":"nodejs","url":"https://github.com/75lb/walk-back","author":"Lloyd Brookes","translator":"","tags":["path"],"priority":1},"html":""}}]}}