{"pageContext":{"index":86,"total":366,"name":"2020-12-27","items":[{"node":{"frontmatter":{"title":"Game Off 2020 免费开源游戏集锦","publish":true,"cover":"https://github.blog/wp-content/uploads/2020/12/a-trip-to-the-moon.gif?resize=640%2C320","showCover":true,"date":"2020-12-27","category":"game","url":"https://github.blog/2020-12-23-highlights-from-game-off-2020/","author":"Lee Reilly","translator":"","tags":["game"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Senior Engineer为什么不喜欢代码面试","publish":true,"cover":"","showCover":true,"date":"2020-12-27","category":"other","url":"https://medium.com/swlh/why-senior-engineers-hate-coding-interviews-d583d2855757","author":"Adam Storm","translator":"","tags":["interview"],"priority":1},"html":"<blockquote>\n<p>真 - 牛人说的话 There’s absolutely no way I could pass the coding interview at any of the big tech companies. Even the ones where the interviewer learned to code from one of my tutorials.</p>\n</blockquote>"}},{"node":{"frontmatter":{"title":"SQL joins解释","publish":true,"cover":"https://res.cloudinary.com/practicaldev/image/fetch/s--fSgrH6O3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gz8rltgkpvm06pust5j1.png","showCover":true,"date":"2020-12-27","category":"database","url":"https://dev.to/educative/what-are-sql-joins-types-of-sql-joins-explained-5ci5","author":"Amanda Fawcett","translator":"","tags":["editor"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"geometrize - 将图片转换为几何图","publish":true,"cover":"https://github.com/Tw1ddle/geometrize/raw/master/screenshots/tree_under_clouds.png?raw=true","showCover":true,"date":"2020-12-27","category":"frontend","url":"https://github.com/Tw1ddle/geometrize","author":"Sam Twidale","translator":"","tags":["image"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"在线游戏历史","publish":true,"cover":"https://mirkgames.com/blog/magnavox-odyssey.jpg","showCover":true,"date":"2020-12-27","category":"game","url":"https://mirkgames.com/blog/history-of-online-games.html","author":"Iskren Ruskov","translator":"","tags":["editor"],"priority":1},"html":"<p>在线游戏网站</p>\n<ol>\n<li>\n<p>Starjack.io</p>\n</li>\n<li>\n<p>Paper.io</p>\n</li>\n<li>\n<p>Surviv.io</p>\n</li>\n<li>\n<p>Hole.io</p>\n</li>\n<li>\n<p>Mope.io</p>\n</li>\n<li>\n<p>Mahjong Classic</p>\n</li>\n<li>\n<p>Uno Online</p>\n</li>\n<li>\n<p>Tanki Online</p>\n</li>\n<li>\n<p>Zombsroyale.io</p>\n</li>\n<li>\n<p>Slither.io</p>\n</li>\n<li>\n<p>Wormate2.io</p>\n</li>\n<li>\n<p>Snowball.io</p>\n</li>\n<li>\n<p>Starblast.io</p>\n</li>\n<li>\n<p>Moomoo.io</p>\n</li>\n<li>\n<p>Evowars.io</p>\n</li>\n</ol>"}},{"node":{"frontmatter":{"title":"十个必须知道的javascript技巧","publish":true,"cover":"https://images.unsplash.com/photo-1562615202-0b3035d14b6f?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MXwxMTc3M3wwfDF8c2VhcmNofDl8fHNwYW5uZXJ8ZW58MHx8fA&ixlib=rb-1.2.1&q=80&w=2000","showCover":true,"date":"2020-12-27","category":"javascript","url":"https://github.blog/2020-12-23-highlights-from-game-off-2020/","author":"Gert Svaiko","translator":"","tags":["hack"],"priority":2},"html":"<h2 id=\"-取整\"><a href=\"#-%E5%8F%96%E6%95%B4\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>~~ 取整</h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token comment\">// instead of</span>\nmath<span class=\"token punctuation\">.</span><span class=\"token function\">round</span><span class=\"token punctuation\">(</span>math<span class=\"token punctuation\">.</span>random<span class=\"token operator\">*</span><span class=\"token number\">50</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\">// use</span>\n<span class=\"token operator\">~</span><span class=\"token operator\">~</span><span class=\"token punctuation\">(</span>math<span class=\"token punctuation\">.</span>random<span class=\"token operator\">*</span><span class=\"token number\">50</span><span class=\"token punctuation\">)</span>\nYou can also use the “<span class=\"token operator\">~</span><span class=\"token operator\">~</span>” operator to convert anything into a number value<span class=\"token punctuation\">.</span>\nExample snippet<span class=\"token punctuation\">:</span>\n<span class=\"token operator\">~</span><span class=\"token operator\">~</span><span class=\"token punctuation\">(</span><span class=\"token string\">'whitedress'</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// returns 0</span>\n<span class=\"token operator\">~</span><span class=\"token operator\">~</span><span class=\"token punctuation\">(</span><span class=\"token number\">NaN</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// returns 0</span></code></pre></div>\n<p><code class=\"language-text\">~~1.6 === 1</code> </p>\n<h2 id=\"arraylength\"><a href=\"#arraylength\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Array.length</h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">var</span> array <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>a<span class=\"token punctuation\">,</span> b<span class=\"token punctuation\">,</span> c<span class=\"token punctuation\">,</span> d<span class=\"token punctuation\">,</span> e<span class=\"token punctuation\">,</span> f<span class=\"token punctuation\">,</span> g<span class=\"token punctuation\">,</span> h<span class=\"token punctuation\">,</span> i <span class=\"token punctuation\">,</span> j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>array<span class=\"token punctuation\">.</span>length<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// returns the length as 10</span>\narray<span class=\"token punctuation\">.</span>length <span class=\"token operator\">=</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>array<span class=\"token punctuation\">.</span>length<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// returns the length as 4</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>array<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// returns “a,b,c,d”</span></code></pre></div>\n<h2 id=\"大数组不要使用concat-应该使用push\"><a href=\"#%E5%A4%A7%E6%95%B0%E7%BB%84%E4%B8%8D%E8%A6%81%E4%BD%BF%E7%94%A8concat-%E5%BA%94%E8%AF%A5%E4%BD%BF%E7%94%A8push\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>大数组不要使用concat 应该使用push</h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">var</span> list1 <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>a<span class=\"token punctuation\">,</span> b<span class=\"token punctuation\">,</span> c<span class=\"token punctuation\">,</span> d<span class=\"token punctuation\">,</span> e<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">var</span> list2 <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>f<span class=\"token punctuation\">,</span> g<span class=\"token punctuation\">,</span> h<span class=\"token punctuation\">,</span> i<span class=\"token punctuation\">,</span> j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>list1<span class=\"token punctuation\">.</span>push<span class=\"token punctuation\">.</span><span class=\"token function\">apply</span><span class=\"token punctuation\">(</span>list1<span class=\"token punctuation\">,</span> list2<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// returns the merged values of both arrays (a, b, c, d, e,f, g, h, i, j)</span></code></pre></div>\n<h2 id=\"判断对象是否为空\"><a href=\"#%E5%88%A4%E6%96%AD%E5%AF%B9%E8%B1%A1%E6%98%AF%E5%90%A6%E4%B8%BA%E7%A9%BA\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>判断对象是否为空</h2>\n<p><code class=\"language-text\">Object.keys(objectName).length</code></p>"}},{"node":{"frontmatter":{"title":"supertokens-core 开源项目功能对标Auth0","publish":true,"cover":"https://camo.githubusercontent.com/331a3fa4d3fc93b04cc5256e965682cc6c46dba6456981e08c64d8410489abe1/68747470733a2f2f7375706572746f6b656e732e696f2f646f63732f7374617469632f6173736574732f656d61696c70617373776f72642f6172636869746563747572652e706e67","showCover":true,"date":"2020-12-27","category":"java","url":"https://github.com/supertokens/supertokens-core","author":"SuperTokens","translator":"","tags":["auth"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"owncast - 开源流媒体加聊天","publish":true,"cover":"https://camo.githubusercontent.com/593efce2fa57aafb21edf480234e59c51afbf7581b5a3a5c7705fbcae4ba7b4f/68747470733a2f2f6f776e636173742e6f6e6c696e652f696d616765732f6f776e636173742d73637265656e73686f742e706e67","showCover":true,"date":"2020-12-27","category":"go","url":"https://github.com/owncast/owncast","author":"Owncast","translator":"","tags":["stream"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"想让你的文章出现在这里？","publish":true,"cover":"","showCover":true,"date":"2020-10-03","category":"frontend","url":"mailto:editor@zhouexin.com?subject=投稿!","author":"投稿","translator":"","tags":["editor"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"教程 - 构建家庭证书授权中心","publish":true,"cover":"https://smallstep.com/images/blog/tiny-ca.png","showCover":true,"date":"2020-12-27","category":"devops","url":"https://smallstep.com/blog/build-a-tiny-ca-with-raspberry-pi-yubikey/","author":"CARL TASHIAN","translator":"","tags":["game"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"深度 - git提交是快照而不是比对","publish":true,"cover":"https://github.blog/wp-content/uploads/2020/12/object-model-ref.png?resize=781%2C383?w=781","showCover":true,"date":"2020-12-27","category":"other","url":"https://github.blog/2020-12-17-commits-are-snapshots-not-diffs/","author":"Derrick Stolee","translator":"","tags":["git"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"故事 - 做的小项目是怎样出售的","publish":true,"cover":"","showCover":true,"date":"2020-12-27","category":"other","url":"https://tinyprojects.dev/posts/selling_a_tiny_project","author":"Ben","translator":"","tags":["editor"],"priority":1},"html":"<blockquote>\n<p>这是买家主动找上门的</p>\n</blockquote>"}}]}}