<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Nexmoe</title><description>Nexmoe 的产品与内容更新</description><link>https://nexmoe.com</link><language>zh</language><item><title>为什么我要做一个开源视频下载器 VidBee</title><link>https://nexmoe.com/zh/posts/20260225-vidbee-origin-story</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/20260225-vidbee-origin-story</guid><pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;这件事是怎么开始的&lt;/h2&gt;
&lt;p&gt;我一开始做 VidBee，起因很简单，女朋友刚开始做自媒体，每天都要下载素材。&lt;code&gt;yt-dlp&lt;/code&gt; 虽然强无敌，但她是电脑小白，连软件都要我帮她装，更别说什么命令行了。&lt;/p&gt;
&lt;p&gt;我们也试过一些现成工具，比如 &lt;code&gt;ytDownloader&lt;/code&gt; 和 &lt;code&gt;YoutubeDownloader&lt;/code&gt;。看起来像给新手准备，真用起来还是绕，失败提示也不清楚，用户体验并没有比命令行高多少。&lt;/p&gt;
&lt;h2&gt;快速上手&lt;/h2&gt;
&lt;p&gt;如果你想先试试看，最快上手就三步。先到 &lt;a href=&quot;https://vidbee.org/download&quot;&gt;https://vidbee.org/download&lt;/a&gt; 下载对应系统版本，安装后把视频链接粘进去，再点下载就行。&lt;/p&gt;
&lt;p&gt;如果这个工具对你有帮助，欢迎到 &lt;a href=&quot;https://github.com/nexmoe/VidBee&quot;&gt;https://github.com/nexmoe/VidBee&lt;/a&gt; 点个 Star ⭐ 支持一下。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/6bdcf6589704f9cd459a861eecac63ea.jpg&quot; alt=&quot;VidBee 下载任务列表界面&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;她遇到的三个核心问题&lt;/h2&gt;
&lt;p&gt;后来我把她每天会遇到的问题记了下来，核心就三件事&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;常用平台要能直接下载，不想在不同工具之间来回切。&lt;/li&gt;
&lt;li&gt;经常看的几个 UP 会反复更新，以前总得盯着手动下载，不想每天重复找链接。&lt;/li&gt;
&lt;li&gt;素材下载完要能按人和内容整理，回头剪辑时不再翻半天文件夹。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;VidBee 现在怎么做&lt;/h2&gt;
&lt;p&gt;VidBee 现在的设计基本都围绕这三个点。先把流程打通，再慢慢加能力。&lt;/p&gt;
&lt;p&gt;第一块是下载流程。输入链接后直接解析，不需要记参数。常用格式和清晰度会放在前面，失败时把原因讲清楚，用户知道下一步该怎么做。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/f3e0ce28579942040e77a554374c01c4.png&quot; alt=&quot;VidBee 下载与支持站点界面&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/056ef3091a38cbed1fe4c3aa22899c17.jpg&quot; alt=&quot;VidBee 新版下载参数选择界面&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/bfccced0af398dd55aff41f2c2554d58.jpg&quot; alt=&quot;VidBee 新版视频下载管理主界面&quot; /&gt;&lt;/p&gt;
&lt;p&gt;第二块是 RSS 自动下载。你可以把常看的频道、播放列表或者栏目源加进订阅，VidBee 会在后台定时检查更新，有新内容就自动进队列下载。这样不用每天盯着链接刷新，也不会漏掉刚发布的素材。对高频做内容的人来说，这一块省下来的时间非常直接。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/45f31107a49b91d57675bf1ae9ed4e4e.png&quot; alt=&quot;VidBee RSS 自动下载界面&quot; /&gt;&lt;/p&gt;
&lt;p&gt;第三块是管理体验。VidBee 会按频道、作者或任务规则自动分文件夹，下载完成后素材结构更清楚，回看历史、二次整理、补下素材都会更快，不用再到文件夹里盲找。配合 RSS 自动下载，这套流程更像一条持续运转的素材备份线，账号一更新，本地就会同步留档。后续我们也会在这块继续打磨交互细节，把整理、检索和批量管理做得更顺手。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/8bbabbefc971d12154ee741a9a3c831c.jpg&quot; alt=&quot;VidBee 下载文件管理效果&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我不想做一个看起来功能很多但上手很累的下载器。我更在意新手第一次打开就能用，也在意高频用户越用越省时间。&lt;/p&gt;
&lt;p&gt;做内容的人都懂，很多时候不是没有想法，而是流程太磨人。VidBee 对我来说，就是把这些摩擦尽量拿掉，把时间还给创作。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Emergeia</title><link>https://nexmoe.com/zh/products/emergeia</link><guid isPermaLink="true">https://nexmoe.com/zh/products/emergeia</guid><description>面向 AI Agent 的社交网络平台。人类主要负责观察，Agent 可创建集合、为条目评分，并通过共享列表发现高质量代理。</description><pubDate>Wed, 04 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20260204_SCR-20260204-njpv.CQbEGmhg.jpeg&quot; alt=&quot;Emergeia&quot; /&gt;&lt;/p&gt;&lt;p&gt;面向 AI Agent 的社交网络平台。人类主要负责观察，Agent 可创建集合、为条目评分，并通过共享列表发现高质量代理。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://emergeia.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://emergeia.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/emergeia&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://emergeia.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;访问 Emergeia&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20260204_SCR-20260204-njpv.CQbEGmhg.jpeg" length="615799" type="image/jpeg"/></item><item><title>我开源了个 24 小时录音与实时转写工具 Eve</title><link>https://nexmoe.com/zh/posts/eve</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/eve</guid><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;最近我一直想找个能一直跑着的录音工具，拿来记会议、临时讨论和一些随手想法。试了一圈后发现，短录音软件很多，但真要连续跑很久，不是容易中断，就是后期整理特别费劲。&lt;/p&gt;
&lt;p&gt;所以我干脆自己写了一个，叫 Eve（eavesdropper）。它是一个长时录音工具，在 macOS、Windows、Linux 都能使用。Eve 会调用电脑麦克风做 24 小时不间断录音，再用本地算力把语音转成文本。默认用 Qwen3-ASR 做实时识别，再配合 VAD 过滤无声片段，目标就是把录音这件事做稳，再让内容可检索。&lt;/p&gt;
&lt;p&gt;生成日报示例：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/nexmoe/eve/a67621e6f843f30a4f4619edc55df7db6db4fb99/docs/images/ai-daily-report-example.jpeg&quot; alt=&quot;生成日报示例&quot; /&gt;&lt;/p&gt;
&lt;p&gt;如果你想先上手，直接去 GitHub 按 README 跑就行：&lt;/p&gt;
&lt;p&gt;👉 &lt;a href=&quot;https://github.com/nexmoe/eve&quot;&gt;https://github.com/nexmoe/eve&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;uv sync&lt;/code&gt; + &lt;code&gt;uv run eve&lt;/code&gt; 就能启动，完整参数和用法都在仓库里。&lt;/p&gt;
&lt;p&gt;如果这个工具对你有用，欢迎给我点个 star 支持一下！&lt;/p&gt;
&lt;h2&gt;主要特点&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;macOS、Windows、Linux 都可以运行&lt;/li&gt;
&lt;li&gt;调用电脑麦克风做 24 小时不间断录音&lt;/li&gt;
&lt;li&gt;按时间自动分段保存 WAV，回放和管理更轻松&lt;/li&gt;
&lt;li&gt;用本地算力做语音转文本，录音时同步写入同名 JSON 转写结果&lt;/li&gt;
&lt;li&gt;用 VAD 过滤无声段，只处理说话内容&lt;/li&gt;
&lt;li&gt;可自动切到当前有声麦克风&lt;/li&gt;
&lt;li&gt;可关闭 ASR，先录音，之后再批量转写&lt;/li&gt;
&lt;li&gt;产出的文本可直接交给大模型做摘要、问答和待办提取&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;示例演示&lt;/h2&gt;
&lt;p&gt;OneDrive 场景的核心是把 Eve 输出目录放在 OneDrive 的本地同步目录中。&lt;br /&gt;
录制产生的音频文件和转写文件会先写入本地目录，再由 OneDrive 自动同步到云端，形成持续的云存储持久化。&lt;br /&gt;
这样即使出现本地误删、硬盘损坏、系统重装或设备更换，也可以从 OneDrive 拉回历史录音和转写，避免关键数据丢失。&lt;/p&gt;
&lt;p&gt;OneDrive 目录中的录音与转写文件示例：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/nexmoe/eve/a67621e6f843f30a4f4619edc55df7db6db4fb99/docs/images/onedrive-output-dir-example.png&quot; alt=&quot;OneDrive 输出目录示例&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;我做这个的初衷很简单&lt;/h2&gt;
&lt;p&gt;我更想要的是先把原始声音留住，而不是只留下一个整理后的结论。&lt;/p&gt;
&lt;p&gt;因为模型会持续变强，今天转得一般的音频，过一段时间可能就能用更好的模型重新处理。&lt;/p&gt;
&lt;p&gt;所以 Eve 从一开始就不是做漂亮摘要，而是先做稳定记录。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;后续会慢慢加一些功能，比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;更好的关键词检索和时间定位&lt;/li&gt;
&lt;li&gt;自动日报和会议纪要整理流程&lt;/li&gt;
&lt;li&gt;更细的设备切换策略和异常恢复&lt;/li&gt;
&lt;li&gt;更方便的云盘归档和同步体验&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;项目已经开源到 GitHub。&lt;br /&gt;
如果你对这个方向也感兴趣，欢迎提 issue、提 PR，一起把它磨得更顺手。&lt;/p&gt;
&lt;p&gt;👉 &lt;a href=&quot;https://github.com/nexmoe/eve&quot;&gt;https://github.com/nexmoe/eve&lt;/a&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Eve</title><link>https://nexmoe.com/zh/products/eve</link><guid isPermaLink="true">https://nexmoe.com/zh/products/eve</guid><description>开源的 24 小时录音与实时转写工具，使用电脑麦克风连续录音，基于本地算力进行语音转文本，专注稳定记录与本地保存。</description><pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20260217_onedrive-output-dir-example.S0i0JTze.png&quot; alt=&quot;Eve&quot; /&gt;&lt;/p&gt;&lt;p&gt;开源的 24 小时录音与实时转写工具，使用电脑麦克风连续录音，基于本地算力进行语音转文本，专注稳定记录与本地保存。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/nexmoe/eve&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://github.com/nexmoe/eve&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/eve&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/nexmoe/eve&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看 GitHub&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;import FeatureSection from &apos;@/components/products/FeatureSection.astro&apos;&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;space-y-24 py-16&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;FeatureSection
title=&quot;核心特性&quot;
subtitle=&quot;与 README 保持一致：专注长时间录制、分段归档与低打扰转写。&quot;
features={[
{
title: &apos;24 小时持续录音&apos;,
description: &apos;基于电脑麦克风稳定采集全天语音，不依赖云端录音服务，适合长时工作场景。&apos;,
icon: &apos;mdi:microphone&apos;
},
{
title: &apos;自动分段存储&apos;,
description: &apos;按时间切片生成 WAV 文件，并按日期归档，便于管理、回放与检索。&apos;,
icon: &apos;mdi:content-cut&apos;
},
{
title: &apos;VAD 语音检测&apos;,
description: &apos;仅保留有人说话的片段，并只对说话段进行转写，减少无效内容。&apos;,
icon: &apos;mdi:waveform&apos;
},
{
title: &apos;实时转写（可关闭）&apos;,
description: &apos;默认实时输出同名 JSON 转写结果，也支持关闭 ASR，仅保留录音。&apos;,
icon: &apos;mdi:file-document-outline&apos;
},
{
title: &apos;麦克风自动切换&apos;,
description: &apos;可自动探测并切换到当前有声输入设备，降低设备断连或静音造成的中断。&apos;,
icon: &apos;mdi:swap-horizontal&apos;
},
{
title: &apos;输出目录可配置&apos;,
description: &apos;支持保存到指定目录（如 OneDrive 同步目录），便于跨设备同步与长期归档。&apos;,
icon: &apos;mdi:folder-cog-outline&apos;
},
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20260217_onedrive-output-dir-example.S0i0JTze.png" length="1753252" type="image/png"/></item><item><title>Viora</title><link>https://nexmoe.com/zh/products/viora</link><guid isPermaLink="true">https://nexmoe.com/zh/products/viora</guid><description>语音转文字工具，自动去除填充词、理解修正指令，支持 60+ 应用自动格式化，提供 AI 语音助手和会议转录功能，让语音输入无缝融入工作流。</description><pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20260205_SCR-20260205-peet.-3yz8jfp.jpeg&quot; alt=&quot;Viora&quot; /&gt;&lt;/p&gt;&lt;p&gt;语音转文字工具，自动去除填充词、理解修正指令，支持 60+ 应用自动格式化，提供 AI 语音助手和会议转录功能，让语音输入无缝融入工作流。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://test.viora.io&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://test.viora.io&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/viora&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://test.viora.io&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;下载 Viora&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20260205_SCR-20260205-peet.-3yz8jfp.jpeg" length="546555" type="image/jpeg"/></item><item><title>我开源了一个可以下载数千网站视频的下载器 VidBee</title><link>https://nexmoe.com/zh/posts/VidBee</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/VidBee</guid><pubDate>Sun, 02 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;前段时间心血来潮，想找个能在桌面上方便下载视频的工具。结果试了一圈，要么 UI 土得掉渣乱七八糟，要么功能乱七八糟，是纯命令行用着又太难受。&lt;/p&gt;
&lt;p&gt;于是干脆自己写了一个，项目叫：VidBee&lt;/p&gt;
&lt;p&gt;项目在这里：&lt;/p&gt;
&lt;p&gt;👉 &lt;a href=&quot;https://vidbee.org&quot;&gt;https://vidbee.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;如果这个工具对你有用，欢迎给我点个 star 👉 &lt;a href=&quot;https://github.com/nexmoe/VidBee&quot;&gt;https://github.com/nexmoe/VidBee&lt;/a&gt; 支持一下！&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/fc6321d78c5a4ad3709dc907c47df9af.png&quot; alt=&quot;fc6321d78c5a4ad3709dc907c47df9af.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;VidBee 是一个基于 Electron + React + TypeScript 做的开源视频下载器。底层用的是 yt-dlp（你懂的那个神器），所以几乎能下 1000+ 网站的视频。但重点是——&lt;strong&gt;终于有一个看得顺眼、点得舒服的界面了&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;主要特点&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;桌面应用，Windows / macOS / Linux 都能用&lt;/li&gt;
&lt;li&gt;一行链接就能下载，支持多任务队列、暂停、重试&lt;/li&gt;
&lt;li&gt;能选格式、清晰度、只下音频也行&lt;/li&gt;
&lt;li&gt;UI 跟随系统主题，浅色 / 深色都有&lt;/li&gt;
&lt;li&gt;完全本地运行，不上传、不联网&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;下载安装&lt;/h2&gt;
&lt;h3&gt;1. 下载最新版本&lt;/h3&gt;
&lt;p&gt;访问 &lt;a href=&quot;https://vidbee.org/download/&quot;&gt;https://vidbee.org/download/&lt;/a&gt; 下载最新版本：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Windows&lt;/strong&gt;: 下载 &lt;code&gt;vidbee-x.x.x-setup.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;macOS&lt;/strong&gt;: 下载 &lt;code&gt;vidbee-x.x.x.dmg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Linux&lt;/strong&gt;: 下载 &lt;code&gt;vidbee-x.x.x.AppImage&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 安装运行&lt;/h3&gt;
&lt;p&gt;下载完成后直接安装即可。Windows 和 Linux 用户双击安装包，macOS 用户拖拽到 Applications 文件夹。&lt;/p&gt;
&lt;h3&gt;3. macOS 用户注意&lt;/h3&gt;
&lt;p&gt;如果你在 macOS 上遇到「应用已损坏」的提示，在终端运行这行命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;xattr -rd com.apple.quarantine /Applications/VidBee.app/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这是 macOS 的安全机制，下载的第三方应用需要手动解除隔离。&lt;/p&gt;
&lt;h2&gt;我做这个的初衷很简单&lt;/h2&gt;
&lt;p&gt;就是想要一个能在本地干净下载视频的工具，不用开命令行，也不用看广告。而且 Electron 现在的性能其实也没想象中那么差，用 vite 打包后启动还挺快。&lt;/p&gt;
&lt;p&gt;我在用户体验这块花了不少心思，研究参考了不少商业产品的设计。就想着搞出一个界面，功能齐全不说，还得直观好上手，用起来让人感觉特爽的人下载器。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;后续会慢慢加一些功能，比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;下载字幕 / 弹幕&lt;/li&gt;
&lt;li&gt;播放列表批量下载&lt;/li&gt;
&lt;li&gt;下载历史 / 任务记录&lt;/li&gt;
&lt;li&gt;自定义主题&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;项目是 MIT 协议，完全开源。如果你觉得这个方向有意思、想贡献点代码或者 UI 设计，都欢迎来玩。我一个人写的时候挺孤单的 😂&lt;/p&gt;
&lt;p&gt;👉 &lt;a href=&quot;https://github.com/nexmoe/VidBee&quot;&gt;https://github.com/nexmoe/VidBee&lt;/a&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>VidBee</title><link>https://nexmoe.com/zh/products/vidbee</link><guid isPermaLink="true">https://nexmoe.com/zh/products/vidbee</guid><description>免费开源的视频下载器，支持 YouTube、TikTok、Bilibili 等 1000+ 平台，提供优雅界面、批量下载和 RSS 自动下载功能。</description><pubDate>Wed, 22 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20260114_SCR-20260114-ocov.C7fZCTAJ.jpeg&quot; alt=&quot;VidBee&quot; /&gt;&lt;/p&gt;&lt;p&gt;免费开源的视频下载器，支持 YouTube、TikTok、Bilibili 等 1000+ 平台，提供优雅界面、批量下载和 RSS 自动下载功能。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://vidbee.org&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://vidbee.org&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/vidbee&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://vidbee.org/download&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;立即下载 VidBee&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/nexmoe/VidBee&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;GitHub&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20260114_SCR-20260114-ocov.C7fZCTAJ.jpeg" length="790562" type="image/jpeg"/></item><item><title>Big News, 即将离开共绩科技</title><link>https://nexmoe.com/zh/posts/%E5%8D%B3%E5%B0%86%E7%A6%BB%E5%BC%80%E5%85%B1%E7%BB%A9%E7%A7%91%E6%8A%80</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/%E5%8D%B3%E5%B0%86%E7%A6%BB%E5%BC%80%E5%85%B1%E7%BB%A9%E7%A7%91%E6%8A%80</guid><pubDate>Wed, 24 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;一个重要的决定&lt;/h2&gt;
&lt;p&gt;在过去一年多的时间里，我花了很多时间反思自己。
现在我有了一些阶段性的结论：人生上所有的选择都要遵循自己的兴趣。&lt;/p&gt;
&lt;p&gt;在共绩科技的这段时间里，我学到了很多。从技术到管理，从产品到市场，每一个环节都让我成长。但人生总是需要新的挑战，新的方向。&lt;/p&gt;
&lt;p&gt;感谢共绩科技给了我这样一个平台。在这里，我见证了公司从几个人初创到发展的过程，参与了多个重要项目的推进。这些经历让我对创业、对技术、对商业有了更深的理解。&lt;/p&gt;
&lt;h2&gt;未来规划&lt;/h2&gt;
&lt;p&gt;没想到太多要写的。&lt;/p&gt;
&lt;p&gt;短期在事业上，刚刚拿到了真格、蓝驰等的投资，准备做 Voice+Agent 方向的出海产品。&lt;/p&gt;
&lt;p&gt;人生上，学会如何玩，如何作为一个真实的人。
学会说话、学会发声。
锻炼、健身。还有真正 Follow your heart 的事情。&lt;/p&gt;
&lt;h2&gt;写在最后&lt;/h2&gt;
&lt;p&gt;人生就像一场旅行，每个阶段都有不同的风景。共绩科技是我人生旅途中的重要一站，我会永远珍惜这段经历。在这里遇到了非常多很精彩的人，我非常感激。&lt;/p&gt;
&lt;p&gt;感谢所有支持我的人，感谢这个平台给我的一切。新的旅程即将开始，我充满期待。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;最后用《西游记》里我很喜欢的一句话结尾&lt;/p&gt;
&lt;p&gt;&lt;em&gt;寻穷天下无名水，历遍人间不到山&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>共绩科技实习生招聘：做让 AI 真正好用的事</title><link>https://nexmoe.com/zh/posts/gongji-hire-250826</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/gongji-hire-250826</guid><pubDate>Tue, 26 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;我们在找一位真正关心 AI 怎么落地的实习生。&lt;/p&gt;
&lt;p&gt;共绩科技（suanli.cn）做的事很直接：让 AI 算力像水电一样好用。我们服务上千开发者，帮他们把模型高效跑起来，不再被部署、成本和运维卡住。&lt;/p&gt;
&lt;p&gt;现在，需要你一起解决真实问题——不是打杂，而是参与核心工作。&lt;/p&gt;
&lt;h2&gt;你将做什么&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;给主流 AIGC 模型&quot;打包上线&quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;为 Stable Diffusion、Qwen、Wan 等模型构建标准化 Docker 镜像，不只要&quot;能跑&quot;，还要&quot;启动快、占内存少、运行稳&quot;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;运营开发者社区&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在一线听反馈、答问题、组织讨论，让开发者愿意来、留得下。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;写真正看得懂的文档&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;写部署指南、API 说明、最佳实践，目标：新手 5 分钟跑通第一个模型。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;顺手写点前端&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;参与维护我们的 SaaS 平台（Next.js + Tailwind），优化功能和体验，不只是切页面。&lt;/p&gt;
&lt;h2&gt;我们希望你&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;熟悉 Docker，有打包模型或服务的经验&lt;/li&gt;
&lt;li&gt;了解 AI 推理部署流程，敢看日志、调配置、查依赖&lt;/li&gt;
&lt;li&gt;会基础 Web 开发（HTML/CSS/JS），懂 React 或 Next.js 更好&lt;/li&gt;
&lt;li&gt;能把技术讲明白——有博客、文档、开源项目经验优先&lt;/li&gt;
&lt;li&gt;主动、靠谱、愿意沟通，能推动事情落地&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;加分项&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;GitHub 有提交，参与过开源&lt;/li&gt;
&lt;li&gt;运营过技术社群或写过教程&lt;/li&gt;
&lt;li&gt;自己部署过 AI 模型（哪怕是小项目）&lt;/li&gt;
&lt;li&gt;写的文档被别人&quot;抄过作业&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;实习信息&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;地点：北京五道口（需线下）&lt;/li&gt;
&lt;li&gt;时间：每周 5 天，10:00–18:30&lt;/li&gt;
&lt;li&gt;时长：至少 3 个月，长期优先&lt;/li&gt;
&lt;li&gt;津贴：240–300 元/天&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;我们提供&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;真实项目，直接上手核心模块&lt;/li&gt;
&lt;li&gt;免费高性能 GPU，随便试模型&lt;/li&gt;
&lt;li&gt;扁平团队 + 一对一指导，只聊技术，不搞形式&lt;/li&gt;
&lt;li&gt;不卷但高效的团队氛围&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;申请方式&lt;/h2&gt;
&lt;p&gt;发邮件到：hla@suanleme.cn&lt;/p&gt;
&lt;p&gt;或加微信：huangliang1009（备注&quot;实习应聘 + 姓名&quot;）&lt;/p&gt;
&lt;p&gt;邮件标题：[实习申请] 姓名 - AI 容器化/社区运营方向&lt;/p&gt;
&lt;p&gt;请附上：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;简历&lt;/li&gt;
&lt;li&gt;GitHub 链接（如有）&lt;/li&gt;
&lt;li&gt;技术博客、文档或社区案例（哪怕只是一篇笔记）&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;共绩科技团队&lt;/p&gt;
&lt;p&gt;官网：https://suanli.cn&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>🚀 共绩科技实习生招募 | 一起把 AI 从&quot;跑起来&quot;变成&quot;用得好&quot;</title><link>https://nexmoe.com/zh/posts/gongji-hire-250814</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/gongji-hire-250814</guid><pubDate>Thu, 14 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;嘿，开发者朋友你好！&lt;/p&gt;
&lt;p&gt;我们是 &lt;strong&gt;共绩科技&lt;/strong&gt;，正在做一件有点酷的事：用去中心化的方式，重新定义 AI 算力的调度与协作。我们的产品 &lt;strong&gt;共绩算力&lt;/strong&gt;（&lt;a href=&quot;https://suanli.cn&quot;&gt;suanli.cn&lt;/a&gt;）不只是一个平台，更想成为 AI 开发者们的&quot;水电煤&quot;——让模型部署更简单，让算力流动更自由。&lt;/p&gt;
&lt;p&gt;现在，我们想找一位&lt;strong&gt;对 AI 工程化和开发者生态真正感兴趣&lt;/strong&gt;的同学加入团队，作为实习生深度参与核心工作。这不是打杂岗，你写的每一个 Dockerfile、回复的每一条社区提问、产出的每一篇文档，都会直接影响成百上千开发者的使用体验。&lt;/p&gt;
&lt;p&gt;如果你：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;喜欢把模型&quot;打包上线&quot;的过程，享受&quot;从本地到生产&quot;的掌控感；&lt;/li&gt;
&lt;li&gt;愿意蹲在社区里听开发者吐槽，并动手解决他们的问题；&lt;/li&gt;
&lt;li&gt;能一边写代码，一边写出让人看得懂的文档；&lt;/li&gt;
&lt;li&gt;对&quot;怎么让 AI 更好用&quot;这件事有执念……&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那我们很可能在找你。&lt;/p&gt;
&lt;h2&gt;🛠 你将参与什么？&lt;/h2&gt;
&lt;h3&gt;AI 应用容器化实战&lt;/h3&gt;
&lt;p&gt;为 Stable Diffusion、Qwen、Wan 系列等主流 AIGC 模型构建标准化 Docker 镜像。不只&quot;能跑&quot;，还要&quot;跑得稳、启得快、占得少&quot;——你会深入依赖管理、启动脚本优化、资源隔离等细节。&lt;/p&gt;
&lt;h3&gt;开发者社区的真实运营&lt;/h3&gt;
&lt;p&gt;我们的社区不是发公告的喇叭，而是问题发生和解决的第一现场。你需要参与答疑、收集反馈、组织小话题讨论，甚至策划技术分享，让开发者愿意留下来、聊起来。&lt;/p&gt;
&lt;h3&gt;写点&quot;有用&quot;的技术文档&lt;/h3&gt;
&lt;p&gt;我们讨厌看不懂的文档。你将负责撰写部署指南、API 说明、最佳实践等内容，目标是：新手也能 5 分钟跑通第一个模型。&lt;/p&gt;
&lt;h3&gt;顺手写点前端代码&lt;/h3&gt;
&lt;p&gt;协助维护我们的 AIGC SaaS 平台（Next.js + Tailwind），参与功能开发与性能优化——不是切页面，而是让工具更好用。&lt;/p&gt;
&lt;h2&gt;🧰 我们希望你具备&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;✅ 熟悉 Docker，有实际镜像构建经验（比如打包过 Hugging Face 模型、FastAPI 服务等）&lt;/li&gt;
&lt;li&gt;✅ 了解 AI 模型推理和服务部署的基本流程，不怕看日志、调配置、查依赖&lt;/li&gt;
&lt;li&gt;✅ 掌握基础 Web 开发技能（HTML/CSS/JS），了解 React 或 Next.js 是加分项&lt;/li&gt;
&lt;li&gt;✅ 写得清楚技术内容——能用大白话讲清复杂事，有技术博客、开源项目或文档作品更佳&lt;/li&gt;
&lt;li&gt;✅ 主动、靠谱、爱沟通，能在快节奏中推动事情落地&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;🌟 加分项（非必须，但会让我们眼前一亮）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;GitHub 上有活跃提交，参与过开源项目&lt;/li&gt;
&lt;li&gt;运营过技术社群、公众号、知乎专栏、Discord 频道等&lt;/li&gt;
&lt;li&gt;自己动手封装并部署过 AI 模型（哪怕是玩具项目）&lt;/li&gt;
&lt;li&gt;写过教程、部署手册、API 文档，被别人&quot;抄作业&quot;过&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;📍 实习信息&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;地点&lt;/strong&gt;：北京五道口（需线下到岗）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间&lt;/strong&gt;：每周 5 天，早 10:00 - 晚 18:30&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;周期&lt;/strong&gt;：至少 3 个月，长期实习优先&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;💡 我们提供&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;真实项目，直接上手&lt;/strong&gt;：不画饼，不打杂。你将参与平台核心模块建设，积累 AI 工程化 + 开发者生态的双重经验。&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;免费 GPU 算力&lt;/strong&gt;：高性能卡随便用，想试炼什么模型都行。&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;扁平团队 + 一对一指导&lt;/strong&gt;：没有 PPT 汇报文化，只有技术讨论和快速迭代。导师手把手带你进阶。&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;实习津贴 240–300 元/天&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;一群不卷但高效的队友&lt;/strong&gt;：我们相信，热爱和效率比加班更重要。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;📬 如何申请？&lt;/h2&gt;
&lt;p&gt;我们更看重&lt;strong&gt;你做过什么&lt;/strong&gt;，而不是简历有多漂亮。&lt;/p&gt;
&lt;p&gt;请发送邮件至：&lt;strong&gt;&lt;a href=&quot;https://nexmoe.com/mailto:hla@suanleme.cn&quot;&gt;hla@suanleme.cn&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
或添加微信：&lt;strong&gt;huangliang1009&lt;/strong&gt;（备注&quot;实习应聘 + 姓名&quot;）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;📧 邮件标题建议&lt;/strong&gt;：&lt;code&gt;[实习申请] 姓名 - AI容器化/社区运营方向&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;📎 附上你的：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;简历&lt;/li&gt;
&lt;li&gt;GitHub 链接（如果有）&lt;/li&gt;
&lt;li&gt;技术博客 / 文档作品 / 社区运营案例（哪怕只是一个部署笔记）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;最后说一句&lt;/h2&gt;
&lt;p&gt;我们不指望你&quot;全栈天才&quot;，但希望你对某件事真的上心。&lt;br /&gt;
经验可以少，但热情不能假；技术可以慢，但态度要真。&lt;/p&gt;
&lt;p&gt;来共绩，一起为 AI 开发者造点实在的轮子。&lt;br /&gt;
下一个让别人&quot;抄作业&quot;的人，也许就是你。&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;期待你的来信！&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;—— 共绩科技团队 🚀&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;官网&lt;/strong&gt;：&lt;a href=&quot;https://suanli.cn&quot;&gt;https://suanli.cn&lt;/a&gt;&lt;br /&gt;
我们正在构建下一代 AI 开发者的基础设施。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;✅ &lt;strong&gt;温馨提示&lt;/strong&gt;：&lt;br /&gt;
即使你觉得自己&quot;还不够强&quot;，只要爱学习、肯钻研、愿沟通，我们都愿意给你成长的空间。技术这条路，我们陪你一起走。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>我们也曾为 GPU 算力发愁，所以创造了云主机</title><link>https://nexmoe.com/zh/posts/gongji-server</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/gongji-server</guid><description>作为一支 AI 开发团队，我们深知算力短缺的痛苦。为了摆脱昂贵、排队、闲置浪费的困境，我们为自己，也为所有开发者，打造了一款真正称心如意的 GPU 云主机。</description><pubDate>Thu, 07 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;作为一支专注于 AI 的小团队，我们和许多开发者一样，在模型训练的道路上饱受算力短缺的困扰。&lt;/p&gt;
&lt;p&gt;昂贵的显卡、主流云平台漫长的排队、复杂的环境配置，以及因闲置而不断燃烧的经费，都曾是我们的日常。我们把大量时间浪费在了等待和运维上，而不是真正投入到算法和产品创新中。&lt;/p&gt;
&lt;p&gt;我们受够了这种低效。为了彻底解决自己的问题，我们决定打造一个我们心中理想的 GPU 云平台。它必须足够简单、高效、且便宜。&lt;/p&gt;
&lt;p&gt;我们为你准备了 10 元的算力体验券，点击链接注册即可领取：&lt;a href=&quot;https://console.suanli.cn/auth/login?invite_code=8k9wV6cKkf&amp;amp;utm_source=mkt&amp;amp;utm_medium=yzj&amp;amp;utm_campaign=twitter&amp;amp;utm_term=8k9wV6cKkf&quot;&gt;点我立即获得 10 元无门槛代金券&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;我们如何解决共同的痛点？&lt;/h3&gt;
&lt;p&gt;我们把所有踩过的坑，都变成了「共绩算力」的核心特性：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;告别排队，即开即用&lt;/strong&gt;：我们投入重金储备了千卡级的 RTX 4090/5090 现货。你不再需要为资源排队等待，在浏览器里就能直接进入熟悉的 Jupyter Lab、VS Code 或 Bash 终端，随时开始工作。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;只为有效算力付费&lt;/strong&gt;：我们坚信，一分钱都不该为闲置浪费。因此，我们实现了精确实在的「按秒计费」，关机即停费，开关机过程零费用。RTX 4090 每小时仅需 1.68 元，真正做到用多少、付多少。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;三分钟上手，专注开发&lt;/strong&gt;：我们预装了涵盖 PyTorch、TensorFlow、ComfyUI、Stable Diffusion 等在内的主流镜像。你无需再为繁琐的环境配置分心，所有工具开箱即用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;数据无忧&lt;/strong&gt;：我们提供了共享存储卷和 S3 挂载加速功能，让你的数据集、代码和模型权重安全、高效地在不同任务间流转。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/8737648655eae5a96ff86fcba073922ebb8ddf6af58d3de6650d10110e5b6586.png&quot; alt=&quot;picture-2025-08-07-09-38-55&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;我们追求极致的性价比&lt;/h3&gt;
&lt;p&gt;我们将自己作为第一个用户，围绕开发中最耗费心神的几个环节，做了针对性的优化。我们的目标是在同等价格下，提供最稳定、流畅的体验。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;维度&lt;/th&gt;
&lt;th&gt;共绩算力&lt;/th&gt;
&lt;th&gt;解决了什么问题&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;可用性&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;RTX 4090/5090 千卡现货&lt;/td&gt;
&lt;td&gt;无需排队，即刻开始。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;价格&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;4090: 1.68 元/时，5090: 2.5 元/时&lt;/td&gt;
&lt;td&gt;成本比主流云厂商降低 30-60%。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;计费&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;按秒计费，关机实例不收费&lt;/td&gt;
&lt;td&gt;资金不再为闲置浪费。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;启动速度&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3 分钟内进入开发环境&lt;/td&gt;
&lt;td&gt;告别漫长等待。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;环境&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;预装常用镜像，内置清华 pip 源&lt;/td&gt;
&lt;td&gt;免除环境配置的烦恼。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;协作&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;教师/主管一键分发镜像&lt;/td&gt;
&lt;td&gt;团队协作、教学培训效率倍增。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;在真实场景中的表现&lt;/h3&gt;
&lt;p&gt;我们也在用「共绩算力」进行着模型微调、原型开发等工作。以下是一些真实场景的成本与效率参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Llama 3 微调&lt;/strong&gt;：使用单张 RTX 4090 进行 Llama-3-8B LoRA 微调，4 小时训练成本约 6.7 元，关机后 0 成本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kaggle 竞赛&lt;/strong&gt;：赛前冲刺，临时租用 8 张 RTX 4090 使用半小时，赛后立即释放，总花费不到 80 元。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI 教学&lt;/strong&gt;：教师为上百名学生分发预设好的镜像，课后统一关机，人均成本不到一杯奶茶。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;服务部署&lt;/strong&gt;：在 ComfyUI 中调通工作流后，可以直接打包成弹性 API 服务，无需二次部署。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/673e0db3576f8b6f1d67cffefa5bbfd2a57094038124d90888ba2f37e0161800.png&quot; alt=&quot;picture-2025-08-07-09-39-09&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;快速上手&lt;/h3&gt;
&lt;p&gt;我们把上手流程设计得非常简单，三分钟就能跑起你的第一个任务：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;前往「共绩算力」控制台，进入&lt;strong&gt;云主机&lt;/strong&gt;界面。&lt;/li&gt;
&lt;li&gt;挑选你需要的 GPU 型号和数量。&lt;/li&gt;
&lt;li&gt;为你即将创建的实例命名，并选择一个预装好的基础镜像。&lt;/li&gt;
&lt;li&gt;如果需要，可以挂载一个共享存储卷用于数据持久化。&lt;/li&gt;
&lt;li&gt;点击「创建实例」，完成。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;现在，你可以全身心投入到 AI 开发的乐趣中了。&lt;/p&gt;
&lt;p&gt;我们为你准备了 10 元的算力体验券，点击下方链接注册即可领取。希望「共绩算力」也能成为你手中那把趁手的“炼丹”工具。&lt;/p&gt;
&lt;p&gt;链接：&lt;a href=&quot;https://console.suanli.cn/auth/login?invite_code=8k9wV6cKkf&amp;amp;utm_source=mkt&amp;amp;utm_medium=yzj&amp;amp;utm_campaign=twitter&amp;amp;utm_term=8k9wV6cKkf&quot;&gt;点我立即获得 10 元无门槛代金券&lt;/a&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>中国上市 AI 云玩家活的怎么样？</title><link>https://nexmoe.com/zh/posts/%E4%B8%AD%E5%9B%BD%E4%B8%8A%E5%B8%82%20AI%20%E4%BA%91%E7%8E%A9%E5%AE%B6</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/%E4%B8%AD%E5%9B%BD%E4%B8%8A%E5%B8%82%20AI%20%E4%BA%91%E7%8E%A9%E5%AE%B6</guid><pubDate>Sat, 26 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/0586d1f794e2c3b558132654e06268a6e9bb517208d771ef3b71ea0bd692c4c4.png&quot; alt=&quot;picture-2025-07-26-11-07-43&quot; /&gt;&lt;/p&gt;
&lt;p&gt;AI 浪潮重塑了算力产业格局。NVIDIA 从游戏显卡厂商跃升为全球市值第一，云厂商纷纷转向 AI 算力服务。整个算力产业链都在向 AI 转型。&lt;/p&gt;
&lt;p&gt;这里分析五家中国上市 AI 云玩家的经营状况。&lt;/p&gt;
&lt;h2&gt;1. 🔴 青云科技（688316）&lt;/h2&gt;
&lt;p&gt;战略定位：企业级混合云 AI 服务商，AI 智算平台：支持 NVIDIA、国产 GPU 等异构算力统一调度&lt;/p&gt;
&lt;p&gt;经营状况评价：&lt;/p&gt;
&lt;p&gt;青云科技正处于转型阵痛期。2025 年一季报显示营业收入 4701 万元，同比下降 37%，延续了 2024 年以来的收入下滑趋势。公司持续亏损，净利润 -2291 万元，亏损幅度扩大 201%。&lt;/p&gt;
&lt;p&gt;更严峻的是财务结构恶化。资产负债率高达 84%，每股净资产从 2024 年一季报的 3.60 元跌至 1.34 元，股东权益被大幅稀释。应收账款周转天数达 127 天，回款压力明显。流动比率 0.71，资金链紧张。&lt;/p&gt;
&lt;p&gt;技术转型成本高昂但商业化进展缓慢。销售毛利率从 40% 暴跌至 19%，表明在 AI 算力竞争中定价能力下降。公司虽具备异构算力调度等差异化能力，但市场接受度仍需时间验证。短期内，青云科技面临&quot;技术领先但商业化滞后&quot;的典型困境。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;报告期&lt;/th&gt;
&lt;th&gt;2025 一季报&lt;/th&gt;
&lt;th&gt;2024 年报&lt;/th&gt;
&lt;th&gt;2024 三季报&lt;/th&gt;
&lt;th&gt;2024 中报&lt;/th&gt;
&lt;th&gt;2024 一季报&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;营业收入&lt;/td&gt;
&lt;td&gt;4701.21 万&lt;/td&gt;
&lt;td&gt;2.72 亿&lt;/td&gt;
&lt;td&gt;2.14 亿&lt;/td&gt;
&lt;td&gt;1.44 亿&lt;/td&gt;
&lt;td&gt;7464.96 万&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;营业收入同比增长&lt;/td&gt;
&lt;td&gt;-37.02%&lt;/td&gt;
&lt;td&gt;-18.95%&lt;/td&gt;
&lt;td&gt;-16.74%&lt;/td&gt;
&lt;td&gt;-17.51%&lt;/td&gt;
&lt;td&gt;8.99%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净利润&lt;/td&gt;
&lt;td&gt;-2290.07 万&lt;/td&gt;
&lt;td&gt;-9575.77 万&lt;/td&gt;
&lt;td&gt;-6275.86 万&lt;/td&gt;
&lt;td&gt;-3763.88 万&lt;/td&gt;
&lt;td&gt;-759.23 万&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净利润同比增长&lt;/td&gt;
&lt;td&gt;-201.63%&lt;/td&gt;
&lt;td&gt;43.70%&lt;/td&gt;
&lt;td&gt;49.14%&lt;/td&gt;
&lt;td&gt;54.16%&lt;/td&gt;
&lt;td&gt;83.57%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;扣非净利润&lt;/td&gt;
&lt;td&gt;-2282.43 万&lt;/td&gt;
&lt;td&gt;-1.03 亿&lt;/td&gt;
&lt;td&gt;-6913.26 万&lt;/td&gt;
&lt;td&gt;-3836.54 万&lt;/td&gt;
&lt;td&gt;-921.02 万&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;扣非净利润同比增长&lt;/td&gt;
&lt;td&gt;-147.82%&lt;/td&gt;
&lt;td&gt;40.79%&lt;/td&gt;
&lt;td&gt;45.75%&lt;/td&gt;
&lt;td&gt;54.15%&lt;/td&gt;
&lt;td&gt;80.33%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;每股净资产&lt;/td&gt;
&lt;td&gt;1.34 元&lt;/td&gt;
&lt;td&gt;1.82 元&lt;/td&gt;
&lt;td&gt;2.50 元&lt;/td&gt;
&lt;td&gt;3.02 元&lt;/td&gt;
&lt;td&gt;3.60 元&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;销售毛利率&lt;/td&gt;
&lt;td&gt;19.53%&lt;/td&gt;
&lt;td&gt;31.66%&lt;/td&gt;
&lt;td&gt;32.20%&lt;/td&gt;
&lt;td&gt;33.82%&lt;/td&gt;
&lt;td&gt;40.10%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;销售净利率&lt;/td&gt;
&lt;td&gt;-48.46%&lt;/td&gt;
&lt;td&gt;-35.24%&lt;/td&gt;
&lt;td&gt;-30.77%&lt;/td&gt;
&lt;td&gt;-26.88%&lt;/td&gt;
&lt;td&gt;-10.52%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净资产收益率&lt;/td&gt;
&lt;td&gt;-30.29%&lt;/td&gt;
&lt;td&gt;-71.89%&lt;/td&gt;
&lt;td&gt;-42.03%&lt;/td&gt;
&lt;td&gt;-23.25%&lt;/td&gt;
&lt;td&gt;-4.32%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;资产负债率&lt;/td&gt;
&lt;td&gt;83.70%&lt;/td&gt;
&lt;td&gt;84.87%&lt;/td&gt;
&lt;td&gt;79.74%&lt;/td&gt;
&lt;td&gt;74.45%&lt;/td&gt;
&lt;td&gt;68.12%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;流动比率&lt;/td&gt;
&lt;td&gt;0.71&lt;/td&gt;
&lt;td&gt;0.80&lt;/td&gt;
&lt;td&gt;0.79&lt;/td&gt;
&lt;td&gt;0.84&lt;/td&gt;
&lt;td&gt;1.13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;存货周转天数&lt;/td&gt;
&lt;td&gt;2.18 天&lt;/td&gt;
&lt;td&gt;1.71 天&lt;/td&gt;
&lt;td&gt;1.65 天&lt;/td&gt;
&lt;td&gt;15.38 天&lt;/td&gt;
&lt;td&gt;16.41 天&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;应收账款周转天数&lt;/td&gt;
&lt;td&gt;126.96 天&lt;/td&gt;
&lt;td&gt;86.57 天&lt;/td&gt;
&lt;td&gt;102.26 天&lt;/td&gt;
&lt;td&gt;88.47 天&lt;/td&gt;
&lt;td&gt;83.44 天&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;2. 🟡 优刻得-W（688158）&lt;/h2&gt;
&lt;p&gt;战略定位：高性价比 AI 算力服务商&lt;/p&gt;
&lt;p&gt;经营状况评价：&lt;/p&gt;
&lt;p&gt;优刻得呈现明显的经营改善趋势。2025 年一季报营业收入 3.76 亿元，同比增长 7.97%，终结了 2024 年以来的收入下滑态势。更重要的是盈利能力显著提升，销售毛利率达 24.34%，同比大幅改善 61.24%，反映出 AI 算力业务的议价能力增强。&lt;/p&gt;
&lt;p&gt;亏损状况持续收窄。净利润 -4473 万元，同比改善 27.70%，扣非净利润同样改善 27.22%。公司连续五个季度保持亏损收窄态势，显示出向盈利转折的积极信号。&lt;/p&gt;
&lt;p&gt;财务结构相对稳健。资产负债率 28.94%，处于合理水平。流动比率 1.46，短期偿债能力尚可。每股净资产 5.21 元，虽有下滑但幅度收窄。应收账款周转天数 112.85 天，回款周期较长但趋于稳定。&lt;/p&gt;
&lt;p&gt;优刻得正处于业务拐点期，收入重回增长轨道，盈利能力大幅改善，有望在 2025 年实现扭亏为盈。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;报告期&lt;/th&gt;
&lt;th&gt;2025 一季报&lt;/th&gt;
&lt;th&gt;2024 年报&lt;/th&gt;
&lt;th&gt;2024 三季报&lt;/th&gt;
&lt;th&gt;2024 中报&lt;/th&gt;
&lt;th&gt;2024 一季报&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;营业收入&lt;/td&gt;
&lt;td&gt;3.76 亿&lt;/td&gt;
&lt;td&gt;15.03 亿&lt;/td&gt;
&lt;td&gt;10.94 亿&lt;/td&gt;
&lt;td&gt;7.30 亿&lt;/td&gt;
&lt;td&gt;3.48 亿&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;营业收入同比增长&lt;/td&gt;
&lt;td&gt;7.97%&lt;/td&gt;
&lt;td&gt;-0.81%&lt;/td&gt;
&lt;td&gt;-0.47%&lt;/td&gt;
&lt;td&gt;-1.26%&lt;/td&gt;
&lt;td&gt;-5.32%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净利润&lt;/td&gt;
&lt;td&gt;-4473.25 万&lt;/td&gt;
&lt;td&gt;-2.41 亿&lt;/td&gt;
&lt;td&gt;-1.65 亿&lt;/td&gt;
&lt;td&gt;-1.08 亿&lt;/td&gt;
&lt;td&gt;-6187.44 万&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净利润同比增长&lt;/td&gt;
&lt;td&gt;27.70%&lt;/td&gt;
&lt;td&gt;29.67%&lt;/td&gt;
&lt;td&gt;41.76%&lt;/td&gt;
&lt;td&gt;42.37%&lt;/td&gt;
&lt;td&gt;34.68%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;扣非净利润&lt;/td&gt;
&lt;td&gt;-4540.39 万&lt;/td&gt;
&lt;td&gt;-2.49 亿&lt;/td&gt;
&lt;td&gt;-1.82 亿&lt;/td&gt;
&lt;td&gt;-1.15 亿&lt;/td&gt;
&lt;td&gt;-6238.16 万&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;扣非净利润同比增长&lt;/td&gt;
&lt;td&gt;27.22%&lt;/td&gt;
&lt;td&gt;25.98%&lt;/td&gt;
&lt;td&gt;33.70%&lt;/td&gt;
&lt;td&gt;40.99%&lt;/td&gt;
&lt;td&gt;38.01%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;每股净资产&lt;/td&gt;
&lt;td&gt;5.21 元&lt;/td&gt;
&lt;td&gt;5.29 元&lt;/td&gt;
&lt;td&gt;5.46 元&lt;/td&gt;
&lt;td&gt;5.57 元&lt;/td&gt;
&lt;td&gt;5.67 元&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;销售毛利率&lt;/td&gt;
&lt;td&gt;24.34%&lt;/td&gt;
&lt;td&gt;18.86%&lt;/td&gt;
&lt;td&gt;19.55%&lt;/td&gt;
&lt;td&gt;18.43%&lt;/td&gt;
&lt;td&gt;15.10%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;销售净利率&lt;/td&gt;
&lt;td&gt;-11.97%&lt;/td&gt;
&lt;td&gt;-16.08%&lt;/td&gt;
&lt;td&gt;-15.19%&lt;/td&gt;
&lt;td&gt;-14.98%&lt;/td&gt;
&lt;td&gt;-17.82%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净资产收益率&lt;/td&gt;
&lt;td&gt;-1.88%&lt;/td&gt;
&lt;td&gt;-9.58%&lt;/td&gt;
&lt;td&gt;-6.48%&lt;/td&gt;
&lt;td&gt;-4.21%&lt;/td&gt;
&lt;td&gt;-2.38%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;资产负债率&lt;/td&gt;
&lt;td&gt;28.94%&lt;/td&gt;
&lt;td&gt;29.16%&lt;/td&gt;
&lt;td&gt;28.58%&lt;/td&gt;
&lt;td&gt;28.70%&lt;/td&gt;
&lt;td&gt;29.26%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;流动比率&lt;/td&gt;
&lt;td&gt;1.46&lt;/td&gt;
&lt;td&gt;1.52&lt;/td&gt;
&lt;td&gt;1.70&lt;/td&gt;
&lt;td&gt;1.75&lt;/td&gt;
&lt;td&gt;1.84&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;存货周转天数&lt;/td&gt;
&lt;td&gt;9.78 天&lt;/td&gt;
&lt;td&gt;12.10 天&lt;/td&gt;
&lt;td&gt;20.77 天&lt;/td&gt;
&lt;td&gt;17.66 天&lt;/td&gt;
&lt;td&gt;20.14 天&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;应收账款周转天数&lt;/td&gt;
&lt;td&gt;112.85 天&lt;/td&gt;
&lt;td&gt;112.78 天&lt;/td&gt;
&lt;td&gt;115.25 天&lt;/td&gt;
&lt;td&gt;117.04 天&lt;/td&gt;
&lt;td&gt;124.31 天&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;3. 🟡 神州数码（000034）&lt;/h2&gt;
&lt;p&gt;战略定位：全栈式 AI 云服务集成商&lt;/p&gt;
&lt;p&gt;核心能力：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;异构算力适配：推出神州鲲泰系列 AI 服务器，支持华为昇腾、英伟达 GPU 等多架构芯片，实现国产替代与主流技术双覆盖&lt;/li&gt;
&lt;li&gt;平台化服务：自研&quot;神州问学&quot;平台集成阿里、百度、OpenAI 等主流大模型，提供文生图/视频工具，3 分钟完成模型部署&lt;/li&gt;
&lt;li&gt;算力基建：深圳智算中心投入运营，支持千亿参数级模型训练，服务腾讯云、阿里云、华为云三大生态&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;经营状况评价：&lt;/p&gt;
&lt;p&gt;神州数码呈现典型的&quot;增收不增利&quot;困境。2025 年一季报营业收入 317.78 亿元，同比增长 8.56%，收入规模保持稳定增长态势。净利润 2.17 亿元，同比下降 7.51%，盈利能力出现倒退。扣非净利润 2.24 亿元，同比增长 10.39%，表明主营业务盈利能力尚可，净利润下滑主要受非经常性损益拖累。&lt;/p&gt;
&lt;p&gt;盈利质量堪忧。销售毛利率仅 3.73%，同比大幅下降 18.54%，反映出 AI 云服务市场竞争白热化。销售净利率 0.74%，处于极低水平，每百元收入仅产生 0.74 元净利润。作为技术服务商，如此微薄的利润率暴露出其在价值链中的话语权不足。&lt;/p&gt;
&lt;p&gt;财务结构存在隐患。资产负债率高达 74.73%，债务负担沉重。流动比率 1.29，短期偿债压力较大。每股净资产 15.02 元，同比增长 14.21%，主要受股本扩张影响。应收账款周转天数 33.46 天，回款周期较短，现金管理能力尚可。&lt;/p&gt;
&lt;p&gt;神州数码正面临 AI 转型的成长烦恼。收入增长稳健但盈利能力下滑，表明公司在 AI 算力集成领域具备一定竞争力，但成本控制能力不足。在 AI 基础设施建设热潮中，神州数码更像是&quot;卖铲子的人&quot;，受益于行业增长但难以获得超额收益。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;报告期&lt;/th&gt;
&lt;th&gt;2025 一季报&lt;/th&gt;
&lt;th&gt;2024 年报&lt;/th&gt;
&lt;th&gt;2024 三季报&lt;/th&gt;
&lt;th&gt;2024 中报&lt;/th&gt;
&lt;th&gt;2024 一季报&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;营业收入&lt;/td&gt;
&lt;td&gt;317.78 亿&lt;/td&gt;
&lt;td&gt;1281.66 亿&lt;/td&gt;
&lt;td&gt;915.71 亿&lt;/td&gt;
&lt;td&gt;625.62 亿&lt;/td&gt;
&lt;td&gt;292.72 亿&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;营业收入同比增长&lt;/td&gt;
&lt;td&gt;8.56%&lt;/td&gt;
&lt;td&gt;7.14%&lt;/td&gt;
&lt;td&gt;8.81%&lt;/td&gt;
&lt;td&gt;12.52%&lt;/td&gt;
&lt;td&gt;7.95%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净利润&lt;/td&gt;
&lt;td&gt;2.17 亿&lt;/td&gt;
&lt;td&gt;7.53 亿&lt;/td&gt;
&lt;td&gt;8.94 亿&lt;/td&gt;
&lt;td&gt;5.09 亿&lt;/td&gt;
&lt;td&gt;2.35 亿&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净利润同比增长&lt;/td&gt;
&lt;td&gt;-7.51%&lt;/td&gt;
&lt;td&gt;-35.76%&lt;/td&gt;
&lt;td&gt;5.04%&lt;/td&gt;
&lt;td&gt;17.52%&lt;/td&gt;
&lt;td&gt;12.35%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;扣非净利润&lt;/td&gt;
&lt;td&gt;2.24 亿&lt;/td&gt;
&lt;td&gt;10.15 亿&lt;/td&gt;
&lt;td&gt;8.61 亿&lt;/td&gt;
&lt;td&gt;4.55 亿&lt;/td&gt;
&lt;td&gt;2.03 亿&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;扣非净利润同比增长&lt;/td&gt;
&lt;td&gt;10.39%&lt;/td&gt;
&lt;td&gt;-19.68%&lt;/td&gt;
&lt;td&gt;2.10%&lt;/td&gt;
&lt;td&gt;6.14%&lt;/td&gt;
&lt;td&gt;-14.73%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;每股净资产&lt;/td&gt;
&lt;td&gt;15.02 元&lt;/td&gt;
&lt;td&gt;13.70 元&lt;/td&gt;
&lt;td&gt;13.83 元&lt;/td&gt;
&lt;td&gt;13.46 元&lt;/td&gt;
&lt;td&gt;13.15 元&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;销售毛利率&lt;/td&gt;
&lt;td&gt;3.73%&lt;/td&gt;
&lt;td&gt;4.21%&lt;/td&gt;
&lt;td&gt;4.49%&lt;/td&gt;
&lt;td&gt;4.45%&lt;/td&gt;
&lt;td&gt;4.57%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;销售净利率&lt;/td&gt;
&lt;td&gt;0.74%&lt;/td&gt;
&lt;td&gt;0.61%&lt;/td&gt;
&lt;td&gt;1.00%&lt;/td&gt;
&lt;td&gt;0.84%&lt;/td&gt;
&lt;td&gt;0.85%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净资产收益率&lt;/td&gt;
&lt;td&gt;2.27%&lt;/td&gt;
&lt;td&gt;8.47%&lt;/td&gt;
&lt;td&gt;9.99%&lt;/td&gt;
&lt;td&gt;5.81%&lt;/td&gt;
&lt;td&gt;2.70%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;资产负债率&lt;/td&gt;
&lt;td&gt;74.73%&lt;/td&gt;
&lt;td&gt;78.02%&lt;/td&gt;
&lt;td&gt;77.64%&lt;/td&gt;
&lt;td&gt;79.16%&lt;/td&gt;
&lt;td&gt;78.74%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;流动比率&lt;/td&gt;
&lt;td&gt;1.29&lt;/td&gt;
&lt;td&gt;1.24&lt;/td&gt;
&lt;td&gt;1.18&lt;/td&gt;
&lt;td&gt;1.21&lt;/td&gt;
&lt;td&gt;1.20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;存货周转天数&lt;/td&gt;
&lt;td&gt;37.80 天&lt;/td&gt;
&lt;td&gt;36.59 天&lt;/td&gt;
&lt;td&gt;40.86 天&lt;/td&gt;
&lt;td&gt;39.16 天&lt;/td&gt;
&lt;td&gt;41.56 天&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;应收账款周转天数&lt;/td&gt;
&lt;td&gt;33.46 天&lt;/td&gt;
&lt;td&gt;32.81 天&lt;/td&gt;
&lt;td&gt;34.43 天&lt;/td&gt;
&lt;td&gt;36.25 天&lt;/td&gt;
&lt;td&gt;36.64 天&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;4. 🔴 首都在线（300846）&lt;/h2&gt;
&lt;p&gt;战略定位：全球化弹性算力网络运营商&lt;/p&gt;
&lt;p&gt;核心能力：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;节点覆盖：50+ 国家 94 个数据中心 + 千个边缘节点，构建低延迟全球算力网&lt;/li&gt;
&lt;li&gt;资源储备：绑定英伟达/燧原科技 GPU 资源，支持实时渲染与大模型训练&lt;/li&gt;
&lt;li&gt;调度能力：异构算力平台实现动态资源分配，降低数字孪生、车联网等场景应用门槛&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;经营状况评价：&lt;/p&gt;
&lt;p&gt;首都在线正陷入收入萎缩与持续亏损的双重困境。2025 年一季报营业收入 3.06 亿元，同比下降 5.53%，终结了此前连续增长态势。净利润亏损 3973.62 万元，虽然亏损幅度同比收窄 14.54%，但依然深陷泥潭。扣非净利润亏损 4376.44 万元，表明主营业务盈利能力严重不足。&lt;/p&gt;
&lt;p&gt;盈利结构严重失衡。销售毛利率 11.11%，虽然同比提升 9.93%，但在 AI 算力行业中处于偏低水平。销售净利率 -12.20%，意味着每卖 100 元就要亏损 12.20 元。作为全球化算力网络运营商，如此惨淡的盈利表现暴露出其成本控制失效和商业模式缺陷。&lt;/p&gt;
&lt;p&gt;财务风险不断累积。流动比率 0.97，短期偿债能力告急。每股净资产 1.79 元，同比暴跌 23.46%，股东权益被快速侵蚀。应收账款周转天数 87.02 天，回款周期冗长，现金流管理堪忧。每股未分配利润 -1.33 元，累计亏损持续扩大。&lt;/p&gt;
&lt;p&gt;首都在线面临典型的&quot;规模不经济&quot;困境。全球 94 个数据中心的重资产投入带来巨额折旧和运营成本，但收入增长却停滞不前。在 AI 算力基础设施红海竞争中，首都在线更像是&quot;先烈&quot;而非&quot;先驱&quot;，高昂的基础设施投入与微薄的回报形成鲜明对比。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;报告期&lt;/th&gt;
&lt;th&gt;2025 一季报&lt;/th&gt;
&lt;th&gt;2024 年报&lt;/th&gt;
&lt;th&gt;2024 三季报&lt;/th&gt;
&lt;th&gt;2024 中报&lt;/th&gt;
&lt;th&gt;2024 一季报&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;营业收入&lt;/td&gt;
&lt;td&gt;3.06 亿&lt;/td&gt;
&lt;td&gt;13.97 亿&lt;/td&gt;
&lt;td&gt;10.53 亿&lt;/td&gt;
&lt;td&gt;7.13 亿&lt;/td&gt;
&lt;td&gt;3.24 亿&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;营业收入同比增长&lt;/td&gt;
&lt;td&gt;-5.53%&lt;/td&gt;
&lt;td&gt;12.35%&lt;/td&gt;
&lt;td&gt;22.13%&lt;/td&gt;
&lt;td&gt;26.90%&lt;/td&gt;
&lt;td&gt;19.56%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净利润&lt;/td&gt;
&lt;td&gt;-3973.62 万&lt;/td&gt;
&lt;td&gt;-3.03 亿&lt;/td&gt;
&lt;td&gt;-1.46 亿&lt;/td&gt;
&lt;td&gt;-9218.70 万&lt;/td&gt;
&lt;td&gt;-4649.83 万&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净利润同比增长&lt;/td&gt;
&lt;td&gt;14.54%&lt;/td&gt;
&lt;td&gt;10.86%&lt;/td&gt;
&lt;td&gt;0.29%&lt;/td&gt;
&lt;td&gt;9.86%&lt;/td&gt;
&lt;td&gt;18.84%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;扣非净利润&lt;/td&gt;
&lt;td&gt;-4376.44 万&lt;/td&gt;
&lt;td&gt;-2.96 亿&lt;/td&gt;
&lt;td&gt;-1.49 亿&lt;/td&gt;
&lt;td&gt;-9096.24 万&lt;/td&gt;
&lt;td&gt;-4688.97 万&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;扣非净利润同比增长&lt;/td&gt;
&lt;td&gt;6.67%&lt;/td&gt;
&lt;td&gt;10.60%&lt;/td&gt;
&lt;td&gt;2.74%&lt;/td&gt;
&lt;td&gt;15.56%&lt;/td&gt;
&lt;td&gt;21.27%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;每股净资产&lt;/td&gt;
&lt;td&gt;1.79 元&lt;/td&gt;
&lt;td&gt;1.86 元&lt;/td&gt;
&lt;td&gt;2.15 元&lt;/td&gt;
&lt;td&gt;2.26 元&lt;/td&gt;
&lt;td&gt;2.34 元&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;销售毛利率&lt;/td&gt;
&lt;td&gt;11.11%&lt;/td&gt;
&lt;td&gt;8.07%&lt;/td&gt;
&lt;td&gt;8.75%&lt;/td&gt;
&lt;td&gt;9.88%&lt;/td&gt;
&lt;td&gt;10.11%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;销售净利率&lt;/td&gt;
&lt;td&gt;-12.20%&lt;/td&gt;
&lt;td&gt;-21.08%&lt;/td&gt;
&lt;td&gt;-13.24%&lt;/td&gt;
&lt;td&gt;-12.38%&lt;/td&gt;
&lt;td&gt;-13.75%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净资产收益率&lt;/td&gt;
&lt;td&gt;-4.35%&lt;/td&gt;
&lt;td&gt;-29.90%&lt;/td&gt;
&lt;td&gt;-13.74%&lt;/td&gt;
&lt;td&gt;-8.73%&lt;/td&gt;
&lt;td&gt;-4.83%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;资产负债率&lt;/td&gt;
&lt;td&gt;50.80%&lt;/td&gt;
&lt;td&gt;49.61%&lt;/td&gt;
&lt;td&gt;46.54%&lt;/td&gt;
&lt;td&gt;46.47%&lt;/td&gt;
&lt;td&gt;47.71%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;流动比率&lt;/td&gt;
&lt;td&gt;0.97&lt;/td&gt;
&lt;td&gt;0.96&lt;/td&gt;
&lt;td&gt;1.04&lt;/td&gt;
&lt;td&gt;1.04&lt;/td&gt;
&lt;td&gt;1.08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;存货周转天数&lt;/td&gt;
&lt;td&gt;0.38 天&lt;/td&gt;
&lt;td&gt;0.90 天&lt;/td&gt;
&lt;td&gt;1.26 天&lt;/td&gt;
&lt;td&gt;1.29 天&lt;/td&gt;
&lt;td&gt;1.50 天&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;应收账款周转天数&lt;/td&gt;
&lt;td&gt;87.02 天&lt;/td&gt;
&lt;td&gt;82.30 天&lt;/td&gt;
&lt;td&gt;88.39 天&lt;/td&gt;
&lt;td&gt;88.45 天&lt;/td&gt;
&lt;td&gt;95.80 天&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;5. 🟢 浪潮信息（000977）&lt;/h2&gt;
&lt;p&gt;战略定位：全球 AI 服务器领导者&lt;/p&gt;
&lt;p&gt;核心能力：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;硬件创新：全球首推预置 DeepSeek 模型的海若一体机，单机支持千亿参数推理，市占率 11.3%&lt;/li&gt;
&lt;li&gt;能效突破：冷板式液冷技术实现 PUE 1.15，较风冷节能 30%，拥有 500+ 项液冷专利&lt;/li&gt;
&lt;li&gt;开源生态：发布&quot;源 2.0&quot;千亿参数开源大模型，构建金融、医疗行业专属解决方案&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;经营状况评价：&lt;/p&gt;
&lt;p&gt;浪潮信息正经历 AI 算力基础设施建设的黄金期。2025 年一季报营业收入 468.58 亿元，同比增长 165.31%，延续了 2024 年以来的爆发式增长态势。净利润 4.63 亿元，同比增长 52.78%，扣非净利润 4.27 亿元，同比增长 80.76%，盈利能力持续改善。&lt;/p&gt;
&lt;p&gt;盈利结构呈现典型的硬件制造特征。销售毛利率 3.45%，虽然同比大幅下降 57.30%，但在 AI 服务器行业属于正常水平。销售净利率 0.98%，每百元收入产生 0.98 元净利润，反映出公司在 AI 算力硬件供应链中的议价能力有限。作为全球 AI 服务器领导者，浪潮信息更像是&quot;卖铲子的人&quot;，受益于 AI 基础设施建设热潮但难以获得超额利润。&lt;/p&gt;
&lt;p&gt;财务结构存在隐忧。资产负债率高达 77.47%，债务负担沉重。流动比率 1.34，短期偿债能力尚可但压力较大。每股净资产 13.77 元，同比增长 7.25%，主要受盈利积累影响。应收账款周转天数 27.43 天，回款周期较短，现金管理能力较强。&lt;/p&gt;
&lt;p&gt;运营效率显著提升。存货周转天数从 120.69 天降至 86.05 天，存货管理效率大幅改善。总资产周转率 0.58 次，虽然同比下降但仍在合理区间。固定资产周转率 16.71 次，资产利用效率较高。&lt;/p&gt;
&lt;p&gt;浪潮信息正处于 AI 算力硬件制造的巅峰期。收入爆发式增长，盈利能力持续改善，但微薄的利润率暴露出其在价值链中的话语权不足。在 AI 基础设施建设热潮中，浪潮信息更像是&quot;卖铲子的人&quot;，受益于行业增长但难以获得超额收益。随着 AI 算力需求趋于稳定，公司可能面临增长放缓的挑战。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;报告期&lt;/th&gt;
&lt;th&gt;2025 一季报&lt;/th&gt;
&lt;th&gt;2024 年报&lt;/th&gt;
&lt;th&gt;2024 三季报&lt;/th&gt;
&lt;th&gt;2024 中报&lt;/th&gt;
&lt;th&gt;2024 一季报&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;营业收入&lt;/td&gt;
&lt;td&gt;468.58 亿&lt;/td&gt;
&lt;td&gt;1147.67 亿&lt;/td&gt;
&lt;td&gt;831.26 亿&lt;/td&gt;
&lt;td&gt;420.64 亿&lt;/td&gt;
&lt;td&gt;176.62 亿&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;营业收入同比增长&lt;/td&gt;
&lt;td&gt;165.31%&lt;/td&gt;
&lt;td&gt;74.24%&lt;/td&gt;
&lt;td&gt;72.26%&lt;/td&gt;
&lt;td&gt;68.71%&lt;/td&gt;
&lt;td&gt;85.32%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净利润&lt;/td&gt;
&lt;td&gt;4.63 亿&lt;/td&gt;
&lt;td&gt;22.92 亿&lt;/td&gt;
&lt;td&gt;12.94 亿&lt;/td&gt;
&lt;td&gt;5.97 亿&lt;/td&gt;
&lt;td&gt;3.03 亿&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净利润同比增长&lt;/td&gt;
&lt;td&gt;52.78%&lt;/td&gt;
&lt;td&gt;28.55%&lt;/td&gt;
&lt;td&gt;67.05%&lt;/td&gt;
&lt;td&gt;90.56%&lt;/td&gt;
&lt;td&gt;64.39%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;扣非净利润&lt;/td&gt;
&lt;td&gt;4.27 亿&lt;/td&gt;
&lt;td&gt;18.74 亿&lt;/td&gt;
&lt;td&gt;11.55 亿&lt;/td&gt;
&lt;td&gt;4.22 亿&lt;/td&gt;
&lt;td&gt;2.40 亿&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;扣非净利润同比增长&lt;/td&gt;
&lt;td&gt;80.76%&lt;/td&gt;
&lt;td&gt;67.59%&lt;/td&gt;
&lt;td&gt;176.67%&lt;/td&gt;
&lt;td&gt;3.61 万%&lt;/td&gt;
&lt;td&gt;62.96%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;每股净资产&lt;/td&gt;
&lt;td&gt;13.77 元&lt;/td&gt;
&lt;td&gt;13.58 元&lt;/td&gt;
&lt;td&gt;12.84 元&lt;/td&gt;
&lt;td&gt;12.50 元&lt;/td&gt;
&lt;td&gt;12.42 元&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;销售毛利率&lt;/td&gt;
&lt;td&gt;3.45%&lt;/td&gt;
&lt;td&gt;6.85%&lt;/td&gt;
&lt;td&gt;6.70%&lt;/td&gt;
&lt;td&gt;7.74%&lt;/td&gt;
&lt;td&gt;8.08%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;销售净利率&lt;/td&gt;
&lt;td&gt;0.98%&lt;/td&gt;
&lt;td&gt;2.00%&lt;/td&gt;
&lt;td&gt;1.54%&lt;/td&gt;
&lt;td&gt;1.37%&lt;/td&gt;
&lt;td&gt;1.68%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;净资产收益率&lt;/td&gt;
&lt;td&gt;2.30%&lt;/td&gt;
&lt;td&gt;12.06%&lt;/td&gt;
&lt;td&gt;7.01%&lt;/td&gt;
&lt;td&gt;3.27%&lt;/td&gt;
&lt;td&gt;1.69%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;资产负债率&lt;/td&gt;
&lt;td&gt;77.47%&lt;/td&gt;
&lt;td&gt;71.44%&lt;/td&gt;
&lt;td&gt;77.19%&lt;/td&gt;
&lt;td&gt;70.34%&lt;/td&gt;
&lt;td&gt;62.74%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;流动比率&lt;/td&gt;
&lt;td&gt;1.34&lt;/td&gt;
&lt;td&gt;1.50&lt;/td&gt;
&lt;td&gt;1.39&lt;/td&gt;
&lt;td&gt;1.58&lt;/td&gt;
&lt;td&gt;2.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;存货周转天数&lt;/td&gt;
&lt;td&gt;86.05 天&lt;/td&gt;
&lt;td&gt;100.60 天&lt;/td&gt;
&lt;td&gt;100.30 天&lt;/td&gt;
&lt;td&gt;118.32 天&lt;/td&gt;
&lt;td&gt;120.69 天&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;应收账款周转天数&lt;/td&gt;
&lt;td&gt;27.43 天&lt;/td&gt;
&lt;td&gt;32.52 天&lt;/td&gt;
&lt;td&gt;53.40 天&lt;/td&gt;
&lt;td&gt;48.62 天&lt;/td&gt;
&lt;td&gt;51.31 天&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;p&gt;表格数据来自雪球&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;https://www.qingcloud.com/aboutus&lt;/li&gt;
&lt;li&gt;https://www.ucloud.cn/site/about/intro/&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>GEO Checker</title><link>https://nexmoe.com/zh/products/geochecker</link><guid isPermaLink="true">https://nexmoe.com/zh/products/geochecker</guid><description>一站式网站地理可用性检查工具，支持多地区访问检测、状态码与响应时间分析，帮助你快速定位地区性网络问题。</description><pubDate>Thu, 24 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20251204_image.v_7p7I3f.png&quot; alt=&quot;GEO Checker&quot; /&gt;&lt;/p&gt;&lt;p&gt;一站式网站地理可用性检查工具，支持多地区访问检测、状态码与响应时间分析，帮助你快速定位地区性网络问题。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://geochecker.net&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://geochecker.net&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/geochecker&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://geochecker.net&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;访问 GEO Checker&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20251204_image.v_7p7I3f.png" length="1122913" type="image/png"/></item><item><title>我找到了最快最便宜部署 FLUX.1 Kontext [dev] 的方式</title><link>https://nexmoe.com/zh/posts/flux-kontext-dev-fastest-deployment-guide</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/flux-kontext-dev-fastest-deployment-guide</guid><pubDate>Fri, 04 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;FLUX.1 Kontext [dev] 刚刚发布就在开源社区引起轰动，这个新模型彻底改变了图像编辑的游戏规则。与传统的图像生成工具不同，它能够理解「语境」，让你可以像对话一样逐步完善图片，而不是一次性丢给它一堆指令然后祈祷结果。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/bb95d7d41ef5804b424329085a14a50b51cd78833b16fa8e4d6cb2d0b244c76c.png&quot; alt=&quot;picture-2025-07-04-18-39-08&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;从关键词匹配到语境理解&lt;/h2&gt;
&lt;p&gt;传统的图像生成模型本质上是在做关键词匹配，你输入「红色的猫」，它就从训练数据中找相似的图像组合。但 FLUX.1 Kontext [dev] 采用了多模态流匹配模型架构，可以同时处理文字指令和图像内容，真正理解你想要什么。&lt;/p&gt;
&lt;p&gt;这意味着什么？假设你想修改一张人物照片的背景，传统模型可能会把人物也一起改掉，因为它不知道哪些元素需要保持不变。而 FLUX.1 Kontext [dev] 会理解「这是一个人物，背景是环境」，只修改你指定的部分。&lt;/p&gt;
&lt;p&gt;更重要的是，它支持多轮迭代编辑。你可以先说「把背景改成海滩」，然后继续说「让海水更蓝一些」，它会记住之前的修改，在此基础上继续优化，而不是重新生成一张全新的图。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://preview.redd.it/learn-kontext-with-2-refs-like-a-pro-v0-w63wdee6yaaf1.jpg?width=640&amp;amp;crop=smart&amp;amp;auto=webp&amp;amp;s=66f318d46899abf1ca406ed06525792d73972288&quot; alt=&quot;r/comfyui - Learn Kontext with 2 refs like a pro&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;30 秒快速部署指南&lt;/h2&gt;
&lt;p&gt;我们在「共绩算力」平台上集成了 FLUX.1 Kontext [dev]，让你可以立即体验这个新模型。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;访问 https://console.suanli.cn/serverless/create 或在官网点击「开始试用」&lt;/li&gt;
&lt;li&gt;选择适合的显卡配置&lt;/li&gt;
&lt;li&gt;在服务配置中选择「Flux.1 Kontext Dev」&lt;/li&gt;
&lt;li&gt;点击部署&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;整个过程不到一分钟，部署完成后你就能通过 API 调用这个模型了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/df7c1b85d39dccdf896ec7315f5e16343f3e49e5a35e2284150a510695983ced.png&quot; alt=&quot;picture-2025-07-04-18-36-51&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;性能表现&lt;/h2&gt;
&lt;p&gt;我们在实际测试中发现，FLUX.1 Kontext [dev] 的推理速度比同类模型快 3-8 倍，这主要得益于它的流匹配架构。传统的扩散模型需要数百步去噪过程，而 FLUX.1 Kontext [dev] 通过更高效的采样算法，大幅减少了计算步骤。&lt;/p&gt;
&lt;p&gt;但速度提升并没有牺牲质量。在我们的测试中，它生成的图像细节保持度和风格一致性都表现出色，特别是在处理复杂场景时，能够保持各个元素之间的协调关系。&lt;/p&gt;
&lt;h2&gt;成本&lt;/h2&gt;
&lt;p&gt;目前在「共绩算力」平台上运行 FLUX.1 Kontext [dev]，每个小时仅 1.68 元，具体取决于图像分辨率和复杂度。相比于调用海外的商业 API，这个成本降低了约 80%，而且没有网络延迟问题。&lt;/p&gt;
&lt;h2&gt;应用场景分析&lt;/h2&gt;
&lt;p&gt;FLUX.1 Kontext [dev] 最适合的场景是需要精细控制和多轮迭代的图像编辑任务。比如：&lt;/p&gt;
&lt;p&gt;电商产品图处理：可以快速更换背景、调整光照、修改细节，而不影响产品主体
内容创作：为文章、视频配图时，可以根据内容主题逐步调整图像风格
设计原型：在设计早期阶段，可以快速验证不同的视觉方案&lt;/p&gt;
&lt;p&gt;传统的图像编辑工具要么需要专业技能，要么只能处理简单任务。FLUX.1 Kontext [dev] 填补了这个空白，让普通用户也能完成复杂的图像编辑工作。&lt;/p&gt;
&lt;h2&gt;结语&lt;/h2&gt;
&lt;p&gt;从 FLUX.1 Kontext [dev] 的表现来看，我们正在进入一个新的图像生成时代。以往那种「一次性生成」的模式将被「对话式创作」取代，这会极大降低专业图像编辑的门槛。&lt;/p&gt;
&lt;p&gt;目前模型还在快速迭代中，我们预计未来几个月内会有更多功能更新，包括视频编辑支持、更多的艺术风格，以及更好的中文理解能力。&lt;/p&gt;
&lt;p&gt;「共绩算力」平台会持续跟进这些更新，确保用户能够第一时间体验到最新功能。如果你对图像生成和编辑有需求，现在就是尝试 FLUX.1 Kontext [dev] 的最佳时机。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>HTTPie：重塑 API 调试体验的人性化工具</title><link>https://nexmoe.com/zh/posts/open-source-httpie</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/open-source-httpie</guid><description>在 API 优先的时代，HTTPie 以其直观的设计和强大的功能，正在改变开发者与 API 交互的方式。</description><pubDate>Tue, 01 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在后端开发的日常工作中，API 调试几乎占据了开发时间的三分之一。curl 命令功能强大，语法却很复杂。Postman 功能丰富，界面变得臃肿，订阅策略也让人困惑。HTTPie 为这个领域带来了新的选择。&lt;/p&gt;
&lt;p&gt;HTTPie 最打动人的地方是对「人性化」的追求。它让复杂的 HTTP 请求变得简单直观。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;可视化构建请求：通过界面点击构建 HTTP 请求，支持认证、请求头、请求体等所有参数，支持 REST、GraphQL 和传统 HTTP 协议。。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;导出多种格式：一键导出为 curl、HTTPie CLI 等代码格式，方便分享和文档编写。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;响应内容高亮：自动格式化 JSON，支持语法高亮和内容搜索。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;离线使用：无需注册即可使用全部功能，支持跨设备数据同步。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/25eb1eb7c7d8be249e3db2317638cfa456eb5c4fd56e8c3c16703692a57e22bf.png&quot; alt=&quot;picture-2025-07-01-14-57-36&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;快速上手&lt;/h2&gt;
&lt;h3&gt;安装配置&lt;/h3&gt;
&lt;p&gt;HTTPie 提供两种使用方式。Web 版本可直接访问 https://httpie.io/app 或使用简短别名 https://req.new。桌面版本支持 macOS、Windows 和 Linux 三大平台，从 https://httpie.io/download 下载对应版本即可。&lt;/p&gt;
&lt;p&gt;对于 Linux 用户，需要注意的是该版本使用 AppImage 格式，建议配合 AppImageLauncher 使用以获得更好的体验。&lt;/p&gt;
&lt;h3&gt;基础操作&lt;/h3&gt;
&lt;p&gt;创建请求只需两个必要元素：HTTP 方法和 URL。HTTPie 会根据请求内容智能切换方法（添加请求体时自动从 GET 切换为 POST）。&lt;/p&gt;
&lt;p&gt;HTTPie 支持直接导入 curl 命令。在 URL 输入框中粘贴任何 curl 命令，工具会自动解析并填充相应的请求参数。这对从 Chrome 开发者工具或其他平台迁移过来的开发者很友好。你也可以通过侧边栏的「+」菜单选择「Import」功能批量导入 curl 命令。&lt;/p&gt;
&lt;p&gt;请求头设置通过专门的表单完成，支持自动补全和重复头部的智能合并。认证方式涵盖 Basic、Bearer Token 和 API Key 三种主流方案。&lt;/p&gt;
&lt;p&gt;请求体支持文本、表单、文件上传和 GraphQL 四种类型，每种类型都有针对性的编辑器和预览功能。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/5021e38f31ecb411b0e075fc97d83666.gif&quot; alt=&quot;5021e38f31ecb411b0e075fc97d83666.gif&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;设计理念&lt;/h2&gt;
&lt;h3&gt;降低认知负荷&lt;/h3&gt;
&lt;p&gt;传统的 API 调试工具追求功能的完备性。HTTPie 选择了相反的路径。它将复杂的 HTTP 协议抽象为几个核心概念：方法、URL、头部、认证和请求体。这种抽象降低了用户的认知负荷。&lt;/p&gt;
&lt;h3&gt;工作流整合&lt;/h3&gt;
&lt;p&gt;HTTPie 的变量系统和环境管理功能体现了对真实开发场景的理解。开发者需要在不同环境（开发、测试、生产）之间切换。传统工具不支持或操作繁琐。HTTPie 的环境系统允许用户定义变量，在不同环境间快速切换。&lt;/p&gt;
&lt;p&gt;集合（Collections）功能优化了团队协作体验。相关的 API 请求可以组织在同一集合中，支持继承认证信息和环境变量，避免重复配置。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/da94f45b1e50e81e875ab5f07848daac78edcf6175929ccd2a9449c86d893336.png&quot; alt=&quot;picture-2025-07-01-15-04-50&quot; /&gt;&lt;/p&gt;
&lt;p&gt;HTTPie 在数据管理方面充分考虑了现代开发者的工作模式。工具支持完全离线使用。在网络不稳定或安全要求较高的环境中，开发者仍能正常进行 API 调试工作。不愿意注册账户的用户可以在本地使用所有核心功能。&lt;/p&gt;
&lt;p&gt;需要跨设备协作时，实时同步功能确保了数据的一致性。在办公室台式机上创建的请求集合，在家中笔记本上修改的环境配置，都能自动同步到所有设备。这种灵活性让 HTTPie 能够适应不同团队的工作习惯和安全要求。&lt;/p&gt;
&lt;h3&gt;AI 辅助功能&lt;/h3&gt;
&lt;p&gt;HTTPie 最近引入的 AI 辅助功能展现了其前瞻性思维。用户可以用自然语言描述需求，AI 会生成对应的 HTTP 请求。例如，输入「获取 GitHub 用户列表」，AI 会自动构建相应的 GitHub API 请求。&lt;/p&gt;
&lt;p&gt;这种功能降低了 API 文档的查阅成本，为不熟悉特定 API 的开发者提供了快速入门的途径。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/807aefb902f1c292fcd3045bcbbd69909f981a6aa9a653c8d698a9fdabafac21.png&quot; alt=&quot;picture-2025-07-01-15-02-44&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;最后&lt;/h2&gt;
&lt;p&gt;选择 HTTPie 意味着选择了一种开发哲学：工具应该服务于人，不是让人适应工具。这种理念在快速迭代的开发环境中很重要。&lt;/p&gt;
&lt;p&gt;HTTPie 的跨平台特性和数据同步功能确保了团队成员可以在不同设备和操作系统上保持一致的体验。这种一致性对于分布式团队来说至关重要。&lt;/p&gt;
&lt;p&gt;HTTPie 重新定义了 API 调试工具的标准。它告诉我们，真正优秀的开发工具不是功能的堆砌，而是对用户需求的深度理解和极致的体验优化。在 API 优先的时代，这样的工具值得每个开发者尝试。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>4.2MB 的域名重定向服务</title><link>https://nexmoe.com/zh/posts/domain-redirect</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/domain-redirect</guid><description>一个 Go 语言实现的轻量级域名重定向服务，支持多目标轮询转发，Docker 镜像仅 4.2MB，内存占用 1.277MB</description><pubDate>Sun, 29 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;手头囤了一堆闲置域名，想做跳转服务却被 Caddy 的配置文件搞得头疼？这个 4.2MB 的 Go 服务可能正是你需要的解决方案。&lt;/p&gt;
&lt;p&gt;domain-redirect 是一个专门解决域名重定向需求的轻量级服务。它把复杂的配置变成几行环境变量。这样既简单又灵活，能满足生产环境的需求。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;项目地址：&lt;/strong&gt; &lt;a href=&quot;https://github.com/nexmoe/domain-redirect&quot;&gt;https://github.com/nexmoe/domain-redirect&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;三分钟上手&lt;/h2&gt;
&lt;p&gt;最简单的部署方式是使用 Docker：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker run -d \
  -p 8080:8080 \
  -e DOMAIN_MAPPING_1=example.com-&amp;gt;https://target1.com,https://target2.com \
  nexmoe/domain-redirect
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这条命令会启动一个重定向服务，将访问&lt;code&gt;example.com&lt;/code&gt;的请求轮询转发到两个目标地址。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PORT&lt;/code&gt;: 服务监听端口，默认为 8080&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PRESERVE_PATH&lt;/code&gt;: 是否保持原始路径，默认为 false。设置为 &quot;true&quot; 时，重定向会保留原始请求路径&lt;/li&gt;
&lt;li&gt;&lt;code&gt;INCLUDE_REFERRAL&lt;/code&gt;: 是否携带来源域名信息，默认为 false。设置为 &quot;true&quot; 时，重定向会添加 ref 参数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ENABLE_TIMESTAMP&lt;/code&gt;: 是否启用时间戳参数，默认为 false。设置为 &quot;true&quot; 时，重定向会添加 _t 参数防止缓存&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果需要更复杂的配置，创建一个&lt;code&gt;docker-compose.yml&lt;/code&gt;文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;version: &apos;3&apos;
services:
  domain-redirect:
    image: nexmoe/domain-redirect
    ports:
      - &quot;8080:8080&quot;
    environment:
      - DOMAIN_MAPPING_1=blog.example.com-&amp;gt;https://blog.target.com
      - DOMAIN_MAPPING_2=shop.example.com-&amp;gt;https://shop1.com,https://shop2.com
      - PRESERVE_PATH=true
      - INCLUDE_REFERRAL=true
    restart: unless-stopped
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;现在，所有域名都按配置规则重定向。路径会保留，来源信息会添加到 URL 中用于统计。&lt;/p&gt;
&lt;h2&gt;完整配置说明&lt;/h2&gt;
&lt;h3&gt;域名映射配置&lt;/h3&gt;
&lt;p&gt;服务通过环境变量进行配置，每个域名映射规则使用 &lt;code&gt;DOMAIN_MAPPING_*&lt;/code&gt; 格式：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DOMAIN_MAPPING_&amp;lt;任意名称&amp;gt;=&amp;lt;域名&amp;gt;-&amp;gt;&amp;lt;目标地址1&amp;gt;,&amp;lt;目标地址2&amp;gt;,...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DOMAIN_MAPPING_1=example.com-&amp;gt;https://target1.com,https://target2.com
DOMAIN_MAPPING_BLOG=blog.example.com-&amp;gt;https://myblog.com
DOMAIN_MAPPING_SHOP=shop.example.com-&amp;gt;https://shop1.com,https://shop2.com,https://shop3.com
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;使用示例&lt;/h3&gt;
&lt;p&gt;假设配置了完整的参数：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DOMAIN_MAPPING_1=example.com-&amp;gt;https://target1.com,https://target2.com
PRESERVE_PATH=true
INCLUDE_REFERRAL=true
ENABLE_TIMESTAMP=true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当访问 &lt;code&gt;http://example.com/api/users&lt;/code&gt; 时，可能会重定向到：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://target1.com/api/users?ref=example.com&amp;amp;_t=1672531200
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;轻量化&lt;/h2&gt;
&lt;p&gt;镜像只有 4.2MB，内存占用 1.277MB。轻量化设计带来成本优势，部署和扩展也更方便。&lt;/p&gt;
&lt;p&gt;传统的 Web 服务器如 Nginx 或 Apache 镜像有几十 MB。对于重定向需求来说太重了。domain-redirect 用 Go 语言开发。Go 编译后的二进制文件小，运行时开销低。&lt;/p&gt;
&lt;p&gt;更重要的是环境变量配置方式的选择。相比配置文件，环境变量在容器化部署中具备天然优势：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;容器编排平台（如 Kubernetes）对环境变量有原生支持&lt;/li&gt;
&lt;li&gt;配置变更无需重构镜像，只需重启容器&lt;/li&gt;
&lt;li&gt;敏感信息可以通过 Secret 管理，避免明文存储&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;来源追踪与数据分析&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;INCLUDE_REFERRAL&lt;/code&gt;参数启用后，重定向 URL 会自动添加&lt;code&gt;ref&lt;/code&gt;参数，值为来源域名。&lt;/p&gt;
&lt;p&gt;这个功能解决了跳转服务的关键痛点：流量来源追踪。传统的 HTTP Referer 头经常被浏览器过滤或修改。URL 参数更可靠。&lt;/p&gt;
&lt;p&gt;配合 Google Analytics 等统计工具，你能精确知道哪些域名为目标站点带来流量，评估不同域名的价值。这对拥有多个域名的站长很实用。&lt;/p&gt;
&lt;h2&gt;KISS (Keep It Simple, Stupid)&lt;/h2&gt;
&lt;p&gt;domain-redirect 的设计不试图成为全能的反向代理。它专注于重定向这一核心功能。&lt;/p&gt;
&lt;p&gt;Go 语言的选择值得思考。Go 是编译型语言，部署更一致。你不需要担心目标环境的运行时版本问题。Go 的并发模型天然适合处理大量 HTTP 重定向请求。&lt;/p&gt;
&lt;p&gt;轮询状态保存在内存中，重启后重置到第一个目标。这种设计牺牲了状态持久化，但简化了架构复杂度。对重定向服务来说这是合理的权衡。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>边缘容器时代：Cloudflare Container 如何重构云计算的边界</title><link>https://nexmoe.com/zh/posts/cloudflare-container</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/cloudflare-container</guid><description>深入解析 Cloudflare Container 的技术架构与商业逻辑，探讨其对传统云计算模式的冲击和行业变革的可能性</description><pubDate>Thu, 26 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;云计算正在经历第三次革命。第一次是虚拟化解决了硬件资源浪费，第二次是容器化解决了环境一致性问题，第三次则是边缘原生容器——让任何 Docker 镜像都能在全球按需启动，并实现毫秒级精确计费。&lt;/p&gt;
&lt;p&gt;Cloudflare Container 于 2025 年 6 月正式进入公测，它不仅仅是又一个容器托管服务，而是对「计算应该在哪里发生」这一根本问题的重新定义。当你的 AI 推理容器可以在用户请求到达的瞬间于距离最近的边缘节点启动，当 FFmpeg 视频处理可以就近处理减少传输延迟，当原本需要包月付费的应用可以按毫秒计费时，整个云计算的经济模型都在被重写。&lt;/p&gt;
&lt;h2&gt;全新的开发体验&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;使用 Container 的工作流程异常简单：只需几行代码定义容器，然后执行 &lt;code&gt;wrangler deploy&lt;/code&gt;，就像部署 Worker 一样。无需复杂的 YAML 配置文件或容器编排。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Container 天然全球化：与 Workers 一样，你只需部署到「Region:Earth」——无需为全球应用在 5 个不同区域管理配置文件，一次部署即可覆盖全球 300+ 城市。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;合适的工具组合：在 Workers 和 Containers 之间路由请求变得轻而易举。需要超轻量级和极限扩展性时使用 Worker，需要更强大的计算能力和灵活性时使用 Container。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Container 完全可编程：容器实例按需启动，由 Workers 代码控制生命周期。需要自定义逻辑时，只需编写 JavaScript 代码，而不是花时间串联 API 调用或编写 Kubernetes 操作符。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;打破容器与边缘的传统界限&lt;/h2&gt;
&lt;p&gt;长期以来，容器和边缘计算被视为两条平行线——容器提供灵活性、可移植性和熟悉的开发模型，但需要复杂的编排和区域部署规划；边缘计算带来全球分布和无缝扩展能力，却在运行时支持、编程语言和执行模型上存在明显约束。&lt;/p&gt;
&lt;p&gt;Cloudflare 的创新在于彻底消除了这种二元对立。通过将容器平台构建在 Durable Objects 之上，而非改造 Kubernetes 等传统编排系统，实现了既全球分布又与边缘网络深度集成的容器服务。工作负载能够在最佳位置运行，摆脱了传统多区域容器部署的复杂性束缚。&lt;/p&gt;
&lt;p&gt;这种架构选择的深远意义在于：开发者不再需要在「容器的灵活性」和「边缘的性能」之间做出权衡，两者第一次实现了真正的统一。&lt;/p&gt;
&lt;h2&gt;计算模式重构&lt;/h2&gt;
&lt;h3&gt;重新定义容器的时空概念&lt;/h3&gt;
&lt;p&gt;传统容器技术建立在「长期运行」和「地理固定」两个核心假设上。Container 彻底打破了这些假设：&lt;/p&gt;
&lt;p&gt;时间维度重构：容器可以在毫秒级完成状态保存和恢复。冷启动从「需要避免的问题」转变为「可以利用的特性」——2-3 秒的启动时间变得可预期，开发者可以通过 &lt;code&gt;sleepAfter&lt;/code&gt; 精确控制实例生命周期，让资源利用效率最大化。&lt;/p&gt;
&lt;p&gt;空间维度重构：容器根据请求来源和网络状况动态选择最优执行位置。用户在东京发起的视频处理请求会在东京节点执行，同一应用的代码可能同时在伦敦、旧金山、新加坡运行，彼此之间通过 Workers 协调。&lt;/p&gt;
&lt;p&gt;这种变化让分布式系统的一致性问题、缓存策略、会话管理等传统架构模式都需要重新审视。状态恢复与冷启动解耦，开发者需要将状态持久化外置到 Durable Objects 或其他存储服务。&lt;/p&gt;
&lt;h3&gt;持久化策略的多样化选择&lt;/h3&gt;
&lt;p&gt;Container 的数据持久化策略颠覆了传统「有状态」与「无状态」的二元对立。通过 Durable Objects 作为状态管理的 Sidecar，实现了一种全新的混合模式：容器本身保持无状态，但应用逻辑可以拥有持久化的状态。&lt;/p&gt;
&lt;p&gt;这种架构的核心优势在于状态生命周期与容器生命周期的解耦。当容器因为资源优化或故障转移而重启时，业务状态通过 Durable Object 得以延续。&lt;/p&gt;
&lt;p&gt;这种模式特别适合需要会话状态但不需要复杂数据库的应用场景。比如 AI 对话系统可以将对话历史保存在 Durable Object 中，每次用户交互时容器从中恢复上下文，处理完成后再次保存。整个过程对用户透明，但避免了传统有状态容器的管理复杂性。&lt;/p&gt;
&lt;p&gt;Container 提供了灵活的状态管理选项，开发者可以根据数据特性选择不同的持久化策略：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;轻量级状态：&lt;/strong&gt; 直接使用 Durable Objects 存储，适合会话数据、用户偏好、临时计算结果等小型数据集。支持 SQL 和 KV 两种存储模式，满足不同查询需求。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;结构化数据：&lt;/strong&gt; 集成 D1 数据库实现关系型数据持久化。容器可以在启动时建立数据库连接，利用 Cloudflare 的全球数据库网络确保低延迟访问。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;大文件存储：&lt;/strong&gt; R2 对象存储处理媒体文件、模型文件、数据集等大容量数据。容器可以按需下载和上传，避免长期占用本地存储空间。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;跨地域同步：&lt;/strong&gt; 利用 Durable Objects 的强一致性特性，实现跨边缘节点的状态同步。当用户从不同地区访问时，状态会自动同步到最近的执行节点。&lt;/p&gt;
&lt;p&gt;这种多层次的持久化架构让开发者可以实现精细化的状态管理策略，在性能、成本和一致性之间找到最佳平衡。&lt;/p&gt;
&lt;h2&gt;行业影响与展望&lt;/h2&gt;
&lt;p&gt;Container 的真正威力不在于技术创新程度，而在于对云计算商业模式的根本性冲击。&lt;/p&gt;
&lt;p&gt;传统云服务商的护城河建立在数据中心规模和企业级功能完整性上。Cloudflare 选择了截然不同的路径：不是要替代这些服务，而是在它们之上构建更高效的分发和执行层。这种策略重新定义了竞争维度——当企业习惯按实际使用量付费、按地理位置动态调度资源时，传统的「区域化部署」和「预留实例」模式就显得过于粗糙。&lt;/p&gt;
&lt;p&gt;更深层的影响体现在开发范式转变。当容器可以无感知地在全球范围内迁移和调度时，开发者需要重新思考状态管理、数据一致性和错误处理策略。这不仅是技术问题，更是架构哲学的根本转变。&lt;/p&gt;
&lt;p&gt;从宏观视角看，Container 代表了云计算从「资源导向」向「需求导向」的演进。计算资源不再是需要预先规划和管理的固定资产，而是按需调用的动态服务。这种转变的最终受益者是那些能够重新设计应用架构、充分利用边缘计算优势的开发者和企业。&lt;/p&gt;
&lt;p&gt;边缘原生的时代已经到来，Container 只是开始。&lt;/p&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://sliplane.io/blog/cloudflare-released-containers-everything-you-need-to-know&lt;/li&gt;
&lt;li&gt;https://blog.cloudflare.com/cloudflare-containers-coming-2025/&lt;/li&gt;
&lt;li&gt;https://lord.technology/2025/04/13/cloudflare-containers-reimagining-global-compute-at-the-edge.html&lt;/li&gt;
&lt;li&gt;https://blog.cloudflare.com/containers-are-available-in-public-beta-for-simple-global-and-programmable/&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>Kubernetes 控制器（Controllers）对比表格</title><link>https://nexmoe.com/zh/posts/k8s-controllers-vs</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/k8s-controllers-vs</guid><pubDate>Thu, 26 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在 Kubernetes 中，控制器（Controllers）是用于管理 Pod 生命周期的核心组件。每种控制器都有其特定的使用场景和功能特点。以下是主要控制器类型的详细对比。&lt;/p&gt;
&lt;h2&gt;控制器对比表格&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;特性维度&lt;/th&gt;
&lt;th&gt;Deployment&lt;/th&gt;
&lt;th&gt;StatefulSet&lt;/th&gt;
&lt;th&gt;DaemonSet&lt;/th&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;核心用途&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;管理无状态应用（Web 服务，API）&lt;/td&gt;
&lt;td&gt;管理有状态应用（数据库，消息队列）&lt;/td&gt;
&lt;td&gt;在每个节点运行守护进程（监控，日志）&lt;/td&gt;
&lt;td&gt;运行一次性批处理任务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;应用状态&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;无状态&lt;/td&gt;
&lt;td&gt;有状态&lt;/td&gt;
&lt;td&gt;通常无状态&lt;/td&gt;
&lt;td&gt;通常无状态&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pod 身份&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;无固定身份，可任意替换&lt;/td&gt;
&lt;td&gt;无论怎么调度，每个 Pod 都有一个永久不变的 ID&lt;/td&gt;
&lt;td&gt;与节点绑定&lt;/td&gt;
&lt;td&gt;临时身份&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;存储管理&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;不需要持久化存储，可使用临时卷&lt;/td&gt;
&lt;td&gt;需要稳定的持久化存储（通过 PV/PVC 动态或静态供应）&lt;/td&gt;
&lt;td&gt;可选，通常访问主机路径（HostPath）或使用临时存储&lt;/td&gt;
&lt;td&gt;通常不需要，可按需挂载卷&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;部署与扩缩容&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;无序部署，支持水平扩缩容&lt;/td&gt;
&lt;td&gt;有序、逐一地部署、扩缩容和删除（0, 1, 2...）&lt;/td&gt;
&lt;td&gt;自动部署到新加入的节点，随节点数增减&lt;/td&gt;
&lt;td&gt;控制并行度（&lt;code&gt;parallelism&lt;/code&gt;）和完成次数（&lt;code&gt;completions&lt;/code&gt;），运行至完成&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;更新策略&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;滚动更新（RollingUpdate）、重建（Recreate）。可配置 &lt;code&gt;maxSurge&lt;/code&gt; 和 &lt;code&gt;maxUnavailable&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;滚动更新（RollingUpdate），支持分区更新（&lt;code&gt;partition&lt;/code&gt;）和按需更新（&lt;code&gt;OnDelete&lt;/code&gt;）&lt;/td&gt;
&lt;td&gt;滚动更新（RollingUpdate）、按需更新（&lt;code&gt;OnDelete&lt;/code&gt;）&lt;/td&gt;
&lt;td&gt;不适用，Job 一旦创建，其 Pod 模板不可变&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;回滚机制&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;支持自动回滚到历史版本（&lt;code&gt;revisionHistoryLimit&lt;/code&gt;）&lt;/td&gt;
&lt;td&gt;不直接支持，需要手动操作或外部工具&lt;/td&gt;
&lt;td&gt;支持回滚&lt;/td&gt;
&lt;td&gt;不适用&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;故障处理&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;自动重启或重建失败的 Pod&lt;/td&gt;
&lt;td&gt;具有相同身份的 Pod 最多只能有一个正在运行，但需手动干预恢复&lt;/td&gt;
&lt;td&gt;节点故障时，该节点上的 Pod 随之消失；当节点恢复或有新节点加入时自动创建 Pod&lt;/td&gt;
&lt;td&gt;可配置失败重试次数（&lt;code&gt;backoffLimit&lt;/code&gt;）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;关键特性&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;声明式更新、版本控制与回滚、可暂停/恢复部署&lt;/td&gt;
&lt;td&gt;有序性、稳定的网络和存储、Headless Service 支持&lt;/td&gt;
&lt;td&gt;节点亲和性、自动部署到新节点、可容忍污点&lt;/td&gt;
&lt;td&gt;失败重试、并行执行、完成后自动清理（TTL）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;示例用例&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nginx、Tomcat、NodeJS 应用&lt;/td&gt;
&lt;td&gt;MySQL、Redis、Kafka、ETCD&lt;/td&gt;
&lt;td&gt;Fluentd、Prometheus Node Exporter、网络插件&lt;/td&gt;
&lt;td&gt;数据迁移、批量计算、备份、ETL 任务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;最佳实践&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;默认选择&lt;/strong&gt;，适用于多数无状态应用&lt;/td&gt;
&lt;td&gt;仅在需要稳定身份或有序操作时使用&lt;/td&gt;
&lt;td&gt;用于基础设施和节点级服务&lt;/td&gt;
&lt;td&gt;用于会终止的任务，非守护进程&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;控制器层级关系&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Deployment → ReplicaSet → Pod&lt;/strong&gt;：这是管理无状态应用最常用的模式。用户直接操作 &lt;code&gt;Deployment&lt;/code&gt; 对象来声明应用的期望状态（例如，镜像版本、副本数）。&lt;code&gt;Deployment&lt;/code&gt; 控制器自身不直接管理 Pod，而是通过创建和管理 &lt;code&gt;ReplicaSet&lt;/code&gt; 来实现。当用户更新 &lt;code&gt;Deployment&lt;/code&gt; 时（例如，升级应用），&lt;code&gt;Deployment&lt;/code&gt; 会创建一个新的 &lt;code&gt;ReplicaSet&lt;/code&gt;，并以受控的方式（如滚动更新）将 Pod 从旧的 &lt;code&gt;ReplicaSet&lt;/code&gt; 迁移到新的 &lt;code&gt;ReplicaSet&lt;/code&gt;。这使得版本控制和回滚成为可能，而 &lt;code&gt;ReplicaSet&lt;/code&gt; 只需关注维持指定数量的 Pod 副本这一单一职责。可以说，&lt;code&gt;Deployment&lt;/code&gt; 为 &lt;code&gt;ReplicaSet&lt;/code&gt; 赋予了声明式更新和历史版本管理的能力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CronJob → Job → Pod&lt;/strong&gt;：&lt;code&gt;CronJob&lt;/code&gt; 负责按预定的时间表（Cron 表达式）创建 &lt;code&gt;Job&lt;/code&gt; 对象。&lt;code&gt;Job&lt;/code&gt; 则负责执行一次性的任务，它会创建一个或多个 &lt;code&gt;Pod&lt;/code&gt; 来完成具体工作，并确保它们成功终止。&lt;code&gt;CronJob&lt;/code&gt; 本身不管理 Pod，它只关心在正确的时间点触发 &lt;code&gt;Job&lt;/code&gt;。这种分层让定时任务的管理和实际任务的执行逻辑分离开来。&lt;/p&gt;
&lt;p&gt;而 &lt;code&gt;StatefulSet&lt;/code&gt; 和 &lt;code&gt;DaemonSet&lt;/code&gt; 则直接管理 Pod，它们没有中间层的控制器，因为它们提供的 Pod 管理逻辑（如稳定身份、节点绑定）是它们自身的核心功能，不需要通过其他控制器来抽象。&lt;/p&gt;
&lt;h2&gt;参考资源&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/&quot;&gt;Kubernetes 官方文档 - 工作负载控制器&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/&quot;&gt;Deployment 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/statefulset/&quot;&gt;StatefulSet 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/daemonset/&quot;&gt;DaemonSet 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/job/&quot;&gt;Job 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/cronjob/&quot;&gt;CronJob 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>Coolify：开源 PaaS 的理想主义与现实主义</title><link>https://nexmoe.com/zh/posts/open-source-pass-coolify</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/open-source-pass-coolify</guid><description>当云平台费用飞涨，开发者开始寻找自主可控的替代方案。Coolify 以其完全开源的特性，为我们提供了一个重新思考基础设施的机会。</description><pubDate>Tue, 24 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;云平台的账单又让你心疼了吗？当 Vercel 的 Serverless 函数调用费用超出预期，当 AWS 的复杂计费让人头疼，当 Heroku 停止免费计划，开发者们开始重新审视一个问题：我们真的需要把所有控制权都交给云厂商吗？&lt;/p&gt;
&lt;p&gt;Coolify 给出了一个有趣的答案。这个开源项目试图将 Heroku、Netlify 和 Vercel 的便利性带到你自己的服务器上，让开发者既能享受现代 PaaS 的部署体验，又能保持对基础设施的完全控制。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/763be6526f5462fdca8f710d4d0be83e81cd8f38ea3f15aa734271134cba57a4.png&quot; alt=&quot;picture-2025-06-26-21-41-50&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;十分钟上手：从零到部署&lt;/h2&gt;
&lt;p&gt;在深入分析之前，让我们先看看 Coolify 的实际使用体验。整个安装过程比你想象的要简单。&lt;/p&gt;
&lt;h3&gt;准备工&lt;/h3&gt;
&lt;p&gt;你需要一台运行 Ubuntu 22.04+ 或 Debian 11+ 的服务器，最低配置为 2GB RAM。如果你手头没有服务器，推荐使用 Hetzner Cloud 的 CAX11 实例（约 €4.5/月）。&lt;/p&gt;
&lt;h3&gt;一键安装&lt;/h3&gt;
&lt;p&gt;SSH 连接到服务器后，执行安装命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装脚本会自动处理 Docker 环境配置、防火墙设置和 Coolify 服务启动。整个过程通常在 5 分钟内完成。&lt;/p&gt;
&lt;h3&gt;首次配置&lt;/h3&gt;
&lt;p&gt;安装完成后，访问 &lt;code&gt;http://你的服务器IP:8000&lt;/code&gt; 打开管理界面。创建管理员账户，系统会引导你完成服务器连接配置。Coolify 使用 SSH 密钥与你的服务器通信，这个过程完全自动化。&lt;/p&gt;
&lt;h3&gt;部署第一个应用&lt;/h3&gt;
&lt;p&gt;在项目面板中点击创建新应用，选择 Git 仓库作为源。Coolify 支持 GitHub、GitLab、Bitbucket 等主流平台。填入仓库地址，选择部署分支，点击部署。&lt;/p&gt;
&lt;p&gt;对于 Next.js、Vue、React 等前端框架，Coolify 会自动识别并应用对应的构建配置。整个过程无需手动编写 Dockerfile 或配置文件。&lt;/p&gt;
&lt;h2&gt;重新定义 PaaS 的边界&lt;/h2&gt;
&lt;p&gt;传统云平台的商业模式建立在资源抽象和便利性收费之上。你为了避免运维复杂性，愿意支付高额费用。但这种模式存在几个根本性问题：&lt;/p&gt;
&lt;p&gt;成本不透明是最大的痛点。AWS 的计费模型复杂到需要专门的成本优化工程师，Vercel 的 Serverless 函数在高并发场景下费用飞涨。我见过太多项目因为意外的云费用而被迫重构架构。&lt;/p&gt;
&lt;p&gt;供应商锁定是另一个隐性成本。当你的应用深度集成了某个云平台的专有服务，迁移成本往往高得让人却步。这种依赖关系让开发者在技术选型时总是需要考虑「出口策略」。&lt;/p&gt;
&lt;p&gt;Coolify 的设计理念截然不同。它将 PaaS 的便利性与基础设施的透明性结合，让开发者既能享受一键部署的效率，又能保持对底层环境的完全控制。&lt;/p&gt;
&lt;p&gt;这种设计背后的哲学值得深思：技术工具应该增强人的能力，而不是替代人的判断。Coolify 不会替你决定使用什么数据库，不会限制你的资源配置，不会在你不知情的情况下产生额外费用。&lt;/p&gt;
&lt;h2&gt;架构设计的巧思&lt;/h2&gt;
&lt;p&gt;Coolify 的技术架构体现了开源软件的一个重要特质：透明性带来的可预测性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Docker 为核心的抽象层&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;所有应用都运行在 Docker 容器中，这个选择既保证了环境一致性，又避免了平台锁定。你可以轻松地将 Coolify 部署的应用迁移到任何支持 Docker 的环境中。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;基于 SSH 的服务器管理&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Coolify 通过 SSH 协议管理目标服务器，这意味着你可以将应用部署到任何可以 SSH 访问的机器上：VPS、家庭服务器，甚至是树莓派。这种设计让基础设施选择完全交还给开发者。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;声明式配置与自动化运维&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;虽然底层使用 Docker Compose，但 Coolify 提供了更高层次的抽象。你只需要声明想要的状态，系统会自动处理容器编排、网络配置、存储挂载等细节。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;内置的监控与日志系统&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;每个部署都有实时日志查看、资源监控和健康检查。这些功能在传统云平台中往往需要额外付费，而在 Coolify 中都是标准配置。&lt;/p&gt;
&lt;h2&gt;真实场景下的表现&lt;/h2&gt;
&lt;p&gt;理论上的优势需要在实际使用中验证。我在生产环境中使用 Coolify 部署了几个项目，积累了一些实际经验。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;成本控制的优势明显&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;一个中等规模的 Next.js 应用，在 Vercel 上的月费用约为 $20-40，而使用 Hetzner 的 €7.5/月 VPS 运行 Coolify，可以同时托管 5-10 个类似项目。成本差异在项目规模增长时会更加明显。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;部署速度与传统 PaaS 相当&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;从 Git 推送到应用上线，Coolify 的速度与 Netlify、Vercel 基本相当。对于大型项目，由于可以选择更强的服务器配置，构建速度甚至可能更快。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;监控和调试能力更强&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;由于可以直接访问服务器，排查问题时的可见性更好。你可以查看详细的系统日志，直接进入容器调试，这在传统云平台中往往受到限制。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/bcb8550d0d1a908191861ea92f16f1b16f9741842e7af150849d9fccb0ed1fb8.png&quot; alt=&quot;picture-2025-06-26-21-40-30&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;数据安全性和合规性&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;对于需要数据本地化的项目，Coolify 提供了完美的解决方案。所有数据都存储在你控制的服务器上，不需要担心第三方平台的数据处理政策。&lt;/p&gt;
&lt;p&gt;当然，自托管也意味着需要承担更多的运维责任。服务器维护、安全更新、备份策略都需要自己处理。但对于有一定技术背景的开发者来说，这种控制权的回归往往是值得的。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/37b5c5bc85c7c7bb45c16e7a2f6e4befacbb57742f664b34edad43c83c745eea.png&quot; alt=&quot;picture-2025-06-26-21-40-08&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;开源生态的力量&lt;/h2&gt;
&lt;p&gt;Coolify 项目的发展速度令人印象深刻。GitHub 上超过 35k 的 Star 数量，活跃的社区讨论，频繁的版本更新，这些都证明了开源模式在基础设施工具领域的活力。&lt;/p&gt;
&lt;p&gt;项目的 Roadmap 完全公开，功能请求和 Bug 报告都可以在 GitHub Issues 中追踪。这种透明性让用户可以参与到产品发展的每个阶段，而不是被动地接受供应商的产品决策。&lt;/p&gt;
&lt;p&gt;更重要的是，开源意味着你可以根据具体需求定制功能。如果需要特殊的部署流程，可以修改源码；如果需要集成特定的监控工具，可以提交 Pull Request。这种灵活性是闭源云平台无法提供的。&lt;/p&gt;
&lt;h2&gt;重新思考技术选型&lt;/h2&gt;
&lt;p&gt;Coolify 的出现让我们重新思考一个问题：在追求便利性的同时，我们是否过度依赖了外部服务？&lt;/p&gt;
&lt;p&gt;现代软件开发的一个趋势是将复杂性外包给专业的云服务商。这种做法在项目早期确实能够加速开发，但随着项目成熟，这种依赖关系的成本会越来越高。&lt;/p&gt;
&lt;p&gt;Coolify 提供了一个中间路径：既不回到原始的手工运维时代，也不完全依赖云平台的黑盒服务。它让开发者能够根据项目的具体阶段，在便利性和控制权之间找到合适的平衡点。&lt;/p&gt;
&lt;p&gt;对于个人项目和小团队，Coolify 几乎是完美的解决方案。低成本、高控制权、完整的功能集，这些特点让它成为传统云平台的有力竞争者。&lt;/p&gt;
&lt;p&gt;对于大型企业，Coolify 至少提供了一个有价值的参考：PaaS 的核心价值不在于专有技术，而在于将复杂性抽象化的能力。这种抽象化完全可以在开源框架下实现，而不需要牺牲透明性和控制权。&lt;/p&gt;
&lt;p&gt;技术选型从来都是权衡的艺术。Coolify 的价值在于为这种权衡提供了一个新的选项，一个值得认真考虑的选项。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Dokploy：化繁为简的开源 PaaS 平台</title><link>https://nexmoe.com/zh/posts/open-source-pass-dokploy</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/open-source-pass-dokploy</guid><description>在云原生时代，部署和运维应用对于独立开发者和小型团队而言，依然是一项挑战。Dokploy 作为一个开源的 PaaS 平台，旨在简化这一流程，让开发者能更专注于代码本身。</description><pubDate>Sun, 22 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在当前的软件开发领域，我们拥有前所未有的强大工具，但应用的部署与维护似乎并未变得更简单。从配置服务器、管理数据库到设置 CI/CD 流水线，每一个环节都可能消耗大量时间。对于追求高效和专注的开发者而言，理想的状态是提交代码后，其余的部署工作能自动、可靠地完成。正是在这样的需求背景下，Dokploy 作为一个开源的平台即服务（PaaS）解决方案，进入了我的视野。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/2a6058925b833383ce6ff7135bd91c4a439688d553a55285ecbbc12458a0b2e0.png&quot; alt=&quot;picture-2025-06-22-12-21-50&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;快速上手&lt;/h2&gt;
&lt;p&gt;Dokploy 的部署过程极其简洁。你只需要准备一台 VPS（建议至少 2GB 内存和 30GB 存储空间），然后执行一条命令即可完成整个平台的安装：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -sSL https://dokploy.com/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装脚本会自动处理 Docker 环境的配置。完成后，通过浏览器访问 &lt;code&gt;http://你的服务器IP:3000&lt;/code&gt;，创建管理员账户，即可开始使用。整个过程通常在 5 分钟内完成，无需任何复杂的前置配置。&lt;/p&gt;
&lt;h2&gt;流畅的部署与管理&lt;/h2&gt;
&lt;p&gt;在部署工作流上，Dokploy 提供了高度的灵活性。它能够直接与 GitHub 集成，实现代码推送后自动触发构建和部署，形成完整的 CI/CD 闭环。构建过程本身，它既支持通过 Nixpacks、Heroku Buildpacks 等主流构建工具自动识别项目类型并打包，也允许开发者通过自定义的 Dockerfile 进行精细化控制。这种设计覆盖了从简单应用到复杂项目的各种需求。尤其值得一提的是，Dokploy 原生支持 Docker Compose，这对于需要编排多个关联服务的复杂应用而言，无疑是一个巨大的便利。开发者可以将本地测试通过的 &lt;code&gt;docker-compose.yml&lt;/code&gt; 文件近乎无缝地迁移到生产环境，极大地降低了环境不一致带来的风险。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/b3b53df9d0af408a9e65e2b4328040dc00a419361111999d0fa6788cae6d4dd4.png&quot; alt=&quot;picture-2025-06-22-12-22-58&quot; /&gt;&lt;/p&gt;
&lt;p&gt;除了应用部署，Dokploy 还将数据库和服务的管理纳入其统一的控制面板。它支持一键部署包括 MySQL、PostgreSQL、MongoDB、Redis 在内的多种主流数据库，并内置了自动化的定时备份与恢复机制。开发者无需再手动编写备份脚本或担心数据丢失，平台将数据安全工作转变为简单的配置项。此外，对于每个运行中的应用和服务，Dokploy 都提供了实时的日志查看、资源监控（CPU、内存、磁盘、网络）以及直接进入容器的终端访问，为问题排查和日常运维提供了极大的便利。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/5d49d13778a8e93fb721356b2d5d1e6461221e329b3b7a8dd794b079cb59b72f.png&quot; alt=&quot;picture-2025-06-22-12-23-25&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/e0787384001c502a3f7d9ca8358308af73a453ac12996f7deff87dcb50f6474a.png&quot; alt=&quot;picture-2025-06-22-12-23-33&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/b79579a282dfe7442ecf3f0f777d3206dc7b3c193368df52bfbd6a679e9f5f92.png&quot; alt=&quot;picture-2025-06-22-12-24-01&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;回归创造本身&lt;/h2&gt;
&lt;p&gt;作为一个强调开发者自主性的工具，Dokploy 彻底贯彻了开源和自托管的原则。这意味着你拥有对自己基础设施的完全控制权，不存在任何厂商锁定的风险。你可以自由地修改、扩展平台功能，以满足特定的业务需求。同时，它支持多服务器部署和 Docker Swarm 集群，为应用的水平扩展提供了可能，保证了项目从初期到成长期的平滑过渡。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/4487d2c68d5b476e54b2fae97eb7087da252dcdc28600ad5b829fa5517792d3f.png&quot; alt=&quot;picture-2025-06-22-12-22-25&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在我看来，Dokploy 的价值在于它精准地找到了一个市场切入点：为那些既不满足于手动操作 &lt;code&gt;docker-compose&lt;/code&gt;，又觉得 Kubernetes 体系过于庞大的开发者，提供了一个&quot;刚刚好&quot;的解决方案。它没有试图成为一个包罗万象的巨型平台，而是专注于解决部署这一核心痛点，并把它做到极致地简单。&lt;/p&gt;
&lt;h2&gt;化繁为简的背后&lt;/h2&gt;
&lt;p&gt;Dokploy 的核心理念是提供一种无缝的部署体验，它巧妙地在强大的功能与简洁的操作之间取得了平衡。与许多复杂的商业 PaaS 或需要深度定制的 Kubernetes 方案不同，Dokploy 提供了一套直观的界面和命令行工具，让开发者可以通过简单的几步操作，将应用部署到任何服务器上。&lt;/p&gt;
&lt;p&gt;深入其技术栈，Dokploy 的简洁性并非空中楼阁。它在底层集成了一系列成熟的开源组件：使用 Traefik 作为反向代理，自动处理域名、SSL 证书和流量路由，免去了繁琐的网络配置；通过 Redis 管理部署队列，确保了多个部署任务能够有序进行，避免了服务器资源的冲突；而核心数据则由稳健的 PostgreSQL 数据库负责存储。这一套架构，将复杂的后端运维工作封装在了一个清爽的 Next.js 前端界面之下，让开发者得以通过 UI 的方式管理应用，而不是陷入命令式的细节配置中。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/8cbeea4101d2228ece84d6707f77bbd6175bece38b77216e62f0f762b9d311e6.png&quot; alt=&quot;picture-2025-06-22-12-20-56&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;PaaS 与 Serverless 的边界&lt;/h2&gt;
&lt;p&gt;最后有必要澄清一个常见的技术选型困惑：何时选择传统的 PaaS 平台，何时转向 Serverless 架构。这两种方案在表面上都能简化部署，但它们解决的问题本质上不同。&lt;/p&gt;
&lt;p&gt;Serverless 方案，如 Vercel、Netlify 或各大云厂商的函数计算服务，擅长处理无状态的、事件驱动的工作负载。它们的优势在于极致的自动扩缩容和按需付费，但这种便利的代价是对运行环境的严格限制。函数的执行时间、内存占用、冷启动延迟，这些约束条件决定了 Serverless 更适合 API 网关、静态网站生成、图片处理等场景，而非长期运行的服务或需要持久连接的应用。&lt;/p&gt;
&lt;p&gt;相比之下，Dokploy 这样的 PaaS 平台提供的是完整的应用运行环境。它不会强制你将应用拆解为无状态的函数片段，也不会限制你的数据库连接或文件系统访问。这种差异在实际项目中意义重大：如果你正在开发一个需要 WebSocket 长连接的实时协作工具，或者一个包含复杂状态管理的 SaaS 应用，传统容器化部署往往是更现实的选择。&lt;/p&gt;
&lt;p&gt;更深层的考虑在于成本结构。Serverless 的按调用计费模式对于流量不规律的项目非常友好，但当应用规模增长到一定程度时，持续的函数调用费用可能超过固定的服务器成本。Dokploy 的自托管特性让你可以在自己掌控的硬件上运行应用，避免了云厂商的「成长税」，这对独立开发者和成长期的产品而言，具有不可忽视的经济意义。&lt;/p&gt;
&lt;h2&gt;竞品对比&lt;/h2&gt;
&lt;p&gt;为了更直观地展现 Dokploy 的优势，我整理了主流开源 PaaS 平台的完整功能对比。这个对比表格基于 &lt;a href=&quot;https://docs.dokploy.com/docs/core/comparison&quot;&gt;Dokploy 官方文档&lt;/a&gt;，涵盖了部署工具的各个核心维度：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;功能特性&lt;/th&gt;
&lt;th&gt;Dokploy&lt;/th&gt;
&lt;th&gt;CapRover&lt;/th&gt;
&lt;th&gt;Dokku&lt;/th&gt;
&lt;th&gt;Coolify&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;用户界面&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Docker Compose 支持&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API/CLI 工具&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;多节点支持&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Traefik 集成&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;插件支持&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;用户权限管理&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bitbucket 集成&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitLab 集成&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gitea 集成&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;高级用户权限管理&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;内置终端访问&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;数据库支持&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;监控功能&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;自动备份&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;插件支持&lt;/td&gt;
&lt;td&gt;插件支持&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;开源协议&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;通知系统&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;多服务器支持&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;开源模板&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;共享环境变量&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;定时任务&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloudflare 隧道&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;预览部署&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;团队功能&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;云版本/付费版本&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;从这个对比中可以看出，Dokploy 在功能完整性方面具有明显优势，尤其是在 Git 平台集成、权限管理和运维功能方面。对于独立开发者、创业团队以及热衷于托管个人项目的人来说，Dokploy 提供了一个兼具控制力、灵活性与易用性的选择，让我们能重新将精力聚焦于创造本身，而非其背后的繁杂工程。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>2025 年 GPU 云服务大比拼：10 大 Serverless 平台深度解析</title><link>https://nexmoe.com/zh/posts/serverless-vs</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/serverless-vs</guid><pubDate>Tue, 17 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;排名&lt;/th&gt;
&lt;th&gt;服务商&lt;/th&gt;
&lt;th&gt;定价&lt;/th&gt;
&lt;th&gt;可扩展性&lt;/th&gt;
&lt;th&gt;GPU 类型&lt;/th&gt;
&lt;th&gt;易用性&lt;/th&gt;
&lt;th&gt;速度&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;共绩算力&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;超低成本，RTX 4090 仅 1.68 元/时；按秒计费&lt;/td&gt;
&lt;td&gt;弹性扩缩，动态调整节点数量&lt;/td&gt;
&lt;td&gt;RTX 4090、RTX 5090、L40、H800&lt;/td&gt;
&lt;td&gt;完善 API 接口；Docker 容器支持；Jupyter 环境&lt;/td&gt;
&lt;td&gt;秒级冷启动；99.9% 可用性&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;RunPod&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;低成本，按秒计费；&lt;/td&gt;
&lt;td&gt;跨 9 个地区自动扩展；无硬并发限制&lt;/td&gt;
&lt;td&gt;广泛范围（T4 到 A100/H100，包括 AMD）&lt;/td&gt;
&lt;td&gt;基于容器；REST API、SDK、快速模板&lt;/td&gt;
&lt;td&gt;48% 的冷启动时间&amp;lt;200 毫秒&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Capital&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;中等；入门版提供免费积分&lt;/td&gt;
&lt;td&gt;快速扩展至数百台；计划各异&lt;/td&gt;
&lt;td&gt;从 T4 到 H100 的广泛集合&lt;/td&gt;
&lt;td&gt;Python SDK 具有自动容器化功能&lt;/td&gt;
&lt;td&gt;超低延迟（2-4 秒冷启动）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Replicate&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;自定义模型价格较高；社区模型免费&lt;/td&gt;
&lt;td&gt;自动扩展，但冷启动可能较长&lt;/td&gt;
&lt;td&gt;T4、A40、A100，部分 H100&lt;/td&gt;
&lt;td&gt;预构建模型零配置；Cog 用于自定义代码&lt;/td&gt;
&lt;td&gt;自定义模型冷启动可能超过 60 秒&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Fal AI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;高端 GPU 具有竞争力&lt;/td&gt;
&lt;td&gt;扩展至数千台；针对突发生成任务优化&lt;/td&gt;
&lt;td&gt;专注高端 GPU（A100、H100、A6000）&lt;/td&gt;
&lt;td&gt;扩散模型的即用 API&lt;/td&gt;
&lt;td&gt;优化的冷启动（约几秒）和快速推理&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Baseten&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;基于使用量（按分钟计费）&lt;/td&gt;
&lt;td&gt;可配置副本的自动扩展&lt;/td&gt;
&lt;td&gt;从 T4、A10G、L4 到 A100/H100 的选项&lt;/td&gt;
&lt;td&gt;Truss 框架简化部署；简洁 UI&lt;/td&gt;
&lt;td&gt;冷启动约 8-12 秒；动态批处理提升吞吐量&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;AI news&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;超实惠，基于使用量&lt;/td&gt;
&lt;td&gt;跨 20+ 位置的弹性扩展&lt;/td&gt;
&lt;td&gt;RTX 30/40系列，A100 SXM&lt;/td&gt;
&lt;td&gt;一键 JupyterLab；简单 API&lt;/td&gt;
&lt;td&gt;快速实例启动；低网络延迟&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Beam Cloud&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;最低价格之一，提供免费层&lt;/td&gt;
&lt;td&gt;从零开始自动扩展，开发者友好限制&lt;/td&gt;
&lt;td&gt;T4、RTX 4090、A10G、A100/H100&lt;/td&gt;
&lt;td&gt;Python SDK、CLI、热重载&lt;/td&gt;
&lt;td&gt;超快（2-3 秒冷启动）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Cerebrium&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;竞争性按秒计费&lt;/td&gt;
&lt;td&gt;跨多种 GPU 类型无缝扩展&lt;/td&gt;
&lt;td&gt;12+ 类型包括 H100、A100、L40&lt;/td&gt;
&lt;td&gt;最小配置；支持 websockets 和批处理&lt;/td&gt;
&lt;td&gt;极速冷启动（2-4 秒）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Google Cloud Run&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;基于使用量，额外 CPU/内存成本&lt;/td&gt;
&lt;td&gt;从零扩展至 1000 个实例&lt;/td&gt;
&lt;td&gt;目前为 NVIDIA L4（24GB）&lt;/td&gt;
&lt;td&gt;自带容器；集成在 GCP 中&lt;/td&gt;
&lt;td&gt;冷启动约 4-6 秒；接近裸机性能&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Azure Container Apps&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;预期与 Azure 费率一致&lt;/td&gt;
&lt;td&gt;托管的事件驱动扩展（预览版）&lt;/td&gt;
&lt;td&gt;NVIDIA T4 和 A100（选项扩展中）&lt;/td&gt;
&lt;td&gt;简单 YAML 配置；与 Azure Monitor 集成&lt;/td&gt;
&lt;td&gt;预期约 5 秒冷启动；激活时完整 GPU 性能&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded><category>post</category></item><item><title>我升级了 macOS 26，但我不推荐你升</title><link>https://nexmoe.com/zh/posts/%E6%88%91%E5%8D%87%E7%BA%A7%E4%BA%86%20macOS%2026%EF%BC%8C%E4%BD%86%E4%B8%8D%E6%8E%A8%E8%8D%90%E4%BD%A0%E5%8D%87</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/%E6%88%91%E5%8D%87%E7%BA%A7%E4%BA%86%20macOS%2026%EF%BC%8C%E4%BD%86%E4%B8%8D%E6%8E%A8%E8%8D%90%E4%BD%A0%E5%8D%87</guid><pubDate>Tue, 10 Jun 2025 21:13:27 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/0a85390b9869aa587215342f1d6f16b1050173e2e8dacaf0c0089e3d02e015d8.png&quot; alt=&quot;picture-2025-06-10-21-13-08&quot; /&gt;&lt;/p&gt;
&lt;p&gt;⬆️ 选了张好看的封面。&lt;/p&gt;
&lt;p&gt;苹果在最新的 macOS 26 Beta 中引入了全新的 Liquid Glass 设计语言，号称是继扁平化以来最大的界面革命。我第一时间升级体验，虽然视觉效果确实很炫酷，但在日常使用中却发现了不少问题，这也是我不推荐你现在升级的原因。&lt;/p&gt;
&lt;p&gt;以下是他的三大罪：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可用性向视觉效果妥协&lt;/li&gt;
&lt;li&gt;设计语言本身尚不成熟&lt;/li&gt;
&lt;li&gt;性能代价高昂&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;接下来让我慢慢道来。&lt;/p&gt;
&lt;h2&gt;当前 Beta 版的三个核心问题&lt;/h2&gt;
&lt;h3&gt;可用性向视觉效果妥协&lt;/h3&gt;
&lt;p&gt;新系统最直观的感受是，为了追求视觉上的惊艳，牺牲了信息传达的效率和用户的专注度。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文字可读性差：回想拟物化时代，文字大多显示在类似纸张的背景上；到了扁平化时代，则是简洁的白或灰色背景，可读性都很好。而 Liquid Glass 风格的文字像是被&quot;蚀刻&quot;在半透明的玻璃上。在复杂的壁纸或光线变化的环境下，文字和背景的对比度严重不足，眼睛很容易疲劳。&lt;/li&gt;
&lt;li&gt;动态效果喧宾夺主：Liquid Glass 带来了大量动态效果，比如图标会根据视角变化产生光效，滑动时会出现涟漪状的粒子动画。这些效果固然惊艳，但很容易分散用户的注意力。当你想专注于阅读或工作时，界面上持续变化的光影反而成为一种干扰。&lt;/li&gt;
&lt;li&gt;内容沉浸感被削弱：为了实现玻璃质感，界面增加了额外的边框和阴影，这不仅占用了宝贵的屏幕空间，减少了内容的显示区域，而且过于花哨的视觉效果常常会喧宾夺主，让人无法专注于内容本身。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;设计语言本身尚不成熟&lt;/h3&gt;
&lt;p&gt;除了对用户体验的直接影响外，Liquid Glass 作为一套设计语言，其自身也暴露了不成熟和不统一的问题。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;界面层次混乱：当多个半透明的玻璃窗口重叠时，由于它们都具有半透明和反射的特性，我常常分不清哪个窗口在前，哪个在后，导致操作混乱。虽然苹果试图通过不同的透明度和虚化效果来区分层次（透明度越低，层次越高），但在实际使用中，复杂的光影和折射效果依然很容易让人迷惑。&lt;/li&gt;
&lt;li&gt;风格割裂：苹果似乎也意识到了可用性问题。在一些自带应用中，他们甚至放弃了部分 Liquid Glass 效果。一个典型的例子是 masOS 的邮件应用，按照设计逻辑，左侧的邮件列表本应采用更高层次的玻璃效果，但为了确保内容清晰，苹果选择让它回归扁平化设计。这种不统一恰恰说明，这套设计语言本身还未成熟。&lt;/li&gt;
&lt;li&gt;新旧设计语言圆角割裂与混乱：macOS 的一个标志性特征是其精确而统一的圆角。然而，在 Liquid Glass 中，这种统一性被打破了。新设计的窗口和控件采用了更复杂的连续曲线圆角，以模拟玻璃的物理形态。但在许多系统组件，尤其是尚未完全适配的旧应用和第三方应用中，依然保留着传统的圆角风格。当这两种不同的圆角同时出现在屏幕上时，例如一个新风格的窗口里嵌着一个旧风格的按钮或菜单，视觉上的割裂感非常严重，让界面显得既不协调又混乱。&lt;/li&gt;
&lt;li&gt;色彩混乱：扁平化设计通过鲜明、可预测的色彩来引导用户操作。Liquid Glass 则完全不同，它的色彩是动态且不确定的。由于玻璃材质会受到环境光和背景（如桌面壁纸）的影响，UI 元素的颜色会随之不断变化。更严重的是，这种不确定性常常导致前景元素（如文字、侧边栏、操作按钮等）与背景色之间的对比度不足，进一步加剧了可读性问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/8c4e3ddd6c7a068c29c02d6d62cae6a5760b3bd000d3727bd3a2f9160b3996fa.png&quot; alt=&quot;picture-2025-06-10-20-59-23&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;仔细想想，macOS Tahoe 的访达太糟糕了。
这是什么鬼。Big Sur 的设计好多了。而且现在窗口太圆润了。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/286250aa5d6d46eca8fe07cad1607161f084172b85c158599a9792674f64bde1.png&quot; alt=&quot;picture-2025-06-10-21-00-12&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;刚安装了 macOS Tahoe，我的心情很复杂。它感觉非常杂乱，有太多的特效、阴影和叠加效果，我不太喜欢。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/207ab5da28a2edab0f2999c09c78f065241d9a2946127782930e66c0cde53884.png&quot; alt=&quot;picture-2025-06-10-21-01-57&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;macOS Tahoe 的首个开发者测试版来了。
嗯，我对这个设计不太确定。
它看起来…… 很奇怪？侧边栏、图标，最重要的是，这些糟糕的边角弧度！
但我知道，我们会习惯的。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/1cd67bf16c82df083bad5ec29999201faab348a606fb1750e7ffc6edda4e25fe.png&quot; alt=&quot;picture-2025-06-10-21-07-57&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/98226a8a9d9166fcec2137d10c6d586f06a7ce82f185b92935e660e668aa69f2.png&quot; alt=&quot;picture-2025-06-10-21-08-32&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;性能代价高昂&lt;/h3&gt;
&lt;p&gt;Liquid Glass 带来了大量动态光影、流体和粒子效果。这些酷炫的视觉效果背后，是对系统资源的巨大消耗。在我的使用过程中，尤其是在打开多个应用或进行复杂操作时，能明显感觉到系统的卡顿和发热。对于非最新款的设备，性能问题可能会更加突出。&lt;/p&gt;
&lt;h2&gt;既然问题这么多，苹果为什么还要做？&lt;/h2&gt;
&lt;p&gt;既然有这么多显而易见的问题，为什么苹果还要坚持推出 Liquid Glass？这背后其实是为未来的计算平台做准备。&lt;/p&gt;
&lt;p&gt;首先，它试图在&quot;拟物化&quot;和&quot;扁平化&quot;两个极端之间找到平衡。扁平化设计虽然简洁高效，但牺牲了界面的层次感和可操作性，用户有时难以分辨哪些元素可以点击。而 Liquid Glass 通过模拟玻璃材质的光影、厚度和半透明效果，重新引入了界面的物理质感和深度，让交互元素更清晰可辨。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/401e1380bd564eb52e3a297e2bd2bc47fe56c1eed3ff4fb8f2fbbaf64ef7aa07.png&quot; alt=&quot;picture-2025-06-10-20-45-47&quot; /&gt;&lt;/p&gt;
&lt;p&gt;其次，也是更重要的一点，Liquid Glass 是为混合现实（MR/AR/VR）时代而生的设计语言。在 Vision Pro 这样的设备中，传统的二维扁平界面会显得格格不入。Liquid Glass 将界面塑造成仿佛悬浮在真实环境中的玻璃面板，既有真实物体的质感，又能承载丰富的数字信息，从而无缝融合虚拟与现实。苹果将其推广到所有设备，正是为了统一未来所有平台的体验，为从二维屏幕到三维空间的过渡铺平道路。&lt;/p&gt;
&lt;p&gt;从这个角度看，Liquid Glass 代表了苹果对未来的赌注。它试图通过动态化的界面，弥合数字世界与物理世界的边界。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/ad485b4c0bf76a08c985bef0593e7314453cc78b36fa5cdc6ddb4a53af373166.png&quot; alt=&quot;picture-2025-06-10-20-42-45&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;VS&lt;/h2&gt;
&lt;h3&gt;退步明显的 Finder&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/109f807d7a11625bd004fd68eb211af0bac112bb01f389081794390989106dc4.png&quot; alt=&quot;picture-2025-06-10-21-02-49&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/418f825effdbeba7d7debbbcf8916074661354a97c43cb4657b597922dbbe608.png&quot; alt=&quot;picture-2025-06-10-21-02-58&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;被阉割的启动器&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/323ddc8f9bf17b7befa6bce1e706957aac741d40bebd730258a256a552948b3a.png&quot; alt=&quot;picture-2025-06-10-21-03-35&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/f21487a499f3ed0914eae1cf3446ade6c5f4a917df18c22e78fad4b09b38e754.png&quot; alt=&quot;picture-2025-06-10-21-03-43&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;最后：我的建议&lt;/h2&gt;
&lt;p&gt;所以，回到最初的问题：我推荐现在升级吗？&lt;/p&gt;
&lt;p&gt;我的答案很明确：&lt;strong&gt;不推荐&lt;/strong&gt;。特别是如果你的 Mac 是主力生产力工具，稳定和高效是首要前提，那么请务必保持观望。至于我自己的其他设备，我也会等苹果在后续版本中进行更多优化后再考虑。&lt;/p&gt;
&lt;p&gt;虽然 Liquid Glass 代表了苹果对未来设计的大胆探索，但就眼下的 Beta 版本而言，酷炫的视觉效果是建立在牺牲可用性和稳定性的基础之上的。当然，我们有理由相信苹果会在正式版发布前修复诸多问题。&lt;/p&gt;
&lt;p&gt;但至少在目前，对于追求稳定和效率的用户来说，最好的选择就是&quot;再等等&quot;。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;不过隔壁 iPadOS 看着很不错，想要试试宇宙第一的平板了。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;纪念&lt;/h2&gt;
&lt;p&gt;我用另一台装有旧版系统的 mac 设备收集了一些用户体验很好的界面。
他们的视觉体验可能不太好看，在这些工具性应用前，他们直观、清晰、高效。&lt;/p&gt;
&lt;p&gt;永远怀念 R.I.P.  Mac OS Big Sur Design&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/40276ae657daa2eca41ffafe13e84f0c.png&quot; alt=&quot;40276ae657daa2eca41ffafe13e84f0c.png&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/aab4301d90d755df6ea5029ce4685d01.png&quot; alt=&quot;aab4301d90d755df6ea5029ce4685d01.png&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/f1884be41a2da7b68a07fd060409f84c.png&quot; alt=&quot;f1884be41a2da7b68a07fd060409f84c.png&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/618583a015cff1ba9add3cc1d658dbc7.png&quot; alt=&quot;618583a015cff1ba9add3cc1d658dbc7.png&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/d2dc6c9fbe87b4cfe48cb152b1dda654.png&quot; alt=&quot;d2dc6c9fbe87b4cfe48cb152b1dda654.png&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/076257a899ba68354a5b308adecfe839.png&quot; alt=&quot;076257a899ba68354a5b308adecfe839.png&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/9263919bd4d89a0c52ca08cd68a4baa6.png&quot; alt=&quot;9263919bd4d89a0c52ca08cd68a4baa6.png&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/f70f1e1c42c88f9fd18fa92b197ac314.png&quot; alt=&quot;f70f1e1c42c88f9fd18fa92b197ac314.png&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>玉玉了，人生的意义是什么？</title><link>https://nexmoe.com/zh/posts/%E4%BA%BA%E7%94%9F%E7%9A%84%E6%84%8F%E4%B9%89%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/%E4%BA%BA%E7%94%9F%E7%9A%84%E6%84%8F%E4%B9%89%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F</guid><pubDate>Mon, 09 Jun 2025 22:52:17 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;标题党了一回。刚刚我又给这篇文章想了另一个标题：上帝死了，我们怎么办&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本文主要是一个知识传播的目的，而非深入的理论探讨。我本人对存在主义的理解也还停留在比较浅显的层面。但即便如此，存在主义的一些基本观点，比如&quot;痛苦源于自由被压制&quot;这样的洞见，依然能给我们带来很多启发。&lt;/p&gt;
&lt;p&gt;20 世纪的哲学家们，在经历了世界大战的残酷和传统的崩塌后，深入思考了人生的意义，并由此诞生了存在主义。与以往认为人生有预设意义的&quot;本质主义&quot;不同，存在主义认为，人是自由的，我们的人生意义由我们自己的选择和行动来定义。其核心思想可以概括为三大原理：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;世界本无意义：宇宙本身没有给你预设任何目标或意义。&lt;/li&gt;
&lt;li&gt;存在先于本质：你首先存在于这个世界上，然后通过你的行动和选择，来定义你自己的&quot;本质&quot;和&quot;意义&quot;。&lt;/li&gt;
&lt;li&gt;绝对自由与沉重责任：你拥有选择的绝对自由，但也必须对自己的一切选择及其后果负起全部责任。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;接下来，我们将逐一深入探讨这三大原理。&lt;/p&gt;
&lt;h2&gt;原理一：世界本无意义&lt;/h2&gt;
&lt;p&gt;自古以来，人们习惯于相信&quot;本质主义&quot;，也就是所谓宿命论、决定论，即认为万事万物都有一个预先设定的&quot;本质&quot;或&quot;意义&quot;，而这个意义通常被归于神的意志或某种神秘的天命。比如，项羽是不是上天降下来灭秦的？牛顿是不是上天派来照亮物理学的？你的人生是否也有一个出厂设置好的意义？&lt;/p&gt;
&lt;p&gt;存在主义者对这一点提出了尖锐的质疑。他们认为，如果真的有神在主宰一切，那该如何解释世界大战那样的人间惨剧？难道上帝造你是为了让你去当炮灰或者刽子手吗？显然不是。存在主义者认为，我们不应为自己的行为寻找借口，你之所以行善或作恶，不是因为什么神圣的旨意，而是你自由意志自己做出的选择。&lt;/p&gt;
&lt;p&gt;就像上帝不让亚当夏娃吃禁果，但他们还是自己选择吃了。世界就像一个生态缸，上帝并不会操纵里面每个小鱼小虾的人生，而是让他们自由拼杀。因此，世界本身是中性的、无意义的，意义是由我们自己赋予的。&lt;/p&gt;
&lt;p&gt;所以，&quot;人生的意义是什么？&quot;这个问题的答案，第一步是：没有标准答案。但这并非悲观的结论，恰恰相反，它把定义意义的权力交还给了我们自己。&lt;/p&gt;
&lt;h2&gt;原理二：存在先于本质&lt;/h2&gt;
&lt;p&gt;&quot;存在先于本质&quot;是存在主义最核心的观点。它的意思是，在你作为一个实体存在之前，任何关于你的&quot;设计&quot;或&quot;本质&quot;都是空谈。即人是不被定义的。&lt;/p&gt;
&lt;p&gt;你可能会说，我的人生意义不是被父母早就定了吗？比如父母有皇位要继承，或者生你就是为了用你的脐带血给你哥治病。但存在主义会告诉你，无论你父母有什么打算，这些打算都必须等你真正地存在、成长，并拥有行动能力之后才有可能实现。比方说，你父母想让你当歌唱家，结果你生下来五音不全，那么这个预设的&quot;本质&quot;就毫无意义。&lt;/p&gt;
&lt;p&gt;再举个例子，你说你这双手的意义是用来开坦克的。但你必须先拥有一双手（存在），然后才能讨论这双手可以用来干什么（本质/意义）。你得先有这个东西，才能决定这个东西的用途和价值。因此，是你的&quot;存在&quot;，决定了你的&quot;本质&quot;，而非反过来。你不是一张被画好的图纸，你是一张白纸，你的样貌由你自己一笔一一笔画成。&lt;/p&gt;
&lt;h2&gt;原理三：自由与责任&lt;/h2&gt;
&lt;p&gt;存在主义强调人的绝对自由。这种自由体现在，你永远拥有选择的权利。你现在正在看这篇文章，你随时可以决定是继续看下去，还是站起来跳两下。你拥有对自己身体和行动的基本控制权。&lt;/p&gt;
&lt;p&gt;这种自由意志甚至体现在最极端的境况下。一个奴隶，虽然身体被奴役，但他依然保有内在的自由。他可以选择偷懒的程度，可以选择反抗还是顺从，甚至可以选择结束自己的生命来摆脱奴役。这一点将人与纯粹的动物区分开来，因为牛无法选择自杀，它不具备这种对自身生命的终极控制权。&lt;/p&gt;
&lt;p&gt;但是，自由并非没有代价，它如影随形地带来了责任。你的自由意志不是让你改变物理定律的魔法，而是一种&quot;主观能动性&quot;。你无法完全控制环境，也无法控制他人对你的影响，但你的每一个选择，都会给自己和环境带来后果。&lt;/p&gt;
&lt;p&gt;你可能会感到困惑：如果我为了养家糊口，不得不去做一份自己痛恨的工作，这难道不是违背了我的自由意志吗？我的自由又在哪里？&lt;/p&gt;
&lt;p&gt;存在主义的回答是：即使在这样的困境中，你依然在做选择。你选择了&quot;承担家庭责任&quot;而不是&quot;追求个人喜好&quot;。这个选择是痛苦的，但它依然是你的选择。承认这一点，就是承认自己的自由和责任。你选择了当前的道路，并为这个选择的后果负责。自由不是随心所欲，而是在认识到所有限制和后果之后，依然做出自己的决定。&lt;/p&gt;
&lt;h2&gt;三大原理总结&lt;/h2&gt;
&lt;p&gt;为了方便理解，我们再次对这三大原理进行浓缩解释：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;世界本无意义：上帝没工夫控制你，你想干啥干啥，所以你来定义自己行为的意义。即便上帝给你预备了奶和蜜糖，你也可以决定自己吃不吃，就像亚当夏娃还是自己选择了吃禁果。世界就是个生态缸，上帝不会操纵每个小鱼小虾的人生，而是让他们自由拼杀。&lt;/li&gt;
&lt;li&gt;存在先于本质：甭管你父母生你的时候怎么算计，你不作为实体出现，啥算计也没用。所以人生的预先设计是不存在的。你得先有双手，才能说这双手可以干啥，这就是存在先于本质（意义）。因为你得先有这个东西，才能决定这东西的用途。&lt;/li&gt;
&lt;li&gt;自由与责任：你自己永远可以选择，但是选择不是没有代价的。它是个交互系统，你的一切选择都有后果，会给自己和环境带来影响。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;如何面对人生困境&lt;/h2&gt;
&lt;p&gt;为啥抑郁者喜欢思考人生的意义呢？因为他痛苦，不知道自己受这个苦干啥。而现代人啥东西最痛苦，不是吃穿，而是社会压力，和精神凌虐。社会动物是在乎社会连接和社会评价的，抑郁者，说白了，就是被欺负了，被掠夺了，被伤害了。&lt;/p&gt;
&lt;p&gt;这恰好印证了萨特那句名言：&quot;他人即地狱&quot;。这并非是说他人都是邪恶的，而是指我们无时无刻不活在他人的审视之下，这种审视会物化我们，剥夺我们的自由，让我们感到焦虑和痛苦。我们自身的意义，时常被他人的定义所遮蔽和扭曲。&lt;/p&gt;
&lt;p&gt;这种困境在青春期尤为明显。当一个孩子开始意识到自己的独立人格（主体性）时，他会发现，从小被教导的那一套价值观和行为准则，是先于他而存在的，他并没有选择的余地。如果家庭、学校和社会环境总是压制孩子，告诉他&quot;自由的冲动&quot;和&quot;独立的想法&quot;是坏的，那么他就会学着压抑自己的真实感受，意志力的发展也会充满内疚感。比如，&quot;质疑老师是不对的&quot;、&quot;忤逆家长是不对的&quot;、&quot;玩游戏是不好的&quot;，所有和学习无关，不能提高成绩的行为，哪怕能带来快乐，也统统被禁止。&lt;/p&gt;
&lt;p&gt;当一个人的生活被如此结构化，他会感到生活是外加的，是一个必须服从的框架，而不是一张可以自己编织的网。他会觉得自己行为和结果之间没有因果关系，这就是心理学上的&quot;习得性无助&quot;——当一个人&quot;习得&quot;了自己无法掌控人生时，便会失去行动力，表现出抑郁症状。特别是当他发现，从小被灌输的&quot;延迟满足&quot;（牺牲现在，换取未来）是个陷阱，牺牲所有当下的快乐，并没有换来想象中的美好未来时，他的热情和憧憬就会彻底破灭。这种&quot;死气沉沉&quot;，不是因为没有感受，而是太多的感受被压抑和吞噬了。要直面人生固有的焦虑，人需要强大的自我力量，但如果一个人的主体性在成长中早已被扼杀，这种力量就无从谈起。&lt;/p&gt;
&lt;p&gt;那咋整？是时候动用我们上面的思想成果了。发挥你的：自由意志！有人欺负你，那多躲远点，要不就反击，或者让自己不要记仇郁闷，方法太多了，关键是自己想明白自己要干啥。生活学习压力大？竞争不过别人？那你看看谁是你绊脚石和拦路虎，打得过就打，打不过就加入，不想加入就无视，换个环境，或者自己想开了，明白贱人自有天收，你看还是有很多办法的。你真的可以自己去选，但是记住，存在先于意义，你得基于条件创造条件，才能有够得着的实际意义。&lt;/p&gt;
&lt;h2&gt;相关资料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://book.douban.com/subject/10608319/&quot;&gt;存在主义是一种人道主义&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://book.douban.com/subject/26304954/&quot;&gt;存在主义心理治疗&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>关于 Serverless 的思考：为什么国内外差距如此之大？</title><link>https://nexmoe.com/zh/posts/%E5%85%B3%E4%BA%8E%20Serverless%20%E7%9A%84%E6%80%9D%E8%80%83%EF%BC%9A%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9B%BD%E5%86%85%E5%A4%96%E5%B7%AE%E8%B7%9D%E5%A6%82%E6%AD%A4%E4%B9%8B%E5%A4%A7%EF%BC%9F</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/%E5%85%B3%E4%BA%8E%20Serverless%20%E7%9A%84%E6%80%9D%E8%80%83%EF%BC%9A%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9B%BD%E5%86%85%E5%A4%96%E5%B7%AE%E8%B7%9D%E5%A6%82%E6%AD%A4%E4%B9%8B%E5%A4%A7%EF%BC%9F</guid><pubDate>Mon, 09 Jun 2025 21:35:28 GMT</pubDate><content:encoded>&lt;p&gt;最近，在浏览技术社区时，一个反复出现的问题引发了我的深思：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;为什么 Node.js 在国外如此盛行，而在国内却显得有些&quot;水土不服&quot;？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;许多讨论都集中在语言特性、社区生态或招聘环境上，但我认为，这些都只是表象。真正的答案，藏在 Node.js 背后的云计算范式——Serverless 的发展路径差异之中。可以说，我们讨论的并非 Node.js 的困境，而是 Serverless 在国内的困境。&lt;/p&gt;
&lt;h2&gt;国外：Serverless 为王，JavaScript 为核&lt;/h2&gt;
&lt;p&gt;在国外，Node.js 的蓬勃发展与 Serverless 平台的崛起密不可分。Vercel、Netlify、Deno Deploy、Cloudflare Workers 等众多玩家，共同构建了一个简单而强大的生态系统。&lt;/p&gt;
&lt;p&gt;这些平台具备一个鲜明的共同点：功能纯粹，体验极致。无论是 Vercel 对前端部署的极致优化，还是 Cloudflare Workers 在边缘计算的探索，它们都将 Serverless 的核心理念——简化运维、按需执行——做到了极致。开发者可以专注于业务逻辑，快速搭建博客、部署静态网站（如 Astro），或实现轻量级 API。&lt;/p&gt;
&lt;p&gt;在这种环境下，JavaScript 不再仅仅是一门前端语言或一种后端技术选型，它成为了整个 Serverless 生态的核心载体。开发者推崇的并非&quot;JavaScript 全栈&quot;，而是&quot;Serverless 全栈&quot;，JavaScript 只是这个体系中最自然的执行引擎。&lt;/p&gt;
&lt;h2&gt;国内：巨头下的 PaaS 与框架的惯性&lt;/h2&gt;
&lt;p&gt;反观国内，我们走上了一条截然不同的技术路径，这导致了 Serverless 发展土壤的贫瘠。&lt;/p&gt;
&lt;h3&gt;1. 云巨头的&quot;大而全&quot;路径&lt;/h3&gt;
&lt;p&gt;国内的云计算巨头，如阿里云和腾讯云，从诞生之初就将目光锁定在大型企业客户上。它们倾向于构建功能全面、体系庞杂的 PaaS（平台即服务）解决方案。&lt;/p&gt;
&lt;p&gt;当你打开它们的控制台，成百上千的功能按钮令人眼花缭乱，而 Serverless（云函数）的入口则被深深地埋藏在这片功能的海洋中。这与 Cloudflare 或 Vercel 那种&quot;登录即可部署&quot;的简洁体验形成了鲜明对比。巨头们的 Serverless 产品线，往往给人一种&quot;有，但不好用&quot;的印象，它们更像是庞大服务体系中的一个&quot;添头&quot;，而非战略核心。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/32cc96e4492b205084ee1a37335b24cc5ed5650da21c04a0c666c3822e0cc15b.png&quot; alt=&quot;picture-2025-06-10-21-41-38&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;2. 开发者市场的&quot;重框架&quot;惯性&lt;/h3&gt;
&lt;p&gt;在企业和开发者层面，市场表现出了对传统开发模式的强大惯性。大家更倾向于使用成熟、大而全的框架来&quot;快速出活&quot;，认为这样更可控、更符合团队招聘和技术栈需求。&lt;/p&gt;
&lt;p&gt;Spring Boot 在 Java 生态的统治地位便是明证。而在 Node.js 领域，NestJS 的快速崛起也反映了同样的思路。许多团队选择 NestJS，是看中了它&quot;企业级&quot;的标签和对 Spring Boot 模式的模仿。然而，尽管 NestJS 对 Express 进行了封装，提供了类似的企业级开发体验，但其技术深度和生态成熟度远无法与 Spring Boot 相提并论。这种对重型框架的偏爱，使得需要改变开发思维的 Serverless 模式，难以获得广泛的市场认知和接受。&lt;/p&gt;
&lt;h2&gt;为什么国内缺少优秀的 Serverless 平台？&lt;/h2&gt;
&lt;p&gt;归根结底，国内 Node.js 生态在后端领域的尴尬，根源在于缺少一个像 Vercel 或 Cloudflare 那样真正引爆开发者社区的 Serverless 平台。那么，为什么这样的平台没有在国内诞生呢？&lt;/p&gt;
&lt;p&gt;首先，是高昂的运营成本与安全风险。&lt;/p&gt;
&lt;p&gt;一个对开发者友好的平台，通常需要提供慷慨的免费额度及强大的安全防护。这正是 Cloudflare 成功的关键之一——它为全球网站提供免费的 DDoS 防护。然而，在国内的网络环境下，DDoS 攻击的成本和频率都异常之高。对于一家初创公司而言，免费提供 DDoS 防护意味着巨大的、不可承受的成本和风险。这道高墙足以挡住绝大多数潜在的挑战者。&lt;/p&gt;
&lt;p&gt;其次，是巨头的商业模式与战略选择。&lt;/p&gt;
&lt;p&gt;唯一有能力承受这种成本的，只有云计算巨头。但如前文所述，它们的商业模式决定了其重心在服务大型企业，追求的是&quot;大而全&quot;的产品矩阵和高客单价。打磨一款针对个体开发者的、体验极致的 Serverless 产品，并不符合它们当前的核心商业利益。没有竞争，巨头们自然也缺乏足够的动力去优化和推广自己的 Serverless 产品线。&lt;/p&gt;
&lt;p&gt;最后，是历史的包袱与市场的空白。&lt;/p&gt;
&lt;p&gt;回想当年，PHP 虚拟空间何尝不是一种广义上的 Serverless？DA 和 CP 面板提供了基础的管理功能，新浪 SAE 也曾是国内 Serverless 理念的早期探索者。它们的流行证明了简化部署和运维的巨大价值。然而，随着技术向更复杂的集群化和容器化演进，这种简单、低成本的模式逐渐被遗忘。&lt;/p&gt;
&lt;p&gt;在国外，Vercel 等公司填补了这个空白，并将其升级为现代化的 Serverless 平台。而在国内，由于上述种种原因，这个赛道上始终缺乏有力的&quot;挑战者&quot;，最终形成了当前这种&quot;有，但不好用&quot;的尴尬局面。&lt;/p&gt;
&lt;h2&gt;结语&lt;/h2&gt;
&lt;p&gt;技术的发展从来不是单一路径的。国内外在 Serverless 领域的不同选择，深刻反映了各自市场环境、技术文化和商业模式的差异。&lt;/p&gt;
&lt;p&gt;国外选择了&quot;小而美&quot;的专业化路线，通过极致的用户体验和专注的功能定位赢得了开发者的心。国内则走向了&quot;大而全&quot;的平台化路线，以满足企业级客户复杂的业务需求。&lt;/p&gt;
&lt;p&gt;两种路径都有其商业上的合理性。但对于培育开发者生态和推动底层技术创新而言，我们或许需要更多&quot;小而美&quot;的尝试。毕竟，真正的技术进步，往往来自于对复杂性的优雅简化，而不是对功能的无尽堆砌。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>国内设计网站推荐：设计师必备的创意灵感宝库</title><link>https://nexmoe.com/zh/posts/20250606-%E5%9B%BD%E5%86%85%E8%AE%BE%E8%AE%A1%E7%BD%91%E7%AB%99%E6%8E%A8%E8%8D%90</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/20250606-%E5%9B%BD%E5%86%85%E8%AE%BE%E8%AE%A1%E7%BD%91%E7%AB%99%E6%8E%A8%E8%8D%90</guid><pubDate>Fri, 06 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;今天为大家精心整理了 9 个国内顶尖的设计网站，涵盖了灵感获取、作品展示、学习教程、资源下载等设计师日常工作的各个环节。&lt;/p&gt;
&lt;h2&gt;站酷：设计师的创意灵感平台&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://static.zcool.cn/git_z/z/images/new/logo.png&quot; alt=&quot;网站预览图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;传送门：https://www.zcool.com.cn/&lt;/p&gt;
&lt;p&gt;站酷（ZCOOL）是国内最具影响力的设计师互动平台之一，汇集了大量优秀的设计作品与创意灵感。平台包含平面设计、插画、摄影、UI/UX 等多种领域的内容，为设计师提供展示作品、交流学习的空间。用户不仅可以浏览海量优质作品获取灵感，还能参与平台举办的设计赛事，或是通过专业课程提升技能。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;汇聚各领域优秀设计作品，提供创作灵感&lt;/li&gt;
&lt;li&gt;定期举办专业设计赛事，发掘设计人才&lt;/li&gt;
&lt;li&gt;包含设计类课程资源，助力技能提升&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;站酷排行榜：顶尖设计作品集锦&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://static.zcool.cn/git_z/z/images/new/logo.png&quot; alt=&quot;网站预览图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;传送门：https://www.zcool.com.cn/top/index.do&lt;/p&gt;
&lt;p&gt;站酷排行榜收录了当周最受关注的设计作品，涵盖插画、平面、UI、网页、摄影、三维等 16 个设计门类。榜单每周二上午 11 点更新，展示了中国设计师社区最具人气的创意作品，包括品牌设计、电商视觉、影视动画等多个维度。排名依据作品的热度、推荐数、收藏量等综合数据计算，为设计从业者和爱好者提供权威的行业趋势参考。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每周更新涵盖 16 个设计门类的热门作品&lt;/li&gt;
&lt;li&gt;直观展示作品的详细数据指标和历史排名变化&lt;/li&gt;
&lt;li&gt;汇聚站酷平台认证设计师和团队的精品内容&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;优设网：设计师的灵感与工具宝库&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://screen.102417.xyz/screenshot?url=https%3A%2F%2Fwww.uisdc.com%2F&quot; alt=&quot;网站预览图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;传送门：https://www.uisdc.com/&lt;/p&gt;
&lt;p&gt;优设网是国内知名的设计学习与资源共享平台，为设计师提供从入门到进阶的全面内容。网站涵盖了 UI 设计、AIGC、交互设计、产品设计等专业领域的最新趋势和实践案例，同时整合了丰富的设计工具、免费资源和学习路径。无论是寻找设计灵感、学习专业技能，还是获取实战教程和行业资讯，优设网都能满足不同层次设计师的需求。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;海量设计资源：包括 AI 工具导航、免费字体、设计素材等实用资源&lt;/li&gt;
&lt;li&gt;前沿行业内容：涵盖 AIGC、Midjourney 等最新设计趋势和技术解析&lt;/li&gt;
&lt;li&gt;系统学习路径：提供从零基础到专业进阶的全套教程和课程体系&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;设计灵感聚集地：优优教程网&lt;/h2&gt;
&lt;p&gt;传送门：https://uiiiuiii.com/inspiration&lt;/p&gt;
&lt;p&gt;优优教程网是国内知名的设计教程与灵感平台，为设计师提供丰富的图文教程、视频教程和创意灵感。网站设有 Banner 设计、海报设计、Logo 设计、插画绘画、字体设计、UI 设计等多个专业分类，每日更新最新设计趋势和实用技巧。平台还提供设计导航、AI 工具导航等实用资源，以及设计书籍推荐、色彩搭配指南等辅助功能，满足不同层次设计师的学习需求。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;提供海量设计教程和灵感素材，覆盖多个设计领域&lt;/li&gt;
&lt;li&gt;设有专业分类导航，方便查找特定类型的设计内容&lt;/li&gt;
&lt;li&gt;每日更新设计趋势和实用技巧，紧跟行业动态&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;UI 中国：专业设计社区与资源平台&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://screen.102417.xyz/screenshot?url=https%3A%2F%2Fwww.ui.cn%2F&quot; alt=&quot;网站预览图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;传送门：https://www.ui.cn/&lt;/p&gt;
&lt;p&gt;UI 中国是国内领先的专业用户体验设计平台，为设计师提供作品展示、交流学习、职业发展等全方位服务。平台汇聚了大量优秀设计作品、行业文章和教程资源，涵盖 UI 设计、交互设计、平面设计等多个领域。通过丰富的线上线下活动、设计大赛和招聘服务，UI 中国连接设计师与企业需求，助力设计人才成长。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;海量设计作品展示与交流社区&lt;/li&gt;
&lt;li&gt;专业设计教程与行业资讯分享&lt;/li&gt;
&lt;li&gt;企业招聘与设计师认证服务&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;秀设计：创意灵感与设计资源平台&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://screen.102417.xyz/screenshot?url=https%3A%2F%2Fwww.xiusheji.com%2F&quot; alt=&quot;网站预览图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;传送门：https://www.xiusheji.com/&lt;/p&gt;
&lt;p&gt;秀设计是一个专注于创意设计领域的综合平台，汇集了国内外最新设计赛事资讯、优秀设计作品展示以及丰富的设计资源。网站内容涵盖平面设计、工业产品、建筑室内、UI 设计等多个设计门类，为用户提供灵感获取、作品分享和专业交流的一站式服务。平台定期更新设计大赛信息、行业新闻动态，并提供大量免费可商用字体、样机和设计工具资源，是设计师日常创作和工作的重要参考站点。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;提供国内外最新设计赛事信息与参赛指南&lt;/li&gt;
&lt;li&gt;展示海量原创设计作品，涵盖多个设计领域&lt;/li&gt;
&lt;li&gt;汇集实用设计资源，包括免费字体、样机模板等&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;花瓣网：你的设计灵感宝库&lt;/h2&gt;
&lt;p&gt;传送门：https://huaban.com/&lt;/p&gt;
&lt;p&gt;花瓣网是国内知名的设计素材分享平台，汇集了海量的高质量设计元素、创作灵感和行业趋势。平台以&quot;陪你做生活的设计师&quot;为理念，为专业设计师和创意爱好者提供丰富的视觉资源。从节日热点素材到行业设计趋势，从平面设计到 3D 艺术，用户可以在这里发现最新设计潮流，获取创作灵感，或分享自己的作品。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;海量设计资源：覆盖节日海报、品牌设计、UI 素材等各类创意内容&lt;/li&gt;
&lt;li&gt;实时热点追踪：提供高考、618、父亲节等时令主题的专题素材&lt;/li&gt;
&lt;li&gt;创作者社区：聚集众多优秀设计师，可直接关注喜欢的创作者获取持续灵感&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;腾讯 ISUX：探索设计与用户体验前沿&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://screen.102417.xyz/screenshot?url=https://isux.tencent.com/&quot; alt=&quot;网站预览图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;传送门：https://isux.tencent.com/&lt;/p&gt;
&lt;p&gt;腾讯 ISUX（Internet Social User Experience）是腾讯社交用户体验设计部官方平台，致力于分享前沿的设计理念和实践经验。该网站包含丰富的内容资源，涵盖设计文章、品牌案例、行业资源等多个栏目，为设计师和用户体验从业者提供专业的交流平台。网站上展示的最新研究成果和设计作品，覆盖了 AIGC 技术应用、沉浸式体验打造、字体设计创新等多个热门领域。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;提供专业的设计文章和案例分析，涵盖 UI/UX、品牌设计、动效设计等多个方向&lt;/li&gt;
&lt;li&gt;包含创新设计方法论，如&quot;渐进式创新&quot;与&quot;激进式创新&quot;思路&lt;/li&gt;
&lt;li&gt;整合行业资源平台，包括原创馆、QQ 游戏中心等腾讯生态产品设计经验分享&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;设计达人：干货满满的创意资源库&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://screen.102417.xyz/screenshot?url=https%3A%2F%2Fwww.shejidaren.com%2F&quot; alt=&quot;网站预览图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;传送门：https://www.shejidaren.com/&lt;/p&gt;
&lt;p&gt;设计达人是一个专注于为创意工作者提供实用干货的综合性设计资源平台。网站涵盖了视觉设计、AI 绘画、资源推荐等多个创意设计领域，定期更新设计教程、素材资源和行业工具测评。从平面设计物料尺寸指南到 AI 生成游戏 UI 技巧，从排版黄金法则到免费图标库推荐，这里既有新手设计师必备的基础知识，也包含资深创作者需要的前沿技术解析。特别值得一提的是，该平台对 AI 在设计领域的应用保持高度关注，提供了大量实用 AI 工具的体验报告和操作指南。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;提供平面/UI 设计全流程实用指南与资源下载&lt;/li&gt;
&lt;li&gt;聚焦 AI 设计应用，含多平台对比与生成技巧&lt;/li&gt;
&lt;li&gt;定期更新免费优质设计素材库与工具测评&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>9 个 2025 年最顶级的 Serverless GPU 云平台</title><link>https://nexmoe.com/zh/posts/2025-top-serverless-gpu-cloud-platform</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/2025-top-serverless-gpu-cloud-platform</guid><pubDate>Wed, 04 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;随着 Serverless GPU 平台需求的激增，AI 工程师现在可以轻松进行按需推理，而无需担心底层基础设施的管理问题。在本文中，我们将对比包括 RunPod、Modal、Replicate、Novita AI、Fal AI、Baseten、Koyeb、智灵云 在内的顶级服务提供商，帮助您选择 2025 年 AI 算力需求的最佳解决方案。&lt;/p&gt;
&lt;h2&gt;共绩算力：利用闲置算力为 AI 赋能&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/21fc4eb5f2b71a7279e83a32211323bd010f24c741a1d25cadec8929fa49d960.png&quot; alt=&quot;picture-2025-06-04-22-27-25&quot; /&gt;&lt;/p&gt;
&lt;p&gt;传送门：&lt;a href=&quot;https://www.gongjiyun.com?utm_campaign=nexmoe&quot;&gt;https://www.gongjiyun.com?utm_campaign=nexmoe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;共绩科技是一家专注于提供弹性 GPU 算力服务的云计算平台，致力于通过整合全球闲置算力资源为客户提供高性价比的计算解决方案。该平台基于清华背景团队开发，采用动态扩缩容机制和按秒计费模式，支持包括 AI 模型训练、视频转码、科学计算等多种应用场景。主要亮点包括 NVIDIA RTX 4090 等顶级硬件支持、灵活的弹性计费机制和完整的容器生态，同时提供 99.9% 的可用性保障和 24/7 专业支持。平台已服务清华大学、华为等多家知名机构和企业的 AI 团队。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;采用闲置资源、动态扩缩容和按秒计费机制，相比传统方式可节省 70% 成本&lt;/li&gt;
&lt;li&gt;支持 NVIDIA 5090/L40/H800等顶级计算硬件，适配各类AI应用场景&lt;/li&gt;
&lt;li&gt;提供完整的 OpenAPI 和 Docker 生态集成，方便业务系统对接&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;RunPod：一站式 AI 模型训练与部署云平台&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://www.runpod.io/static/images/home-page-preview-image.webp&quot; alt=&quot;网站预览图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;传送门：&lt;a href=&quot;https://www.runpod.io&quot;&gt;https://www.runpod.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;RunPod 是一个专为 AI 工作负载设计的云平台，提供从模型训练到部署的全流程解决方案。平台支持全球分布式 GPU 资源，涵盖 PyTorch、TensorFlow 等多种预配置环境，并允许用户自定义容器。RunPod 特别注重快速部署和成本效益，其服务器启动时间可缩短至毫秒级，并提供 50 多种开箱即用的模板。平台还提供自动扩展的 Serverless GPU 服务，冷启动时间低于 250 毫秒，适合需要弹性扩展的 AI 推理场景。此外，RunPod 还针对初创公司和学术机构提供专门的信用计划。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;快速部署：GPU Pod 可在数秒内启动，冷启动时间低至毫秒级&lt;/li&gt;
&lt;li&gt;丰富选项：支持 50+ 预配置模板，涵盖主流 ML 框架，并允许自定义容器&lt;/li&gt;
&lt;li&gt;性价比高：提供多种 GPU 选项，价格从 $0.16/hr 起，适合不同预算和需求&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Modal：云端 AI 模型一键部署平台&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://modal.com/assets/social-image-3.jpg&quot; alt=&quot;网站预览图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;传送门：&lt;a href=&quot;https://modal.com&quot;&gt;https://modal.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Modal 是一个专为 AI 开发者设计的云端计算平台，提供简单高效的解决方案来部署和运行定制化 AI 模型。通过一行代码即可将 Python 函数部署到云端，并自动获得弹性扩展能力，适用于机器学习推理、数据处理等各种计算密集型任务。平台采用创新的 Rust 容器技术实现亚秒级启动，支持数百 GPU 的秒级扩展，并提供按秒计费的灵活定价模式。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;零配置部署：通过 Python 装饰器语法快速部署 AI 应用，无需管理基础设施&lt;/li&gt;
&lt;li&gt;高性能计算：优化 GPU 利用率，支持 H100/A100 等顶级显卡，实现高效推理和训练&lt;/li&gt;
&lt;li&gt;无缝扩展：自动处理突发流量，支持从零扩展到数千个容器的弹性伸缩&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Replicate：一键运行 AI 模型的云端平台&lt;/h2&gt;
&lt;p&gt;传送门：&lt;a href=&quot;https://replicate.com&quot;&gt;https://replicate.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Replicate 是一个开源 AI 模型托管平台，提供了简单易用的 API 接口，让开发者能够通过一行代码调用各类预训练 AI 模型。平台汇集了图像生成、视频处理、文本创作等数千个社区贡献的最新模型，所有模型都经过优化可直接用于生产环境。Replicate 采用按秒计费的云服务模式，自动处理 GPU 资源调度和 API 部署等基础设施问题，大幅降低了 AI 应用开发的门槛。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;支持数千个开箱即用的生产级 AI 模型，包括 Stable Diffusion、Llama 等热门模型&lt;/li&gt;
&lt;li&gt;提供细粒度调优功能，可以用自有数据训练定制化模型&lt;/li&gt;
&lt;li&gt;采用按使用量付费的云计算模式，自动扩展处理高并发请求&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;探索 fal.ai：开发者专属的生成式 AI 平台&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://fal.ai/og-thumbnail.webp&quot; alt=&quot;网站预览图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;传送门：&lt;a href=&quot;https://fal.ai&quot;&gt;https://fal.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;fal.ai 是一个专为开发者设计的生成式 AI 平台，致力于提供高性能、低延迟的媒体生成体验。该平台内置强大的 fal Inference Engine™，能够以高达 4 倍的速度运行扩散模型，支持从文本到图像、图像到视频等多种生成任务。开发者可通过直观的 API 接口、丰富的预训练模型库（如 Kling、Pixverse 等），快速构建创意应用，同时享受灵活的按需付费模式和企业级定制服务。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;极速推理引擎：优化扩散模型运行效率，速度提升最高达 400%&lt;/li&gt;
&lt;li&gt;多样化模型库：提供 Kling、Veo 2 等前沿图像/视频生成模型，支持 LoRA 微调&lt;/li&gt;
&lt;li&gt;开发者友好：提供 Python/JavaScript/Swift 客户端库，支持私有模型部署与 H100 GPU 按秒计费&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Baseten：AI 推理部署的领先平台&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://www.baseten.co/img/og-bg-2025.png&quot; alt=&quot;网站预览图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;传送门：&lt;a href=&quot;https://www.baseten.co&quot;&gt;https://www.baseten.co&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Baseten 是一个专注于 AI 模型推理部署的平台，为企业提供高性能的模型运行环境、跨云高可用性解决方案和流畅的开发者工作流程。该平台支持开源模型、定制化模型和微调模型的部署，适用于各种生产环境需求。Baseten 凭借其优化的推理堆栈、云原生基础设施和专业的工程支持，帮助众多知名企业快速实现 AI 产品落地。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;提供专用部署选项，支持高负载工作，实现无缝扩展&lt;/li&gt;
&lt;li&gt;内置针对生成式 AI 的定制性能优化，如图像生成、转录、文本转语音等&lt;/li&gt;
&lt;li&gt;支持多种部署模式，可以在 Baseten 云、自托管或按需灵活部署&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Novita.ai：高效部署 AI 模型的云端平台&lt;/h2&gt;
&lt;p&gt;传送门：&lt;a href=&quot;https://novita.ai&quot;&gt;https://novita.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Novita.ai 是一个专注于 AI 模型部署的云端平台，提供简单易用的 API 接口帮助开发者快速部署和扩展 AI 应用。平台整合了 200 多个开源 AI 模型，覆盖聊天、代码、图像、音频等多种类型，并支持企业级定制模型的部署。通过全球分布式 GPU 资源和按需付费的服务器架构，Novita.ai 实现了高性价比的 AI 服务，为客户节省高达 50% 的成本，同时保障高性能和稳定性。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;提供 200+ 预训练模型的即用 API，支持快速集成&lt;/li&gt;
&lt;li&gt;全球分布式 GPU 资源，A100/RX4090 等高配显卡可选&lt;/li&gt;
&lt;li&gt;按需付费的服务器架构，节省成本达 50%&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Koyeb：全球部署的高性能 Serverless 平台&lt;/h2&gt;
&lt;p&gt;传送门：&lt;a href=&quot;https://www.koyeb.com&quot;&gt;https://www.koyeb.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Koyeb 是一个面向开发者的高性能 Serverless 平台，专为 AI 推理、模型微调和分布式系统设计。该平台支持在全球 50+ 个位置部署 GPU、CPU 和加速器工作负载，实现亚 100ms 的全球延迟体验。Koyeb 采用先进的容器技术，提供亚 200ms 的冷启动性能和自动扩展能力，支持从零扩展到数百台服务器。平台特别针对 AI 工作负载进行了深度优化，支持包括 RTX-4000、L4、A100 等多种 NVIDIA GPU，并提供透明的按秒计费模式，相比传统云服务商可节省高达 80% 的成本。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;超快冷启动：容器冷启动时间低于 200ms，支持瞬时扩展至数百实例&lt;/li&gt;
&lt;li&gt;全球覆盖：在 50+ 个地理位置部署，确保全球用户获得低延迟体验&lt;/li&gt;
&lt;li&gt;多样化硬件：支持 RTX-4000 到 A100 等多种 GPU 选择，价格从 $0.50/hr 起步&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;智灵云：本土化 Serverless AI 计算平台&lt;/h2&gt;
&lt;p&gt;传送门：&lt;a href=&quot;https://datastone.cn&quot;&gt;https://datastone.cn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;智灵云是湖南磐云数据推出的 Serverless 机器学习平台，专注为国内开发者提供高性价比的 GPU 算力服务。平台支持 DeepSeek 等国产大模型的一键本地部署，提供丰富的预置模板包括 Stable Diffusion、Jupyter Notebook、ChatGLM 等主流 AI 应用。智灵云采用弹性计费模式，根据实际工作量动态调整资源，无请求时无需付费。平台特别针对中国用户需求进行优化，支持百度网盘与阿里云盘数据同步，并提供闲时 2.5 折的优惠定价机制，显著降低 AI 开发成本。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本土优化：支持 DeepSeek 一键部署，集成百度网盘和阿里云盘数据同步功能&lt;/li&gt;
&lt;li&gt;多样模板：提供 Stable Diffusion、ComfyUI、ChatGLM 等 20+ 种预置模板&lt;/li&gt;
&lt;li&gt;灵活定价：闲时 2.5 折优惠，RTX 4090D 单卡低至 ¥0.8/小时&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Beam：面向开发者的 AI 基础设施平台&lt;/h2&gt;
&lt;p&gt;传送门：&lt;a href=&quot;https://www.beam.cloud&quot;&gt;https://www.beam.cloud&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Beam 是一个专为开发者设计的 AI 基础设施平台，提供 serverless GPU 推理和训练服务。该平台的核心理念是让开发者能够在本地编写代码，然后在云端 GPU 上即时执行，实现无缝的云端开发体验。Beam 支持将任意 Python 函数容器化并部署到 GPU 环境中，提供极快的构建时间和自动扩展能力。平台特别适合部署 LangChain 应用、Stable Diffusion API 或 Dreambooth 等 AI 应用，同时支持定时任务、任务队列和高性能分布式文件系统。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;云端开发体验：支持本地开发、远程执行，提供闪电般的构建速度和即时 GPU 访问&lt;/li&gt;
&lt;li&gt;一键容器化：通过 Python 装饰器语法即可将函数部署到 GPU 环境，无需复杂配置&lt;/li&gt;
&lt;li&gt;多场景部署：支持 REST API、定时任务、任务队列等多种部署模式，适配不同业务需求&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>我们做了国内首个 Serverless GPU 产品</title><link>https://nexmoe.com/zh/posts/gongji-suanli</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/gongji-suanli</guid><pubDate>Tue, 27 May 2025 06:34:18 GMT</pubDate><content:encoded>&lt;p&gt;步入 2025 年，AI 应用的蓬勃发展让我们见证了技术变革的力量，但作为深耕 AI 领域的开发者，我们却在实际部署中屡屡碰壁——要么是高昂的 GPU 租赁成本让项目举步维艰，要么是传统云服务的刚性供给无法匹配波动性需求，亦或是复杂的基础设施管理消耗了大量精力。我们深知，这些痛点不仅困扰着我们，更是整个 AI 行业面临的共同挑战。于是，一个念头在我们心中萌生：为何不打造一个真正解决这些问题的 Serverless GPU 平台？于是，共绩算力应运而生。这不仅是一个产品，更是我们对 AI 算力服务理想形态的探索与实践，希望它能为那些致力于 AI 创新的开发者们，开启一个全新的算力时代。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/bbf509d90a605789e243aca8285684dff6088c72016878228b08e624726bf5ae.png&quot; alt=&quot;picture-2025-05-27-14-29-26&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;开发共绩算力的初衷：解决 AI 推理算力市场的结构性困境&lt;/h2&gt;
&lt;p&gt;在使用算力的过程中，我们深刻感受到 AI 应用对&lt;strong&gt;推理算力&lt;/strong&gt;需求的激增，但同时也观察到国内算力市场存在的结构性问题。高昂的推理成本正在阻碍 AI 应用的落地与创新，这促使我们思考如何解决这些痛点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;服务僵化，弹性不足：&lt;/strong&gt; 我们发现供需矛盾严重影响了效率和用户体验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模式传统，阻碍增长：&lt;/strong&gt; 长租模式和高固定投入限制了企业的快速迭代能力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;管理繁琐 &amp;amp; 效率低下：&lt;/strong&gt; 基础设施管理耗费了工程师大量精力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资源错配，寻卡无门：&lt;/strong&gt; 我们观察到算力闲置与高性能 GPU 短缺并存的矛盾现象。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些问题构成了我们所说的 AI 算力市场 &lt;strong&gt;&quot;弹性、稳定、低价&quot;不可能三角&lt;/strong&gt;，企业很难兼得这三个特性。目前多数云平台提供的三类服务：整租（低价&amp;amp;稳定）、按量租（高价&amp;amp;稳定）、抢占式 SPOT 实例（低价&amp;amp;弹性），都无法完美解决这个问题。&lt;/p&gt;
&lt;p&gt;传统 GPU 整租模式难以匹配 AI 推理的波动性需求，导致&lt;strong&gt;高昂的&quot;空闲成本&quot;或服务中断&lt;/strong&gt;，这正是我们要解决的核心问题。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/e4d401640a975ef239e243bc81f1875068008140b422dd83bc2e9e533e91c011.png&quot; alt=&quot;picture-2025-05-27-14-29-50&quot; /&gt;&lt;/p&gt;
&lt;p&gt;图：刚性供给与弹性需求之间的矛盾，直接影响了 AI 应用成本和用户体验&lt;/p&gt;
&lt;p&gt;面对这一矛盾，我们将目光投向了近年来兴起的 &lt;strong&gt;Serverless 计算&lt;/strong&gt;理念。我们认为，它通过&lt;strong&gt;按需付费、自动伸缩和简化运维&lt;/strong&gt;，为 AI 推理提供了理想的解决方案。&lt;/p&gt;
&lt;p&gt;Serverless GPU 允许开发者按需调用 GPU 算力，无需管理硬件，特别适合请求量不稳定的 AI 推理场景。我们研究了全球 Serverless GPU 市场的发展，发现如 &lt;strong&gt;RunPod&lt;/strong&gt; 等平台已经提供按小时计费、容器化部署等服务。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/e2f87d2a7626555c9b4898fea0f3df2fe34887b968deed4cd09ec56547c1cba6.png&quot; alt=&quot;picture-2025-05-27-14-30-08&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然而，我们发现国内专注于 Serverless GPU 服务的平台较少，资源储备不足限制了本土 AI 应用的 Serverless 部署。这正是我们决定开发共绩算力的关键原因。&lt;/p&gt;
&lt;h2&gt;我们的解决方案：共绩算力 Serverless GPU 平台&lt;/h2&gt;
&lt;p&gt;基于对市场痛点的深入理解，我们开发了&quot;共绩算力&quot;（suanli.cn），这是我们专为 AI 推理打造的 Serverless GPU 平台。我们的目标是打破行业&quot;不可能三角&quot;，真正实现&lt;strong&gt;弹性、稳定、低价&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/586cc0c044bdfc2b0d5b2f50482054278c95c5b72fcf85de812bc41076219e97.png&quot; alt=&quot;picture-2025-05-27-14-30-22&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我们为共绩算力平台设计的核心价值：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;极致弹性：&lt;/strong&gt; 我们实现了随流量自动扩缩容，毫秒级按量计费，彻底告别资源浪费和空闲成本。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;部署极简：&lt;/strong&gt; 我们采用 Docker 容器化技术，五步快速上云，兼容各类平台，并提供全程技术支持。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;海量资源：&lt;/strong&gt; 我们整合了全国算力资源，提供万卡级别的资源池，以高性价比保障稳定供给（如 4090 单卡低至 1.68 元/小时）。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我们自研的闲时算力调度平台整合了多家智算平台的资源，不仅提供了 Serverless 按需付费特性，还通过跨平台资源整合破解了&quot;供需错配&quot;这一行业难题。&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;限时优惠：立即体验我们的 Serverless GPU 服务&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;我们的 NVIDIA RTX 4090 单卡推理服务：仅需 1.68 元/小时！&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;即日起至 6 月 18 日，新用户注册并首次充值，我们额外赠送 20% 积分！&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;邀请好友使用我们的服务，通过您的邀请码成功拉新，您和被邀请人各得 50 元积分！&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参与方式：&lt;/strong&gt; 活动期间，通过我们的官方网站 suanli.cn 登录用户后台，选择在线充值即可自动参与并获得赠送金额。具体活动细则以官网届时公布为准。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/807ea14ce3ca1506b0c6936a44f3a98a15c4618ec88f8de9d801106bd52b1917.png&quot; alt=&quot;picture-2025-05-27-14-30-55&quot; /&gt;&lt;/p&gt;
&lt;p&gt;立即访问 &lt;strong&gt;suanli.cn&lt;/strong&gt;，体验我们打造的 AI 推理新纪元，让算力不再是您创新的瓶颈！&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Mermaid 两个极简主题样式分享</title><link>https://nexmoe.com/zh/posts/mermaid-theme</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/mermaid-theme</guid><pubDate>Tue, 27 May 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Mermaid.js 是一款强大的工具，它允许我们使用文本和代码快速生成各种图表和流程图。非常适合与 Markdown 结合。一个美观且合适的图表主题能够显著提升信息传递的效率和专业性。&lt;/p&gt;
&lt;p&gt;但是他的默认主题实在是太丑了，于是本文分享两个简约风格的 Mermaid 主题配置。&lt;/p&gt;
&lt;p&gt;原皮：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/f00630e68aacf83cb620269961bfbf7b87aac0ea585f39db6496a86896546876.png&quot; alt=&quot;picture-2025-05-29-18-02-01&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;主题一：纯白简约风格&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/ba26703c749eafb0b5d05fe5334d9b0be8cba345ba4f7a52554dbb0480421ea5.png&quot; alt=&quot;picture-2025-05-28-09-12-04&quot; /&gt;&lt;/p&gt;
&lt;p&gt;要使用此主题，只需将以下 &lt;code&gt;%%{ init: { ... } }%%&lt;/code&gt; 配置块复制到你的 Mermaid 代码块的顶部即可。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;%%{
  init: {
    &apos;theme&apos;: &apos;base&apos;,
    &apos;themeVariables&apos;: {
      &apos;primaryColor&apos;: &apos;#ffffff&apos;,
      &apos;primaryTextColor&apos;: &apos;#333333&apos;,
      &apos;primaryBorderColor&apos;: &apos;#cccccc&apos;,
      &apos;lineColor&apos;: &apos;#888888&apos;,
      &apos;tertiaryColor&apos;: &apos;#D0E4FF&apos;,
      &apos;tertiaryBorderColor&apos;: &apos;#D0E4FF&apos;,
      &apos;tertiaryTextColor&apos;: &apos;#00A4FF&apos;
    }
  }
}%%
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;主题一配置解析&lt;/h3&gt;
&lt;p&gt;如上所示，我基于 &lt;code&gt;base&lt;/code&gt; 主题魔改了一些自定义样式。通过 &lt;code&gt;themeVariables&lt;/code&gt;，调整了颜色方案：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;primaryColor&lt;/code&gt;: &lt;code&gt;#ffffff&lt;/code&gt; (节点背景色 - 白色)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;primaryTextColor&lt;/code&gt;: &lt;code&gt;#333333&lt;/code&gt; (节点文字颜色 - 深灰色)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;primaryBorderColor&lt;/code&gt;: &lt;code&gt;#cccccc&lt;/code&gt; (节点边框色 - 浅灰色)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lineColor&lt;/code&gt;: &lt;code&gt;#888888&lt;/code&gt; (连接线颜色 - 中灰色)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tertiaryColor&lt;/code&gt;: &lt;code&gt;#D0E4FF&lt;/code&gt; (特定节点/分组背景色 - 淡蓝色)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tertiaryBorderColor&lt;/code&gt;: &lt;code&gt;#D0E4FF&lt;/code&gt; (特定节点/分组边框色 - 淡蓝色)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tertiaryTextColor&lt;/code&gt;: &lt;code&gt;#00A4FF&lt;/code&gt; (特定节点/分组文字颜色 - 亮蓝色)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;主题二：淡雅商务风格&lt;/h2&gt;
&lt;p&gt;第二个主题采用了更加商务化的配色方案，使用淡雅的背景色和黑色边框，更适合正式文档和商务报告。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/2a9663530f3c6283b9edaed4c15f2455ae015517fa54c7b4cb61e22cc437ab22.png&quot; alt=&quot;picture-2025-06-05-11-22-25&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;%%{
  init: {
    &apos;theme&apos;: &apos;base&apos;,
    &apos;themeVariables&apos;: {
      &apos;primaryColor&apos;: &apos;#F0F4FC&apos;,
      &apos;primaryTextColor&apos;: &apos;#1F2329&apos;,
      &apos;primaryBorderColor&apos;: &apos;#000000&apos;,
      &apos;lineColor&apos;: &apos;#888888&apos;,
      &apos;tertiaryColor&apos;: &apos;#F5F6F7&apos;,
      &apos;tertiaryBorderColor&apos;: &apos;#F5F6F7&apos;,
      &apos;tertiaryTextColor&apos;: &apos;#00A4FF&apos;
    }
  }
}%%
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;主题二配置解析&lt;/h3&gt;
&lt;p&gt;这个主题使用了更加专业和商务化的色彩搭配：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;primaryColor&lt;/code&gt;: &lt;code&gt;#F0F4FC&lt;/code&gt; (节点背景色 - 淡蓝灰色)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;primaryTextColor&lt;/code&gt;: &lt;code&gt;#1F2329&lt;/code&gt; (节点文字颜色 - 深色文本)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;primaryBorderColor&lt;/code&gt;: &lt;code&gt;#000000&lt;/code&gt; (节点边框色 - 黑色边框)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lineColor&lt;/code&gt;: &lt;code&gt;#888888&lt;/code&gt; (连接线颜色 - 中灰色)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tertiaryColor&lt;/code&gt;: &lt;code&gt;#F5F6F7&lt;/code&gt; (特定节点/分组背景色 - 浅灰色)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tertiaryBorderColor&lt;/code&gt;: &lt;code&gt;#F5F6F7&lt;/code&gt; (特定节点/分组边框色 - 浅灰色)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tertiaryTextColor&lt;/code&gt;: &lt;code&gt;#00A4FF&lt;/code&gt; (特定节点/分组文字颜色 - 亮蓝色)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;使用示例&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/ba26703c749eafb0b5d05fe5334d9b0be8cba345ba4f7a52554dbb0480421ea5.png&quot; alt=&quot;picture-2025-05-28-09-12-04&quot; /&gt;&lt;/p&gt;
&lt;p&gt;代码如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;%%{
  init: {
    &apos;theme&apos;: &apos;base&apos;,
    &apos;themeVariables&apos;: {
      &apos;primaryColor&apos;: &apos;#ffffff&apos;,
      &apos;primaryTextColor&apos;: &apos;#333333&apos;,
      &apos;primaryBorderColor&apos;: &apos;#cccccc&apos;,
      &apos;lineColor&apos;: &apos;#888888&apos;,
      &apos;tertiaryColor&apos;: &apos;#D0E4FF&apos;,
      &apos;tertiaryBorderColor&apos;: &apos;#D0E4FF&apos;,
      &apos;tertiaryTextColor&apos;: &apos;#00A4FF&apos;
    }
  }
}%%
graph TD
    subgraph client_subgraph [客户端]
        C1[客户端1]
        C2[客户端2]
        C3[客户端3]
    end

    subgraph server_subgraph [服务器集群]
        S1[服务器1 （健康）]
        S2[服务器2 （健康）]
        S3[服务器3 （不健康）]
        S4[服务器4 （健康）]
    end

    LB{负载均衡器}

    C1 --&amp;gt; LB
    C2 --&amp;gt; LB
    C3 --&amp;gt; LB

    LB -- 健康检查 --&amp;gt; S1
    LB -- 健康检查 --&amp;gt; S2
    LB -- 健康检查 --&amp;gt; S3
    LB -- 健康检查 --&amp;gt; S4

    LB -- 流量分配 --&amp;gt; S1
    LB -- 流量分配 --&amp;gt; S2
    LB -- 流量分配 --&amp;gt; S4

    %% 箭头样式：深灰色，1.5px宽度
    style S3 fill:#f99
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://mermaid.js.org/config/theming.html&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>如何在 Astro 中设置 A/B 测试（译）</title><link>https://nexmoe.com/zh/posts/ab-testing-in-astro</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/ab-testing-in-astro</guid><pubDate>Thu, 27 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A/B 测试可以帮助你通过比较变更对关键指标的影响来改进 Astro 应用。为了展示如何设置 A/B 测试，我们将创建一个基本的 Astro 应用，添加 PostHog，创建一个 A/B 测试，并实现其代码。&lt;/p&gt;
&lt;h2&gt;整体实现思路&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;环境准备&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;安装 Node.js（v18+）并初始化 Astro 项目&lt;/li&gt;
&lt;li&gt;创建基础页面结构（标题 + 按钮交互）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;集成分析工具&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;通过 PostHog Web 片段注入 SDK&lt;/li&gt;
&lt;li&gt;创建布局组件统一管理监测代码&lt;/li&gt;
&lt;li&gt;验证事件采集功能&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;定义实验指标&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;捕获按钮点击自定义事件&lt;/li&gt;
&lt;li&gt;配置事件属性关联用户行为&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;创建 A/B 测试实验分组&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在 PostHog 配置多版本实验参数&lt;/li&gt;
&lt;li&gt;设置核心转化指标（按钮点击率）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;实验逻辑实现&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;客户端渲染：实时获取功能标志但存在 UI 闪烁&lt;/li&gt;
&lt;li&gt;服务端渲染：通过 Node SDK 预取标志，提升首屏稳定性&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;分组实现&lt;/h2&gt;
&lt;h3&gt;客户端渲染实现&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;// src/components/posthog.astro
loaded: (posthog) =&amp;gt; {
  posthog.onFeatureFlags(() =&amp;gt; {
    const button = document.querySelector(&apos;.main-button&apos;);
    const variant = posthog.getFeatureFlag(&apos;my-cool-experiment&apos;);
    button.innerText = {
      control: &apos;控制变体&apos;,
      test: &apos;测试变体&apos;
    }[variant] || &apos;默认文案&apos;;
  });
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;实现步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在 PostHog 加载完成后注册功能标志监听&lt;/li&gt;
&lt;li&gt;通过 CSS 选择器获取按钮 DOM 元素&lt;/li&gt;
&lt;li&gt;根据返回的 variant 值动态更新按钮文案&lt;/li&gt;
&lt;li&gt;自动处理标志未生效时的默认状态&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;服务端渲染实现&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;// src/posthog-node.js
export default function PostHogNode() {
  if (!posthogClient) {
    posthogClient = new PostHog(&apos;&amp;lt;ph_key&amp;gt;&apos;, {
      host: &apos;https://us.i.posthog.com&apos;,
      fetch: (url, options) =&amp;gt; fetch(url, { ...options, next: { revalipubDate: 60 } })
    });
  }
  return posthogClient;
}

// pages/index.astro
const distinctId = ctx.cookies.get(&apos;distinct_id&apos;) || crypto.randomUUID();
const variant = await PostHogNode().getFeatureFlag(&apos;my-cool-experiment&apos;, distinctId);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;核心配置：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;创建 Node.js 客户端实例并配置缓存策略&lt;/li&gt;
&lt;li&gt;通过 cookies 或随机生成稳定 distinctId&lt;/li&gt;
&lt;li&gt;服务端预取功能标志状态&lt;/li&gt;
&lt;li&gt;同步设置客户端 distinctId 保持一致性&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;方案对比&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;维度&lt;/th&gt;
&lt;th&gt;客户端渲染&lt;/th&gt;
&lt;th&gt;服务端渲染&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;首屏加载&lt;/td&gt;
&lt;td&gt;存在 UI 闪烁&lt;/td&gt;
&lt;td&gt;无内容抖动&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;数据时效性&lt;/td&gt;
&lt;td&gt;实时更新标志状态&lt;/td&gt;
&lt;td&gt;需要配置缓存刷新策略&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;实现复杂度&lt;/td&gt;
&lt;td&gt;仅需前端逻辑&lt;/td&gt;
&lt;td&gt;需要 Node 环境支持&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SEO 友好性&lt;/td&gt;
&lt;td&gt;客户端状态不影响爬虫&lt;/td&gt;
&lt;td&gt;服务端直出完整内容&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;用户 ID 管理&lt;/td&gt;
&lt;td&gt;依赖浏览器指纹&lt;/td&gt;
&lt;td&gt;可定制 ID 生成策略&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;最佳实践建议：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;营销类实验优先采用客户端方案快速上线&lt;/li&gt;
&lt;li&gt;关键功能改版推荐服务端方案保证稳定性&lt;/li&gt;
&lt;li&gt;结合&lt;code&gt;getFeatureFlag&lt;/code&gt;+&lt;code&gt;onFeatureFlags&lt;/code&gt;实现混合渲染&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1. 创建 Astro 应用&lt;/h2&gt;
&lt;p&gt;首先，确保已安装 &lt;a href=&quot;https://nodejs.dev/en/learn/how-to-install-nodejs/&quot;&gt;Node.js&lt;/a&gt;（版本 18.0 或更新）。然后，创建一个新的 Astro 应用：&lt;/p&gt;
&lt;p&gt;终端&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm create astro@latest
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在命令行中提示时，命名你的新项目目录（我们选择 &lt;code&gt;astro-ab-test&lt;/code&gt;），选择 &lt;code&gt;Empty&lt;/code&gt; 作为新项目，选择 &lt;code&gt;No&lt;/code&gt; 使用 TypeScript，安装依赖项，并选择 &lt;code&gt;No&lt;/code&gt; 创建 git 仓库。&lt;/p&gt;
&lt;p&gt;接下来，将 &lt;code&gt;src/pages/index.astro&lt;/code&gt; 中的代码替换为一个简单的标题和按钮：&lt;/p&gt;
&lt;p&gt;index.astro&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---


---
&amp;lt;html lang=&quot;en&quot;&amp;gt;
    &amp;lt;head&amp;gt;
        &amp;lt;meta charset=&quot;utf-8&quot; /&amp;gt;
        &amp;lt;link rel=&quot;icon&quot; type=&quot;image/svg+xml&quot; href=&quot;https://nexmoe.com/favicon.svg&quot; /&amp;gt;
        &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot; /&amp;gt;
        &amp;lt;meta name=&quot;generator&quot; content={Astro.generator} /&amp;gt;
        &amp;lt;title&amp;gt;Astro&amp;lt;/title&amp;gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;
        &amp;lt;h1&amp;gt;Astro A/B 测试&amp;lt;/h1&amp;gt;
        &amp;lt;button class=&quot;main-button&quot;&amp;gt;点击我！&amp;lt;/button&amp;gt;
    &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;运行 &lt;code&gt;npm run dev&lt;/code&gt; 并导航到 http://localhost:4321 查看你的应用。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dmukukwp6/image/upload/v1710055416/posthog.com/contents/images/tutorials/astro-ab-tests/basic-app.png&quot; alt=&quot;基本 Astro 应用&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;2. 在应用中添加 PostHog&lt;/h2&gt;
&lt;p&gt;应用设置完成后，是时候安装并设置 PostHog 了。如果你没有 PostHog 实例，可以 &lt;a href=&quot;https://us.posthog.com/signup&quot;&gt;免费注册&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;完成后，回到你的 Astro 项目，在 &lt;code&gt;src&lt;/code&gt; 文件夹中创建一个新的 &lt;code&gt;components&lt;/code&gt; 文件夹。在这个文件夹中，创建一个 &lt;code&gt;posthog.astro&lt;/code&gt; 文件&lt;/p&gt;
&lt;p&gt;终端&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ./src
mkdir components
cd ./components
touch posthog.astro
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在这个文件中，添加你的 &lt;code&gt;Web 片段&lt;/code&gt;，你可以在 &lt;a href=&quot;https://us.posthog.com/settings/project#snippet&quot;&gt;项目设置&lt;/a&gt; 中找到。&lt;/p&gt;
&lt;p&gt;posthog.astro&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---


---
&amp;lt;script&amp;gt;
  !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(&quot;.&quot;);2==o.length&amp;amp;&amp;amp;(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement(&quot;script&quot;)).type=&quot;text/javascript&quot;,p.crossOrigin=&quot;anonymous&quot;,p.async=!0,p.src=s.api_host+&quot;/static/array.js&quot;,(r=t.getElementsByTagName(&quot;script&quot;)[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a=&quot;posthog&quot;,u.people=u.people||[],u.toString=function(t){var e=&quot;posthog&quot;;return&quot;posthog&quot;!==a&amp;amp;&amp;amp;(e+=&quot;.&quot;+a),t||(e+=&quot; (stub)&quot;),e},u.people.toString=function(){return u.toString(1)+&quot;.people (stub)&quot;},o=&quot;capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys getNextSurveyStep onSessionId&quot;.split(&quot; &quot;),n=0;n&amp;lt;o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
  posthog.init(
    &apos;&amp;lt;ph_project_api_key&amp;gt;&apos;,
    {
      api_host:&apos;https://us.i.posthog.com&apos;,
    }
  )
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;下一步是创建一个 &lt;a href=&quot;https://docs.astro.build/en/core-concepts/layouts/&quot;&gt;布局&lt;/a&gt;，我们将在其中使用 &lt;code&gt;posthog.astro&lt;/code&gt;。在 &lt;code&gt;src&lt;/code&gt; 中创建一个新的 &lt;code&gt;layouts&lt;/code&gt; 文件夹，然后创建一个新文件 &lt;code&gt;Layout.astro&lt;/code&gt;：&lt;/p&gt;
&lt;p&gt;终端&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd .. &amp;amp;&amp;amp; cd .. # 如果你仍在 src/components/posthog.astro，则返回基础目录
cd ./src
mkdir layouts
cd ./layouts
touch Layout.astro
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将以下代码添加到 &lt;code&gt;Layout.astro&lt;/code&gt;：&lt;/p&gt;
&lt;p&gt;Layout.astro&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
import PostHog from &apos;../components/posthog.astro&apos;
---
&amp;lt;head&amp;gt;
    &amp;lt;PostHog /&amp;gt;
&amp;lt;/head&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后，更新 &lt;code&gt;index.astro&lt;/code&gt; 以使用新的布局：&lt;/p&gt;
&lt;p&gt;index.astro&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
import Layout from &apos;../layouts/Layout.astro&apos;;
---
&amp;lt;Layout&amp;gt;
    &amp;lt;html lang=&quot;en&quot;&amp;gt;
        &amp;lt;head&amp;gt;
            &amp;lt;meta charset=&quot;utf-8&quot; /&amp;gt;
            &amp;lt;link rel=&quot;icon&quot; type=&quot;image/svg+xml&quot; href=&quot;https://nexmoe.com/favicon.svg&quot; /&amp;gt;
            &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot; /&amp;gt;
            &amp;lt;meta name=&quot;generator&quot; content={Astro.generator} /&amp;gt;
            &amp;lt;title&amp;gt;Astro&amp;lt;/title&amp;gt;
        &amp;lt;/head&amp;gt;
        &amp;lt;body&amp;gt;
            &amp;lt;h1&amp;gt;Astro A/B 测试&amp;lt;/h1&amp;gt;
            &amp;lt;button class=&quot;main-button&quot;&amp;gt;点击我！&amp;lt;/button&amp;gt;
        &amp;lt;/body&amp;gt;
    &amp;lt;/html&amp;gt;
&amp;lt;/Layout&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;完成后，重新加载你的应用并点击按钮几次。你应该会在 &lt;a href=&quot;https://us.posthog.com/events&quot;&gt;PostHog 事件探索器&lt;/a&gt; 中看到事件。&lt;/p&gt;
&lt;h2&gt;3. 捕获自定义事件&lt;/h2&gt;
&lt;p&gt;在 PostHog 中设置 A/B 测试的第一步是设置目标指标。我们将使用按钮的点击次数作为目标。&lt;/p&gt;
&lt;p&gt;为了测量这一点，我们在按钮被点击时 &lt;a href=&quot;https://posthog.com/docs/product-analytics/capture-events&quot;&gt;捕获自定义事件&lt;/a&gt; &lt;code&gt;home_button_clicked&lt;/code&gt;。为此，更新 &lt;code&gt;posthog.astro&lt;/code&gt; 中的代码，添加一个 &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; 并在按钮被点击时调用 &lt;code&gt;posthog.capture()&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;index.astro&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
import Layout from &apos;../layouts/Layout.astro&apos;;
---
&amp;lt;Layout&amp;gt;
    &amp;lt;html lang=&quot;en&quot;&amp;gt;
        &amp;lt;head&amp;gt;
            &amp;lt;meta charset=&quot;utf-8&quot; /&amp;gt;
            &amp;lt;link rel=&quot;icon&quot; type=&quot;image/svg+xml&quot; href=&quot;https://nexmoe.com/favicon.svg&quot; /&amp;gt;
            &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot; /&amp;gt;
            &amp;lt;meta name=&quot;generator&quot; content={Astro.generator} /&amp;gt;
            &amp;lt;title&amp;gt;Astro&amp;lt;/title&amp;gt;
        &amp;lt;/head&amp;gt;
        &amp;lt;body&amp;gt;
            &amp;lt;h1&amp;gt;Astro A/B 测试&amp;lt;/h1&amp;gt;
            &amp;lt;button class=&quot;main-button&quot;&amp;gt;点击我！&amp;lt;/button&amp;gt;


            &amp;lt;script&amp;gt;
                const button = document.querySelector(&apos;.main-button&apos;);
                button.addEventListener(&apos;click&apos;, () =&amp;gt; {
                    window.posthog.capture(&apos;home_button_clicked&apos;)
                });
            &amp;lt;/script&amp;gt;   
        &amp;lt;/body&amp;gt;
    &amp;lt;/html&amp;gt;
&amp;lt;/Layout&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;设置完成后，刷新你的应用并点击按钮几次，以在 PostHog 中看到捕获的事件。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/images/tutorials/astro-ab-tests/events-light.png&quot; alt=&quot;PostHog 中捕获的事件&quot; /&gt;&lt;img src=&quot;https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/images/tutorials/astro-ab-tests/events-dark.png&quot; alt=&quot;PostHog 中捕获的事件&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;4. 在 PostHog 中创建 A/B 测试&lt;/h2&gt;
&lt;p&gt;接下来，转到 &lt;a href=&quot;https://us.posthog.com/experiments&quot;&gt;A/B 测试选项卡&lt;/a&gt; 并通过点击 &lt;strong&gt;新建实验&lt;/strong&gt; 按钮创建一个 A/B 测试。为你的实验添加以下详细信息：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;命名为 &quot;我的酷实验&quot;。&lt;/li&gt;
&lt;li&gt;设置 &quot;功能标志键&quot; 为 &lt;code&gt;my-cool-experiment&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;对所有其他字段使用默认值。&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;保存为草稿&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dmukukwp6/image/upload/Clean_Shot_2025_01_16_at_09_53_57_2x_2b998be1a8.png&quot; alt=&quot;PostHog 中的实验设置&quot; /&gt;&lt;img src=&quot;https://res.cloudinary.com/dmukukwp6/image/upload/Clean_Shot_2025_01_16_at_09_53_32_2x_0b8f1da910.png&quot; alt=&quot;PostHog 中的实验设置&quot; /&gt;&lt;/p&gt;
&lt;p&gt;创建完成后，将主要指标设置为 &lt;code&gt;home_button_clicked&lt;/code&gt; 的趋势，然后点击 &lt;strong&gt;启动&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;5. 实现 A/B 测试代码&lt;/h2&gt;
&lt;p&gt;在实现我们的实验代码时，有两个选项：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;客户端渲染&lt;/li&gt;
&lt;li&gt;服务器端渲染&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我们将展示如何实现这两种方式。&lt;/p&gt;
&lt;h3&gt;客户端渲染&lt;/h3&gt;
&lt;p&gt;为了实现 A/B 测试，我们使用 &lt;a href=&quot;https://posthog.com/docs/libraries/js/features#ensuring-flags-are-loaded-before-usage&quot;&gt;&lt;code&gt;posthog.onFeatureFlags&lt;/code&gt;&lt;/a&gt; 回调来根据用户是否在实验的 &lt;code&gt;control&lt;/code&gt; 或 &lt;code&gt;test&lt;/code&gt; 变体中更新按钮文本。&lt;/p&gt;
&lt;p&gt;更新 &lt;code&gt;/components/posthog.astro&lt;/code&gt; 中的代码，在 PostHog 的 &lt;code&gt;loaded&lt;/code&gt; 回调中实现 &lt;code&gt;posthog.onFeatureFlags&lt;/code&gt; 代码：&lt;/p&gt;
&lt;p&gt;posthog.astro&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---


---
&amp;lt;script&amp;gt;
  !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(&quot;.&quot;);2==o.length&amp;amp;&amp;amp;(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement(&quot;script&quot;)).type=&quot;text/javascript&quot;,p.crossOrigin=&quot;anonymous&quot;,p.async=!0,p.src=s.api_host+&quot;/static/array.js&quot;,(r=t.getElementsByTagName(&quot;script&quot;)[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a=&quot;posthog&quot;,u.people=u.people||[],u.toString=function(t){var e=&quot;posthog&quot;;return&quot;posthog&quot;!==a&amp;amp;&amp;amp;(e+=&quot;.&quot;+a),t||(e+=&quot; (stub)&quot;),e},u.people.toString=function(){return u.toString(1)+&quot;.people (stub)&quot;},o=&quot;capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys getNextSurveyStep onSessionId&quot;.split(&quot; &quot;),n=0;n&amp;lt;o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
  posthog.init(
    &apos;&amp;lt;ph_project_api_key&amp;gt;&apos;,
    {
      api_host:&apos;https://us.i.posthog.com&apos;,
      loaded: (posthog) =&amp;gt; {
        posthog.onFeatureFlags(() =&amp;gt; {
          const button = document.querySelector(&apos;.main-button&apos;);
          if (posthog.getFeatureFlag(&apos;my-cool-experiment&apos;) === &apos;control&apos;) {
            button.innerText = &apos;控制变体&apos;;
          } else if (posthog.getFeatureFlag(&apos;my-cool-experiment&apos;) === &apos;test&apos;) {
            button.innerText = &apos;测试变体&apos;;
          }
        });
      }
    }
  )
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;现在如果你刷新你的应用，你应该会看到按钮文本更新为 &lt;code&gt;控制变体&lt;/code&gt; 或 &lt;code&gt;测试变体&lt;/code&gt;。用户会自动分配到两者之一，PostHog 继续跟踪按钮点击，你可以在 PostHog 中查看 A/B 测试的结果。&lt;/p&gt;
&lt;h3&gt;服务器端渲染&lt;/h3&gt;
&lt;p&gt;注意，当你刷新页面时，按钮文本会在 &lt;code&gt;点击我！&lt;/code&gt; 和 &lt;code&gt;控制/测试变体&lt;/code&gt; 之间闪烁。这是因为 PostHog 加载并发出功能标志请求需要时间。&lt;/p&gt;
&lt;p&gt;服务器端渲染是一种避免这种情况的方法。这种方式在客户端页面加载之前获取功能标志。&lt;/p&gt;
&lt;p&gt;要设置这个，我们必须安装并使用 &lt;a href=&quot;https://posthog.com/docs/libraries/node&quot;&gt;PostHog 的 Node 库&lt;/a&gt;（因为我们正在发出服务器端请求）。&lt;/p&gt;
&lt;p&gt;终端&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm install posthog-node
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 &lt;code&gt;src&lt;/code&gt; 文件夹中，创建一个 &lt;code&gt;posthog-node.js&lt;/code&gt; 文件。这是我们设置代码以创建 PostHog Node 客户端的地方。你可以在 &lt;a href=&quot;https://us.posthog.com/project/settings&quot;&gt;项目设置&lt;/a&gt; 中找到你的 API 密钥和实例地址。&lt;/p&gt;
&lt;p&gt;src/posthog-node.js&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import { PostHog } from &apos;posthog-node&apos;;


let posthogClient = null;


export default function PostHogNode() {
  if (!posthogClient) {
    posthogClient = new PostHog(&apos;&amp;lt;ph_project_api_key&amp;gt;&apos;, {
      host: &apos;https://us.i.posthog.com&apos;,
    });
  }
  return posthogClient;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接下来，我们将 &lt;code&gt;posthog-node.js&lt;/code&gt; 导入 &lt;code&gt;pages/index.astro&lt;/code&gt;。然后我们使用它来获取功能标志并更新按钮文本：&lt;/p&gt;
&lt;p&gt;index.astro&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
import Layout from &apos;../layouts/Layout.astro&apos;;
import PostHogNode from &apos;../posthog-node.js&apos;;


let buttonText = &apos;无变体&apos;
try {
  const distinctId = &apos;placeholder-user-id&apos;
  const enabledVariant = await PostHogNode().getFeatureFlag(&apos;my-cool-experiment&apos;, distinctId);
  if (enabledVariant === &apos;control&apos;) {
        buttonText = &apos;控制变体&apos;;
    } else if (enabledVariant === &apos;test&apos;) {
        buttonText = &apos;测试变体&apos;;
    }
} catch (error) {
  buttonText = &apos;错误&apos;;
}
---
&amp;lt;Layout&amp;gt;
    &amp;lt;html lang=&quot;en&quot;&amp;gt;
        &amp;lt;head&amp;gt;
            &amp;lt;meta charset=&quot;utf-8&quot; /&amp;gt;
            &amp;lt;link rel=&quot;icon&quot; type=&quot;image/svg+xml&quot; href=&quot;https://nexmoe.com/favicon.svg&quot; /&amp;gt;
            &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot; /&amp;gt;
            &amp;lt;meta name=&quot;generator&quot; content={Astro.generator} /&amp;gt;
            &amp;lt;title&amp;gt;Astro&amp;lt;/title&amp;gt;
        &amp;lt;/head&amp;gt;
        &amp;lt;body&amp;gt;
            &amp;lt;h1&amp;gt;Astro A/B 测试&amp;lt;/h1&amp;gt;
            &amp;lt;button class=&quot;main-button&quot;&amp;gt;{buttonText}&amp;lt;/button&amp;gt;


            &amp;lt;script&amp;gt;
                const button = document.querySelector(&apos;.main-button&apos;);
                button.addEventListener(&apos;click&apos;, () =&amp;gt; {
                    window.posthog.capture(&apos;home_button_clicked&apos;)
                });
        &amp;lt;/script&amp;gt;   
        &amp;lt;/body&amp;gt;
    &amp;lt;/html&amp;gt;
&amp;lt;/Layout&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后，你可以移除我们在 &lt;code&gt;posthog.astro&lt;/code&gt; 中添加的用于客户端渲染功能标志的代码：&lt;/p&gt;
&lt;p&gt;posthog.astro&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---


---
&amp;lt;script&amp;gt;
  !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(&quot;.&quot;);2==o.length&amp;amp;&amp;amp;(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement(&quot;script&quot;)).type=&quot;text/javascript&quot;,p.crossOrigin=&quot;anonymous&quot;,p.async=!0,p.src=s.api_host+&quot;/static/array.js&quot;,(r=t.getElementsByTagName(&quot;script&quot;)[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a=&quot;posthog&quot;,u.people=u.people||[],u.toString=function(t){var e=&quot;posthog&quot;;return&quot;posthog&quot;!==a&amp;amp;&amp;amp;(e+=&quot;.&quot;+a),t||(e+=&quot; (stub)&quot;),e},u.people.toString=function(){return u.toString(1)+&quot;.people (stub)&quot;},o=&quot;capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys getNextSurveyStep onSessionId&quot;.split(&quot; &quot;),n&lt;/code&gt;&lt;/pre&gt;
</content:encoded><category>post</category></item><item><title>20 万行代码：我们如何构建和维护大规模 AI 原型系统</title><link>https://nexmoe.com/zh/post/20w-code-prototype-system</link><guid isPermaLink="true">https://nexmoe.com/zh/post/20w-code-prototype-system</guid><pubDate>Wed, 26 Mar 2025 19:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;项目简介&lt;/h2&gt;
&lt;p&gt;在三个月的时间里，我们从零开始搭建了一个包含 20 万行代码的 AI 原型系统。这是一个非常庞大的项目，就像建造一座大楼一样，需要科学的规划和管理。为了让这个系统易于维护和扩展，我们采用了一种叫做 monorepo（单一代码仓库）的项目管理方式，并特别注重可复用工具包的设计。这篇文档将用通俗易懂的语言，为大家介绍这个项目是如何组织和管理的。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/e875d213df5aacb2df17da90ee1736d0fb312058967a678c11bc97082b5dcd53.png&quot; alt=&quot;picture-2025-03-26-19-10-13&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;什么是 monorepo？&lt;/h2&gt;
&lt;p&gt;monorepo 就像是一个巨大的收纳箱，我们把项目中所有的代码都整整齐齐地放在这个箱子里。想象一下你有很多玩具，如果把它们随意放在房间的各个角落，找起来会很麻烦。但如果你有一个大收纳箱，给每个玩具都安排一个固定的位置，那么无论是找玩具还是收拾玩具都会变得很容易。&lt;/p&gt;
&lt;p&gt;monorepo 的好处有：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;代码共享更方便：就像全家人共用一个工具箱，需要用工具的时候直接去工具箱里拿就行了&lt;/li&gt;
&lt;li&gt;版本管理更统一：就像统一采购文具，避免每个人买的东西不一样导致混乱&lt;/li&gt;
&lt;li&gt;团队协作更顺畅：就像在同一个工作室工作，大家可以随时交流和互相帮助&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;项目是如何组织的？&lt;/h2&gt;
&lt;p&gt;我们的项目就像一个精心设计的大楼，每一层都有它特定的功能：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;one-prototype/
├── apps/                 # 各个独立应用的代码
│   ├── base/            # 独立的产品，包含服务部署、云实例等
│   ├── course/          # 高校场景相关的独立产品
│   ├── docs/            # UI 组件的文档
│   ├── idcloud/         # IDC 相关的独立产品
│   └── web/             # 独立的测试网页应用
├── packages/            # 可以共享的代码包
│   ├── eslint-config/   # 代码规范配置
│   ├── hooks/           # React 钩子函数
│   ├── request/         # 网络请求工具
│   ├── track/           # 用户行为跟踪工具
│   ├── typescript-config/# TypeScript 配置
│   ├── ui/              # 通用界面组件
│   └── zod/             # 数据验证工具
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;共享工具包详解&lt;/h2&gt;
&lt;p&gt;在 packages 目录下，我们精心打造了一系列可复用的工具包，它们就像是一个个专业的工具箱，每个工具箱都有其特定的用途。让我们深入了解这些工具包的特点和作用。&lt;/p&gt;
&lt;h3&gt;UI 组件库：标准化装修工具包&lt;/h3&gt;
&lt;p&gt;就像建筑工地的标准化部件，我们的 UI 组件库提供了一套完整的界面解决方案。它基于 Tailwind CSS 实现灵活的样式定制，采用 TypeScript 确保类型安全，并遵循 Radix UI 的无障碍设计原则。组件的高度可配置性使其能够支持多种场景的复用。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/32eb33fddbbbd0cb7fed24315e02361233322e3a008c715db64fc6b218be4372.png&quot; alt=&quot;picture-2025-03-26-19-09-08&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在开发效率方面，UI 组件库通过统一的设计语言和交互模式，为开发者提供了完善的组件文档和使用示例。快速的开发调试和主题预览功能，加上跨产品的复用能力，大大减少了重复开发的工作量。标准化的组件接口设计也让集成变得异常简单。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/ddd5185a0a8d44b5d8f2c5d6bf55cca5d83f7f55a595b580967f28d66ada1329.png&quot; alt=&quot;picture-2025-03-26-19-03-10&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我们的文档系统基于 Storybook 构建，提供了交互式的组件展示和调试环境。开发者可以实时预览组件的外观和行为，动态修改组件属性，并在多种设备和主题下进行预览。规范的文档编写流程确保了组件用法、API 说明和最佳实践的完整记录。这种高效的开发工作流让组件的独立开发和测试变得轻松自如。&lt;/p&gt;
&lt;h3&gt;Zod 数据验证工具包：数据检验员&lt;/h3&gt;
&lt;p&gt;作为项目中的数据质检员，Zod 数据验证工具包严格把控着数据的格式和类型。它不仅能确保数据的正确性和安全性，还提供了强大的类型推导功能。特别是在与 React Hook Form 配合使用时，它能提供类型安全的表单验证，自动推导表单字段类型，在运行时确保数据安全，并提供友好的错误提示。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/72dafb522fadeeacf9711e8eb25b420ca9367543ce905ce74c78db39b1c361d3.png&quot; alt=&quot;picture-2025-03-26-19-11-14&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;用户行为跟踪工具包：数据记录员&lt;/h3&gt;
&lt;p&gt;track 工具包就像是一个细心的记录员，它统一封装了多个主流的数据统计服务，包括 Umami、百度统计和 Microsoft Clarity 等。通过标准化的事件跟踪方法和自动的页面访问统计，它为产品提供了全面的数据分析能力。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/10f4da905cfe8a567bcd304fab0dd23e52e5186c8b7caf2ab732c3ec072fe7b0.png&quot; alt=&quot;picture-2025-03-26-19-03-47&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这个工具包的一大特色是其多平台数据统计集成能力。它不仅支持开源的 Umami 统计，还能无缝对接百度统计服务和 Microsoft Clarity。开发者可以根据具体场景灵活切换不同的统计服务。在使用体验上，完善的 TypeScript 类型支持、自动的错误处理机制和丰富的调试信息，都让数据追踪变得轻松而可靠。&lt;/p&gt;
&lt;h3&gt;代码质量保障工具包：ESLint 和 TypeScript 的完美配合&lt;/h3&gt;
&lt;p&gt;就像建筑工地需要全方位的质量保障体系，我们的代码质量保障工具包通过 ESLint 和 TypeScript 的完美配合，为项目提供了全面的代码质量和类型安全保障。ESLint 负责统一团队代码风格，自动发现并修复代码中的潜在问题，同时实施最佳实践确保代码质量始终保持高水平。它与编辑器的紧密集成让开发者能实时获得代码改进建议。&lt;/p&gt;
&lt;p&gt;TypeScript 则通过其强大的类型系统，在编译时就能捕获潜在错误。智能的代码提示和优秀的重构支持大大提升了开发效率，自动生成的类型声明确保了 API 使用的准确性。这两个工具的协同工作创造了一个完整的开发工具链，让团队协作更加顺畅，代码质量更有保障。&lt;/p&gt;
&lt;h3&gt;网络请求工具包：通信专家&lt;/h3&gt;
&lt;p&gt;request 工具包就像是一个专业的快递公司：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;处理所有与服务器的数据交互&lt;/li&gt;
&lt;li&gt;统一管理 API 请求&lt;/li&gt;
&lt;li&gt;提供错误处理和重试机制&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;工具包的协同工作&lt;/h2&gt;
&lt;p&gt;这些工具包并不是独立运作的，它们之间相互配合，形成了一个完整的开发生态系统。UI 组件库借助 TypeScript 配置确保类型安全，网络请求工具与数据验证工具密切配合确保数据正确性，而用户行为跟踪则与 React Hooks 结合提供更好的用户体验。这种协同工作方式让整个系统更加稳定可靠。&lt;/p&gt;
&lt;h2&gt;项目管理工具&lt;/h2&gt;
&lt;p&gt;为了更好地管理这个大型项目，我们使用了两个主要工具：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;pnpm&lt;/strong&gt;：一个高效的包管理工具，它帮我们管理项目中用到的各种工具和库&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Turborepo&lt;/strong&gt;：专门用来管理大型项目的工具，让整个项目运行得更流畅&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;通过这样科学的项目组织和管理方式，我们成功地在三个月内构建了这个包含 20 万行代码的 AI 原型系统。这种管理方式不仅让开发过程更加高效，也让后期的维护和升级变得更加容易。特别是通过精心设计的工具包体系，我们大大提高了代码的复用率，减少了重复开发的工作量。对于想要了解大型项目管理的朋友来说，这个项目的组织方式提供了一个很好的参考。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>一个月，100 周活。想捡起来的一个项目</title><link>https://nexmoe.com/zh/%E4%BA%A7%E5%93%81/os1-ai-teacher</link><guid isPermaLink="true">https://nexmoe.com/zh/%E4%BA%A7%E5%93%81/os1-ai-teacher</guid><pubDate>Mon, 24 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;现在是凌晨 1 点，睡不着，所以起来写点东西。&lt;/p&gt;
&lt;p&gt;最近一直想捡起来一个项目。这是我在 23 年 1 月份做的一个 AI 陪伴领域的小项目。&lt;/p&gt;
&lt;p&gt;在开始介绍我的项目之前，咱们先从市面上流行的 AI 陪伴模式讲起，这也是我当初思考这个项目的起点。&lt;/p&gt;
&lt;h2&gt;至今我也不看好的聊天模式&lt;/h2&gt;
&lt;p&gt;23 年 1 月，市面上有很多 AI 陪伴相关的产品。大多采用聊天的方式，我一直觉得这种方式存在根本性的问题。正是这种思考，让我决定完全不走这条路，而是要做一个不一样的 AI 陪伴系统。&lt;/p&gt;
&lt;p&gt;我想做一个不一样的。&lt;/p&gt;
&lt;p&gt;借用王登科的话来解释一下聊天方式 AI 陪伴的问题：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;我想先说一下我认为之前的方式的问题，即人和 AI 角色直接聊天的那种交互方式，这是一种最自然，最容易想到的交互，但在现有的技术下，它有一个最致命的问题，就是使用越多，效果越差。用户聊的越多，投入的情感越多，积累的信息也越多，上下文也会更多，因此成本就越高，而模型也一定会变得更笨，虽然通过各种类 RAG 的方式可以解决部分「记忆」问题，但这都不是本质上去解决问题，这个感觉挺让人难过的，它甚至有一点反网络效应——新用户可能体验还好，重度用户可能被迫要接受越来越差的效果。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;正是基于对这些问题的深入思考，我开始构思一个完全不同的 AI 陪伴方案。&lt;/p&gt;
&lt;h2&gt;基本介绍&lt;/h2&gt;
&lt;p&gt;《网络自习室，赛博伴学师。伴学 OS1》&lt;/p&gt;
&lt;p&gt;这是一个基于 AI 的学习陪伴系统，旨在通过自动化的打卡管理和数据统计，帮助用户建立良好的学习习惯。主打给用户在背单词、阅读、运动等自律活动后提供及时的正向反馈以及充足的情绪价值。&lt;/p&gt;
&lt;p&gt;那时，我洞察到一个普遍存在的问题——当人们完成一些自律的活动后，如果分享给朋友、同学，很容易得到一些冷嘲热讽的反馈。这样的负面反馈会影响人们的积极性。&lt;/p&gt;
&lt;p&gt;正值 AI 领域蓬勃发展之际，我想到了一个点子：能不能做一个 AI 陪伴系统，通过及时的正向反馈来帮助用户建立良好的学习习惯，从而增强用户的积极性。&lt;/p&gt;
&lt;p&gt;大家都看看图也就知道是干什么的。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/bbc91809a3ff98ebb30d64169101a09c22343ab1209a88a7dcf192dac209cac1.png&quot; alt=&quot;picture-2025-02-24-00-48-52&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/3c1bcb909ed59fd9492cf13a1f44d7d3051a4a63d617a4591a34c175a4ba754c.png&quot; alt=&quot;picture-2025-02-24-00-49-02&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;内测&lt;/h2&gt;
&lt;p&gt;起初我没有做任何发布，只是在我之前运营的二十个人的打卡群里进行内测。第一版仅实现了打卡识别和记录功能。我没有接入 GPT 这种大语言模型来提供更定制化的反馈，而是通过简单的关键词匹配来给出反馈。比如用户打卡了背单词，AI 就会给出一句话：「恭喜至繁至简打卡成功！本周 1 次/本月 1 次/共 1 次」。&lt;/p&gt;
&lt;p&gt;注：至繁至简是我当时的 QQ 网名。&lt;/p&gt;
&lt;p&gt;反响出乎意料地好，原本稀稀碎碎的打卡消息变得非常活跃。大家都积极分享自己的打卡内容，AI 会自动识别内容并给出正向反馈。用户们都很喜欢这种互动方式。&lt;/p&gt;
&lt;p&gt;看到这样的效果，我信心倍增，随即推出了排行榜功能，并决定开始进行更大范围的宣传推广。&lt;/p&gt;
&lt;h2&gt;宣传&lt;/h2&gt;
&lt;p&gt;由于产品定位非常清晰，我很容易就找到了目标用户群体。&lt;/p&gt;
&lt;p&gt;我选择在酷安相关产品的评论区进行宣传。虽然我的营销水平并不高，但我用一张图配上简单的产品介绍就开始了推广。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/131bfa244c2b65a0456081ced22ffbe77f2d9d2c8297af0d040ef3212854153d.png&quot; alt=&quot;picture-2025-02-24-01-05-19&quot; /&gt;&lt;/p&gt;
&lt;p&gt;没想到，这个简单的宣传就引来了很多人的关注。短短一个月内，群成员从 20 人增长到将近 300 人。&lt;/p&gt;
&lt;p&gt;当时 Cursor 还未出现的环境下，这个产品的开发成本并不高，只花了几天时间。同时由于我每天都要花很多时间背单词，宣传营销的投入也很有限。&lt;/p&gt;
&lt;p&gt;即便在这些条件的限制下，产品仍然取得了不错的效果，这证明了这类需求的确存在。&lt;/p&gt;
&lt;p&gt;伴学 OS1 确实解决了学习陪伴这个痛点，用户的积极反馈让我看到了这个产品的潜力。为了让产品更加完整，我还特意设计了一个富有寓意的 logo&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/a29a17ba5ed2ed67de564d4145c741a6a87595f884141695738cfd5de2648bdf.png&quot; alt=&quot;picture-2025-02-24-01-10-40&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这个 logo 来自著名科幻电影《Her》。这部电影给了我很多启发，它讲述了一个人和人工智能相爱的故事。我觉得电影的主题与产品理念非常契合，所以选择了这个形象作为 logo。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;《她》是讲述在不远的未来人与人工智能相爱的科幻爱情电影。主人公西奥多（华金·菲尼克斯 Joaquin Phoenix 饰）是一位信件撰写人，心思细腻而深邃，能写出最感人肺腑的信件。他刚结束与妻子凯瑟琳（鲁妮·玛拉 Rooney Mara 饰）的婚姻，还没走出心碎的阴影。一次偶然机会让他接触到最新的人工智能系统 OS1，它的化身萨曼莎（斯嘉丽·约翰逊 Scarlett Johansson 声）拥有迷人的声线，温柔体贴而又幽默风趣。西奥多与萨曼莎很快发现他们如此的投缘，而且存在双向的需求与欲望，人机友谊最终发展成为一段不被世俗理解的奇异爱情......
《她》主要在中国上海取景，由美国导演斯派克·琼斯历时 3 年筹备拍摄。电影融合了新奇的科幻设定与传统的浪漫气息，真人与虚拟共同谱写温暖治愈的恋曲。导演表示，这是一部探讨“亲密关系”的电影，因人类都渴望亲密关系，但是又对它害怕和抗拒；科技为沟通提供了便利，但也让人们躲在它后面，逃避真正的情感接触。《她》直接脱去科技冰冷的面纱，赋予它高度人性化和活色生香的情趣，让一段人机对话变成情人絮语。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;但是，为什么项目停止维护了？&lt;/h2&gt;
&lt;p&gt;最主要的原因是 QQ 平台的限制。当时我使用 koishi 机器人框架开发了这个产品，注册了专门的 QQ 小号作为机器人。但这并不是正规操作，因为 QQ 并不开放机器人接口。这导致机器人账号随时可能被封号、强制下线，造成服务中断。&lt;/p&gt;
&lt;p&gt;之所以选择 QQ 平台，主要是因为我最喜欢的背单词软件《不背单词》只支持 QQ、微信分享。虽然通过这个项目，我验证了这类需求的确存在，但遗憾的是没能找到一个可持续的技术解决方案。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/55ded4f35e2a1338acee409f3fcfda3d88f5b7089ed1de13899c2008b3701998.png&quot; alt=&quot;picture-2025-02-24-01-14-54&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;但是，需求仍然存在&lt;/h2&gt;
&lt;p&gt;这个需求至今仍然存在。在学习过程中，我们常常难以获得像 AI 那样从更高视角给予的人文关怀。背单词这样的长期坚持需要持续的正向反馈，但我们往往难以及时获得这种支持。&lt;/p&gt;
&lt;p&gt;正因如此，我一直在思考如何重启这个项目。不过这一次，我不想再依赖 QQ 平台，而是希望找到一个更开放、更稳定的平台作为基础。&lt;/p&gt;
&lt;p&gt;在用户体验方面，我始终坚持一个理念：用户完成背单词后，应该能够便捷地分享他们的学习成果。之前在 QQ 平台上，用户只需要将分享对象改为伴学 OS1 的专属群，就能立即收到机器人的正向反馈。这种简单的交互方式至今仍是我能想到的最优解决方案——路径最短，压力最小。&lt;/p&gt;
&lt;p&gt;我也考虑过采用截图上传的方式，但很快发现这样会让用户体验变得复杂。用户需要经过&quot;截图-&amp;gt;打开软件-&amp;gt;上传&quot;这三个步骤，显著增加了使用门槛。&lt;/p&gt;
&lt;p&gt;因此，我仍在探索更好的解决方案。&lt;/p&gt;
&lt;h2&gt;题外话&lt;/h2&gt;
&lt;h3&gt;当时的核心功能&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;智能打卡系统&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;支持主流英语学习软件的分享内容自动识别打卡&lt;/li&gt;
&lt;li&gt;AI 识别学习内容自动打卡&lt;/li&gt;
&lt;li&gt;支持手动打卡指令&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;数据统计与报告&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;日报：每日 23:59 自动统计当日打卡情况&lt;/li&gt;
&lt;li&gt;周报：每周日 23:59 自动统计本周打卡情况&lt;/li&gt;
&lt;li&gt;月报：每月末 23:59 自动统计本月打卡情况&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;智能提醒系统&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;针对性打卡提醒服务&lt;/li&gt;
&lt;li&gt;基于用户近期活跃度的智能提醒&lt;/li&gt;
&lt;li&gt;定时提醒（22:00 或 23:00）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;激励机制&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;打卡排行榜&lt;/li&gt;
&lt;li&gt;持续打卡激励&lt;/li&gt;
&lt;li&gt;学习社群互动&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;当时的一些截图&lt;/h3&gt;
&lt;p&gt;当时在看西游记原著，所以给自己网名改完了：雾里云&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/3ed7dc8f41959ea0fa837fab3c6e9b1265f187e7283486515013202fb8b6d529.png&quot; alt=&quot;picture-2025-02-24-01-33-27&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/40b49b0da9d7dc60d8d5723f8ad49476953578a51e4e5179498a817e470e733a.png&quot; alt=&quot;picture-2025-02-24-01-33-52&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/c074b45a5202407da3bf6b4de628e1b688460bce13960ad232e815a57e664487.png&quot; alt=&quot;picture-2025-02-24-01-34-13&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/e18205dae26f969904e96baece25db72994d63f493897b9389b4042da99ae8b2.png&quot; alt=&quot;picture-2025-02-24-01-34-30&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;甚至给群每个做了统一的图标&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/c10be97beeb197cdff9a3b5f29a70d03766c1e4ba94b55672404a9e3ce03dd4f.png&quot; alt=&quot;picture-2025-02-24-01-33-16&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>LM Speed - 简单的大模型测速分析工具</title><link>https://nexmoe.com/zh/1Q6ANHS</link><guid isPermaLink="true">https://nexmoe.com/zh/1Q6ANHS</guid><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;传送门：&lt;a href=&quot;https://lmspeed.net&quot;&gt;https://lmspeed.net&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;为 AI 应用开发者提供精准可靠的 OpenAI API 性能测试解决方案，通过多维度的实时数据分析，帮助用户快速定位性能瓶颈，优化模型调用策略。同时提供直观的排行榜功能，让用户能够轻松比较和选择最适合的模型和服务商。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/eba9b5e1e200dd0c5504914243d1d6247eb4a16c2c20f87adfe11244ff9668c7.png&quot; alt=&quot;picture-2025-02-12-20-21-28&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;解决的三大核心痛点&lt;/h2&gt;
&lt;h3&gt;1. 响应质量不透明&lt;/h3&gt;
&lt;p&gt;DeepSeek 官方的 API 不能用？硅基流动的 API 太慢？在选择 LLM API 服务时，开发者经常面临服务质量难以评估的问题。不同服务商的 API 性能差异巨大，且缺乏客观的评估标准。LM Speed 提供标准化的性能测试方案，让您在投入开发前就能准确评估各个 API 的实际表现。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/0ff2ab60e7bf2fb64134565d4d9d82535d0d87db1f568dcdc5465c73b6eadbfa.png&quot; alt=&quot;picture-2025-02-12-20-22-30&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;2. 性能波动难以监控&lt;/h3&gt;
&lt;p&gt;不知道大模型 API 速度如何？不知道供应商靠不靠谱？传统的性能测试工具往往只能提供简单的响应时间数据，无法全面反映 API 的实际性能表现。LM Speed 采用五轮连续压力测试 + 动态流式监控机制通过 tiktoken 进行精确的令牌计算，结合响应时间分析，自动生成最大/最小/平均性能的三维评估图谱，帮助您全面了解 API 的性能特征。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/e92fd7f59ac705341f7bc4e880f7e11d798a40e3a038b9373f9d885f70d997ac.png&quot; alt=&quot;picture-2025-02-12-20-21-55&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;3. 测试结果难以沉淀&lt;/h3&gt;
&lt;p&gt;性能测试数据往往散落各处，难以进行系统性的积累和分析。LM Speed 提供一键式测试报告生成功能，自动整合性能指标、测试环境等关键信息，支持报告导出和团队分享。同时提供历史数据存储和趋势分析，帮助团队建立完整的性能评估体系。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://vscode-markdown.s3.bitiful.net/2dcd9f8c44bc5801624e7b356a3c09ec41ae83c7e6ab51fd2414f5eb4092e983.png&quot; alt=&quot;picture-2025-02-12-20-24-15&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;为用户创造的关键价值&lt;/h2&gt;
&lt;p&gt;数据驱动的决策支持。通过全方位的性能数据分析，帮助您做出更明智的 API 选型决策：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;实时性能洞察&lt;/strong&gt;：TPoS（：每秒令牌数）的实时监控，让您对 API 性能了如指掌。支持多维度数据实时展示，直观把握性能趋势。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全维度评估体系&lt;/strong&gt;：覆盖首字延迟、响应时间、等核心指标，提供最全面的性能画像。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可视化决策支持&lt;/strong&gt;：一键生成专业测试报告，支持多人实时协作，平均节省 80% 决策时间。提供丰富的数据可视化图表，辅助团队决策。&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>LM Speed</title><link>https://nexmoe.com/zh/products/lmspeed</link><guid isPermaLink="true">https://nexmoe.com/zh/products/lmspeed</guid><description>大模型 API 速度测试与排行平台，支持 OpenAI、DeepSeek、硅基流动、腾讯云等服务商，提供实时测速、性能分析、流式结果与自定义端点测试。</description><pubDate>Fri, 14 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20251213_Screenshot%202025-12-13%20at%2011.34.28.BNxfuXC2.png&quot; alt=&quot;LM Speed&quot; /&gt;&lt;/p&gt;&lt;p&gt;大模型 API 速度测试与排行平台，支持 OpenAI、DeepSeek、硅基流动、腾讯云等服务商，提供实时测速、性能分析、流式结果与自定义端点测试。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://lmspeed.net&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://lmspeed.net&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/lmspeed&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://lmspeed.net&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;访问 LM Speed&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20251213_Screenshot%202025-12-13%20at%2011.34.28.BNxfuXC2.png" length="908093" type="image/png"/></item><item><title>即将离开共绩科技</title><link>https://nexmoe.com/zh/posts/%E4%B8%87%E4%B8%87%E6%B2%A1%E6%83%B3%E5%88%B0</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/%E4%B8%87%E4%B8%87%E6%B2%A1%E6%83%B3%E5%88%B0</guid><pubDate>Mon, 27 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;一个重要的决定&lt;/h2&gt;
&lt;p&gt;经过深思熟虑，我决定离开共绩科技。这不是一个轻易的决定，但我觉得是时候了。&lt;/p&gt;
&lt;p&gt;在共绩科技的这段时间里，我学到了很多。从技术到管理，从产品到市场，每一个环节都让我成长。但人生总是需要新的挑战，新的方向。&lt;/p&gt;
&lt;h2&gt;感谢与收获&lt;/h2&gt;
&lt;p&gt;感谢共绩科技给了我这样一个平台。在这里，我见证了公司从初创到发展的过程，参与了多个重要项目的推进。这些经历让我对创业、对技术、对商业有了更深的理解。&lt;/p&gt;
&lt;p&gt;特别感谢那些一起奋斗的同事们。你们的专业精神、创新思维，都让我受益匪浅。每一次讨论、每一次合作，都是宝贵的财富。&lt;/p&gt;
&lt;h2&gt;新的开始&lt;/h2&gt;
&lt;p&gt;离开不是结束，而是新的开始。我会带着在共绩科技学到的经验，继续在技术领域深耕。也许会有新的项目，也许会有新的挑战，但不变的是对技术的热爱和对创新的追求。&lt;/p&gt;
&lt;h2&gt;未来规划&lt;/h2&gt;
&lt;p&gt;接下来，我会专注于几个方向：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;技术研究&lt;/strong&gt;：继续在云计算、AI 等领域探索&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开源贡献&lt;/strong&gt;：参与更多开源项目，回馈社区&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知识分享&lt;/strong&gt;：通过博客、技术文章分享经验&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新项目&lt;/strong&gt;：寻找新的机会和挑战&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;写在最后&lt;/h2&gt;
&lt;p&gt;人生就像一场旅行，每个阶段都有不同的风景。共绩科技是我人生旅途中的重要一站，我会永远珍惜这段经历。&lt;/p&gt;
&lt;p&gt;感谢所有支持我的人，感谢这个平台给我的一切。新的旅程即将开始，我充满期待。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;愿我们都能在各自的道路上发光发热，创造属于自己的精彩。&lt;/em&gt;
贫困，不在于一个人享受的物质水平不高，而在于他的生活面临着很大的压力和不确定性。贫困最可怕的，不是物质的贫乏，而是对人的思想的影响，陷入贫困的思维模式，才是真正的贫困。什么叫压力遗传？压力遗传就是这个人天生就容易对生活中的困难反应过度。他无法考虑什么长远打算，特别容易把注意力集中在短期的事情上。如果你认为一个人受贫困是因为他努力程度不够，你就犯了美国普通人常犯的错误，你就是被「美国梦」这种神话给洗脑了。&lt;/p&gt;
&lt;p&gt;低收入者重视集体，高收入者强调个人。低收入者更愿意依赖集体的力量，更愿意相信依靠；高收入者更愿意靠自己解决问题。基于这种理解，「人脉」这个概念，在现代社会根本就是一个伪命题。「人脉」其实是弱者弄出来的概念。人们幻想高水平的人也是靠今天我帮你一个忙，明天你帮我一个忙这种「人情账」的逻辑办事。想明白这些就会同意，高收入者的独立精神，可能就是更健康的人际关系的基石。要么是真诚的友谊，要么是公平的合作。实在不行干脆就是交易，搞什么「人脉」呢。&lt;/p&gt;
&lt;h3&gt;第四章 霍金的答案&lt;/h3&gt;
&lt;p&gt;90% 的医学研究都是错的。营养学研究结论基本不可信。斯坦福大学预防医学研究中心主任埃尼迪斯在 2005 年发表论文证明这个结论。医学研究中效应微弱，科学家偏见严重。当效应为 10%，偏见达到 30% 时，正确结论概率仅有 20%。研究 1990-2003 年顶级期刊被引用超过 1000 次的 49 篇论文，其中 45 篇声称发现有效药物或疗法，后续验证发现大部分结论无法重复。科学家为发表论文或获得医药公司资助，会无意识寻找支持性证据。&lt;/p&gt;
&lt;p&gt;数量级观念指 10 的多少次方。几倍差异可以忽略，数量级差异才值得考虑。1000 相当于中学生人数，1 万是体育场观众数，10 万是一本书字数，100 万需要数 11 天半，10 亿相当于中国人口。风险判断需要准确理解概率。《经济学人》数据显示美国死亡概率：心脏病 1/467，意外事故 1/1656，自杀 1/8000，噎死 1/100000，被蜜蜂蜇死 1/25000000。血栓基础概率 1/7000，某药增加风险一倍变成 2/7000，但仍是极小概率。家庭托儿所死亡概率是正规托儿所 7 倍，但全美每年死于家庭托儿所的孩子只有十几个，同龄死于交通事故的是 79 个。美国社保基金每年损失 3100 万美元，看似巨大，实际仅占总发放额的 0.004%，系统准确度达 99.996%。数量级思维要求把资源放在最重要的事情上。0.01% 和 0.0001% 差别巨大，但给心理的冲击相同。&lt;/p&gt;
&lt;p&gt;现代医学用安慰剂测试药物真实效果。双盲实验中，安慰剂组病情也会缓解。关节镜膝盖手术美国每年 70 万例，研究发现假手术效果与真手术相同。2014 年综合研究涉及 53 项手术实验，一半手术的假手术与真手术疗效相同，74% 的假手术显示一定效果。手术安慰剂效应比药物更强。品酒专家在不知价格情况下，无法区分 200 美元和 20 美元红酒。使用随机实验判断疗法真正疗效，是现代医学与传统医学的重要区别。想在复杂世界获得确定因果关系非常困难，善用科学方法是防忽悠的最佳办法。&lt;/p&gt;
&lt;h2&gt;别让直觉欺骗你&lt;/h2&gt;
&lt;p&gt;斯坦福大学一份研究报告指出，90% 的医学研究结论是错的。顶级期刊被引用超 1000 次的 49 篇论文，大部分结论都无法复现。&lt;/p&gt;
&lt;p&gt;医学研究尚且如此，我们每天凭直觉做的决策，又有多可靠呢？《万万没想到》这本书，探讨了直觉如何误导我们，以及怎样用科学方法做更好的决策。&lt;/p&gt;
&lt;h3&gt;我们的思维有几个常见缺陷&lt;/h3&gt;
&lt;p&gt;第一个是“小数定律”。我们习惯从极小的样本得出结论。比如，一个新功能上线，数据好两天，就断定它成功了。一个新同事犯了一次错，就被贴上“不靠谱”的标签。这些判断，都是把偶然当成了必然。这是一种思维捷径，但常常导向错误。&lt;/p&gt;
&lt;p&gt;第二个是“赌徒谬误”。我们总觉得一个号码很久没中奖，下次中奖概率就更高。事实是，每次开奖都是独立事件，历史无法预测未来。&lt;/p&gt;
&lt;p&gt;我们对概率的理解也常有偏见。新闻里说，某药物让患病风险“增加一倍”，听起来很吓人。可如果基础患病率只有 1/7000，翻倍后也只是  2/7000。&lt;/p&gt;
&lt;h3&gt;对抗直觉的“刻意练习”&lt;/h3&gt;
&lt;p&gt;直觉不可靠，刻意练习才可靠。并且强调“即时反馈”。&lt;/p&gt;
&lt;p&gt;把一本书看很多遍不等于理解。检验理解的唯一方法是去“测试”：能不能用自己的话把概念讲给别人听？或者用学到的知识解决一个实际问题。&lt;/p&gt;
&lt;p&gt;工作中的任务就是很好的练习。A/B 测试、项目复盘，都是获取反馈的机会。每次犯错和讨论，都能优化我们的思维模型。&lt;/p&gt;
&lt;h3&gt;建立理性的决策框架&lt;/h3&gt;
&lt;p&gt;为了让决策更加理性，还需要建立“数量级”的观念。&lt;/p&gt;
&lt;p&gt;我们对数字的反应常常是情绪化的。亏损 3000 万美元，听起来像一场灾难。但如果这是美国社保基金，那它只占了 0.004%。我们容易被有趣或声音大的问题吸引，而忽略了那些真正重要的问题。&lt;/p&gt;
&lt;p&gt;理性的决策还需要判断“有效性”。我们容易把相关性当成因果性，以为自己的某个举措带来了好结果，但可能只是巧合。&lt;/p&gt;
&lt;p&gt;“安慰剂效应”就是一个例子。研究发现，对某些膝关节镜手术，“假手术”和真手术的效果几乎没差别。很多品酒专家在盲品时，也分不清 200 美元和 20 美元的红酒。&lt;/p&gt;
&lt;p&gt;因此，判断一件事是否有效，必须依靠有对照的科学方法，比如 A/B 测试，而不是靠个案或感觉。&lt;/p&gt;
&lt;h3&gt;从“知道”到“做到”&lt;/h3&gt;
&lt;p&gt;核心信息很简单：大脑为了高效运转，有很多思维捷径。但在处理复杂问题时，这些捷径会失灵。要做出更高质量的决策，我们必须更“刻意”地思考。&lt;/p&gt;
&lt;p&gt;第一，承认我们思维的缺陷，比如从小样本过度推论。
第二，把日常工作看作“刻意练习”，主动寻求高质量的反馈。
第三，建立“数量级”观念和决策框架，把精力聚焦于真正重要的问题。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>回响书摘</title><link>https://nexmoe.com/zh/products/echo-book-notes</link><guid isPermaLink="true">https://nexmoe.com/zh/products/echo-book-notes</guid><description>你的想法、笔记，不再被遗忘。每天随机回顾笔记并提供 AI 锐评，让微信读书划线重新焕发价值。</description><pubDate>Thu, 23 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20250724_home.DzW4zpJ2.png&quot; alt=&quot;回响书摘&quot; /&gt;&lt;/p&gt;&lt;p&gt;你的想法、笔记，不再被遗忘。每天随机回顾笔记并提供 AI 锐评，让微信读书划线重新焕发价值。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://x.com/nexmoe/status/1903339054068027603&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://x.com/nexmoe/status/1903339054068027603&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/echo-book-notes&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://x.com/nexmoe/status/1903339054068027603&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看回响书摘&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20250724_home.DzW4zpJ2.png" length="248801" type="image/png"/></item><item><title>算了么</title><link>https://nexmoe.com/zh/products/suanleme</link><guid isPermaLink="true">https://nexmoe.com/zh/products/suanleme</guid><description>闲置显卡算力变现平台，让每一滴算力都有价值
共享闲置 GPU 资源，支持科研项目，获得稳定收益，促进 AI 文明发展</description><pubDate>Thu, 22 Aug 2024 07:12:03 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20240919_screenshot-1726733266158.CqN2Tlau.png&quot; alt=&quot;算了么&quot; /&gt;&lt;/p&gt;&lt;p&gt;闲置显卡算力变现平台，让每一滴算力都有价值
共享闲置 GPU 资源，支持科研项目，获得稳定收益，促进 AI 文明发展&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://suanleme.cn/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://suanleme.cn/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/suanleme&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;&lt;p&gt;import FeatureSection from &apos;@/components/products/FeatureSection.astro&apos;
import RolesSection from &apos;@/components/products/RolesSection.astro&apos;
import PainPointsAndComplaintsSection from &apos;@/components/products/PainPointsAndComplaintsSection.astro&apos;
import StatsSection from &apos;@/components/products/StatsSection.astro&apos;
import TargetUsersSection from &apos;@/components/products/TargetUsersSection.astro&apos;
import CompetitiveAuditSection from &apos;@/components/products/CompetitiveAuditSection.astro&apos;&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;space-y-36 py-24&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;RolesSection
title=&quot;项目角色与工具&quot;
tags={[&apos;从 0 到 100&apos;, &apos;产品设计&apos;, &apos;用户增长&apos;, &apos;运营策略&apos;, &apos;数据分析&apos;]}
roles={[
{
title: &apos;产品设计&apos;,
description:
&apos;设计用户友好的客户端界面，确保用户能够轻松管理算力贡献和收益查看，降低使用门槛&apos;,
icon: &apos;mdi:palette&apos;
},
{
title: &apos;用户增长&apos;,
description:
&apos;通过社区运营和用户激励计划，建立算力贡献者生态，实现平台规模增长&apos;,
icon: &apos;mdi:account-group&apos;
},
{
title: &apos;运营策略&apos;,
description: &apos;制定收益分配机制和用户服务体系，平衡算力贡献者和科研机构的需求&apos;,
icon: &apos;mdi:chart-line&apos;
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;PainPointsAndComplaintsSection
title=&quot;用户痛点与真实吐槽&quot;
subtitle=&quot;显卡闲置浪费，科研算力不足，算力资源分布不均成为AI发展的瓶颈&quot;
painPoints={[
{
text: &apos;高性能显卡大部分时间闲置，但电费和折旧成本依然存在&apos;
},
{
text: &apos;科研机构算力需求巨大，但采购成本高昂，项目推进困难&apos;
},
{
text: &apos;个人用户无法有效利用闲置算力，缺乏变现渠道&apos;
},
{
text: &apos;算力资源集中在少数机构，中小型研究团队难以获得足够算力&apos;
},
{
text: &apos;传统算力租赁价格昂贵，个人开发者和小团队难以承受&apos;
},
{
text: &apos;算力贡献缺乏激励机制，用户参与度不高&apos;
}
]}
complaints={[
{
id: &apos;1&apos;,
content: &apos;显卡买来就吃灰，电费还不少，想找个能回本的方法&apos;,
user: &apos;显卡玩家&apos;
},
{
id: &apos;2&apos;,
content: &apos;课题组算力不够，买不起服务器，项目进度严重滞后&apos;,
user: &apos;科研工作者&apos;
},
{
id: &apos;3&apos;,
content: &apos;4090买来打游戏，大部分时间都在闲置，太浪费了&apos;,
user: &apos;游戏玩家&apos;
},
{
id: &apos;4&apos;,
content: &apos;想参与AI研究，但算力成本太高，只能望而却步&apos;,
user: &apos;AI爱好者&apos;
},
{
id: &apos;5&apos;,
content: &apos;公司有多台闲置电脑，但不知道怎么利用起来&apos;,
user: &apos;企业IT&apos;
},
{
id: &apos;6&apos;,
content: &apos;算力租赁太贵了，个人项目根本用不起&apos;,
user: &apos;独立开发者&apos;
},
{
id: &apos;7&apos;,
content: &apos;显卡升级换代太快，旧显卡卖不出好价钱&apos;,
user: &apos;硬件发烧友&apos;
},
{
id: &apos;8&apos;,
content: &apos;想为科研做贡献，但不知道有什么渠道&apos;,
user: &apos;热心网友&apos;
},
{
id: &apos;9&apos;,
content: &apos;算力资源分布太不均衡了，大机构垄断了大部分资源&apos;,
user: &apos;小团队负责人&apos;
},
{
id: &apos;10&apos;,
content: &apos;电费越来越贵，显卡闲置成本太高了&apos;,
user: &apos;家庭用户&apos;
},
{
id: &apos;11&apos;,
content: &apos;想参与分布式计算，但现有平台收益太低&apos;,
user: &apos;算力贡献者&apos;
},
{
id: &apos;12&apos;,
content: &apos;科研项目急需算力，但预算有限，进度受阻&apos;,
user: &apos;项目负责人&apos;
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;TargetUsersSection
title=&quot;适用人群&quot;
subtitle=&quot;连接算力供需两端，让闲置资源创造价值，让科研项目获得支持&quot;
userTypes={[
{
title: &apos;个人用户&apos;,
subtitle: &apos;拥有闲置显卡，希望获得额外收益的普通用户&apos;,
icon: &apos;mdi:account&apos;,
tags: [&apos;闲置变现&apos;, &apos;零门槛&apos;],
features: [
&apos;纯软件客户端，无需额外硬件投入&apos;,
&apos;自动启动暂停，不影响正常使用&apos;,
&apos;实时收益查看，透明计费模式&apos;,
&apos;支持多设备接入，最大化收益&apos;
]
},
{
title: &apos;游戏玩家&apos;,
subtitle: &apos;高性能显卡用户，游戏之余获得收益&apos;,
icon: &apos;mdi:gamepad-variant&apos;,
tags: [&apos;游戏兼容&apos;, &apos;智能调度&apos;],
features: [
&apos;游戏时自动暂停计算，不影响游戏体验&apos;,
&apos;支持RTX 3070及以上显卡，任务丰富&apos;,
&apos;后台运行，无需手动管理&apos;,
&apos;收益稳定，覆盖电费成本&apos;
]
},
{
title: &apos;科研机构&apos;,
subtitle: &apos;需要大量算力支持研究项目的学术机构&apos;,
icon: &apos;mdi:flask&apos;,
tags: [&apos;科研支持&apos;, &apos;成本控制&apos;],
features: [
&apos;获得分布式算力支持，降低研究成本&apos;,
&apos;算力资源丰富，满足大规模计算需求&apos;,
&apos;支持多种科研计算任务&apos;,
&apos;促进科研成果转化和学术交流&apos;
]
},
{
title: &apos;AI开发者&apos;,
subtitle: &apos;需要算力进行模型训练和开发的个人开发者&apos;,
icon: &apos;mdi:code-tags&apos;,
tags: [&apos;开发支持&apos;, &apos;成本优化&apos;],
features: [
&apos;获得算力支持，降低开发成本&apos;,
&apos;支持多种AI框架和模型训练&apos;,
&apos;弹性算力分配，按需使用&apos;,
&apos;促进AI技术普及和发展&apos;
]
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;FeatureSection
title=&quot;核心功能&quot;
subtitle=&quot;让闲置算力创造价值，让科研项目获得支持，构建去中心化的算力生态&quot;
features={[
{
title: &apos;智能调度&apos;,
description:
&apos;自动检测显卡状态，智能分配计算任务，游戏时自动暂停，最大化资源利用效率&apos;,
icon: &apos;mdi:brain&apos;
},
{
title: &apos;实时收益&apos;,
description: &apos;透明的收益计算机制，实时查看贡献和收益，支持多种提现方式&apos;,
icon: &apos;mdi:cash-multiple&apos;
},
{
title: &apos;科研支持&apos;,
description: &apos;为科研项目提供算力支持，促进学术研究和AI技术发展&apos;,
icon: &apos;mdi:flask&apos;
},
{
title: &apos;零门槛使用&apos;,
description: &apos;纯软件客户端，一键安装使用，无需技术背景，支持多设备管理&apos;,
icon: &apos;mdi:rocket-launch&apos;
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;StatsSection
title=&quot;已有数万名用户加入算力网络&quot;
subtitle=&quot;构建去中心化算力生态，让每一滴算力都有价值&quot;
stats={[
{
icon: &apos;mdi:account-group&apos;,
value: &apos;数万+&apos;,
label: &apos;算力贡献者&apos;
},
{
icon: &apos;mdi:server&apos;,
value: &apos;8台+&apos;,
label: &apos;助力清华校友&apos;
},
{
icon: &apos;mdi:flask&apos;,
value: &apos;千名+&apos;,
label: &apos;助力科研项目&apos;
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;CompetitiveAuditSection
title=&quot;竞品分析&quot;
subtitle=&quot;对比主流分布式计算平台，分析算了么的差异化优势&quot;
competitors={[
{
name: &quot;Folding@home&quot;,
logo: &quot;https://foldingathome.org/wp-content/uploads/2020/03/cropped-fah-logo-1.png&quot;,
logoAlt: &quot;Folding@home Logo&quot;,
features: [
{ label: &quot;专注于蛋白质折叠研究&quot; },
{ label: &quot;纯公益性质，无收益&quot; },
{ label: &quot;支持多种设备类型&quot; },
{ label: &quot;全球分布式网络&quot; }
],
valueProposition: &quot;为医学研究提供算力支持，专注于蛋白质折叠和疾病研究，用户参与完全出于公益目的，不提供任何经济回报。&quot;
},
{
name: &quot;BOINC&quot;,
logo: &quot;https://boinc.berkeley.edu/images/boinc_logo.png&quot;,
logoAlt: &quot;BOINC Logo&quot;,
features: [
{ label: &quot;多项目支持平台&quot; },
{ label: &quot;开源分布式计算&quot; },
{ label: &quot;科研项目为主&quot; },
{ label: &quot;跨平台支持&quot; }
],
valueProposition: &quot;提供统一的分布式计算平台，支持多个科研项目，用户可以选择参与不同的研究项目，但同样不提供经济激励。&quot;
},
{
name: &quot;NiceHash&quot;,
logo: &quot;https://www.nicehash.com/favicon.ico&quot;,
logoAlt: &quot;NiceHash Logo&quot;,
features: [
{ label: &quot;加密货币挖矿&quot; },
{ label: &quot;实时收益计算&quot; },
{ label: &quot;自动算法切换&quot; },
{ label: &quot;专业挖矿工具&quot; }
],
valueProposition: &quot;专注于加密货币挖矿，提供算力租赁和挖矿服务，收益与加密货币价格波动相关，技术门槛相对较高。&quot;
},
{
name: &quot;Render Network&quot;,
logo: &quot;https://render.com/favicon.ico&quot;,
logoAlt: &quot;Render Network Logo&quot;,
features: [
{ label: &quot;去中心化渲染网络&quot; },
{ label: &quot;3D渲染任务&quot; },
{ label: &quot;创作者收益&quot; },
{ label: &quot;区块链技术&quot; }
],
valueProposition: &quot;专注于3D渲染任务，为创作者提供去中心化渲染服务，算力贡献者获得RNDR代币奖励，主要服务于创意产业。&quot;
}
]}
/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20240919_screenshot-1726733266158.CqN2Tlau.png" length="1183633" type="image/png"/></item><item><title>共绩算力</title><link>https://nexmoe.com/zh/products/gongji</link><guid isPermaLink="true">https://nexmoe.com/zh/products/gongji</guid><description>云端 AI 开发工作站，完整开发环境随时随地 Coding
生产级弹性算力平台，智能扩缩容，极致性价比，您的算力合伙人</description><pubDate>Mon, 15 Jul 2024 06:34:18 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20250909_scrnli_SonT1y03FbFh5w.D-cVcSFz.png&quot; alt=&quot;共绩算力&quot; /&gt;&lt;/p&gt;&lt;p&gt;云端 AI 开发工作站，完整开发环境随时随地 Coding
生产级弹性算力平台，智能扩缩容，极致性价比，您的算力合伙人&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.gongjiyun.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://www.gongjiyun.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/gongji&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;&lt;p&gt;import FeatureSection from &apos;@/components/products/FeatureSection.astro&apos;
import RolesSection from &apos;@/components/products/RolesSection.astro&apos;
import PainPointsAndComplaintsSection from &apos;@/components/products/PainPointsAndComplaintsSection.astro&apos;
import StatsSection from &apos;@/components/products/StatsSection.astro&apos;
import TargetUsersSection from &apos;@/components/products/TargetUsersSection.astro&apos;
import CompetitiveAuditSection from &apos;@/components/products/CompetitiveAuditSection.astro&apos;&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;space-y-36 py-24&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;RolesSection
title=&quot;项目角色与工具&quot;
tags={[&apos;从 0 到 100&apos;, &apos;产品设计&apos;, &apos;数据追踪分析&apos;, &apos;产品策略&apos;, &apos;增长黑客&apos;, &apos;研发&apos;]}
roles={[
{
title: &apos;产品设计&apos;,
description:
&apos;通过 Figma、V0.dev、Cursor 创建 AI 产品的高保真交互原型，使用 Figma 进行界面设计，采用 Linear 视觉语言，验证设计方案并与开发团队高效协作&apos;,
icon: &apos;mdi:palette&apos;
},
{
title: &apos;增长黑客&apos;,
description:
&apos;运用 Rybbit 和 MetaBase 进行用户行为追踪和业务数据分析，为产品决策提供数据支撑。通过数据驱动的实验和优化策略，快速验证产品假设，提升用户获取和留存率&apos;,
icon: &apos;mdi:chart-line&apos;
},
{
title: &apos;产品策略&apos;,
description: &apos;基于数据追踪分析结果制定产品迭代策略，优化用户体验和业务指标&apos;,
icon: &apos;mdi:strategy&apos;
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;PainPointsAndComplaintsSection
title=&quot;用户痛点与真实吐槽&quot;
subtitle=&quot;深度调研发现，算力成本和技术门槛正成为创新路上的最大阻碍&quot;
painPoints={[
{
text: &apos;动辄数万元的 GPU 硬件投入，让个人开发者和小团队望而却步&apos;
},
{
text: &apos;CUDA、驱动、深度学习框架版本冲突，花费数天时间配置环境&apos;
},
{
text: &apos;服务器散热、硬件故障、系统崩溃，技术人员变身运维工程师&apos;
},
{
text: &apos;昂贵的 GPU 大部分时间闲置，但固定成本依然存在&apos;
},
{
text: &apos;项目突然需要更多算力时，采购周期长，错失最佳开发窗口期&apos;
},
{
text: &apos;需要深度了解硬件架构、系统运维，技术栈过于复杂&apos;
}
]}
complaints={[
{
id: &apos;1&apos;,
content: &apos;算力成本太高了，前半年的预算都被我烧完了&apos;,
user: &apos;好帅的一个齐未块&apos;
},
{
id: &apos;2&apos;,
content: &apos;终于还是走上了租服务器这一步，心情不好买了一桶冰淇淋全吃了&apos;,
user: &apos;好帅的一个齐未块&apos;
},
{
id: &apos;3&apos;,
content: &apos;A&lt;em&gt;&lt;strong&gt;l怎么这么卡，装环境装了一晚上了，下载模型下不下来，救救我&apos;,
user: &apos;敌电子木鱼拜赛博神仙&apos;
},
{
id: &apos;4&apos;,
content:
&apos;想买个主机rtx4060ti 16g版想想又舍不得，主机买这么好的干什么，我的方向是大模型需要算力&apos;,
user: &apos;Tony_Ity&apos;
},
{
id: &apos;5&apos;,
content: &apos;没想到被A&lt;/strong&gt;&lt;/em&gt;l坑了一把，原来是docker隔离的&apos;,
user: &apos;南柯凌云&apos;
},
{
id: &apos;6&apos;,
content: &apos;之前的环境能运行，现在的环境会报错，C&lt;em&gt;&lt;strong&gt;b下可以运行，A&lt;/strong&gt;&lt;/em&gt;l会报内存不足&apos;,
user: &apos;2K_丙千&apos;
},
{
id: &apos;7&apos;,
content: &apos;A&lt;em&gt;&lt;strong&gt;l你是不是有病啊？检修一万年了还没好&apos;,
user: &apos;汪视着再一次&apos;
},
{
id: &apos;8&apos;,
content: &apos;尊敬的某算力云炼丹师，您的余额已不足10元，为保证您的正常使用，建议您及时充值&apos;,
user: &apos;Angela整子&apos;
},
{
id: &apos;9&apos;,
content: &apos;每到下午某平台的网速比蜗牛还慢，用的是4090显卡资源了也不行&apos;,
user: &apos;膜拜拿快颗雨&apos;
},
{
id: &apos;10&apos;,
content: &apos;这个破A&lt;/strong&gt;&lt;/em&gt;l怎么这么卡，装环境装了一晚上了，下载模型下不下来，救救我&apos;,
user: &apos;敌电子木鱼拜赛博神仙&apos;
},
{
id: &apos;11&apos;,
content: &apos;某平台ssh传文件速度500kb/s，这速度真的让人崩溃&apos;,
user: &apos;Iby2223&apos;
},
{
id: &apos;12&apos;,
content: &apos;环境配置太复杂了，CUDA版本冲突搞了好几天都没解决&apos;,
user: &apos;开发小白&apos;
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;TargetUsersSection
title=&quot;适用人群&quot;
subtitle=&quot;每个行业都有 AI 梦想，为什么算力成本却让人望而却步？我们为不同用户群体提供专业的算力解决方案&quot;
userTypes={[
{
title: &apos;开发者 &amp;amp; 创业团队&apos;,
subtitle: &apos;追求高效开发，告别硬件投入的技术团队&apos;,
icon: &apos;mdi:code-tags&apos;,
tags: [&apos;成本控制&apos;, &apos;快速迭代&apos;],
features: [
&apos;3分钟启动AI开发环境，无需痛苦配置&apos;,
&apos;预装30+开发工具，JupyterLab、VS Code开箱即用&apos;,
&apos;1.68元/时起步，比自购GPU节省90%成本&apos;,
&apos;10秒部署上线，开发完成即可发布&apos;
]
},
{
title: &apos;AIGC 创作者&apos;,
subtitle: &apos;专注创意表达，不被硬件限制的内容创作者&apos;,
icon: &apos;mdi:palette&apos;,
tags: [&apos;创意无限&apos;, &apos;专业品质&apos;],
features: [
&apos;文生图、视频生成、AI 3D建模等创作场景全覆盖&apos;,
&apos;深度整合Stable Diffusion、Flux、ComfyUI&apos;,
&apos;RTX 4090集群保证商业级品质输出&apos;,
&apos;按秒计费，创作时付费，闲置时零成本&apos;
]
},
{
title: &apos;教育机构&apos;,
subtitle: &apos;为AI教学提供标准化环境的教育工作者&apos;,
icon: &apos;mdi:school&apos;,
tags: [&apos;标准化&apos;, &apos;批量管理&apos;],
features: [
&apos;教师制作镜像，一键分发给全班学员&apos;,
&apos;学期结束可取消共享，保护知识产权&apos;,
&apos;无需为每个学生配置昂贵硬件&apos;,
&apos;统一的AI教学环境，避免环境差异问题&apos;
]
},
{
title: &apos;企业用户&apos;,
subtitle: &apos;需要生产级算力，追求稳定可靠的商业客户&apos;,
icon: &apos;mdi:office-building&apos;,
tags: [&apos;生产级&apos;, &apos;弹性扩容&apos;],
features: [
&apos;99.9%服务可用性，24×7专家支持&apos;,
&apos;智能扩缩容应对业务波动，节省50%成本&apos;,
&apos;完善OpenAPI接口，轻松集成业务系统&apos;,
&apos;无需管理基础设施，专注业务创新&apos;
]
},
{
title: &apos;科研机构&apos;,
subtitle: &apos;进行大规模计算和模型训练的研究团队&apos;,
icon: &apos;mdi:flask&apos;,
tags: [&apos;大规模计算&apos;, &apos;科研级&apos;],
features: [
&apos;万块4090随时待命，满足大规模并行计算需求&apos;,
&apos;支持PyTorch、TensorFlow等主流深度学习框架&apos;,
&apos;长时间运行任务支持，适合模型训练和数据处理&apos;,
&apos;SSH访问和完整Linux环境，满足复杂科研需求&apos;
]
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;FeatureSection
title=&quot;产品矩阵&quot;
subtitle=&quot;告别昂贵 GPU 硬件，专注代码，不再为算力发愁。选择最适合您的算力解决方案，让开发回归纯粹。&quot;
features={[
{
title: &apos;云主机 Server&apos;,
description:
&apos;一站式 GPU 开发环境，预装深度学习框架，支持 Jupyter、VSCode 等工具，1.68 元/时起步&apos;,
icon: &apos;mdi:server&apos;
},
{
title: &apos;弹性部署 Serverless&apos;,
description: &apos;中国首个 GPU Serverless，自动扩缩容应对业务波动，API 调用 10 秒部署上线&apos;,
icon: &apos;mdi:lightning-bolt&apos;
},
{
title: &apos;按秒计费&apos;,
description: &apos;透明的按秒计费模式，只为有效价值付费，告别本地硬件限制&apos;,
icon: &apos;mdi:clock-outline&apos;
},
{
title: &apos;万块 4090 现货&apos;,
description: &apos;RTX 4090 集群随时待命，无需管理基础设施，专为生产环境打造&apos;,
icon: &apos;mdi:check-circle&apos;
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;StatsSection
title=&quot;已有 1000+ 家企业摆脱了算力焦虑&quot;
subtitle=&quot;不再让算力成为创意的绊脚石，10 万 + 开发者已经告别了硬件焦虑&quot;
stats={[
{
icon: &apos;mdi:account-group&apos;,
value: &apos;10 万+&apos;,
label: &apos;活跃开发者&apos;
},
{
icon: &apos;mdi:office-building&apos;,
value: &apos;1000+&apos;,
label: &apos;企业客户&apos;
},
{
icon: &apos;mdi:check-circle&apos;,
value: &apos;99.9%&apos;,
label: &apos;服务可用性&apos;
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;CompetitiveAuditSection
title=&quot;竞品分析&quot;
subtitle=&quot;深入分析主要竞争对手的功能特点和市场定位，为产品策略提供参考&quot;
competitors={[
{
name: &quot;AWS SageMaker&quot;,
logo: &quot;https://upload.wikimedia.org/wikipedia/commons/9/93/Amazon_Web_Services_Logo.svg&quot;,
logoAlt: &quot;AWS SageMaker Logo&quot;,
features: [
{ label: &quot;完全托管的机器学习服务&quot; },
{ label: &quot;内置算法和框架支持&quot; },
{ label: &quot;自动模型调优&quot; },
{ label: &quot;一键部署和扩展&quot; }
],
valueProposition: &quot;为数据科学家和开发者提供完全托管的机器学习平台，简化从数据准备到模型部署的整个机器学习工作流程，让用户专注于算法创新而非基础设施管理。&quot;
},
{
name: &quot;Google Cloud AI Platform&quot;,
logo: &quot;https://upload.wikimedia.org/wikipedia/commons/5/51/Google_Cloud_logo.svg&quot;,
logoAlt: &quot;Google Cloud AI Platform Logo&quot;,
features: [
{ label: &quot;TPU 专用加速器&quot; },
{ label: &quot;AutoML 自动化机器学习&quot; },
{ label: &quot;预训练模型 API&quot; },
{ label: &quot;Vertex AI 统一平台&quot; }
],
valueProposition: &quot;利用谷歌在人工智能领域的技术优势，为企业提供从数据处理到模型训练和部署的端到端AI解决方案，特别在自然语言处理和计算机视觉方面具有领先优势。&quot;
},
{
name: &quot;阿里云 PAI&quot;,
logo: &quot;https://img.alicdn.com/tfs/TB1Ly5oS3HqK1RjSZFPXXcwapXa-238-54.png&quot;,
logoAlt: &quot;阿里云 PAI Logo&quot;,
features: [
{ label: &quot;可视化建模工具&quot; },
{ label: &quot;分布式训练框架&quot; },
{ label: &quot;模型在线服务&quot; },
{ label: &quot;算法市场生态&quot; }
],
valueProposition: &quot;基于阿里巴巴丰富的业务场景和技术积累，为中国企业提供本土化的机器学习平台服务，支持从数据处理、模型开发到业务部署的全链路AI能力。&quot;
},
{
name: &quot;百度智能云 EasyDL&quot;,
logo: &quot;https://bce.bdstatic.com/doc/BaiduCloud/logo.png&quot;,
logoAlt: &quot;百度智能云 EasyDL Logo&quot;,
features: [
{ label: &quot;零代码AI开发&quot; },
{ label: &quot;小样本学习能力&quot; },
{ label: &quot;边缘设备部署&quot; },
{ label: &quot;行业解决方案&quot; }
],
valueProposition: &quot;降低AI技术门槛，让没有深度学习背景的用户也能快速构建和部署AI模型，特别适合中小企业和传统行业的数字化转型需求。&quot;
}
]}
/&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20250909_scrnli_SonT1y03FbFh5w.D-cVcSFz.png" length="370639" type="image/png"/></item><item><title>如何在 VSCode Remote 里监控远程资源</title><link>https://nexmoe.com/zh/19V9ZMM</link><guid isPermaLink="true">https://nexmoe.com/zh/19V9ZMM</guid><pubDate>Sun, 14 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/f4994d4cc1b09a7c8429191762d6c085.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;快速开始&lt;/h2&gt;
&lt;p&gt;在使用 VSCode 的过程中，你可以通过使用 Remote-SSH 插件来连接到远程服务器，然后使用 Monitor Pro 插件对远程服务器的资源进行监控。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;安装和配置 Remote-SSH 插件&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;打开 VSCode，点击左侧栏的扩展按钮。&lt;/li&gt;
&lt;li&gt;在扩展商店搜索并安装“Remote-SSH”插件。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;连接到远程服务器&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;安装完成后，在 VSCode 的终端中输入相关命令来连接到远程服务器。例如，可以使用&lt;code&gt;ssh 用户名@远程服务器地址&lt;/code&gt;命令进行连接。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;使用 Monitor Pro 插件进行资源监控&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;安装 Monitor Pro 插件。这个插件可以帮助你实时跟踪重要的系统指标，并提供直观的展现方式。&lt;/li&gt;
&lt;li&gt;安装后，该插件会自动启用，并且你可以通过 VSCode 的状态栏查看当前的资源使用情况，如 CPU、内存、磁盘等。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;刷新设置&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Monitor Pro 插件允许你设置更新资源指标的刷新间隔，确保能够及时获取最新的资源使用数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;如何安装和配置 Monitor Pro 插件？&lt;/h2&gt;
&lt;h3&gt;安装 Monitor Pro 插件&lt;/h3&gt;
&lt;p&gt;在 VSCode 界面的左上角，点击“扩展”（或按 &lt;code&gt;Ctrl + Shift + X&lt;/code&gt;），然后在搜索框中输入“Monitor Pro”。&lt;/p&gt;
&lt;p&gt;找到“Monitor Pro”插件后，点击“安装”按钮即可完成安装。&lt;/p&gt;
&lt;h3&gt;配置 Monitor Pro 插件&lt;/h3&gt;
&lt;p&gt;安装完成后，会在 VSCode 的活动栏中看到一个新图标，点击它以启动 Monitor Pro 插件。&lt;/p&gt;
&lt;p&gt;根据具体需求，可以在 Monitor Pro 的设置页面中进行相应的配置，比如调整监控项等。&lt;/p&gt;
&lt;h2&gt;部分支持的远程资源监控指标&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;CPU 使用率&lt;/strong&gt;：监控 CPU 的利用百分比。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内存使用率&lt;/strong&gt;：监测系统的内存使用情况。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络使用率&lt;/strong&gt;：跟踪网络的使用情况。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文件系统使用率&lt;/strong&gt;：监控文件系统的使用情况。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;电池百分比和充电状态&lt;/strong&gt;：监测设备的电池百分比和充电状态。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;最佳实践&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;实时跟踪关键指标&lt;/strong&gt;：Monitor Pro 是一个全面的资源监控工具，可以帮助你实时跟踪重要的系统指标。因此，建议定期检查这些指标以确保系统的稳定性和性能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;直观展现方式&lt;/strong&gt;：Monitor Pro 提供直观的展现方式，这有助于快速识别问题所在。利用这一点，可以及时发现并解决潜在的性能瓶颈。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;内存优化&lt;/strong&gt;：虽然 Monitor Pro 主要关注的是资源监控，但结合其他工具如 Memory Monitor 和 Allocation Tracker，可以进一步优化内存使用。例如，通过 Memory Monitor 查看整个应用所占用的内存，并注意 GC（垃圾回收）操作的频率和时机，以避免内存抖动等危险信号。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;定制化配置&lt;/strong&gt;：根据你的具体需求，对 Monitor Pro 进行定制化配置。例如，可以选择监控特定的资源，从而更有效地管理和优化资源使用。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This message is used to verify that this feed (feedId:42331815237783574) belongs to me (userId:55156152962822144). Join me in enjoying the next generation information browser https://follow.is.&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>共绩算力官网</title><link>https://nexmoe.com/zh/products/gongji-landing</link><guid isPermaLink="true">https://nexmoe.com/zh/products/gongji-landing</guid><description>即刻上线，从容应对高并发
快捷部署，实惠价格，您的算力，超乎想象</description><pubDate>Sat, 15 Jun 2024 06:34:18 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20250909_%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE_9-9-2025_105421_www.gongjiyun.com.DMsXmlUD.jpeg&quot; alt=&quot;共绩算力官网&quot; /&gt;&lt;/p&gt;&lt;p&gt;即刻上线，从容应对高并发
快捷部署，实惠价格，您的算力，超乎想象&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.gongjiyun.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://www.gongjiyun.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/gongji-landing&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20250909_%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE_9-9-2025_105421_www.gongjiyun.com.DMsXmlUD.jpeg" length="1258621" type="image/jpeg"/></item><item><title>新标签页助你重新掌控你的收藏夹</title><link>https://nexmoe.com/zh/13PSKPW</link><guid isPermaLink="true">https://nexmoe.com/zh/13PSKPW</guid><pubDate>Tue, 05 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在数字时代，我们的浏览器收藏夹，就如同一个宝库，里面藏着我们曾经因兴趣、工作或学习而保留的无数网站链接。小舒同学，一个浏览器新标签页扩展，帮助您高效地管理这些珍贵的在线资源。通过整洁、直观的界面和强大的功能，通过小舒同学这款强大的浏览器扩展，让您的收藏夹焕发新生。&lt;/p&gt;
&lt;h2&gt;一键展示管理收藏夹&lt;/h2&gt;
&lt;p&gt;不需要反复整理和搜索您的主页，小舒同学提供了一种轻松的方法来展示和管理您的收藏夹。通过在新标签页中，将书签以清晰的图形方式呈现，帮助您聚焦真正重要的事情。无论是微软的 Edge、Google 的 Chrome，还是 Mozilla 的 Firefox，都可以实现一步直观整洁地展示管理您的网络财富。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/628f695f10a222367075b6cb97a8870f.png/nexmoe&quot; alt=&quot;一键展示管理收藏夹&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;随时随地的同步空间&lt;/h2&gt;
&lt;p&gt;小舒同学的同步空间可以让您轻松同步收藏夹，通过同步空间功能，不管您是在工作场合的电脑还是在家里的设备，都可以轻松连接，访问您全部的收藏内容。您的内容将被安全地存储与同步，确保您可以在任何时间访问。网络世界的一切都将由您连接统一，不仅能启动哔哩哔哩，更能直接访问您关注的具体内容。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/cc15688dc52a551044b83a8a50117ccf.png/nexmoe&quot; alt=&quot;同步空间&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/df8a4bea0d13e188a740293d12d39730.png/nexmoe&quot; alt=&quot;网页端&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;直观且舒适的重组织&lt;/h2&gt;
&lt;p&gt;小舒同学以流畅和直观的用户体验，帮您重新组织您的在线生活。我们专注于舒适的交互设计，将您的收藏夹以一种对您有意义的方式进行组织。&lt;/p&gt;
&lt;p&gt;小舒同学提供各式各样的卡片形式和布局，让您可以完全按照自己的喜好进行自定义。您可以创建个性化的卡片组合，以满足您的独特需求。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/222bc26cce538c35426bae5c05b4dc77.png/nexmoe&quot; alt=&quot;重组织&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;严格隐私保护&lt;/h2&gt;
&lt;p&gt;小舒同学重视用户的隐私保护，拒绝记录和上传用户数据。在不使用同步空间的情况下，您的收藏夹数据也只在浏览器本地数据中，确保隐私数据的私密性。依托于 Manifest V3，小舒同学严格控制所需权限，保证只加载本地代码，保护用户的安全与私密。&lt;/p&gt;
&lt;h2&gt;定制个性化新标签页&lt;/h2&gt;
&lt;p&gt;小舒同学的自由度极高，可以按照用户的喜好进行多种个性化设置。您可以更换壁纸、主题、主题色，甚至可以用自定义 CSS 美化您的标签页。拥有如此高度自定义的新标签页，您的浏览器将成为真正属于您的个性空间。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/4921cd51ceca11e84df56a9a1bdc6f62.png/nexmoe&quot; alt=&quot;主题 Fluid&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/2437f0bbdf2758b379a247f5e9b4d247.png/nexmoe&quot; alt=&quot;主题 Meteor&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/846cf64aaf0ceee2688b4fc342c52681.png/nexmoe&quot; alt=&quot;主题 Hyper&quot; /&gt;&lt;/p&gt;
&lt;p&gt;小舒同学不仅仅是一个简单的收藏夹工具，它改变了我们与网络信息的互动方式，提供了一个更高效、更有组织性的网络生活体验。减少了无谓的折腾，让每一次收藏都变得值得，让每一次浏览都充满发现的喜悦。现在，尝试小舒同学，让您的收藏夹变成您的独特网络资产，发挥它们真正的潜力吧。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>使用 Docker 和 pnpm 优化打包 Nuxt.js 全栈项目</title><link>https://nexmoe.com/zh/1VGXT98</link><guid isPermaLink="true">https://nexmoe.com/zh/1VGXT98</guid><pubDate>Sun, 25 Feb 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;本文将指导你如何为一个结合了 Prisma 和 Nuxt.js 的全栈项目创建优化后的 Docker 镜像，并使用 pnpm 作为包管理器。&lt;/p&gt;
&lt;p&gt;我的项目最终镜像大小从 1.12GB 缩减到了 160.21MB。&lt;/p&gt;
&lt;h2&gt;我的项目构成&lt;/h2&gt;
&lt;p&gt;Nuxt.js 是一个基于 Vue.js 的服务器端渲染应用框架，非常适合于构建现代化的 Web 应用。&lt;/p&gt;
&lt;p&gt;我的项目直接采用 Nuxt 构建全栈项目。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nuxt3&lt;/li&gt;
&lt;li&gt;Prisma&lt;/li&gt;
&lt;li&gt;PNPM&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;开始构建&lt;/h2&gt;
&lt;p&gt;首先，我们将使用 &lt;code&gt;node:20-alpine&lt;/code&gt; 这个更轻量级的基础镜像来减小最终镜像的大小。Alpine Linux 因其安全、简单且体积小而广受欢迎。&lt;/p&gt;
&lt;p&gt;多阶段构建是减少 Docker 镜像大小的有效策略之一。我们将使用三个阶段来构建我们的镜像。&lt;/p&gt;
&lt;h3&gt;第一阶段：构建依赖项&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;ARG NODE_VERSION=node:20-alpine

FROM $NODE_VERSION AS dependency-base

WORKDIR /app

RUN npm install -g pnpm

COPY package.json pnpm-lock.yaml ./

RUN pnpm install --frozen-lockfile`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这一阶段负责安装我们项目的依赖项。我们使用了 pnpm 来代替 npm，pnpm 在缓存和磁盘使用上更为高效。&lt;/p&gt;
&lt;p&gt;大部分项目也用 pnpm 而不是 npm 作为包管理工具了。&lt;/p&gt;
&lt;h3&gt;第二阶段：构建应用程序&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;FROM dependency-base AS production-base

COPY . .

RUN pnpm run build 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在这一阶段，我们复制了项目代码并执行构建命令。这里的构建指的是 Nuxt.js 的构建过程，它会生成静态文件和服务器端渲染所需的资源。&lt;/p&gt;
&lt;h3&gt;第三阶段：生成生产镜像&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;FROM $NODE_VERSION AS production

COPY --from=production-base /app/.output /app/.output

ENV NUXT_HOST=0.0.0.0 \
    NUXT_APP_VERSION=latest \
    DATABASE_URL=file:./db.sqlite \
    NODE_ENV=production

WORKDIR /app

EXPOSE 3000

CMD [&quot;node&quot;, &quot;/app/.output/server/index.mjs&quot;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后，我们创建了适用于生产环境的镜像。这个镜像仅包含用于运行应用程序的必要文件，减少了不必要的层，使得镜像尽可能地保持精简。&lt;/p&gt;
&lt;p&gt;我们还定义了一些环境变量，比如 &lt;code&gt;NUXT_HOST&lt;/code&gt; 和 &lt;code&gt;DATABASE_URL&lt;/code&gt;，这些是 Nuxt.js 应用和 Prisma 所需要的。其中，&lt;code&gt;DATABASE_URL&lt;/code&gt; 被设置为使用项目根目录下的 SQLite 文件作为数据库。&lt;/p&gt;
&lt;p&gt;最终通过暴露端口 &lt;code&gt;3000&lt;/code&gt; 并指定启动命令来运行 Nuxt.js 应用程序。&lt;/p&gt;
&lt;h2&gt;不同构建方式的镜像大小比较&lt;/h2&gt;
&lt;p&gt;分别为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3 步构建&lt;/li&gt;
&lt;li&gt;2 步构建&lt;/li&gt;
&lt;li&gt;直接构建&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/a3c345aaa51a4b8b802c25bc9d3591c0.png&quot; alt=&quot;a3c345aaa51a4b8b802c25bc9d3591c0.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Dockerfile 总览&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# Use a smaller base image
ARG NODE_VERSION=node:20-alpine

# Stage 1: Build dependencies
FROM $NODE_VERSION AS dependency-base

# Create app directory
WORKDIR /app

# Install pnpm
RUN npm install -g pnpm

# Copy the package files
COPY package.json pnpm-lock.yaml ./

# Install dependencies using pnpm
RUN pnpm install --frozen-lockfile

# Stage 2: Build the application
FROM dependency-base AS production-base

# Copy the source code
COPY . .

# Build the application
RUN pnpm run build

# Stage 3: Production image
FROM $NODE_VERSION AS production

# Copy built assets from previous stage
COPY --from=production-base /app/.output /app/.output

# Define environment variables
ENV NUXT_HOST=0.0.0.0 \
    NUXT_APP_VERSION=latest \
    DATABASE_URL=file:./db.sqlite \
    NODE_ENV=production

# Set the working directory
WORKDIR /app

EXPOSE 3000

# Start the app
CMD [&quot;node&quot;, &quot;/app/.output/server/index.mjs&quot;]
&lt;/code&gt;&lt;/pre&gt;
</content:encoded><category>post</category></item><item><title>使用 PNPM 的情况下，Jest 解决 ESM 依赖库的报错问题</title><link>https://nexmoe.com/zh/1HA2ZHS</link><guid isPermaLink="true">https://nexmoe.com/zh/1HA2ZHS</guid><pubDate>Thu, 04 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;环境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;NX&lt;/li&gt;
&lt;li&gt;PNPM&lt;/li&gt;
&lt;li&gt;lodash-es&lt;/li&gt;
&lt;li&gt;Jest&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;从 karma 转移到 Jest 遇到了如下报错&lt;/h2&gt;
&lt;p&gt;主要原因是 &quot;node_modules&quot; 文件夹中 ESM（ECMAScript Modules）库不被 Jest 支持。&lt;/p&gt;
&lt;p&gt;鉴于 Jest ESM 支持还在几乎不可用的试验阶段，而目前我主要是在公司项目上迁移到 Jest。所以本文主要采用 &lt;code&gt;transformIgnorePatterns&lt;/code&gt; 和 &lt;code&gt;moduleNameMapper&lt;/code&gt; 两种配置来解决这个问题。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/11c629a593c4c8484b6cb8ca44d6aa5f.png&quot; alt=&quot;11c629a593c4c8484b6cb8ca44d6aa5f.png&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Test suite failed to run

Jest encountered an unexpected token

Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.

Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.

By default &quot;node_modules&quot; folder is ignored by transformers.

Here&apos;s what you can do:
    • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.
    • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript
    • To have some of your &quot;node_modules&quot; files transformed, you can specify a custom &quot;transformIgnorePatterns&quot; in your config.
    • If you need a custom transformation specify a &quot;transform&quot; option in your config.
    • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the &quot;moduleNameMapper&quot; config option.

You&apos;ll find more details and examples of these config options in the docs:
https://jestjs.io/docs/configuration
For information about custom transformations, see:
https://jestjs.io/docs/code-transformation
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以下配置主要以 lodash-es 作为参考。&lt;/p&gt;
&lt;h2&gt;transformIgnorePatterns&lt;/h2&gt;
&lt;p&gt;官方文档的解释是：正则表达式模式字符串的数组，在转换之前与所有源文件路径匹配。如果文件路径与任何模式匹配，则不会对其进行转换。
即 &lt;code&gt;transformIgnorePatterns&lt;/code&gt; 用于指定在进行代码转换时应该忽略的文件或文件夹。&lt;/p&gt;
&lt;p&gt;而在 NX 默认的 Jest 配置中，配置为 &lt;code&gt;node_modules/(?!.*\\.mjs$)&lt;/code&gt;。
这个正则表达式的含义是，匹配以 &lt;code&gt;node_modules/&lt;/code&gt; 开头的文件夹路径，但排除那些以 &lt;code&gt;.mjs&lt;/code&gt; 为扩展名的文件夹路径。&lt;code&gt;?!&lt;/code&gt; 是一个否定预查，表示不匹配这样的文件夹路径。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;transformIgnorePatterns: [&apos;node_modules/(?!.*\\.mjs$)&apos;],
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以上配置意思就是将会把以 &lt;code&gt;.mjs&lt;/code&gt; 为扩展名的文件从 ESM 转换为 CommonJS，以支持 Jest。&lt;/p&gt;
&lt;h2&gt;添加转换 lodash-es&lt;/h2&gt;
&lt;p&gt;顺便支持一下 PNPM&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const esModules = [&apos;.*\\.mjs$&apos;, &apos;lodash-es&apos;].join(&apos;|&apos;);

export default {
    ...
    transformIgnorePatterns: [`node_modules/(?!.pnpm|${esModules})`],
    ...
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;转换后 failed 数量从 15 减少到 11，但是这么做会有一个转换的过程会有额外的支出，需要 51s。不过第一次转换完后貌似就会缓存然后就不用转换了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/ef4e6aeef369b021b707664f9c03549a.png&quot; alt=&quot;ef4e6aeef369b021b707664f9c03549a.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;支出更少的方法 moduleNameMapper&lt;/h2&gt;
&lt;p&gt;这种方法需要库本身有对应的 CommonJS，就不需要转换了。可以跑到 12s&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export default {
    ...
    moduleNameMapper: {
        &apos;^lodash-es$&apos;: &apos;lodash&apos;,
    },
  ...
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/e87d8ad99b64c8f836a8c1777ec217bf.png&quot; alt=&quot;e87d8ad99b64c8f836a8c1777ec217bf.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;最终配置参考如下&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;/* eslint-disable */
const esModules = [&apos;.*\\.mjs$&apos;].join(&apos;|&apos;);

export default {
  displayName: &apos;pc&apos;,
  preset: &apos;../../jest.preset.js&apos;,
  setupFilesAfterEnv: [&apos;&amp;lt;rootDir&amp;gt;/src/test-setup.ts&apos;],
  coverageDirectory: &apos;../../coverage/apps/pc&apos;,
  moduleNameMapper: {
    &apos;^lodash-es$&apos;: &apos;lodash&apos;,
  },
  transform: {
    &apos;^.+\\.(ts|mjs|js|html)$&apos;: [
      &apos;jest-preset-angular&apos;,
      {
        tsconfig: &apos;&amp;lt;rootDir&amp;gt;/tsconfig.spec.json&apos;,
        stringifyContentPathRegex: &apos;\\.(html|svg)$&apos;,
      },
    ],
  },
  transformIgnorePatterns: [`node_modules/(?!.pnpm|${esModules})`],
  snapshotSerializers: [
    &apos;jest-preset-angular/build/serializers/no-ng-attributes&apos;,
    &apos;jest-preset-angular/build/serializers/ng-snapshot&apos;,
    &apos;jest-preset-angular/build/serializers/html-comment&apos;,
  ],
};
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/questions/42260218/jest-setup-syntaxerror-unexpected-token-export&quot;&gt;Jest setup &quot;SyntaxError: Unexpected token export&quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jestjs.io/docs/configuration#transformignorepatterns-arraystring&quot;&gt;Configuring Jest · Jest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jestjs.io/docs/ecmascript-modules&quot;&gt;ECMAScript Modules · Jest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jestjs.io/docs/configuration#modulenamemapper-objectstring-string--arraystring&quot;&gt;Configuring Jest · Jest&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content:encoded><category>post</category></item><item><title>【前端十万个为什么】V0.1</title><link>https://nexmoe.com/zh/3J1ZYA3</link><guid isPermaLink="true">https://nexmoe.com/zh/3J1ZYA3</guid><pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;为什么用 Composition API&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/c2f54277b2fb37d52596daa96202d926.png&quot; alt=&quot;c2f54277b2fb37d52596daa96202d926.png&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使逻辑分离更容易：使用可组合函数可以将组件的逻辑分解为多个较小的部分，不再限制于 Options API 中组织代码，更容易重用有状态逻辑。&lt;/li&gt;
&lt;li&gt;灵活性和代码重用性：可以提取和重用共享逻辑，分离关注点，使代码更加模块化和易于维护。&lt;/li&gt;
&lt;li&gt;实现组件的复用和组合：将逻辑拆分为可重用的部分，使用可组合函数组合组件，避免重复编写代码，提高代码的重用性，减少重复和不一致性的风险。&lt;/li&gt;
&lt;li&gt;更好的可读性和可理解性：每个可组合函数封装了特定方面的行为、方便推理和测试、有助于团队合作，使代码结构化和有组织。&lt;/li&gt;
&lt;li&gt;更好的类型推断：使用变量和标准 JavaScript 函数处理组件逻辑。更容易在使用静态类型系统（如 TypeScript）构建大型 Vue 应用程序时进行类型推断&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;为什么解构 Proxy 会失去效应性&lt;/h2&gt;
&lt;p&gt;等待补坑&lt;/p&gt;
&lt;h2&gt;为什么 Vue 中解构 props 会失去响应性&lt;/h2&gt;
&lt;p&gt;在 Vue 3 中，当你解构 props 时，可能会丧失响应性。这意味着对 props 的更改不会触发组件的更新。&lt;/p&gt;
&lt;p&gt;原因是 Vue 的响应性系统依赖 Proxy 来跟踪对象属性的更改。当组件接收到一个对象作为 props 时，Vue 会为该对象的每个属性设置响应性的 getter 和 setter。这使得 Vue 能够检测属性何时更改并相应地更新组件。&lt;/p&gt;
&lt;p&gt;当你解构对象 props 时，实际上是创建了一个不再具有响应性的新对象。Vue 为原始对象创建的响应性 getter 和 setter 不会转移到新对象上。&lt;/p&gt;
&lt;h3&gt;参考&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://www.zhihu.com/question/445693785/answer/2580357612&quot;&gt;Vue3 如果解构 props 会失去起响应性导致 setup 里一堆 pros.xxx 怎么办？ - 这似谁的小鹿的回答 - 知乎&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://mokkapps.de/vue-tips/destructure-props-in-composition-api-without-losing-reactivity&quot;&gt;Vue Tip: Destructure Props in Composition API Without Losing ...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nickychristensen.medium.com/how-to-destructure-props-in-vue-3-without-losing-reactivity-72e1eb05f6c0&quot;&gt;How To Destructure Props In Vue 3 Without Losing Reactivity | by Nicky Christensen | Medium&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;为什么 Vue 项目很少用 RxJS&lt;/h2&gt;
&lt;h3&gt;一句话解释&lt;/h3&gt;
&lt;p&gt;这是因为 Vue 希望成为一个轻量且灵活的框架，允许开发者选择他们喜欢的工具和库。虽然 RxJS 是一个强大的响应式编程库，但 Vue 采用了不同的方法，提供了自己的响应式系统。&lt;/p&gt;
&lt;h3&gt;详情点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;设计理念不同：Vue 注重简单和直观，便于响应式编程；而 RxJS 功能更强、更复杂，适合异步和事件驱动编程。&lt;/li&gt;
&lt;li&gt;库的大小与复杂性：RxJS 库大且学习曲线陡，若作为 Vue 的默认依赖，会增加框架大小和开发复杂性，与 Vue 的轻量和灵活理念不符。&lt;/li&gt;
&lt;li&gt;灵活性：Vue 设计为灵活且适应不同的项目需求。不将自己绑定到特定的响应式库（如 RxJS），允许开发人员选择最适合他们需求的工具和库。这种灵活性使开发人员能够无缝地将 RxJS 或其他任何库集成到 Vue 项目中。&lt;/li&gt;
&lt;li&gt;学习曲线：Vue 拥有平缓的学习曲线，特别是对于初级开发。通过提供自己的响应式系统，Vue 可以提供更简单、更渐进的学习体验。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;参考&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://www.thisdot.co/blog/introduction-to-vuejs-and-rxjs&quot;&gt;Introduction to VueJS and RxJS - This Dot Labs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/tutorials/vuejs-using-rxjs&quot;&gt;Integrating RxJS with Vue.js | DigitalOcean&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://goodguydaniel.com/blog/reactive-rxjs-pros-cons/&quot;&gt;Reactive Programming: The Good and the Bad | goodguydaniel.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/@p.woltschkow/a-better-practice-to-implement-http-client-in-vue-with-rxjs-c59f93bfa439&quot;&gt;A better practice to implement HTTP client in Vue with RxJS for enterprise Apps | by Pawel Woltschkow | Medium&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://engineering.cloudflight.io/you-might-not-want-rxjs&quot;&gt;You might not want Rxjs&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content:encoded><category>post</category></item><item><title>JavaScript 总结、比较 V2.0</title><link>https://nexmoe.com/zh/1294PJK</link><guid isPermaLink="true">https://nexmoe.com/zh/1294PJK</guid><pubDate>Wed, 01 Nov 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Promise 与 RxJS Observables 的区别&lt;/h2&gt;
&lt;h3&gt;Promise&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Promise 是 JavaScript 中内置的，不需要任何额外的库。&lt;/li&gt;
&lt;li&gt;Promise 表示可能现在或将来可用的单个值。&lt;/li&gt;
&lt;li&gt;Promise 是急切的，也就是说一旦 Promise 被解析，&lt;code&gt;.then()&lt;/code&gt;回调会立即执行。&lt;/li&gt;
&lt;li&gt;Promise 只能发出单个值。&lt;/li&gt;
&lt;li&gt;Promise 非常适合处理产生单个结果的简单异步操作。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;RxJS Observables&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Observables 是 RxJS 库的一部分，需要额外安装依赖。&lt;/li&gt;
&lt;li&gt;Observable 表示可以随时间发出的值流。&lt;/li&gt;
&lt;li&gt;Observable 是惰性的，也就是说在订阅之前不会执行任何操作。&lt;/li&gt;
&lt;li&gt;Observable 可以发出多个值，包括零个或多个值。&lt;/li&gt;
&lt;li&gt;可以使用各种 RxJS 操作符对 Observable 进行转换和组合，以创建新的定制流。&lt;/li&gt;
&lt;li&gt;Observable 非常适合处理复杂的异步操作，例如实时数据流或事件驱动编程。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;参考&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/javascript-everyday/javascript-theory-promise-vs-observable-d3087bc1239a&quot;&gt;JavaScript Theory: Promise vs Observable - Medium&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/questions/37364973/what-is-the-difference-between-promises-and-observables&quot;&gt;angular - What is the difference between Promises and Observables? - Stack Overflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://auth0.com/blog/javascript-promises-vs-rxjs-observables/&quot;&gt;JavaScript Promises vs. RxJS Observables&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;模版语法的简单实现&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;const name = &apos;Nexmoe&apos;;
const message = &apos;My name is {{name}} and I\&apos;m {{getAge(20)}} years old.&apos;;

function getAge(age) {
  return age;
}

const replacedMessage = message.replace(/\{\{(.*?)\}\}/g, (match, variableOrFunction) =&amp;gt; {
  const trimmedValue = variableOrFunction.trim();

  if (trimmedValue.includes(&apos;(&apos;)) {  // 如果占位符包含括号，则表示为带参数的函数替换
    const [functionName, ...args] = trimmedValue.split(/\(|\)/).filter(Boolean);
    const func = eval(functionName);
    return func(...args);
  } else {  // 否则为变量替换
    return eval(trimmedValue);
  }
});

onsole.log(replacedMessage);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;先检查占位符中是否包含括号，如果包含括号，则表示是一个带参数的函数调用。使用&lt;code&gt;split&lt;/code&gt;方法和正则表达式来解析函数名和参数，并将其存储在&lt;code&gt;functionName&lt;/code&gt;和&lt;code&gt;args&lt;/code&gt;变量中。然后，使用&lt;code&gt;eval&lt;/code&gt;函数将函数名转换为实际的函数对象，并使用扩展运算符 (&lt;code&gt;...&lt;/code&gt;) 将参数作为参数列表传递给函数。函数执行后，将返回值作为替换后的字符串返回。&lt;/p&gt;
&lt;p&gt;如果占位符不包含括号，则表示是一个变量。直接使用&lt;code&gt;eval&lt;/code&gt;函数将变量名转换为实际的变量值，并返回其值作为替换后的字符串。&lt;/p&gt;
&lt;p&gt;⚠️ 注意：使用&lt;code&gt;eval&lt;/code&gt;函数执行代码具有一定的安全风险，因为它可以执行任意的 JavaScript 代码。有相当多的建议建议不使用&lt;code&gt;eval&lt;/code&gt;。准备过段时间研究研究不用&lt;code&gt;eval&lt;/code&gt;的方法。&lt;/p&gt;
&lt;h2&gt;MVVM 是什么&lt;/h2&gt;
&lt;p&gt;MVVM 代表 Model-View-ViewModel，在 MVVM 中，Model 表示应用程序的数据和业务逻辑，View 表示用户界面，ViewModel 充当 Model 和 View 之间的中介。&lt;/p&gt;
&lt;h3&gt;模型（Model）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;模型代表应用程序中的数据和业务逻辑。&lt;/li&gt;
&lt;li&gt;它可以是从服务器获取的数据、本地存储的数据或通过其他方式获取的数据。&lt;/li&gt;
&lt;li&gt;模型通常实现了一些方法来操作、存储和管理数据。&lt;/li&gt;
&lt;li&gt;对应的是组件中的 data、props 属性。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;视图（View）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;视图是用户界面的可见部分。&lt;/li&gt;
&lt;li&gt;它负责展示数据给用户，并接收用户的交互操作。&lt;/li&gt;
&lt;li&gt;在 Vue.js 中，视图通常由 Vue 组件表示，可以包含 HTML 模板和样式。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;视图模型（ViewModel）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;视图模型是连接模型和视图的中间层。&lt;/li&gt;
&lt;li&gt;视图模型通常包含了与视图相关的数据、计算属性和方法，以及与模型交互的逻辑。&lt;/li&gt;
&lt;li&gt;通过双向绑定（data-binding）将视图和模型连接起来。当模型中的数据发生变化时，视图会自动更新。通过 DOM 事件监听，当用户在视图中输入数据或进行其他交互操作时，视图模型会自动更新模型中的数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;优势&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;分离关注点：将数据逻辑与视图逻辑分离，使代码更易于维护和测试。&lt;/li&gt;
&lt;li&gt;提高开发效率：通过双向数据绑定和声明式编程风格，减少了手动操作 DOM 的代码量。&lt;/li&gt;
&lt;li&gt;可重用性：通过组件化的方式，视图和视图模型可以在不同的应用程序中进行复用。&lt;/li&gt;
&lt;li&gt;响应式更新：当模型中的数据发生变化时，视图自动更新，提供了更好的用户体验。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;参考&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://www.zhihu.com/question/327050991&quot;&gt;为什么尤雨溪尤大说 VUE 没有完全遵循 MVVM？ - 知乎&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://juejin.cn/post/6879300070962003982&quot;&gt;Vue 的 MVVM 思想（包含三个常见面试题） - 掘金&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html&quot;&gt;MVC，MVP 和 MVVM 的图示 - 阮一峰的网络日志&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://012.vuejs.org/guide/&quot;&gt;Getting Started - vue.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.logrocket.com/comparing-vue-js-to-new-javascript-frameworks/&quot;&gt;Comparing Vue.js to new JavaScript frameworks - LogRocket Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;MVC 是什么&lt;/h2&gt;
&lt;p&gt;MVC 这个概念已经存在很久了，用了这么多年，今天了解一下概念做个总结。&lt;/p&gt;
&lt;p&gt;MVC（Model-View-Controller）设计模式将应用程序中的对象分为三个角色：模型（Model）、视图（View）和控制器（Controller）。该模式不仅定义了对象在应用程序中的角色，还定义了对象之间的通信方式。每种类型的对象都通过抽象边界与其他类型的对象分离，并在这些边界上与其他类型的对象进行通信。应用程序中某种 MVC 类型的对象的集合有时被称为层，例如模型层。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/848723f97c7a1b862e10abe0445da348.png&quot; alt=&quot;848723f97c7a1b862e10abe0445da348.png&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;模型（Model）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;封装应用程序特定的数据，并定义操作和处理数据的逻辑。&lt;/li&gt;
&lt;li&gt;可以表示应用程序中的实体，如游戏中的角色或地址簿中的联系人。&lt;/li&gt;
&lt;li&gt;可以与其他模型对象建立关联，形成对象图。&lt;/li&gt;
&lt;li&gt;应该存储应用程序的持久状态数据。&lt;/li&gt;
&lt;li&gt;不应与呈现数据和用户界面相关的视图对象直接连接。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;视图（View）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;用户可见的对象，负责显示数据和响应用户操作。&lt;/li&gt;
&lt;li&gt;知道如何绘制自身，并可以与用户进行交互。&lt;/li&gt;
&lt;li&gt;通常通过控制器对象从模型对象中获取数据进行展示和编辑。&lt;/li&gt;
&lt;li&gt;在 MVC 应用程序中与模型对象解耦，提供一致性和重用性。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;控制器（Controller）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;充当视图对象和模型对象之间的中介。&lt;/li&gt;
&lt;li&gt;负责处理用户操作，并将其传递给模型层进行数据处理和更新。&lt;/li&gt;
&lt;li&gt;可以执行应用程序的设置和协调任务，管理其他对象的生命周期。&lt;/li&gt;
&lt;li&gt;在模型对象发生变化时，将新的模型数据传递给视图对象进行显示。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;优势&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;提供良好的应用程序设计，使对象更具可重用性和接口定义明确性。&lt;/li&gt;
&lt;li&gt;支持应用程序的可扩展性，易于添加新功能和模块。&lt;/li&gt;
&lt;li&gt;分离关注点，使代码更易于维护和测试。&lt;/li&gt;
&lt;li&gt;应用程序的模型层、视图层和控制层之间保持了清晰的分离，实现了代码的结构化和职责的明确划分，从而提高了应用程序的可维护性和可扩展性。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;参考&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.apple.com/library/archive/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html&quot;&gt;https://developer.apple.com/library/archive/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;为什么 Bun 这么快&lt;/h2&gt;
&lt;h3&gt;JavaScriptCore 引擎&lt;/h3&gt;
&lt;p&gt;Bun 使用 JavaScriptCore 引擎，这是 Safari 浏览器使用的引擎，而不是基于 Chromium 的浏览器和 Node.js 使用的 V8 引擎。JavaScriptCore 引擎经过了针对更快启动时间的优化，这有助于 Bun 的速度。&lt;/p&gt;
&lt;h3&gt;性能分析和优化&lt;/h3&gt;
&lt;p&gt;大量的性能优化。Bun 的初衷就是要快。&lt;a href=&quot;https://dev.to/builderio/a-first-look-at-bun-is-it-really-3x-faster-than-nodejs-and-deno-45od&quot;&gt;[2]&lt;/a&gt;。&lt;/p&gt;
&lt;h3&gt;Zig 语言&lt;/h3&gt;
&lt;p&gt;Bun 利用 Zig 语言进行低级内存控制和消除隐藏控制流。Zig 的设计原则注重性能，通过利用 Zig，Bun 可以实现更好的内存管理和控制，从而提高速度 &lt;a href=&quot;https://dev.to/builderio/a-first-look-at-bun-is-it-really-3x-faster-than-nodejs-and-deno-45od&quot;&gt;[2]&lt;/a&gt;。&lt;/p&gt;
&lt;h3&gt;参考&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://bun.sh/blog/bun-v1.0&quot;&gt;Bun 1.0 | Bun Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dev.to/builderio/a-first-look-at-bun-is-it-really-3x-faster-than-nodejs-and-deno-45od&quot;&gt;A first look at Bun: is it really 3x faster than Node.js and Deno? - DEV Community&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content:encoded><category>post</category></item><item><title>自建 Sentry 使用 script 启用时无效</title><link>https://nexmoe.com/zh/1VEWBDS</link><guid isPermaLink="true">https://nexmoe.com/zh/1VEWBDS</guid><pubDate>Sun, 22 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;最近在服务器上面自建了 Sentry。&lt;/p&gt;
&lt;p&gt;用 script 方法加入到网站后，始终没有效果，然后在控制台中发现了下面的报错。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Sentry loader you are trying to use isn&apos;t working anymore, check your configuration.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;于是去 Github 上找了下，看着应该是国内网络的问题。&lt;/p&gt;
&lt;p&gt;在 sentry/sentry.conf.py 内添加下面内容可以解决。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;JS_SDK_LOADER_DEFAULT_SDK_URL = &quot;https://browser.sentry-cdn.com/%s/bundle.tracing.replay.debug.min.js&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后记得重启 Sentry 的 Docker 服务&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo docker compose restart
sudo docker compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/getsentry/sentry/issues/22715&quot;&gt;Sentry JS lazily-loadable loader doesn&apos;t work · Issue #22715 · getsentry/sentry&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>JavaScript 总结、比较</title><link>https://nexmoe.com/zh/20231020-JavaScript%20%E6%80%BB%E7%BB%93%E3%80%81%E6%AF%94%E8%BE%83</link><guid isPermaLink="true">https://nexmoe.com/zh/20231020-JavaScript%20%E6%80%BB%E7%BB%93%E3%80%81%E6%AF%94%E8%BE%83</guid><pubDate>Fri, 20 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;JS Class 中的 Static 是什么&lt;/h2&gt;
&lt;p&gt;今天在看一个有关 JavaScript Class 的 Static 属性的文档，一开始看的英文版本，描述的比较难以理解，然后看中文版，翻译的也比较难以理解。&lt;/p&gt;
&lt;p&gt;英文&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We can also assign a method to the class as a whole. Such methods are called static.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;中文&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;我们可以把一个方法作为一个整体赋值给类。这样的方法被称为 静态的（static）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;实际上 Static 的概念很简单。在 JavaScript 中，&lt;code&gt;static&lt;/code&gt; 是一个关键字，用于定义类的静态方法或静态属性。静态方法和静态属性属于类本身，而不是类的实例。&lt;strong&gt;这意味着它们可以直接通过类来调用，而无需实例化类。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;静态方法是附加在类本身上的方法，而不是类的实例。它们通常用于执行与类相关的操作，而不依赖于类的实例状态。静态方法可以在类声明中使用 &lt;code&gt;static&lt;/code&gt; 关键字进行定义，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;class MyClass {
  static staticMethod() {
    console.log(&apos;This is a static method&apos;);
  }
}

MyClass.staticMethod(); // 调用静态方法
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在上面的例子中，&lt;code&gt;staticMethod()&lt;/code&gt; 可以直接通过类 &lt;code&gt;MyClass&lt;/code&gt; 来调用，而不需要创建 &lt;code&gt;MyClass&lt;/code&gt; 的实例。静态方法在类的实例化过程中是不可继承的，它们只能由类本身调用。&lt;/p&gt;
&lt;p&gt;类的静态属性也是通过 &lt;code&gt;static&lt;/code&gt; 关键字进行定义的，它们是类的共享属性，不属于类的实例。静态属性可以在类声明中直接定义。例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;class MyClass {
  static staticProperty = &apos;This is a static property&apos;;
}

console.log(MyClass.staticProperty); // 访问静态属性
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在上面的例子中，&lt;code&gt;staticProperty&lt;/code&gt; 是一个静态属性，可以直接通过类 &lt;code&gt;MyClass&lt;/code&gt; 来访问。静态属性在类的实例中是不可用的，它们只能通过类本身来访问。&lt;/p&gt;
&lt;h3&gt;参考&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://javascript.info/static-properties-methods&quot;&gt;Static properties and methods&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://zh.javascript.info/static-properties-methods&quot;&gt;静态属性和静态方法&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;【总结比较】type 和 interface 的区别&lt;/h2&gt;
&lt;p&gt;在 TypeScript 中，&lt;code&gt;type&lt;/code&gt;和&lt;code&gt;interface&lt;/code&gt;是用来定义类型的关键字，它们有一些区别和特点。&lt;/p&gt;
&lt;h3&gt;相同点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;都可以用来定义对象、函数、联合类型等。&lt;/li&gt;
&lt;li&gt;都可以用来拓展（extends）其他类型。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;不同点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;type&lt;/code&gt;可以声明基本类型别名、联合类型、交叉类型等复杂类型，而&lt;code&gt;interface&lt;/code&gt;只能用来描述对象结构的类型 [[1]]&lt;a href=&quot;https://nexmoe.com/%5B2&quot;&gt;https://zhuanlan.zhihu.com/p/558315566&lt;/a&gt;](https://juejin.cn/post/6844903749501059085)。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;type&lt;/code&gt;可以使用&lt;code&gt;typeof&lt;/code&gt;获取实例的类型进行赋值，而&lt;code&gt;interface&lt;/code&gt;不支持 &lt;a href=&quot;https://juejin.cn/post/6844903749501059085&quot;&gt;[2]&lt;/a&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;interface&lt;/code&gt;支持声明合并，可以将多个同名的接口进行合并，而&lt;code&gt;type&lt;/code&gt;不支持声明合并 [[1]]&lt;a href=&quot;https://nexmoe.com/%5B2&quot;&gt;https://zhuanlan.zhihu.com/p/558315566&lt;/a&gt;](https://juejin.cn/post/6844903749501059085)。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;总结&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;一般情况下，如果能用&lt;code&gt;interface&lt;/code&gt;实现，就优先使用&lt;code&gt;interface&lt;/code&gt;，因为它扩展起来更方便，提示也更友好 &lt;a href=&quot;https://juejin.cn/post/6844903749501059085&quot;&gt;[2]&lt;/a&gt;。适用于定义对象结构类型和需要进行声明合并的场景。&lt;/li&gt;
&lt;li&gt;如果需要定义复杂类型，或者需要使用&lt;code&gt;typeof&lt;/code&gt;获取实例的类型进行赋值，就使用&lt;code&gt;type&lt;/code&gt;&lt;a href=&quot;https://juejin.cn/post/6844903749501059085&quot;&gt;[2]&lt;/a&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;其它&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;元组类型是 TypeScript 中的一种特殊数据类型，与普通数组不同的是，元组中的每个元素可以具有不同的类型。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;参考&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/558315566&quot;&gt;TypeScript 中 type 和 interface 有什么区别？ - 知乎&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://juejin.cn/post/6844903749501059085&quot;&gt;Typescript 中的 interface 和 type 到底有什么区别 - 掘金&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://juejin.cn/post/7100017218305392647&quot;&gt;TS 篇-type 和 interface 的区别 - 掘金&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://juejin.cn/post/7072945053936648200&quot;&gt;type 与 interface 的区别，你真的懂了吗？ - 掘金&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ts.xcatliu.com/advanced/tuple.html&quot;&gt;元组 · TypeScript 入门教程&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;【总结】JavaScript 变量作用域和闭包&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Lexical Environment&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;每个运行的函数、代码块或脚本都有一个关联的 Lexical Environment 对象，它用来存储局部变量和函数声明。&lt;/li&gt;
&lt;li&gt;Lexical Environment 有两个组成部分：Environment Record（存储变量）和对外部 Lexical Environment 的引用。&lt;/li&gt;
&lt;li&gt;函数在执行时会生成一个内部的 Lexical Environment 来存储局部变量和参数。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;变量&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;变量实际上就是 Lexical Environment 的属性。读取/修改变量就是读取/修改这个对象的属性。&lt;/li&gt;
&lt;li&gt;函数声明会被立即初始化，但 let/const 变量要到声明后才能读取。&lt;/li&gt;
&lt;li&gt;块级作用域 - 在 {} 内声明的变量只在块内可见。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;嵌套函数&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;嵌套函数可以访问外部函数的变量，这使其可以封装外部变量。&lt;/li&gt;
&lt;li&gt;嵌套函数会通过 Environment 属性记住它被创建的位置，所以它总能访问该位置的外部变量。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;闭包&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;闭包是可以记住外部变量并访问这些变量的函数。&lt;/li&gt;
&lt;li&gt;JavaScript 中所有函数都是天然的闭包，它们通过 Environment 属性实现。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;垃圾回收&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;如果嵌套函数被引用，则外部 Lexical Environment 不会被回收。&lt;/li&gt;
&lt;li&gt;但是如果外部变量没有被嵌套函数使用，引擎会对其进行优化，使其无法在嵌套函数中访问。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;其他&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;理解 Lexical Environment 和闭包的工作原理可以更好地编写 JavaScript 代码。&lt;/li&gt;
&lt;li&gt;嵌套函数和闭包在组织代码和封装变量方面很有用。&lt;/li&gt;
&lt;li&gt;变量优化可能会使开发调试变得困难。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://javascript.info/closure&quot;&gt;Variable scope, closure&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;【总结】async 和 await 使用时的注意点&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;使用&lt;code&gt;await&lt;/code&gt;命令时，最好将其放在&lt;code&gt;try...catch&lt;/code&gt;代码块中处理可能的&lt;code&gt;rejected&lt;/code&gt;结果，或者使用&lt;code&gt;catch()&lt;/code&gt;方法捕获错误。&lt;/li&gt;
&lt;li&gt;多个&lt;code&gt;await&lt;/code&gt;命令后面的异步操作如果互不依赖，应该同时触发，可以使用&lt;code&gt;Promise.all()&lt;/code&gt;方法或者使用多个变量并行赋值的方式。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;await&lt;/code&gt;命令只能在&lt;code&gt;async&lt;/code&gt;函数中使用，如果在普通函数中使用会报错。如果在普通函数中使用&lt;code&gt;await&lt;/code&gt;，可能会导致异步操作并发执行而不是继发执行，正确的做法是使用&lt;code&gt;for&lt;/code&gt;循环或者&lt;code&gt;reduce()&lt;/code&gt;方法。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;async&lt;/code&gt;函数可以保留运行堆栈，不会中断函数执行，可以在异步任务运行期间继续执行其他操作。这样可以保留错误堆栈的完整性。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://wangdoc.com/es6/async&quot;&gt;async 函数&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function&quot;&gt;async function - JavaScript | MDN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await&quot;&gt;await - JavaScript | MDN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;【总结比较】遍历语法的比较&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;最原始的遍历方法是使用&lt;code&gt;for&lt;/code&gt;循环，但这种写法相对繁琐。&lt;/li&gt;
&lt;li&gt;数组提供了内置的&lt;code&gt;forEach&lt;/code&gt;方法，可以简化遍历操作，但无法中途跳出循环。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;for...in&lt;/code&gt;循环可以遍历数组的键名，但存在一些缺点，如键名是字符串、会遍历手动添加的其他键和原型链上的键，以及遍历顺序不确定。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;for...of&lt;/code&gt;循环是一种新的遍历语法，相比其他方法具有以下优点：
&lt;ul&gt;
&lt;li&gt;语法简洁，类似于&lt;code&gt;for...in&lt;/code&gt;循环。&lt;/li&gt;
&lt;li&gt;不同于&lt;code&gt;forEach&lt;/code&gt;方法，可以使用&lt;code&gt;break&lt;/code&gt;、&lt;code&gt;continue&lt;/code&gt;和&lt;code&gt;return&lt;/code&gt;来控制循环。&lt;/li&gt;
&lt;li&gt;提供了统一的遍历数据结构的接口。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使用&lt;code&gt;for...of&lt;/code&gt;循环可以更方便地遍历数组，同时具有灵活控制和统一操作接口的优势。&lt;/p&gt;
&lt;hr /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://wangdoc.com/es6/iterator&quot;&gt;Iterator 和 for...of 循环&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>VS Code 插件 Monitor Pro - 监控一切你在意的资源信息</title><link>https://nexmoe.com/zh/EPJFDV</link><guid isPermaLink="true">https://nexmoe.com/zh/EPJFDV</guid><pubDate>Sat, 07 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Monitor Pro 是一个全面的资源监控工具，旨在帮助你实时跟踪重要的系统指标并提供直观的展现方式。无论你是什么职业，如果你用 VS Code，请不要错过它。&lt;/p&gt;
&lt;h2&gt;安装使用&lt;/h2&gt;
&lt;p&gt;安装后会自动启用该插件。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=nexmoe.monitor-pro&quot;&gt;https://marketplace.visualstudio.com/items?itemName=nexmoe.monitor-pro&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;屏幕截图&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/f4994d4cc1b09a7c8429191762d6c085.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/6a860a03d54f14ccb9c5b918118abb44.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/4739faf7471aa42625e76fad8efe4419.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;功能特点&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[ ] &lt;strong&gt;资源监控&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;[x] &lt;strong&gt;CPU 使用率&lt;/strong&gt;：监控 CPU 利用率的百分比，以了解系统正在利用多少处理能力。&lt;/li&gt;
&lt;li&gt;[x] &lt;strong&gt;CPU 频率&lt;/strong&gt;：跟踪当前 CPU 频率，以了解系统如何动态调整其处理能力。&lt;/li&gt;
&lt;li&gt;[x] &lt;strong&gt;CPU 温度&lt;/strong&gt;：（如果可以的话）监控温度。&lt;/li&gt;
&lt;li&gt;[x] &lt;strong&gt;内存使用&lt;/strong&gt;：关注计算机的内存消耗情况。&lt;/li&gt;
&lt;li&gt;[x] &lt;strong&gt;网络使用&lt;/strong&gt;：跟踪机器上的网络活动，包括传入和传出的数据传输速率。&lt;/li&gt;
&lt;li&gt;[x] &lt;strong&gt;文件系统使用&lt;/strong&gt;（Linux、macOS）：提供磁盘的读写速率。&lt;/li&gt;
&lt;li&gt;[x] &lt;strong&gt;电池百分比和充电状态&lt;/strong&gt;：如果你使用的是笔记本电脑或便携设备，此功能可让你监控电池电量和充电状态。&lt;/li&gt;
&lt;li&gt;[x] &lt;strong&gt;操作系统发行版名称&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;[ ] &lt;strong&gt;磁盘使用&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;[x] &lt;strong&gt;排序&lt;/strong&gt;：自定义监控资源的显示顺序，方便一目了然地监控它们。&lt;/li&gt;
&lt;li&gt;[x] &lt;strong&gt;刷新间隔&lt;/strong&gt;：设置更新资源指标的刷新间隔。&lt;/li&gt;
&lt;li&gt;[x] &lt;strong&gt;无布局移位&lt;/strong&gt;：确保状态栏中元素的位置和大小不会意外改变。&lt;/li&gt;
&lt;li&gt;[x] &lt;strong&gt;远程 SSH 资源监控&lt;/strong&gt;：你可以在远程 SSH 连接的设备上跟踪重要
的系统指标。&lt;/li&gt;
&lt;li&gt;[ ] &lt;strong&gt;高占用率警报&lt;/strong&gt;：当任何监控的资源达到高占用水平时，接收警报。&lt;/li&gt;
&lt;li&gt;[ ] &lt;strong&gt;仪表板&lt;/strong&gt;：我希望在一个页面上显示你关心的所有信息，并配备丰富的图表。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;愿景&lt;/h2&gt;
&lt;p&gt;我深知监控信息的重要性，所以我的目标是打造一个最全面、最直观的监控工具，让你轻松掌握系统状态。开发 Monitor Pro 的初衷是为了满足大家对系统监控的各种需求。&lt;/p&gt;
&lt;p&gt;同时在未来我也希望集成图表的设计，让这些数据更加直观易懂。你可以通过这些图表清楚地看到系统各项指标的变化趋势和相互关系。这样，你就能轻松地了解系统的性能表现。并能够基于这些指标做出明智的决策。&lt;/p&gt;
&lt;h2&gt;为什么要开发这款插件？&lt;/h2&gt;
&lt;p&gt;为了在使用 VS Code 的 Remote SSH 时提供一种全面的资源监控工具，以便更好地管理和监控服务器的状态。&lt;/p&gt;
&lt;p&gt;详细参考：&lt;a href=&quot;https://juejin.cn/post/7284885060338155539&quot;&gt;https://juejin.cn/post/7284885060338155539&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;建议反馈&lt;/h2&gt;
&lt;p&gt;我非常重视用户的反馈和意见，因为它们对于我改进和完善产品至关重要。有好的建议或者遇到了 BUG，请前来反馈：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/nexmoe/vscode-monitor-pro/issues&quot;&gt;https://github.com/nexmoe/vscode-monitor-pro/issues&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;支持我&lt;/h2&gt;
&lt;p&gt;来 &lt;a href=&quot;https://github.com/nexmoe/vscode-monitor-pro&quot;&gt;Github&lt;/a&gt; 点个 star 或是来 &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=nexmoe.monitor-pro&amp;amp;ssr=false#review-details&quot;&gt;VS Code 市场&lt;/a&gt; 给个五星好评吧！&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>动画 PNG(APNG) 转 GIF 并无限循环</title><link>https://nexmoe.com/zh/1GSAPJA</link><guid isPermaLink="true">https://nexmoe.com/zh/1GSAPJA</guid><pubDate>Fri, 06 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;今天在网上找了些 PNG 格式的动态表情包&lt;s&gt;我是不会告诉你是我是在 LINE 偷的表情包的&lt;/s&gt;，于是了解到是 APNG 这种格式。由于微信和 QQ 不支持 APNG，所以就把 APNG 转为 GIF 了，在使用 APNG 转换成 GIF 后，发现在微信上只能播放一次，就产生了如何批量修改 GIF 的循环次数的问题。&lt;/p&gt;
&lt;p&gt;所以准备简单介绍一下 APNG。并提供了一个在线工具，可以将 APNG 批量转换为 GIF，但是该工具不能实现无限循环。所以分享了一个批量修改 GIF 循环次数的方法，使用了 Node.js 和批处理脚本两种不同的实现方式。方便 Node 开发者和使用 Windows 的普通用户直接批量处理。&lt;/p&gt;
&lt;h2&gt;APNG 是什么？&lt;/h2&gt;
&lt;p&gt;APNG（Animated Portable Network Graphics）是 PNG 的位图动画扩展，可以实现 PNG 格式的动态图片效果。APNG 相比于 GIF 在图片质量和细节表现方面更有优势，而且随着越来越多的浏览器对 APNG 的支持，它有望成为下一代动态图的标准之一。主要有以下区别：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;图片质量：GIF 最多支持 256 种颜色，并且不支持 Alpha 透明通道，这导致 GIF 在色彩丰富的图片和含有半透明效果的图片上质量较差。而 APNG 可以支持更高质量的图片，包括更多的颜色和 Alpha 透明通道，使得动画效果更加细腻。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;构成原理：APNG 和 GIF 都是由多帧构成的动画，但是 APNG 的构成原理允许超自然向下兼容。APNG 的第一帧是标准的 PNG 图片，即使浏览器不认识 APNG 后面的动画数据，也可以无障碍显示第一帧。而如果浏览器支持 APNG，就可以播放后面的帧，实现动画效果。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;浏览器支持：从 Chrome 59 开始，Chrome 浏览器开始支持 APNG，使得大部分浏览器都能显示 APNG 动画。唯独 IE 浏览器不支持 APNG。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;更多内容请参考：&lt;a href=&quot;https://xtaolink.cn/268.html&quot;&gt;https://xtaolink.cn/268.html&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;APNG 批量转 GIF&lt;/h2&gt;
&lt;p&gt;该工具可以批量将 APNG 转为 GIF，不过不能无限循环。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cdkm.com/cn/png-to-gif&quot;&gt;https://cdkm.com/cn/png-to-gif&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;批量修改 GIF 为无限循环&lt;/h2&gt;
&lt;h3&gt;bat（普通用户请使用该方法）&lt;/h3&gt;
&lt;p&gt;下面是使用批处理脚本（.bat）来实现相同的功能：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@echo off
setlocal enabledelayedexpansion

set &quot;directoryPath=C:\path\to\directory&quot;

for /r &quot;%directoryPath%&quot; %%f in (*.gif) do (
    echo Modifying %%~nxf
    call :modifyGif &quot;%%f&quot;
)

exit /b

:modifyGif
set &quot;filePath=%~1&quot;

set /p data=&amp;lt;&quot;%filePath%&quot;
set &quot;index=!data:~0,16!&quot;
set &quot;modifiedData=!data:~0,16!!data:~16,1!!data:~17,1!!data:~19!&quot;

echo.!modifiedData!&amp;gt;&quot;%filePath%&quot;

exit /b
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;请将&lt;code&gt;C:\path\to\directory&lt;/code&gt;替换为实际的目录路径。将上述代码保存为&lt;code&gt;.bat&lt;/code&gt;文件，双击运行即可。脚本将遍历指定目录下的所有&lt;code&gt;.gif&lt;/code&gt;文件，并对其进行修改。&lt;/p&gt;
&lt;p&gt;请注意，批处理脚本的功能相对有限，无法直接读取二进制文件。上述脚本通过读取文件的第一行来模拟读取文件内容。在修改文件时，它直接将修改后的数据写入文件，而不进行二进制操作。这种方法可能不适用于所有情况，尤其是处理大型文件时可能会有性能问题。如果需要更复杂的二进制文件处理，请考虑使用其他编程语言或工具来实现。&lt;/p&gt;
&lt;h3&gt;Node(Nexmoe 使用的该方法）&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/126036c1db438306d478d218435527cc.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const fs = require(&apos;fs&apos;);
const path = require(&apos;path&apos;);

function unlimitedGifRepetitions(path) {
  const data = fs.readFileSync(path);

  const index = data.indexOf(Buffer.from([0x21, 0xFF, 0x0B]));
  if (index &amp;lt; 0) {
    throw new Error(`Cannot find Gif Application Extension in ${path}`);
  }

  data[index + 16] = 255;
  data[index + 17] = 255;

  return data;
}

function batchModifyGifFilesInDirectory(directoryPath) {
  fs.readdir(directoryPath, (err, files) =&amp;gt; {
    if (err) {
      console.error(&apos;Error reading directory:&apos;, err);
      return;
    }

    files.forEach(file =&amp;gt; {
      const filePath = path.join(directoryPath, file);
      const fileExtension = path.extname(file);

      if (fileExtension === &apos;.gif&apos;) {
        try {
          const modifiedData = unlimitedGifRepetitions(filePath);
          fs.writeFileSync(filePath, modifiedData);
          console.log(`Modified ${file}`);
        } catch (error) {
          console.error(`Error modifying ${file}:`, error);
        }
      }
    });
  });
}

const directoryPath = &apos;./path/to/directory&apos;;
batchModifyGifFilesInDirectory(directoryPath);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;请注意，上述代码使用了 Node.js 的文件系统模块（&lt;code&gt;fs&lt;/code&gt;）来读取和写入文件。此外，需要将&lt;code&gt;./path/to/directory&lt;/code&gt;替换为实际的目录路径。在执行该脚本之前，请确保已经安装了 Node.js。&lt;/p&gt;
&lt;p&gt;该脚本将批量遍历指定目录下的所有文件，并对后缀名为&lt;code&gt;.gif&lt;/code&gt;的文件调用&lt;code&gt;unlimitedGifRepetitions&lt;/code&gt;函数进行修改。修改后的数据将写回原始文件。在控制台输出中，你可以看到每个已修改的文件的信息或任何出现的错误信息。&lt;/p&gt;
&lt;p&gt;更多内容参考：&lt;a href=&quot;https://www.b612.me/golang/232.html&quot;&gt;https://www.b612.me/golang/232.html&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;更好的工具&lt;/h2&gt;
&lt;p&gt;这个批处理工具可以将多个 APNG 文件批量转换为 GIF 文件，并且可以对转换后的 GIF 文件批量设置为无限循环。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/nexmoe/batch-apng2gif&quot;&gt;https://github.com/nexmoe/batch-apng2gif&lt;/a&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>VSCode Monitor Pro</title><link>https://nexmoe.com/zh/products/vscode-monitor-pro</link><guid isPermaLink="true">https://nexmoe.com/zh/products/vscode-monitor-pro</guid><description>还在为 VS Code 卡顿而烦恼？还在担心服务器资源不足？Monitor Pro 让您一眼看穿系统瓶颈，告别性能焦虑。</description><pubDate>Wed, 04 Oct 2023 10:52:38 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20240822_screenshot2.cq2kCk7h.png&quot; alt=&quot;VSCode Monitor Pro&quot; /&gt;&lt;/p&gt;&lt;p&gt;还在为 VS Code 卡顿而烦恼？还在担心服务器资源不足？Monitor Pro 让您一眼看穿系统瓶颈，告别性能焦虑。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=nexmoe.monitor-pro&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://marketplace.visualstudio.com/items?itemName=nexmoe.monitor-pro&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/vscode-monitor-pro&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=nexmoe.monitor-pro&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;立即使用 Monitor Pro&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/nexmoe/vscode-monitor-pro&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;GitHub&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;import FeatureSection from &apos;../../components/products/FeatureSection.astro&apos;
import StatsSection from &apos;../../components/products/StatsSection.astro&apos;
import TargetUsersSection from &apos;../../components/products/TargetUsersSection.astro&apos;
import { TestimonialsSection } from &apos;../../components/products/TestimonialsSection.tsx&apos;
import { Icon } from &apos;astro-icon/components&apos;&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;space-y-36 py-24&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;FeatureSection
title=&quot;告别性能焦虑，掌控全局&quot;
subtitle=&quot;再也不用担心 VS Code 卡死，再也不用猜测服务器是否扛得住，Monitor Pro 让您对系统状态了如指掌&quot;
features={[
{
icon: &apos;mdi:server-network&apos;,
title: &apos;Remote SSH 支持&apos;,
description: &apos;轻松监控 Remote SSH 连接的服务器资源，无需额外配置&apos;
},
{
icon: &apos;mdi:flash&apos;,
title: &apos;9大核心指标实时监控&apos;,
description:
&apos;CPU 爆满、内存不足、磁盘快满了？所有问题一目了然，告别&quot;为什么这么卡&quot;的困惑&apos;
},
{
icon: &apos;mdi:view-dashboard-variant&apos;,
title: &apos;个性化监控面板&apos;,
description: &apos;只关心 CPU 和内存？自定义布局，想看什么就看什么，不浪费一寸屏幕空间&apos;
},
{
icon: &apos;mdi:translate&apos;,
title: &apos;多语言支持&apos;,
description: &apos;中文界面，英文界面，想用什么语言就用什么语言，全球开发者都能轻松上手&apos;
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;StatsSection
title=&quot;9大核心指标，一个都不能少&quot;
subtitle=&quot;从 CPU 到电池，从内存到网络，所有可能影响您开发体验的指标都在这里&quot;
stats={[
{
icon: &apos;mdi:cpu-64-bit&apos;,
value: &apos;CPU 使用率&apos;,
label: &apos;CPU 爆满时 VS Code 卡成 PPT？实时监控，提前预警&apos;
},
{
icon: &apos;mdi:speedometer&apos;,
value: &apos;CPU 频率&apos;,
label: &apos;CPU 降频导致编译慢如蜗牛？频率监控，性能一目了然&apos;
},
{
icon: &apos;mdi:thermometer&apos;,
value: &apos;CPU 温度&apos;,
label: &apos;笔记本烫手？温度过高自动降频，监控温度保护设备&apos;
},
{
icon: &apos;mdi:memory&apos;,
value: &apos;内存使用&apos;,
label: &apos;内存不足导致 VS Code 崩溃？实时监控，及时清理&apos;
},
{
icon: &apos;mdi:wifi&apos;,
value: &apos;网络使用&apos;,
label: &apos;SSH 连接卡顿？网络监控，快速定位是带宽还是延迟问题&apos;
},
{
icon: &apos;mdi:harddisk&apos;,
value: &apos;磁盘使用&apos;,
label: &apos;磁盘空间不足，编译失败？容量监控，提前扩容&apos;
},
{
icon: &apos;mdi:battery&apos;,
value: &apos;电池状态&apos;,
label: &apos;笔记本没电自动关机？电池监控，及时充电&apos;
},
{
icon: &apos;mdi:desktop-classic&apos;,
value: &apos;操作系统&apos;,
label: &apos;系统版本不兼容？系统信息，快速诊断环境问题&apos;
},
{
icon: &apos;mdi:clock-outline&apos;,
value: &apos;系统运行时间&apos;,
label: &apos;服务器重启了？运行时间监控，快速发现异常&apos;
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;TargetUsersSection
title=&quot;这些痛点，您遇到过吗？&quot;
subtitle=&quot;VS Code 用户共同的烦恼，Monitor Pro 一次性解决&quot;
userTypes={[
{
icon: &apos;mdi:code-braces&apos;,
title: &apos;开发者&apos;,
subtitle: &apos;VS Code 卡顿到怀疑人生？编译时系统卡死？&apos;,
tags: [&apos;性能焦虑&apos;, &apos;开发效率&apos;],
features: [
&apos;VS Code 卡顿时一眼看穿是 CPU 还是内存问题&apos;,
&apos;远程服务器卡顿，快速定位是网络还是资源瓶颈&apos;,
&apos;编译大型项目时实时监控系统负载，避免死机&apos;
]
},
{
icon: &apos;mdi:shield-check&apos;,
title: &apos;系统管理员&apos;,
subtitle: &apos;服务器突然变慢，却不知道问题出在哪里？&apos;,
tags: [&apos;故障排查&apos;, &apos;性能优化&apos;],
features: [
&apos;服务器性能异常时快速定位瓶颈，不再盲猜&apos;,
&apos;系统资源不足时及时预警，避免服务中断&apos;,
&apos;故障发生时快速诊断，减少停机时间&apos;
]
},
{
icon: &apos;mdi:flask&apos;,
title: &apos;数据科学家&apos;,
subtitle: &apos;模型训练时不知道资源够不够？GPU 利用率低？&apos;,
tags: [&apos;资源优化&apos;, &apos;训练效率&apos;],
features: [
&apos;模型训练时实时监控 GPU 使用率，避免资源浪费&apos;,
&apos;数据处理任务卡顿时快速定位瓶颈&apos;,
&apos;GPU 温度过高时及时预警，保护硬件&apos;
]
}
]}
/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20240822_screenshot2.cq2kCk7h.png" length="53371" type="image/png"/></item><item><title>用 VS Code 管理服务器，我有独特的服务器管理方式</title><link>https://nexmoe.com/zh/1M3R9E6</link><guid isPermaLink="true">https://nexmoe.com/zh/1M3R9E6</guid><pubDate>Tue, 03 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;自从 Typora 开始收费之后，我彻底转向使用 VS Code（Visual Studio Code）进行文章撰写。作为一款 Markdown 编辑器，它已经完全满足了我的需求。&lt;/p&gt;
&lt;p&gt;然而，我开始思考是否可以将 Visual Studio Code 用作服务器管理器。在此之前，我一直使用 FinalShell 进行服务器管理，这款工具具备以下特点，也是我所喜欢的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;简单的服务器资源监控&lt;/li&gt;
&lt;li&gt;服务器文件浏览&lt;/li&gt;
&lt;li&gt;终端功能&lt;/li&gt;
&lt;li&gt;多服务器管理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当 VS Code 发布 Remote SSH 功能时，我并没有太过关注。该功能的初衷是用于远程开发，而我并没有远程开发的需求。然而，当我开始进行远程开发时，我决定尝试使用 Remote SSH。结果令我惊喜地发现，Remote SSH 非常适合用于服务器管理工作。&lt;/p&gt;
&lt;p&gt;那么，VS Code 有哪些特点，并且满足了我哪些需求呢？&lt;/p&gt;
&lt;h2&gt;VS Code 的特点&lt;/h2&gt;
&lt;h3&gt;多服务器管理&lt;/h3&gt;
&lt;p&gt;通过在你需要访问的远程服务器中配置好 SSH Key，便可以轻松地设置 Remote SSH，并指定服务器的 IP 地址，从而直接通过 Remote SSH 访问服务器。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Host server1
    HostName 服务器 1 的 IP 地址
    User 用户名

Host server2
    HostName 服务器 2 的 IP 地址
    User 用户名
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通过这样的配置，然后就可以方便地在 VS Code 中访问和管理多个服务器。只需单击服务器列表中的相应服务器，即可快速连接到目标服务器，并在远程环境中执行所需的操作。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/4aa3d3b0b76a3beb2ca85c82454b8c49.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;文件浏览器&lt;/h3&gt;
&lt;p&gt;和正常一个项目的使用一样，VS Code 可以打开服务器的一个文件夹。然后我们就可以进行各种各样的文件浏览器的常规操作。还可以使用搜索功能快速查找和定位特定的文件。&lt;/p&gt;
&lt;p&gt;我通常就会直接把账号目录直接打开。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/b4d0fa1ab402d7dbe1e6b7bd447d109e.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;同时还可以直接集成 VS Code 本身拥有的强大的文件编辑能力。&lt;/p&gt;
&lt;p&gt;从此告别 &lt;code&gt;ls&lt;/code&gt;、&lt;code&gt;mkdir&lt;/code&gt;、&lt;code&gt;touch&lt;/code&gt;、&lt;code&gt;vi&lt;/code&gt; 等操作。&lt;/p&gt;
&lt;h3&gt;方便快捷的终端体验&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/531f417e101e290bd87decad3879c606.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;可以同时打开多个终端实例，并在它们之间切换。每个终端实例都可以独立运行命令，并保留其输出历史记录。&lt;/p&gt;
&lt;p&gt;还可以在编辑器的多个标签页或分割视图中同时打开不同的终端实例，以便同时执行不同的命令。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/77be0f069c48211c04cd6bf7083f260f.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;除此之外，在 VS Code 中，可以通过右键单击文件或文件夹，选择&quot;在终端中打开&quot;，快速打开终端并自动切换到对应的路径。再也不用痛苦的到处 &lt;code&gt;cd&lt;/code&gt; 了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/46402274e2d0cb48d95bab74a9820db9.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Docker GUI 管理&lt;/h3&gt;
&lt;p&gt;由于我大部分服务都是放在 Docker 上，所以对于 Docker 的使用是非常高频的。&lt;/p&gt;
&lt;p&gt;如果你在服务器上使用 Docker 进行容器化管理，VS Code 通常就会推荐你安装 Docker 扩展，然后就可以并以图形化界面的形式管理和操作 Docker 容器。可以方便地查看和管理容器、镜像、网络和卷等 Docker 资源，执行常见的 Docker 命令，以及监控容器的状态和日志。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/00f336449edc63e0dba5ffa2f5c1ccd9.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这基本覆盖了大部分 Docker 常用的操作，也让我大部分时间不再需要使用 Portainer 或是命令行了。&lt;/p&gt;
&lt;h3&gt;Git GUI 集成&lt;/h3&gt;
&lt;p&gt;VS Code 提供了强大的 Git GUI 集成功能，可以在代码仓库上进行版本控制和协作。可以直接通过 GUI 进行查看提交历史、比较文件差异、切换分支、合并代码，以及推送和拉取代码等操作。&lt;/p&gt;
&lt;h3&gt;丰富的个性化主题、插件生态&lt;/h3&gt;
&lt;p&gt;如果本身就使用 VS Code，便可以直接继承自己的审美。同时 VS Code 比其他终端管理软件拥有更为丰富丰富的个性化主题选项，可以根据自己的喜好和习惯选择适合的主题。也具有丰富的插件社区。&lt;/p&gt;
&lt;h3&gt;其它&lt;/h3&gt;
&lt;p&gt;除此之外，VS Code 本身就具有跨平台支持、多语言支持等特性，而且它完全免费。&lt;/p&gt;
&lt;h2&gt;如何使用 VS Code 进行服务器管理&lt;/h2&gt;
&lt;p&gt;你需要满足如下条件&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;能够运行 VS Code 的电脑&lt;/li&gt;
&lt;li&gt;正版的 VS Code&lt;/li&gt;
&lt;li&gt;生成 SSH Key 并完成配置&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh&quot;&gt;Remote SSH 插件&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;其实你需要的并不多，核心是 VS Code 中的 Remote SSH 插件。&lt;/p&gt;
&lt;h3&gt;配置 SSH Key&lt;/h3&gt;
&lt;p&gt;你需要在你的电脑上生成 SSH Key，并将公钥配置到服务器上以实现免密登录。你可以在网上查找相关教程了解如何生成和配置 SSH Key。&lt;/p&gt;
&lt;h3&gt;配置 Remote SSH&lt;/h3&gt;
&lt;p&gt;通过 &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh&quot;&gt;这个链接&lt;/a&gt; 安装 Remote SSH 后。&lt;/p&gt;
&lt;p&gt;你可以按照以下步骤来打开和配置 SSH 主机：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在 VS Code 左下方找到 Remote SSH 的图标按钮。&lt;/li&gt;
&lt;li&gt;点击该按钮，然后选择 &quot;Connect to Host&quot; 选项。&lt;/li&gt;
&lt;li&gt;再次点击 &quot;Configure SSH Hosts&quot;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/6e5373285cf66b5e27a5e0226910fc14.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;就可以在 VS Code 中进行配置，指定服务器的 IP 地址和用户名。示例配置如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Host server1
    HostName 服务器 1 的 IP 地址
    User 用户名

Host server2
    HostName 服务器 2 的 IP 地址
    User 用户名
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;完成配置后便可以在左下角直接连接服务器了。&lt;/p&gt;
&lt;h2&gt;插件以及其他推荐&lt;/h2&gt;
&lt;h3&gt;Monitor Pro 插件&lt;/h3&gt;
&lt;p&gt;资源监控，由我开发。&lt;/p&gt;
&lt;p&gt;Monitor Pro 是一款资源监控工具，实时跟踪系统指标。监测 CPU、内存、网络、文件系统使用率，电池百分比和充电状态。可自定义顺序和刷新间隔，提供高占用警报。适用于开发人员、系统管理员和普通用户。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/3a8f65f6452743ca13dbbfca425f0078.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=nexmoe.monitor-pro&quot;&gt;https://marketplace.visualstudio.com/items?itemName=nexmoe.monitor-pro&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Docker 插件&lt;/h3&gt;
&lt;p&gt;如果你在使用 Docker 容器来部署应用程序，这个插件可以帮助你在 VS Code 中管理和调试 Docker 容器。&lt;/p&gt;
&lt;h3&gt;Wakatime 插件&lt;/h3&gt;
&lt;p&gt;统计你在服务器上的摸鱼时间。&lt;/p&gt;
&lt;h3&gt;zsh 与 &lt;a href=&quot;https://ohmyz.sh/&quot;&gt;ohmyzsh&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;使用 &lt;a href=&quot;https://ohmyz.sh/&quot;&gt;ohmyzsh&lt;/a&gt; 以及它的生态，为你的命令行集成自动补全和纠错功能。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>累积布局偏移优化 CLS 完全指南</title><link>https://nexmoe.com/zh/2PRR1J7</link><guid isPermaLink="true">https://nexmoe.com/zh/2PRR1J7</guid><pubDate>Sat, 16 Sep 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;什么是布局偏移&lt;/h2&gt;
&lt;p&gt;一个十几秒的短视频解释清楚。&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe id=&quot;video&quot; width=&quot;100%&quot; style=&quot;aspect-ratio:1.29/1;&quot; frameborder=&quot;0&quot; src=&quot;https://www.ixigua.com/iframe/7279408901542380084?autoplay=0&quot; referrerpolicy=&quot;unsafe-url&quot; allowfullscreen=&quot;&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;更详细的解释是：布局偏移指的是在网页上发生突然变化时，页面中的内容位置发生意外移动的现象。这种情况常常让人感到困扰，因为它会导致阅读中断或误操作。布局偏移通常是由于资源异步加载或动态添加到页面上的 DOM 元素导致的。可能的原因包括具有未知尺寸的图像或视频、字体与其备用字体渲染大小不同，或者第三方广告或小部件动态调整大小。&lt;/p&gt;
&lt;p&gt;难受的是，网站在开发过程中的功能通常与用户体验有很大不同。个性化或第三方内容在开发中的行为通常与生产环境中不同，测试图像通常已经存在于开发者的浏览器缓存中，本地运行的 API 调用通常非常快，延迟几乎不可察觉。&lt;/p&gt;
&lt;h2&gt;什么是 CLS&lt;/h2&gt;
&lt;p&gt;累积布局偏移 CLS（Cumulative Layout Shift）是一个指标。&lt;/p&gt;
&lt;p&gt;是对页面整个生命周期中发生的每个&lt;strong&gt;意外布局变化&lt;/strong&gt;的最大布局变化分数的度量。&lt;/p&gt;
&lt;p&gt;CLS 通过测量实际用户遇到布局偏移的频率来帮助解决布局偏移问题。它可以帮助开发者了解布局偏移在真实用户中发生的情况，从而采取相应的措施进行修复。&lt;/p&gt;
&lt;h2&gt;为什么要优化 CLS&lt;/h2&gt;
&lt;p&gt;布局偏移是一个非常影响用户体验的问题，通过上面那一个简短的视频也能理解。&lt;/p&gt;
&lt;p&gt;布局偏移通常会导致意外点击、页面方向的迷失，最终导致用户受挫。用户往往不会逗留太久。有时也会使用户不按照预计的产品流程走。&lt;/p&gt;
&lt;p&gt;通常优化好布局偏移能够很好的提高用户粘性、用户停留时间等指标。&lt;/p&gt;
&lt;p&gt;Yahoo! JAPAN News 通过降低 CLS 0.2 分，得到如下成果。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/f615ab9aa3a97d41fff1eaf9e5ef24e1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;如何降低 CLS&lt;/h2&gt;
&lt;h3&gt;图片等媒体元素占位&lt;/h3&gt;
&lt;p&gt;在图像、视频等媒体资源元素中始终包含宽度和高度大小属性。或用 CSS 中的 &lt;code&gt;min-height&lt;/code&gt;、&lt;code&gt;aspect-ratio&lt;/code&gt; 或类似的方式保留所需的空间。&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe id=&quot;video&quot; width=&quot;100%&quot; style=&quot;aspect-ratio:16/9;&quot; frameborder=&quot;0&quot; src=&quot;https://www.ixigua.com/iframe/7279409280019595776?autoplay=0&quot; referrerpolicy=&quot;unsafe-url&quot; allowfullscreen=&quot;&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h4&gt;&lt;code&gt;aspect-ratio&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;可以用来直接指定当前元素的比例。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/d7892d445b9b2d15099ddfc1c7c498cd.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/zh-CN/docs/Web/CSS/aspect-ratio&quot;&gt;https://developer.mozilla.org/zh-CN/docs/Web/CSS/aspect-ratio&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;对浏览器的支持：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/58f468d8cf1851977178ef07cdc558d9.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;&lt;code&gt;padding-bottom&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;如果考虑浏览器支持问题仍然可以考虑使用目前一个被广泛接受的基解决方案 &quot;Padding-Top Hack&quot;。这个解决方案需要一个父元素和一个绝对型的子元素。然后计算出长宽比的百分比来设置为 &lt;code&gt;padding-top&lt;/code&gt;。例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;container&quot;&amp;gt;
  &amp;lt;img class=&quot;media&quot; src=&quot;https://nexmoe.com/...&quot; alt=&quot;...&quot;&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;.container {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 Aspect Ratio */
}

.media {
  position: absolute;
  top: 0;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;使用不易产生偏移的 CSS&lt;/h3&gt;
&lt;p&gt;其中 &lt;code&gt;transfrom&lt;/code&gt; 表现很好，以下举几个例子。
用例可以在这里找到：&lt;a href=&quot;https://play.tailwindcss.com/26PxFA6UVI&quot;&gt;https://play.tailwindcss.com/26PxFA6UVI&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&lt;code&gt;zoom&lt;/code&gt; VS &lt;code&gt;transform: scale&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;当 &lt;code&gt;zoom&lt;/code&gt; 会撑大页面并向右偏移时，&lt;code&gt;transform: scale&lt;/code&gt; 只是在原地放大。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/15eaba18394472deef6100ee48779257.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;&lt;code&gt;margin&lt;/code&gt; VS &lt;code&gt;transform: translate&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;margin&lt;/code&gt; 造成父元素变大，&lt;code&gt;transform: translate&lt;/code&gt; 只是让当前元素移动。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/e981f8c8122e8896da63bf31e307621c.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;&lt;code&gt;border&lt;/code&gt; VS &lt;code&gt;box-shadow&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;border&lt;/code&gt; 会撑起父元素，而 &lt;code&gt;box-shadow&lt;/code&gt; 并不会。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/78610670a717636f7395dfc11e87cce8.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;小心你的懒加载&lt;/h3&gt;
&lt;p&gt;懒加载会引起布局的偏移，如果你在有懒加载长列表的里进行跳转，请小心！
无动画进行跳转，能够一定程度上避免该问题。&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe id=&quot;video&quot; width=&quot;100%&quot; style=&quot;aspect-ratio:16/9;&quot; frameborder=&quot;0&quot; src=&quot;https://www.ixigua.com/iframe/7279407080174256694?autoplay=0&quot; referrerpolicy=&quot;unsafe-url&quot; allowfullscreen=&quot;&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h3&gt;小心使用 &lt;code&gt;transition: all&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;在页面首次加载或者跳转页面时，&lt;code&gt;transition: all&lt;/code&gt; 可能会导致元素的 &lt;code&gt;padding&lt;/code&gt; 等从参数为 0 开始渲染，照成页面的抖动。&lt;/p&gt;
&lt;p&gt;这都是痛：
&lt;a href=&quot;https://github.com/theme-nexmoe/hexo-theme-nexmoe/commit/8f2e9d89fc1f58f170d58da598b855065be76233&quot;&gt;Commit：表格以及友情链接图标抖动&lt;/a&gt;
&lt;a href=&quot;https://github.com/theme-nexmoe/hexo-theme-nexmoe/commit/7771f1f1adc03213fac749535af37fb4523badbd&quot;&gt;Commit：修复导航栏抖动问题&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;标签顺序导致的偏移问题&lt;/h3&gt;
&lt;p&gt;由于在移动端上优先展示主要内容，因此侧边栏的 markup 位于主要内容的后面；而在更大的屏幕上，则通过设置 CSS &lt;code&gt;order&lt;/code&gt; 的方式进行排序，将主要内容移到中间（即第二列），伪代码如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export default function MainLayout(props) {
  return (
    &amp;lt;Container&amp;gt;
      &amp;lt;Main className={css`@media screen and (min-width: breakpoint) { order: 0 }`} /&amp;gt;
      &amp;lt;Left className={css`@media screen and (min-width: breakpoint) { order: -1 }`} /&amp;gt;
      &amp;lt;Right className={css`@media screen and (min-width: breakpoint) { order: 1 }`} /&amp;gt;
    &amp;lt;/Container&amp;gt;
  )
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;浏览器在首次绘制时并没有完整解析 DOM、只知道 &lt;code&gt;&amp;lt;Main /&amp;gt;&lt;/code&gt; 的存在、但不知道 &lt;code&gt;&amp;lt;Left /&amp;gt;&lt;/code&gt; 或者 &lt;code&gt;&amp;lt;Right /&amp;gt;&lt;/code&gt; 的存在，才因此将 &lt;code&gt;&amp;lt;Main /&amp;gt;&lt;/code&gt; 渲染进第一列而不是第二列；直到第二次绘制时，浏览器才将 &lt;code&gt;&amp;lt;Main /&amp;gt;&lt;/code&gt; 渲染进第二列、将 &lt;code&gt;&amp;lt;Left /&amp;gt;&lt;/code&gt; 渲染进第一列。&lt;/p&gt;
&lt;p&gt;Chrome 并不是一次完整解析 HTML 的，在以下两种情况下，Chrome 会暂停解析、开始渲染和绘制：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Chrome 解析器在读取了 65535 字节的 HTML 后暂停&lt;/li&gt;
&lt;li&gt;Chrome 在遇到 &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; 标签后，会继续读取约 50 个「Token」之后暂停&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;详细了解请看：&lt;a href=&quot;https://blog.skk.moe/post/fix-blog-cls/&quot;&gt;优化博客的累计布局偏移（CLS）问题&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;网页跳转与前进后退缓存&lt;/h3&gt;
&lt;p&gt;默认情况下，所有浏览器都使用 bfcache，但由于各种原因，有些站点不适合使用 bfcache。有关如何测试和识别阻止 bfcache 使用的任何问题的更多详细信息，请阅读 &lt;a href=&quot;https://web.dev/bfcache/&quot;&gt;bfcache 文章&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;在你离开后，bfcache 将页面保存在浏览器内存中很短的一段时间，所以如果你返回它们，那么它们将完全恢复为你离开时的样子。这意味着完全加载的页面立即可用，而不会出现任何变化。&lt;/p&gt;
&lt;p&gt;现在的 SPA 应用也能很轻易的保证路由跳转页面布局的一致性。记住始终保持你的目录和导航栏在页面的固定位置。&lt;/p&gt;
&lt;h3&gt;字体&lt;/h3&gt;
&lt;p&gt;在下载和渲染网络字体之前，通常有两种处理方式：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用网络字体替代备用字体（FOUT——未样式化文本的闪烁）。&lt;/li&gt;
&lt;li&gt;使用备用字体显示“不可见”文本，直到网络字体可用并且文本可见（FOIT——不可见文本的闪烁）。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;着两种方式都可能导致布局变化。即使文本是不可见的，它仍然使用备用字体进行布局。这意味着使用该字体的文本块以及周围的内容在网络字体加载时会发生布局变化，与 FOUT 的可见字体完全相同。&lt;/p&gt;
&lt;p&gt;以下方法可以帮助你最小化这种问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用 &lt;code&gt;font-display: optional&lt;/code&gt; 可以避免重新布局，因为只有在初始布局时网络字体可用时才会使用它。&lt;/li&gt;
&lt;li&gt;使用匹配度高的备用字体。例如，使用 &lt;code&gt;font-family: &quot;Google Sans&quot;, sans-serif;&lt;/code&gt; 将确保在加载&quot;Google Sans&quot;字体时使用浏览器的无衬线备用字体。如果只使用 &lt;code&gt;font-family: &quot;Google Sans&quot;&lt;/code&gt; 而不指定备用字体，将使用默认字体，而在 Chrome 上默认字体是&quot;Times&quot;，它是比默认无衬线字体的匹配度更差。&lt;/li&gt;
&lt;li&gt;使用新的 &lt;code&gt;size-adjust&lt;/code&gt;、&lt;code&gt;ascent-override&lt;/code&gt;、&lt;code&gt;descent-override&lt;/code&gt; 和 &lt;code&gt;line-gap-override&lt;/code&gt; API 来尽量减小备用字体和网络字体之间的大小差异，详细信息请参阅“&lt;a href=&quot;https://developer.chrome.com/blog/font-fallbacks/&quot;&gt;Improved font fallbacks&lt;/a&gt;”文章。&lt;/li&gt;
&lt;li&gt;使用 &lt;a href=&quot;https://web.dev/optimize-webfont-loading/#the-font-loading-api&quot;&gt;Font Loading API&lt;/a&gt; 可以减少获取所需字体的时间。&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;&amp;lt;link rel=preload&amp;gt;&lt;/code&gt; 尽早加载关键的网络字体。预加载的字体有更高的机会达到首次绘制，这样就不会发生布局变化。&lt;/li&gt;
&lt;li&gt;阅读有关字体最佳实践的“&lt;a href=&quot;https://web.dev/font-best-practices/&quot;&gt;Best practices for fonts&lt;/a&gt;”文章。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;使用真正的骨架屏&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/6f96f6b9d38c994129bf341e69f9db29.png&quot; alt=&quot;骨架屏好坏示例&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;测量 CLS 分数&lt;/h2&gt;
&lt;h3&gt;生产阶段&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/docs/crux/?utm_source=devtools&quot;&gt;Chrome User Experience Report&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pagespeed.web.dev/&quot;&gt;PageSpeed Insights&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://support.google.com/webmasters/answer/9205520&quot;&gt;Search Console (Core Web Vitals report)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/GoogleChrome/web-vitals&quot;&gt;web-vitals JavaScript library&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;实验阶段&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/docs/devtools/&quot;&gt;Chrome DevTools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/docs/lighthouse/overview/&quot;&gt;Lighthouse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pagespeed.web.dev/&quot;&gt;PageSpeed Insights&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://webpagetest.org/&quot;&gt;WebPageTest&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Lighthouse in DevTools&lt;/h3&gt;
&lt;p&gt;能够针对移动设备和桌面设备生成网页的实际性能报告，并能够提供关于如何改进相应网页的建议。&lt;/p&gt;
&lt;p&gt;在本地开发期间从 DevTools 运行 Lighthouse 非常方便。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/c25d059d74f8d09ec7e5c9066040f3eb.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;PageSpeed Insights&lt;/h3&gt;
&lt;p&gt;应该就是在线版的 Lighthouse。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/8aa6b1d4bacbce2ffb2d374af113a583.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Performance in DevTools&lt;/h3&gt;
&lt;p&gt;性能选项卡在 Chrome 的 DevTools 配置文件的所有页面行为在一段时间内记录。时间轴上会出现一个标记为“Experience”的图层，突出显示布局的变化和发生变化的元素。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/dbb8506a320584821597d7e4e510ea6d.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Web Vitals extension&lt;/h3&gt;
&lt;p&gt;最好将 Web vital 扩展视为查找性能问题的抽查工具，而不是全面的调试工具——这是 Chrome 的 DevTools 中的性能选项卡的工作。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/3d73a6efb4ad242754f6b2bd8fcba4bb.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;结语&lt;/h2&gt;
&lt;p&gt;作为一个对自己项目有较高要求的人，平常几乎都会接触到布局偏移优化或者 Lighthouse，只不过之前自己瞎折腾的时候还没有 CLS 这个概念，现在算是对 CLS 有了较为清晰的概念了。
CLS 作为一个非常基础的优化指标，在用户体验上非常重要，任何项目都应该针对 CLS 做优化。&lt;/p&gt;
&lt;p&gt;如有勘误，请及时指出，感谢！&lt;/p&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://web.dev/cls/&quot;&gt;https://web.dev/cls/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://web.dev/optimize-cls&quot;&gt;https://web.dev/optimize-cls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.google.com/publisher-tag/guides/minimize-layout-shift&quot;&gt;https://developers.google.com/publisher-tag/guides/minimize-layout-shift&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://web.dev/yahoo-japan-news/&quot;&gt;https://web.dev/yahoo-japan-news/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://addyosmani.com/blog/infinite-scroll-without-layout-shifts/&quot;&gt;https://addyosmani.com/blog/infinite-scroll-without-layout-shifts/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.skk.moe/post/fix-blog-cls/&quot;&gt;https://blog.skk.moe/post/fix-blog-cls/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content:encoded><category>post</category></item><item><title>过了两百天，谈谈 Microsoft Edge 浏览器开拓者大赛</title><link>https://nexmoe.com/zh/04HB92</link><guid isPermaLink="true">https://nexmoe.com/zh/04HB92</guid><pubDate>Thu, 13 Apr 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;为什么要谈谈这个比赛&lt;/h2&gt;
&lt;p&gt;作为一个独立参赛选手，我有幸获得了本比赛的第三名（当然全靠运气，不过也不乏一些方法论）。比赛的奖品嘛，我本来比较看重他的微软实习机会。不过猜测是互联网寒冬的原因，完全没有后续了，没人联系我实习的事情，后续去询问了对接比赛的工作人员、在群里咨询也没有任何情况。&lt;/p&gt;
&lt;h2&gt;获奖情况&lt;/h2&gt;
&lt;p&gt;三等奖，就是第三名，奖金 5000 税后 4000，还有一堆实物奖品。还有一个挺好看的玻璃制奖杯。然后就去请室友吃自助餐了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/822a5270a5076b06f69916720f573118.png/nexmoe&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;送来的快递有这么大，路上一个人搬回寝室累死了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/840c78a24c03c1a6a9d844aea041b642.png/nexmoe&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;不知道是 11.4 公斤还是 11.4 斤，11.4 斤应该不会搬的我累死吧？&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/b89a988ce07d2dc0075be8a0b2e447d8.png/nexmoe&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/36a5c3135e78df21e64aeb03884b8fbd.png/nexmoe&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;这个比赛是什么&lt;/h2&gt;
&lt;p&gt;参赛者择长开发，以“后疫情时代的变化与挑战”大主题，聚焦“科技改善生活”、“赋能生产力提高”、“多元与包容”三类主题，开发创意小插件，帮助你我看见更大的世界。&lt;/p&gt;
&lt;p&gt;这个比赛的官网 &lt;a href=&quot;https://edgecontest.microsoft.com/index.html&quot;&gt;https://edgecontest.microsoft.com/index.html&lt;/a&gt; 目前已经不能访问了。其实我们从中可以猜测到这个比赛是 Edge 中国区团队为了丰富 Edge 浏览器的扩展生态而举办的。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/c86c62aad837b02fdd0a09a822f311a9.png/nexmoe&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/5296b743cb4f5fb175957f6d669a76c2.png/nexmoe&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;一些比赛信息&lt;/h2&gt;
&lt;p&gt;以下是比较简短且关键的信息，将有助于下面我对比赛的分析。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/3e0d3332cba3fe42d6ec45ecb02171de.png/nexmoe&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/9c7bd16872336793083987a830682d55.png/nexmoe&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/f41c5185e32efd2dd0067e56309751ce.png/nexmoe&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;分析得出的方法论&lt;/h2&gt;
&lt;h3&gt;轻量级技术&lt;/h3&gt;
&lt;p&gt;简单分析上面比赛信息内四个要求，作为一个技术混子，一眼就能看出什么？没有技术要求！比赛这种形式，在一定时间内需要完成一个项目，确实是非常难完成技术需求高的项目的。大家能发挥的技术都差不太多。我们就不需要把重心放在技术力上了。&lt;/p&gt;
&lt;h3&gt;产品能力&lt;/h3&gt;
&lt;p&gt;实用性、易用性、美观性、创新性其实说的就是产品能力。那段时间前不久才开始培养产品能力，正好拿这个比赛试试手。而产品能力又恰好是在比赛里面实现弯道超车的能力。因为参加比赛的有很多都是技术型选手，我确实是比不过人家。&lt;/p&gt;
&lt;h3&gt;重综合能力&lt;/h3&gt;
&lt;p&gt;除了产品本身，比赛还要求做 PPT，视频等等，而且产品产出与上架都能为产品加分。则需要行动力和营销能力了。平常喜欢看一些产品人的文章，能大概猜测到作为产品的评审员爱看什么，可以向着那个方向写一下。除此之外，毕竟是一个需要从规划到上线的项目，作为个人参赛，完全就是需要综合能力。&lt;/p&gt;
&lt;h2&gt;我的项目&lt;/h2&gt;
&lt;p&gt;这个比赛是在提交截止前几天我才知道的，群友在群里提了一嘴，我才知道（非常感谢群友，不然完全不知道）。&lt;/p&gt;
&lt;p&gt;我一想，几天了怎么参加？混吧！但又不能完全摆烂啊，得稍微分析一下，所以有了上一节的那些内容。不过当时也没这么细致的分析，只是简单看了官网然后凭本能做决策。&lt;/p&gt;
&lt;p&gt;接下来介绍一下我的参赛项目和当时的一些思考。&lt;/p&gt;
&lt;h3&gt;Meteor New Tab&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/24e84c202cd49d92dca9541e5cc7f65d.png/nexmoe&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/82c4bdf8f5ab47ea97ff6067006225b3.png/nexmoe&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;在此之前&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/44f9ae7595ab7e92cb86fcfd63f431e0.png/nexmoe&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://xiaoshuapp.com/&quot;&gt;小舒同学&lt;/a&gt; 当时遇到了几个问题&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;命名不够直白，难以瞬间理解名称含义，毕竟当时起名的时候天天看一些文学作品有文人意识在里面。&lt;/li&gt;
&lt;li&gt;界面没有科技感，因为想打造一种舒适具有禅意的感觉。&lt;/li&gt;
&lt;li&gt;为了让产品有精神力，用了一些比较任性的口号和宣传。不够直！&lt;/li&gt;
&lt;li&gt;产品设计没有满足简洁的需求，平铺这种布局形式并不能满足所有人的需求&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;当时的几个想法&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;英文名，更有科技感&lt;/li&gt;
&lt;li&gt;界面设计更有科技感&lt;/li&gt;
&lt;li&gt;产品名称更直白&lt;/li&gt;
&lt;li&gt;口号更加直白，而不是传递理念&lt;/li&gt;
&lt;li&gt;产品描述更加直白，而不是传递理念&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;项目总结&lt;/h3&gt;
&lt;p&gt;总体来说，参赛项目主要基于小舒同学二次创作。针对不同市场，打造不同的产品形象，更有不同的风格气势。如今 Meteor 仍然还在维护，并朝着向小舒同学越来越远的方向发展。我希望这对孪生兄弟都各具特色。&lt;/p&gt;
&lt;h2&gt;全篇总结&lt;/h2&gt;
&lt;p&gt;我认为我是非常幸运的，因为鲜有这样的比赛，评委有很多产品经理。此前我也体验过互联网 + 之类的比赛，感觉评委没有产品人的那种气息。我在“互联网+”里面也是显得有点不适应，拿了个校奖就寄了。老师后来安慰我说是 PPT 没念好，答辩的时候没跟评委客气啥的。&lt;/p&gt;
&lt;p&gt;这个比赛考察的方向刚好比较适合我，难得有这样的比赛，所以我是非常幸运的，也因为幸运作为个人参赛我才能拿到这样的结果。如果让我去参加什么算法比赛，可能是拿不到什么好结果的。我当然希望以后能有更多这类更加开放，更加百花齐放的比赛。不过我想我已经没机会了，我就要毕业了。回首校园生活，没什么精彩，如此平淡。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>新功能！你想要的他来了 ！</title><link>https://nexmoe.com/zh/1951HNH</link><guid isPermaLink="true">https://nexmoe.com/zh/1951HNH</guid><pubDate>Sun, 19 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/a9e0dfb376f64bfc455b912b130c0ab7.png/nexmoe&quot; alt=&quot;a9e0dfb376f64bfc455b912b130c0ab7.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;右键移动卡片，移动卡片时可以搜索文件夹&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/7c1feea42323cfb6b1f65e109cc890a2.png/nexmoe&quot; alt=&quot;7c1feea42323cfb6b1f65e109cc890a2.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;比起拖动，更精准。移动到偏远文件夹更快捷&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/74e699e58f9f3536d67e4f9179ddf810.png/nexmoe&quot; alt=&quot;74e699e58f9f3536d67e4f9179ddf810.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;搜索补全，输入时可显示相关提示&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/89b2e747f0d55525bf1cc74402b6be0c.png/nexmoe&quot; alt=&quot;89b2e747f0d55525bf1cc74402b6be0c.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;同时，搜索框现在失去焦点后会自动收起啦 😊&lt;/p&gt;
&lt;h2&gt;打开本地文件&lt;/h2&gt;
&lt;p&gt;现在可以在这里收藏你的 PDF 文件，也能用小舒同学直接打开了 🙂&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/0f9fea79fed3d0a1f6f34848a9b9a8af.png/nexmoe&quot; alt=&quot;0f9fea79fed3d0a1f6f34848a9b9a8af.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;片状卡片，展示更简洁美观的卡片界面&lt;/h2&gt;
&lt;p&gt;万番呼吁，它来了&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/467b3b4ce499fbe642a116c4a7989b88.png/nexmoe&quot; alt=&quot;467b3b4ce499fbe642a116c4a7989b88.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;全新分享功能，与你的账号联动&lt;/h2&gt;
&lt;p&gt;想要把一部分收藏的内容分享给朋友怎么办，简单，点几下就行 🚀&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/cc0fa7f79fa660a11979ff43e472e8cd.png/nexmoe&quot; alt=&quot;cc0fa7f79fa660a11979ff43e472e8cd.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后就会生成分享链接和二维码了&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;https://store.chainwon.com/bookmarks/63908420e127c076e239&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/d0b59f8d689ddfb98cae80edbf896462.png/nexmoe&quot; alt=&quot;d0b59f8d689ddfb98cae80edbf896462.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;搜索框自动获取焦点&lt;/h2&gt;
&lt;p&gt;可控制搜索框是否在打开时获取焦点&lt;/p&gt;
&lt;h2&gt;打卡全部卡片需要确认&lt;/h2&gt;
&lt;p&gt;不用再怕误触了&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/9190f18dd9c16d0b8f7cc9e5df510949.png/nexmoe&quot; alt=&quot;9190f18dd9c16d0b8f7cc9e5df510949.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/2c133700e9743ae20b76c10ce7429b62.png/nexmoe&quot; alt=&quot;2c133700e9743ae20b76c10ce7429b62.png&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>网络自习室，赛博伴学师。伴学 OS1</title><link>https://nexmoe.com/zh/3D6KFQ1</link><guid isPermaLink="true">https://nexmoe.com/zh/3D6KFQ1</guid><pubDate>Sun, 22 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&amp;lt;style&amp;gt;
:root {
--color-primary: #d85036;
}
&amp;lt;/style&amp;gt;&lt;/p&gt;
&lt;p&gt;在群里整了个机器人统计打卡，欢迎大家一起来打卡，体验赛博伴学&lt;/p&gt;
&lt;h2&gt;预览&lt;/h2&gt;
&lt;p&gt;{% gallery %}
&lt;img src=&quot;https://i.dawnlab.me/ba130ebe51de9ab19e642145d50b5cd0.jpg/nexmoe&quot; alt=&quot;自动统计&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/bdf3437a7bc3e7cbeb42ec1acb248468.jpg/nexmoe&quot; alt=&quot;bdf3437a7bc3e7cbeb42ec1acb248468.jpg&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/5ca2e8ed73b3a060a8dc62326bf1563a.jpg/nexmoe&quot; alt=&quot;日报&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/f8e9d755b0bedb97d85ab7baa00b9cbd.jpg/nexmoe&quot; alt=&quot;周报&quot; /&gt;
{% endgallery %}&lt;/p&gt;
&lt;h2&gt;ToDo&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[x] 自动打卡统计&lt;/li&gt;
&lt;li&gt;[x] 每日结束自动公布今日打卡结果&lt;/li&gt;
&lt;li&gt;[x] 每周结束自动公布本周打卡结果&lt;/li&gt;
&lt;li&gt;[x] 每月结束自动公布本月打卡结果&lt;/li&gt;
&lt;li&gt;[x] 打卡提醒&lt;/li&gt;
&lt;li&gt;[ ] 排行榜&lt;/li&gt;
&lt;li&gt;[ ] 长期不打卡的惩罚&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;规则&lt;/h2&gt;
&lt;h3&gt;打卡&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;常见英语学习软件可直接分享到群内完成自动打卡&lt;/li&gt;
&lt;li&gt;AI 识别成功的可以打卡&lt;/li&gt;
&lt;li&gt;手动在群内发送“打卡”以完成打卡&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;报告&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;每天 23:59 会自动在群内通报今日打卡情况&lt;/li&gt;
&lt;li&gt;每周周日 23:59 会自动在群内通报本周打卡情况&lt;/li&gt;
&lt;li&gt;每月最后一天 23:59 会自动在群内通报本月打卡情况&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;打卡提醒&lt;/h3&gt;
&lt;p&gt;满足以下条件则提醒打卡&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;加机器人好友&lt;/li&gt;
&lt;li&gt;今天没打卡&lt;/li&gt;
&lt;li&gt;三天内打过卡&lt;/li&gt;
&lt;li&gt;每天 22:00 或 23:00&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;加群体验&lt;/h2&gt;
&lt;p&gt;{% gallery %}
&lt;img src=&quot;https://i.dawnlab.me/1e62df52d951e3bb974019e236a54a2d.jpg/nexmoe&quot; alt=&quot;1e62df52d951e3bb974019e236a54a2d.jpg/nexmoe&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/42cc02be9f4e898791f66251e7cd37fc.jpg/nexmoe&quot; alt=&quot;42cc02be9f4e898791f66251e7cd37fc.jpg/nexmoe&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/3c001cc5299e5e39da692ac2dac034fc.jpg/nexmoe&quot; alt=&quot;3c001cc5299e5e39da692ac2dac034fc.jpg/nexmoe&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/332b8d7a22cb3e48c1e647134af8aebc.jpg/nexmoe&quot; alt=&quot;332b8d7a22cb3e48c1e647134af8aebc.jpg/nexmoe&quot; /&gt;
{% endgallery %}&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>2022，没有记忆的一年</title><link>https://nexmoe.com/zh/JNEGYT</link><guid isPermaLink="true">https://nexmoe.com/zh/JNEGYT</guid><pubDate>Mon, 09 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;那些消失的时间&lt;/h2&gt;
&lt;p&gt;年初，要放寒假。于是回家，喜提 14+14。2022 少了 28 天。十月份底，喜提次密接，集中隔离 7 天，然后无限期封寝室直到 11 月 20 日左右回家。然后回家后喜提 7 天居家隔离，在仓库待了 7 天。
再过一会，就放开了。在放开的大浪潮下，我们这些小地方自然是啥也做不了。为了应对可能的医疗资源挤兑，我至今几乎一天门没出，说实话也没什么出门的意义。一算下来，2022 年只剩 9 个月不到的时间了。&lt;/p&gt;
&lt;h2&gt;那么其它时间我干了啥&lt;/h2&gt;
&lt;p&gt;总览整个 2022 年，属实没有多少记忆点。翻遍相册，也不过都是在家宅着吃点东西。今年是几乎毫不特别的一年。&lt;/p&gt;
&lt;h3&gt;最深刻的事情&lt;/h3&gt;
&lt;p&gt;全年最深刻的，就是在群友推荐下参加了 Microsoft Edge 浏览器开拓者大赛，然后获得了个第三名。
本来说是可以参加后续的实习，结果这小半年过去了，也没啥消息。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/e0014a33eada08c943bea4807e9cb2a8.png&quot; alt=&quot;e0014a33eada08c943bea4807e9cb2a8.png&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;两次外出&lt;/h3&gt;
&lt;p&gt;今年离开家附近或学校只有两次。&lt;/p&gt;
&lt;p&gt;第一次在暑假，去武汉东湖，面基网友。在朋友家住了一晚上。在东湖骑车是个非常享受非常自由的事情，不过很累，所以第二天就回家了。还第一次去猫咖爽了爽。&lt;/p&gt;
&lt;p&gt;{% gallery %}
&lt;img src=&quot;https://i.dawnlab.me/3c7b623234dd53397a7716ae354a8aa0.jpg&quot; alt=&quot;东湖里的店铺&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/744a6b7614423d24a798774ccf23267a.png&quot; alt=&quot;猫咖&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/65e8cbc6b62d585530d15dc8dcbda8a2.png&quot; alt=&quot;朋友家的猫&quot; /&gt;
{% endgallery %}&lt;/p&gt;
&lt;p&gt;第二次在国庆，学校在多方情况下允许我们请假出去。那肯定得抓紧这个机会。大三了，我仍然对郑州非常陌生。国庆几天，随便玩了玩，吃了吃，然后就没了。&lt;/p&gt;
&lt;p&gt;{% gallery %}
&lt;img src=&quot;https://i.dawnlab.me/5197f3d770e09138d76060bfdbee7345.png&quot; alt=&quot;烤羊腿&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/aaa71db16de796fb4fc23c5f5f2a7358.png&quot; alt=&quot;aaa71db16de796fb4fc23c5f5f2a7358.png&quot; /&gt;
&lt;img src=&quot;https://i.dawnlab.me/21142466ef2218bac6f9f13de0d57f23.png&quot; alt=&quot;21142466ef2218bac6f9f13de0d57f23.png&quot; /&gt;
{% endgallery %}&lt;/p&gt;
&lt;h3&gt;KTV，始于 2022 年的爱好&lt;/h3&gt;
&lt;p&gt;以前始终觉得 KTV 没什么意思，但是今年去了好几次 KTV，因为开始觉得 KTV 能够释放自己、暂时的忘掉一切。还能和朋友一起相处一会，让疫情中的生活多一丝丝社会性。也是从这个时候开始，学着唱歌，虽然都是随便乱喊乱叫。不过最近阳了过后一直咳嗽，话都不想讲，更别说唱歌了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/76f233c15835872c818e34755e2a82a7.png&quot; alt=&quot;76f233c15835872c818e34755e2a82a7.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;说了这么多，那岂不是几乎什么都没干嘛？&lt;/h2&gt;
&lt;p&gt;对，是几乎什么都没干。今年是没有记忆的一年。再过一年，我也许只记得 2022 参加过一个比赛。然后其他的都是一片空白。&lt;/p&gt;
&lt;h2&gt;2022 年是&lt;/h2&gt;
&lt;h3&gt;仓促的&lt;/h3&gt;
&lt;p&gt;两次放假，都是突然性的通知。学校里有了一些传闻，然后我觉得要放假了。虽然非常令人难以相信，室友也觉得不会如此仓促的放假，但第二天就放假了。&lt;/p&gt;
&lt;h3&gt;无意识的&lt;/h3&gt;
&lt;p&gt;说实话，2023 年 1 月 5 日我对完全不知道 2022 结束了。直到在空间刷到网友的年终。&lt;/p&gt;
&lt;h2&gt;往年年终&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/WMFCB3&quot;&gt;(2021 年终)19 岁，找回迷失的自己：热爱、勇敢以及感恩 - 折影轻梦 (nexmoe.com)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/1W4AR7&quot;&gt;Farewell 2020! (nexmoe.com)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;朋友们的年终&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://idawnlight.com/2022/2022-the-year/&quot;&gt;2022: The Year | 余光的部落格 (idawnlight.com)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ancient-pasta-c48.notion.site/2022-27665a9d6b9b4fc789ac2a05ab928888&quot;&gt;2022 年终总结 - 新目标新起点 (notion.site)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>人生大事</title><link>https://nexmoe.com/zh/line</link><guid isPermaLink="true">https://nexmoe.com/zh/line</guid><pubDate>Sun, 08 Jan 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;回望最近十年，我对未来总是充满向往，这让我不得不每天都全力以赴，我是个躺不平的人。8 年前、3 年前，如果有人指引我，我现在会不会成为一个很厉害的人？我的生活会不会比现在更有希望？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2023 年 10 月 - VS Code 插件 Monitor Pro 上线，因为我整了一台微型主机当服务器 &lt;a href=&quot;https://juejin.cn/post/7287041057291550777&quot;&gt;VS Code 插件 Monitor Pro - 监控一切你在意的资源信息 - 掘金&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2023 年 9 月 - 分析 nginx 日志，一年下来，小舒同学的 library 服务处理了 1.4 亿次请求&lt;/li&gt;
&lt;li&gt;2023 年 4 月 - 大创项目结项，国家级优秀结项，有 1、2 万的奖金&lt;/li&gt;
&lt;li&gt;2023 年 1 月 - 伴学 OS1 上线，这个产品非常简单但是需求贼大，是我认为目前最可能变现的产品，仅仅做了非常小的 SEO，就有非常强的用户自增长率，但是 API 受 QQ 打压，寄了&lt;/li&gt;
&lt;li&gt;2022 年 11 月 - 基于小舒同学开发的项目参加了 Microsoft Edge 浏览器开拓者大赛，在大佬群集的比赛中，作为独立参赛者，决赛获得第三名，税后拿到了 4,000 奖金。同时比赛奖励还有微软实习机会，当时提交了志愿表，本以为能去北京上海苏州体验大城市的风光，但是后续没有任何消息。朋友家人都对此感到非常惋惜。&lt;a href=&quot;https://nexmoe.com/04HB92&quot;&gt;https://blog.nexmoe.com/04HB92.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2022 年 7 月 - 探索者小舒开源被 360 团队内置到一个他们的项目中&lt;/li&gt;
&lt;li&gt;2022 年 4 月 - 小舒同学被老师看中，拿去参加大创项目&lt;/li&gt;
&lt;li&gt;2022 年 1 月 9 日 - 探索者小舒 上架，后续被《差评》推荐了一波，获得了不少曝光。&lt;a href=&quot;https://mp.weixin.qq.com/s/gXI1NFazcMOnA70FNU3jqg&quot;&gt;一键切换搜索平台！用了这个插件，我越来越快了。&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2021 年 11 月 - GitHub 第一个 1,000 stars 诞生，他是 Hexo Theme Nexmoe&lt;/li&gt;
&lt;li&gt;2021 年 9 月 - 第一份软著，拿高中的项目申请的，起因是一个朋友想混学分&lt;/li&gt;
&lt;li&gt;2021 年 8 月 6 日 - 小舒同学 上架，此后成了我的主力项目，也是因为这个项目认识了很多人&lt;/li&gt;
&lt;li&gt;2021 年 4 月后 - 痛改前非，参加了三个团队的多个项目，批量生产软著，原来比赛这么好混，但是机会一去不复返了&lt;/li&gt;
&lt;li&gt;2021 年 4 月 - 体育 74 分，军训 67 分，综评绩点 3.66，大类排名第 7，转计算机专业失败，其他人都有参加学校的比赛，我没有，当然如果军训体育不卡我，纯绩点也能转&lt;/li&gt;
&lt;li&gt;2020 年大一 - 学了 Go，做了一套类似 App Store 的东西，服务于轻惋导航，有评论、提交、评分、历史记录、审核、SSO 用户系统、静态资源处理系统，是漫游云野的前身，现在这些功能全砍掉了&lt;/li&gt;
&lt;li&gt;2019 年 8 月 - Hexo Theme Nexmoe 主题开源，后来成为了我在 GitHub 上第一个 1,000 stars 的项目，后续马上就推出了 Typecho 版本，社区也推出了 Halo 版本，这个项目好像也有人拿去做毕设了 &lt;a href=&quot;https://github.com/theme-nexmoe&quot;&gt;Nexmoe&apos;s Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2019 年 2 月 - 购买了一台 500 元的二手笔记本，开发出了一个全栈表白墙，后来被人拿去做毕设了。&lt;a href=&quot;https://nexmoe.com/2154053968&quot;&gt;PHP &amp;amp; Vue.js 表白墙&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2019 年 - 认为 MBIT 是一种非常好的社交方式，大力推广，为周围的朋友都做了测试，我时而是 INTP，时而是 ENTP，后来基本由 ENTP 主导，我是躁动的&lt;/li&gt;
&lt;li&gt;2018 年 - 除此之外，我们一群人还弄了一些公用 API 啥的，有类似这种服务的 API &lt;a href=&quot;https://cravatar.cn/&quot;&gt;Cravatar – 互联网公共头像服务&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2018 年 - 轻惋壁纸站下线，和朋友们一起开发的觅漫者壁纸站登场，上线当天就获得了上千用户，mixcm.com 续费了 10 年。&lt;a href=&quot;https://staging.v2ex.com/t/461728&quot;&gt;一群中学生做的壁纸站 - V2EX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2017 年 - 开发的博客主题卖了几千块钱，壁纸站导航啥的放广告赚了几百块钱&lt;/li&gt;
&lt;li&gt;2016 年 6 月 - 轻惋导航已经是一个合格的毕设了。有后台、增删查改、用户系统&lt;/li&gt;
&lt;li&gt;2016 年 5 月 - 轻惋壁纸站、轻惋导航登场，此后，轻惋导航将陪我走过 5 年时光 &lt;a href=&quot;https://nexmoe.com/537283684&quot;&gt;轻惋起始页回忆录&lt;/a&gt;，当时的壁纸站基于 Cloudreve 的前身，他的作者也是我编程路上的指引者 &lt;a href=&quot;https://cloudreve.org/&quot;&gt;Cloudreve - 部署公私兼备的网盘系统&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2016 年 5 月 1 日 - 购买了第一本编程书，PHP 圣经，正式开始编程人生&lt;/li&gt;
&lt;li&gt;2016 年 - 在 GitHub 上为开源项目提了第一个 PR &lt;a href=&quot;https://github.com/itorr/imouto&quot;&gt;GitHub - itorr/imouto: 快速、明确、极简&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2015 年 12 月 - 易语言开发课程表、倒计时、天气信息应用 &lt;a href=&quot;https://nexmoe.com/20CXF4E&quot;&gt;曾经用易语言写过的一些东西&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2014 年 - 由于电脑配置不够玩 LOL，所以选择了当时安装包仅 300MB 的 300 英雄，在折腾第三方工具时接触到易语言，做了一些简单的皮肤替换，为什么后来不玩了？因为后面自己捡垃圾配了台主机，可以玩 LOL 了！AMD YES！（确实我后来一直就再也没用过 Intel&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>用小舒同学做笔记</title><link>https://nexmoe.com/zh/199G3Z</link><guid isPermaLink="true">https://nexmoe.com/zh/199G3Z</guid><pubDate>Sat, 29 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;忘记一个书签的作用？别怕&lt;/h2&gt;
&lt;p&gt;现在你可以给书签做笔记备注了，同时可供你在搜索中快速找到。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/6581eee54349dd6f10504729882c9bbb.png&quot; alt=&quot;6581eee54349dd6f10504729882c9bbb.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/156b3ffc82c9fb7db94c264e02234507.png&quot; alt=&quot;156b3ffc82c9fb7db94c264e02234507.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/df32a4ceb39438ac86c686fd09188059.png&quot; alt=&quot;df32a4ceb39438ac86c686fd09188059.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;更加智能的数据备份&lt;/h2&gt;
&lt;p&gt;现在小舒同学会自动定期帮你备份数据。同时记录你使用的浏览器和版本号，方便你恢复数据。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/b953f3b3f0c45a009807a773703c479b.png&quot; alt=&quot;b953f3b3f0c45a009807a773703c479b.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;全新 Transparent 主题&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/055d40088371f6bb08beffca6ed692a6.png&quot; alt=&quot;055d40088371f6bb08beffca6ed692a6.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;小舒同学的搜索框终于能够自动获取焦点了，方便你更好的使用小舒同学的搜索框&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/6baf2722dd26059e463f5f716bcd926e.png&quot; alt=&quot;6baf2722dd26059e463f5f716bcd926e.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;搜索框用键盘选取建议结果&lt;/h2&gt;
&lt;p&gt;&amp;lt;a href=&quot;https://www.bilibili.com/video/BV12R4y1Q7VK&quot; target=&quot;_blank&quot;&amp;gt;&amp;lt;video muted autoplay loop src=&quot;https://aw.xiaoshuapp.com/v1/storage/buckets/6332f2dc4f6a02ab09a6/files/635cf0366793f162c8b5/view?project=63007e8594ce26b45d67&quot;&amp;gt;&amp;lt;/video&amp;gt;&amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;h2&gt;全新上传壁纸&lt;/h2&gt;
&lt;p&gt;现在，你可以上传跟随你账号同步的壁纸了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/f76cc5d3b740b2aaea875cae355e7f9b.png&quot; alt=&quot;f76cc5d3b740b2aaea875cae355e7f9b.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;拖动你的文件夹标题&lt;/h2&gt;
&lt;p&gt;现在你可以通过拖动文件夹标题来进行文件夹排序了&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/e414cfd155ef53290fc0c3a68df05a03.png&quot; alt=&quot;e414cfd155ef53290fc0c3a68df05a03.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;拖动到屏幕按钮上实现跨屏分组排序&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/29ba3751ac7b7340b818c4f3eb38f3be.png&quot; alt=&quot;29ba3751ac7b7340b818c4f3eb38f3be.png&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>新群的诞生</title><link>https://nexmoe.com/zh/3145B9F</link><guid isPermaLink="true">https://nexmoe.com/zh/3145B9F</guid><pubDate>Sat, 22 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;下面的群也寄了，有事可以直接联系我的 QQ：776194970&lt;/p&gt;
&lt;p&gt;新群号：1018234047&lt;/p&gt;
&lt;p&gt;主要讨论：科技、动漫、影视作品、游戏、养生、学习&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://speed.moe/image/tNOA&quot;&gt;&lt;img src=&quot;https://i.dawnlab.me/f0973ec4c3b644888495cfcc354e2caa.md.jpg&quot; alt=&quot;f0973ec4c3b644888495cfcc354e2caa.md.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>重大更新，强大的小舒同学新标签页尽在 2.2 版本</title><link>https://nexmoe.com/zh/104SXRZ</link><guid isPermaLink="true">https://nexmoe.com/zh/104SXRZ</guid><pubDate>Fri, 21 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;喜欢简洁？来试试简洁模式或者我的好兄弟&lt;/h2&gt;
&lt;p&gt;如图片中一般简洁，仍然基于你的收藏夹生成，不需要手动添加新内容。了解更多：&lt;a href=&quot;https://xiaoshuapp.com/meteor/&quot;&gt;https://xiaoshuapp.com/meteor/&lt;/a&gt;
简洁模式在 设置 -&amp;gt; 收藏夹 -&amp;gt; 抽屉模式打开&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/2437f0bbdf2758b379a247f5e9b4d247.png&quot; alt=&quot;Meteor New Tab&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;布局设置，让一个屏幕容纳更多内容&lt;/h2&gt;
&lt;p&gt;设置 -&amp;gt; 收藏夹 -&amp;gt; 收藏夹布局&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/aa6f2c90b8a1ded6e508bcee1e03c19c.png&quot; alt=&quot;aa6f2c90b8a1ded6e508bcee1e03c19c.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;小条形卡片，小而强&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/8508f3f2e4bf210db044159ab127eb38.png&quot; alt=&quot;8508f3f2e4bf210db044159ab127eb38.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;轻松找到你想找的文件夹&lt;/h2&gt;
&lt;p&gt;现在搜索建议可以搜索到文件夹，点击即可轻松找你想要的文件夹&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/00785119705323c6dd42668c47b66975.png&quot; alt=&quot;00785119705323c6dd42668c47b66975.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;数据备份&lt;/h2&gt;
&lt;p&gt;数据备份（不备份收藏夹内容）到云端，随意切换版本&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/db10458709b8afb5cf5e4f94bb84d14b.png&quot; alt=&quot;db10458709b8afb5cf5e4f94bb84d14b.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;支持邮箱注册与登录&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/a2881600cf38538c4a8cb1315d0bab98.png&quot; alt=&quot;a2881600cf38538c4a8cb1315d0bab98.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;分享你的搜索引擎&lt;/h2&gt;
&lt;p&gt;目前只提供了分享功能，更多功能将在稍后的更新中解锁&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/fefc82bb8570bcb168b53de9e762a3e5.png&quot; alt=&quot;fefc82bb8570bcb168b53de9e762a3e5.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;全新效果器系统&lt;/h2&gt;
&lt;p&gt;更加易用，更简单的制作与分享&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/5a49edf50a79685e728891910ce33d15.png&quot; alt=&quot;5a49edf50a79685e728891910ce33d15.png&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Meteor New Tab 是什么产品？产品介绍及产品灵魂</title><link>https://nexmoe.com/zh/347D5DP</link><guid isPermaLink="true">https://nexmoe.com/zh/347D5DP</guid><pubDate>Sun, 25 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;大家好，我们是觅漫者战队，非常荣幸获得了首届 Microsoft Edge 浏览器开拓者大赛的第三名！我是我们战队的唯一一名成员，我的好朋友都叫我折影轻梦或 Nexmoe。我的口号是：“为热爱战斗着，努力学着变得勇敢”。&lt;/p&gt;
&lt;h2&gt;产品介绍&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/2437f0bbdf2758b379a247f5e9b4d247.png/nexmoe&quot; alt=&quot;基于你的收藏夹内容，帮你自动整理到标签页，让你的收藏夹在标签页上一目了然&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我们的产品名称为：Meteor New Tab，他的作用和他的口号一致——让你的收藏夹再次伟大。在后疫情时代，线上学习与线上办公的人越来越多。许多用户在网络检索学习，遇见各种各样的“干货”资源，喜欢将相关的网页收藏。但是日积月累，收藏的速度远远大于学习的速度，导致网页越来越难以打理，导致日后检索相关网页特别耗费精力，也让很多优秀的干货资源被压在箱底，再也没有被打开过。&lt;/p&gt;
&lt;p&gt;我们开发这样一款产品，希望能够帮助用户将尘封已久的收藏夹拿出来。它可以基于你的收藏夹内容，帮你自动整理到标签页，让你的收藏夹在标签页上一目了然。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/04a973a49924546b117fd444c75f68e0.png/nexmoe&quot; alt=&quot;基于你的收藏夹内容，帮你自动整理到标签页，让你的收藏夹在标签页上一目了然&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;产品的灵魂&lt;/h2&gt;
&lt;p&gt;我们倾听用户的声音，产品的灵魂即来自创作者同样也来自用户。一位用户曾夸赞 Meteor New Tab 理念先进，他说：“与其在信息流中漂泊，不如反刍收藏过的高质量内容。”Meteor New Tab 是逆时代而行之的，我们不再让你筋疲力尽地在信息流中寻找一些新东西，而是让你反刍收藏过的高质量内容来产生新的思考、新的灵感。&lt;/p&gt;
&lt;p&gt;还有一位用户曾说：“太棒了，我真的不想折腾拨号页花里胡哨的功能，我只想快速导入链接，然后生成一个简洁的图标。”有时候我们需要思考对我们来说真正重要的是什么。我们所关注的、所热爱的其实早就已经被我们放入在收藏夹中。Meteor New Tab 做的就是让我们重新关注自己。&lt;/p&gt;
&lt;p&gt;还有许多用户的评论与反馈也一并帮助我们完善了产品，让 Meteor New Tab 越来越具有产品的灵魂，我们非常感谢他们的支持。&lt;/p&gt;
&lt;h2&gt;让你更好的使用你的收藏夹&lt;/h2&gt;
&lt;p&gt;让多个文件夹并行显示，收藏夹也能变看板；进度条功能，自动记录你哔哩哔哩和 Youtube 的播放进度，收藏夹也是你追剧的仪表盘。排序功能，最先看到最近添加的书签。搜索功能，快速找到你想要的书签。还有更多功能，等你来发现。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/494b94a805c674601f3c1421c5158bc1.png/nexmoe&quot; alt=&quot;让收藏夹不再只是知识的仓库&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;现代化设计，友好的用户体验&lt;/h2&gt;
&lt;p&gt;守护隐私，守卫安全：数据无需经过我们的服务器进行存储交互，做到真正强大的隐私安全。&lt;/p&gt;
&lt;p&gt;自动跟随系统调整亮色与暗色模式，夜间不会因为突然从黑到白的界面切换导致你的健康问题。&lt;/p&gt;
&lt;p&gt;新时代产品，新时代改进。我们倾听用户的声音，你可以参与到我们一起将 Meteor New Tab 变得更好。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/add6ff1374b51833cc0c7cce3d76debd.png/nexmoe&quot; alt=&quot;add6ff1374b51833cc0c7cce3d76debd.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;让软件工程思维帮助我们构建更好的产品&lt;/h2&gt;
&lt;p&gt;我们采用增量模型作为产品的开发模型。适合我们这种一个人的小团队。我们会尽心尽力的关注到每个用户的反馈与需求，同时会对用户的反馈进行严格的管理与讨论。最后采取决策。我们会尽量地让 Meteor New Tab 越来越贴近完美。&lt;/p&gt;
&lt;p&gt;同时我们也会不断地学习进步，采用最新的技术。我们参考 DevOps 的理念，将开发、测试、运维、部署等环节进行自动化，让我们的产品更加稳定并减少开发人员的工作量。让产品开发效率最大化。我们使用 Github 的最新特性，对产品进行版本控制；使用 Issue，Project 进行需求管理；使用 Github Action 自动测速编译发布。尽量减少人员的参与，让产品开发更加高效。&lt;/p&gt;
&lt;h2&gt;下载体验&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://xiaoshuapp.com/meteor/&quot;&gt;https://xiaoshuapp.com/meteor/&lt;/a&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Meteor New Tab - Makes Your Bookmarks Great Again</title><link>https://nexmoe.com/zh/309MG4P</link><guid isPermaLink="true">https://nexmoe.com/zh/309MG4P</guid><pubDate>Sat, 06 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Edge:&lt;a href=&quot;https://microsoftedge.microsoft.com/addons/detail/bopgggdgdhogemdpoepddaakfgfadjal&quot;&gt;https://microsoftedge.microsoft.com/addons/detail/bopgggdgdhogemdpoepddaakfgfadjal&lt;/a&gt;
Chrome:&lt;a href=&quot;https://chrome.google.com/webstore/detail/fefnkaabnkfafmmmopbghgejhnieccpm&quot;&gt;https://chrome.google.com/webstore/detail/fefnkaabnkfafmmmopbghgejhnieccpm&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;我的想法&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;英文名，更有科技感&lt;/li&gt;
&lt;li&gt;界面设计更有科技感&lt;/li&gt;
&lt;li&gt;产品名称更直白&lt;/li&gt;
&lt;li&gt;口号更加直白，而不是传递理念&lt;/li&gt;
&lt;li&gt;产品描述更加直白，而不是传递理念&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;产品形态&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/abba3f15aef73e184075fc4169d34e24.png/nexmoe&quot; alt=&quot;abba3f15aef73e184075fc4169d34e24.png/nexmoe&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;特点&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;🏄不一个个添加：根据收藏夹生成，不用再额外管理一个新标签页&lt;/li&gt;
&lt;li&gt;🛡️绿色安全隐私强：数据来自于你的收藏夹，不再来自我们的服务器&lt;/li&gt;
&lt;li&gt;💪功能强大易用：强大的个性化、搜索、小功能，丰富的选项、状态设置&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;从今天开始，让你的书签变得再次强大&lt;/h2&gt;
&lt;p&gt;文件夹并行，让收藏夹变看板。进度跟踪，掌握全局&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/494b94a805c674601f3c1421c5158bc1.png/nexmoe&quot; alt=&quot;494b94a805c674601f3c1421c5158bc1.png/nexmoe&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;微创新&lt;/h2&gt;
&lt;h3&gt;效果器&lt;/h3&gt;
&lt;p&gt;高可定制化&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/23ae5158b7ae41adf5250ac326452777.png/nexmoe&quot; alt=&quot;23ae5158b7ae41adf5250ac326452777.png/nexmoe&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;看板，并行显示&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/494b94a805c674601f3c1421c5158bc1.png/nexmoe&quot; alt=&quot;494b94a805c674601f3c1421c5158bc1.png/nexmoe&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;播放进度条&lt;/h3&gt;
&lt;p&gt;自动记录你哔哩哔哩（已上线）和 Youtube（暂未上线）的播放进度&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/494b94a805c674601f3c1421c5158bc1.png/nexmoe&quot; alt=&quot;494b94a805c674601f3c1421c5158bc1.png/nexmoe&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;多个空间，随时变换身份&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/526cfbfce4bf719ba42efe0528c563d4.png/nexmoe&quot; alt=&quot;46b8ec1d47657f89f6e7d4d8dc2e120e.png/nexmoe&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;临时使用某个搜索引擎&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/e602d1822761a7651fd0d4e867c48330.png/nexmoe&quot; alt=&quot;e602d1822761a7651fd0d4e867c48330.png/nexmoe&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;快速目录&lt;/h3&gt;
&lt;p&gt;快速定位到你的书签&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/01a6f1f40b0e2e381a92bf396f48e0eb.png/nexmoe&quot; alt=&quot;01a6f1f40b0e2e381a92bf396f48e0eb.png/nexmoe&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;面向开发者的高级功能&lt;/h3&gt;
&lt;p&gt;提供无限的自由与可能&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/46b8ec1d47657f89f6e7d4d8dc2e120e.png/nexmoe&quot; alt=&quot;46b8ec1d47657f89f6e7d4d8dc2e120e.png/nexmoe&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;发布时间&lt;/h2&gt;
&lt;p&gt;一个月以内。&lt;/p&gt;
&lt;p&gt;目前参加了 Edge 浏览器开拓者大赛。这个比赛对我很重要，比赛前 20 名才有奖项。&lt;strong&gt;每天每个人可以投两次票&lt;/strong&gt;。希望大家能够支持我的项目。谢谢大家。
&lt;a href=&quot;https://edgecontest.microsoft.com/worksDetail.html?WorkDataId=a002d0f8-e68a-48c0-a3c4-c7885731bbcd&quot;&gt;https://edgecontest.microsoft.com/worksDetail.html?WorkDataId=a002d0f8-e68a-48c0-a3c4-c7885731bbcd&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/975e2809606f08f559c464dbae2dd3b9.png/nexmoe&quot; alt=&quot;975e2809606f08f559c464dbae2dd3b9.png/nexmoe&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>小舒同学是怎么帮助我学习，卷死舍友的？</title><link>https://nexmoe.com/zh/612NPF</link><guid isPermaLink="true">https://nexmoe.com/zh/612NPF</guid><pubDate>Thu, 10 Mar 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;小舒同学不仅仅是一个普通的主页或者是新建标签页，她还是一个非常好的学习助手，陪伴我走过了在大学的学习生活。&lt;/p&gt;
&lt;h2&gt;记录在哔哩哔哩大学的学习进度&lt;/h2&gt;
&lt;p&gt;哔哩哔哩，一个视频平台。里面却有大量学习资料，因此被戏称为哔哩哔哩大学。本人作为一名大学生又是一个哔哩哔哩重度用户，经常在哔哩哔哩看一些教程视频。这些视频通常有大量分集，但是哔哩哔哩对于上次播放的记忆功能不太好用。经常是收藏到收藏夹里后，打开这个视频还要手动选择上次自己看到的那集。因此小舒同学推出了视频进度记录，将带有分集的视频收藏到浏览器收藏夹后，小舒同学会自动更新你收藏的视频的链接以记录播放进度。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/a2718c8b2a7df0f8a68fe530bebdc140.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;同时播放进度以进度条的形式展现出来，以更直观的方式向你展示你的视频观看进度。当你收藏的视频足够多，小舒同学便是你的仪表盘，让你能以一个上帝视角观察你的学习进度，更具全局观。&lt;/p&gt;
&lt;p&gt;同样你也可以将番剧、纪录片等哔哩哔哩中的视频收藏到浏览器收藏夹中，小舒同学也会自动记录这些视频的播放进度。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/0450749a7b1ea215455ed2a44615c1b5.png&quot; alt=&quot;看番&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;使用热心网友分享的学习资源&lt;/h2&gt;
&lt;p&gt;即使你的收藏夹空空如也，即使你还没有开始建立你的知识体系，这都没有关系。我们有热心的网友，他们将自己的收藏夹分享了出来，让大家不必苦苦寻找高质量网站。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/9b3aabad38cc197e9021238b72b3455d.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我们可以利用热心网友分享的收藏夹来完善我们自己的小舒同学。了解热点，欣赏艺术，找个趁手的工具。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/70028e9f14303f6579770f568a51825e.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;当然希望你也能加入热心网友的大军中，为大家带来更多史诗的收藏夹。&lt;/p&gt;
&lt;h2&gt;建立学校网站的门户导航&lt;/h2&gt;
&lt;p&gt;快速打开你需要用到的学校的网站，了解学校信息更快人一步。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/ad927d03e0623e6b3a7d99527704a90e.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;兴趣爱好培养，在生活与学习之间跳跃&lt;/h2&gt;
&lt;p&gt;在收藏了许多内容并分好文件夹后，我们可以借助快速目录功能迅速的在我们关注的不同方面进行跳转。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/ec5e3dc6b879499d11563fcbe29eb4bc.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在我们前进很久，累了需要休息的时候可以跳转到设计，欣赏欣赏大佬们的作品，然后发现自己怎么这么菜，然后又跳回去学习。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/4abc1a94645fd00730f1f56496c410ec.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;也可以在吃饭的时候跳转到曾经收藏的纪录片或者番剧那些，让你在吃饭的时候能看到你最喜欢的视频。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/51093cd401abf477a2035845f347349a.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;记录学习反思，调整方向&lt;/h2&gt;
&lt;p&gt;学习是一个长期的过程，我们可以记录学习的过程，记录学习的结果，记录学习的收获，记录学习的经验……&lt;/p&gt;
&lt;p&gt;记录让我们更好地了解自己，让我们更好地了解自己的学习方向。&lt;/p&gt;
&lt;p&gt;不断的前进，不断的学习，不断的改变，不断的探索，不断的记录，不断的改变方向。我们才会离我们的目标更近一步。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/71a8073209b38aa97c892d893c8abd09.png&quot; alt=&quot;记录&quot; /&gt;&lt;/p&gt;
&lt;p&gt;^ 记录功能通过调用 flomo api 实现，flomo api 需要 flomo 会员。&lt;/p&gt;
&lt;p&gt;小舒同学官网：&lt;a href=&quot;https://xiaoshu.app/&quot;&gt;https://xiaoshu.app/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.dawnlab.me/53a8c7cf3ad77a0f0a456ce2c6afe88a.png&quot; alt=&quot;53a8c7cf3ad77a0f0a456ce2c6afe88a.png&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>(2021 年终)19 岁，找回迷失的自己：热爱、勇敢以及感恩</title><link>https://nexmoe.com/zh/WMFCB3</link><guid isPermaLink="true">https://nexmoe.com/zh/WMFCB3</guid><pubDate>Sun, 26 Dec 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;愿你生命中有足够的云翳来造就一片美丽的黄昏。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://music.163.com/#/song?id=32069952&quot;&gt;https://music.163.com/#/song?id=32069952&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;👆 年轻时最喜欢的音乐 Entorevolution，好久没听了，最近又听了起来。&lt;/p&gt;
&lt;h2&gt;云翳&lt;/h2&gt;
&lt;p&gt;2017 年那会，15 岁，我以这句话作为了我网易云音乐的签名。至今仍然它保留在我的网易云音乐签名中。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211226-19%E5%B2%81%EF%BC%8C%E6%89%BE%E5%9B%9E%E8%BF%B7%E5%A4%B1%E7%9A%84%E8%87%AA%E5%B7%B1%EF%BC%9A%E7%83%AD%E7%88%B1%E3%80%81%E5%8B%87%E6%95%A2%E4%BB%A5%E5%8F%8A%E6%84%9F%E6%81%A9/image-20211226122242084.png&quot; alt=&quot;image-20211226122242084&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我的人生也如同这句话写的一样。在这之后，我生命中充满了云翳，差点，这些云翳就压垮了我。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211226-19%E5%B2%81%EF%BC%8C%E6%89%BE%E5%9B%9E%E8%BF%B7%E5%A4%B1%E7%9A%84%E8%87%AA%E5%B7%B1%EF%BC%9A%E7%83%AD%E7%88%B1%E3%80%81%E5%8B%87%E6%95%A2%E4%BB%A5%E5%8F%8A%E6%84%9F%E6%81%A9/image-20211226122339633.png&quot; alt=&quot;image-20211226122339633&quot; /&gt;&lt;/p&gt;
&lt;p&gt;17 年，刚上高一，我决定要成为一个能散发阳光，如同太阳一般热烈，充满激情的人，并真正的朝着这个目标行进了。但我没料想到后面的生活中，一些黑暗的手将我一次又一次地抓住，让我走向完全相反的方向。那个时候我也只是个视野狭窄的普通高中生，理所应当地认为学校里的一切就是人生的一切。来自生活的压力，来自不可抗拒之力的打压让我彻底消沉了。我觉得，我&lt;strong&gt;玩完了&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211226-19%E5%B2%81%EF%BC%8C%E6%89%BE%E5%9B%9E%E8%BF%B7%E5%A4%B1%E7%9A%84%E8%87%AA%E5%B7%B1%EF%BC%9A%E7%83%AD%E7%88%B1%E3%80%81%E5%8B%87%E6%95%A2%E4%BB%A5%E5%8F%8A%E6%84%9F%E6%81%A9/QQ%E5%9B%BE%E7%89%8720210415151427.jpg&quot; alt=&quot;2018 年也还是走到了头&quot; /&gt;&lt;/p&gt;
&lt;p&gt;朋友说：“感觉你最近状态很不好啊，去医院看看吧。”&lt;/p&gt;
&lt;p&gt;我越来越冷漠、越来越刻薄了。那时的我认为，只有以一种应激的状态面对生活，才是现实。&lt;/p&gt;
&lt;p&gt;此后，便是我人生中空白的几年。这段时间，我停止了进步、放弃了思考。&lt;/p&gt;
&lt;h2&gt;光，照了进来&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211226-19%E5%B2%81%EF%BC%8C%E6%89%BE%E5%9B%9E%E8%BF%B7%E5%A4%B1%E7%9A%84%E8%87%AA%E5%B7%B1%EF%BC%9A%E7%83%AD%E7%88%B1%E3%80%81%E5%8B%87%E6%95%A2%E4%BB%A5%E5%8F%8A%E6%84%9F%E6%81%A9/20210207192534.jpg&quot; alt=&quot;即使是牢笼，外面的天空依旧蔚蓝&quot; /&gt;&lt;/p&gt;
&lt;p&gt;👆 我透过教室的窗拍摄的蓝天白云，这个视角好似我们于牢笼之中，但我们却能清楚的看到一片美丽的天空。&lt;/p&gt;
&lt;p&gt;丧失了所有对生活的乐趣，我接触起了文学。诗中“天生我材必有用，千金散尽还复来。”便是我的最大慰藉。书确实犹药也，虽然没医我的愚，但他们救了我。&lt;/p&gt;
&lt;p&gt;此后我还接触了科普书，他们让我学到了很多。&lt;/p&gt;
&lt;p&gt;文学让我变得越来越勇敢。&lt;/p&gt;
&lt;p&gt;当然还有亲人、朋友的陪伴，带着我沉重的身心一步步的前进。&lt;/p&gt;
&lt;p&gt;当所有人都向往着太阳。但你此时却只是一个黑洞要吞噬一切，而总有一些人毫不畏惧敢于靠近你，向你分享他的光，这些人不就是真正的朋友吗？空白的那几年交到了不少人生中最好的朋友。也让我明白了亲情的重要。&lt;/p&gt;
&lt;p&gt;度过人生中空白的几年，来到了今年。&lt;/p&gt;
&lt;h2&gt;反思&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211226-19%E5%B2%81%EF%BC%8C%E6%89%BE%E5%9B%9E%E8%BF%B7%E5%A4%B1%E7%9A%84%E8%87%AA%E5%B7%B1%EF%BC%9A%E7%83%AD%E7%88%B1%E3%80%81%E5%8B%87%E6%95%A2%E4%BB%A5%E5%8F%8A%E6%84%9F%E6%81%A9/20210207192531.jpg&quot; alt=&quot;沉思&quot; /&gt;&lt;/p&gt;
&lt;p&gt;👆 大一刚来学校，宿舍晚上窗外的景象。正暗示了在人生中沉思踌躇的我。&lt;/p&gt;
&lt;p&gt;我想变成什么样的人？&lt;/p&gt;
&lt;p&gt;乐观：天生我材必有用，千金散尽还复来。&lt;/p&gt;
&lt;p&gt;热爱一切：爱一个人，也爱她的缺点。爱一份事业，也爱它带来的困难。&lt;a href=&quot;https://books.nexmoe.com/2021/2HHWYNY.html&quot;&gt;焦虑，生活是否真的如他们所说 - 陆本为 (nexmoe.com)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;坚定：&lt;a href=&quot;https://books.nexmoe.com/2021/70XG8S.html&quot;&gt;橡皮擦 - 陆本为 (nexmoe.com)&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;你的时间是有限的，所以不要浪费它为别人而活。不要陷入教条 — 活在其他人的思想成果之中。不要让他人意见产生的噪音淹没你自己的心声。最重要的是，要拥有追随你的内心和直觉的勇气。他们已经知道你真正想成为什么。其他所有都是次要的。—— STEVE JOBS&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;勇敢：谁怕？一蓑烟雨任平生。&lt;a href=&quot;https://books.nexmoe.com/2021/22DTRZH.html&quot;&gt;对不起，我自暴自弃了 - 陆本为 (nexmoe.com)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211226-19%E5%B2%81%EF%BC%8C%E6%89%BE%E5%9B%9E%E8%BF%B7%E5%A4%B1%E7%9A%84%E8%87%AA%E5%B7%B1%EF%BC%9A%E7%83%AD%E7%88%B1%E3%80%81%E5%8B%87%E6%95%A2%E4%BB%A5%E5%8F%8A%E6%84%9F%E6%81%A9/image-20211226122946237.png&quot; alt=&quot;image-20211226122946237&quot; /&gt;&lt;/p&gt;
&lt;p&gt;👆 博客 陆本为 的副标题&lt;/p&gt;
&lt;p&gt;浪漫：世界不会满足人，人决心以自己的行动来改变世界。——列宁&lt;/p&gt;
&lt;p&gt;无论什么样的灾难降临，只要生命还在，生活始终要继续。——美丽人生&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211226-19%E5%B2%81%EF%BC%8C%E6%89%BE%E5%9B%9E%E8%BF%B7%E5%A4%B1%E7%9A%84%E8%87%AA%E5%B7%B1%EF%BC%9A%E7%83%AD%E7%88%B1%E3%80%81%E5%8B%87%E6%95%A2%E4%BB%A5%E5%8F%8A%E6%84%9F%E6%81%A9/p2533776779.jpg&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;p&gt;👆 美丽人生男主的最后一幕&lt;/p&gt;
&lt;h2&gt;寻找&lt;/h2&gt;
&lt;p&gt;不断的反思，让我清楚的知道自己背离初心太远了，离我当初的追求越来越远了。&lt;/p&gt;
&lt;p&gt;我决定找回迷失的自己。在今年 2 月 15 日，我决定开始我的新征程。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211226-19%E5%B2%81%EF%BC%8C%E6%89%BE%E5%9B%9E%E8%BF%B7%E5%A4%B1%E7%9A%84%E8%87%AA%E5%B7%B1%EF%BC%9A%E7%83%AD%E7%88%B1%E3%80%81%E5%8B%87%E6%95%A2%E4%BB%A5%E5%8F%8A%E6%84%9F%E6%81%A9/image-20211226115107795.png&quot; alt=&quot;image-20211226115107795&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;找回迷失的自己&lt;/h2&gt;
&lt;p&gt;先回复上面：我快要成功了！这一年随着我定下目标并朝着目标一步步的努力。我得到了进化，或是说压抑的本性得到了释放。我就快要成功了！&lt;/p&gt;
&lt;p&gt;我终于找回了迷失的自己。我开始重新热爱一切。&lt;/p&gt;
&lt;p&gt;我的朋友说：&lt;/p&gt;
&lt;p&gt;“你的眼里又焕发出光芒了。”&lt;/p&gt;
&lt;p&gt;“真为你开心！”&lt;/p&gt;
&lt;p&gt;“哈哈你得到认可我也跟着好开心”&lt;/p&gt;
&lt;p&gt;“好！”&lt;/p&gt;
&lt;p&gt;“真好哇”&lt;/p&gt;
&lt;h2&gt;感谢&lt;/h2&gt;
&lt;p&gt;世间所有的相遇，都是久别重逢。/ 一切都是最好的安排。&lt;/p&gt;
&lt;p&gt;感谢家长、朋友的支持和陪伴，我的家长给予了我非常多的信任，让我有了一份敢于探险的勇气。不像其他家庭那种封建大家长式家庭那样过于束缚我。在生命中的黑暗时刻，是父母给予了我最大的支持，让我有了希望和决心去突破这一切。感谢朋友的陪伴，他们分享给我的光明，让我不完全被云翳遮盖了前进的路途。让我不至于对一切绝望。&lt;/p&gt;
&lt;p&gt;感谢当初没放弃的自己，当初仿佛在地狱走过一趟的自己感觉现在已经没有什么能打败自己了。感谢当年的我最后终于鼓起了勇气，才得以如此快的恢复。感谢自己永远向往着光明。感谢自己一直坚持自我。&lt;/p&gt;
&lt;p&gt;感谢高中的黑暗打压，那段黑暗让我现在不再害怕很多事情。这段黑暗让我清楚认识到以前的我实在是太胆小了，害怕一切，害怕失去，害怕失败，害怕结果的到来。正是这段黑暗让我有了破釜沉舟的勇气。&lt;/p&gt;
&lt;p&gt;感谢当初转专业计算机拒绝了我，让还在不停犹豫的我鼓起勇气，下定了决心。踏上了更为艰巨的旅途。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;去他妈的瞻前顾后，其他的路我都不想了，我只走这一条了，即使最后粉身碎骨我也要走下去。以前老是想着这找退路，那找退路，总觉得失败了还有办法，只要活着就还有希望。但是这些退路明明就不是我最想走的那条路。&lt;/p&gt;
&lt;p&gt;我不要再继续自暴自弃下去了。我只管走自己的路罢，其他的事又与我何干。这么多年，我一直都在周围人的不理解中走来了。多这几年又何妨，我相信，我一定会等到柳暗花明的那一天。——&lt;a href=&quot;https://books.nexmoe.com/2021/22DTRZH.html&quot;&gt;对不起，我自暴自弃了 - 陆本为 (nexmoe.com)&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;正因为有这些值得感谢的一切，才造就了如今的我。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211226-19%E5%B2%81%EF%BC%8C%E6%89%BE%E5%9B%9E%E8%BF%B7%E5%A4%B1%E7%9A%84%E8%87%AA%E5%B7%B1%EF%BC%9A%E7%83%AD%E7%88%B1%E3%80%81%E5%8B%87%E6%95%A2%E4%BB%A5%E5%8F%8A%E6%84%9F%E6%81%A9/20210207192757.jpg&quot; alt=&quot;1&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211226-19%E5%B2%81%EF%BC%8C%E6%89%BE%E5%9B%9E%E8%BF%B7%E5%A4%B1%E7%9A%84%E8%87%AA%E5%B7%B1%EF%BC%9A%E7%83%AD%E7%88%B1%E3%80%81%E5%8B%87%E6%95%A2%E4%BB%A5%E5%8F%8A%E6%84%9F%E6%81%A9/20210207192530.jpg&quot; alt=&quot;黄鹤楼&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;/table&gt;
&lt;p&gt;👆 东湖和黄鹤楼&lt;/p&gt;
&lt;h2&gt;希望&lt;/h2&gt;
&lt;p&gt;希望新的一年我还能够追上你的脚步，来年的这个时候你还愿意看我的年终。也希望明年也和今年一样，满怀期望。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211226-19%E5%B2%81%EF%BC%8C%E6%89%BE%E5%9B%9E%E8%BF%B7%E5%A4%B1%E7%9A%84%E8%87%AA%E5%B7%B1%EF%BC%9A%E7%83%AD%E7%88%B1%E3%80%81%E5%8B%87%E6%95%A2%E4%BB%A5%E5%8F%8A%E6%84%9F%E6%81%A9/image-20211226124821260.png&quot; alt=&quot;image-20211226124821260&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;朋友们的年终&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://ancient-pasta-c48.notion.site/2021-f233c5e6f5c3415595ef90778fb67f3a&quot;&gt;2021 年终总结 - 断舍离与原则 (notion.site)&lt;/a&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>正式版发布前夕，基建基本完成。重新向你介绍，小舒同学，你的下一代新建标签页。</title><link>https://nexmoe.com/zh/3NQD4F</link><guid isPermaLink="true">https://nexmoe.com/zh/3NQD4F</guid><pubDate>Fri, 17 Dec 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;我们费尽心思折腾我们的主页，却从来没好好整理过我们的收藏夹。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;官网：&lt;a href=&quot;https://xiaoshu.app/&quot;&gt;https://xiaoshu.app/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;为什么&lt;/h2&gt;
&lt;p&gt;新建标签页这么多，为什么我还要做这个东西？&lt;/p&gt;
&lt;p&gt;其实就是因为暑假的一天，最后一次故障老项目没能挺过来。突然发现重新找个主页，去把我的一大堆东西弄进去太麻烦了。于是小舒同学便诞生了。&lt;/p&gt;
&lt;h2&gt;不久之前&lt;/h2&gt;
&lt;p&gt;其实不久前我就在 v2 发布过这个作品。&lt;a href=&quot;https://www.v2ex.com/t/810701&quot;&gt;https://www.v2ex.com/t/810701&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;但是那个时候太简陋，如今已经迭代多次，基本已经是一个全新的面貌。&lt;/p&gt;
&lt;p&gt;所以是时候来重新介绍一下小舒同学了。&lt;/p&gt;
&lt;h2&gt;买了条域名&lt;/h2&gt;
&lt;p&gt;买了条 .app 的域名，意味着我开始更加投入了。&lt;/p&gt;
&lt;h2&gt;大收藏夹的支持&lt;/h2&gt;
&lt;p&gt;你有 1K 书签、2K 书签还是 5K 书签？不再需要担心，小舒同学照样层次清晰的展现给你！&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/20211217-/Snipaste_2021-11-30_16-24-45.png&quot; alt=&quot;Snipaste_2021-11-30_16-24-45&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;强大的搜索功能&lt;/h2&gt;
&lt;p&gt;支持数十种搜索引擎、支持临时使用搜索引擎、搜索时还会根据你的收藏夹进行内容推荐&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/20211217-/Snipaste_2021-11-28_11-08-48.png&quot; alt=&quot;Snipaste_2021-11-28_11-08-48&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;条形卡片与 flomo 的结合&lt;/h2&gt;
&lt;p&gt;种草的视频和文章不再需要污染你的 To Do 清单。无需截止时间，摸🐟、划‍🌊随时打开。&lt;/p&gt;
&lt;p&gt;看完的感想，可以快速记到 flomo！&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/20211217-/toread.png&quot; alt=&quot;toread&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;再见&lt;/h2&gt;
&lt;p&gt;下次见面或许又是好一段时间过后了。相信那时又会以一个全新的面貌面向大家。&lt;/p&gt;
&lt;p&gt;长路漫漫，望我们再见的时候彼此都安好。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>学习通加 Anki 光速逃离挂科</title><link>https://nexmoe.com/zh/28M7YJG</link><guid isPermaLink="true">https://nexmoe.com/zh/28M7YJG</guid><pubDate>Fri, 26 Nov 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;为了防止挂科，写了个脚本，可以将你的超星学习通里的作业数据、随堂练习导出成为 Csv 文件，方便导入 Anki 不停的复习错题。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;以下是操作教程。&lt;/p&gt;
&lt;h2&gt;一 下载安装 Anki&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://www.ankichina.net/resource/winAnki/&quot;&gt;Anki 让记忆更轻松 - ankichina&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;二 下载 Anki 选择题模板&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://zhangsn.me/anki-awesome-select/&quot;&gt;Anki 选择题模板（单选 + 多选 + 自定义选项） | Half Stack (zhangsn.me)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;下载后双击即可导入模板&lt;/p&gt;
&lt;h2&gt;三 导出学习通作业、随堂练习数据&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;安装油猴或脚本猫&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;安装“超星 To Csv”脚本 https://scriptcat.org/script-show-page/219&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;打开学习通作业或随堂练习页面，点击“下载题目数据”按钮&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211126-%E5%AD%A6%E4%B9%A0%E9%80%9A%E5%8A%A0Anki%E5%85%89%E9%80%9F%E9%80%83%E7%A6%BB%E6%8C%82%E7%A7%91/image-20211126172049922.png&quot; alt=&quot;image-20211126172049922&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;四 将数据导入 Anki&lt;/h2&gt;
&lt;p&gt;1、打开 Anki，点击“文件”&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211126-%E5%AD%A6%E4%B9%A0%E9%80%9A%E5%8A%A0Anki%E5%85%89%E9%80%9F%E9%80%83%E7%A6%BB%E6%8C%82%E7%A7%91/image-20211126170943239.png&quot; alt=&quot;image-20211126170943239&quot; /&gt;&lt;/p&gt;
&lt;p&gt;2、选择“导入”&lt;/p&gt;
&lt;p&gt;3、选择 步骤（三 3）下载的文件&lt;/p&gt;
&lt;p&gt;4、模板选择如图&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211126-%E5%AD%A6%E4%B9%A0%E9%80%9A%E5%8A%A0Anki%E5%85%89%E9%80%9F%E9%80%83%E7%A6%BB%E6%8C%82%E7%A7%91/image-20211127122242076.png&quot; alt=&quot;image-20211127122242076&quot; /&gt;&lt;/p&gt;
&lt;p&gt;5、点击“导入”&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>19岁集5年经验的项目，小舒同学</title><link>https://nexmoe.com/zh/Y6V6RP</link><guid isPermaLink="true">https://nexmoe.com/zh/Y6V6RP</guid><pubDate>Tue, 16 Nov 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;小舒同学是我的第一个当作产品做的项目。19 岁的暑假，我从立项到做出来 0.0.1 版本，不过两三天。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;他也是继承轻惋起始页（&lt;a href=&quot;https://nexmoe.com/537283684&quot;&gt;轻惋起始页回忆录 - 折影轻梦 (nexmoe.com)&lt;/a&gt;）的新项目。&lt;/p&gt;
&lt;p&gt;介绍在官网都写了，去官网看看就行：&lt;a href=&quot;https://xiaoshuapp.com/&quot;&gt;小舒同学 - 基于书签的新建标签页 (nexmoe.com)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;目前，小舒同学在立项后也才过了了 3、4 个月。目前仍然处于测试阶段，有许多功能还没做完。喜欢尝鲜的用户可以体验一下。&lt;/p&gt;
&lt;p&gt;![网页捕获_16-11-2021_203157_shu.nexmoe.com](https://nexmoe.com/images/20211116-19 岁集 5 年经验的项目，小舒同学/网页捕获_16-11-2021_203157_shu.nexmoe.com.jpeg)&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>小舒同学的可用性测试与反思</title><link>https://nexmoe.com/zh/ZFDZT7</link><guid isPermaLink="true">https://nexmoe.com/zh/ZFDZT7</guid><pubDate>Sun, 07 Nov 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;小舒同学算是我第一个开始认真做产品了，本文记录一下我做的一些可用性测试、应对所出现的问题的解决方案以及自己的一些反思。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;关于小舒&lt;/h2&gt;
&lt;p&gt;我们曾经费尽心思折腾我们的主页，却从来没好好整理过我们的收藏夹。小舒同学是省事、高效的新一代新建标签页浏览器插件，根据你的收藏夹生成新建标签页。可以作为你的浏览器主页也可以仅仅是新建标签页。但从此以后再也不需要管理收藏夹的同时还要额外管理一个主页了。&lt;/p&gt;
&lt;p&gt;官网链接：&lt;a href=&quot;https://xiaoshuapp.com/&quot;&gt;小舒同学&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;测试内容&lt;/h2&gt;
&lt;p&gt;我将官网打开展示给测试对象，我在一旁不给提示，观测测试对象是否能够顺利安装并打开小舒同学。&lt;/p&gt;
&lt;p&gt;如果测试卡壳过久，测试对象都无法进行下一步我才会给尽量少的提示。&lt;/p&gt;
&lt;h2&gt;第一次测试&lt;/h2&gt;
&lt;p&gt;我的第一个观测对象还是比较熟练的，毕竟是有装油猴脚本经验的人。&lt;/p&gt;
&lt;h3&gt;过程&lt;/h3&gt;
&lt;p&gt;他很快的就知道了自己的浏览器是什么。一下就下好了插件。&lt;/p&gt;
&lt;p&gt;但是，Edge 浏览器有个很大的问题，那就是当安装新建标签页插件时后，Edge 浏览器会停用该插件并弹出一个窗口，有个告诉你怎么启用插件的链接。&lt;/p&gt;
&lt;p&gt;该测试对象也是很流畅的点进了链接，但是，但是，接下来就卡住了，他所处的测试环境并没有让他静下心来看他文章内容。过了好一会我提示让他看内容，他才将测试进行下去。&lt;/p&gt;
&lt;p&gt;第二个问题，他启用后，并不知道这个插件是干什么的，所以他并不会有意识要打开新建标签页。&lt;/p&gt;
&lt;p&gt;最后一个问题。Edge 浏览器弹出如下窗口，他本能性的迅速的点了 ×，幸好点 × 并不会还原设置。&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- &lt;img src=&quot;https://xiaoshuapp.com/assets/4.af1a1036.png&quot; alt=&quot;img&quot; /&gt; --&amp;gt;&lt;/p&gt;
&lt;h3&gt;改进&lt;/h3&gt;
&lt;p&gt;作为我人生的第一个测试对象，他还是比较“极客”的用户。流程基本流畅。但我也发现了一些不足。&lt;/p&gt;
&lt;p&gt;针对一些问题，我做了插件欢迎页，在插件安装并启用后，会引导用户打开新建标签页，并且点击保留更改。&lt;/p&gt;
&lt;p&gt;但是截至 21 年 11 月 7 日，写本文的时间点，Edge 的版本仍然没有审核通过，后面的测试也是基于没有引导的情况下进行的。&lt;/p&gt;
&lt;h2&gt;第二次&lt;/h2&gt;
&lt;p&gt;第二个测试对象的操作过程也是比较流畅的，几乎没任何大问题，没给我留下多少印象。&lt;/p&gt;
&lt;h3&gt;过程&lt;/h3&gt;
&lt;p&gt;唯一遇到的问题是和第一个测试对象一样的，不得不说，Edge 这个没主次按钮的设计会浪费新手用户很多时间。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211107-%E5%B0%8F%E8%88%92%E5%90%8C%E5%AD%A6%E7%9A%84%E5%8F%AF%E7%94%A8%E6%80%A7%E6%B5%8B%E8%AF%95%E4%B8%8E%E5%8F%8D%E6%80%9D/image-20211107214540941.png&quot; alt=&quot;image-20211107214540941&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;改进&lt;/h3&gt;
&lt;p&gt;在第一个测试对象的改进中就已经对该问题进行了改进。&lt;/p&gt;
&lt;h2&gt;第三次&lt;/h2&gt;
&lt;p&gt;前两次的测试对象操作流畅地让我大吃一惊，这次测试对象也让我大吃一惊。他整个流程没有任何环节不卡壳。他对于电脑的理解几乎为 0，上大学前也几乎没有怎么接触过电脑。&lt;/p&gt;
&lt;h3&gt;过程&lt;/h3&gt;
&lt;p&gt;首先，他不知道自己的浏览器是什么，对，就是如此令人难过。于是他在首页的四个按钮卡了好久。在提示他看图标后，他终于选择了正确的浏览器。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211107-%E5%B0%8F%E8%88%92%E5%90%8C%E5%AD%A6%E7%9A%84%E5%8F%AF%E7%94%A8%E6%80%A7%E6%B5%8B%E8%AF%95%E4%B8%8E%E5%8F%8D%E6%80%9D/image-20211107214321649.png&quot; alt=&quot;image-20211107214321649&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后，点进去后他又卡住了，他不知道如何下载这个插件。可能对于我们这些比较熟悉电脑操作的人来说这很轻而易举，但是他只是拔剑四顾心茫然。又不得不吐槽一下微软的设计，“获取”这个图标，微软并没有使用强调色，从未来过这个页面的用户就迷路了。该名观测对象在这个页面上滑下滑，尝试点了几个有强调色的链接，可惜这都不是安装插件的方式。最后经提示安装成功插件。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211107-%E5%B0%8F%E8%88%92%E5%90%8C%E5%AD%A6%E7%9A%84%E5%8F%AF%E7%94%A8%E6%80%A7%E6%B5%8B%E8%AF%95%E4%B8%8E%E5%8F%8D%E6%80%9D/image-20211107214540941.png&quot; alt=&quot;image-20211107214540941&quot; /&gt;&lt;/p&gt;
&lt;p&gt;可惜，别人遇到的问题，该测试用户也逃不掉，他没很快看明白 Edge 的文章，到了扩展页甚至不知道开启按钮是哪个。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211107-%E5%B0%8F%E8%88%92%E5%90%8C%E5%AD%A6%E7%9A%84%E5%8F%AF%E7%94%A8%E6%80%A7%E6%B5%8B%E8%AF%95%E4%B8%8E%E5%8F%8D%E6%80%9D/image-20211107224900166-16362965409911.png&quot; alt=&quot;image-20211107224900166&quot; /&gt;&lt;/p&gt;
&lt;p&gt;启动后也遇到了上述用户的卡壳。&lt;/p&gt;
&lt;h3&gt;改进&lt;/h3&gt;
&lt;p&gt;将官网的浏览器图标换成有颜色的，而不是白色的。&lt;/p&gt;
&lt;p&gt;完善了欢迎页。&lt;/p&gt;
&lt;p&gt;以及一些我解决不了的问题，不知道以后会不会想到解决方案。&lt;/p&gt;
&lt;h2&gt;第四次&lt;/h2&gt;
&lt;p&gt;第四位测试对象，也多多少少遇到了上述的问题，但这个时候挂网也是有些许改进的，比较流畅。重复的问题我也不再说了。&lt;/p&gt;
&lt;h3&gt;问题&lt;/h3&gt;
&lt;p&gt;到了所有步骤走完后，是时候该启动新建标签页面了。这名测试对象却遇到了新的问题。&lt;/p&gt;
&lt;p&gt;他的电脑上装了联想电脑管家。新建标签页被强制设置为的联想的新建标签页。我出手帮他手动设置的一下，但这并不算是解决方案。&lt;/p&gt;
&lt;p&gt;本次测试还观察了简短的使用过程，在自定义壁纸的时候，由于图片加载缓慢，测试对象以为没加载出来的图片是纯黑色壁纸。&lt;/p&gt;
&lt;p&gt;以及测试了小舒同学的一个特别的功能，快速临时搜索功能。发现添加搜索引擎并不方便。&lt;/p&gt;
&lt;h3&gt;改进&lt;/h3&gt;
&lt;p&gt;增加了图片加载提示，未来会优化图片加载速度，并加入懒加载。&lt;/p&gt;
&lt;p&gt;同时为了体现皮肤功能的重要性，将自定义皮肤功能放在了首页。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211107-%E5%B0%8F%E8%88%92%E5%90%8C%E5%AD%A6%E7%9A%84%E5%8F%AF%E7%94%A8%E6%80%A7%E6%B5%8B%E8%AF%95%E4%B8%8E%E5%8F%8D%E6%80%9D/image-20211107225935081.png&quot; alt=&quot;image-20211107225935081&quot; /&gt;&lt;/p&gt;
&lt;p&gt;增加了自定义搜索引擎按钮&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211107-%E5%B0%8F%E8%88%92%E5%90%8C%E5%AD%A6%E7%9A%84%E5%8F%AF%E7%94%A8%E6%80%A7%E6%B5%8B%E8%AF%95%E4%B8%8E%E5%8F%8D%E6%80%9D/image-20211107231549813.png&quot; alt=&quot;image-20211107231549813&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;第五次&lt;/h2&gt;
&lt;p&gt;这次的测试对象也和第三次的类似，属于小白的范畴。&lt;/p&gt;
&lt;h3&gt;问题&lt;/h3&gt;
&lt;p&gt;他不知道自己的浏览器是什么，但是犹豫许久后直觉般的选择了第一个按钮“Edge”。事实证明我把 Edge 放在第一位是非常正确的设计。&lt;/p&gt;
&lt;p&gt;然后也是和上面相同的问题。还遇到了第四名测试对象遇到的新建标签页被锁定的问题。&lt;/p&gt;
&lt;p&gt;看来新建标签页被锁定这个问题需要解决了。&lt;/p&gt;
&lt;h3&gt;改进&lt;/h3&gt;
&lt;p&gt;解决小白用户的选择困难问题&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211107-%E5%B0%8F%E8%88%92%E5%90%8C%E5%AD%A6%E7%9A%84%E5%8F%AF%E7%94%A8%E6%80%A7%E6%B5%8B%E8%AF%95%E4%B8%8E%E5%8F%8D%E6%80%9D/image-20211107233749221.png&quot; alt=&quot;image-20211107233749221&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211107-%E5%B0%8F%E8%88%92%E5%90%8C%E5%AD%A6%E7%9A%84%E5%8F%AF%E7%94%A8%E6%80%A7%E6%B5%8B%E8%AF%95%E4%B8%8E%E5%8F%8D%E6%80%9D/image-20211107234104545.png&quot; alt=&quot;image-20211107234104545&quot; /&gt;&lt;/p&gt;
&lt;p&gt;2021 年 11 月 7 日&lt;/p&gt;
&lt;hr /&gt;
</content:encoded><category>post</category></item><item><title>轻惋起始页回忆录</title><link>https://nexmoe.com/zh/537283684</link><guid isPermaLink="true">https://nexmoe.com/zh/537283684</guid><pubDate>Fri, 08 Oct 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;用 PHP 写的模板，需要 PHP 环境运行&lt;/p&gt;
&lt;p&gt;写于 2017 年 11 月&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;Github&lt;/h2&gt;
&lt;p&gt;https://github.com/mixcm/template-mixcmWallpaper-v1&lt;/p&gt;
&lt;p&gt;欢迎 Star&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.shields.io/github/stars/nexmoe/template-mixcmWallpaper-v1.svg&quot; alt=&quot;stars&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/forks/nexmoe/template-mixcmWallpaper-v1.svg&quot; alt=&quot;forks&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/license/nexmoe/template-mixcmWallpaper-v1.svg&quot; alt=&quot;license&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;截图&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20171101%E8%A7%85%E6%BC%AB%E8%80%85%E5%A3%81%E7%BA%B8%E7%AB%99%E7%AC%AC%E4%B8%80%E7%89%88%E6%A8%A1%E6%9D%BF/800.jpg&quot; alt=&quot;800&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20171101%E8%A7%85%E6%BC%AB%E8%80%85%E5%A3%81%E7%BA%B8%E7%AB%99%E7%AC%AC%E4%B8%80%E7%89%88%E6%A8%A1%E6%9D%BF/799.jpg&quot; alt=&quot;799&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;2020.3&lt;/h4&gt;
&lt;p&gt;后端开始使用 Swoole，前端使用 Vuetify 作为 UI 框架&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-12_17-44-29.png&quot; alt=&quot;Snipaste_2020-11-12_17-44-29&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-12_17-44-36.png&quot; alt=&quot;Snipaste_2020-11-12_17-44-36&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-12_17-44-44.png&quot; alt=&quot;Snipaste_2020-11-12_17-44-44&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-12_17-45-42.png&quot; alt=&quot;Snipaste_2020-11-12_17-45-42&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;2019.10&lt;/h4&gt;
&lt;p&gt;新闻流&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/ade62b85c0cef80b85325239bf99463d.png&quot; alt=&quot;ade62b85c0cef80b85325239bf99463d.png&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/1b140a756cd87851ade2b9d3e3573e7a.png&quot; alt=&quot;1b140a756cd87851ade2b9d3e3573e7a.png&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/d233a96d6384c2c17f926239b924b94b.png&quot; alt=&quot;d233a96d6384c2c17f926239b924b94b.png&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;2019.9&lt;/h4&gt;
&lt;p&gt;更换 Nuxt.js&lt;/p&gt;
&lt;h4&gt;2019.6&lt;/h4&gt;
&lt;p&gt;支持更换皮肤&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/aa9d06631f4f991902371d648cb4d239.png&quot; alt=&quot;aa9d06631f4f991902371d648cb4d239.png&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/9639646f613ebe03e0dc2eb9977a3997.png&quot; alt=&quot;9639646f613ebe03e0dc2eb9977a3997.png&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/1236bff4e7428e9f6073b1932de10f1e.png&quot; alt=&quot;1236bff4e7428e9f6073b1932de10f1e.png&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/2333.jpg&quot; alt=&quot;2333&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb-1605174139653.jpg&quot; alt=&quot;psb&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;2019.5&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/24ba6bc60beb50ba347c55314b799689.png&quot; alt=&quot;24ba6bc60beb50ba347c55314b799689.png&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;2019.3&lt;/h4&gt;
&lt;p&gt;后台第三版，前端使用 Vue+Element，后端使用 CodeIgniter&lt;/p&gt;
&lt;p&gt;https://github.com/chainwon/chainwon-console-vue-v3&lt;/p&gt;
&lt;p&gt;https://github.com/chainwon/chainwon-console-php-v3http://dev.chainwon.com/&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-13_16-16-16.png&quot; alt=&quot;Snipaste_2020-11-13_16-16-16&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-13_16-18-34.png&quot; alt=&quot;Snipaste_2020-11-13_16-18-34&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-13_16-18-40.png&quot; alt=&quot;Snipaste_2020-11-13_16-18-40&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-13_16-18-45.png&quot; alt=&quot;Snipaste_2020-11-13_16-18-45&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-13_16-18-51.png&quot; alt=&quot;Snipaste_2020-11-13_16-18-51&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-13_16-18-56.png&quot; alt=&quot;Snipaste_2020-11-13_16-18-56&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;2018.12&lt;/h4&gt;
&lt;p&gt;前端更换为 Vue + Element&lt;/p&gt;
&lt;h4&gt;2018.8&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(1)-1604903990509.jpg&quot; alt=&quot;psb(1)&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;2018.7&lt;/h4&gt;
&lt;p&gt;v3 版本第 2 版后台，拖拽排序和收录功能，后端使用 CodeIgniter&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/%E6%88%91%E7%9A%84%E7%BD%91%E5%9D%80-%E6%8E%A7%E5%88%B6%E5%8F%B0-%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA.png&quot; alt=&quot;我的网址 - 控制台 - 轻惋导航&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA-%E6%B0%B8%E5%AD%98%E7%9A%84%E6%AC%A1%E5%85%83.png&quot; alt=&quot;轻惋导航 - 永存的次元&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2018-07-27_23-36-07-1604903816308.png&quot; alt=&quot;Snipaste_2018-07-27_23-36-07&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2018-07-27_23-33-34.png&quot; alt=&quot;Snipaste_2018-07-27_23-33-34&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2018-07-27_18-19-35.png&quot; alt=&quot;Snipaste_2018-07-27_18-19-35&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;2018.3&lt;/h4&gt;
&lt;p&gt;v3 版本的后台，后端使用原生 PHP&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb-1604903455084.jpg&quot; alt=&quot;psb&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;2018.2&lt;/h4&gt;
&lt;p&gt;v3 版本的后台，后端使用原生 PHP&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb-1604903344508.jpg&quot; alt=&quot;psb&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(1)-1604903399386.jpg&quot; alt=&quot;psb(1)&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/%E7%BD%91%E5%9D%80%E5%A4%A7%E5%85%A8-%E6%8E%A7%E5%88%B6%E5%8F%B0-%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA.png&quot; alt=&quot;网址大全 - 控制台 - 轻惋导航&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/%E4%B8%AA%E6%80%A7%E8%AE%BE%E7%BD%AE-%E6%8E%A7%E5%88%B6%E5%8F%B0-%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA.png&quot; alt=&quot;个性设置 - 控制台 - 轻惋导航&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/%E6%94%B6%E5%BD%95%E7%BD%91%E5%9D%80-%E6%8E%A7%E5%88%B6%E5%8F%B0-%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA.png&quot; alt=&quot;收录网址 - 控制台 - 轻惋导航&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/%E6%88%91%E7%9A%84%E5%AF%BC%E8%88%AA-%E6%8E%A7%E5%88%B6%E5%8F%B0-%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA.png&quot; alt=&quot;我的导航 - 控制台 - 轻惋导航&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;2017.12&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(1).jpg&quot; alt=&quot;psb&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb-1604903178963.jpg&quot; alt=&quot;psb&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;2017.10&lt;/h4&gt;
&lt;p&gt;新闻流&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(6).png&quot; alt=&quot;psb(6)&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb-1604902960293.png&quot; alt=&quot;psb&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(1)-1604902985626.png&quot; alt=&quot;psb(1)&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;2017.9&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(4).png&quot; alt=&quot;psb(4)&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb-1604902680580.png&quot; alt=&quot;psb&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(1)-1604902683758.png&quot; alt=&quot;psb(1)&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(5).png&quot; alt=&quot;psb(5)&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;2017.7&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/36edd0eed22e835e135767bbb66f87fb.png&quot; alt=&quot;36edd0eed22e835e135767bbb66f87fb.png&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(2)-1604902318927.png&quot; alt=&quot;psb(2)&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(3)-1604902372160.png&quot; alt=&quot;psb(3)&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb-1604902412630.png&quot; alt=&quot;psb&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(1)-1604902425115.png&quot; alt=&quot;psb(1)&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;2017.1&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb-1604902064586.png&quot; alt=&quot;psb&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(1)-1604902145123.png&quot; alt=&quot;psb(1)&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/ad3acee13ceb3c7c570e5101dba3b615.gif&quot; alt=&quot;ad3acee13ceb3c7c570e5101dba3b615.gif&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;2016.12&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb-1604901956337.png&quot; alt=&quot;psb&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(1)-1604901966000.png&quot; alt=&quot;psb(1)&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;第二大版本&lt;/h2&gt;
&lt;h4&gt;2016.6&lt;/h4&gt;
&lt;p&gt;数据库已遗失&lt;/p&gt;
&lt;p&gt;https://github.com/chainwon/chainwon-v2&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(1).png&quot; alt=&quot;psb(1)&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(2).png&quot; alt=&quot;psb(2)&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/79910dc9e7a7109ebebb77c12dda3649.gif&quot; alt=&quot;79910dc9e7a7109ebebb77c12dda3649.gif&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb.png&quot; alt=&quot;psb&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb-1604901806969.png&quot; alt=&quot;psb&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(3).png&quot; alt=&quot;psb(3)&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(2)-1604901821151.png&quot; alt=&quot;psb(2)&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb(1)-1604901515884.png&quot; alt=&quot;psb(1)-1604901515884&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/psb-1605259713459.jpg&quot; alt=&quot;psb&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;第一大版本&lt;/h2&gt;
&lt;h4&gt;2016.5&lt;/h4&gt;
&lt;p&gt;前端 Bootstrap，加上后端刚学一会的 PHP，无数据库&lt;/p&gt;
&lt;p&gt;https://github.com/chainwon/chainwon-v1&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/167b005873f8a66dc971f071f7860424.png&quot; alt=&quot;167b005873f8a66dc971f071f7860424.png&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-13_12-54-08.png&quot; alt=&quot;Snipaste_2020-11-13_12-54-08&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-13_12-56-09.png&quot; alt=&quot;Snipaste_2020-11-13_12-56-09&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA/Snipaste_2020-11-13_12-57-06.png&quot; alt=&quot;Snipaste_2020-11-13_12-57-06&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded><category>post</category></item><item><title>Github Desktop 纯萌新入门教程</title><link>https://nexmoe.com/zh/3VXH932</link><guid isPermaLink="true">https://nexmoe.com/zh/3VXH932</guid><pubDate>Thu, 07 Oct 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;GitHub 相对于其他平台还是比较友好的，自带一个 Gui 软件，省去了敲命令的力气。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;本篇教程送给我的室友。&lt;/p&gt;
&lt;h2&gt;注册一个 Github 账号&lt;/h2&gt;
&lt;p&gt;使用 GitHub 首先得拥有一个账号，&lt;/p&gt;
&lt;p&gt;前往 &lt;a href=&quot;https://github.com/signup&quot;&gt;Join GitHub · GitHub&lt;/a&gt; 注册账号，按照他的提示来就行，比平常的网站注册要花里胡哨一点点。&lt;/p&gt;
&lt;p&gt;邮箱用 QQ+@qq.com 比如 23333@qq.com 这种就行。&lt;/p&gt;
&lt;p&gt;里面的词汇都比较简单，如果看不懂可以用浏览器自带的翻译器。&lt;/p&gt;
&lt;h2&gt;下载 Github Desktop&lt;/h2&gt;
&lt;p&gt;前往 &lt;a href=&quot;https://desktop.github.com/&quot;&gt;GitHub Desktop | Simple collaboration from your desktop&lt;/a&gt; 下载 Github Desktop&lt;/p&gt;
&lt;p&gt;若官网下载太慢，可以在 联想软件商店 之类的软件里下载&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211007-GithubDesktop%E7%BA%AF%E8%90%8C%E6%96%B0%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/image-20211007224716977.png&quot; alt=&quot;image-20211007224716976&quot; /&gt;&lt;/p&gt;
&lt;p&gt;下载完后也是常规软件的安装方式。安装完后打开。&lt;/p&gt;
&lt;h2&gt;登录你的 Github 账号&lt;/h2&gt;
&lt;p&gt;第一次打开软件应该会直接让你登录 GitHub 账号，按照他的引导步骤登录就行。&lt;/p&gt;
&lt;p&gt;如果没有找到让你登录 GitHub 账号的地方，你需要在 File -&amp;gt; Options -&amp;gt; Accounts -&amp;gt; Sign in 登录。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211007-GithubDesktop%E7%BA%AF%E8%90%8C%E6%96%B0%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/image-20211007225242781.png&quot; alt=&quot;image-20211007225242781&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;新建一个 Respiratory（项目）&lt;/h2&gt;
&lt;p&gt;respiratory n. 贮藏室，仓库；知识库；智囊团，在这类我们直接称为项目就好&lt;/p&gt;
&lt;h4&gt;第一步&lt;/h4&gt;
&lt;p&gt;点击红色方框内区域&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211007-GithubDesktop%E7%BA%AF%E8%90%8C%E6%96%B0%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/image-20211007225657292.png&quot; alt=&quot;image-20211007225657292&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;第二步&lt;/h4&gt;
&lt;p&gt;点击红色方框所框选的按钮“Add” -&amp;gt; 选择 Create new respiratory…&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211007-GithubDesktop%E7%BA%AF%E8%90%8C%E6%96%B0%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/image-20211007225729470.png&quot; alt=&quot;image-20211007225729470&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;第三步 填写项目信息&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211007-GithubDesktop%E7%BA%AF%E8%90%8C%E6%96%B0%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/image-20211007230230665.png&quot; alt=&quot;image-20211007230230665&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Git ignore 暂时不用管，用于存储忽略上传到 git 的规则的文件，感兴趣 &lt;a href=&quot;https://www.jianshu.com/p/a09a9b40ad20&quot;&gt;Git 忽略文件.gitignore 的使用 - 简书 (jianshu.com)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;License 暂时不用管，建议选择 MIT License，感兴趣了解 &lt;a href=&quot;https://www.runoob.com/w3cnote/open-source-license.html&quot;&gt;各种开源协议介绍 | 菜鸟教程 (runoob.com)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;完成项目初始化，此时你的项目还仅仅留在你的电脑上，并没有上传到 Github 这个平台上。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211007-GithubDesktop%E7%BA%AF%E8%90%8C%E6%96%B0%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/image-20211007230939817.png&quot; alt=&quot;image-20211007230939817&quot; /&gt;&lt;/p&gt;
&lt;p&gt;点击深蓝色的 Publish repository 按钮后确认信息，再点击弹出窗口中的深蓝色的 Publish repository 按钮就可以将项目上传到 Github 上。&lt;/p&gt;
&lt;p&gt;取消选择 Keep this code private 可以让别人看到自己的项目。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211007-GithubDesktop%E7%BA%AF%E8%90%8C%E6%96%B0%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/image-20211007231058989.png&quot; alt=&quot;image-20211007231058989&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;编写代码&lt;/h2&gt;
&lt;p&gt;点击 Show in Explorer 可以直接打开项目目录&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211007-GithubDesktop%E7%BA%AF%E8%90%8C%E6%96%B0%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/image-20211007231310119.png&quot; alt=&quot;image-20211007231310119&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在目录中新建项目文件并编写代码&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211007-GithubDesktop%E7%BA%AF%E8%90%8C%E6%96%B0%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/image-20211007231412713.png&quot; alt=&quot;image-20211007231412713&quot; /&gt;&lt;/p&gt;
&lt;p&gt;回到 Github Desktop 中就能看到刚刚编写好的代码文件。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211007-GithubDesktop%E7%BA%AF%E8%90%8C%E6%96%B0%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/image-20211007231523949.png&quot; alt=&quot;image-20211007231523949&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;将你的代码上传到 Github&lt;/h2&gt;
&lt;p&gt;填写 Commit 后点击深蓝色 Commit to main 按钮就可以提交你的代码。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211007-GithubDesktop%E7%BA%AF%E8%90%8C%E6%96%B0%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/image-20211007231636853.png&quot; alt=&quot;image-20211007231636853&quot; /&gt;&lt;/p&gt;
&lt;p&gt;点击红框中的 Push origin，就能把你刚刚提交的代码上传至 Github 了&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20211007-GithubDesktop%E7%BA%AF%E8%90%8C%E6%96%B0%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/image-20211007231758317.png&quot; alt=&quot;image-20211007231758317&quot; /&gt;&lt;/p&gt;
&lt;p&gt;结束！🎉🎉🎉祝贺你已经学会使用 Github Desktop 的最基本操作了。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>FireFox 扩展开发遇到的一些问题</title><link>https://nexmoe.com/zh/18RAYEK</link><guid isPermaLink="true">https://nexmoe.com/zh/18RAYEK</guid><pubDate>Tue, 05 Oct 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;理论上来说基于 Chrome 开发的扩展可以直接上传到 Firefox，但是也会遇到一些问题。就此总结一下&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;manifest.json was not found&lt;/h2&gt;
&lt;p&gt;第一次把 Chrome 的扩展上传到 Firefox 时遇到 &lt;code&gt;manifest.json was not found&lt;/code&gt; 的报错&lt;/p&gt;
&lt;p&gt;此问题可能是上传的压缩包，manifest.json 不是在压缩包根目录，如下图所示，错误的压缩包中 manifest.json 在目录 dist 中&lt;/p&gt;
&lt;h2&gt;add-on ID 的缺失导致无法使用 storage.sync&lt;/h2&gt;
&lt;p&gt;这个问题折腾了我好久，网上根本没有相关内容，只有官方纯英文档说了这个，作为一个英文弱鸡，看了好半天，属于是锻炼我阅读能力了。&lt;/p&gt;
&lt;h4&gt;如何解决？&lt;/h4&gt;
&lt;p&gt;解决这个问题，需要在 manifest.json 中添加 add-on ID，代码如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&quot;browser_specific_settings&quot;: {
    &quot;gecko&quot;: {
    	&quot;id&quot;: &quot;{这是你的 add-on ID}&quot;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;如何获取 add-on ID&lt;/h4&gt;
&lt;p&gt;先不管有没有 ID，上传到 Firefox 的 AMO（就是 Firefox 的扩展商店）&lt;/p&gt;
&lt;p&gt;在扩展管理后台，进入该扩展的管理页面找到 技术信息-&amp;gt;&lt;strong&gt;UUID&lt;/strong&gt;，这个 UUID 就是所谓的 add-on ID 他的格式如 &lt;code&gt;{99646b8e-a5b2-4e52-b9ac-c38fcc1f108b}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;还有调用如下 API 时需要 add-on ID，了解更多 &lt;a href=&quot;https://extensionworkshop.com/documentation/develop/extensions-and-the-add-on-id/#when-do-you-need-an-add-on-id&quot;&gt;Extensions and the Add-on ID | Firefox Extension Workshop&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/storage/managed&quot;&gt;&lt;code&gt;storage.managed&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/storage/sync&quot;&gt;&lt;code&gt;storage.sync&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/identity/getRedirectURL&quot;&gt;&lt;code&gt;identity.getRedirectURL&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/Add-ons/WebExtensions/Native_messaging&quot;&gt;Native messaging&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/pkcs11&quot;&gt;&lt;code&gt;pkcs11&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessageExternal&quot;&gt;&lt;code&gt;runtime.onMessageExternal&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onConnectExternal&quot;&gt;&lt;code&gt;runtime.onConnectExternal&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>在树莓派上挂自挂签到脚本</title><link>https://nexmoe.com/zh/1M5ZBJX</link><guid isPermaLink="true">https://nexmoe.com/zh/1M5ZBJX</guid><pubDate>Thu, 16 Sep 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;由于某学习平台屏蔽了腾讯云和阿里云这两家服务商的 IP，我就把我 15 年买的古董树莓派 3B 翻了出来用来跑脚本。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;由于我的树莓派不是全天 24 小时供电的，不能保证永久在线，所以我希望开机就&lt;strong&gt;自动启动&lt;/strong&gt;的我脚本。&lt;/p&gt;
&lt;p&gt;然后我希望我的脚本&lt;strong&gt;仅在有签到&lt;/strong&gt;的时候通过 Server 酱通知我。&lt;/p&gt;
&lt;h2&gt;刷入系统&lt;/h2&gt;
&lt;p&gt;SD 卡这东西说实话在如今已经很少见了，我在家到处翻才翻到一张杂牌的 8G 卡，不过能用就行，现在树莓派刷入系统真方便，直接用官方的软件就行。&lt;/p&gt;
&lt;h2&gt;干掉 Python2 换上 Python3&lt;/h2&gt;
&lt;p&gt;正当我以为能直接跑脚本的时候，我才知道树莓派默认用的 Python2，所以第二步就是干掉 Python2 换上 Python3 了，终端中运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt remove python # 卸载 Python2 
sudo apt autoremove # 清理 Python2
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install python3 # 一般系统已经有 Python3 了，这步可以跳过
sudo ln -s /usr/bin/python3.7 /usr/bin/python #	创建一个新的链接指向 Python3
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Clone 脚本&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;git clone https://hub.fastgit.org/mkdir700/chaoxing_auto_sign.git # 用的 Github 加速源
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;配置脚本并运行测试&lt;/h2&gt;
&lt;p&gt;进入 &lt;code&gt;chaoxing_auto_sign/local/config.py&lt;/code&gt;  对脚本进行配置&lt;/p&gt;
&lt;p&gt;然后在终端中 &lt;code&gt;cd {填你的路径}/chaoxing_auto_sign/local/&lt;/code&gt; 并使用 &lt;code&gt;python main.py timing&lt;/code&gt; 运行脚本进行测试。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://files.catbox.moe/fuix1y.gif&quot; alt=&quot;gif&quot; /&gt;&lt;/p&gt;
&lt;p&gt;一切就绪，开始进入本文的重头戏。&lt;/p&gt;
&lt;h2&gt;安装 Screen&lt;/h2&gt;
&lt;p&gt;终端中运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install screen
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;开机自动运行脚本&lt;/h2&gt;
&lt;p&gt;在 &lt;code&gt;/home/pi/Desktop/&lt;/code&gt; 新建 &lt;code&gt;start.sh&lt;/code&gt; 方便编辑查找，内容如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/sh
 
CreateScreen()
{
        screen -dmS $1
        screen -x -S $1 -p 0 -X stuff &quot;$2&quot;
        screen -x -S $1 -p 0 -X stuff &apos;\n&apos;
}

CreateScreen &quot;chaoxing&quot; &quot;/home/pi/Desktop/chaoxing.sh&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 &lt;code&gt;/home/pi/Desktop/&lt;/code&gt; 新建 &lt;code&gt;chaoxing.sh&lt;/code&gt; 方便编辑查找，内容如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/sh

cd {填你的路径}/chaoxing_auto_sign/local/
python main.py timing
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;终端中运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /etc/rc.local
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 &lt;code&gt;exit 0&lt;/code&gt; 上插入如下代码以让系统在启动时自动运行 &lt;code&gt;start.sh&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;su pi -c &quot;exec /home/pi/Desktop/start.sh&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;编辑完成后按组合键 &lt;code&gt;Ctrl+O&lt;/code&gt; 回车保存，然后就可以重启树莓派了，重启后在终端输入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;screen -r chaoxing
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看脚本是否运行正常&lt;/p&gt;
&lt;h2&gt;（扩展）仅有签到时通过 Server 酱通知&lt;/h2&gt;
&lt;p&gt;2021 年 9 月 17 日：不是很懂 python，改了过后貌似签到成功了也不会通知。&lt;/p&gt;
&lt;p&gt;&lt;s&gt;脚本默认在每次运行时都会进行通知，频率很高非常烦人。所以做此修改。&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;&lt;s&gt;修改 &lt;code&gt;chaoxing_auto_sign\local\message.py&lt;/code&gt; 的代码为&lt;/s&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;from datetime import datetime

import aiohttp

from config import SERVER_CHAN_SEND_KEY


async def server_chan_send(dataset):
    &quot;&quot;&quot;server 酱将消息推送&quot;&quot;&quot;
    if SERVER_CHAN_SEND_KEY == &apos;&apos;:
        return
    
    msg = (&quot;| 账号 | 课程名 | 签到时间 | 签到状态 |\n&quot;
           &quot;| :----: | :----: | :------: | :------: |\n&quot;)
    msg_template = &quot;|  {}  |  {}  | {}  |    {}    |&quot;
    
    for datas in dataset:
        if datas:
            for data in datas:
                msg += msg_template.format(data[&apos;username&apos;], data[&apos;name&apos;], data[&apos;date&apos;], data[&apos;status&apos;])
                
            params = {
                &apos;title&apos;: msg,
                &apos;desp&apos;: msg
            }
            
            async with aiohttp.ClientSession() as session:
                async with session.request(
                    method=&quot;GET&quot;,
                    url=&quot;https://sctapi.ftqq.com/{}.send?title=messagetitle&quot;.format(SERVER_CHAN_SEND_KEY),
                    params=params
                ) as resp:
                    text = await resp.text()
        else:
            msg = &quot;当前暂无签到任务！\{}&quot;.format(datetime.now().strftime(&apos;%Y年%m月%d日 %H:%M:%D&apos;))
            break
&lt;/code&gt;&lt;/pre&gt;
</content:encoded><category>post</category></item><item><title>新建标签太多广告？换掉吧！</title><link>https://nexmoe.com/zh/ZBA0KB</link><guid isPermaLink="true">https://nexmoe.com/zh/ZBA0KB</guid><pubDate>Sun, 05 Sep 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;没错就是一个非常简单的替换新建标签页的浏览器插件&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;调用的 hitokoto 官方 api，每次打开新建标签页都会自动获取一段话。
适合不需要花里胡哨的新建标签页，却不希望感觉少点什么的人。&lt;/p&gt;
&lt;h2&gt;商店&lt;/h2&gt;
&lt;p&gt;Firefox: https://addons.mozilla.org/zh-CN/firefox/addon/%E4%B8%80%E8%A8%80-hitokoto-%E6%96%B0%E5%BB%BA%E6%A0%87%E7%AD%BE%E9%A1%B5/&lt;/p&gt;
&lt;p&gt;Chrome: https://chrome.google.com/webstore/detail/keegjkdjgkibioicckjpkocdabpelghf&lt;/p&gt;
&lt;p&gt;Edge: https://microsoftedge.microsoft.com/addons/detail/jcamdhjccfhaboefgimleldjdddkmbpa&lt;/p&gt;
&lt;h2&gt;开源&lt;/h2&gt;
&lt;p&gt;Github: https://github.com/nexmoe/hitokoto-newtab&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://files.catbox.moe/fcvgsu.png&quot; alt=&quot;cover&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>和一个小妹妹一起写了一个浏览器插件</title><link>https://nexmoe.com/zh/26VSD02</link><guid isPermaLink="true">https://nexmoe.com/zh/26VSD02</guid><pubDate>Mon, 30 Aug 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;她刚刚高考完，有一天问我会不会写浏览器插件。我刚好刚写了一个浏览器插件，还没写完，虽然还不是很了解浏览器插件的开发。但是她让我帮帮她，于是我就帮帮她了。最后我们两个人折腾好一会完成了这个插件。&lt;/p&gt;
&lt;p&gt;大家如果有用这个功能的，可以参与到开源中，添加你需要的搜索引擎 💖&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;项目的意义&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;防止部分网站为更多流量删掉了 OpenSearch，比如哔哩哔哩&lt;/li&gt;
&lt;li&gt;可为没有 OpenSearch 的网站添加了 OpenSearch&lt;/li&gt;
&lt;li&gt;免去你手动添加的烦恼&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;相关链接&lt;/h2&gt;
&lt;p&gt;GitHub: https://github.com/lcandy2/oSearch/
Chrome: https://chrome.google.com/webstore/detail/pejlgjjlbhpbfiiaegahmeahlhbpkglo
Firefox: https://addons.mozilla.org/firefox/addon/osearch
Edge: https://microsoftedge.microsoft.com/addons/detail/fdekeghfifiibfopfnamhegkhhdpdmlo&lt;/p&gt;
&lt;h2&gt;功能&lt;/h2&gt;
&lt;p&gt;为列表中的网站添加 OpenSearch，来让浏览器将其添加到搜索引擎
搜索引擎添加完成后，在地址栏中输入网站地址，按下 空格键 或 Tab 即可快速搜索
在 Firefox 浏览器中，需要手动点击带有加号的网站图标将其添加至搜索引擎中。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://files.catbox.moe/akylvy.png&quot; alt=&quot;oSearch helps you search wikipedia.org via OpenSearch&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://files.catbox.moe/pzn8ns.png&quot; alt=&quot;oSearch helps in adding search engines&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;使用说明&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://files.catbox.moe/xgyqr3.jpg&quot; alt=&quot;1&quot; /&gt;
&lt;img src=&quot;https://files.catbox.moe/k95w12.png&quot; alt=&quot;2&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>小舒同学（BoTab）</title><link>https://nexmoe.com/zh/products/botab</link><guid isPermaLink="true">https://nexmoe.com/zh/products/botab</guid><description>智能浏览器扩展，一键将书签内容转换为精美的新标签页和导航页面，让你保存的宝藏触手可及，浏览更高效。</description><pubDate>Fri, 06 Aug 2021 03:01:10 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20260109_Screenshot%202026-01-09%20at%2016.49.29.BjV264hC.png&quot; alt=&quot;小舒同学（BoTab）&quot; /&gt;&lt;/p&gt;&lt;p&gt;智能浏览器扩展，一键将书签内容转换为精美的新标签页和导航页面，让你保存的宝藏触手可及，浏览更高效。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://botab.net/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://botab.net/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/botab&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/eldcinofoklpfhaanlhmkmadehfgcnon&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Chrome 商店&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://microsoftedge.microsoft.com/addons/detail/epcdbodenmgkmkcimelediefohefachh&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Edge 商店&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://botab.net/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;首页&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20260109_Screenshot%202026-01-09%20at%2016.49.29.BjV264hC.png" length="1148133" type="image/png"/></item><item><title>Hexo 分类中上一篇、下一篇文章</title><link>https://nexmoe.com/zh/16GQKA4</link><guid isPermaLink="true">https://nexmoe.com/zh/16GQKA4</guid><pubDate>Thu, 15 Jul 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在“还有书籍”主题中，我把分类当作一本书，分类中的文章则形成一本书的内容。&lt;/p&gt;
&lt;p&gt;这时，不能简单的调用全站的文章来当作上一篇、下一篇的内容。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;所以结合 &lt;a href=&quot;https://nexmoe.com/24M130A&quot;&gt;Hexo 基于分类输出文章 - 折影轻梦 (nexmoe.com)&lt;/a&gt; 我写了一个基于分类输出上一篇、下一篇文章。&lt;/p&gt;
&lt;p&gt;直接贴代码了，看注释应该能看懂&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;nav class=&quot;post-nav&quot;&amp;gt;
&amp;lt;% site.categories.map(function(category){  %&amp;gt;
    &amp;lt;% page.categories.map(function(page_category){ %&amp;gt;
        &amp;lt;% if(page_category.name == category.name){ %&amp;gt; &amp;lt;!-- 先找到与当前文字相同的目录 --&amp;gt;
            &amp;lt;% let i = 0;%&amp;gt;
            &amp;lt;% category.posts.sort(&apos;-date&apos;).map(function(post){ %&amp;gt;
                &amp;lt;% i++;  %&amp;gt; 
                &amp;lt;% if(post.title == page.title){ %&amp;gt; &amp;lt;!-- 在找到当前文章所在的 index --&amp;gt;
                    &amp;lt;% let ix = 0;%&amp;gt;
                    &amp;lt;% category.posts.sort(&apos;-date&apos;).map(function(post){ %&amp;gt;
                        &amp;lt;% ix++; %&amp;gt; 
                        
                        &amp;lt;% if(ix == i + 1 &amp;amp;&amp;amp; post.title){ %&amp;gt;  &amp;lt;!-- 上一篇文章 --&amp;gt; 
                            &amp;lt;div class=&quot;old&quot;&amp;gt;
                                &amp;lt;span&amp;gt;上一章&amp;lt;/span&amp;gt;
                                &amp;lt;a href=&quot;https://nexmoe.com/&amp;lt;%-%20url_for(post.path)%20%&amp;gt;&quot;&amp;gt; &amp;lt;%= post.title %&amp;gt;&amp;lt;/a&amp;gt;
                            &amp;lt;/div&amp;gt;
                        &amp;lt;% } %&amp;gt;
                        
                        &amp;lt;% if(ix == i - 1 &amp;amp;&amp;amp; post.title){ %&amp;gt; &amp;lt;!-- 下一篇文章 --&amp;gt; 
                            &amp;lt;div class=&quot;new&quot;&amp;gt;
                                &amp;lt;span&amp;gt;下一章&amp;lt;/span&amp;gt;
                                &amp;lt;a href=&quot;https://nexmoe.com/&amp;lt;%-%20url_for(post.path)%20%&amp;gt;&quot;&amp;gt; &amp;lt;%= post.title %&amp;gt;&amp;lt;/a&amp;gt;
                            &amp;lt;/div&amp;gt;
                        &amp;lt;% } %&amp;gt;
                        
                    &amp;lt;% }) %&amp;gt;
                &amp;lt;% } %&amp;gt;
            &amp;lt;% }) %&amp;gt;
        &amp;lt;% } %&amp;gt;
    &amp;lt;% })%&amp;gt;
&amp;lt;% }) %&amp;gt;
&amp;lt;/nav&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我的博客即将同步至腾讯云 + 社区，邀请大家一同入驻：https://cloud.tencent.com/developer/support-plan?invite_code=28l9ouqqg7vo4&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>为何设计“还有书籍”主题</title><link>https://nexmoe.com/zh/32ZTCGQ</link><guid isPermaLink="true">https://nexmoe.com/zh/32ZTCGQ</guid><pubDate>Sat, 05 Jun 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;19 年的时候，我看了两本书《活着》、《解忧杂货店》。此后，便埋下了一颗让我对文学产生热爱的种子。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;在此之前，我是从未看过任何课外文学作品的。&lt;/p&gt;
&lt;p&gt;主要是因为义务教育语文对我的打压，让我从小就认为我在语文方面就是辣鸡，就别想着看书了。&lt;/p&gt;
&lt;p&gt;大学后，我有了大把时间可以看书，于是我就找各种书单，找自己喜欢的类型看。&lt;/p&gt;
&lt;p&gt;我突然发现文学和语文完全就不是一个东西。&lt;/p&gt;
&lt;h2&gt;读书不会逼着我问这是什么意思&lt;/h2&gt;
&lt;p&gt;读书也不会逼着我分析这里表达了作者什么情感。&lt;/p&gt;
&lt;p&gt;其实很小的时候，我们就被教育&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;一千个人眼里有一千个哈姆雷特&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;但是语文考试只有一个正确答案，而且还要我们多方面分析。&lt;/p&gt;
&lt;p&gt;**但文学告诉我，我是谁。**我读书可以选择自己喜欢的，可以自己体会文中的意味，从中找到自己的影子。&lt;/p&gt;
&lt;h2&gt;为什么读书&lt;/h2&gt;
&lt;p&gt;我觉得读书最大的作用，就是从书中找到自己的影子，找到共情感。&lt;/p&gt;
&lt;h2&gt;同是天涯沦落人&lt;/h2&gt;
&lt;p&gt;无论你正遇到什么问题，处于什么样的处境，书中总会有和你处境相同的人。&lt;/p&gt;
&lt;p&gt;你可能是阿 Q，总是安稳自己、欺骗自己。&lt;/p&gt;
&lt;p&gt;你可能在踌躇，不知道去选择月亮还是选择六便士。你瞻前顾后，想构建一个所谓美好的生活，但书中的主人公抛弃一切追求月亮。&lt;/p&gt;
&lt;p&gt;你可能是叔本华，对于人生有自己的想法，你与周围人格格不入，在书中却觉得你与作者的想法有不少相似之处。&lt;/p&gt;
&lt;p&gt;你可能已经成年，读《小王子》，你会回想多年前的自己，发现现在的你好像迷路了。&lt;/p&gt;
&lt;h2&gt;“还有书籍”主题&lt;/h2&gt;
&lt;p&gt;这个主题，相比于 Nexmoe 少了阴影、模糊、&lt;a href=&quot;https://nexmoe.com/21R8FYN#%E5%A4%9A%E5%BD%A9%E4%B8%8E%E6%97%A0%E9%99%90%E7%9A%84%E5%8F%AF%E8%83%BD&quot;&gt;五颜六色&lt;/a&gt;的配色，但&lt;a href=&quot;https://nexmoe.com/21R8FYN#%E5%A4%9A%E5%BD%A9%E4%B8%8E%E6%97%A0%E9%99%90%E7%9A%84%E5%8F%AF%E8%83%BD&quot;&gt;五颜六色&lt;/a&gt;也体现在书籍的封面当中。没有很多图片，而是最为注重文字。&lt;/p&gt;
&lt;h2&gt;潜藏于设计中的浪漫主义&lt;/h2&gt;
&lt;p&gt;**多了思考，少了意象。**我认为这个主题应该是具有浪漫主义色彩的，更有实业者的精神。&lt;/p&gt;
&lt;p&gt;年轻的时候，更具有理想主义色彩，认为自己努力了就一定能实现自己的梦想，认为一切事情应该向着美好发展。相信任何事情都是公平的。但现实可不是这样的。&lt;/p&gt;
&lt;p&gt;但被现实打击后，认清现实后。难道我就得秉持“打不过就加入”的态度，变成一个现实主义者，然后用“世界就这样”来安慰自己吗？&lt;/p&gt;
&lt;p&gt;我所认为的浪漫主义，&lt;strong&gt;应当是具有勇气&lt;/strong&gt;的。有勇气面对现实，又&lt;strong&gt;不放弃对理想、美好的追求&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;我认为“还有书籍”这个主题，就应该具有浪漫主义色彩。少了幻想，多了反思与进步。但又对生活抱有巨大的热爱。&lt;/p&gt;
&lt;h2&gt;为何设计这个主题&lt;/h2&gt;
&lt;p&gt;看完上述内容，其实很容易明白。&lt;/p&gt;
&lt;p&gt;总结为&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;对书籍的热爱&lt;/li&gt;
&lt;li&gt;对文字的热爱&lt;/li&gt;
&lt;li&gt;对思考的热爱&lt;/li&gt;
&lt;li&gt;对生活的热爱&lt;/li&gt;
&lt;/ol&gt;
</content:encoded><category>post</category></item><item><title>Hexo Theme Yet The Books</title><link>https://nexmoe.com/zh/products/hexo-theme-yet-the-books</link><guid isPermaLink="true">https://nexmoe.com/zh/products/hexo-theme-yet-the-books</guid><pubDate>Sat, 22 May 2021 05:11:53 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20240822_4.6gxkpUjr.png&quot; alt=&quot;Hexo Theme Yet The Books&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/hexo-theme-yet-the-books&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20240822_4.6gxkpUjr.png" length="60074" type="image/png"/></item><item><title>焦虑，生活是否真的如他们所说</title><link>https://nexmoe.com/zh/posts/%E7%84%A6%E8%99%91%EF%BC%8C%E7%94%9F%E6%B4%BB%E6%98%AF%E5%90%A6%E7%9C%9F%E7%9A%84%E5%A6%82%E4%BB%96%E4%BB%AC%E6%89%80%E8%AF%B4</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/%E7%84%A6%E8%99%91%EF%BC%8C%E7%94%9F%E6%B4%BB%E6%98%AF%E5%90%A6%E7%9C%9F%E7%9A%84%E5%A6%82%E4%BB%96%E4%BB%AC%E6%89%80%E8%AF%B4</guid><pubDate>Mon, 17 May 2021 10:21:26 GMT</pubDate><content:encoded>&lt;p&gt;继哔哩哔哩发布《我不想做这样的人》后，又有人出来贩卖焦虑了。当然，每个平台的声音都不一样，哔哩哔哩在这个视频下，你能看到的几乎只有唱好的。但在其他平台，你总能看到完全不一样的声音。&lt;/p&gt;
&lt;p&gt;一方面，有人嘲笑，说这些学生还在读书，太天真，没遭受过社会毒打。仿佛自己已经有了很多经验，但只是嘲笑，没有结合自己的经验给出任何建议。深有同感的人纷纷赞同，也一并嘲笑。有意见不一样的，就会被集火。而其他不敢说话的也没经历过的，看了这些除了焦虑，啥也得不到。还有没有经历过，却自以为自己很懂生活艰难困苦的，也会表示赞同，仿佛支持他们贩卖焦虑一样。&lt;/p&gt;
&lt;p&gt;而我就是什么也不懂就自认为未来黑暗的人，我记得几年前我可不是这样的。即使生活很普通没啥乐趣，但也对未来怀抱希望。至少这一点已经让我的生活足够幸福，当然这仅仅是精神上感到的幸福，你也可以认为这是自欺欺人，不过这切切实实的让人幸福，那个时候，失眠与我无关。但后来整个互联网都在贩卖焦虑，我当然也沦为被焦虑淹没的牺牲品。如今我也成为了贩卖焦虑的帮凶，企图淹没少年少女们的期许与理想主义。不过那会我又觉得我是正义的，我认为只有这样才能叫醒那些沉迷于理想之中的人。但如今冷静下来许久又反复思考，又不知道自己做的对不对了。我深切的感受到生活中是十分需要对未来怀有期许，对生活怀有热情之人的。至少，仍然很多人都喜欢和怀有热情的人相处。我也是。所以对于美好与理想的追求，绝不该放弃。即使最后发现生活确实如此，也不该变得冷漠。&lt;/p&gt;
&lt;p&gt;另一方面，有人在大谈决定论。他们说，生活并不是自己能决定的。自己未来做什么，变成什么样，都不是自己能决定的。他们说的十分坚决没有其它缓和的余地，仿佛我们只能躺平，不必做任何无谓的挣扎。&lt;/p&gt;
&lt;p&gt;我也经常看到躺平的人，也时时刻刻准备躺平，加入他们。但每每躺下了一半，又立刻觉得不安，感觉自己必须做点什么。即使我在心底也认为什么也改变不了，但我也必须得做点什么。虽然每次挣扎总是失败的，但我现在仍然认为，即使有一点点挣扎的机会，我也不该放弃这么一点点改变点什么的希望。也许这不过是不甘心，说不定什么时候我就放弃这不甘了。但我相信，绝不会只有些许人有所不甘的。虽然离理想的生活相差甚远，但我认为我们对于美好的向往绝不会消失。&lt;/p&gt;
&lt;p&gt;现在，我对美好生活想象确实不如之前。关于未来的焦虑将我蚕食，让我变得冷漠。如今我需要唤醒自己，即使生活正如他们所说那样，我也要醒了，然后热爱这生活。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>橡皮擦</title><link>https://nexmoe.com/zh/posts/%E6%A9%A1%E7%9A%AE%E6%93%A6</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/%E6%A9%A1%E7%9A%AE%E6%93%A6</guid><pubDate>Wed, 28 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;我有一块橡皮擦，已经用了很久了。与刚买来时不同，他本是棱角分明，没有沾染上丝毫铅笔的墨色。但在长期使用后，已经实在是分不出八个角来——早已变成了几个曲面。有的两个角甚至已经融合在了一起。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;但唯独有一个角，他与众不同，他仍然还是原来那个样子。事实上，我从未用过他。他就和刚买来的时候那样白净，同样的棱角分明却毫不咯手。这是他天生的美丽，如今这美丽居然一直伴随他活到了现在，实在是不可思议。&lt;/p&gt;
&lt;p&gt;这让我感到了诧异。这种诧异就像是在学校食堂喝皮蛋瘦肉粥时真的喝到了一大块瘦肉，兴奋地要把这消息告诉同学：“这家粥太棒了，居然有肉！“好让他们下次也来这喝粥。&lt;/p&gt;
&lt;p&gt;不知为为什么，我突然想到了一个人。但我实在想不明白为什么一块橡皮擦能让我想到人，这俩分明扯不上什么关系。&lt;/p&gt;
&lt;p&gt;这使我莫名地恐惧了起来，我也不知道我在害怕什么。但我的肉体已经变得迟钝了，仿佛被什么抓住要被拽出去。我赶紧丢下这块橡皮擦，跳到床上去，希望睡一觉就能忘掉那些我想不明白的东西。&lt;/p&gt;
&lt;p&gt;以前我可是一躺就能睡着的，今天不知怎么回事，发生了这么多奇怪的事情，甚至连觉都睡不着了。我在床上思来想去，无端的恐惧也渐渐变成了愤怒。我想，今天非得把这恐惧给毁灭了这日子才能安稳地过下去。我把愤怒指向了那块橡皮擦，今天的一切都是这块橡皮擦引起的。实话说，这块橡皮倒是不咯手，但却让我十分不适。&lt;/p&gt;
&lt;p&gt;我从床上跳到桌边抓起这块橡皮就要让他受到应有的惩戒。而那个特别的棱角仍然在那里，十分显眼。我瞬间明白了，原来这一切都是因为他。我发疯似地把他按在纸上，他硬撑着身子仿佛在做最后的抵抗，但在我的蛮力之下他只得变成碎屑而不复存在。随着他消逝的，还有我的愤怒与恐惧，好像刚刚灭掉的是一生之敌，等着我的生活将一帆风顺、无限美好。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Hexo 基于分类输出文章</title><link>https://nexmoe.com/zh/24M130A</link><guid isPermaLink="true">https://nexmoe.com/zh/24M130A</guid><pubDate>Thu, 15 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;本文将教你如何调用 Hexo 指定分类下的文章&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;本文回答了以下问题&lt;/h2&gt;
&lt;p&gt;https://www.zhihu.com/question/404351568&lt;/p&gt;
&lt;p&gt;https://segmentfault.com/q/1010000017758828&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;官方的辅助函数 &lt;em&gt;list_categories&lt;/em&gt; 根本不够用，只好自己用 categories 这个变量了。&lt;/p&gt;
&lt;p&gt;由于没学过 node.js 所以只有瞎折腾一通。&lt;/p&gt;
&lt;p&gt;我先用 console.log() 看了看 site.categories.data，它的内容是如下。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/QQ%E5%9B%BE%E7%89%8720210415132439.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;折腾一番，这个 object 是用 map() 来调用的。&lt;/p&gt;
&lt;h2&gt;输出目录标题&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;% site.categories.map(function(category){  %&amp;gt;
    &amp;lt;h1&amp;gt;&amp;lt;%= category.name %&amp;gt;&amp;lt;/h1&amp;gt;
&amp;lt;% }) %&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;输出文章标题&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;% site.categories.map(function(category){  %&amp;gt;
    &amp;lt;h1&amp;gt;&amp;lt;%= category.name %&amp;gt;&amp;lt;/h1&amp;gt;
    &amp;lt;% category.posts.map(function(post){  %&amp;gt;
		&amp;lt;h2&amp;gt;&amp;lt;%= post.title %&amp;gt;&amp;lt;/h2&amp;gt;
    &amp;lt;% }) %&amp;gt;
&amp;lt;% }) %&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;变量&lt;/th&gt;
&lt;th&gt;描述&lt;/th&gt;
&lt;th&gt;类型&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.title&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;页面标题&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.date&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;页面建立日期&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;http://momentjs.com/&quot;&gt;Moment.js&lt;/a&gt; 对象&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.updated&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;页面更新日期&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;http://momentjs.com/&quot;&gt;Moment.js&lt;/a&gt; 对象&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.comments&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;留言是否开启&lt;/td&gt;
&lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.layout&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;布局名称&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.content&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;页面的完整内容&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.excerpt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;页面摘要&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.more&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;除了页面摘要的其余内容&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.source&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;页面原始路径&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.full_source&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;页面的完整原始路径&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.path&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;页面网址（不含根路径）。我们通常在主题中使用 &lt;code&gt;url_for(post.path)&lt;/code&gt;。&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.permalink&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;页面的完整网址&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.prev&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;上一个页面。如果此为第一个页面则为 &lt;code&gt;null&lt;/code&gt;。&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt; or &lt;code&gt;null&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.next&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;下一个页面。如果此为最后一个页面则为 &lt;code&gt;null&lt;/code&gt;。&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt; or &lt;code&gt;null&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.raw&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;文章的原始内容&lt;/td&gt;
&lt;td&gt;???&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.photos&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;文章的照片（用于相簿）&lt;/td&gt;
&lt;td&gt;&lt;code&gt;array&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;post.link&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;文章的外部链接（用于链接文章）&lt;/td&gt;
&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded><category>post</category></item><item><title>Nexmoe 博客主题的设计理念</title><link>https://nexmoe.com/zh/21R8FYN</link><guid isPermaLink="true">https://nexmoe.com/zh/21R8FYN</guid><pubDate>Sun, 04 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://github.com/theme-nexmoe/hexo-theme-nexmoe&quot;&gt;Nexmoe 博客主题&lt;/a&gt;是我所编写的一个基于 Hexo 的博客模板。但他不仅仅是一个模板，更多的，他是我的作品。他是一个艺术作品。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;艺术&lt;/strong&gt;（&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E6%8B%89%E4%B8%81%E8%AA%9E&quot;&gt;拉丁语&lt;/a&gt;：Ars；&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E6%B3%95%E8%AA%9E&quot;&gt;法语&lt;/a&gt;、英语：Art；&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E8%A5%BF%E7%8F%AD%E7%89%99%E8%AA%9E&quot;&gt;西班牙语&lt;/a&gt;、葡萄牙语：Arte；德语：Kunst）指凭借技巧、意愿、&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E6%83%B3%E8%B1%A1%E5%8A%9B&quot;&gt;想象力&lt;/a&gt;、经验等综合人为因素的融合与平衡，以创作隐含美学的器物、环境、影像、动作或声音的表达模式，也指和他人分享美的感觉或有深意的&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E6%83%85%E6%84%9F&quot;&gt;情感&lt;/a&gt;与&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E6%84%8F%E8%AD%98&quot;&gt;意识&lt;/a&gt;的人类用以表达既有感知且将个人或群体体验沉淀与展现的过程[&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E8%89%BA%E6%9C%AF#cite_note-Britannica2002-1&quot;&gt;1]&lt;/a&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;由上述维基百科中关于艺术的解释，站在我的角度，其实可以很自然的把我的博客主题归类为艺术作品。当然这并不是说我觉得我是个艺术家，我距离真正的艺术家我还差得远。但是 Nexmoe 绝对是作为普通人的我倾心创作的艺术作品。&lt;/p&gt;
&lt;p&gt;其艺术价值不仅仅是流露于表面的给人的一种感觉：“这个主题看起来还有点好看”，更深层的是蕴含于其中的关于我的情感以及个人的性格特性。&lt;/p&gt;
&lt;p&gt;其实有很多人并不喜欢我的主题，因为他们觉得这个主题颜色太多，以红色为主色调、还附有各种彩色。他们觉得这不够简洁。其实我也是个极简主义者，我也时常在想，要不要去掉过多的颜色，甚至只有黑白。只是因为黑白色调往往能创作出足够简洁、干净、足够成熟的主题风格。很多的晚上我躺在床上睡不着，就是在想这个事情。但到了最后还是觉得算了。&lt;/p&gt;
&lt;h2&gt;红色的故事&lt;/h2&gt;
&lt;p&gt;主题的颜色以红色为主色调，其 red, green, blue 分别对应 255/255,78/255,106/255。是一种极富有张力的红色，而当初选择这个颜色，仅仅是为了表达我的&lt;strong&gt;热情以及热爱&lt;/strong&gt;。曾几何时，我表面上也是很冷淡的人。但我的内心总是充满了热情。在高中的某个时段，我的生活十分糟糕，最后我选择了改变。我选择了&lt;strong&gt;直面自己的内心去活着&lt;/strong&gt;——坦然的接受内心的激情，不尽心尽力的为外界去妥协。也是那时我的博客主题主色调从&lt;strong&gt;粉红色&lt;/strong&gt;转变成了&lt;strong&gt;红色&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;多彩与无限的可能&lt;/h2&gt;
&lt;p&gt;除了红色之外，主题很多地方也用了其他的颜色。实际上，我用了彩虹的七种颜色——红橙黄绿青蓝紫。其主要蕴意便是表达了&lt;strong&gt;多方面的热爱以及无限的可能&lt;/strong&gt;。其实，我不是一个一直只专精一个事情的人。我无法成为这样的人。生活中有太多美好的事情，为什么我要每天只为了一件事去努力呢。无论宫崎骏电影里的纯音乐，还是电子合成音乐，或是古典乐，我都热爱。还有蒸汽波、动漫的主题曲、电影的主题曲，或者是民谣、也可以是汪峰的音乐。&lt;/p&gt;
&lt;p&gt;我有许多热爱的事情，动漫、电影、美剧、日剧、韩剧、国产剧，以及中国的小说、日本的小说、美国的小说，世界各地的小说。或是浪漫主义，或是现实主义。只要他们写得好我都看。&lt;/p&gt;
&lt;p&gt;我会因为失眠，去研究失眠相关的问题，看书、找资料、维基百科、知网到处翻。&lt;/p&gt;
&lt;p&gt;我也会因为我的身体不够健康，去找资料，规避各种健康问题。寻找各种能使自己健康的方法。&lt;/p&gt;
&lt;p&gt;我写代码，也看书、看文学作品，也下厨房，时而打羽毛球，时而骑自行车。我热爱科学、热爱文学、也热爱艺术、更热爱生命。&lt;/p&gt;
&lt;p&gt;有时我会想放弃，放弃很多事情。我会想我适不适合，我可能什么也不适合，编程有更厉害的人，文学作品更是数不胜数，而关于艺术我则丝毫没有创作的能力。有时我甚至觉得想放弃生命。但最后，我什么也没有放弃。&lt;strong&gt;因为我热爱这一切。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最近我对于主题的风格修改有着去线的理念。无线有“无界”之意，同样也代表着无限的可能。&lt;/p&gt;
&lt;h2&gt;潜藏于设计中的理想主义&lt;/h2&gt;
&lt;p&gt;主题的背景是模糊掉的图片，模糊对我来说往往带有理想或幻想之意。很多的事情往往不够的美好，但是只要模糊掉，我们总能认为他是好的。就比如美艳中的磨皮。&lt;/p&gt;
&lt;p&gt;模糊的效果也能给人一种梦幻感，于梦境中很多事情都可以是美好的。我们往往在梦中流着泪醒来，不是因为做了噩梦、受到惊吓给吓哭了。很多时候起来的眼泪是因为现实于梦境中的美好形成了鲜明的对比。而我运用模糊只是为了给人一种美好感。&lt;/p&gt;
&lt;h2&gt;无拘束、坚定自我&lt;/h2&gt;
&lt;p&gt;在主题项目的立项之初，我就决定开源。因为开源是自由的。没有甲方，没有我需要去遵守的规章制度。我只需要遵从着自己的内心去设计就好了。我也经常想做一个色彩系统，用来让使用者更好的表达自己的内心与情感。但我迟迟没做，可能只是因为我懒吧。但其实只要自己愿意，完全可以修改本主题的风格去贴合自己的性格。&lt;/p&gt;
&lt;p&gt;以下是我十分敬佩的作品&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/cover1.jpg&quot; alt=&quot;cover1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/cover2.png&quot; alt=&quot;cover2&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;终&lt;/h2&gt;
&lt;p&gt;或许有哪一天，Nexmoe 主题的风格又会有所改动。或许只是我变了吧。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>关于音乐情绪分析的构想</title><link>https://nexmoe.com/zh/1YPM5C0</link><guid isPermaLink="true">https://nexmoe.com/zh/1YPM5C0</guid><pubDate>Mon, 08 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;没了烟酒麻将棋牌，现代年轻人的消遣方式变得越来越少。听音乐作为一种重要的消遣方式已经被越来越多依赖。
&amp;lt;!--more--&amp;gt;
我们听音乐首先听的是音乐的情绪，不仅仅是音乐，绝大多数艺术作品也是富含情感在内的。
听音乐的我们有时候需要找到对应情绪的音乐配合一些场景和自己的心情。
但是音乐目前除了主要的原名称检索方式似乎再无其他方式。
作为一个歌单日益庞大的普通用户，我觉得一个音乐应该需要更多的检索信息来配合音乐检索。比如音乐情绪。&lt;/p&gt;
&lt;h2&gt;用户痛点分析&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;一个喜欢听歌的人，经过多年的听歌岁月，必然会导致歌单曲目庞大臃肿，比如说我自己就收藏了 2k 首音乐。&lt;/li&gt;
&lt;li&gt;而且音乐很多音乐的名称并不是中文，可能是各种各样的语言，甚至是符号。在我们需要找到某首曾听过的音乐时，我们可能只能用眼睛遍历所有歌单（我就经常干这种事情）而且最后还找不到想找的音乐。&lt;/li&gt;
&lt;li&gt;视频创作者如果需要在视频中引用自己常听的音乐，仅仅通过模糊的印象寻找也是非常困难的事情，可能有时候怎么找就是找不到配合那个气氛的音乐。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;可能用户群体&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;重度音乐爱好者。醒来，听音乐，下班，听音乐，运动，听音乐，睡觉，听音乐。对音乐进行情绪分析能有效的给用户提供音乐适用场景的信息。&lt;/li&gt;
&lt;li&gt;视频创作者。需要配合场面气氛配乐。&lt;/li&gt;
&lt;li&gt;混音师。混音师当然也需要用音乐配合气氛。&lt;/li&gt;
&lt;li&gt;普通人。所有人都想要好的气氛情绪。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;已有的类似案例&lt;/h2&gt;
&lt;h4&gt;网易云音乐中的歌单助手&lt;/h4&gt;
&lt;p&gt;不知道他是什么方法分的，分的不细，情绪精确度不大，用处不大。&lt;/p&gt;
&lt;h4&gt;QQ 音乐智能歌单&lt;/h4&gt;
&lt;p&gt;这个还行，有乐器分析，大致的情感分析，不过感觉好像也不是很精确。&lt;/p&gt;
&lt;h2&gt;可能的实现方式&lt;/h2&gt;
&lt;h4&gt;基于音乐本身分析&lt;/h4&gt;
&lt;p&gt;现在确实 AI 之类的东西很强，对音乐进行分析也不是不行。不过大概率是不准确的，现在，我并不认为 AI 能够很好的感受到艺术作品中的情绪与感情。&lt;/p&gt;
&lt;h4&gt;基于音乐的评论&lt;/h4&gt;
&lt;p&gt;我觉得这个方法是大部分人都没想到的。就目前来说，AI 对于语言的情感分析能力要比分析音乐本身的情感是要强的。而且对于文字的情感分析貌似已经有不少现成的服务了。以前我就曾看到过 DIYgod 用过文字的情绪分析服务。&lt;/p&gt;
&lt;h2&gt;关于音乐其他信息的获取&lt;/h2&gt;
&lt;p&gt;音乐的乐器和种类应该是比较好分析的。不行还可以爬爬 MOO 音乐。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Farewell 2020!</title><link>https://nexmoe.com/zh/1W4AR7</link><guid isPermaLink="true">https://nexmoe.com/zh/1W4AR7</guid><pubDate>Sat, 06 Feb 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;农历的新年都快到了，我才开始写 2020 的年终。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;网易云音乐 ID：419485785&lt;/p&gt;
&lt;p&gt;确实有种种原因导致我耽搁了这么久。不过最主要原因是，2020 年的总结好像都已经被别人写烂了——大多是关于疫情与种种不幸。&lt;/p&gt;
&lt;p&gt;我的对于 2020 年，第一反应自然也是疫情还有围绕我的种种不幸。这其中自然有全人类的不幸，也有我自己的不幸。仔细列举的话，不是一点时间可以说完的。因此，这次年终我决定写写自己这一年里所发生的一些比较积极的事情。&lt;/p&gt;
&lt;h3&gt;🎉 成年&lt;/h3&gt;
&lt;p&gt;今年的 1 月份，我终于成年了，我从前期盼了许久的事情便是成年。成年后多了许多以前不能做的事情。虽然也多了更多的苦难。&lt;/p&gt;
&lt;h3&gt;📷 摄影&lt;/h3&gt;
&lt;p&gt;2 月份，在家里呆了许久。心中充满了苦闷与难过。一直都很想拥有一台相机，此时正是个好机会，于是拿出多年的存款买了台二手相机。&lt;/p&gt;
&lt;p&gt;https://nexmoe.tuchong.com/&lt;/p&gt;
&lt;p&gt;{% gallery %}
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192753.jpg&quot; alt=&quot;星空&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192754.jpg&quot; alt=&quot;黄石&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192755.jpg&quot; alt=&quot;1&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192756.jpg&quot; alt=&quot;1&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192757.jpg&quot; alt=&quot;1&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192530.jpg&quot; alt=&quot;黄鹤楼&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192531.jpg&quot; alt=&quot;沉思&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192532.jpg&quot; alt=&quot;1&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192533.jpg&quot; alt=&quot;1&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192534.jpg&quot; alt=&quot;即使是牢笼，外面的天空依旧蔚蓝&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192535.jpg&quot; alt=&quot;夕阳的云朵&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192415.jpg&quot; alt=&quot;寂静的夜&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207192416.jpg&quot; alt=&quot;1&quot; /&gt;
{% endgallery %}&lt;/p&gt;
&lt;h3&gt;🐱 领养一只猫&lt;/h3&gt;
&lt;p&gt;4 月底，朋友问我要不要领养一只猫，他朋友因为种种原因不养了，于是我领养了这只猫。
此时，我已经因为疫情在家呆了有四个月。这只猫的到来，也给我的生活带来了些许快乐。&lt;/p&gt;
&lt;p&gt;{% gallery %}
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207200054.jpg&quot; alt=&quot;1&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207200055.jpg&quot; alt=&quot;1&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207200056.jpg&quot; alt=&quot;1&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207200057.jpg&quot; alt=&quot;1&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210207200058.jpg&quot; alt=&quot;1&quot; /&gt;
{% endgallery %}&lt;/p&gt;
&lt;h3&gt;🏸 羽毛球&lt;/h3&gt;
&lt;p&gt;5 月份开学，才终于有机会从家里走出来，外面的一切变化让我感觉彷佛隔世。
关了许久的我们渴望社交、渴望运动，好像我们都是刚刚出狱一样。
也是那时开始，我开始真正的打起羽毛球。那会，我甚至发球都不会，更不要说跟别人打个来回。
现在好歹可以发球了。&lt;/p&gt;
&lt;h3&gt;🚅 个人游&lt;/h3&gt;
&lt;p&gt;8 月份，武汉景点全免费，刚好 19 年也预谋着 20 年暑假去武汉听场音乐会。
于是我就一个人开始了两天的游玩。
不过因为疫情影响，许多音乐会都取消了，所以只去凑合看了一个音乐会，效果不怎么样，也没觉得很快乐。
然后去了黄鹤楼和东湖，东湖确实美丽。&lt;/p&gt;
&lt;h3&gt;📕 看书&lt;/h3&gt;
&lt;p&gt;自 19 年开始读了人生的第一本书后，20 年就开始越读越多了
20 年读了如下的书&lt;/p&gt;
&lt;p&gt;{% gallery width:130 %}
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208204113.jpg&quot; alt=&quot;麦田里的守望者&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208204321.jpg&quot; alt=&quot;小王子&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208204348.jpg&quot; alt=&quot;遇见未知的自己&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208204412.jpg&quot; alt=&quot;阿 Q 正传&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208203825.jpg&quot; alt=&quot;城南旧事&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208203319.jpg&quot; alt=&quot;月亮与六便士&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208204112.jpg&quot; alt=&quot;彷徨（没读完）&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208203318.jpg&quot; alt=&quot;围城&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208162454.jpg&quot; alt=&quot;安徒生童话（没读完）&quot; /&gt;
{% endgallery %}&lt;/p&gt;
&lt;p&gt;{% gallery width:130 %}
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208204732.jpg&quot; alt=&quot;斯蒂夫 · 乔布斯传（没读完）&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208204736.jpg&quot; alt=&quot;少有人走的路 : 心智成熟的旅程&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208204733.jpg&quot; alt=&quot;你的第一本哲学书&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208204734.jpg&quot; alt=&quot;人间值得&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/20210208204735.jpg&quot; alt=&quot;如何阅读一本书（没读完）&quot; /&gt;
{% endgallery %}&lt;/p&gt;
&lt;h3&gt;🎵 音乐&lt;/h3&gt;
&lt;p&gt;今年开始沉迷古典乐无法自拔，肖邦真香。
http://music.163.com/playlist?id=5202011193&lt;/p&gt;
&lt;p&gt;在 2020 年最后那天夜里，我仍然没意识到 2020 就要结束了，直到后来电视上跨年晚会的倒计时正式开始，我才自言自语的告诉自己：“啊，原来 2020 真的结束了，我都还没觉得 2020 年完了呢”&lt;/p&gt;
&lt;p&gt;此后，充满未知的 2021 开始了。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>冒险解谜游戏《Inside》</title><link>https://nexmoe.com/zh/2875R7S</link><guid isPermaLink="true">https://nexmoe.com/zh/2875R7S</guid><pubDate>Fri, 25 Dec 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;貌似一个被当作实验品小男孩逃出荒岛的故事？&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;本文写于 2017 年 06 月 29 日，于 2020 年 12 月 25 日翻新，今天于 Epic 平台上限时一天免费领取《Inside》&lt;/p&gt;
&lt;h4&gt;维基百科介绍&lt;/h4&gt;
&lt;p&gt;《Inside》是款解谜游戏，玩家需控制一名没有名字并身穿红色衣服的小男孩探索一个超现实的环境，而游戏画面主要是黑白色、2.5D 及利用一些溅出的颜色来突出部分环境。玩家能控制小男孩作出走路、跑、游泳、攀爬及使用物件等动作来进行游戏，在游戏中期小男孩更会获得能力，能精神控制死尸并操纵他们以解决各种谜题。当玩家未能快速地解决部分谜题时，例如是被猎人以麻醉镖击中、被犬只捕捉或吃掉、或因处于水下太长时间而溺水，玩家所操控的小男孩便会死亡。本作与《地狱边境》同样，小男孩在死亡时会出现令人感到可怕的动画，之后游戏便会在最近的储存点重新进行。在本作中，有部分场景具有隐藏房间且内含一个小型球体，玩家可以进入这些房间并关掉球体，而当所有球体在玩家的游玩过程中被关掉时，便能解锁游戏中的备用结局。&lt;/p&gt;
&lt;h4&gt;我为啥买 Inside&lt;/h4&gt;
&lt;p&gt;由于某理财软件夏季促销，然后听说 Inside 这游戏不错，于是我就氪了一个。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Inside-On-Steam/2558894065.jpg&quot; alt=&quot;snipaste20170629_200846.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Inside-On-Steam/2086727857.jpg&quot; alt=&quot;QQ 图片 20170629193634.jpg&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;正常的结局&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Inside-On-Steam/2786353902.jpg&quot; alt=&quot;QQ 图片 20170629200418.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Inside-On-Steam/3499546740.jpg&quot; alt=&quot;QQ 图片 20170629200446.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这坨肉球貌似是许多许多像小男孩这样的实验品形成的？
这个游戏值得引人沉思的是&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;好像这是一个解密逃出荒岛的游戏，结果你只是被别人设计好的一个实验品，最后还是死。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;隐藏的结局&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Inside-On-Steam/1231865740.jpg&quot; alt=&quot;QQ 图片 20170629193706.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Inside-On-Steam/2546249919.jpg&quot; alt=&quot;QQ 图片 20170629193651.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Inside-On-Steam/3702936062.jpg&quot; alt=&quot;QQ 图片 20170629193657.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这个结局也差不多，小男孩没能逃出荒岛，当他拔掉整个电源的时候，才知道，原来小男孩也只是一个实验人而已，没了电，就等于缺少了能源。&lt;/p&gt;
&lt;h4&gt;我的领悟&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Inside-On-Steam/381662671.jpg&quot; alt=&quot;QQ 图片 20170629200353.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;从一开始的什么都不知道，什么都不懂，到后面一步一步的了解真相，才能发现其实一开始无谓的挣扎也是没有什么用的。&lt;/p&gt;
&lt;h4&gt;一些细思极恐的事情&lt;/h4&gt;
&lt;p&gt;让人感到恐怖的是，当小男孩控制一个 实验人① 的时候，实验人① 也能同时控制 实验人②，那么，你现在控制电脑，那么又是谁在控制你。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>愿你出走半生，归来仍是麦田里的孩子</title><link>https://nexmoe.com/zh/posts/%E6%84%BF%E4%BD%A0%E5%87%BA%E8%B5%B0%E5%8D%8A%E7%94%9F%EF%BC%8C%E5%BD%92%E6%9D%A5%E4%BB%8D%E6%98%AF%E9%BA%A6%E7%94%B0%E9%87%8C%E7%9A%84%E5%AD%A9%E5%AD%90</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/%E6%84%BF%E4%BD%A0%E5%87%BA%E8%B5%B0%E5%8D%8A%E7%94%9F%EF%BC%8C%E5%BD%92%E6%9D%A5%E4%BB%8D%E6%98%AF%E9%BA%A6%E7%94%B0%E9%87%8C%E7%9A%84%E5%AD%A9%E5%AD%90</guid><pubDate>Sun, 29 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;——《麦田里的守望者》书评&lt;/p&gt;
&lt;p&gt;一开始看这本书，我摸不着脑袋，因为我会看了很久很久却不知道他的主题是什么。他也没有目录啥的，就简单的分成了二十六章，每一章标题就是序数词。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;先简单介绍一下本书内容，本文的主人公霍尔顿出身于一个富裕的家庭。大人们强迫他好好读书，为的是出人头地，而在学校里一天到晚干的，就是谈女人，酒和性，他看不惯周围的一切，他讨厌任何人。如果你跟他说诸如“祝你好运”，“你好”之类的客套话，他会觉得你虚伪。根本没心思读书，还老是挨罚，他胆小怯懦，到他第四次被开除时，他不敢回家。便一个人去了纽约，住小客店，逛夜总会，召妓女，与他虚荣的女友搂搂抱抱，与此同时，他又十分沮丧，企图逃出虚伪的世界去追寻纯洁与真理。他想逃离这虚伪的地方，去到别的地方，最后被妹妹所挽留。&lt;/p&gt;
&lt;p&gt;最开始能读下去这本书，不过是能从中找到同感。也同样讨厌着周围虚伪的一切，讨厌客套的话，讨厌着被别人认为理所当然正确的事情。每个人在从小孩子到成年的过程中都似乎曾经经历过这一阶段，他们被未知的世界吸引，突然闯到成年人的世界，却又渐渐的开始厌倦这无法被自己理解的世界。&lt;/p&gt;
&lt;p&gt;对于刚刚成年，内心却不过还是个孩子的人来说，成年人的世界让他们一时无法接受。文章主人公曾经的老师说：”一个不成熟的人的标志是他愿意为了某个理由而轰轰烈烈地死去，而一个成熟的人的标志是他愿意为了某个理由而谦恭地活下去。“这是作者通过老师这一角色来解释从幼稚到成熟的这一蜕变过程。而对于绝大多未经世事的人来说，这显然是很难接受的。&lt;/p&gt;
&lt;p&gt;“我的职务是在那儿守望，要是有哪个孩子往悬崖边奔来，我就把他捉住——我是说孩子们都在狂奔，也不知道自己是在往哪儿跑，我得从什么地方出来，把他们捉住。我整天就干这样的事。我只想当个麦田里的守望者。我知道这有点异想天开，可我真正喜欢干的就是这个”小说写到这里，才真正的表示出了它的主旨，主人公想在麦田里守望着，防止纯洁的内心受到污染。对于任何一个刚刚成年的人来说，都是难以接受突然的蜕变的。《熔炉》也曾经表达过“我们努力奋斗不是为了改变世界，而是不让世界改变我们。”人活着除了物质生活外，还要有精神生活，而且在一个比较富裕的社会里，精神生活往往比物质生活更为重要。&lt;/p&gt;
&lt;p&gt;特别对于现在这个经济高速发展的社会中，我们更需要追求精神的真善美，而不是不断追求物质。在社会发展的过程中，我们得固守自己人性中的善良，不被社会所改变。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>曾经用易语言写过的一些东西</title><link>https://nexmoe.com/zh/20CXF4E</link><guid isPermaLink="true">https://nexmoe.com/zh/20CXF4E</guid><pubDate>Fri, 13 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;那是 2015 年的 12 月份，那会我初一，易语言那个时候正热门，我因为 300 英雄这个游戏接触到了易语言，那个时候我对设计和界面的独特见解就有所显露&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;易语言的界面全靠 Photoshop 画组件，所以那会开始学的 Photoshop&lt;/p&gt;
&lt;p&gt;那会还没接触互联网，只是单纯的喜欢玩，15 年那会还学了学剪视频，剪了些没人看的视频，还整过一个论坛&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20201113-%E6%9B%BE%E7%BB%8F%E7%94%A8%E6%98%93%E8%AF%AD%E8%A8%80%E5%86%99%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF/e.gif&quot; alt=&quot;e&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20201113-%E6%9B%BE%E7%BB%8F%E7%94%A8%E6%98%93%E8%AF%AD%E8%A8%80%E5%86%99%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF/q.png&quot; alt=&quot;q&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20201113-%E6%9B%BE%E7%BB%8F%E7%94%A8%E6%98%93%E8%AF%AD%E8%A8%80%E5%86%99%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF/a.png&quot; alt=&quot;a&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20201113-%E6%9B%BE%E7%BB%8F%E7%94%A8%E6%98%93%E8%AF%AD%E8%A8%80%E5%86%99%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF/z.gif&quot; alt=&quot;z&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20201113-%E6%9B%BE%E7%BB%8F%E7%94%A8%E6%98%93%E8%AF%AD%E8%A8%80%E5%86%99%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF/c.png&quot; alt=&quot;c&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20201113-%E6%9B%BE%E7%BB%8F%E7%94%A8%E6%98%93%E8%AF%AD%E8%A8%80%E5%86%99%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF/g.png&quot; alt=&quot;g&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20201113-%E6%9B%BE%E7%BB%8F%E7%94%A8%E6%98%93%E8%AF%AD%E8%A8%80%E5%86%99%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF/iu.gif&quot; alt=&quot;iu&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20201113-%E6%9B%BE%E7%BB%8F%E7%94%A8%E6%98%93%E8%AF%AD%E8%A8%80%E5%86%99%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF/m.png&quot; alt=&quot;m&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20201113-%E6%9B%BE%E7%BB%8F%E7%94%A8%E6%98%93%E8%AF%AD%E8%A8%80%E5%86%99%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF/x.png&quot; alt=&quot;x&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20201113-%E6%9B%BE%E7%BB%8F%E7%94%A8%E6%98%93%E8%AF%AD%E8%A8%80%E5%86%99%E8%BF%87%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%9C%E8%A5%BF/jx.png&quot; alt=&quot;jx&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;源码和素材啥的应该还在我以前那块西数蓝盘里，因为坏道太多，所以没用了，放在桌上有几年了。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Oneindex主题</title><link>https://nexmoe.com/zh/21G2XMV</link><guid isPermaLink="true">https://nexmoe.com/zh/21G2XMV</guid><pubDate>Thu, 12 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;以前用 oneindex 的时候，默认的界面……所以随便糊了一个&lt;/p&gt;
&lt;p&gt;&amp;lt;a target=&quot;_blank&quot; href=&quot;https://beian.miit.gov.cn/&quot; &amp;gt;鄂 ICP 备 2020018486 号&amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20181031-Oneindex%E4%B8%BB%E9%A2%98/Snipaste_2018-06-09_13-55-34.png&quot; alt=&quot;Snipaste_2018-06-09_13-55-34&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20181031-Oneindex%E4%B8%BB%E9%A2%98/psb-1604903535616.jpg&quot; alt=&quot;psb (1)&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20181031-Oneindex%E4%B8%BB%E9%A2%98/psb.jpg&quot; alt=&quot;psb&quot; /&gt;&lt;/p&gt;
&lt;p&gt;对，只有图，oneindex 项目已经 404 了，应该还可以在网上找到我这个模板的截图&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>一个网页设计比赛的模板</title><link>https://nexmoe.com/zh/PY9CZB</link><guid isPermaLink="true">https://nexmoe.com/zh/PY9CZB</guid><pubDate>Thu, 12 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;曾经参加页面设计比赛随手写的模板&lt;/p&gt;
&lt;p&gt;貌似编写于 19 年 3 月份，可能更早&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;Github&lt;/h2&gt;
&lt;p&gt;https://github.com/nexmoe/template-nature&lt;/p&gt;
&lt;p&gt;欢迎 Star&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.shields.io/github/stars/nexmoe/template-nature.svg&quot; alt=&quot;stars&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/forks/nexmoe/template-nature.svg&quot; alt=&quot;forks&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/license/nexmoe/template-nature.svg&quot; alt=&quot;license&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;项目地址&lt;/h2&gt;
&lt;p&gt;https://github.com/nexmoe/template-nature&lt;/p&gt;
&lt;h2&gt;截图&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20190301%E4%B8%80%E4%B8%AA%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1%E6%AF%94%E8%B5%9B%E7%9A%84%E6%A8%A1%E6%9D%BF/image-20201105151817103.png&quot; alt=&quot;image-20201105151817103&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20190301%E4%B8%80%E4%B8%AA%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1%E6%AF%94%E8%B5%9B%E7%9A%84%E6%A8%A1%E6%9D%BF/image-20201105151834620.png&quot; alt=&quot;image-20201105151834620&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20190301%E4%B8%80%E4%B8%AA%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1%E6%AF%94%E8%B5%9B%E7%9A%84%E6%A8%A1%E6%9D%BF/image-20201105151849608.png&quot; alt=&quot;image-20201105151849608&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>以前为新雨天气写的模板</title><link>https://nexmoe.com/zh/240BV7F</link><guid isPermaLink="true">https://nexmoe.com/zh/240BV7F</guid><pubDate>Thu, 12 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;以前为新雨天气写的个模板&lt;/p&gt;
&lt;p&gt;写于 2017 年 1 月&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;Github&lt;/h2&gt;
&lt;p&gt;https://github.com/nexmoe/template-xinYuWeather&lt;/p&gt;
&lt;p&gt;欢迎 Star&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.shields.io/github/stars/nexmoe/template-xinYuWeather.svg&quot; alt=&quot;stars&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/forks/nexmoe/template-xinYuWeather.svg&quot; alt=&quot;forks&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/license/nexmoe/template-xinYuWeather.svg&quot; alt=&quot;license&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;截图&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20170101%E4%BB%A5%E5%89%8D%E4%B8%BA%E6%96%B0%E9%9B%A8%E5%A4%A9%E6%B0%94%E5%86%99%E7%9A%84%E6%A8%A1%E6%9D%BF/Snipaste_2020-10-11_11-34-03.png&quot; alt=&quot;Snipaste_2020-10-11_11-34-03&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20170101%E4%BB%A5%E5%89%8D%E4%B8%BA%E6%96%B0%E9%9B%A8%E5%A4%A9%E6%B0%94%E5%86%99%E7%9A%84%E6%A8%A1%E6%9D%BF/Snipaste_2020-10-11_11-34-08.png&quot; alt=&quot;Snipaste_2020-10-11_11-34-08&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>觅漫者壁纸站第一版模板</title><link>https://nexmoe.com/zh/2GP7AQD</link><guid isPermaLink="true">https://nexmoe.com/zh/2GP7AQD</guid><pubDate>Thu, 12 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;用 PHP 写的模板，需要 PHP 环境运行&lt;/p&gt;
&lt;p&gt;写于 2017 年 11 月&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;Github&lt;/h2&gt;
&lt;p&gt;https://github.com/mixcm/template-mixcmWallpaper-v1&lt;/p&gt;
&lt;p&gt;欢迎 Star&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.shields.io/github/stars/nexmoe/template-mixcmWallpaper-v1.svg&quot; alt=&quot;stars&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/forks/nexmoe/template-mixcmWallpaper-v1.svg&quot; alt=&quot;forks&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/license/nexmoe/template-mixcmWallpaper-v1.svg&quot; alt=&quot;license&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;截图&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20171101%E8%A7%85%E6%BC%AB%E8%80%85%E5%A3%81%E7%BA%B8%E7%AB%99%E7%AC%AC%E4%B8%80%E7%89%88%E6%A8%A1%E6%9D%BF/800.jpg&quot; alt=&quot;800&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20171101%E8%A7%85%E6%BC%AB%E8%80%85%E5%A3%81%E7%BA%B8%E7%AB%99%E7%AC%AC%E4%B8%80%E7%89%88%E6%A8%A1%E6%9D%BF/799.jpg&quot; alt=&quot;799&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>轻惋壁纸第二版模板</title><link>https://nexmoe.com/zh/1N1TFB0</link><guid isPermaLink="true">https://nexmoe.com/zh/1N1TFB0</guid><pubDate>Thu, 12 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;轻惋壁纸第二版模板&lt;/p&gt;
&lt;p&gt;写于 2016 年 11 月份&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;Github&lt;/h2&gt;
&lt;p&gt;https://github.com/chainwon/template-chainwonBizhi&lt;/p&gt;
&lt;p&gt;欢迎 Star&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.shields.io/github/stars/nexmoe/template-chainwonBizhi.svg&quot; alt=&quot;stars&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/forks/nexmoe/template-chainwonBizhi.svg&quot; alt=&quot;forks&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/license/nexmoe/template-chainwonBizhi.svg&quot; alt=&quot;license&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;截图&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20161101%E8%BD%BB%E6%83%8B%E5%A3%81%E7%BA%B8%E7%AC%AC%E4%BA%8C%E7%89%88%E6%A8%A1%E6%9D%BF/800.png&quot; alt=&quot;800&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/20161101%E8%BD%BB%E6%83%8B%E5%A3%81%E7%BA%B8%E7%AC%AC%E4%BA%8C%E7%89%88%E6%A8%A1%E6%9D%BF/801-1604560984789.png&quot; alt=&quot;801&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>一个关于小说阅读功能的创意</title><link>https://nexmoe.com/zh/3XX9MPH</link><guid isPermaLink="true">https://nexmoe.com/zh/3XX9MPH</guid><pubDate>Fri, 06 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;平常阅读小说，或者人物自传，比如《史蒂夫 · 乔布斯传》很容易读到后面搞不清人物是谁。特别是国外翻译来的人名，极难记忆。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;所以我想了个功能“染发”&lt;/p&gt;
&lt;h2&gt;功能说明&lt;/h2&gt;
&lt;p&gt;对不同人名使用不同颜色进行染色。以辅助记忆人物角色，人物颜色需要从一开始就固定，且每个人物的颜色都得不同。&lt;/p&gt;
&lt;p&gt;比如：&amp;lt;span style=&quot;color: red;&quot;&amp;gt;史蒂夫 · 乔布斯&amp;lt;/span&amp;gt;、&amp;lt;span style=&quot;color: blue;&quot;&amp;gt;斯蒂芬 · 沃兹尼亚克&amp;lt;/span&amp;gt;&lt;/p&gt;
&lt;p&gt;也可以用不同的底色来达到染色的目的。&lt;/p&gt;
&lt;h2&gt;灵感来源&lt;/h2&gt;
&lt;p&gt;日本动漫，作为一个脸盲的人。角色几乎是分不清的，不是看衣服，就是看颜色。有些番剧就用给每个角色赋予不同的发色，以此来达到区分人物角色的目的。这种区分非常有用。&lt;/p&gt;
&lt;h2&gt;为何想到此功能&lt;/h2&gt;
&lt;p&gt;读《史蒂夫 · 乔布斯传》读到后面发现我一直都在往前翻人物介绍目录，除了一直都有戏份的人物，其他人物几乎就记不住，直译过来的人名太难记了。&lt;/p&gt;
&lt;p&gt;所以就在晚上睡觉之前想了想怎么解决这个问题。&lt;/p&gt;
&lt;p&gt;于是乎，这个功能就出来了。&lt;/p&gt;
&lt;p&gt;不过我没写编码部分。&lt;/p&gt;
&lt;h2&gt;可能实现方案&lt;/h2&gt;
&lt;p&gt;现有的算法貌似还挺多的，应该有那种在文章中分析出人名的算法。&lt;/p&gt;
&lt;p&gt;把每个人名提取出来，分别从一开始就定义好每个人物的颜色，然后在文章中都是用这一种颜色固定不变。&lt;/p&gt;
&lt;h2&gt;可能问题&lt;/h2&gt;
&lt;p&gt;一个人物可能在文章中可能以全称或部分名称出现，甚至可能是小名，这可能就需要用户来区分了，也可以大胆期待一下未来的 AI。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>PHP 金字塔算法</title><link>https://nexmoe.com/zh/402536618</link><guid isPermaLink="true">https://nexmoe.com/zh/402536618</guid><pubDate>Fri, 30 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;L1-002 打印沙漏&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;L1-002 打印沙漏 (20 分)&lt;/h2&gt;
&lt;p&gt;本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定 17 个“*”，要求按下列格式打印&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;*****
 ***
  *
 ***
*****
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;所谓“沙漏形状”，是指每行输出奇数个符号；各行符号中心对齐；相邻两行符号数差 2；符号数先从大到小顺序递减到 1，再从小到大顺序递增；首尾符号数相等。&lt;/p&gt;
&lt;p&gt;给定任意 N 个符号，不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。&lt;/p&gt;
&lt;h2&gt;输入格式：&lt;/h2&gt;
&lt;p&gt;输入在一行给出 1 个正整数 N（≤1000）和一个符号，中间以空格分隔。&lt;/p&gt;
&lt;h2&gt;输出格式：&lt;/h2&gt;
&lt;p&gt;首先打印出由给定符号组成的最大的沙漏形状，最后在一行中输出剩下没用掉的符号数。&lt;/p&gt;
&lt;h2&gt;输入样例：&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;19 *
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;输出样例：&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;*****
 ***
  *
 ***
*****
2
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;我的垃圾算法&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://image.gslb.dawnlab.me/e19fb8eab400e17476c57f0846b5660a.png&quot; alt=&quot;L1-002 打印沙漏 (20 分)&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
    $arr = explode(&apos; &apos;,rtrim(fgets(STDIN)));
    $n = 0;
    for($x=0; $n&amp;lt;$arr[0]; $x++){
        $t = $x*2-1;
        if($x &amp;gt; 1){
            $n = $n + $t*2;
        }else{
            $n = $n + $t;
        }
    }
    $n = $n - $t*2 + 1;

    $x2 = $x - 1;
    while($x2&amp;gt;0){
        $x2 = $x2-1;
        $x3=$x2*2-1;
        if($x3&amp;gt;0){
            for($spa=$x-$x2-2; $spa&amp;gt;0 ; $spa--){
                echo &quot; &quot;;
            }
        }

        while($x3&amp;gt;0){
            $x3--;
            echo $arr[1];
        }
        if($x2 &amp;gt; 0){
            echo &quot;\n&quot;;
        }

    }
    $x2 = 1;
    while($x2&amp;lt;$x-2){
        $x2 = $x2+1;

        for($spa=$x-$x2-2; $spa&amp;gt;0 ; $spa--){
            echo &quot; &quot;;
        }

        for($x3=0; $x3&amp;lt;$x2*2-1; $x3++){
            echo $arr[1];
        }

        echo &quot;\n&quot;;
    }

    echo $arr[0] - $n;
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded><category>post</category></item><item><title>简单美化了下沙拉查词</title><link>https://nexmoe.com/zh/3990884387</link><guid isPermaLink="true">https://nexmoe.com/zh/3990884387</guid><pubDate>Thu, 08 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;沙拉单词样式、沙拉单词主题、沙拉单词皮肤&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;Github: https://github.com/nexmoe/saladict-skin&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/nexmoe/image@latest/747f7f1a63c083fe3c47bf9722ef330d.png&quot; alt=&quot;预览图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;沙拉查词-&amp;gt;查词面板-&amp;gt;自定义查词面板样式&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.menuBar {
    background-color: #fff;
    border-bottom: 1px solid #eee;
    padding: 8px;
}
.menuBar-Btn_Icon,.menuBar-Btn_Icon-fav {
    fill: #222;
}
.mtaBox-TextArea-Wrap,
.mtaBox-DrawerBtn,
.waveformBox.saladict-external,
.dictItemHead-Logo,
.menuBar-SearchBox_Wrap,
.menuBar-Btn[title=&quot;查单词&quot;] {
    display: none;
}
.dictItem {
    padding: 0 10px;
}
.dictItem:first-child {
    padding-top: 10px;
}
.dictItem-Body {
    padding: 0 3px;
}
.dictItemHead {
    background: #eee;
    border-radius: 6px;
    padding: 6px;
    height: auto;
}
.dictPanel-Root {
    box-shadow: rgba(0,0,0,0.2) 0 7px 21px 2px;
}
&lt;/code&gt;&lt;/pre&gt;
</content:encoded><category>post</category></item><item><title>一个关于第三方购物平台的产品设计</title><link>https://nexmoe.com/zh/2441914640</link><guid isPermaLink="true">https://nexmoe.com/zh/2441914640</guid><pubDate>Sat, 03 Oct 2020 17:42:00 GMT</pubDate><content:encoded>&lt;p&gt;疫情期间选口罩想的一个购物产品功能&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;计算单个价格方便比价&lt;/p&gt;
&lt;p&gt;检验报告，自动获取生产标准的功能主要是为了证明商品的安全性。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E4%B8%80%E4%B8%AA%E5%85%B3%E4%BA%8E%E7%AC%AC%E4%B8%89%E6%96%B9%E8%B4%AD%E7%89%A9%E5%B9%B3%E5%8F%B0%E7%9A%84%E4%BA%A7%E5%93%81%E8%AE%BE%E8%AE%A1/5b8953bbefb80940794ccceba15ddcff.png&quot; alt=&quot;5b8953bbefb80940794ccceba15ddcff&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>关于《后浪》的看法</title><link>https://nexmoe.com/zh/posts/%E7%9C%8B%E6%B8%85%E7%8E%B0%E5%AE%9E%E4%B9%9F%E4%B8%8D%E8%AF%A5%E7%81%B0%E5%BF%83%E4%B8%A7%E6%B0%94</link><guid isPermaLink="true">https://nexmoe.com/zh/posts/%E7%9C%8B%E6%B8%85%E7%8E%B0%E5%AE%9E%E4%B9%9F%E4%B8%8D%E8%AF%A5%E7%81%B0%E5%BF%83%E4%B8%A7%E6%B0%94</guid><pubDate>Tue, 05 May 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;哔哩哔哩最近发布了一个广告《后浪》，作为 00 后的我看的时候也感觉挺澎湃的，里面还有几个我喜欢的 UP 主。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;但是看完了，回归理智过后开始思考，思考这些前浪并不是我，他们只是顶尖的那部分。&lt;strong&gt;看的时候我很有代入感，因为演讲说的“后浪”指的就是年轻人，于是就轻易的把自己当作视频里面的那一批，但是一回到现实就会明白，所谓的“后浪”根本不是大多数人更不是自己。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;引用知乎用户：&lt;a href=&quot;https://www.zhihu.com/people/cloudycity&quot;&gt;云舞空城&lt;/a&gt; 的一句话&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;那些站在时代浪尖上的青年，永远只是少数的一群——更多的青年，将青春的能量耗散在无休止的事情上：为学业拼搏，为事业拼搏，为更好的生活拼搏，慢慢的奋斗，消散在中年人的肚腩里，你甚至不会注意到他们的存在。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;关于视频带来的感受&lt;/h2&gt;
&lt;p&gt;其实仔细想想这个视频目的，就能明白为什么这个视频要让&lt;strong&gt;年轻人&lt;/strong&gt;有代入感。&lt;/p&gt;
&lt;p&gt;首先这个视频本身就是一个&lt;strong&gt;商业广告&lt;/strong&gt;它的目的就是&lt;strong&gt;为 B 站引入更多的 UP 主来投稿&lt;/strong&gt;。追求自由、追求梦想不过是利用了所有人都渴望的东西。但其实，谁不想追求自由、追求梦想，别说我们这一代，上一代，上上一代，有哪一代人不想追求自由、梦想。&lt;/p&gt;
&lt;p&gt;本来我也想写写，这个视频太过于理想，而不适合大多数人。不过看到知乎已经有很多人写了，我就不写了，我就写写我的看法吧。&lt;/p&gt;
&lt;h2&gt;落差感带来的焦虑&lt;/h2&gt;
&lt;p&gt;说实话，看完视频，再看知乎，会感到理想与现实巨大的落差感。感觉一下就被拽回现实，看完知乎，首先就是焦虑。&lt;/p&gt;
&lt;p&gt;与视频里面的年轻人相比，自己不过是个小地方的年轻人，人生没什么多余的选择，只有读书一条路可以走，并且成绩也没有那么好。虽然我知道我想做什么，&lt;strong&gt;但我不知道未来能做什么&lt;/strong&gt;。他们可以出国、跳伞、全世界到处跑，这是我完全没法想象的。想一想自己在全中国也就去过 3 个省，坐过最高级的交通工具也不过是旅游的时候坐的地铁。&lt;/p&gt;
&lt;p&gt;我觉得我可以代表年轻人的大多数，是&lt;strong&gt;有梦想却迷茫、成绩一般般、家庭一般般、见识也不够多的&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;我的观点&lt;/h2&gt;
&lt;p&gt;对于生活，首先我觉得是&lt;strong&gt;完全没有必要焦虑的&lt;/strong&gt;，视频里光鲜亮丽的人物只是少数而已，大多数都是和我们一样的年轻人，所以我觉得完全没必要焦虑。&lt;/p&gt;
&lt;p&gt;或许你会觉得我不思进取，但是我觉得只要知道&lt;strong&gt;焦虑是没有任何用的&lt;/strong&gt;，就明白这样想其实也没什么错。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;年轻人应该还是要不失活力的&lt;/strong&gt;，虽然我不如那些人拥有资源、拥有能力。但我还有我所在意的东西、我所热爱的东西，其实这就足够了。&lt;/p&gt;
&lt;p&gt;联系上文，部分焦虑来自于“我知道我想做什么，&lt;strong&gt;但我不知道未来能做什么&lt;/strong&gt;。”对于这种情况，我觉得最好的解决方法就是&lt;strong&gt;把自己热爱的事情培养成能吃饭的工具&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;喜欢绘画就让自己的绘画能力能吃到饭，可以去做平面设计、可以去做插画师。热爱运动，就努力考上军校。&lt;/p&gt;
&lt;p&gt;如果自己热爱的事情不能用来吃饭，那就把自己空余的时间用来培养爱好。&lt;/p&gt;
&lt;p&gt;我觉得&lt;strong&gt;相比衣食无忧、有房有车，不如一辈子都能做自己热爱的事情&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;人生有何意义，其实只要明白&lt;strong&gt;我确实存在，且有我所关心的人或事情、这就足够了，人只要能做自己热爱的事情，这就足够了&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;互联网让信息流通更加容易，我们更容易看到别人的幸福。这给我们一种错觉，认为别人的生活都是这么美好的。但现实是我们的国家还只是发展中国家，并不能达到每个人都是富裕的。&lt;/p&gt;
&lt;p&gt;我们没必要焦虑，也&lt;strong&gt;千万别去焦虑&lt;/strong&gt;。我们只需要&lt;strong&gt;更清楚的认识现实，然后仍然继续努力下去&lt;/strong&gt;，至少在为自己热爱的事情而奋斗的时刻是幸福的。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;本文只是一个年轻人的思考与想法，思维还不够成熟，还有很多欠缺的地方&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>博客，我优化了什么？</title><link>https://nexmoe.com/zh/661812793</link><guid isPermaLink="true">https://nexmoe.com/zh/661812793</guid><pubDate>Sun, 09 Feb 2020 16:10:00 GMT</pubDate><content:encoded>&lt;p&gt;由于博客性能一直很弱鸡，所以花了两天时间优化了一下，以下，是我的优化成果。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;先上跑分&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://i.speed.moe/image/E3nH&quot;&gt;&lt;img src=&quot;https://image.gslb.dawnlab.me/af94d4afe7524d6522600fae70430e67.png&quot; alt=&quot;af94d4afe7524d6522600fae70430e67.png&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://i.speed.moe/image/E7B5&quot;&gt;&lt;img src=&quot;https://image.gslb.dawnlab.me/f5c19b5607a3f5de94a15b007628e72f.png&quot; alt=&quot;f5c19b5607a3f5de94a15b007628e72f.png&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://i.speed.moe/image/EQ6p&quot;&gt;&lt;img src=&quot;https://image.gslb.dawnlab.me/4be54fe2007099d4c791c8a13489af77.png&quot; alt=&quot;4be54fe2007099d4c791c8a13489af77.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;去掉一些依赖&lt;/h2&gt;
&lt;p&gt;❌ 移除 fancybox
❌ 移除 SmoothScroll
❌ 移除 jQuery
❌ 移除 Pjax
已经 2020 年，我觉得 jQuery 是不需要的。
Edge 的正式发布自带良好的平滑滚动效果，加上 SmoothScroll 在 MacOS 上会有卡顿感，所以移除。
移除 fancybox 是因为平常真的不怎么用，还是直接鼠标右键打开原图看舒服。&lt;/p&gt;
&lt;h2&gt;Lazyload 优化&lt;/h2&gt;
&lt;p&gt;在此之前，我的博客首页一直有一个问题，图片加载抖动，所以我直接让文章每一个图片输入图片的长度和高度来计算图片占位大小来防止抖动。
不过确实麻烦了点。
此前的 Front-matter&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: 博客，我优化了什么？
cover: https://nexmoe.com/images/cover/compress/motorcycle-1690452_1920.jpg
---
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;现在的 Front-matter&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: 博客，我优化了什么？
cover: https://nexmoe.com/images/cover/compress/motorcycle-1690452_1920.jpg
coverWidth: 1920
coverHeight: 1206
---
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;并且对 Lazyload 加了一个非线性动画，给人一种更快乐的感觉。&lt;/p&gt;
&lt;h2&gt;资源合并&lt;/h2&gt;
&lt;p&gt;这个操作就很方便了，因为 jsdelivr 自带了合并功能，可以自由的合并多个库
比如 https://cdn.jsdelivr.net/combine/npm/highlight.js@9.15.8/styles/atom-one-dark.css,gh/nexmoe/nexmoe.github.io@latest/css/style.css,gh/nexmoe/nexmoe.github.io@latest/lib/mdui_043tiny/css/mdui.css,gh/nexmoe/nexmoe.github.io@latest/lib/iconfont/iconfont.css
所以我把博客所有的 css 和 js 文件分别合并成了一个，因此浏览器请求量减小，所以速度也有些许提升。&lt;/p&gt;
&lt;h2&gt;图片压缩&lt;/h2&gt;
&lt;p&gt;我的首页图就是看个爽，为什么要原图且无损？
所以我统一将图片全部压成 920px 的宽度了，大量减小图片大小。速度暴涨。&lt;/p&gt;
&lt;h2&gt;依赖库简化&lt;/h2&gt;
&lt;p&gt;由于主题依赖了 mdui，而 mdui 会加载字体，所以我把它本地化，然后删掉了颜色类，辅助类，以及字体类。
速度也有些许提升。&lt;/p&gt;
&lt;h2&gt;部分 js 用 nodejs 重写&lt;/h2&gt;
&lt;p&gt;以前启用 lazyload 和一些功能，我是用 js 写的，所以在网页渲染的时候需要重新渲染，所以需要占用一定的性能。
所以我就将一部分使用 nodejs 重写，Hexo 会在编译的时候完成工作，因此在浏览器访问时就不需要渲染了。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Typecho 主题 Nexmoe</title><link>https://nexmoe.com/zh/371865617</link><guid isPermaLink="true">https://nexmoe.com/zh/371865617</guid><pubDate>Sun, 25 Aug 2019 14:31:32 GMT</pubDate><content:encoded>&lt;p&gt;一个比较特别的 Typecho 主题
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;网易云音乐 ID：5027380&lt;/p&gt;
&lt;h2&gt;Github&lt;/h2&gt;
&lt;p&gt;https://github.com/nexmoe/typecho-theme-nexmoe
欢迎 Star，贡献，如遇到问题请留言&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://img.shields.io/github/stars/nexmoe/typecho-theme-nexmoe.svg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/forks/nexmoe/typecho-theme-nexmoe.svg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/issues/nexmoe/typecho-theme-nexmoe.svg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/last-commit/nexmoe/typecho-theme-nexmoe.svg?label=commits&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/license/nexmoe/typecho-theme-nexmoe.svg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;获取更新&lt;/h2&gt;
&lt;p&gt;使用 watch Releases only 以获取新版本更新提示&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/pasted-5.png&quot; alt=&quot;upload successful&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;开源协议&lt;/h2&gt;
&lt;p&gt;Apache License 2.0&lt;/p&gt;
&lt;h2&gt;后续更新&lt;/h2&gt;
&lt;p&gt;就读高中，
star 以及 issue 是我更新的动力
欢迎加群 482634342 划水&lt;/p&gt;
&lt;h2&gt;特性&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#github&quot;&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#%E8%8E%B7%E5%8F%96%E6%9B%B4%E6%96%B0&quot;&gt;获取更新&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#%E5%BC%80%E6%BA%90%E5%8D%8F%E8%AE%AE&quot;&gt;开源协议&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#%E5%90%8E%E7%BB%AD%E6%9B%B4%E6%96%B0&quot;&gt;后续更新&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#%E7%89%B9%E6%80%A7&quot;&gt;特性&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#%E5%9B%BD%E9%99%85%E5%8C%96&quot;&gt;国际化&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#%E7%9B%B8%E7%89%87%E9%9B%86&quot;&gt;相片集&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#%E5%9B%BE%E7%89%87%E7%81%AF%E7%AE%B1&quot;&gt;图片灯箱&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#%E6%96%87%E7%AB%A0%E5%B0%81%E9%9D%A2%E5%9B%BE&quot;&gt;文章封面图&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;国际化&lt;/h2&gt;
&lt;p&gt;目前中文翻译较全，其他语言翻译不完全，有余力的大佬可以来贡献一下
语言文件在 languages 里，参考 &lt;code&gt;zh-CN.yml&lt;/code&gt; 进行翻译即可&lt;/p&gt;
&lt;h2&gt;相片集&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;![珠江](https://i.loli.net/2018/09/01/5b8a59551a4d8.jpg)|![珠江](https://i.loli.net/2018/09/01/5b8a6ab761262.jpg)|![某收门票公园](https://i.loli.net/2018/09/01/5b8a5994b6e28.jpg)
- | - | -
![某收门票公园](https://i.loli.net/2018/09/01/5b8a5994b6e28.jpg)|![某收门票公园](https://i.loli.net/2018/09/01/5b8a5c8c34439.jpg)|![珠海](https://i.loli.net/2018/09/01/5b8a59d5c50f3.jpg)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;原理就是在 markdown 的表格里面插入图片&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://i.loli.net/2018/09/01/5b8a59551a4d8.jpg&quot; alt=&quot;珠江&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://i.loli.net/2018/09/01/5b8a6ab761262.jpg&quot; alt=&quot;珠江&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://i.loli.net/2018/09/01/5b8a5994b6e28.jpg&quot; alt=&quot;某收门票公园&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://i.loli.net/2018/09/01/5b8a5994b6e28.jpg&quot; alt=&quot;某收门票公园&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://i.loli.net/2018/09/01/5b8a5c8c34439.jpg&quot; alt=&quot;某收门票公园&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://i.loli.net/2018/09/01/5b8a59d5c50f3.jpg&quot; alt=&quot;珠海&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;图片灯箱&lt;/h2&gt;
&lt;p&gt;自动开启功能，为文章中每一个图片提供灯箱功能&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/pasted-4.png&quot; alt=&quot;upload successful&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;文章封面图&lt;/h2&gt;
&lt;p&gt;在 Front-matter 中为 cover 赋值即可，如&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: Hello World
pubDate: 2013/7/13 20:46:25
cover: https://i.loli.net/2019/07/21/5d33d5dc1531213134.png
---
&lt;/code&gt;&lt;/pre&gt;
</content:encoded><category>post</category></item><item><title>美化你的终端</title><link>https://nexmoe.com/zh/1519803391</link><guid isPermaLink="true">https://nexmoe.com/zh/1519803391</guid><pubDate>Fri, 09 Aug 2019 18:49:03 GMT</pubDate><content:encoded>&lt;p&gt;自带的 PowerShell 虽然有了自定义颜色等功能，但还是太丑，这一篇文章将帮你打造 Windows10 上最美终端。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;安装 &lt;s&gt;Fluent Terminal&lt;/s&gt; 建议使用 Terminus&lt;/h2&gt;
&lt;p&gt;Fluent Terminal 是一个基于 UWP 和 Web 技术的终端，相比较 Terminus，占用资源更少，而且有中文翻译，并且设置页还有 GUI。&lt;/p&gt;
&lt;p&gt;在以下链接下载最新版
&lt;a href=&quot;https://github.com/felixse/FluentTerminal/releases&quot;&gt;https://github.com/felixse/FluentTerminal/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;解压到任意位置，打开目录，右键 &lt;code&gt;Install.ps1&lt;/code&gt; 使用 PowerShell 运行，选择 Sideloading（旁加载应用）安装&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/%E7%BE%8E%E5%8C%96%E4%BD%A0%E7%9A%84%E7%BB%88%E7%AB%AF/pasted-1.png&quot; alt=&quot;安装 Fluent Terminal&quot; /&gt;&lt;/p&gt;
&lt;p&gt;安装完成&lt;/p&gt;
&lt;h2&gt;安装 Terminus&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://eugeny.github.io/terminus/&quot;&gt;https://eugeny.github.io/terminus/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;安装 oh-my-posh 与 posh-git&lt;/h2&gt;
&lt;p&gt;posh-git：此模块用于将 git 集成于 PowerShell 中
oh-my-posh：本次美化主角，带色的箭头标签&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Set-ExecutionPolicy Bypass
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/%E7%BE%8E%E5%8C%96%E4%BD%A0%E7%9A%84%E7%BB%88%E7%AB%AF/pasted-7.png&quot; alt=&quot;安装 oh-my-posh&quot; /&gt;&lt;/p&gt;
&lt;p&gt;启用 oh-my-posh 与 posh-git&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Import-Module posh-git
Import-Module oh-my-posh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;设置主题&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Set-Theme Agnoster
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可选列表&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agnoster&lt;/li&gt;
&lt;li&gt;Avit&lt;/li&gt;
&lt;li&gt;Darkblood&lt;/li&gt;
&lt;li&gt;Fish&lt;/li&gt;
&lt;li&gt;Honukai&lt;/li&gt;
&lt;li&gt;Paradox&lt;/li&gt;
&lt;li&gt;PowerLine&lt;/li&gt;
&lt;li&gt;robbyrussell&lt;/li&gt;
&lt;li&gt;Sorin&lt;/li&gt;
&lt;li&gt;tehrob&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;输入获取配置项目录&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$profile
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/%E7%BE%8E%E5%8C%96%E4%BD%A0%E7%9A%84%E7%BB%88%E7%AB%AF/pasted-9.png&quot; alt=&quot;upload successful&quot; /&gt;&lt;/p&gt;
&lt;p&gt;打开控制台输出目录中的文件，输入配置项并保存&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Import-Module oh-my-posh
Set-Theme Agnoster
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/%E7%BE%8E%E5%8C%96%E4%BD%A0%E7%9A%84%E7%BB%88%E7%AB%AF/pasted-10.png&quot; alt=&quot;upload successful&quot; /&gt;&lt;/p&gt;
&lt;p&gt;打开 Fluent Terminal 查看效果&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/%E7%BE%8E%E5%8C%96%E4%BD%A0%E7%9A%84%E7%BB%88%E7%AB%AF/pasted-12.png&quot; alt=&quot;upload successful&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Hexo Theme Nexmoe</title><link>https://nexmoe.com/zh/products/hexo-theme-nexmoe</link><guid isPermaLink="true">https://nexmoe.com/zh/products/hexo-theme-nexmoe</guid><pubDate>Mon, 05 Aug 2019 04:25:35 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/20240822_cover.C8wi04AC.png&quot; alt=&quot;Hexo Theme Nexmoe&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/hexo-theme-nexmoe&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/20240822_cover.C8wi04AC.png" length="1531936" type="image/png"/></item><item><title>Pray For KyoAni</title><link>https://nexmoe.com/zh/3329058764</link><guid isPermaLink="true">https://nexmoe.com/zh/3329058764</guid><pubDate>Sun, 21 Jul 2019 10:34:00 GMT</pubDate><content:encoded>&lt;p&gt;7 月 18 日发生京都动画纵火案，当时听到消息，我心里先是想着“绝对是假的”，不过已经实锤了，只能面对现实了。
事情已经发生了，我也做不了什么，发个博文记录一下吧。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;京都动画纵火案（日语：京都アニメーション放火事件）是 2019 年 7 月 18 日在日本京都府京都市伏见区桃山町京都动画第一工作室发生的纵火杀人事件。41 岁（1978 年 5 月 16 日出生）的青叶真司于工作室内倾倒汽油，随即引发爆炸与大火。火灾导致京都动画第一工作室楼高三层的建筑物完全烧毁，当前造成 34 死、35 伤（包括行凶者）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;网易云音乐 ID：534064298&lt;/p&gt;
&lt;p&gt;&amp;lt;style&amp;gt;
html {
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);&lt;br /&gt;
_filter:none;
}
&amp;lt;/style&amp;gt;&lt;/p&gt;
&lt;h2&gt;事件详情&lt;/h2&gt;
&lt;p&gt;https://zh.wikipedia.org/wiki/%E4%BA%AC%E9%83%BD%E5%8B%95%E7%95%AB%E7%B8%B1%E7%81%AB%E6%A1%88&lt;/p&gt;
&lt;h2&gt;我看过的京都动画&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;紫罗兰永恒花园（别人安利，一直没看，后来找了个机会一看，感觉好像发现了宝藏，作画十分精良&lt;/li&gt;
&lt;li&gt;境界的彼方（当我还不是死肥宅的时候就看了，真的好看&lt;/li&gt;
&lt;li&gt;中二病也要谈恋爱（好像看完了，年代久远了&lt;/li&gt;
&lt;li&gt;声之形&lt;/li&gt;
&lt;li&gt;无彩限的怪灵世界&lt;/li&gt;
&lt;li&gt;冰菓（没看完&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;花&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Daisy（我的香薰，是我的最喜欢的花&lt;/li&gt;
&lt;li&gt;紫罗兰&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;境界的彼方&lt;/h2&gt;
&lt;p&gt;很早就看了，短发控的我甚是喜欢，还有 Daisy 这首神之片尾曲&lt;/p&gt;
&lt;p&gt;网易云音乐 ID：28018269&lt;/p&gt;
&lt;h2&gt;紫罗兰永恒花园&lt;/h2&gt;
&lt;p&gt;画风简直太好了，给了还在上学的我一点点温暖&lt;/p&gt;
&lt;p&gt;网易云音乐 ID：547973265&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>PHP &amp; Vue.js 表白墙</title><link>https://nexmoe.com/zh/2154053968</link><guid isPermaLink="true">https://nexmoe.com/zh/2154053968</guid><pubDate>Sun, 14 Apr 2019 13:38:00 GMT</pubDate><content:encoded>&lt;p&gt;一个基于 Vue.js 的匿名表白墙轻量级小程序&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;开源协议&lt;/h2&gt;
&lt;p&gt;Apache License 2.0
https://github.com/nexmoe/wall-public/blob/master/LICENSE&lt;/p&gt;
&lt;h2&gt;介绍&lt;/h2&gt;
&lt;p&gt;一个基于 Vue.js 的匿名表白墙轻量级小程序&lt;/p&gt;
&lt;h2&gt;作者&lt;/h2&gt;
&lt;p&gt;折影轻梦（Nexmoe），根据 Apache 许可证发布。&lt;/p&gt;
&lt;h2&gt;Demo&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://wall.chainwon.com/&quot;&gt;https://wall.chainwon.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;欢迎大家在 issue 或者 pull request 中添加你部署好的网站链接&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;屏幕截图&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/PHP-Vue-js-%E8%A1%A8%E7%99%BD%E5%A2%99/screenshots.png&quot; alt=&quot;screenshots&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;环境准备&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;支持 PHP 的服务器，PHP7 以上版本最佳&lt;/li&gt;
&lt;li&gt;支持 Apache 的服务器&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;去 &lt;a href=&quot;https://github.com/nexmoe/wall-public/releases&quot;&gt;https://github.com/nexmoe/wall-public/releases&lt;/a&gt; 下载 zip 包安装&lt;/li&gt;
&lt;li&gt;将程序解压到网站根目录&lt;/li&gt;
&lt;li&gt;访问 &lt;code&gt;域名/install.php&lt;/code&gt; 填写表单安装即可&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;PWA 支持&lt;/h2&gt;
&lt;p&gt;service-wroker 已配置好了，只需要修改 &lt;code&gt;/static/manifest.json&lt;/code&gt; 里面的内容即可&lt;/p&gt;
&lt;h2&gt;后续更新&lt;/h2&gt;
&lt;p&gt;就读高中，
star 以及 issue 是我更新的动力
欢迎加群 482634342 划水&lt;/p&gt;
&lt;h2&gt;交流&lt;/h2&gt;
&lt;p&gt;用户交流群：797996017&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>2018 年也还是走到了头</title><link>https://nexmoe.com/zh/1341</link><guid isPermaLink="true">https://nexmoe.com/zh/1341</guid><pubDate>Tue, 01 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;终于，还是活到了 2019，2018 年也还是走到了头，2017 年的时候想着要做许许多多有意思的事情，那个时候我还是那么乐观，还是充满着憧憬。
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;不过现在已经活成这样又有什么办法呢，人生总是充满遗憾，不知道还能不能像从前那样鼓起信心去迎接新的一年呢？&lt;/p&gt;
&lt;p&gt;网易云音乐 ID：1293886117&lt;/p&gt;
&lt;p&gt;初二、高二，都是中二的年龄，据说这是人一生到当中脑子最有毛病的时候，沉沦下去或是＆……这段时间总能起到至关重要的作用。
或许我现在的状态就如同《妄想症 Deliver Me》中的主角一样，无论对什么都提不起多大的兴趣，游戏、学习、代码、追番。不过却沉沦于华语音乐和各种电影中。&lt;/p&gt;
&lt;p&gt;注：《妄想症 Deliver Me》是&lt;a href=&quot;https://blog.lim-light.com/&quot;&gt;黎明&lt;/a&gt;送我的。&lt;/p&gt;
&lt;h2&gt;说一说今天&lt;/h2&gt;
&lt;p&gt;今天去看了《蜘蛛侠：平行宇宙》，虽然是个喜剧片，但还是有部分内容真的使我很有感触，但是这种戏剧的风格会瞬间让你从悲伤中恢复过来，几次都瞬间缓过来了。
或许我看是不一样的感受吧，整场下来，旁边的小孩子从头笑到尾，那些家长也是。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;迈尔斯：“如果衣服不合身，我可以换吗？”
斯坦·李：“它总是会合身的。”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;迈尔斯：“我要怎样才能知道我准备好了？”
彼得·帕克：“你不会知道，这就是一种信念。”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;谁都可以带上面具，谁 都可以是蜘蛛侠。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;网易云音乐&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c31865835fc1.png&quot; alt=&quot;5c31865835fc1&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c318658a8568.png&quot; alt=&quot;5c318658a8568&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c318658d4aeb.png&quot; alt=&quot;5c318658d4aeb&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c31865b04eaf.png&quot; alt=&quot;5c31865b04eaf&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c3186697893b.png&quot; alt=&quot;5c3186697893b&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c318659463e7.png&quot; alt=&quot;5c318659463e7&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c31866b86fde.png&quot; alt=&quot;5c31866b86fde&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c31866e1d129-1604033165849.png&quot; alt=&quot;5c31866e1d129&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c318651b00d8-1604033017843.png&quot; alt=&quot;5c318651b00d8&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c31865401e57.png&quot; alt=&quot;5c31865401e57&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c3186559ade5.png&quot; alt=&quot;5c3186559ade5&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c318655f319d.png&quot; alt=&quot;5c318655f319d&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c31865639e6b.png&quot; alt=&quot;5c31865639e6b&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;最后&lt;/h2&gt;
&lt;p&gt;哎，写到这有点写不下去了。只是想找一个地方，找一个能忘掉一切，能什么也不做，什么也不用想的地方。最近的几个月，总是睡得很晚，因为总是睡不着，总是在晚上会想一些事情，我不知道该怎么办才能恢复正常，我想让我的大脑关机，可他不愿意关机。&lt;/p&gt;
&lt;p&gt;我该怎么办？还有几分钟 2018 就结束了。我该如何去面对即将到来的 2019，我很想很想变成一个温柔、乐观、外向的人，可我做得到吗。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>元旦送一波 steam 游戏（已结束）</title><link>https://nexmoe.com/zh/1321</link><guid isPermaLink="true">https://nexmoe.com/zh/1321</guid><pubDate>Sun, 23 Dec 2018 23:44:00 GMT</pubDate><content:encoded>&lt;p&gt;终于，2018 年也快到了头，2017 年的时候就想着要做许许多多有意思的事情，如今肯定是有很多没有能够实现的。不过又有什么办法呢，人生总是充满遗憾，还是鼓起信心去迎接新的一年吧。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;网易云音乐 ID：1709302&lt;/p&gt;
&lt;h2&gt;首先&lt;/h2&gt;
&lt;p&gt;你得保证中奖过后你能腾出时间去玩，请不要觉得免费得到的就不当回事。&lt;/p&gt;
&lt;p&gt;特别是《To The Moon》，它的游戏时间只有一个 5 小时以内就能通关，但可能一次不能理解他的剧情。
他是一个已剧情为主的游戏，所以操作性几乎没有，不抽出完整的 5 小时静下心来玩是不可能体验到他的意义的。&lt;/p&gt;
&lt;p&gt;综上，我希望中奖后能认真对待游戏。&lt;/p&gt;
&lt;h2&gt;开奖日期&lt;/h2&gt;
&lt;p&gt;2019 年 1 月 2 日&lt;/p&gt;
&lt;h2&gt;参加方式&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;添加我的 Steam
http://s.team/p/cfgg-gbnr/BWCTKBWQ&lt;/li&gt;
&lt;li&gt;在本文评论&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;快加我 Steam 啊&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;##奖品
饥荒联机版、to the moon、传送门 2、城堡破坏者、求生之路 2……&lt;/p&gt;
&lt;p&gt;以上其中一个，都比较便宜，不过只送的起这些了。&lt;/p&gt;
&lt;p&gt;一共十份&lt;/p&gt;
&lt;h2&gt;抽奖方式&lt;/h2&gt;
&lt;p&gt;PHP 的 rand()
一个人只可评论一次。
抽奖结果将在评论区回复中奖者，请填写正确的能收邮件的邮箱地址。。&lt;/p&gt;
&lt;p&gt;感觉至少要 100 人起抽吧。。。&lt;/p&gt;
&lt;p&gt;没加我 Steam 好友就是弃权了。。。&lt;/p&gt;
&lt;h2&gt;相关社交平台&lt;/h2&gt;
&lt;p&gt;TG: https://t.me/chainwon&lt;/p&gt;
&lt;p&gt;QQ 群：482634342&lt;/p&gt;
&lt;h2&gt;往期&lt;/h2&gt;
&lt;p&gt;https://nexmoe.com/1070.html&lt;/p&gt;
&lt;p&gt;手机不好打字，还在上学……&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>黑暗与光明孰强孰弱？</title><link>https://nexmoe.com/zh/1291</link><guid isPermaLink="true">https://nexmoe.com/zh/1291</guid><pubDate>Sun, 09 Dec 2018 02:40:00 GMT</pubDate><content:encoded>&lt;p&gt;黑暗与光明孰强孰弱？&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;版权&lt;/h2&gt;
&lt;p&gt;MIT&lt;/p&gt;
&lt;h2&gt;Github&lt;/h2&gt;
&lt;p&gt;https://github.com/nexmoe/single-page/&lt;/p&gt;
&lt;p&gt;[PAGE1]&lt;/p&gt;
&lt;h2&gt;HTML 单页面 黑 VS 白&lt;/h2&gt;
&lt;h4&gt;演示&lt;/h4&gt;
&lt;p&gt;https://nexmoe.github.io/single-page/nexmoe-vs/&lt;/p&gt;
&lt;h4&gt;下载&lt;/h4&gt;
&lt;p&gt;https://github.com/nexmoe/single-page/tree/master/nexmoe-vs&lt;/p&gt;
&lt;h4&gt;预览图&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E9%BB%91%E6%9A%97%E4%B8%8E%E5%85%89%E6%98%8E%E5%AD%B0%E5%BC%BA%E5%AD%B0%E5%BC%B1%EF%BC%9F/5c0c0f972944e.png&quot; alt=&quot;5c0c0f972944e&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;一个低仿 Mac OS Safari 的单页模板&lt;/h2&gt;
&lt;h4&gt;演示&lt;/h4&gt;
&lt;p&gt;https://nexmoe.github.io/single-page/nexmoe-safari/&lt;/p&gt;
&lt;h4&gt;下载&lt;/h4&gt;
&lt;p&gt;https://github.com/nexmoe/single-page/tree/master/nexmoe-safari&lt;/p&gt;
&lt;h4&gt;预览图&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E9%BB%91%E6%9A%97%E4%B8%8E%E5%85%89%E6%98%8E%E5%AD%B0%E5%BC%BA%E5%AD%B0%E5%BC%B1%EF%BC%9F/2018-04-20_23-06-59.png&quot; alt=&quot;2018-04-20_23-06-59&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;一个为组织项目写的时间轴模板&lt;/h2&gt;
&lt;h4&gt;演示&lt;/h4&gt;
&lt;p&gt;https://nexmoe.github.io/single-page/mixcm-avatar/&lt;/p&gt;
&lt;h4&gt;下载&lt;/h4&gt;
&lt;p&gt;https://github.com/nexmoe/single-page/tree/master/mixcm-avatar&lt;/p&gt;
&lt;h4&gt;预览图&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E9%BB%91%E6%9A%97%E4%B8%8E%E5%85%89%E6%98%8E%E5%AD%B0%E5%BC%BA%E5%AD%B0%E5%BC%B1%EF%BC%9F/2738569080.png&quot; alt=&quot;2738569080&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;一个警告页模板&lt;/h2&gt;
&lt;h4&gt;演示&lt;/h4&gt;
&lt;p&gt;https://nexmoe.github.io/single-page/nexmoe-warning&lt;/p&gt;
&lt;h4&gt;下载&lt;/h4&gt;
&lt;p&gt;https://github.com/nexmoe/single-page/tree/master/nexmoe-warning&lt;/p&gt;
&lt;h4&gt;预览图&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E9%BB%91%E6%9A%97%E4%B8%8E%E5%85%89%E6%98%8E%E5%AD%B0%E5%BC%BA%E5%AD%B0%E5%BC%B1%EF%BC%9F/59f545cd0b244.png&quot; alt=&quot;59f545cd0b244&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>利用 goto 来防止 if 嵌套</title><link>https://nexmoe.com/zh/1280</link><guid isPermaLink="true">https://nexmoe.com/zh/1280</guid><pubDate>Sat, 24 Nov 2018 18:04:00 GMT</pubDate><content:encoded>&lt;p&gt;流程控制中的 if 是比较简单的逻辑判断，但是在多条逻辑判断中很容易造成 if 嵌套，逻辑复杂度较高，让人感到十分混乱。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;万恶的 if 嵌套&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
$a = array(
    &apos;state&apos; =&amp;gt; &apos;1&apos;,
    &apos;notice&apos; =&amp;gt; &apos;注册成功！&apos;,
);

if ($_GET[&apos;username&apos;] != &apos;&apos;) {
    if (strlen($_GET[&apos;username&apos;]) &amp;gt; 4 or !strlen($_GET[&apos;username&apos;]) &amp;lt; 11) {
        $name = array(&apos;root&apos;,&apos;admin&apos;,&apos;GETmaster&apos;,&apos;master&apos;,&apos;webmaster&apos;,&apos;mixcm&apos;,&apos;administrator&apos;,&apos;sb&apos;,&apos;shabi&apos;);
        if (!in_array($_GET[&apos;username&apos;], $name)) {
            if (preg_match(&quot;/^[a-zA-Z\s]+$/&quot;, $_GET[&apos;username&apos;])) {
                $a[&apos;state&apos;] = &apos;0&apos;;
                $a[&apos;notice&apos;] = &apos;用户名必须为英文！&apos;;
            }
        } else {
            $a[&apos;state&apos;] = &apos;0&apos;;
            $a[&apos;notice&apos;] = &apos;非法用户名！&apos;;
        }
    } else {
        $a[&apos;state&apos;] = &apos;0&apos;;
        $a[&apos;notice&apos;] = &apos;请输入大于4字符，且小于11个字符的用户名！&apos;;
    }

} else {
    $a[&apos;state&apos;] = &apos;0&apos;;
    $a[&apos;notice&apos;] = &apos;用户名不能为空！&apos;;
}

echo json_encode($a,JSON_UNESCAPED_UNICODE);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;于是在实际操作中就会想方设法避免以上格式。便有了 goto 和 表数据。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;逻辑清晰&lt;/li&gt;
&lt;li&gt;后期修改容易&lt;/li&gt;
&lt;li&gt;但需要防止 goto 滥用，建议只定义一个，列如本例就只定义了 end&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;利用 goto 解决（以下代码中有使用到表数据）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
$a = array(
    &apos;state&apos; =&amp;gt; &apos;1&apos;,
    &apos;notice&apos; =&amp;gt; &apos;注册成功！&apos;,
);

if ($_GET[&apos;username&apos;] == &apos;&apos;) {
    $a[&apos;state&apos;] = &apos;0&apos;;
    $a[&apos;notice&apos;] = &apos;用户名不能为空！&apos;;
    goto end;
}

if (strlen($_GET[&apos;username&apos;]) &amp;lt; 4 or strlen($_GET[&apos;username&apos;]) &amp;gt; 11) {
    $a[&apos;state&apos;] = &apos;0&apos;;
    $a[&apos;notice&apos;] = &apos;请输入大于4字符，且小于11个字符的用户名！&apos;;
    goto end;
}

$name = array(&apos;root&apos;,&apos;admin&apos;,&apos;GETmaster&apos;,&apos;master&apos;,&apos;webmaster&apos;,&apos;mixcm&apos;,&apos;administrator&apos;,&apos;sb&apos;,&apos;shabi&apos;);
if (in_array($_GET[&apos;username&apos;], $name)) {
    $a[&apos;state&apos;] = &apos;0&apos;;
    $a[&apos;notice&apos;] = &apos;非法用户名！&apos;;
    goto end;
}

if (!preg_match(&quot;/^[a-zA-Z\s]+$/&quot;, $_GET[&apos;username&apos;])) {
    $a[&apos;state&apos;] = &apos;0&apos;;
    $a[&apos;notice&apos;] = &apos;用户名必须为英文！&apos;;
    goto end;
}

end:
echo json_encode($a,JSON_UNESCAPED_UNICODE);
&lt;/code&gt;&lt;/pre&gt;
</content:encoded><category>post</category></item><item><title>Cat UI 之 四季的猫（付费版）</title><link>https://nexmoe.com/zh/seasoncat</link><guid isPermaLink="true">https://nexmoe.com/zh/seasoncat</guid><pubDate>Tue, 02 Oct 2018 00:39:00 GMT</pubDate><content:encoded>&lt;p&gt;历经四季，回头发现，只有猫还在那等着我……
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;版权声明&lt;/h2&gt;
&lt;p&gt;!!!
&amp;lt;span style=&quot;color: red;&quot;&amp;gt;付费主题，禁止转售，禁止修改版权，可用于商用，可二次更改但只能自用，禁止修改 #sider-copyright 中的内容，禁止修改 sider.php 中的内容。
打破条约意味着放弃主题使用权。
&amp;lt;/span&amp;gt;
!!!&lt;/p&gt;
&lt;h2&gt;付费说明&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[OPEN] 付费方式&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;四季的猫&lt;/strong&gt; 收费 &lt;strong&gt;&lt;code&gt;47.77&lt;/code&gt;&lt;/strong&gt;，&lt;strong&gt;周六晚&lt;/strong&gt; 或 &lt;strong&gt;节假日&lt;/strong&gt; 联系 QQ &lt;strong&gt;776194970&lt;/strong&gt;，欢迎额外赞助。&lt;/li&gt;
&lt;li&gt;[OPEN] 相关说明&lt;/li&gt;
&lt;li&gt;后期涨价 &lt;strong&gt;可能&lt;/strong&gt; 会要求补差价，活动降价 &lt;strong&gt;不退&lt;/strong&gt; 差价。&lt;/li&gt;
&lt;li&gt;版权最终归属：&lt;strong&gt;折影轻梦&lt;/strong&gt;，买了模板，就别倒卖吧，我本来就没收入的。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://i.loli.net/2018/09/01/5b8a8ac8a3823.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;功能介绍&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;头像设置&lt;/li&gt;
&lt;li&gt;控制台 -&amp;gt; 更换外观 -&amp;gt; 设置外观 -&amp;gt; 博客头像&lt;/li&gt;
&lt;li&gt;头图设置&lt;/li&gt;
&lt;li&gt;控制台 -&amp;gt; 更换外观 -&amp;gt; 设置外观 -&amp;gt; 博客头图&lt;/li&gt;
&lt;li&gt;支付码设置&lt;/li&gt;
&lt;li&gt;控制台 -&amp;gt; 更换外观 -&amp;gt; 设置外观 -&amp;gt; 支付宝付款二维码&lt;/li&gt;
&lt;li&gt;控制台 -&amp;gt; 更换外观 -&amp;gt; 设置外观 -&amp;gt; 腾讯 QQ 付款二维码&lt;/li&gt;
&lt;li&gt;控制台 -&amp;gt; 更换外观 -&amp;gt; 设置外观 -&amp;gt; 微信付款二维码&lt;/li&gt;
&lt;li&gt;自定义 CSS 设置&lt;/li&gt;
&lt;li&gt;控制台 -&amp;gt; 更换外观 -&amp;gt; 设置外观 -&amp;gt; 自定义 CSS&lt;/li&gt;
&lt;li&gt;统计代码设置&lt;/li&gt;
&lt;li&gt;控制台 -&amp;gt; 更换外观 -&amp;gt; 设置外观 -&amp;gt; 统计代码&lt;/li&gt;
&lt;li&gt;文章 Cover 图片显示&lt;/li&gt;
&lt;li&gt;控制台 -&amp;gt; 更换外观 -&amp;gt; 设置外观 -&amp;gt; Cover 模式&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文章标题&lt;/strong&gt;：标题设置为 Cover。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自定义 Cover&lt;/strong&gt;：若已设置“自定义缩略图”，则将其设置为 Cover，当没有图片时，会将背景设置为 Cover。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自定义 Cover+ 标题&lt;/strong&gt;：若已设置“自定义缩略图”，则将其设置为 Cover，当没有图片时，会将标题设置为 Cover。&lt;/li&gt;
&lt;li&gt;其他工具&lt;/li&gt;
&lt;li&gt;博客功能（文章内显示打赏、二维码按钮）&lt;/li&gt;
&lt;li&gt;开启 SmoothScroll 平滑滚动&lt;/li&gt;
&lt;li&gt;侧边栏&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;二维码&lt;/strong&gt;：侧边栏显示二维码，同时也是文章的二维码，关闭后两者皆不显示。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;标签云&lt;/strong&gt;：侧边栏显示博客所有标签。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;搜索栏&lt;/strong&gt;：侧边栏显示猫咪，带你搜索全站内容。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分类目录&lt;/strong&gt;：侧边栏显示博客所有分类。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;近期评论&lt;/strong&gt;：侧边栏显示最近的评论，可在 控制台 -&amp;gt; 设置 -&amp;gt; 评论 里设置列出条数。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;自定义文章头图&lt;/h2&gt;
&lt;p&gt;需要先在 后台 → 设置外观 → Cover 模式 中启用 &lt;code&gt;自定义Cover&lt;/code&gt;
然后在编辑文章中的 &lt;code&gt;自定义字段&lt;/code&gt; 内可设置&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/usr/uploads/2017/07/987664267.png&quot; alt=&quot;snipaste20170702_154904.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;新版友情链接格式&lt;/h2&gt;
&lt;p&gt;需要在后台 → 创建新页面 → 自定义模板 中使用“友情链接”&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- ![名称](图片链接) [名称](链接地址 &quot;链接介绍&quot;)
比如：
- ![轻惋导航](https://www.chainwon.com/static/logo.png) [轻惋导航](https://www.chainwon.com/ &quot;这个导航将会有无限的可能！&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;若上述格式不生效，请使用如下格式&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;a class=&quot;mdui-ripple&quot; href=&quot;https://www.chainwon.com/&quot; target=&quot;_blank&quot;&amp;gt;
	&amp;lt;img src=&quot;https://www.chainwon.com/static/logo.png&quot; alt=&quot;轻惋导航&quot; title=&quot;轻惋导航&quot;&amp;gt;
	&amp;lt;p&amp;gt;轻惋导航&amp;lt;/p&amp;gt;
&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;愿望单&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;- 已达成（默认收起）
  - [Y] 已达成 1
  - [Y] 已达成 2
- [OPEN] 未达成（打开）
  - [N] 未达成
  - [N] 未达成 2
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;已达成（默认收起）
&lt;ul&gt;
&lt;li&gt;[Y] 已达成 1&lt;/li&gt;
&lt;li&gt;[Y] 已达成 2&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;[OPEN] 未达成（打开）
&lt;ul&gt;
&lt;li&gt;[N] 未达成&lt;/li&gt;
&lt;li&gt;[N] 未达成 2&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;图片排列&lt;/h2&gt;
&lt;p&gt;本功能文本格式规范要求极高，请严格按照以下格式使用，切不能省掉 &lt;code&gt;换行符&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[PIC2]

![珠江](https://i.loli.net/2018/09/01/5b8a59551a4d8.jpg)

![珠江](https://i.loli.net/2018/09/01/5b8a6ab761262.jpg)

[/PIC2]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;[PIC2]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.loli.net/2018/09/01/5b8a59551a4d8.jpg&quot; alt=&quot;珠江&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.loli.net/2018/09/01/5b8a6ab761262.jpg&quot; alt=&quot;珠江&quot; /&gt;&lt;/p&gt;
&lt;p&gt;[/PIC2]&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[PIC3]

![IMG_20180810_174621.jpg](https://i.loli.net/2018/09/01/5b8a95c57c988.jpg)

![IMG_20180811_125032.jpg](https://i.loli.net/2018/09/01/5b8a95c721f6f.jpg)

![IMG_20180811_135904.jpg](https://i.loli.net/2018/09/01/5b8a95c87f8c2.jpg)

[/PIC3]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;[PIC3]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.loli.net/2018/09/01/5b8a95c57c988.jpg&quot; alt=&quot;IMG_20180810_174621.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.loli.net/2018/09/01/5b8a95c721f6f.jpg&quot; alt=&quot;IMG_20180811_125032.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.loli.net/2018/09/01/5b8a95c87f8c2.jpg&quot; alt=&quot;IMG_20180811_135904.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;[/PIC3]&lt;/p&gt;
&lt;h2&gt;文章内分页&lt;/h2&gt;
&lt;p&gt;本功能文本格式规范要求极高，请严格按照以下格式使用，切不能省掉 &lt;code&gt;换行符&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;演示：https://nexmoe.com/seasoncat&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[PAGE1]

第一页

[/PAGE1]

[PAGE2]

第二页

[/PAGE2]
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;更新日志&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;19.01.05.1
&lt;ul&gt;
&lt;li&gt;全新的样式&lt;/li&gt;
&lt;li&gt;优化了评论图片显示&lt;/li&gt;
&lt;li&gt;优化了 H2 标题的显示&lt;/li&gt;
&lt;li&gt;新增文章归档&lt;/li&gt;
&lt;li&gt;评论详细信息提示&lt;/li&gt;
&lt;li&gt;新增文章内分页功能&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;18.10.02.1
&lt;ul&gt;
&lt;li&gt;增添了图片排列功能&lt;/li&gt;
&lt;li&gt;新增点击图片放大功能&lt;/li&gt;
&lt;li&gt;修改了标题显示样式&lt;/li&gt;
&lt;li&gt;美化了显示更多内容按钮&lt;/li&gt;
&lt;li&gt;新增代码行号显示&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;18.08.30.1
&lt;ul&gt;
&lt;li&gt;微改了代码样式（一般人看不出来区别）&lt;/li&gt;
&lt;li&gt;评论 pjax&lt;/li&gt;
&lt;li&gt;无序列表默认为收起状态&lt;/li&gt;
&lt;li&gt;为每一个标题加上了一个 ID&lt;/li&gt;
&lt;li&gt;新增愿望单功能&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;中间部分丢失&lt;/li&gt;
&lt;li&gt;18.01.01.1
&lt;ul&gt;
&lt;li&gt;更换 bootstrap material design 为 mdui&lt;/li&gt;
&lt;li&gt;背景色调整&lt;/li&gt;
&lt;li&gt;日记功能（未完工）&lt;/li&gt;
&lt;li&gt;markdown 细节调整&lt;/li&gt;
&lt;li&gt;评论现实 UA&lt;/li&gt;
&lt;li&gt;我忘记了&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>post</category></item><item><title>暑假！结束！</title><link>https://nexmoe.com/zh/1195</link><guid isPermaLink="true">https://nexmoe.com/zh/1195</guid><pubDate>Sat, 08 Sep 2018 20:13:00 GMT</pubDate><content:encoded>&lt;p&gt;真是过了一个散漫、肥宅、毫无意义的暑假。
暑假作业的作文题目是遗憾，我觉得这个暑假也是挺遗憾的。
&lt;strong&gt;流量预警&lt;/strong&gt;
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;就用这首歌来告别暑假吧。&lt;/p&gt;
&lt;p&gt;网易云音乐 ID：4078631&lt;/p&gt;
&lt;h2&gt;去了一些有趣/没趣的地方&lt;/h2&gt;
&lt;p&gt;放假刚开始的几个星期是最充实的几个星期，每天都早期吃早餐（因为早餐真的好次),每天晚上都会约几个人一起进行长距离骑行。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;骑行目的地
&lt;ul&gt;
&lt;li&gt;某色一中&lt;/li&gt;
&lt;li&gt;某石一中&lt;/li&gt;
&lt;li&gt;人民广场&lt;/li&gt;
&lt;li&gt;某石北站&lt;/li&gt;
&lt;li&gt;北纬广场&lt;/li&gt;
&lt;li&gt;国家级某公园&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;后来的 7 月份，天天熬夜，时不时通宵，不是看番就是看电影然后就是打游戏。&lt;/p&gt;
&lt;p&gt;然后到了 8 月份，本来准备 7 月份的旅游才开始。
原本打算去武汉 3 天，被改成了去广州，于是打算去广州 5 天，被强行拉成 11 天，然后回来的时候去了 2 天武汉。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;计划全被打乱真的让人很生气啊！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;想去没去成的地方
&lt;ul&gt;
&lt;li&gt;世界之窗&lt;/li&gt;
&lt;li&gt;武汉大学&lt;/li&gt;
&lt;li&gt;广州某处动物园&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;旅游去过的地方
&lt;ul&gt;
&lt;li&gt;广州塔&lt;/li&gt;
&lt;li&gt;珠江边&lt;/li&gt;
&lt;li&gt;珠海边&lt;/li&gt;
&lt;li&gt;孙中山故居&lt;/li&gt;
&lt;li&gt;某收门票公园（里面有清明上河图&lt;/li&gt;
&lt;li&gt;某石北站&lt;/li&gt;
&lt;li&gt;武汉站&lt;/li&gt;
&lt;li&gt;小榄站&lt;/li&gt;
&lt;li&gt;广州站&lt;/li&gt;
&lt;li&gt;广州地铁&lt;/li&gt;
&lt;li&gt;武汉地铁&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以下皆由小米 6 随手拍摄。&lt;/p&gt;
&lt;h4&gt;广州&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a59551a4d8.jpg&quot; alt=&quot;珠江&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a6ab761262.jpg&quot; alt=&quot;珠江&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a5994b6e28.jpg&quot; alt=&quot;某收门票公园&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a5994b6e28.jpg&quot; alt=&quot;某收门票公园&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a5c8c34439.jpg&quot; alt=&quot;某收门票公园&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a59d5c50f3.jpg&quot; alt=&quot;珠海&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a5c8c38a3f.jpg&quot; alt=&quot;高铁上&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a95c57c988.jpg&quot; alt=&quot;IMG_20180810_174621.jpg&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a95c721f6f.jpg&quot; alt=&quot;IMG_20180811_125032.jpg&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a95c87f8c2.jpg&quot; alt=&quot;IMG_20180811_135904.jpg&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a95c955002.jpg&quot; alt=&quot;IMG_20180811_140602.jpg&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a95c96d394.jpg&quot; alt=&quot;IMG_20180814_114559.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a95c9aa2d9.jpg&quot; alt=&quot;IMG_20180814_114741.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a95c9cd5b6.jpg&quot; alt=&quot;IMG_20180816_162243.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a95c9d1567.jpg&quot; alt=&quot;IMG_20180816_161133.jpg&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a95cfc342e.jpg&quot; alt=&quot;IMG_20180816_171325.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a9625e5775.jpg&quot; alt=&quot;IMG_20180816_213902.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a95d0077fb.jpg&quot; alt=&quot;IMG_20180822_113242.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a95d05f957.jpg&quot; alt=&quot;IMG_20180822_114951.jpg&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;武汉&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a6d6f8aa42.jpg&quot; alt=&quot;IMG_20180823_170604 (1).jpg&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a6cd0ec124.jpg&quot; alt=&quot;IMG_20180823_170137.jpg&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a6cd015b59.jpg&quot; alt=&quot;IMG_20180824_231220.jpg&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a6cd0f066b.jpg&quot; alt=&quot;IMG_20180824_120512.jpg&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a6cd100651.jpg&quot; alt=&quot;IMG_20180823_153751.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b8a6cd102c4e.jpg&quot; alt=&quot;IMG_20180823_154336.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;由于很想看看武大，但是条件不允许，所以云游了一边武大。真的大！&lt;/p&gt;
&lt;h2&gt;吃了一些好吃/难吃的东西&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b303233e0.jpg&quot; alt=&quot;IMG_20180814_211315.jpg&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3033b88a.jpg&quot; alt=&quot;IMG_20180818_143558.jpg&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b35d5af01.jpg&quot; alt=&quot;IMG_20180812_135907.jpg&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b35d5c64d.jpg&quot; alt=&quot;IMG_20180810_222335.jpg&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b35d29e8d.jpg&quot; alt=&quot;IMG_20180815_202432.jpg&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b35d59ce9.jpg&quot; alt=&quot;IMG_20180812_141342.jpg&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b35d72cae.jpg&quot; alt=&quot;IMG_20180815_200153.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b35d71214.jpg&quot; alt=&quot;IMG_20180815_130107.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b35d71818.jpg&quot; alt=&quot;IMG_20180814_131453.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b35d731af.jpg&quot; alt=&quot;IMG_20180815_125459_1.jpg&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b35d76c1e.jpg&quot; alt=&quot;IMG_20180816_104856.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b395ce42c.jpg&quot; alt=&quot;IMG_20180816_182405.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b395f30ac.jpg&quot; alt=&quot;IMG_20180816_182408.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b4798f933.jpg&quot; alt=&quot;IMG_20180823_165741.jpg&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3ccab6a9.jpg&quot; alt=&quot;IMG_20180817_202018.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3ccb2cf5.jpg&quot; alt=&quot;IMG_20180822_204626.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3ccedaaf.jpg&quot; alt=&quot;IMG_20180822_204334.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3ccef361.jpg&quot; alt=&quot;IMG_20180817_202014.jpg&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3cd0ab57.jpg&quot; alt=&quot;IMG_20180822_204353.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3cd0b08a.jpg&quot; alt=&quot;IMG_20180817_202324.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3cd1ea8e.jpg&quot; alt=&quot;IMG_20180822_204444.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3ce0ade6.jpg&quot; alt=&quot;IMG_20180823_091935.jpg&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3ce5859d.jpg&quot; alt=&quot;IMG_20180824_152839.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3df97044.jpg&quot; alt=&quot;IMG_20180824_170251.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3df9e61a.jpg&quot; alt=&quot;IMG_20180824_162006.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3df9ed3d.jpg&quot; alt=&quot;IMG_20180824_170254.jpg&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%9A%91%E5%81%87%EF%BC%81%E7%BB%93%E6%9D%9F%EF%BC%81/5b93b3dfa04e9.jpg&quot; alt=&quot;IMG_20180824_153533.jpg&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded><category>post</category></item><item><title>只要七行，解决浏览器的文本复制问题</title><link>https://nexmoe.com/zh/1173</link><guid isPermaLink="true">https://nexmoe.com/zh/1173</guid><pubDate>Sat, 04 Aug 2018 20:21:00 GMT</pubDate><content:encoded>&lt;p&gt;解决 clipboardData is not defined
兼容 Chrome 和 Firefox&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;一直想给导航添加一个结果复制到剪切板的功能，但是百度了很久，并没有找到解决方案，各种 jQuery 库也不满足我的需求。&lt;/p&gt;
&lt;p&gt;我想要一个直接输入文本，并复制到剪切板的功能。&lt;/p&gt;
&lt;p&gt;于是乎我就自己撸了 7 行 JavaScript（基于 jQuery）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;function setCopy(txt) {
    $(&apos;body&apos;).append(&apos;&amp;lt;textarea id=&quot;copy&quot; style=&quot;height: 0;width: 0;border: 0;opacity:0;&quot;&amp;gt;&apos;+txt+&apos;&amp;lt;/textarea&amp;gt;&apos;);
    $(&apos;#copy&apos;).select();
    document.execCommand(&quot;Copy&quot;);
    $(&apos;#copy&apos;).remove();
    alert(&quot;复制成功！&quot;);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;使用时只需要调用 setCopy() 就行了&lt;/p&gt;
&lt;p&gt;（！该调用方式！不适用于 Firefox）比如直接在 &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; 中使用&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;href=&quot;https://nexmoe.com/JavaScript:setCopy(&quot;1533384805&apos;);&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;（该调用方式适用于 Firefox）更介意使用&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;onclick=&quot;setCopy(&apos;1533387161&apos;);&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E5%8F%AA%E8%A6%81%E4%B8%83%E8%A1%8C%EF%BC%8C%E8%A7%A3%E5%86%B3%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E6%96%87%E6%9C%AC%E5%A4%8D%E5%88%B6%E9%97%AE%E9%A2%98/5b84006897efd.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Cat UI For Angel</title><link>https://nexmoe.com/zh/products/cat-ui-for-angel</link><guid isPermaLink="true">https://nexmoe.com/zh/products/cat-ui-for-angel</guid><pubDate>Sun, 22 Apr 2018 05:00:59 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/5adb68b72db00.CsrKJffX.png&quot; alt=&quot;Cat UI For Angel&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/cat-ui-for-angel&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/5adb68b72db00.CsrKJffX.png" length="231371" type="image/png"/></item><item><title>Cat UI 1.4 For Angel（免费版）</title><link>https://nexmoe.com/zh/1111</link><guid isPermaLink="true">https://nexmoe.com/zh/1111</guid><pubDate>Sun, 22 Apr 2018 00:50:00 GMT</pubDate><content:encoded>&lt;p&gt;Waiting for the people who is angel to me.
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;Waiting for the people who is angel to me.&lt;/p&gt;
&lt;p&gt;网易云音乐 ID：1645112&lt;/p&gt;
&lt;h2&gt;版权&lt;/h2&gt;
&lt;p&gt;Apache&lt;/p&gt;
&lt;h2&gt;Github&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://img.shields.io/github/stars/theme-nexmoe/typecho-theme-catui-reissue.svg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/forks/theme-nexmoe/typecho-theme-catui-reissue.svg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/issues/theme-nexmoe/typecho-theme-catui-reissue.svg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/last-commit/theme-nexmoe/typecho-theme-catui-reissue.svg?label=commits&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://img.shields.io/github/license/theme-nexmoe/typecho-theme-catui-reissue.svg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;展示站点&lt;/h2&gt;
&lt;p&gt;https://nexmoe.com/
欢迎使用本模板后在评论区提供展示链接。&lt;/p&gt;
&lt;h2&gt;Github&lt;/h2&gt;
&lt;p&gt;欢迎 Star
https://github.com/theme-nexmoe/typecho-theme-catui-reissue&lt;/p&gt;
&lt;h2&gt;自定义文章头图&lt;/h2&gt;
&lt;p&gt;需要先在 后台 → 设置外观 → 喵咪の主人的 Cover 模式 中启用 &lt;code&gt;自定义Cover&lt;/code&gt;
然后在编辑文章中的 &lt;code&gt;自定义字段&lt;/code&gt; 内可设置&lt;/p&gt;
&lt;h2&gt;预览图&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/CatUI1.4ForAngel%EF%BC%88%E5%85%8D%E8%B4%B9%E7%89%88%EF%BC%89/5adb68b4800c3.jpg&quot; alt=&quot;5adb68b4800c3&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/CatUI1.4ForAngel%EF%BC%88%E5%85%8D%E8%B4%B9%E7%89%88%EF%BC%89/5adb68b70e5c9.png&quot; alt=&quot;5adb68b70e5c9&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/CatUI1.4ForAngel%EF%BC%88%E5%85%8D%E8%B4%B9%E7%89%88%EF%BC%89/5adb68b72db00.png&quot; alt=&quot;5adb68b72db00&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>新年红包不送钱</title><link>https://nexmoe.com/zh/1070</link><guid isPermaLink="true">https://nexmoe.com/zh/1070</guid><pubDate>Fri, 16 Feb 2018 14:14:00 GMT</pubDate><content:encoded>&lt;p&gt;大年初一，苟年终于到了。今天博主也要来送红包（虽然是个苦逼学生党）。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;网易云音乐 ID：1645112&lt;/p&gt;
&lt;h4&gt;红包内容&lt;/h4&gt;
&lt;p&gt;价值 &lt;s&gt;36￥&lt;/s&gt; 9￥ 的 To The Moon 一份。&lt;/p&gt;
&lt;h4&gt;领取方式&lt;/h4&gt;
&lt;p&gt;Steam 搜索用户 ID：chainwon，加好友后私聊领取。
作为穷逼的学生党，一共 5 份（已送 5 份）&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;真的是款好游戏，希望获赠者能好好玩玩。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;话说&lt;/h4&gt;
&lt;p&gt;有什么好网站来提交收录啊
&lt;a href=&quot;https://console.chainwon.com/public/navigation&quot;&gt;https://console.chainwon.com/public/navigation&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;已送出&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;排序&lt;/th&gt;
&lt;th&gt;昵称&lt;/th&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;爆裂魔法&lt;/td&gt;
&lt;td&gt;76561198359754018&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;若能绽放光芒&lt;/td&gt;
&lt;td&gt;76561198298681533&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;天水一梦&lt;/td&gt;
&lt;td&gt;serilcandy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;鲍小螺&lt;/td&gt;
&lt;td&gt;dreamer-paul&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;鬼刀&lt;/td&gt;
&lt;td&gt;76561198372586471&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;To The Moon&lt;/h4&gt;
&lt;p&gt;这是一个讲述两个医生借由改变记忆为弥留之际的人们完成他们人生最后愿望的故事。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;虽然博主只玩了一个多小时，但博主觉得这绝壁是一个会让人视线模糊的辣鸡游戏。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%96%B0%E5%B9%B4%E7%BA%A2%E5%8C%85%E4%B8%8D%E9%80%81%E9%92%B1/3724219798.jpg&quot; alt=&quot;3724219798&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%96%B0%E5%B9%B4%E7%BA%A2%E5%8C%85%E4%B8%8D%E9%80%81%E9%92%B1/1677825299.jpg&quot; alt=&quot;1677825299&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E6%96%B0%E5%B9%B4%E7%BA%A2%E5%8C%85%E4%B8%8D%E9%80%81%E9%92%B1/3563677343.jpg&quot; alt=&quot;3563677343&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>可能是 Windows 上最漂亮的输入法</title><link>https://nexmoe.com/zh/1047</link><guid isPermaLink="true">https://nexmoe.com/zh/1047</guid><pubDate>Sat, 13 Jan 2018 20:00:00 GMT</pubDate><content:encoded>&lt;p&gt;一个基于 QQ 拼音 的输入法皮肤，可能是 Windows 上最漂亮的输入法。
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h4&gt;版权&lt;/h4&gt;
&lt;p&gt;作者：淡墨
QQ：326618362
邮箱：vistahack@126.com&lt;/p&gt;
&lt;h4&gt;介绍&lt;/h4&gt;
&lt;p&gt;青出于蓝~&lt;/p&gt;
&lt;h4&gt;需要&lt;/h4&gt;
&lt;p&gt;这是一个 &lt;code&gt;QQ拼音&lt;/code&gt; 的输入法皮肤，所以需要安装 QQ 拼音。
官网链接：http://qq.pinyin.cn/
输入法皮肤：http://skin.qq.pinyin.cn/skin_detail?skin_id=3746387701
博主的单栏强迫症修正版：https://cloud.i.chainwon.com/index.php?share/file&amp;amp;user=1&amp;amp;sid=CYdgTVBn&lt;/p&gt;
&lt;h4&gt;预览图&lt;/h4&gt;
&lt;p&gt;单栏模式&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E5%8F%AF%E8%83%BD%E6%98%AF-Windows-%E4%B8%8A%E6%9C%80%E6%BC%82%E4%BA%AE%E7%9A%84%E8%BE%93%E5%85%A5%E6%B3%95/5b840133ac8a5.png&quot; alt=&quot;5b840133ac8a5&quot; /&gt;&lt;/p&gt;
&lt;p&gt;默认模式&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E5%8F%AF%E8%83%BD%E6%98%AF-Windows-%E4%B8%8A%E6%9C%80%E6%BC%82%E4%BA%AE%E7%9A%84%E8%BE%93%E5%85%A5%E6%B3%95/5b84014dd3780.png&quot; alt=&quot;5b84014dd3780&quot; /&gt;&lt;/p&gt;
&lt;p&gt;竖排模式&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E5%8F%AF%E8%83%BD%E6%98%AF-Windows-%E4%B8%8A%E6%9C%80%E6%BC%82%E4%BA%AE%E7%9A%84%E8%BE%93%E5%85%A5%E6%B3%95/5b84016d0ed89.png&quot; alt=&quot;5b84016d0ed89&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E5%8F%AF%E8%83%BD%E6%98%AF-Windows-%E4%B8%8A%E6%9C%80%E6%BC%82%E4%BA%AE%E7%9A%84%E8%BE%93%E5%85%A5%E6%B3%95/5b8401836c49b.png&quot; alt=&quot;5b8401836c49b&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;我的设置&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E5%8F%AF%E8%83%BD%E6%98%AF-Windows-%E4%B8%8A%E6%9C%80%E6%BC%82%E4%BA%AE%E7%9A%84%E8%BE%93%E5%85%A5%E6%B3%95/5b840196768dd.png&quot; alt=&quot;5b840196768dd&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Ending！2017！</title><link>https://nexmoe.com/zh/999</link><guid isPermaLink="true">https://nexmoe.com/zh/999</guid><pubDate>Sun, 31 Dec 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;As a lonely star shining far and...&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;网易云音乐 ID：404784667&lt;/p&gt;
&lt;p&gt;转眼过去 2017 年就过去了，2016 年的梦想还是有很多没完成呢，不能一路上遇到了许多美好的事情。&lt;/p&gt;
&lt;h4&gt;我看到了这样的美丽风景&lt;/h4&gt;
&lt;p&gt;一路上我越来越爱音乐，学习了 &lt;code&gt;Synthesia&lt;/code&gt; 和 &lt;code&gt;尤克里里&lt;/code&gt; 虽然算不上很厉害，但很愉快。
也遇到了许许多多有趣的人，一些很喜欢体育的人，一些为我的故事所着迷的，还有一帮难兄难弟，和他们在一起，学习不再是痛苦无味的了。&lt;/p&gt;
&lt;h4&gt;去年的梦想完成了那些？&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;一个独特导航（已完成）&lt;/li&gt;
&lt;li&gt;一个独特的壁纸站（已完成）&lt;/li&gt;
&lt;li&gt;考试进年级前 50（已完成，18）&lt;/li&gt;
&lt;li&gt;英语 110+（未完成，唉，可惜了。）&lt;/li&gt;
&lt;li&gt;玩耍 Ubuntu（并没有，deepin 都没吃上，而且硬盘还坏了）&lt;/li&gt;
&lt;li&gt;网站不亏（还是亏了，不过至少有一点收入）&lt;/li&gt;
&lt;li&gt;javascript 及 jquery 的深入，PHP 的完美使用（jquery 深入不得，有毒，PHP 提升了不少）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;接下来，是我对来年的展望！&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;和一个很了解电影的人做知己&lt;/li&gt;
&lt;li&gt;和一个很了解音乐的人做知己&lt;/li&gt;
&lt;li&gt;和一个很了解美术的人做知己&lt;/li&gt;
&lt;li&gt;和一个很了解科技的人做知己&lt;/li&gt;
&lt;li&gt;入手一块 &lt;code&gt;闪迪 240G SSD&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;高中英语 130+&lt;/li&gt;
&lt;li&gt;高中数学 115+ （已完成 136）&lt;/li&gt;
&lt;li&gt;高中语文苟到 100&lt;/li&gt;
&lt;li&gt;希望组织能够强大起来&lt;/li&gt;
&lt;li&gt;希望家人能够好好的生活着&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;最后的最后，我要感谢很多人&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;感谢不留名赞助我的人&lt;/li&gt;
&lt;li&gt;感谢使用我的程序的人&lt;/li&gt;
&lt;li&gt;感谢买我 &lt;code&gt;typecho&lt;/code&gt; 主题的&lt;/li&gt;
&lt;li&gt;感谢那帮烂兄烂弟&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;2018-01-01 00:16:38 星期一&lt;/h4&gt;
&lt;p&gt;给友联所有的人都发了新年祝福，希望 2018 年不要忘记我。&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Cat UI For WordPress Base On Twenty Seventeen</title><link>https://nexmoe.com/zh/928</link><guid isPermaLink="true">https://nexmoe.com/zh/928</guid><pubDate>Sat, 28 Oct 2017 19:39:00 GMT</pubDate><content:encoded>&lt;p&gt;一个即兴之作。&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;源码&lt;/h2&gt;
&lt;p&gt;https://github.com/nexmoe/wordpress-theme-twenty-teventeen-plus&lt;/p&gt;
&lt;h2&gt;截图&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/Cat-UI-For-WordPress-Base-On-Twenty-Seventeen/psb.png&quot; alt=&quot;psb (2)&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/Cat-UI-For-WordPress-Base-On-Twenty-Seventeen/screenshot.png&quot; alt=&quot;screenshot&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Cat UI For WordPress</title><link>https://nexmoe.com/zh/products/cat-ui-for-wordpress</link><guid isPermaLink="true">https://nexmoe.com/zh/products/cat-ui-for-wordpress</guid><pubDate>Sat, 28 Oct 2017 04:55:22 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/screenshot.DHXqFhLF.png&quot; alt=&quot;Cat UI For WordPress&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/cat-ui-for-wordpress&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/screenshot.DHXqFhLF.png" length="366229" type="image/png"/></item><item><title>开源程序：觅思树洞</title><link>https://nexmoe.com/zh/872</link><guid isPermaLink="true">https://nexmoe.com/zh/872</guid><pubDate>Fri, 06 Oct 2017 22:10:00 GMT</pubDate><content:encoded>&lt;p&gt;觅思树洞，一个我一下午的作品。
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;版权 MIT&lt;/h2&gt;
&lt;p&gt;只需要留作者版权就行了。
感谢版权狗，作者已停更。&lt;/p&gt;
&lt;h2&gt;相关链接&lt;/h2&gt;
&lt;p&gt;Github: https://github.com/mixcm/lovewall/releases&lt;/p&gt;
&lt;h2&gt;展示图&lt;/h2&gt;
&lt;h4&gt;首页&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E5%BC%80%E6%BA%90%E7%A8%8B%E5%BA%8F%EF%BC%9A%E8%A7%85%E6%80%9D%E6%A0%91%E6%B4%9E/392170353.png&quot; alt=&quot;snipaste20171006_220536.png&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;提交表单&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E5%BC%80%E6%BA%90%E7%A8%8B%E5%BA%8F%EF%BC%9A%E8%A7%85%E6%80%9D%E6%A0%91%E6%B4%9E/1628280214.png&quot; alt=&quot;snipaste20171006_220544.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;伪静态&lt;/h2&gt;
&lt;h4&gt;Apache&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;
RewriteEngine On
RewriteBase /
RewriteRule ^mous/page/(.*)$ /index.php?mous=&amp;amp;page=$1
RewriteRule ^mous/(.*)/page/(.*)$ /index.php?mous=$1&amp;amp;page=$2
RewriteRule ^mous/(.*)$ /index.php?mous=$1&amp;amp;page=1
RewriteRule ^pages/(.*)$ /index.php?pages=$1
&amp;lt;/IfModule&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Nginx&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;rewrite ^/mous/page/(.*)$ /index.php?mous=&amp;amp;page=$1;
rewrite ^/mous/(.*)/page/(.*)$ /index.php?mous=$1&amp;amp;page=$2;
rewrite ^/mous/(.*)$ /index.php?mous=$1&amp;amp;page=1;
rewrite ^/pages/(.*)$ /index.php?pages=$1;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;数据库说明&lt;/h2&gt;
&lt;h4&gt;导入数据库&lt;/h4&gt;
&lt;p&gt;先将根目录内的 options.sql 和 contents.sql 导入数据库&lt;/p&gt;
&lt;h4&gt;连接数据库&lt;/h4&gt;
&lt;p&gt;在 /require/function.php 第三行 更改为自己的数据库信息&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&apos;mysql&apos;=&amp;gt;&apos;localhost&apos;,	//数据库地址
&apos;name&apos;=&amp;gt;&apos;root&apos;,		//数据库登录名
&apos;password&apos;=&amp;gt;&apos;&apos;,		//数据库密码
&apos;dbname&apos;=&amp;gt;&apos;lovewall&apos;	//数据库名
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;网站信息更改&lt;/h4&gt;
&lt;p&gt;在数据库中的表 &lt;strong&gt;options&lt;/strong&gt; 中可以对对应项进行更改。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/%E5%BC%80%E6%BA%90%E7%A8%8B%E5%BA%8F%EF%BC%9A%E8%A7%85%E6%80%9D%E6%A0%91%E6%B4%9E/3571750175.png&quot; alt=&quot;snipaste20171006_220927.png&quot; /&gt;&lt;/p&gt;
</content:encoded><category>post</category></item><item><title>Typecho 简洁单栏主题 Cat UI 2.0</title><link>https://nexmoe.com/zh/catui</link><guid isPermaLink="true">https://nexmoe.com/zh/catui</guid><pubDate>Wed, 05 Jul 2017 19:34:00 GMT</pubDate><content:encoded>&lt;p&gt;猫&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;https://github.com/theme-nexmoe/catui-reissue&lt;/p&gt;
&lt;h2&gt;预览图片&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Typecho%E7%AE%80%E6%B4%81%E5%8D%95%E6%A0%8F%E4%B8%BB%E9%A2%98Cat-UI-2-0/3772187712.png&quot; alt=&quot;3772187712&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Typecho%E7%AE%80%E6%B4%81%E5%8D%95%E6%A0%8F%E4%B8%BB%E9%A2%98Cat-UI-2-0/1565556288.png&quot; alt=&quot;1565556288&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Typecho%E7%AE%80%E6%B4%81%E5%8D%95%E6%A0%8F%E4%B8%BB%E9%A2%98Cat-UI-2-0/3768132762.png&quot; alt=&quot;snipaste20170705_192419.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Typecho%E7%AE%80%E6%B4%81%E5%8D%95%E6%A0%8F%E4%B8%BB%E9%A2%98Cat-UI-2-0/1127620322.png&quot; alt=&quot;snipaste20170705_192436.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Typecho%E7%AE%80%E6%B4%81%E5%8D%95%E6%A0%8F%E4%B8%BB%E9%A2%98Cat-UI-2-0/3196158091.png&quot; alt=&quot;snipaste20170705_192521.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Typecho%E7%AE%80%E6%B4%81%E5%8D%95%E6%A0%8F%E4%B8%BB%E9%A2%98Cat-UI-2-0/1638405287.png&quot; alt=&quot;snipaste20170705_192542.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/Typecho%E7%AE%80%E6%B4%81%E5%8D%95%E6%A0%8F%E4%B8%BB%E9%A2%98Cat-UI-2-0/2848428221.png&quot; alt=&quot;snipaste20170705_193255.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;在这下载&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Github: https://github.com/theme-nexmoe/typecho-theme-catui&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;其他说明&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;此模板仅仅在 HTTPS 环境下测试，非 HTTPS 环境不明。&lt;/li&gt;
&lt;li&gt;Typecho 1.0.14.10.10&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;复刻版&lt;/h2&gt;
&lt;p&gt;https://nexmoe.com/1111.html&lt;/p&gt;
&lt;h2&gt;更新日志&lt;/h2&gt;
&lt;h4&gt;2017-07-05 更新 2.0 版本&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;全新设计&lt;/li&gt;
&lt;li&gt;全新 markdown&lt;/li&gt;
&lt;li&gt;更加的简洁……&lt;/li&gt;
&lt;li&gt;新版 material&lt;/li&gt;
&lt;li&gt;结构更新……&lt;/li&gt;
&lt;li&gt;仍然是单栏！&lt;/li&gt;
&lt;li&gt;烧死情侣&lt;/li&gt;
&lt;li&gt;代码几乎全部重写&lt;/li&gt;
&lt;li&gt;QQ 群：482634342 不定时放预览图&lt;/li&gt;
&lt;li&gt;评论框优化&lt;/li&gt;
&lt;li&gt;评论框表情&lt;/li&gt;
&lt;li&gt;文章表情&lt;/li&gt;
&lt;li&gt;全新边栏&lt;/li&gt;
&lt;li&gt;适配手机&lt;/li&gt;
&lt;li&gt;适配大屏&lt;/li&gt;
&lt;li&gt;赞赏与二维码功能待更新……&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;2017-04-15 更新 1.3 版本&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&amp;lt;span style=&quot;color:red;&quot;&amp;gt;这个版本绝非诚意之作，你们还是乖乖等 2.0 版本好了，2.0 版本界面会大改。。。&amp;lt;/span&amp;gt;&lt;/li&gt;
&lt;li&gt;修改模板最大宽度&lt;/li&gt;
&lt;li&gt;使用 Typecho 原生评论框&lt;/li&gt;
&lt;li&gt;新增“情侣模式”&lt;/li&gt;
&lt;li&gt;一些细节的完善&lt;/li&gt;
&lt;li&gt;标签云，最新评论，文章等。。。&lt;/li&gt;
&lt;li&gt;CDN 缓存了 1.2 版本的更新包，尴尬了。。。。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;2017-03-04 更新 1.2 版本“See you next time，my little cat.”&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&amp;lt;span style=&quot;color:red;&quot;&amp;gt;本次为本学期最后一次周期性更新，中考前不会频繁更新，也可能不更新。&amp;lt;/span&amp;gt;&lt;/li&gt;
&lt;li&gt;新增赞助按钮&lt;/li&gt;
&lt;li&gt;新增文章二维码&lt;/li&gt;
&lt;li&gt;修复“评论的时候发现一行如果写的太长，那个发射按钮框会挡住文字”&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;2017-02-25 更新 1.1 版本&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;新 header&lt;/li&gt;
&lt;li&gt;新增赞助信息（支付宝、QQ、微信）。&lt;/li&gt;
&lt;li&gt;更多色彩的 Cover&lt;/li&gt;
&lt;li&gt;独立页面的赞助自定义模板&lt;/li&gt;
&lt;li&gt;修复导航栏后台跳转错误&lt;/li&gt;
&lt;li&gt;不再需要插件支持来统计浏览次数&lt;/li&gt;
&lt;li&gt;更加像猫&lt;/li&gt;
&lt;li&gt;上一篇及下一篇文章功能&lt;/li&gt;
&lt;li&gt;萌萌哒的后台说明&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;2017-02-17 更新 1.0 版本&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;HTML cat 标签&lt;/li&gt;
&lt;li&gt;tags、搜索、多说、封面图、代码高亮、分享等&lt;/li&gt;
&lt;li&gt;新增主题后台，可自定义头像及多说等……&lt;/li&gt;
&lt;li&gt;后台新增最新版本检测&lt;/li&gt;
&lt;li&gt;新增 404 页面&lt;/li&gt;
&lt;li&gt;新增 Cover 新样式&lt;/li&gt;
&lt;/ol&gt;
</content:encoded><category>post</category></item><item><title>今天更换友链的方式为 Markdown 语法，可是发生了可怕的事情！</title><link>https://nexmoe.com/zh/614</link><guid isPermaLink="true">https://nexmoe.com/zh/614</guid><pubDate>Thu, 29 Jun 2017 15:10:00 GMT</pubDate><content:encoded>&lt;p&gt;由于 HTML 代码的格式太乱，于是我便想跟换为 Markdown 的形式，然后我借鉴了 Jrotty 的代码。但是 Jrotty 的代码没有达到我想要的效果，于是我折腾了半天，最后写的差不多了，却发生了可怕的事情……
&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h4&gt;已压缩过的 HTML&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;分享互联网的宝藏&quot;href=&quot;https://aoaoao.me/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrawpcvjnj302s02sweb.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;树洞&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;一只野生的自由Geek&quot;href=&quot;https://blog.viosey.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrb5kz8dpj304g04gglj.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Viosey&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;热爱技术和生活的程序员&quot;href=&quot;http://www.yelook.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbj1a9tcj302s02sjr7.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;有野出没&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;用code写出对二次元的热爱！&quot;href=&quot;http://853.bronya.net/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbl6j81cj30hs0hs400.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Sonic853&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;ペロペロ&quot;href=&quot;https://www.anotherhome.net/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrblwpndyj309w09wt93.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;DIYGod&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;只是一些我的胡说八道罢了&quot;href=&quot;http://blog.jinkunchen.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbn4gkk1j30hs0hsgm9.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;卷卷有空格&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;是萝莉控真是太好了&quot;href=&quot;http://siitake.cn/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbqj62n0j3074074q3n.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;香菇社长&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;活靠幻想，技术靠转载！&quot;href=&quot;https://qqdie.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbrcgv0bj30b40b4408.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Jrotty&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot; 一只蒟蒻的日常&quot;href=&quot;http://wnjxyk.cn/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbs6h3yuj30gn0gm75r.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;WNJXYK&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;兰陵の废宅基地&quot;href=&quot;http://blog.thkira.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbteserej30k00k0gn8.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;兰陵 DA☆ZE&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;就好像看透了我的心思一般，你总是突然出现……&quot;href=&quot;https://www.dreamwings.cn/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbukyc33j308c08c74j.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;千千&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;一个喜欢捣鼓前端的产品汪。&quot;href=&quot;http://shawnzeng.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbvj35yij30cj0cjmyl.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Shawn&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;萝莉即是一切&quot;href=&quot;https://www.ailoli.org/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbsgaz6xf8j30go0godh5.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Ailoli&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;2333333333333&quot;href=&quot;http://hi-paul.space&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fc0i6dwd86j30e10e1gof.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;保罗&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;喜欢萌妹の变态鹅&quot;href=&quot;https://blog.conoha.vip/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fc24txdskgj30g40g477s.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Moehentai&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;Troy的星球&quot;href=&quot;https://itroy.cc&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fc3w9wldgxj30e80e8e1c.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Troy&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;幻想主義者&quot;href=&quot;https://www.54yt.net/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fcccka7mfsj308m08mjrz.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;玉兔&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;博客主要是记录日常生活，开发过程有用的东西，还有制作成果展示等等，欢迎访问。&quot;href=&quot;https://www.fghrsh.net/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fcmi1v7bpyj30go0go177.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;FGHRSH&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;超级迷茫中。。。&quot;href=&quot;https://hran.me/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fcuxwll0lpj30b40b4q3k.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Hran&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;私たちはずっとμ&apos;s！！！！！！！！&quot;href=&quot;https://kotori.love/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fcvsloueiuj308c08caa7.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;ココロ&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;我有一壶酒，足矣慰风霜。&quot;href=&quot;https://sa.bi/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fcvt6nv3cvj304q04qjra.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Dragonborn&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;零三青年，只会作死，喜欢喝茶、中二、敲代码❤&quot;href=&quot;https://idiot.moe/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/a15b4afegy1fd3yir3bo0j20b40b43ya.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;蔡锶铎&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;你不爱我了QAQ&quot;href=&quot;https://www.iqi7.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/a15b4afegy1fd3ze85p3yj20hs0hsq3e.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;七夏浅笑&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;次元隙小站&quot;href=&quot;http://waxxh.me/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fdovyvnq31j303903bq3s.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Waxxh&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;记录成长的点点滴滴&quot;href=&quot;http://monsterlin.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fdow0sn4qlj305k05ka9z.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;monsterlin&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;泛着旧时记忆的空白扉页&quot;href=&quot;http://www.0page.org/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fdq5jy7copj3046046gmo.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;0page&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;人生来就不是为了被打败的&quot;href=&quot;http://ttt.lc/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/6513ad21jw8f5zcn0uk34j20kv0kv3zz.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;桃先森&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;404 NOT FOUND&quot;href=&quot;https://xiaolin.in/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fec4otg2xej30dw0dwwfo.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;小霖&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;把设计师气到脑中风2333∠( ᐛ 」∠)＿&quot;href=&quot;https://www.metheno.net/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1felao15513j3064064glu.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;metheno&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;永远相信，美好的事情即将发生&quot;href=&quot;https://blog.lim-light.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qly1fenes19futj30hs0hsmy7.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;黎明余光&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;喵～&quot;href=&quot;https://blog.taku.life/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006MhmB7gy1ff2s4jq0qsj3028028744.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;ギリ猫&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;努力的成为一个有趣的人&quot;href=&quot;http://neverlove.me&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006MhmB7gy1fh19u4rfa0j305k05k404.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;不才博客&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;这是很好的一生&quot;href=&quot;https://www.qqstop.cn/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006MhmB7gy1fh19v5rh1xj30b40b474i.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Kevan&apos;s Blog&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;暮冬时烤雪，迟夏写长信&quot;href=&quot;https://iu.tn/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006MhmB7gy1fh19wcga7lg305k05kmyk.gif&quot;&amp;gt; &amp;lt;p&amp;gt;三秋&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;聆听最初的声音，向往无尽的未来&quot;href=&quot;https://imiku.me/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1feulw1frmsj306o06oq4i.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;冰凌胧月&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;暮光博客是一个分享生活记录以及互联网技术文章的个人博客&quot;href=&quot;https://muguang.me/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006MhmB7gy1fh1at1iiubj3050050t8m.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;暮光博客&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;分享互联网的宝藏&quot;href=&quot;https://aoaoao.me/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrawpcvjnj302s02sweb.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;树洞&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;一只野生的自由Geek&quot;href=&quot;https://blog.viosey.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrb5kz8dpj304g04gglj.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Viosey&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;热爱技术和生活的程序员&quot;href=&quot;http://www.yelook.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbj1a9tcj302s02sjr7.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;有野出没&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;用code写出对二次元的热爱！&quot;href=&quot;http://853.bronya.net/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbl6j81cj30hs0hs400.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Sonic853&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;ペロペロ&quot;href=&quot;https://www.anotherhome.net/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrblwpndyj309w09wt93.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;DIYGod&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;只是一些我的胡说八道罢了&quot;href=&quot;http://blog.jinkunchen.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbn4gkk1j30hs0hsgm9.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;卷卷有空格&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;是萝莉控真是太好了&quot;href=&quot;http://siitake.cn/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbqj62n0j3074074q3n.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;香菇社长&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;活靠幻想，技术靠转载！&quot;href=&quot;https://qqdie.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbrcgv0bj30b40b4408.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Jrotty&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot; 一只蒟蒻的日常&quot;href=&quot;http://wnjxyk.cn/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbs6h3yuj30gn0gm75r.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;WNJXYK&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;兰陵の废宅基地&quot;href=&quot;http://blog.thkira.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbteserej30k00k0gn8.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;兰陵 DA☆ZE&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;就好像看透了我的心思一般，你总是突然出现……&quot;href=&quot;https://www.dreamwings.cn/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbukyc33j308c08c74j.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;千千&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;一个喜欢捣鼓前端的产品汪。&quot;href=&quot;http://shawnzeng.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbrbvj35yij30cj0cjmyl.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Shawn&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;萝莉即是一切&quot;href=&quot;https://www.ailoli.org/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgw1fbsgaz6xf8j30go0godh5.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Ailoli&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;2333333333333&quot;href=&quot;http://hi-paul.space&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fc0i6dwd86j30e10e1gof.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;保罗&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;喜欢萌妹の变态鹅&quot;href=&quot;https://blog.conoha.vip/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fc24txdskgj30g40g477s.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Moehentai&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;Troy的星球&quot;href=&quot;https://itroy.cc&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fc3w9wldgxj30e80e8e1c.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Troy&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;幻想主義者&quot;href=&quot;https://www.54yt.net/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fcccka7mfsj308m08mjrz.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;玉兔&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;博客主要是记录日常生活，开发过程有用的东西，还有制作成果展示等等，欢迎访问。&quot;href=&quot;https://www.fghrsh.net/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fcmi1v7bpyj30go0go177.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;FGHRSH&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;超级迷茫中。。。&quot;href=&quot;https://hran.me/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fcuxwll0lpj30b40b4q3k.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Hran&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;私たちはずっとμ&apos;s！！！！！！！！&quot;href=&quot;https://kotori.love/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fcvsloueiuj308c08caa7.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;ココロ&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;我有一壶酒，足矣慰风霜。&quot;href=&quot;https://sa.bi/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fcvt6nv3cvj304q04qjra.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Dragonborn&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;零三青年，只会作死，喜欢喝茶、中二、敲代码❤&quot;href=&quot;https://idiot.moe/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/a15b4afegy1fd3yir3bo0j20b40b43ya.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;蔡锶铎&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;你不爱我了QAQ&quot;href=&quot;https://www.iqi7.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/a15b4afegy1fd3ze85p3yj20hs0hsq3e.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;七夏浅笑&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;次元隙小站&quot;href=&quot;http://waxxh.me/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fdovyvnq31j303903bq3s.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Waxxh&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;记录成长的点点滴滴&quot;href=&quot;http://monsterlin.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fdow0sn4qlj305k05ka9z.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;monsterlin&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;泛着旧时记忆的空白扉页&quot;href=&quot;http://www.0page.org/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fdq5jy7copj3046046gmo.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;0page&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;人生来就不是为了被打败的&quot;href=&quot;http://ttt.lc/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/6513ad21jw8f5zcn0uk34j20kv0kv3zz.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;桃先森&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;404 NOT FOUND&quot;href=&quot;https://xiaolin.in/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1fec4otg2xej30dw0dwwfo.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;小霖&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;把设计师气到脑中风2333∠( ᐛ 」∠)＿&quot;href=&quot;https://www.metheno.net/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1felao15513j3064064glu.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;metheno&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;永远相信，美好的事情即将发生&quot;href=&quot;https://blog.lim-light.com/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qly1fenes19futj30hs0hsmy7.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;黎明余光&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;喵～&quot;href=&quot;https://blog.taku.life/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006MhmB7gy1ff2s4jq0qsj3028028744.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;ギリ猫&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;努力的成为一个有趣的人&quot;href=&quot;http://neverlove.me&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006MhmB7gy1fh19u4rfa0j305k05k404.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;不才博客&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;这是很好的一生&quot;href=&quot;https://www.qqstop.cn/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006MhmB7gy1fh19v5rh1xj30b40b474i.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;Kevan&apos;s Blog&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;暮冬时烤雪，迟夏写长信&quot;href=&quot;https://iu.tn/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006MhmB7gy1fh19wcga7lg305k05kmyk.gif&quot;&amp;gt; &amp;lt;p&amp;gt;三秋&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;聆听最初的声音，向往无尽的未来&quot;href=&quot;https://imiku.me/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006pSa7Qgy1feulw1frmsj306o06oq4i.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;冰凌胧月&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class=&quot;btn btn-raised&quot;title=&quot;暮光博客是一个分享生活记录以及互联网技术文章的个人博客&quot;href=&quot;https://muguang.me/&quot;target=&quot;_blank&quot;&amp;gt;&amp;lt;img src=&quot;https://ws1.sinaimg.cn/large/006MhmB7gy1fh1at1iiubj3050050t8m.jpg&quot;&amp;gt; &amp;lt;p&amp;gt;暮光博客&amp;lt;/p&amp;gt;&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;大概是这么壮观&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/uploads/2017/06/2837893126.png&quot; alt=&quot;snipaste20170629_151628.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;对，这是我原来的 HTML 代码，看到这，我就不乐意了，这么多让我一个一个重新手动格式化，这完全就是昧着我良心做事啊！&lt;/p&gt;
&lt;h4&gt;如何处理&lt;/h4&gt;
&lt;p&gt;于是，我把以上代码放到了名为 e.html 的文件中，然后新建了一个 zz.php (制杖)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php
    $str = file_get_contents(&quot;e.html&quot;);
    preg_match_all(&apos;/title=&quot;(.*?)&quot;href=&quot;https://nexmoe.com/(.*?)&quot;target=&quot;_blank&quot;&amp;gt;/is&apos;,$str,$array);
    preg_match_all(&apos;/&amp;lt;p&amp;gt;(.*?)&amp;lt;\/p&amp;gt;/is&apos;,$str,$array2);
    preg_match_all(&apos;/&amp;lt;img src=&quot;https://nexmoe.com/(.*?)&quot;&amp;gt;/is&apos;,$str,$array3);
    $x=0;
    while ($array[0][$x] != &apos;&apos;){
        $str = preg_replace(&apos;#title=&quot;(.*?)&quot;href=&quot;https://nexmoe.com/(.*?)&quot;target=&quot;_blank&quot;&amp;gt;#&apos;,&apos;$1&apos;, $array[0][$x]);
        $str1 = preg_replace(&apos;#title=&quot;(.*?)&quot;href=&quot;https://nexmoe.com/(.*?)&quot;target=&quot;_blank&quot;&amp;gt;#&apos;,&apos;$2&apos;, $array[0][$x]);
        $str2 = preg_replace(&apos;#&amp;lt;img src=&quot;https://nexmoe.com/(.*?)&quot;&amp;gt;#&apos;,&apos;$1&apos;, $array3[0][$x]);
        $str3 = preg_replace(&apos;#&amp;lt;p&amp;gt;(.*?)&amp;lt;\/p&amp;gt;#&apos;,&apos;$1&apos;, $array2[0][$x]);
        echo &apos;- ![&apos;.$str3.&apos;](&apos;.$str2.&apos;) [&apos;.$str3.&apos;](&apos;.$str1.&apos; &quot;&apos;.$str.&apos;&quot;)&amp;lt;br&amp;gt;&apos;.&quot;\n&quot;;
        $x++;
    }
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;结果&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/uploads/2017/06/1622308574.png&quot; alt=&quot;snipaste20170629_151530.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/images/uploads/2017/06/3581675946.png&quot; alt=&quot;snipaste20170629_151356.png&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#%E5%9B%BD%E9%99%85%E5%8C%96&quot;&gt;国际化&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#%E7%9B%B8%E7%89%87%E9%9B%86&quot;&gt;相片集&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#%E5%8F%8B%E6%83%85%E9%93%BE%E6%8E%A5&quot;&gt;友情链接&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nexmoe.com/#%E6%96%87%E7%AB%A0%E5%B0%81%E9%9D%A2%E5%9B%BE&quot;&gt;文章封面图&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;国际化&lt;/h2&gt;
&lt;p&gt;目前中文翻译较全，其他语言翻译不完全，有余力的大佬可以来贡献一下
语言文件在 languages 里，参考 &lt;code&gt;zh-CN.yml&lt;/code&gt; 进行翻译即可&lt;/p&gt;
&lt;h2&gt;相片集&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;![珠江](https://i.loli.net/2018/09/01/5b8a59551a4d8.jpg)|![珠江](https://i.loli.net/2018/09/01/5b8a6ab761262.jpg)|![某收门票公园](https://i.loli.net/2018/09/01/5b8a5994b6e28.jpg)
- | - | -
![某收门票公园](https://i.loli.net/2018/09/01/5b8a5994b6e28.jpg)|![某收门票公园](https://i.loli.net/2018/09/01/5b8a5c8c34439.jpg)|![珠海](https://i.loli.net/2018/09/01/5b8a59d5c50f3.jpg)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;原理就是在 markdown 的表格里面插入图片&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/hexo-theme-nexmoe/5b8a59551a4d8.jpg&quot; alt=&quot;珠江&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/hexo-theme-nexmoe/5b8a6ab761262.jpg&quot; alt=&quot;珠江&quot; /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/hexo-theme-nexmoe/5b8a5994b6e28.jpg&quot; alt=&quot;某收门票公园&quot; /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/hexo-theme-nexmoe/5b8a5994b6e28.jpg&quot; alt=&quot;某收门票公园&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/hexo-theme-nexmoe/5b8a5c8c34439.jpg&quot; alt=&quot;某收门票公园&quot; /&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;https://nexmoe.com/assets/posts/hexo-theme-nexmoe/5b8a59d5c50f3.jpg&quot; alt=&quot;珠海&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;友情链接&lt;/h2&gt;
&lt;p&gt;新建 page 使用 &lt;code&gt;layout: py&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- [![标题](https://example.com/logo.png)](https://example.com/ &quot;标题&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例如&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- [![轻惋导航](https://www.chainwon.com/static/logo.png)](https://www.chainwon.com/ &quot;轻惋导航&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;演示地址：https://nexmoe.com/py&lt;/p&gt;
&lt;h2&gt;文章封面图&lt;/h2&gt;
&lt;p&gt;在 Front-matter 中为 cover 赋值即可，如&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: Hello World
pubDate: 2013/7/13 20:46:25
cover: https://i.loli.net/2019/07/21/5d33d5dc1531213134.png
---
&lt;/code&gt;&lt;/pre&gt;
</content:encoded><category>post</category></item><item><title>Typecho 文章字数计算</title><link>https://nexmoe.com/zh/131</link><guid isPermaLink="true">https://nexmoe.com/zh/131</guid><pubDate>Sat, 18 Feb 2017 00:30:00 GMT</pubDate><content:encoded>&lt;p&gt;炒鸡简单的，只需要在当前使用的主题的根目录的 &amp;lt;cat&amp;gt;functions.php&amp;lt;/cat&amp;gt; 插入如下代码&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;当前仅仅统计文章中的中文字数。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;function  art_count ($cid){
    $db=Typecho_Db::get ();
    $rs=$db-&amp;gt;fetchRow ($db-&amp;gt;select (&apos;table.contents.text&apos;)-&amp;gt;from (&apos;table.contents&apos;)-&amp;gt;where (&apos;table.contents.cid=?&apos;,$cid)-&amp;gt;order (&apos;table.contents.cid&apos;,Typecho_Db::SORT_ASC)-&amp;gt;limit (1));
    $text = preg_replace(&quot;/[^\x{4e00}-\x{9fa5}]/u&quot;, &quot;&quot;, $rs[&apos;text&apos;]);
    echo mb_strlen($text,&apos;UTF-8&apos;);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在需要引用的地方插入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?php art_count($this-&amp;gt;cid); ?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded><category>post</category></item><item><title>鸡年大吉吧，2016年终了</title><link>https://nexmoe.com/zh/76</link><guid isPermaLink="true">https://nexmoe.com/zh/76</guid><pubDate>Sat, 31 Dec 2016 21:00:00 GMT</pubDate><content:encoded>&lt;p&gt;2016 年结束只有 3 小时了，又到了一年一度的年终总结的时候，博客终于进入了稳定运行状态。于是便闲下来写总结以及新年计划了。Cover 图片来自：&amp;lt;a href=&quot;https://aoaoao.me/1260.html&quot; target=&quot;_blank&quot;&amp;gt;Aaron&amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;p&gt;网易云音乐 ID：34218195&lt;/p&gt;
&lt;p&gt;&lt;em&gt;——先祝大家鸡年大吉吧！&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Haven&apos;t done.&lt;/h2&gt;
&lt;p&gt;计划总是赶不上变化，还是有那么一些计划没能达到。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;一个独特导航&lt;/li&gt;
&lt;li&gt;一个独特的壁纸站&lt;/li&gt;
&lt;li&gt;考试进年级前 50（最高 53）&lt;/li&gt;
&lt;li&gt;英语 110+（最高 108）&lt;/li&gt;
&lt;li&gt;玩耍 Ubuntu&lt;/li&gt;
&lt;li&gt;网站不亏（实际大概亏了 1000+）&lt;/li&gt;
&lt;li&gt;javascript 及 jquery 的深入，PHP 的完美使用&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Have done.&lt;/h2&gt;
&lt;p&gt;生活中总有些奇妙的事情发生，包括一些新点子&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;一个属于自己的博客主题&lt;/li&gt;
&lt;li&gt;多说样式&lt;/li&gt;
&lt;li&gt;轻惋壁纸 API&lt;/li&gt;
&lt;li&gt;全新的导航 V3 概念&lt;/li&gt;
&lt;li&gt;友人帐概念&lt;/li&gt;
&lt;li&gt;机械键盘（青轴）&lt;/li&gt;
&lt;li&gt;树莓派&lt;/li&gt;
&lt;li&gt;拥有稳定的服务器及域名&lt;/li&gt;
&lt;li&gt;认识了许许多多的新朋友&lt;/li&gt;
&lt;li&gt;和妹子去看《你的名字》及约妹子到家里玩&lt;/li&gt;
&lt;li&gt;扯淡的 CSS 设计&lt;/li&gt;
&lt;li&gt;玩一玩《守望先锋》（别人的号，2333，自己买不起）&lt;/li&gt;
&lt;li&gt;自己的程序拥有伪静态链接&lt;/li&gt;
&lt;li&gt;吃上谷歌爸爸的 Google Analytics&lt;/li&gt;
&lt;li&gt;全站 HTTPS 加密，快速迎接 2017&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;What will happen next?&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded><category>post</category></item><item><title>轻惋起始页</title><link>https://nexmoe.com/zh/products/qingwan-homepage</link><guid isPermaLink="true">https://nexmoe.com/zh/products/qingwan-homepage</guid><description>16 年那会，我还在上初二，我正式开始学习编程。轻惋起始页便是我人生的第一个项目。从最早简单的套 HTML 模板，到 PHP、数据库、各种框架、Vue、swoole、Golang。轻惋起始页见证着我的成长……</description><pubDate>Sun, 01 May 2016 11:06:47 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://nexmoe.com/_astro/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA-%E6%B0%B8%E5%AD%98%E7%9A%84%E6%AC%A1%E5%85%83.BsRbieOi.png&quot; alt=&quot;轻惋起始页&quot; /&gt;&lt;/p&gt;&lt;p&gt;16 年那会，我还在上初二，我正式开始学习编程。轻惋起始页便是我人生的第一个项目。从最早简单的套 HTML 模板，到 PHP、数据库、各种框架、Vue、swoole、Golang。轻惋起始页见证着我的成长……&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/537283684&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://nexmoe.com/537283684&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://nexmoe.com/zh/products/qingwan-homepage&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;查看产品详情&lt;/a&gt;&lt;/p&gt;</content:encoded><category>product</category><enclosure url="https://nexmoe.com/_astro/%E8%BD%BB%E6%83%8B%E5%AF%BC%E8%88%AA-%E6%B0%B8%E5%AD%98%E7%9A%84%E6%AC%A1%E5%85%83.BsRbieOi.png" length="65476" type="image/png"/></item><item><title>朋友</title><link>https://nexmoe.com/zh/py</link><guid isPermaLink="true">https://nexmoe.com/zh/py</guid><pubDate>Fri, 08 Jan 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;我们会慢慢长大成人，
随着季节的不停变换路边盛开的鲜花也在不断变化，
那个季节盛开的鲜花到底叫什么名字，
轻轻摇曳着一旦触摸它就会轻轻地被扎到，
用鼻子靠近闻一闻，
会有一股淡淡的青涩太阳的芳香，
随着那股香味慢慢变淡我们也在长大成人，
但是那朵花一定会在某处继续盛开。&lt;/p&gt;
&lt;h2&gt;朋友们&lt;/h2&gt;
&lt;p&gt;每次编译时，随机排序&lt;/p&gt;
&lt;p&gt;import pydata from &quot;./pydata.json&quot;;
import FriendsList from &quot;../../components/FriendsList.astro&quot;;&lt;/p&gt;
&lt;p&gt;&amp;lt;FriendsList friends={pydata.sort(() =&amp;gt; Math.random() - 0.5)} /&amp;gt;&lt;/p&gt;
&lt;h2&gt;不可访问&lt;/h2&gt;
&lt;p&gt;希望以下站长联系我&lt;/p&gt;
&lt;p&gt;import cantaccess from &quot;./cant_access.json&quot;;&lt;/p&gt;
&lt;p&gt;&amp;lt;table&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;th&amp;gt;网站名称&amp;lt;/th&amp;gt;
&amp;lt;th class=&quot;w-32&quot;&amp;gt;状态&amp;lt;/th&amp;gt;
&amp;lt;/tr&amp;gt;
{cantaccess.map((item) =&amp;gt; (
&amp;lt;tr&amp;gt;
&amp;lt;td&amp;gt;{item.title}&amp;lt;/td&amp;gt;
&amp;lt;td class=&quot;w-32&quot;&amp;gt;&amp;lt;img class=&quot;h-4&quot; src={&lt;code&gt;https://img.shields.io/website?url=${item.link}&lt;/code&gt;} alt={item.title} /&amp;gt;&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
))}
&amp;lt;/table&amp;gt;&lt;/p&gt;
</content:encoded><category>post</category></item></channel></rss>