{"pageContext":{"index":216,"total":364,"name":"2023-06-25","items":[{"node":{"frontmatter":{"title":"BattleBit Remastered - 目前Steam上最畅销的由4人制作的254人同局FPS游戏","publish":true,"cover":"https://cdn.mos.cms.futurecdn.net/9KbmT8sJG9AzZ6qw8mtwjX-1920-80.jpg.webp","showCover":null,"date":"2023-06-25","category":"other","url":"https://www.pcgamer.com/the-top-selling-game-on-steam-right-now-is-a-new-254-player-fps-made-by-4-people","author":"Morgan Park","translator":"","tags":["game"],"priority":2},"html":"<p>BattleBit 目前赚的钱比 Warzone 2、Starfield、PUBG 和 Steam Deck 还要多。对于 OkiGames 的四人团队来说这还不错，他们已经以各种形式致力于BattleBit七年。</p>\n<p>这款游戏的发布相对顺利。动作敏捷，射击反应灵敏且有趣（尽管枪听起来有点弱）。地图也非常巨大——大到即使有 254 名玩家到处乱跑，也有足够的空间来摆脱战斗和侧翼攻击。</p>"}},{"node":{"frontmatter":{"title":"GB Studio - 拖放复古游戏(gameboy)创建器","publish":true,"cover":"https://github.com/chrismaltby/gb-studio/raw/develop/gbstudio.gif","showCover":null,"date":"2023-06-25","category":"javascript","url":"https://github.com/gyroflow/gyroflow","author":"Chris Maltby","translator":"","tags":["game"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"Chat2DB - 智能的通用数据库SQL客户端和报表工具","publish":true,"cover":"https://camo.githubusercontent.com/ac9a50b92f0991d2be9a437d6985b2fdc18b6419d6d40cd8ba8de8ec48521eab/68747470733a2f2f67772e616c6963646e2e636f6d2f696d6765787472612f69342f4f31434e3031696153586f743157365665614446624b325f2121363030303030303030323733392d302d7470732d333433302d313734302e6a7067","showCover":null,"date":"2023-06-25","category":"database","url":"https://github.com/alibaba/Chat2DB","author":"阿里巴巴","translator":"","tags":["AI"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"2023 Remix托管平台比较","publish":true,"cover":"","showCover":null,"date":"2023-06-25","category":"nodejs","url":"https://www.jacobparis.com/content/where-to-host-remix","author":"Jacob","translator":"","tags":["remix"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"实现持续交付的Git分支策略","publish":true,"cover":"https://miro.medium.com/v2/resize:fit:774/format:webp/1*RQjzvwWr66-WQI1r2obA2Q.png","showCover":null,"date":"2023-06-25","category":"devops","url":"https://sairamkrish.medium.com/git-branching-strategy-for-true-continuous-delivery-eade4435b57e","author":"Sairam Krish","translator":"","tags":["git"],"priority":1},"html":"<p>主要区别就是从prod默认分枝checkout特性分枝，目标是直接向PROD分枝创建pr</p>"}},{"node":{"frontmatter":{"title":"JavaScript AI 应用入门","publish":true,"cover":"https://user-images.githubusercontent.com/3489963/247438724-bcc762d2-68f5-4c4e-8c49-14602bee4995.png","showCover":null,"date":"2023-06-25","category":"javascript","url":"https://a16z.com/2023/06/21/the-getting-started-with-ai-stack-for-javascript/","author":"a16z-infra, Yoko Li, Jennifer Li, and Martin Casado","translator":"","tags":["AI"],"priority":1},"html":"<ul>\n<li>auth：Clerk </li>\n<li>应用程序逻辑：Next.js </li>\n<li>矢量数据库：Pinecone / Supabase pgvector </li>\n<li>LLM编排：Langchain.js </li>\n<li>图像模型：Replicate </li>\n<li>文本模型：OpenAI </li>\n<li>部署：Fly.io</li>\n</ul>\n<p><a href=\"https://github.com/a16z-infra/ai-getting-started\">项目模板</a></p>"}},{"node":{"frontmatter":{"title":"Node.js event loop的完整视觉指南","publish":true,"cover":"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2Facadb0ce7d6240639e448d55136c04a6?format=webp&width=2000","showCover":null,"date":"2023-06-25","category":"nodejs","url":"https://www.builder.io/blog/visual-guide-to-nodejs-event-loop","author":"VISHWAS GOPINATH","translator":"","tags":["event loop"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Impossible.js  - 用于构建跨平台终端应用程序的面向对象 JavaScript 库","publish":true,"cover":"https://github.com/ronilan/that-is-impossible/raw/main/media/example_nothing.gif","showCover":null,"date":"2023-06-25","category":"javascript","url":"https://github.com/ronilan/that-is-impossible","author":"Ron Ilan","translator":"","tags":["terminal"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Vercel 提供新的 Vercel AI SDK 用于快速整合来自流行的 AI,LLM 服务","publish":true,"cover":"https://vercel.com/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5sQ3ZY1Qw6dUUb6IeeKxd4%2F5111d20671107e7660ddbce22aa2933e%2FCleanShot_2023-06-14_at_13.36.18_2x.png&w=3840&q=75&dpl=dpl_GvZvKoeYkedtzDrhq88iAzrUgMiG","showCover":null,"date":"2023-06-25","category":"nodejs","url":"https://github.com/vercel-labs/ai","author":"Vercel Labs","translator":"","tags":["ai"],"priority":1},"html":"<p><a href=\"https://vercel.com/blog/introducing-the-vercel-ai-sdk\">介绍</a></p>"}},{"node":{"frontmatter":{"title":"flow-pilot - 基于 openpilot 的驾驶员辅助系统","publish":true,"cover":"","showCover":null,"date":"2023-06-25","category":"AI","url":"https://github.com/flowdriveai/flowpilot","author":"flowdrive.ai","translator":"","tags":["autopilot"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Gyroflow - 通过使用来自陀螺仪和可选加速计的运动数据来稳定视频","publish":true,"cover":"https://github.com/gyroflow/gyroflow/raw/master/resources/comparison1.gif","showCover":null,"date":"2023-06-25","category":"rust","url":"https://github.com/gyroflow/gyroflow","author":"Gyroflow","translator":"","tags":["stabilization"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"node-chardet - 统计学分析文件语言编码-支持30种编码","publish":true,"cover":"","showCover":null,"date":"2023-06-25","category":"nodejs","url":"https://github.com/runk/node-chardet","author":"VISHWAS GOPINATH","translator":"","tags":["event loop"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-js-cron - 一个用 antd 构建的 React cron 编辑器","publish":true,"cover":"https://raw.githubusercontent.com/xrutayisire/react-js-cron/master/react-js-cron-example.png","showCover":null,"date":"2023-06-25","category":"frontend","url":"https://github.com/xrutayisire/react-js-cron","author":"Xavier Rutayisire","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"node-emoji - 表情符号工具","publish":true,"cover":"","showCover":null,"date":"2023-06-25","category":"nodejs","url":"https://github.com/omnidan/node-emoji","author":"Daniel Bugl","translator":"","tags":["emoj"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> <span class=\"token operator\">*</span> <span class=\"token keyword\">as</span> emoji <span class=\"token keyword\">from</span> <span class=\"token string\">'node-emoji'</span>\n\nemoji<span class=\"token punctuation\">.</span><span class=\"token function\">emojify</span><span class=\"token punctuation\">(</span><span class=\"token string\">'I :heart: :coffee:!'</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// 'I ❤️ ☕️!'</span>\n\nemoji<span class=\"token punctuation\">.</span><span class=\"token function\">find</span><span class=\"token punctuation\">(</span><span class=\"token string\">'heart'</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// { emoji: '❤', name: 'heart' }</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"novel - AI(vercel AI SDK)辅助的所见即所得编辑器","publish":true,"cover":"https://github.com/steven-tey/novel/raw/main/app/opengraph-image.png","showCover":null,"date":"2023-06-25","category":"nodejs","url":"https://github.com/steven-tey/novel","author":"Steven Tey","translator":"","tags":["editor"],"priority":1},"html":"<ul>\n<li>基于tiptap(收费较高)</li>\n<li>openAI也不是免费的</li>\n</ul>"}},{"node":{"frontmatter":{"title":"octokit.js - github SDK","publish":true,"cover":"","showCover":null,"date":"2023-06-25","category":"nodejs","url":"https://github.com/octokit/octokit.js","author":"octokit","translator":"","tags":["github"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-chessboard - 国际象棋组件","publish":true,"cover":"https://github.com/Clariity/react-chessboard/raw/main/media/chessboard.png","showCover":null,"date":"2023-06-25","category":"frontend","url":"https://github.com/Clariity/react-chessboard","author":"Ryan","translator":"","tags":["chess"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"react-modal-sheet - 纯js实现react native底部上拉菜单组件","publish":true,"cover":"https://github.com/Temzasse/react-modal-sheet/raw/master/media/1.gif","showCover":null,"date":"2023-06-25","category":"mobile","url":"https://github.com/Temzasse/react-modal-sheet","author":"Teemu Taskula","translator":"","tags":["react native"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"了解 GPT 分词器","publish":true,"cover":"https://static.simonwillison.net/static/2023/gpt-token-encoder-decoder.jpg","showCover":null,"date":"2023-06-25","category":"AI","url":"https://simonwillison.net/2023/Jun/8/gpt-tokenizers","author":"Simon Willison’s Weblog","translator":"","tags":["token"],"priority":1},"html":"<p>OpenAI 的每个模型都有一个令牌限制。有时需要在将字符串传递给 API 之前计算字符串中的标记数，以确保不超过限制\n<a href=\"https://simonwillison.net/2023/Jan/13/semantic-search-answers/\">Retrieval Augmented Generation检索增强生成</a>\ntoken计数<a href=\"https://github.com/openai/tiktoken\">tiktoken</a>\n<a href=\"https://platform.openai.com/tokenizer\">OpenAI工具Tokenizer</a></p>"}},{"node":{"frontmatter":{"title":"sonner - 堆栈式提示框组件","publish":true,"cover":"","showCover":null,"date":"2023-06-25","category":"frontend","url":"https://github.com/emilkowalski/sonner","author":"Emil Kowalski","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"threlte - Svelte 的 3D 框架","publish":true,"cover":"https://github.com/threlte/threlte/raw/main/assets/threlte/logo/threlte_logo_github.png","showCover":null,"date":"2023-06-25","category":"frontend","url":"https://github.com/threlte/threlte","author":"threlte","translator":"","tags":["Svelte"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-native-view-shot - 快照 React Native view并将其保存到图像","publish":true,"cover":"https://github.com/gre/react-native-view-shot/raw/master/.readme/recursive.gif","showCover":null,"date":"2023-06-25","category":"mobile","url":"https://github.com/gre/react-native-view-shot","author":"@greweb","translator":"","tags":["react native"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"toad-scheduler - 基于内存的计划任务","publish":true,"cover":"","showCover":null,"date":"2023-06-25","category":"nodejs","url":"https://github.com/kibertoad/toad-scheduler","author":"Igor Savin","translator":"","tags":["scheduler"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"低代码“超级应用程序”引擎支持React Native和 React","publish":true,"cover":"https://user-images.githubusercontent.com/328787/187653868-456026a8-ef7e-498c-9088-1d545dc9f818.png","showCover":null,"date":"2023-06-25","category":"mobile","url":"https://github.com/dappros/ethora","author":"Emil Kowalski","translator":"","tags":["react"],"priority":2},"html":"<p>前端开源，后端不开源</p>"}},{"node":{"frontmatter":{"title":"微软推出Clarity  - 免费且易于使用可捕获真实用户如何实际使用网站的工具","publish":true,"cover":"https://claritystatic.azureedge.net/images/FeatureHeatmap.png","showCover":null,"date":"2023-06-25","category":"devops","url":"https://clarity.microsoft.com/","author":"Microsoft","translator":"","tags":["website"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"总结保持 Apollo(graphql) 缓存最新的策略","publish":true,"cover":"","showCover":null,"date":"2023-06-25","category":"nodejs","url":"https://www.splitgraph.com/blog/keeping-apollo-cache-up-to-date-after-mutations","author":"Grzegorz Rozdzialik","translator":"","tags":["graphql"],"priority":1},"html":"<p>Apollo提供了许多保持其缓存与后端数据一致的方法。没有一种方法在每种情况下都效果最佳。我们的建议是：  </p>\n<ul>\n<li>对于更新，请在突变的响应中包含修改后的数据。</li>\n<li>对于删除，将已删除对象的字段标记为无效。  </li>\n<li>当时间紧迫时，首先手动指定要重新获取的查询，然后逐步实现使字段无效的 updateCache 函数。 </li>\n<li>对于插入，旨在将父对象的字段标记为无效。如果事这很困难，请使用手动查询列表来重新获取。   </li>\n</ul>\n<p>总而言之，缓存失效仍然是一个难题，使用Apollo也不例外。</p>"}},{"node":{"frontmatter":{"title":"地图扭曲了我们看待世界的方式","publish":true,"cover":"https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F639a07a7-5679-4be5-a650-7592298afccf_720x556.png","showCover":null,"date":"2023-06-25","category":"other","url":"https://unchartedterritories.tomaspueyo.com/p/maps-distort-how-we-see-the-world","author":"TOMAS PUEYO","translator":"","tags":["map"],"priority":1},"html":"<p>如果您将地图以阿拉斯加为中心，您就会明白为什么它拥有世界上货运量第三大的机场：它是北半球所有大型市场的最中心点\n<img src=\"https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F878cf0cb-f2cb-4cb0-bbb7-8fe2b610ef86_745x745.png\"></p>\n<p>中国的最西端距离德国比最东端更近！\n<img src=\"https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbe6028a-128b-4448-b85e-14f57b99147a_1134x850.png\"></p>"}},{"node":{"frontmatter":{"title":"安全地将 Netflix api实现 迁移到 GraphQL","publish":true,"cover":"https://miro.medium.com/v2/resize:fit:1292/format:webp/1*6AUD_2oUUTauxY5mo_BM9Q.png","showCover":null,"date":"2023-06-25","category":"nodejs","url":"https://netflixtechblog.com/migrating-netflix-to-graphql-safely-8e1e4d4f1e72","author":"Jennifer Shin, Tejas Shikhare, Will Emmanuel","translator":"","tags":["graphql"],"priority":2},"html":"<p>自信来自程咬金三板斧-测试，测试，还是测试</p>"}},{"node":{"frontmatter":{"title":"在 Chrome 的 DevTools 中的animations面板以慢动作观看动画","publish":true,"cover":"https://cdn.jim-nielsen.com/blog/2023/animations-panel-command-palette.png","showCover":null,"date":"2023-06-25","category":"frontend","url":"https://blog.jim-nielsen.com/2023/slow-motion-animations-with-chrome-devtools/","author":"Jim Nielsen","translator":"","tags":["animation"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"文本编辑器数据结构及难点","publish":true,"cover":"https://cdacamar.github.io/images/crlf-system.gif","showCover":null,"date":"2023-06-25","category":"c++","url":"https://cdacamar.github.io/data%20structures/algorithms/benchmarking/text%20editors/c++/editor-data-structures/","author":"Cameron DaCamara","translator":"","tags":["editor"],"priority":1},"html":"<p>红黑树和Piece Tree（<a href=\"https://github.com/microsoft/vscode/tree/main/src/vs/editor/common/model/pieceTreeTextBuffer\">vscode在用</a>）</p>\n<p>作者用c++写的编辑器<a href=\"https://github.com/cdacamar/fredbuf\">repo for fredbuf</a></p>"}},{"node":{"frontmatter":{"title":"打包和销售 Node.js 应用程序","publish":true,"cover":"https://docs.emailengine.app/content/images/size/w2000/2023/06/DALL-E-2023-06-19-21.24.57---robot-standing-behind-a-counter-and-selling-a-box--single-line-drawing--white-background.png","showCover":null,"date":"2023-06-25","category":"nodejs","url":"https://docs.emailengine.app/packaging-and-selling-a-node-js-app/","author":"Andris Reinman","translator":"","tags":["parcel"],"priority":1},"html":"<p>pkg打包成CLI可执行工具，内嵌redis数据库</p>"}},{"node":{"frontmatter":{"title":"红杉资本分析文章 - 新的AI语言模型堆栈","publish":true,"cover":"https://www.sequoiacap.com/wp-content/uploads/sites/6/2023/06/llm-landscape-9.png","showCover":null,"date":"2023-06-25","category":"AI","url":"https://www.sequoiacap.com/article/llm-stack-perspective/","author":"MICHELLE FRADIN, LAUREN REEDER","translator":"","tags":["LLM"],"priority":2},"html":"<p>我们采访的每一位从业者都表示，人工智能发展得太快，人们对最终状态堆栈缺乏高度信心，但大家一致认为，LLM API 仍将是一个关键支柱，其次是检索机制和像 LangChain 这样的开发框架。</p>"}}]}}