<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Sorubedo'Blog</title><link>https://site.sorubedo.xyz/</link><description>Recent content on Sorubedo'Blog</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 14 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://site.sorubedo.xyz/index.xml" rel="self" type="application/rss+xml"/><item><title>Guix 踩坑记录以及解决办法</title><link>https://site.sorubedo.xyz/posts/guix-pitfalls/</link><pubDate>Mon, 14 Sep 2026 00:00:00 +0000</pubDate><guid>https://site.sorubedo.xyz/posts/guix-pitfalls/</guid><description>使用 Guix System 过程中踩过的坑：本文持续更新。</description></item><item><title>关于本站</title><link>https://site.sorubedo.xyz/site/</link><pubDate>Mon, 14 Sep 2026 00:00:00 +0000</pubDate><guid>https://site.sorubedo.xyz/site/</guid><description>&lt;p&gt;本站用到的东西：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; — 静态站点生成器&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/adityatelange/hugo-PaperMod"&gt;PaperMod&lt;/a&gt; — Hugo主题&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tailwindcss.com/"&gt;Tailwind CSS&lt;/a&gt; — 补样式&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fastapi.tiangolo.com/"&gt;FastAPI&lt;/a&gt; — 后端&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twikoo.js.org/"&gt;Twikoo&lt;/a&gt; — 评论系统&lt;/li&gt;
&lt;li&gt;&lt;a href="https://simpleicons.org/"&gt;Simple Icons&lt;/a&gt; — 发行版图标&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="服务器"&gt;服务器&lt;/h2&gt;
&lt;div id="sysinfo-0" class="sysinfo my-6 overflow-hidden rounded-[var(--radius)] border border-[color:var(--tertiary)] bg-[var(--entry)]" data-endpoint="/api/system/info" data-interval="15000"&gt;
&lt;div class="flex items-center gap-4 border-b border-[color:var(--tertiary)] p-4 sm:p-5"&gt;&lt;div data-field="os-icon-wrap" class="grid h-14 w-14 shrink-0 place-items-center rounded-2xl border border-[color:var(--tertiary)] bg-[var(--code-bg)] transition-colors"&gt;&lt;img data-field="os-icon" alt="" width="36" height="36" decoding="async" class="h-9 w-9 opacity-0 transition-opacity duration-300" style="margin:0;border-radius:0"&gt;
&lt;/div&gt;
&lt;div class="min-w-0 flex-1"&gt;
&lt;div class="flex min-w-0 items-center gap-2"&gt;
&lt;span data-field="os-name" class="animate-pulse truncate text-base font-semibold tracking-tight text-[color:var(--primary)]"&gt;正在读取系统信息…&lt;/span&gt;
&lt;span data-field="os-version" style="display:none" class="shrink-0 rounded-full border border-[color:var(--tertiary)] px-2 py-0.5 font-mono text-[11px] leading-none text-[color:var(--secondary)]"&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div class="mt-1 flex min-w-0 items-center gap-1.5 font-mono text-xs text-[color:var(--secondary)]"&gt;
&lt;span data-field="os-host" class="animate-pulse truncate"&gt;—&lt;/span&gt;
&lt;span class="shrink-0 select-none" aria-hidden="true"&gt;·&lt;/span&gt;
&lt;span data-field="os-kernel" class="animate-pulse truncate"&gt;—&lt;/span&gt;
&lt;span class="shrink-0 select-none" aria-hidden="true"&gt;·&lt;/span&gt;
&lt;span data-field="os-arch" class="animate-pulse shrink-0"&gt;—&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;button type="button" data-action="refresh" title="刷新" aria-label="刷新系统信息" class="shrink-0 rounded-full border border-[color:var(--tertiary)] p-2 text-[color:var(--secondary)] transition-colors hover:border-[color:var(--secondary)] hover:text-[color:var(--primary)] disabled:opacity-50 disabled:cursor-progress"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4" aria-hidden="true"&gt;
&lt;path d="M20 11a8 8 0 1 0-2.34 5.66"&gt;&lt;/path&gt;
&lt;path d="M20 4v7h-7"&gt;&lt;/path&gt;
&lt;/svg&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;div data-field="body" class="grid gap-3 p-4 sm:grid-cols-2 sm:p-5"&gt;
&lt;div class="rounded-lg bg-[var(--code-bg)] p-4 sm:col-span-2"&gt;
&lt;div class="flex items-baseline justify-between gap-3"&gt;
&lt;span class="text-xs font-medium tracking-wide text-[color:var(--secondary)]"&gt;CPU&lt;/span&gt;
&lt;span data-field="cpu-percent" class="animate-pulse font-mono text-sm text-[color:var(--primary)]"&gt;—&lt;/span&gt;
&lt;/div&gt;
&lt;div class="mt-2.5 h-2 w-full overflow-hidden rounded-full bg-[color:var(--tertiary)]" role="progressbar" aria-label="CPU 占用率" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"&gt;
&lt;div data-field="cpu-bar" class="h-full rounded-full transition-[width] duration-700 ease-out motion-reduce:transition-none bg-emerald-500 dark:bg-emerald-400" style="width:0%"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div data-field="cpu-model" class="mt-2.5 animate-pulse truncate text-xs text-[color:var(--primary)]"&gt;—&lt;/div&gt;
&lt;div data-field="cpu-meta" class="mt-1 animate-pulse font-mono text-[11px] text-[color:var(--secondary)]"&gt;—&lt;/div&gt;
&lt;div data-field="cpu-load" class="mt-0.5 animate-pulse font-mono text-[11px] text-[color:var(--secondary)]"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="rounded-lg bg-[var(--code-bg)] p-4"&gt;
&lt;div class="flex items-baseline justify-between gap-3"&gt;
&lt;span class="text-xs font-medium tracking-wide text-[color:var(--secondary)]"&gt;内存&lt;/span&gt;
&lt;span data-field="mem-value" class="animate-pulse font-mono text-sm text-[color:var(--primary)]"&gt;—&lt;/span&gt;
&lt;/div&gt;
&lt;div class="mt-2.5 h-2 w-full overflow-hidden rounded-full bg-[color:var(--tertiary)]" role="progressbar" aria-label="内存占用率" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"&gt;
&lt;div data-field="mem-bar" class="h-full rounded-full transition-[width] duration-700 ease-out motion-reduce:transition-none bg-emerald-500 dark:bg-emerald-400" style="width:0%"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div data-field="mem-meta" class="mt-2.5 animate-pulse text-[11px] text-[color:var(--secondary)]"&gt;—&lt;/div&gt;&lt;div data-field="swap" style="display:none" class="mt-3 border-t border-[color:var(--tertiary)] pt-3"&gt;
&lt;div class="flex items-baseline justify-between gap-3"&gt;
&lt;span class="text-[11px] tracking-wide text-[color:var(--secondary)]"&gt;Swap&lt;/span&gt;
&lt;span data-field="swap-value" class="font-mono text-[11px] text-[color:var(--primary)]"&gt;—&lt;/span&gt;
&lt;/div&gt;
&lt;div class="mt-2 h-1 w-full overflow-hidden rounded-full bg-[color:var(--tertiary)]" role="progressbar" aria-label="Swap 占用率" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"&gt;
&lt;div data-field="swap-bar" class="h-full rounded-full transition-[width] duration-700 ease-out motion-reduce:transition-none bg-emerald-500 dark:bg-emerald-400" style="width:0%"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div data-field="disks" class="contents"&gt;&lt;div class="flex flex-col rounded-lg bg-[var(--code-bg)] p-4"&gt;
&lt;div class="flex items-baseline justify-between gap-3"&gt;
&lt;span class="text-xs font-medium tracking-wide text-[color:var(--secondary)]"&gt;磁盘&lt;/span&gt;
&lt;span class="animate-pulse font-mono text-sm text-[color:var(--primary)]"&gt;—&lt;/span&gt;
&lt;/div&gt;
&lt;div class="mt-auto"&gt;
&lt;div class="mt-2.5 h-2 w-full overflow-hidden rounded-full bg-[color:var(--tertiary)]" role="progressbar" aria-label="磁盘占用率" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"&gt;
&lt;div class="h-full rounded-full transition-[width] duration-700 ease-out motion-reduce:transition-none bg-emerald-500 dark:bg-emerald-400" style="width:0%"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="mt-2.5 animate-pulse text-[11px] text-[color:var(--secondary)]"&gt;—&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div data-field="error" style="display:none" class="mx-4 mb-4 rounded-lg border border-rose-500/40 bg-rose-500/10 px-4 py-3 text-sm text-rose-700 dark:text-rose-300 sm:mx-5 sm:mb-5"&gt;
&lt;div class="flex flex-wrap items-center gap-3"&gt;
&lt;span data-field="error-msg"&gt;读取系统信息失败。&lt;/span&gt;
&lt;button type="button" data-action="retry" class="rounded-full border border-rose-500/40 px-3 py-1 text-xs transition-colors hover:bg-rose-500/10"&gt;重试&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="flex flex-wrap items-center gap-x-4 gap-y-1.5 border-t border-[color:var(--tertiary)] px-4 py-3 text-xs text-[color:var(--secondary)] sm:px-5"&gt;
&lt;span&gt;运行时间 &lt;span data-field="uptime" class="animate-pulse font-mono text-[color:var(--primary)]"&gt;—&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;启动于 &lt;span data-field="boot" class="animate-pulse font-mono text-[color:var(--primary)]"&gt;—&lt;/span&gt;&lt;/span&gt;
&lt;span class="ml-auto inline-flex items-center gap-1.5"&gt;
&lt;span data-field="live-dot" class="h-1.5 w-1.5 animate-pulse rounded-full bg-emerald-500 dark:bg-emerald-400" aria-hidden="true"&gt;&lt;/span&gt;
更新于 &lt;span data-field="updated" class="animate-pulse font-mono text-[color:var(--primary)]"&gt;—&lt;/span&gt;
&lt;span data-field="interval-hint"&gt;&lt;/span&gt;
&lt;noscript&gt;（需要 JavaScript 才能显示实时数据）&lt;/noscript&gt;
&lt;/span&gt;
&lt;/div&gt;&lt;template data-template="disk"&gt;
&lt;div class="flex flex-col rounded-lg bg-[var(--code-bg)] p-4"&gt;
&lt;div class="flex items-baseline justify-between gap-3"&gt;
&lt;span class="text-xs font-medium tracking-wide text-[color:var(--secondary)]"&gt;磁盘 &lt;span data-field="disk-path" class="font-mono text-[color:var(--primary)]"&gt;/&lt;/span&gt;&lt;/span&gt;
&lt;span data-field="disk-value" class="font-mono text-sm text-[color:var(--primary)]"&gt;—&lt;/span&gt;
&lt;/div&gt;
&lt;div class="mt-auto"&gt;
&lt;div class="mt-2.5 h-2 w-full overflow-hidden rounded-full bg-[color:var(--tertiary)]" role="progressbar" aria-label="磁盘占用率" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"&gt;
&lt;div data-field="disk-bar" class="h-full rounded-full transition-[width] duration-700 ease-out motion-reduce:transition-none bg-emerald-500 dark:bg-emerald-400" style="width:0%"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div data-field="disk-meta" class="mt-2.5 text-[11px] text-[color:var(--secondary)]"&gt;—&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/template&gt;
&lt;/div&gt;
&lt;script crossorigin="anonymous" defer src="https://site.sorubedo.xyz/js/system-info.min.d975f34b27c04f23ebb1b50aad9f37758ed62cc2b534ec49b2fc8773dacea236.js" integrity="sha256-2XXzSyfATyPrsbUKrZ83dY7WLMK1NOxJsvyHc9rOojY="&gt;&lt;/script&gt;</description></item><item><title>用 Guix 两个月：一个爱折腾的人的真实体验</title><link>https://site.sorubedo.xyz/posts/guix-experience/</link><pubDate>Mon, 14 Sep 2026 00:00:00 +0000</pubDate><guid>https://site.sorubedo.xyz/posts/guix-experience/</guid><description>Oh! Guix! 传说中 GNU/Linux 发行版的终极答案——原子、声明式、完全自由。用了大概两个月，聊聊它的坑、非 FHS 的代价、开发体验、GNU 原教旨主义、channel 生态、桌面组装，以及那点很难被替代的情绪价值。</description></item><item><title>Hello World</title><link>https://site.sorubedo.xyz/posts/hello-world/</link><pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate><guid>https://site.sorubedo.xyz/posts/hello-world/</guid><description>&lt;p&gt;这是我第n个博客（&lt;/p&gt;
&lt;p&gt;一定不删了（&lt;/p&gt;
&lt;p&gt;以前的慢慢搬回来&lt;/p&gt;</description></item><item><title>关于我</title><link>https://site.sorubedo.xyz/about/</link><pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate><guid>https://site.sorubedo.xyz/about/</guid><description>&lt;p&gt;&lt;img alt="sorubedo 的头像" loading="lazy" src="https://github.com/sorubedo.png?size=200"&gt;&lt;/p&gt;
&lt;p&gt;我是 sorubedo。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;温州大学 大四在读&lt;/li&gt;
&lt;li&gt;目前在找实习&lt;/li&gt;
&lt;li&gt;正在使用：Guix System&lt;/li&gt;
&lt;li&gt;Guix channel：&lt;a href="https://github.com/sorubedo/guix-channel"&gt;guix-channel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub：&lt;a href="https://github.com/sorubedo"&gt;sorubedo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;B 站：&lt;a href="https://space.bilibili.com/3537119790238250"&gt;sorubedo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;文章：&lt;a href="https://site.sorubedo.xyz/posts/"&gt;posts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="技术栈"&gt;技术栈&lt;/h2&gt;
&lt;div class="tech-stack my-6 overflow-hidden rounded-[10px] border border-[color:var(--tertiary)] bg-[var(--entry)]"&gt;
&lt;div class="flex items-center gap-1.5 border-b border-[color:var(--tertiary)] bg-[var(--code-bg)] px-4 py-2.5"&gt;
&lt;span class="h-3 w-3 rounded-full bg-[#ff5f57]"&gt;&lt;/span&gt;
&lt;span class="h-3 w-3 rounded-full bg-[#febc2e]"&gt;&lt;/span&gt;
&lt;span class="h-3 w-3 rounded-full bg-[#28c840]"&gt;&lt;/span&gt;
&lt;span class="ml-2 truncate font-mono text-xs text-[color:var(--secondary)]"&gt;sorubedo@guix: ~ — 技术栈&lt;/span&gt;
&lt;/div&gt;
&lt;div class="px-4 py-4 font-mono text-xs leading-[1.7] sm:px-5 sm:text-[13px]"&gt;
&lt;div class="flex gap-2"&gt;
&lt;span class="shrink-0 select-none text-emerald-600 dark:text-emerald-400"&gt;$&lt;/span&gt;
&lt;span class="text-[color:var(--primary)]"&gt;skillfetch&lt;/span&gt;
&lt;/div&gt;
&lt;div class="ts-row mt-5 mb-1.5 text-[color:var(--secondary)]" style="animation-delay:0ms"&gt;
&lt;span class="select-none"&gt;#&lt;/span&gt; 真本事
&lt;/div&gt;&lt;div class="ts-row flex flex-wrap items-center gap-x-3 gap-y-0.5" style="animation-delay:0ms"&gt;
&lt;span class="w-full truncate text-[color:var(--primary)] sm:w-36 sm:shrink-0"&gt;vibecoding&lt;/span&gt;
&lt;span class="max-sm:hidden min-w-0 flex-1 truncate text-[color:var(--secondary)]"&gt;全靠 LLM 续命&lt;/span&gt;
&lt;span class="ml-auto inline-block" aria-hidden="true"&gt;
&lt;span class="select-none text-[color:var(--tertiary)]"&gt;[&lt;/span&gt;&lt;span class="ts-fill inline-block text-sky-600 dark:text-sky-400" style="animation-delay:140ms"&gt;██████████████&lt;/span&gt;&lt;span class="inline-block select-none text-[color:var(--tertiary)] dark:text-[color:var(--secondary)] dark:opacity-40"&gt;░░░░░░&lt;/span&gt;&lt;span class="select-none text-[color:var(--tertiary)]"&gt;]&lt;/span&gt;
&lt;/span&gt;
&lt;span class="w-10 shrink-0 text-right text-[color:var(--secondary)]"&gt;70%&lt;/span&gt;
&lt;/div&gt;
&lt;div class="ts-row mt-5 mb-1.5 text-[color:var(--secondary)]" style="animation-delay:90ms"&gt;
&lt;span class="select-none"&gt;#&lt;/span&gt; 也就会一点
&lt;/div&gt;&lt;div class="ts-row flex flex-wrap items-center gap-x-3 gap-y-0.5" style="animation-delay:90ms"&gt;
&lt;span class="w-full truncate text-[color:var(--primary)] sm:w-36 sm:shrink-0"&gt;Rust&lt;/span&gt;
&lt;span class="max-sm:hidden min-w-0 flex-1 truncate text-[color:var(--secondary)]"&gt;编译器教我做事&lt;/span&gt;
&lt;span class="ml-auto inline-block" aria-hidden="true"&gt;
&lt;span class="select-none text-[color:var(--tertiary)]"&gt;[&lt;/span&gt;&lt;span class="ts-fill inline-block text-amber-600 dark:text-amber-400" style="animation-delay:230ms"&gt;█&lt;/span&gt;&lt;span class="inline-block select-none text-[color:var(--tertiary)] dark:text-[color:var(--secondary)] dark:opacity-40"&gt;░░░░░░░░░░░░░░░░░░░&lt;/span&gt;&lt;span class="select-none text-[color:var(--tertiary)]"&gt;]&lt;/span&gt;
&lt;/span&gt;
&lt;span class="w-10 shrink-0 text-right text-[color:var(--secondary)]"&gt;7%&lt;/span&gt;
&lt;/div&gt;&lt;div class="ts-row flex flex-wrap items-center gap-x-3 gap-y-0.5" style="animation-delay:130ms"&gt;
&lt;span class="w-full truncate text-[color:var(--primary)] sm:w-36 sm:shrink-0"&gt;Go&lt;/span&gt;
&lt;span class="max-sm:hidden min-w-0 flex-1 truncate text-[color:var(--secondary)]"&gt;从入门到 if err != nil&lt;/span&gt;
&lt;span class="ml-auto inline-block" aria-hidden="true"&gt;
&lt;span class="select-none text-[color:var(--tertiary)]"&gt;[&lt;/span&gt;&lt;span class="ts-fill inline-block text-amber-600 dark:text-amber-400" style="animation-delay:270ms"&gt;█&lt;/span&gt;&lt;span class="inline-block select-none text-[color:var(--tertiary)] dark:text-[color:var(--secondary)] dark:opacity-40"&gt;░░░░░░░░░░░░░░░░░░░&lt;/span&gt;&lt;span class="select-none text-[color:var(--tertiary)]"&gt;]&lt;/span&gt;
&lt;/span&gt;
&lt;span class="w-10 shrink-0 text-right text-[color:var(--secondary)]"&gt;6%&lt;/span&gt;
&lt;/div&gt;&lt;div class="ts-row flex flex-wrap items-center gap-x-3 gap-y-0.5" style="animation-delay:170ms"&gt;
&lt;span class="w-full truncate text-[color:var(--primary)] sm:w-36 sm:shrink-0"&gt;JS / TS&lt;/span&gt;
&lt;span class="max-sm:hidden min-w-0 flex-1 truncate text-[color:var(--secondary)]"&gt;只会 npm install&lt;/span&gt;
&lt;span class="ml-auto inline-block" aria-hidden="true"&gt;
&lt;span class="select-none text-[color:var(--tertiary)]"&gt;[&lt;/span&gt;&lt;span class="ts-fill inline-block text-amber-600 dark:text-amber-400" style="animation-delay:310ms"&gt;█&lt;/span&gt;&lt;span class="inline-block select-none text-[color:var(--tertiary)] dark:text-[color:var(--secondary)] dark:opacity-40"&gt;░░░░░░░░░░░░░░░░░░░&lt;/span&gt;&lt;span class="select-none text-[color:var(--tertiary)]"&gt;]&lt;/span&gt;
&lt;/span&gt;
&lt;span class="w-10 shrink-0 text-right text-[color:var(--secondary)]"&gt;6%&lt;/span&gt;
&lt;/div&gt;&lt;div class="ts-row flex flex-wrap items-center gap-x-3 gap-y-0.5" style="animation-delay:210ms"&gt;
&lt;span class="w-full truncate text-[color:var(--primary)] sm:w-36 sm:shrink-0"&gt;Kotlin&lt;/span&gt;
&lt;span class="max-sm:hidden min-w-0 flex-1 truncate text-[color:var(--secondary)]"&gt;写过一点 Android&lt;/span&gt;
&lt;span class="ml-auto inline-block" aria-hidden="true"&gt;
&lt;span class="select-none text-[color:var(--tertiary)]"&gt;[&lt;/span&gt;&lt;span class="ts-fill inline-block text-amber-600 dark:text-amber-400" style="animation-delay:350ms"&gt;█&lt;/span&gt;&lt;span class="inline-block select-none text-[color:var(--tertiary)] dark:text-[color:var(--secondary)] dark:opacity-40"&gt;░░░░░░░░░░░░░░░░░░░&lt;/span&gt;&lt;span class="select-none text-[color:var(--tertiary)]"&gt;]&lt;/span&gt;
&lt;/span&gt;
&lt;span class="w-10 shrink-0 text-right text-[color:var(--secondary)]"&gt;6%&lt;/span&gt;
&lt;/div&gt;&lt;div class="ts-row flex flex-wrap items-center gap-x-3 gap-y-0.5" style="animation-delay:250ms"&gt;
&lt;span class="w-full truncate text-[color:var(--primary)] sm:w-36 sm:shrink-0"&gt;Dart&lt;/span&gt;
&lt;span class="max-sm:hidden min-w-0 flex-1 truncate text-[color:var(--secondary)]"&gt;Flutter 抄过 demo&lt;/span&gt;
&lt;span class="ml-auto inline-block" aria-hidden="true"&gt;
&lt;span class="select-none text-[color:var(--tertiary)]"&gt;[&lt;/span&gt;&lt;span class="ts-fill inline-block text-amber-600 dark:text-amber-400" style="animation-delay:390ms"&gt;█&lt;/span&gt;&lt;span class="inline-block select-none text-[color:var(--tertiary)] dark:text-[color:var(--secondary)] dark:opacity-40"&gt;░░░░░░░░░░░░░░░░░░░&lt;/span&gt;&lt;span class="select-none text-[color:var(--tertiary)]"&gt;]&lt;/span&gt;
&lt;/span&gt;
&lt;span class="w-10 shrink-0 text-right text-[color:var(--secondary)]"&gt;5%&lt;/span&gt;
&lt;/div&gt;&lt;div class="ts-row mt-5 flex gap-2" style="animation-delay:390ms"&gt;
&lt;span class="shrink-0 select-none text-emerald-600 dark:text-emerald-400"&gt;$&lt;/span&gt;
&lt;span class="text-[color:var(--primary)]"&gt;bodyctl sleep&lt;/span&gt;
&lt;/div&gt;
&lt;div class="ts-row text-[color:var(--secondary)]" style="animation-delay:450ms"&gt;Zzzzz......&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>作品集</title><link>https://site.sorubedo.xyz/portfolio/</link><pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate><guid>https://site.sorubedo.xyz/portfolio/</guid><description>&lt;div class="columns-1 gap-6 sm:columns-2"&gt;
&lt;div class="group mb-6 flex break-inside-avoid flex-col overflow-hidden rounded-[var(--radius)] border border-[color:var(--tertiary)] bg-[var(--entry)] transition-colors hover:border-[color:var(--secondary)]"&gt;
&lt;div class="flex flex-1 flex-col gap-2 p-5"&gt;
&lt;div class="flex items-baseline justify-between gap-2"&gt;
&lt;div class="text-base font-semibold tracking-tight text-[color:var(--primary)]"&gt;guix-channel&lt;/div&gt;
&lt;div class="shrink-0 text-xs text-[color:var(--secondary)]" title="GitHub stars"&gt;★ 1&lt;/div&gt;
&lt;/div&gt;
&lt;div class="text-sm leading-relaxed text-[color:var(--secondary)]"&gt;个人的 Guix channel，收录还没进入 Guix 官方仓库的软件包和服务，比如 steamguard-cli、带 Lua 和 Octagram 插件的 librime，以及 virtiofsd 服务。&lt;/div&gt;
&lt;div class="mt-auto flex flex-wrap gap-2 pt-3"&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;Scheme&lt;/span&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;Guix&lt;/span&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;软件包打包&lt;/span&gt;
&lt;/div&gt;
&lt;a class="mt-3 inline-flex w-fit items-center gap-1 text-sm font-medium text-[color:var(--primary)] underline decoration-[color:var(--tertiary)] underline-offset-4 hover:decoration-[color:var(--secondary)]" href="https://github.com/sorubedo/guix-channel"&gt;查看源码&amp;nbsp;&amp;rarr;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="group mb-6 flex break-inside-avoid flex-col overflow-hidden rounded-[var(--radius)] border border-[color:var(--tertiary)] bg-[var(--entry)] transition-colors hover:border-[color:var(--secondary)]"&gt;
&lt;div class="flex flex-1 flex-col gap-2 p-5"&gt;
&lt;div class="flex items-baseline justify-between gap-2"&gt;
&lt;div class="text-base font-semibold tracking-tight text-[color:var(--primary)]"&gt;GH2TG&lt;/div&gt;
&lt;div class="shrink-0 text-xs text-[color:var(--secondary)]" title="GitHub stars"&gt;★ 2&lt;/div&gt;
&lt;/div&gt;
&lt;div class="text-sm leading-relaxed text-[color:var(--secondary)]"&gt;把 GitHub 的提交、Release 和 Actions 构建产物轮询推送到 Telegram 群组话题，不用自建服务器，也不用配置 webhook。&lt;/div&gt;
&lt;div class="mt-auto flex flex-wrap gap-2 pt-3"&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;Rust&lt;/span&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;GitHub Actions&lt;/span&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;Telegram&lt;/span&gt;
&lt;/div&gt;
&lt;a class="mt-3 inline-flex w-fit items-center gap-1 text-sm font-medium text-[color:var(--primary)] underline decoration-[color:var(--tertiary)] underline-offset-4 hover:decoration-[color:var(--secondary)]" href="https://github.com/sorubedo/gh2tg"&gt;查看源码&amp;nbsp;&amp;rarr;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="group mb-6 flex break-inside-avoid flex-col overflow-hidden rounded-[var(--radius)] border border-[color:var(--tertiary)] bg-[var(--entry)] transition-colors hover:border-[color:var(--secondary)]"&gt;
&lt;div class="flex flex-1 flex-col gap-2 p-5"&gt;
&lt;div class="flex items-baseline justify-between gap-2"&gt;
&lt;div class="text-base font-semibold tracking-tight text-[color:var(--primary)]"&gt;runsvdir-magisk&lt;/div&gt;
&lt;div class="shrink-0 text-xs text-[color:var(--secondary)]" title="GitHub stars"&gt;★ 3&lt;/div&gt;
&lt;/div&gt;
&lt;div class="text-sm leading-relaxed text-[color:var(--secondary)]"&gt;把 Termux 预编译的 runsvdir、runsv、sv 等 runit 工具打包成 Magisk/KernelSU 模块，让 Android 开机后自动拉起并守护常驻服务。&lt;/div&gt;
&lt;div class="mt-auto flex flex-wrap gap-2 pt-3"&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;Runit&lt;/span&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;Magisk&lt;/span&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;Android&lt;/span&gt;
&lt;/div&gt;
&lt;a class="mt-3 inline-flex w-fit items-center gap-1 text-sm font-medium text-[color:var(--primary)] underline decoration-[color:var(--tertiary)] underline-offset-4 hover:decoration-[color:var(--secondary)]" href="https://github.com/sorubedo/runsvdir-magisk"&gt;查看源码&amp;nbsp;&amp;rarr;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="group mb-6 flex break-inside-avoid flex-col overflow-hidden rounded-[var(--radius)] border border-[color:var(--tertiary)] bg-[var(--entry)] transition-colors hover:border-[color:var(--secondary)]"&gt;
&lt;div class="flex flex-1 flex-col gap-2 p-5"&gt;
&lt;div class="flex items-baseline justify-between gap-2"&gt;
&lt;div class="text-base font-semibold tracking-tight text-[color:var(--primary)]"&gt;i-wzu-auth&lt;/div&gt;
&lt;div class="shrink-0 text-xs text-[color:var(--secondary)]" title="GitHub stars"&gt;★ 2&lt;/div&gt;
&lt;/div&gt;
&lt;div class="text-sm leading-relaxed text-[color:var(--secondary)]"&gt;针对温州大学深澜网关的校园网认证 CLI，完整实现 XXTEA、Custom Base64 与 HMAC-MD5 协议，可在服务器、软路由或开机脚本里一键登录、查询在线状态和注销，并支持绑定物理网卡绕过 TUN 代理。&lt;/div&gt;
&lt;div class="mt-auto flex flex-wrap gap-2 pt-3"&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;Rust&lt;/span&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;CLI&lt;/span&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;校园网认证&lt;/span&gt;
&lt;/div&gt;
&lt;a class="mt-3 inline-flex w-fit items-center gap-1 text-sm font-medium text-[color:var(--primary)] underline decoration-[color:var(--tertiary)] underline-offset-4 hover:decoration-[color:var(--secondary)]" href="https://github.com/sorubedo/i-wzu-auth"&gt;查看源码&amp;nbsp;&amp;rarr;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="group mb-6 flex break-inside-avoid flex-col overflow-hidden rounded-[var(--radius)] border border-[color:var(--tertiary)] bg-[var(--entry)] transition-colors hover:border-[color:var(--secondary)]"&gt;
&lt;div class="aspect-[16/9] w-full overflow-hidden border-b border-[color:var(--tertiary)] bg-[var(--code-bg)]"&gt;&lt;img src="https://site.sorubedo.xyz/images/portfolio/obedur-os.webp" alt="Obedur-OS" loading="lazy" style="margin:0;border-radius:0" class="h-full w-full object-cover transition-transform duration-300 group-hover:scale-[1.03]"&gt;
&lt;/div&gt;
&lt;div class="flex flex-1 flex-col gap-2 p-5"&gt;
&lt;div class="flex items-baseline justify-between gap-2"&gt;
&lt;div class="text-base font-semibold tracking-tight text-[color:var(--primary)]"&gt;Obedur-OS&lt;/div&gt;
&lt;div class="shrink-0 text-xs text-[color:var(--secondary)]" title="GitHub stars"&gt;★ 3&lt;/div&gt;
&lt;/div&gt;
&lt;div class="text-sm leading-relaxed text-[color:var(--secondary)]"&gt;基于 BlueBuild 构建的 Fedora Atomic 不可变系统镜像，开箱即用的 Niri 滚动平铺 Wayland 桌面，集成 CachyOS LTO 优化内核与 SecureBoot 签名。&lt;/div&gt;
&lt;div class="mt-auto flex flex-wrap gap-2 pt-3"&gt;
&lt;span class="rounded-full border border-amber-500/60 bg-amber-500/15 px-2.5 py-0.5 text-xs font-medium text-amber-700 dark:border-amber-400/50 dark:bg-amber-400/15 dark:text-amber-300"&gt;已停止维护&lt;/span&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;BlueBuild&lt;/span&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;Fedora Atomic&lt;/span&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;Niri&lt;/span&gt;
&lt;span class="rounded-full border border-[color:var(--tertiary)] px-2.5 py-0.5 text-xs text-[color:var(--secondary)]"&gt;Wayland&lt;/span&gt;
&lt;/div&gt;
&lt;a class="mt-3 inline-flex w-fit items-center gap-1 text-sm font-medium text-[color:var(--primary)] underline decoration-[color:var(--tertiary)] underline-offset-4 hover:decoration-[color:var(--secondary)]" href="https://sorubedo.github.io/obedur-os/"&gt;访问文档站&amp;nbsp;&amp;rarr;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item></channel></rss>