{"pageContext":{"index":8,"total":362,"name":"2019-06-30","items":[{"node":{"frontmatter":{"title":"Atlas Data Lake开张(beta版)","publish":true,"cover":"https://webassets.mongodb.com/_com_assets/cms/datalake-litoozk4n1.png","showCover":true,"date":"2019-06-24","category":"mongodb","url":"https://www.mongodb.com/blog/post/mongodb-atlas-data-lake-debuts-at-mongodb-world","author":"Dj Walker-Morgan 摘译 Ka","translator":"","tags":["atlas"],"priority":2},"html":"<p>支持使用 mongo 查询语言搜索 AWS S3 里的 JSON, CSV, TSV, Avro and Parquet 格式的文件数据, 你只需要提供 AWS S3 访问信息即可。</p>"}},{"node":{"frontmatter":{"title":"MongoDB Atlas 支持全文搜索，自动扩展","publish":true,"cover":"","showCover":true,"date":"2019-06-27","category":"database","url":"https://www.mongodb.com/blog/post/full-text-search-and-auto-scaling-coming-to-mongodb-atlas","author":"Mongodb 摘译 Ka","translator":"","tags":["mongodb"],"priority":1},"html":"<p>只需要在你的 mongo atlas 集群上配置选项即可开启全文搜索，默认是对所有 string 类型进行索引，你也可通过自定义全文搜索索引。<a href=\"https://docs.atlas.mongodb.com/full-text-search/?_ga=2.50157926.1994939876.1561599078-887115696.1534402844\">文档</a></p>\n<p>自动扩展目前还是内部 beta 版，预计今年夏天正式推出。</p>"}},{"node":{"frontmatter":{"title":"MongoDB 4.2 新特性预览","publish":true,"cover":"","showCover":true,"date":"2019-06-27","category":"database","url":"https://www.mongodb.com/blog/post/mongodb-42-previewed-at-mongodb-world","author":"Dj Walker-Morgan 摘译 Ka","translator":"","tags":["mongodb"],"priority":1},"html":"<ul>\n<li>分布式事务</li>\n<li>客户端字段级别加密(Client-side field-level encryption,加解密在客户端 driver 进行，key 也由客户端保存，服务端只看得到加密后的数据)</li>\n<li>通配符索引</li>\n<li>按需物化视图(On-demand materialized views)</li>\n</ul>"}},{"node":{"frontmatter":{"title":"github 到 AWS pipeline 自动部署示例项目","publish":true,"cover":"https://camo.githubusercontent.com/a56d863ae1b314bc327ccadb5051c34d885d28d2/68747470733a2f2f6476617373616c6c6f2e73332d75732d776573742d322e616d617a6f6e6177732e636f6d2f6769746875622d746f2d6563322d706970656c696e652f706970656c696e652e706e67","showCover":true,"date":"2019-06-09","category":"devops","url":"https://github.com/dvassallo/github-to-ec2-pipeline","author":"Daniel Vassallo","translator":"","tags":["aws"],"priority":2},"html":"<p>只需要在 AWS 上大概 7 个点击，就可以部署成功在 EC2 上运行的 nodejs web 程序,并自带 Let's Encrypt 证书。</p>\n<p>主要使用到 AWS 的<code class=\"language-text\">CodePipeline</code> <code class=\"language-text\">CodeBuild</code> <code class=\"language-text\">CodeDeploy</code>。</p>"}},{"node":{"frontmatter":{"title":"facebook加密币libra尚未正式发布，周边的骗子已经蠢蠢欲动","publish":true,"cover":"https://static.coindesk.com/wp-content/uploads/2018/12/shutterstock_181985675-860x430.jpg","showCover":true,"date":"2019-06-24","category":"blockchain","url":"https://www.coindesk.com/libra-scams-on-the-rise-as-newbies-learn-about-facebooks-crypto","author":"Daniel Kuhn 摘译 Ka","translator":"","tags":["facebook"],"priority":1},"html":"<p>上个周末，一些欺诈网站纷纷上线，例如运行在俄罗斯的一家钓鱼网站calìbra.com（注意字母ì）就是完全模仿合法的官方网站calibra.com。当用户误入欺诈网站点击右上角的“预售”按钮，就会看到诱惑性的提示，显示现在立马以加密币购买Libra会有许多优惠，而实际上官方的Libra根本就未以任何形式预售。</p>\n<p>相对于明目张胆的欺骗，Zuckbucks.cash则表现的是讽刺，其宣称其发行的ZBUX什么也做不了，除了给扎克伯格膨胀的银行账户再加上几块。“就像LIBRA一样，Zuckbucks除了把你的钱直接放到开发者的荷包里，其他什么利润也不会带给你。” </p>"}},{"node":{"frontmatter":{"title":"npm CEO致信员工资金可以支撑到2020","publish":true,"cover":"","showCover":true,"date":"2019-06-27","category":"nodejs","url":"https://npm.community/t/release-npm-6-9-1/8435","author":"摘译 Ka","translator":"","tags":["npm"],"priority":1},"html":"<p>同时 npm 6.9.1 经过长时间的延迟，终于发布了。</p>"}},{"node":{"frontmatter":{"title":"图解numpy使用","publish":true,"cover":"https://jalammar.github.io/images/numpy/create-numpy-array-ones-zeros-random.png","showCover":true,"date":"2019-06-28","category":"python","url":"https://jalammar.github.io/visual-numpy/","author":"Jay Alammar","translator":"","tags":["numpy"],"priority":1},"html":"<p><img src=\"https://jalammar.github.io/images/numpy/numpy-arrays-adding-1.png\"></p>\n<p><img src=\"https://jalammar.github.io/images/numpy/numpy-array-broadcast.png\"></p>\n<p><img src=\"https://jalammar.github.io/images/numpy/numpy-array-create-2d.png\"></p>\n<p><img src=\"https://jalammar.github.io/images/numpy/numpy-matrix-ones-zeros-random.png\"></p>\n<p><img src=\"https://jalammar.github.io/images/numpy/numpy-matrix-arithmetic.png\"></p>\n<p><img src=\"https://jalammar.github.io/images/numpy/numpy-matrix-broadcast.png\"></p>\n<p><img src=\"https://jalammar.github.io/images/numpy/numpy-matrix-dot-product-1.png\">\n<img src=\"https://jalammar.github.io/images/numpy/numpy-matrix-dot-product-2.png\">\n<img src=\"https://jalammar.github.io/images/numpy/numpy-matrix-dot-product-2.png\"></p>\n<p><img src=\"https://jalammar.github.io/images/numpy/numpy-matrix-indexing.png\"></p>"}},{"node":{"frontmatter":{"title":"darkmodejs - 让web支持系统的dark模式","publish":true,"cover":"https://camo.githubusercontent.com/a66c8377a3d0d2fd714252cae4a10fd59bb2b663/68747470733a2f2f692e696d6775722e636f6d2f5a5232614749452e676966","showCover":true,"date":"2019-06-27","category":"frontend","url":"https://github.com/Assortment/darkmodejs","author":"Assortment","translator":"","tags":["darkmode"],"priority":1},"html":"<p>底层使用 <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia\">matchMedia</a>进行查询</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> darkmode <span class=\"token keyword\">from</span> <span class=\"token string\">'@assortment/darkmodejs'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">onChange</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>activeTheme<span class=\"token punctuation\">,</span> themes<span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">switch</span> <span class=\"token punctuation\">(</span>activeTheme<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">case</span> themes<span class=\"token punctuation\">.</span><span class=\"token constant\">DARK</span><span class=\"token punctuation\">:</span>\n      console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'darkmode enabled'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">case</span> themes<span class=\"token punctuation\">.</span><span class=\"token constant\">LIGHT</span><span class=\"token punctuation\">:</span>\n      console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'lightmode enabled'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">case</span> themes<span class=\"token punctuation\">.</span><span class=\"token constant\">NO_PREF</span><span class=\"token punctuation\">:</span>\n      console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'no preference enabled'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">case</span> themes<span class=\"token punctuation\">.</span><span class=\"token constant\">NO_SUPP</span><span class=\"token punctuation\">:</span>\n      console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'no support sorry'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">break</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token function\">darkmode</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> onChange <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"react-redux 7.1开始支持hooks","publish":true,"cover":"","showCover":true,"date":"2019-06-27","category":"frontend","url":"https://glennstovall.com/react-hooks-before-and-after/","author":"Glenn Stovall","translator":"","tags":["redux"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> React <span class=\"token keyword\">from</span> <span class=\"token string\">'react'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> useSelector<span class=\"token punctuation\">,</span> useDispatch <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'react-redux'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">hookedSearchBar</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">//相当于 mapDispatchToProps</span>\n  <span class=\"token keyword\">const</span> dispatch <span class=\"token operator\">=</span> <span class=\"token function\">useDispatch</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token comment\">//相当于 mapStateToProps</span>\n  <span class=\"token keyword\">const</span> query <span class=\"token operator\">=</span> <span class=\"token function\">useSelector</span><span class=\"token punctuation\">(</span>state <span class=\"token operator\">=></span> state<span class=\"token punctuation\">.</span>query<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">const</span> <span class=\"token function-variable function\">handleSubmit</span> <span class=\"token operator\">=</span> e <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    e<span class=\"token punctuation\">.</span><span class=\"token function\">preventDefault</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">dispatch</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> type<span class=\"token punctuation\">:</span> <span class=\"token string\">'NEW_SEARCH'</span><span class=\"token punctuation\">,</span> payload<span class=\"token punctuation\">:</span> query <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">const</span> <span class=\"token function-variable function\">handleChange</span> <span class=\"token operator\">=</span> e <span class=\"token operator\">=></span>\n    <span class=\"token function\">dispatch</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> type<span class=\"token punctuation\">:</span> <span class=\"token string\">'UPDATE_QUERY'</span><span class=\"token punctuation\">,</span> payload<span class=\"token punctuation\">:</span> e<span class=\"token punctuation\">.</span>target<span class=\"token punctuation\">.</span>value <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>form onSubmit<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>handleSubmit<span class=\"token punctuation\">}</span><span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>input name<span class=\"token operator\">=</span><span class=\"token string\">\"search\"</span> value<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>query<span class=\"token punctuation\">}</span> onChange<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>handleChange<span class=\"token punctuation\">}</span> <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>form<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span></code></pre></div>"}}]}}