{"pageContext":{"index":198,"total":364,"name":"2023-02-19","items":[{"node":{"frontmatter":{"title":"ChatGPT VSCode 插件","publish":true,"cover":"https://user-images.githubusercontent.com/6216945/214072504-72e9de44-d87e-488b-8733-2d9555b8bd04.png","showCover":null,"date":"2023-02-19","category":"AI","url":"https://www.codegpt.co/","author":"Daniel Avila","translator":"","tags":["ChatGPT"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"CRDT(Conflict Free Replicated Data types) 的简要介绍","publish":true,"cover":"https://vlcn.io/assets/blog/gentle-intro-to-crdts/business-doc-central.png","showCover":null,"date":"2023-02-19","category":"algrithm","url":"https://vlcn.io/blog/gentle-intro-to-crdts.html","author":"vlcn","translator":"","tags":["CRDT"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"lapce - rust写的代码编辑器","publish":true,"cover":"https://github.com/lapce/lapce/raw/master/extra/images/screenshot.png?raw=true","showCover":null,"date":"2023-02-19","category":"rust","url":"https://github.com/lapce/lapce","author":"lapce","translator":"","tags":["IDE"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Tailwind  Elements：使用 Tailwind CSS 重新创建的 500 多个 Bootstrap 组件","publish":true,"cover":"https://camo.githubusercontent.com/0fd840a03ab4ce814f47e5c6553e303b9e25fb9afdb77a007294b89d16903809/68747470733a2f2f6d64626f6f7473747261702e636f6d2f696d672f74772d64656d6f2f6368617274732e77656270","showCover":null,"date":"2023-02-19","category":"frontend","url":"https://github.com/mdbootstrap/Tailwind-Elements/","author":"MDBootstrap","translator":"","tags":["tailwind"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"jpeg-autorotate - 自动修正图片拍摄方向","publish":true,"cover":"https://github.com/johansatge/jpeg-autorotate/raw/master/icon.png","showCover":null,"date":"2023-02-19","category":"nodejs","url":"https://github.com/johansatge/jpeg-autorotate","author":"Johan Satgé","translator":"","tags":["jpeg"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"devalue - 高性能安全json解析和序列化","publish":true,"cover":"","showCover":null,"date":"2023-02-19","category":"javascript","url":"https://github.com/Rich-Harris/devalue","author":"Rich Harris","translator":"","tags":["json"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"memories - 照片管理webap绑定nextapp","publish":true,"cover":"https://github.com/pulsejet/memories/raw/master/appinfo/screenshot.jpg","showCover":null,"date":"2023-02-19","category":"nodejs","url":"https://github.com/pulsejet/memories","author":"Varun Patil","translator":"","tags":["photo"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-resizable-panels - react可拖拽resize面板","publish":true,"cover":"https://user-images.githubusercontent.com/29597/210075327-faeb4ca8-31df-4dc8-a649-01d0ee3cd315.png","showCover":null,"date":"2023-02-19","category":"frontend","url":"https://github.com/bvaughn/react-resizable-panels","author":"Brian Vaughn","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"neondatabase - serverless postgres数据库","publish":true,"cover":"https://wpblog.semaphoreci.com/wp-content/uploads/2023/01/neon-arch.jpg","showCover":null,"date":"2023-02-19","category":"database","url":"https://semaphoreci.com/blog/neon-database","author":"Tomas Fernandez","translator":"","tags":["postgres"],"priority":2},"html":"<p><a href=\"https://github.com/neondatabase/neon\">开源</a><br>\n独创的branch特性：</p>\n<ul>\n<li>在不影响主分支的情况下自由测试</li>\n<li>即时备份数据库。所以，如果数据不小心丢失了，我们可以切换到最后一个好的分支。</li>\n<li>简化集成测试。开发人员可以在一次性测试特定分支中运行测试。</li>\n<li>可单独运行分析或机器学习工作负载</li>\n</ul>"}},{"node":{"frontmatter":{"title":"promptable - 使用javascript结合AI创建LLM(Large Language Model)程序","publish":true,"cover":"","showCover":null,"date":"2023-02-19","category":"AI","url":"https://github.com/cfortuner/promptable","author":"Colin Fortuner","translator":"","tags":["LLM"],"priority":1},"html":"<p>LLM 是一种大型语言模型。它是一种可以根据提示生成文本的模型。它是一种 AI，可用于生成文本、回答问题等。</p>"}},{"node":{"frontmatter":{"title":"react-ansi-animation - ansi动画组件","publish":true,"cover":"https://github.com/chung-leong/react-ansi-animation/raw/main/doc/img/screenshot-1.jpg","showCover":null,"date":"2023-02-19","category":"frontend","url":"https://github.com/chung-leong/react-ansi-animation","author":"Chung Leong","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"researchgpt - 基于 LLM 的开源研究助理，可让您与研究论文进行对话","publish":true,"cover":"https://user-images.githubusercontent.com/36257370/218764852-32b79201-4767-4684-980a-73aa81e7d72a.mp4","showCover":null,"date":"2023-02-19","category":"AI","url":"https://github.com/mukulpatnaik/researchgpt","author":"mukul","translator":"","tags":["gpt"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"使用 Miniflare 在本地运行 Cloudflare worker","publish":true,"cover":"https://hrishikeshpathak.com/blog-images/cloudflare-worker-local-setup-miniflare-wrangler.webp","showCover":null,"date":"2023-02-19","category":"nodejs","url":"https://hrishikeshpathak.com/blog/cloudflare-worker-local-setup-miniflare-wrangler/","author":"Hrishikesh Pathak","translator":"","tags":["serverless"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"使用 Theatre.js 和 React Three Fiber 制作相机flythrough动画","publish":true,"cover":"https://i7x7p5b7.stackpathcdn.com/codrops/wp-content/uploads/2023/02/cameraflythrough-theatrejs.jpg","showCover":null,"date":"2023-02-19","category":"frontend","url":"https://tympanus.net/codrops/2023/02/14/animate-a-camera-fly-through-on-scroll-using-theatre-js-and-react-three-fiber/","author":"Andrew Prifer","translator":"","tags":["react"],"priority":2},"html":"<p><a href=\"https://github.com/AndrewPrifer/CodropsCameraFlyThroughTutorial/\">源码</a></p>"}},{"node":{"frontmatter":{"title":"介绍常用的 Javascript Symbols","publish":true,"cover":"","showCover":null,"date":"2023-02-19","category":"javascript","url":"https://h3manth.com/posts/Well-known-symbols/","author":"Hemanth HM","translator":"","tags":["symbol"],"priority":2},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\">Symbol<span class=\"token punctuation\">.</span>iterator\nSymbol<span class=\"token punctuation\">.</span>toStringTag\nSymbol<span class=\"token punctuation\">.</span>toPrimitive\nSymbol<span class=\"token punctuation\">.</span>asyncIterator\nSymbol<span class=\"token punctuation\">.</span>hasInstance\nSymbol<span class=\"token punctuation\">.</span>isConcatSpreadable\nSymbol<span class=\"token punctuation\">.</span>species\nSymbol<span class=\"token punctuation\">.</span>match\nSymbol<span class=\"token punctuation\">.</span>matchall\nSymbol<span class=\"token punctuation\">.</span>replace\nSymbol<span class=\"token punctuation\">.</span>search\nSymbol<span class=\"token punctuation\">.</span>split\nSymbol<span class=\"token punctuation\">.</span>unscopables\nSymbol<span class=\"token punctuation\">.</span>dispose</code></pre></div>"}},{"node":{"frontmatter":{"title":"使用MutationObserver监听动态创建的元素","publish":true,"cover":"","showCover":null,"date":"2023-02-19","category":"javascript","url":"https://www.macarthur.me/posts/use-mutation-observer-to-handle-nodes-that-dont-exist-yet","author":"Alex MacArthur","translator":"","tags":["event"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> domObserver <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">MutationObserver</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span>_mutationList<span class=\"token punctuation\">,</span> observer<span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">const</span> button <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span><span class=\"token function\">getElementById</span><span class=\"token punctuation\">(</span><span class=\"token string\">'button'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>button<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    button<span class=\"token punctuation\">.</span><span class=\"token function\">addEventListener</span><span class=\"token punctuation\">(</span><span class=\"token string\">'click'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'clicked!'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n\t\t<span class=\"token comment\">// No need to observe anymore. Clean up!</span>\n    observer<span class=\"token punctuation\">.</span><span class=\"token function\">disconnect</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"如何使用nodejs cluster进行多核运算","publish":true,"cover":"https://deved-images.nyc3.digitaloceanspaces.com/CART-69060%2F5u053tX.png","showCover":null,"date":"2023-02-19","category":"nodejs","url":"https://www.digitalocean.com/community/tutorials/how-to-scale-node-js-applications-with-clustering","author":"Stanley Ulili","translator":"","tags":["cluster"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> cpuCount <span class=\"token operator\">=</span> os<span class=\"token punctuation\">.</span><span class=\"token function\">cpus</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>length<span class=\"token punctuation\">;</span>\n\ncluster<span class=\"token punctuation\">.</span><span class=\"token function\">setupPrimary</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n  exec<span class=\"token punctuation\">:</span> __dirname <span class=\"token operator\">+</span> <span class=\"token string\">\"/index.js\"</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">let</span> i <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i <span class=\"token operator\">&lt;</span> cpuCount<span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  cluster<span class=\"token punctuation\">.</span><span class=\"token function\">fork</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"通过记录服务器活动为Node.js 应用程序生成集成测试","publish":true,"cover":"https://user-images.githubusercontent.com/10895136/217490853-013a21d3-e4a2-4c1d-a38c-e3c835788592.png","showCover":null,"date":"2023-02-19","category":"nodejs","url":"https://github.com/Pythagora-io/pythagora","author":"Pythagora-io","translator":"","tags":["test"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"推荐贼道三痴的雅骚","publish":true,"cover":"","showCover":null,"date":"2023-02-19","category":"literature","url":"https://blog.kazge.com/literature/2022/12/19/amazing-web-article/","author":"Editor","translator":"","tags":["novel"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"如何调试浏览器中的交互","publish":true,"cover":"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F109420f51a4348f5854c99464758af41?format=webp&width=2000","showCover":null,"date":"2023-02-19","category":"frontend","url":"https://www.builder.io/blog/inspect-interactions-in-the-browser","author":"SAMI JABER","translator":"","tags":["browser"],"priority":1},"html":"<p>打开控制台，按 CMD+SHIFT+P 打开命令面板，然后搜索 Show Rendering： 开启 “Emulate a focused page”.</p>"}},{"node":{"frontmatter":{"title":"实用的UI设计规则","publish":true,"cover":"https://anthonyhobday.com/sideprojects/saferules/images/17.png","showCover":null,"date":"2023-02-19","category":"frontend","url":"https://anthonyhobday.com/sideprojects/saferules/","author":"anthonyhobday.com","translator":"","tags":["design"],"priority":1},"html":"<ul>\n<li>简单置于复杂或复杂于简单</li>\n<li>保持正文字体大小在 16 像素或以上</li>\n<li>将按钮中的水平padding设为垂直padding的两倍</li>\n<li>单位有序递增<img src=\"https://anthonyhobday.com/sideprojects/saferules/images/11.png\"></li>\n</ul>"}},{"node":{"frontmatter":{"title":"学士论文 - 有脏话的代码比没脏话的代码质量更高","publish":true,"cover":"","showCover":null,"date":"2023-02-19","category":"other","url":"https://cme.h-its.org/exelixis/pubs/JanThesis.pdf","author":"Jan Strehmel","translator":"","tags":["code"],"priority":1},"html":"<p>这可不是搞笑，正儿八经的学士论文 - 通过数据分析github上3800个有脏话repos比对7600个无脏话repos</p>"}}]}}