28 Commits

Author SHA1 Message Date
111dc1e25f Update 2 files
- /assets/js/pjax.js
- /index.html
2026-05-21 08:27:59 +00:00
c4ae25dcb1 Update 10 files
- /assets/js/jquery.pjax.min.js
- /assets/js/main.js
- /assets/js/pjax.js
- /_layouts/default.html
- /_layouts/post.html
- /_data/proxylist.yml
- /_data/other_repo_list.csv
- /Live2dHistoire/live2d/js/message.js
- /index.html
- /search.html
2026-05-21 07:38:17 +00:00
862bffac80 Update 3 files
- /_data/proxylist.yml
- /_data/other_repo_list.csv
- /_tools/envs_post-receive
2026-05-19 03:31:46 +00:00
c888a89f41 Update 4 files
- /_layouts/default.html
- /_data/other_repo_list.csv
- /_data/links.csv
- /llms.txt
2026-05-18 15:24:55 +00:00
b48e93890c Update 3 files
- /llms.txt
- /_tools/ai-summary.js
- /humans.txt
2026-05-18 05:08:37 +00:00
f6b35814b1 Update 3 files
- /_data/other_repo_list.csv
- /humans.txt
- /llms.txt
2026-05-18 04:25:41 +00:00
fe26e4f6c3 Update 2 files
- /_data/other_repo_list.csv
- /_data/ai-cache.json
2026-05-05 12:22:11 +00:00
45f1183f9a Update 2 files
- /_data/other_repo_list.csv
- /_posts/2026-05-01-virtual-net.md
2026-05-01 10:54:34 +00:00
dd1141d872 Update 3 files
- /_data/proxylist.yml
- /_data/other_repo_list.csv
- /proxylist.md
2026-04-26 12:29:39 +00:00
c0ca105edc Update 3 files
- /README.md
- /_data/proxylist.yml
- /_data/other_repo_list.csv
2026-04-25 15:20:00 +00:00
bc45ef27b8 Update 2 files
- /_data/proxylist.yml
- /_data/other_repo_list.csv
2026-04-21 07:20:53 +00:00
47f623b8eb Update 2 files
- /_layouts/xslt_container.html
- /_data/other_repo_list.csv
2026-04-17 01:53:23 +00:00
33122e34b5 Update 3 files
- /_posts/2026-04-14-ai-agent.md
- /_data/other_repo_list.csv
- /_data/ai-cache.json
2026-04-15 11:35:09 +00:00
100d3405f7 Update 2 files
- /_posts/2026-04-14-ai-agent.md
- /_data/other_repo_list.csv
2026-04-14 12:44:42 +00:00
a7ff7c2c37 Update 2 files
- /_data/other_repo_list.csv
- /_data/proxylist.yml
2026-03-28 16:02:31 +00:00
47e04279d0 Update 2 files
- /_data/other_repo_list.csv
- /_data/proxylist.yml
2026-03-27 09:18:40 +00:00
cd478c22a2 Update 3 files
- /_data/other_repo_list.csv
- /_data/links.csv
- /_posts/2025-12-01-linux.md
2026-03-23 14:07:38 +00:00
e094b6d205 Update 3 files
- /_data/links.csv
- /_data/other_repo_list.csv
- /_layouts/default.html
2026-03-21 19:22:38 +00:00
e8653b0efd Update 5 files
- /_data/other_repo_list.csv
- /_layouts/default.html
- /proxylist.md
- /other_repo_list.md
- /links.md
2026-03-17 12:19:07 +00:00
e516a5d08c Update 4 files
- /index.html
- /_layouts/post.html
- /_layouts/xslt_container.html
- /_data/other_repo_list.csv
2026-03-14 20:05:09 +00:00
cf76264bb0 Update 2 files
- /_data/other_repo_list.csv
- /_data/proxylist.yml
2026-03-13 17:15:05 +00:00
0a7608b3f0 Update 4 files
- /_data/other_repo_list.csv
- /_data/proxylist.yml
- /index.html
- /_layouts/post.html
2026-03-12 16:17:24 +00:00
5fd8d2fe0f Update 2 files
- /archives.md
- /_data/other_repo_list.csv
2026-03-08 10:54:41 +00:00
c9dfb10733 Update 3 files
- /_data/ai-cache.json
- /_data/proxylist.yml
- /_data/other_repo_list.csv
2026-03-04 12:01:56 +00:00
23fff44d79 Update 3 files
- /_posts/2026-03-01-llm3.md
- /_data/other_repo_list.csv
- /_data/proxylist.yml
2026-03-01 09:08:52 +00:00
6630ba964b Update 3 files
- /_data/other_repo_list.csv
- /_data/proxylist.yml
- /assets/css/feed.css
2026-02-26 14:54:24 +00:00
00aec9bad0 Update 5 files
- /_data/other_repo_list.csv
- /_data/links.csv
- /_data/proxylist.yml
- /assets/css/feed.css
- /_layouts/default.html
2026-02-25 07:29:29 +00:00
2ab6982684 Update 3 files
- /assets/css/style.scss
- /_data/other_repo_list.csv
- /_data/ai-cache.json
2026-02-11 09:54:52 +00:00
28 changed files with 1157 additions and 565 deletions

View File

@ -22,6 +22,8 @@ if (!norunFlag) {
var sleepTimer_ = null;
var AITalkFlag = false;
var talkNum = 0;
// 暴露到全局,供 pjax.js 在页面切换后重新调用
window._live2d = { initTips: null, showMessage: null, showHitokoto: null };
(function () {
function renderTip(template, context) {
var tokenReg = /(\\)?\{([^\{\}\\]+)(\\)?\}/g;
@ -33,11 +35,11 @@ if (!norunFlag) {
var currentObject = context;
var i, length, variable;
for (i = 0, length = variables.length; i < length; ++i) {
variable = variables[i];
currentObject = currentObject[variable];
if (currentObject === undefined || currentObject === null) return '';
variable = currentObject[variables[i]];
if (variable === undefined || variable === null) return '';
currentObject = variable;
}
return currentObject;
return String(currentObject);
});
}
@ -56,14 +58,20 @@ if (!norunFlag) {
showMessage('你都复制了些什么呀,转载要记得加上出处哦~~', 5000);
});
// 缓存 message.json 数据,供 PJAX 重绑定使用
var tipsData = null;
function initTips() {
$.ajax({
cache: true,
url: message_Path + 'message.json',
dataType: "json",
success: function (result) {
tipsData = result;
// 解绑旧事件(用命名空间避免影响其他绑定)
$.each(result.mouseover, function (index, tips) {
$(tips.selector).mouseover(function () {
$(tips.selector).off('mouseover._live2d_tips mouseout._live2d_tips');
$(tips.selector).on('mouseover._live2d_tips', function () {
var text = tips.text;
if (Array.isArray(tips.text)) text = tips.text[Math.floor(Math.random() * tips.text.length + 1) - 1];
text = text.renderTip({ text: $(this).text() });
@ -72,7 +80,7 @@ if (!norunFlag) {
clearInterval(liveTlakTimer);
liveTlakTimer = null;
});
$(tips.selector).mouseout(function () {
$(tips.selector).on('mouseout._live2d_tips', function () {
showHitokoto();
if (liveTlakTimer == null) {
liveTlakTimer = window.setInterval(function () {
@ -82,7 +90,8 @@ if (!norunFlag) {
});
});
$.each(result.click, function (index, tips) {
$(tips.selector).click(function () {
$(tips.selector).off('click._live2d_tips');
$(tips.selector).on('click._live2d_tips', function () {
if (hitFlag) {
return false
}
@ -106,23 +115,26 @@ if (!norunFlag) {
}
});
}
window._live2d.initTips = initTips;
initTips();
var text;
if (document.referrer !== '' && document.referrer.split('/')[2] !== window.location.host) {
var referrer = document.createElement('a');
referrer.href = document.referrer;
text = '嗨!来自 <span style="color:#0099cc;">' + referrer.hostname + '</span> 的朋友!';
var domain = referrer.hostname.split('.')[1];
if (domain == 'baidu') {
text = '嗨! 来自 百度搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
} else if (domain == 'so') {
text = '嗨! 来自 360搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
} else if (domain == 'google') {
text = '嗨! 来自 谷歌搜索 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
}
if (domain == 'baidu' || domain == 'so' || domain == 'google') {
var source = domain == 'baidu' ? '百度搜索' : domain == 'so' ? '360搜索' : '谷歌搜索';
text = '嗨! 来自 ' + source + ' 的朋友!<br>欢迎访问<span style="color:#0099cc;">「 ' + document.title.split(' | ')[0] + ' 」</span>';
} else {
if (window.location.pathname == "/") { //主页URL判断需要斜杠结尾
text = '嗨!来自 <span style="color:#0099cc;">' + referrer.hostname + '</span> 的朋友!';
}
} else if (typeof window._pjaxGetWelcomeText === 'function') {
// 复用 pjax.js 中的欢迎语生成函数,避免重复逻辑
text = window._pjaxGetWelcomeText();
} else {
// pjax.js 尚未加载时的兜底(首次访问且 pjax.js 在 message.js 之后加载)
if (window.location.pathname == "/") {
var now = (new Date()).getHours();
if (now > 23 || now <= 5) {
text = '你是夜猫子呀?这么晚还不睡觉,明天起的来嘛?';
@ -172,6 +184,7 @@ if (!norunFlag) {
console.log(sleepTimer_);
}
}
window._live2d.showHitokoto = showHitokoto;
function checkSleep() {
var sleepStatu = sessionStorage.getItem("Sleepy");
@ -213,6 +226,7 @@ if (!norunFlag) {
//if (timeout === null) timeout = 5000;
//hideMessage(timeout);
}
window._live2d.showMessage = showMessage;
function talkValTimer() {
$('#live_talk').val('1');
}
@ -384,74 +398,100 @@ if (!norunFlag) {
};
};
//获取音乐信息初始化
var bgmListInfo = $('input[name=live2dBGM]');
if (bgmListInfo.length == 0) {
$('#musicButton').hide();
} else {
var bgmPlayNow = parseInt($('#live2d_bgm').attr('data-bgm'));
var bgmPlayTime = 0;
var live2dBGM_Num = sessionStorage.getItem("live2dBGM_Num");
var live2dBGM_PlayTime = sessionStorage.getItem("live2dBGM_PlayTime");
if (live2dBGM_Num) {
if (live2dBGM_Num <= $('input[name=live2dBGM]').length - 1) {
bgmPlayNow = parseInt(live2dBGM_Num);
}
}
if (live2dBGM_PlayTime) {
bgmPlayTime = parseInt(live2dBGM_PlayTime);
}
var live2dBGMSrc = bgmListInfo.eq(bgmPlayNow).val();
$('#live2d_bgm').attr('data-bgm', bgmPlayNow);
$('#live2d_bgm').attr('src', live2dBGMSrc);
$('#live2d_bgm')[0].currentTime = bgmPlayTime;
$('#live2d_bgm')[0].volume = 0.5;
var live2dBGM_IsPlay = sessionStorage.getItem("live2dBGM_IsPlay");
var live2dBGM_WindowClose = sessionStorage.getItem("live2dBGM_WindowClose");
if (live2dBGM_IsPlay == '0' && live2dBGM_WindowClose == '0') {
$('#live2d_bgm')[0].play();
$('#musicButton').addClass('play');
}
sessionStorage.setItem("live2dBGM_WindowClose", '1');
$('#musicButton').on('click', function () {
var $bgm = $('#live2d_bgm');
// 音乐按钮点击事件(幂等,使用命名空间避免重复绑定)
$('#musicButton').off('click._bgm').on('click._bgm', function () {
if ($('#musicButton').hasClass('play')) {
$('#live2d_bgm')[0].pause();
$bgm[0].pause();
$('#musicButton').removeClass('play');
sessionStorage.setItem("live2dBGM_IsPlay", '1');
} else {
$('#live2d_bgm')[0].play();
$bgm[0].play();
$('#musicButton').addClass('play');
sessionStorage.setItem("live2dBGM_IsPlay", '0');
}
});
// BGM 事件监听(仅绑定一次,使用标志位避免重复)
if (!window._live2d._bgmEventsBound) {
$bgm[0].addEventListener("timeupdate", function () {
sessionStorage.setItem("live2dBGM_PlayTime", $bgm[0].currentTime);
});
$bgm[0].addEventListener("ended", function () {
var listNow = parseInt($bgm.attr('data-bgm'));
listNow++;
var inputs = $('input[name=live2dBGM]');
if (inputs.length === 0) return;
if (listNow > inputs.length - 1) {
listNow = 0;
}
var listNewSrc = inputs.eq(listNow).val();
if (!listNewSrc) return;
sessionStorage.setItem("live2dBGM_Num", listNow);
$bgm.attr('src', listNewSrc);
$bgm[0].play();
$bgm.attr('data-bgm', listNow);
});
$bgm[0].addEventListener("error", function () {
$bgm[0].pause();
$('#musicButton').removeClass('play');
showMessage('音乐似乎加载不出来了呢!', 0);
});
window.onbeforeunload = function () {
sessionStorage.setItem("live2dBGM_WindowClose", '0');
if ($('#musicButton').hasClass('play')) {
sessionStorage.setItem("live2dBGM_IsPlay", '0');
}
};
window._live2d._bgmEventsBound = true;
}
document.getElementById('live2d_bgm').addEventListener("timeupdate", function () {
var live2dBgmPlayTimeNow = document.getElementById('live2d_bgm').currentTime;
sessionStorage.setItem("live2dBGM_PlayTime", live2dBgmPlayTimeNow);
});
document.getElementById('live2d_bgm').addEventListener("ended", function () {
var listNow = parseInt($('#live2d_bgm').attr('data-bgm'));
listNow++;
if (listNow > $('input[name=live2dBGM]').length - 1) {
listNow = 0;
}
var listNewSrc = $('input[name=live2dBGM]').eq(listNow).val();
sessionStorage.setItem("live2dBGM_Num", listNow);
$('#live2d_bgm').attr('src', listNewSrc);
$('#live2d_bgm')[0].play();
$('#live2d_bgm').attr('data-bgm', listNow);
});
document.getElementById('live2d_bgm').addEventListener("error", function () {
$('#live2d_bgm')[0].pause();
$('#musicButton').removeClass('play');
showMessage('音乐似乎加载不出来了呢!', 0);
});
// 初始化 BGM根据当前页面是否有 BGM 输入)
if (typeof window._live2d.initBGM === 'function') {
window._live2d.initBGM();
}
}
// 暴露 BGM 初始化函数,供 PJAX 重初始化时调用
window._live2d.initBGM = function() {
var bgmListInfo = $('input[name=live2dBGM]');
var $bgm = $('#live2d_bgm');
if (bgmListInfo.length === 0) {
$('#musicButton').hide();
if ($bgm.length) $bgm[0].pause();
return;
}
var bgmPlayNow = parseInt($bgm.attr('data-bgm')) || 0;
var bgmPlayTime = 0;
var live2dBGM_Num = sessionStorage.getItem("live2dBGM_Num");
var live2dBGM_PlayTime = sessionStorage.getItem("live2dBGM_PlayTime");
if (live2dBGM_Num) {
if (parseInt(live2dBGM_Num) <= bgmListInfo.length - 1) {
bgmPlayNow = parseInt(live2dBGM_Num);
}
}
if (live2dBGM_PlayTime) {
bgmPlayTime = parseFloat(live2dBGM_PlayTime);
}
var newSrc = bgmListInfo.eq(bgmPlayNow).val();
$bgm.attr('data-bgm', bgmPlayNow);
if ($bgm.attr('src') !== newSrc) {
$bgm[0].pause();
$bgm.attr('src', newSrc);
$bgm[0].currentTime = bgmPlayTime;
}
$bgm[0].volume = 0.5;
var live2dBGM_IsPlay = sessionStorage.getItem("live2dBGM_IsPlay");
var live2dBGM_WindowClose = sessionStorage.getItem("live2dBGM_WindowClose");
if (live2dBGM_IsPlay == '0' && live2dBGM_WindowClose == '0') {
$bgm[0].play();
$('#musicButton').addClass('play');
}
sessionStorage.setItem("live2dBGM_WindowClose", '1');
$('#musicButton').show();
};
$(document).ready(function () {
var AIimgSrc = [
message_Path + "model/histoire/histoire.1024/texture_00.png",

View File

@ -50,4 +50,4 @@ Powered by [Jekyll](https://github.com/jekyll/jekyll)
本站转载的文章如无特别说明,均按原文章的协议执行
## 打赏/赞助 Mayx
![QRCode](/images/QRCode.png)
![QRCode](images/QRCode.png)

View File

@ -173,5 +173,9 @@
"/2025/10/12/recover.html": "这篇文章讲述了作者通过GitHub的Fork特性找回一个被删除的Brainfuck可视化演示仓库的经历。由于原仓库和作者主页都已消失作者推测GitHub在Fork时会共享对象库只要有任意一个Fork仓库存在GitHub就会保留所有对象从而可以通过找到一个Fork仓库的最新提交Hash值来还原目标仓库。作者通过Linux内核仓库的Fork进行验证随后在互联网档案馆上找到目标仓库的Fork以及其Hash值最终通过Git命令将本地仓库的HEAD指针指向目标提交成功恢复了该仓库的代码并将其部署到自己的GitHub Pages上。最后作者发现Software Heritage组织会保存所有代码因此在遇到类似情况时可以直接通过该平台进行查找。",
"/2025/11/01/mirrors.html": "这篇文章讲述了作者为了提高博客的可靠性探索利用被滥用的Git平台进行博客镜像的想法和实践。作者发现一些Git实例存在大量空仓库和异常用户怀疑是SEO公司滥用因此决定利用这些平台进行博客镜像备份以应对平台倒闭或数据丢失的风险。作者选择Gitea和Forgejo平台作为目标编写脚本自动注册账号并导入博客仓库实现了自动化镜像分发。作者也意识到此类平台的稳定性存在不确定性并思考了“量”和“质”两种方式确保博客永恒性的优劣最终认为建立一个活跃的、自动执行维护操作的网络可能更有效。文章最后展示了作者创建的Git镜像列表并表达了对博客永恒性的思考。",
"/2025/12/01/linux.html": "这篇文章介绍了在浏览器中运行Linux的各种方法从最初的纯JS虚拟机JSLinux到后来的WASM虚拟机如v86、WebVM、WebCM再到容器化方案container2wasm以及直接将Linux内核编译为WASM的方案。作者详细对比了这些方案的优缺点包括性能、兼容性、功能和开发难度。文章还提到了模仿Linux环境的WebContainers和JupyterLite并最终认为虚拟机方案更靠谱但对WASM的未来充满期待。作者最后表示博客上添加类似功能的计划还在考虑中目前主要分享了各种方法的探索过程。",
"/2026/01/01/summary.html": "这篇文章介绍了作者对2025年的年终总结主要表达了对自身状态的担忧和对未来的不确定感。作者认为自己在记忆和思考能力方面有所下滑稳定性较低且未能抓住资产保值的机会。同时文章也记录了AI技术的飞速发展以及自己博客内容与时代脱节的现象。尽管对未来感到迷茫作者仍然抱有一丝希望期望在2026年做出正确的选择避免陷入危险。"
"/2026/01/01/summary.html": "这篇文章介绍了作者对2025年的年终总结主要表达了对自身状态的担忧和对未来的不确定感。作者认为自己在记忆和思考能力方面有所下滑稳定性较低且未能抓住资产保值的机会。同时文章也记录了AI技术的飞速发展以及自己博客内容与时代脱节的现象。尽管对未来感到迷茫作者仍然抱有一丝希望期望在2026年做出正确的选择避免陷入危险。",
"/2026/02/08/xslt.html": "这篇文章讲述了Google计划弃用XSLT技术以及作者对这一决定的调查和应对方案。Google基于XSLT用户占比低、库存在漏洞等原因建议将其从Web标准中删除。作者发现许多用户依赖XSLT进行博客订阅美化甚至将其作为博客框架。为了对抗这一趋势有人创建了网站https://xslt.rip并开发了Polyfill库通过WASM方式保持XSLT功能。虽然Polyfill库需要额外引用JS代码但作者已将其提交至CDNJS。随后作者探讨了替代方案包括使用纯CSS美化订阅源由AI生成feed.css以及混合XHTML的方式通过添加XHTML命名空间来实现链接等功能但这种方法会产生“不纯粹”的警告。文章最后总结技术可能会消失但总有其他技术可以解决问题并强调了适应浏览器厂商决策的重要性。",
"/2026/03/01/llm3.html": "这篇文章介绍了作者近期在LLM部署和应用方面的经历主要包括以下几个方面\n\n首先作者升级硬件从单张RTX4090 48GiB升级到双路RTX4090 48GiB并购买了TRX40+TR 3960X的主板套装用于运行GPT-OSS模型。随后作者尝试使用vLLM框架替换Ollama并成功配置了GPT-OSS模型达到了接近190Tps的性能。\n\n其次作者体验了DeepSeek 1M上下文模型发现其在处理长上下文任务时表现出色能够展现摘要无法捕捉的细节并成功生成简历、分析人格等。\n\n此外作者还尝试使用DeepSeek重构Mabbs并发现DeepSeek能够识别作者的博客信息这表明训练样本中包含了作者的信息。\n\n最后作者在8GiB内存的MacBook Pro上运行了LFM2.5-1.2B-Thinking模型并使用了Apollo软件体验了其快速的推理速度和良好的思考能力。作者总结认为AI的发展令人惊叹软件优化使其在有限硬件环境下也能运行。",
"/2026/04/14/ai-agent.html": "这篇文章介绍了“AI个人助理”Agent的发展现状和各种尝试。作者体验了OpenClaw、QClaw、WorkBuddy、Cline、LuckClaw和ApkClaw等不同的Agent项目发现它们在功能、易用性和性能上各有优劣。OpenClaw安装和使用存在困难国内大厂的QClaw和WorkBuddy则更易于上手但免费额度有限。作者认为开发任务更适合在编辑器集成AI中进行如GitHub Copilot。LuckClaw在微型开发板上运行表现出色ApkClaw则利用手机的优势操作移动应用。尽管Agent技术仍存在诸多问题但其应用场景不断拓展有望吸引更多人参与其中推动AI应用化进程。",
"/2026/05/01/virtual-net.html": "这篇文章介绍了作者在尝试异地组网搭建虚拟局域网时对多种组网工具的探索和体验。作者首先尝试了n2n但由于其项目停止更新且在NAT后的机器间存在掉线问题最终选择了WireGuard作为主要方案。文章详细描述了WireGuard的配置过程包括在Linux、OpenWrt和openEuler系统上的安装和配置并遇到了各种各样的挑战例如在红米AX3000路由器上找不到内核模块以及在openEuler上缺少WireGuard相关包。此外文章还提到了Netmaker和Headscale等WireGuard的控制平面以及VNT和EasyTier等其他组网工具并总结了最终选择WireGuard的原因简单、够用、可靠性不错且已经投入了大量配置。"
}

View File

@ -5,7 +5,6 @@ title,link,feed_url,description
极客兔兔,https://geektutu.com/,https://geektutu.com/atom.xml,致力于分享有趣的技术实践
维基萌,https://www.wikimoe.com/,https://www.wikimoe.com/rss,萌即是正义一名热爱acg的前端设计师的小站
7gugu's blog,https://www.7gugu.com/,https://7gugu.com/index.php/feed/,"一个用来存放我爱好的地方,编程,摄影之类的空间"
云游君,https://www.yunyoujun.cn/,https://www.yunyoujun.cn/atom.xml,希望能成为一个有趣的人。
Kingfish404,https://blog.kingfish404.cn/,https://blog.kingfish404.cn/index.xml,"Stay curious,stay naive. WUT. Jin Yu's Blog"
FKUN,https://blog.fkun.tech/,https://blog.fkun.tech/feed/,
Sinofine,https://sinofine.me/,https://sinofine.me/atom.xml,
@ -16,8 +15,10 @@ Vullfin的博客,https://blog.vull.top/,https://blog.vull.top/atom.xml,Vullfin's
陈陈菌博客,https://blog.glumi.cn/,https://blog.glumi.cn/rss.xml,计算机业余爱好者。
彬红茶日记,https://note.redcha.cn/,https://note.redcha.cn/rss.xml,我的个人日记!
Lanke's blog,https://blog.blueke.top/,https://blog.blueke.top/rss.xml,请为一切不真实之物骄傲,因为我们高于这个世界!
时光流·言,https://www.hansjack.com/,https://www.hansjack.com/feed/,个人博客,持续分享网站部署实战经验、精选书评解读和生活观察手记。 这里提供可复用的技术教程、深度阅读指南和真实生活洞察,与技术爱好者一起进步......
寒士杰克,https://www.hansjack.com/,https://www.hansjack.com/feed/,喜欢捣鼓,不断进步!
Pinpe 的云端,https://pinpe.top/,https://pinpe.top/rss.xml,一个属于自己的云朵。
Chise Hachiroku,https://chise.hachiroku.com/zh/,https://chise.hachiroku.com/zh/feed/,向明日的辉迹,干杯!
映屿,https://www.glowisle.me/,https://www.glowisle.me/atom.xml,关于互联网、书籍、生活琐事以及那些一闪而过的念头
Restent's Notebook,https://blog.gxres.net/,https://blog.gxres.net/atom.xml,不前沿技术分享
Coseroom,https://coseroom.com,,
RavelloH's Blog,https://ravelloh.com,https://ravelloh.com/feed.xml,Beginning of meditation.

Internal Server Error - xll
500 Internal Server Error

Gitea Version: 1.24.2