vault backup: 2025-07-10 20:32:18

This commit is contained in:
CrazyJasonwell committed 2025-07-10 20:32:18 +08:00
1 parent 2f34a38161
commit d96661acec
1 file changed
+186 -428
+186 -428
View File
@@ -760,135 +760,25 @@
"description": "人民日报社主管主办,原名《文史参考》,“真相、趣味、良知”,为学术界搭建话语平台,为新锐者提供思想阵地,为文史爱好者营造精神家园。",
"items": [
{
"title": "独腿博士研发智能假肢,让更多残疾人穿得起Wear robotic knees",
"description": "幼时截肢的他,最终发明、制造出一种独特而“有思想”的智能假肢!",
"content": "幼时截肢的他,最终发明、制造出一种独特而“有思想”的智能假肢!",
"category": "人物",
"link": "http://www.i21st.cn/story/3805.html",
"creator": "www.i21st.cn",
"pubDate": "Fri, 2 Sep 2022 07:00:00",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "zh",
"folder": "双语",
"feed": "21世纪",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "676d7c24905f895766b5d18b3fa0fd8c",
"highlights": []
},
{
"title": "侯逸凡:最年轻的“棋后”Conquering the world of chess",
"description": "16岁就成为最年轻的国际象棋世界“棋后”,她是真人版的《后翼弃兵》!",
"content": "16岁就成为最年轻的国际象棋世界“棋后”,她是真人版的《后翼弃兵》!",
"category": "人物",
"link": "http://www.i21st.cn/story/3807.html",
"creator": "www.i21st.cn",
"pubDate": "Thu, 1 Sep 2022 17:00:02",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "zh",
"folder": "双语",
"feed": "21世纪",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "3372e349617e8cdb5732ee4da3cdcdce",
"highlights": []
},
{
"title": "炫酷魔术背后隐藏的科学Spilling the magic beans",
"description": "空中飘物、液体消失、纸张燃烧……这些神奇的魔术背后都隐藏着什么科学原理?",
"content": "空中飘物、液体消失、纸张燃烧……这些神奇的魔术背后都隐藏着什么科学原理?",
"category": "科技",
"link": "http://www.i21st.cn/story/3806.html",
"creator": "www.i21st.cn",
"pubDate": "Wed, 17 Aug 2022 11:09:58",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "zh",
"folder": "双语",
"feed": "21世纪",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "e0627db8d1ede2acddc4a5574cefd5c9",
"highlights": []
},
{
"title": "“大老虎”被拿下!中共中央决定对周永康严重违纪问题立案审查",
"description": "",
"content": "",
"title": "还以为是外国人呢……新垣、东野、太宰全部是中国姓?",
"description": "<div><div><div class=\"rich_media_content\" id=\"js_content\"><section style=\"margin-right: 8px; margin-bottom: 8px; margin-left: 8px; white-space: normal; font-size: 16px; text-align: center; line-height: 1.5em;\"><img class=\"rich_pages js_insertlocalimg wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_gif/laADTC8BCK6M7Nv6wvsPyLPCsN7uraAJxdXiby5XB2BE6S0ulr9Fs213uZ85nlxAalcgRcLFiaSVdOVlrtCZRibIw/640?wx_fmt=gif\" style=\"height: auto !important;\" /></section><section style=\"margin-bottom: 8px; white-space: normal; line-height: 1.5em;\"><section style=\"display: inline-block;\"><span><br /></span></section></section><section style=\"margin-bottom: 8px; white-space: normal; line-height: 1.5em;\"><section style=\"text-align: center;\"><img class=\"rich_pages wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_png/laADTC8BCK6BKtksmjGLs7H2W1v4tr5dachdAmRhiaeMNlyIOhMzXVGCD4bmiakNec6Q9XG5n05QPrpLJ5r1wS9g/640?wx_fmt=png&amp;from=appmsg\" style=\"height: auto !important;\" type=\"block\" /></section><section style=\"display: inline-block;\"><span><br /></span></section></section><p><span><span>本 文 约 3400 字</span></span></p><section><section label=\"Powered by 135editor.com\"><p><span style=\"letter-spacing: 1px;\"><span style=\"color: rgb(178, 178, 178); font-size: 12px;\"><span>阅 读 需 要 12 分 钟</span></span><span><span> </span></span></span></p><p><span style=\"letter-spacing: 1px;\"><span><span><br /></span></span></span></p></section></section><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span>想象一下,你正在一个社交场合,结识了一位新朋友,你礼貌地询问他贵姓?他答道:</span></font></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span><br /></span></font></p><section style=\"text-align: center; margin-left: 8px; margin-right: 8px;\"><img class=\"rich_pages wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_png/laADTC8BCK6BKtksmjGLs7H2W1v4tr5dtmd1m1dw3Dx1teddY5Eibia1wy1ZtklsyPd7cwpNA3AaTjJIP8hSABhQ/640?wx_fmt=png&amp;from=appmsg\" style=\"width: 415px; height: auto !important;\" type=\"block\" /></section><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span><br /></span></font></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span>哦!东野啊,听过听过,就是东野圭吾的</span></font><span>“东野”,所以你肯定是……等等,你是中国人?</span></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><span><br /></span></p><section style=\"text-align: center; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><img class=\"rich_pages wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_png/laADTC8BCK6BKtksmjGLs7H2W1v4tr5d2SlNnFxWsUbCwlgOtWFtR88rPuscspQA9icCkEVLcbquyEgBpjcsYYA/640?wx_fmt=png&amp;from=appmsg\" style=\"width: 242px; height: auto !important;\" type=\"block\" /></section><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><span><br /></span></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span>再转过头问另一位新朋友,什么?你祖上姓新垣?那不用问了,新垣结衣我还不知道嘛,你肯定是</span></font><span>……啊?你也是中国人?</span></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><span><br /></span></p><section style=\"text-align: center; margin-bottom: 8px;\"><img class=\"rich_pages wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_jpg/laADTC8BCK6BKtksmjGLs7H2W1v4tr5dJ7Ude6boDRRppefibC5Qh3HUumYiakuibUWe7XVqbW8984DEYLje42nIg/640?wx_fmt=jpeg\" style=\"width: 264px; height: auto !important;\" type=\"block\" /></section><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><span><br /></span></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span>这对吗?不查不知道,一查才发现,东野氏、新垣氏、端木氏</span></font><span>……看上去像外国人,都是土生土长的中国姓氏!这又是怎么一回事?</span></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span><br /></span></font></p><section label=\"Powered by 135editor.com\"><section style=\"padding-right: 8px; padding-left: 8px;\"><section style=\"margin-bottom: 8px;\"><section style=\"letter-spacing: 0.578px; background-color: rgb(255, 255, 255); display: flex; width: 661px;\"><sLine truncated
"content": "<div><div><div class=\"rich_media_content\" id=\"js_content\"><section style=\"margin-right: 8px; margin-bottom: 8px; margin-left: 8px; white-space: normal; font-size: 16px; text-align: center; line-height: 1.5em;\"><img class=\"rich_pages js_insertlocalimg wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_gif/laADTC8BCK6M7Nv6wvsPyLPCsN7uraAJxdXiby5XB2BE6S0ulr9Fs213uZ85nlxAalcgRcLFiaSVdOVlrtCZRibIw/640?wx_fmt=gif\" style=\"height: auto !important;\" /></section><section style=\"margin-bottom: 8px; white-space: normal; line-height: 1.5em;\"><section style=\"display: inline-block;\"><span><br /></span></section></section><section style=\"margin-bottom: 8px; white-space: normal; line-height: 1.5em;\"><section style=\"text-align: center;\"><img class=\"rich_pages wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_png/laADTC8BCK6BKtksmjGLs7H2W1v4tr5dachdAmRhiaeMNlyIOhMzXVGCD4bmiakNec6Q9XG5n05QPrpLJ5r1wS9g/640?wx_fmt=png&amp;from=appmsg\" style=\"height: auto !important;\" type=\"block\" /></section><section style=\"display: inline-block;\"><span><br /></span></section></section><p><span><span>本 文 约 3400 字</span></span></p><section><section label=\"Powered by 135editor.com\"><p><span style=\"letter-spacing: 1px;\"><span style=\"color: rgb(178, 178, 178); font-size: 12px;\"><span>阅 读 需 要 12 分 钟</span></span><span><span> </span></span></span></p><p><span style=\"letter-spacing: 1px;\"><span><span><br /></span></span></span></p></section></section><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span>想象一下,你正在一个社交场合,结识了一位新朋友,你礼貌地询问他贵姓?他答道:</span></font></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span><br /></span></font></p><section style=\"text-align: center; margin-left: 8px; margin-right: 8px;\"><img class=\"rich_pages wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_png/laADTC8BCK6BKtksmjGLs7H2W1v4tr5dtmd1m1dw3Dx1teddY5Eibia1wy1ZtklsyPd7cwpNA3AaTjJIP8hSABhQ/640?wx_fmt=png&amp;from=appmsg\" style=\"width: 415px; height: auto !important;\" type=\"block\" /></section><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span><br /></span></font></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span>哦!东野啊,听过听过,就是东野圭吾的</span></font><span>“东野”,所以你肯定是……等等,你是中国人?</span></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><span><br /></span></p><section style=\"text-align: center; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><img class=\"rich_pages wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_png/laADTC8BCK6BKtksmjGLs7H2W1v4tr5d2SlNnFxWsUbCwlgOtWFtR88rPuscspQA9icCkEVLcbquyEgBpjcsYYA/640?wx_fmt=png&amp;from=appmsg\" style=\"width: 242px; height: auto !important;\" type=\"block\" /></section><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><span><br /></span></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span>再转过头问另一位新朋友,什么?你祖上姓新垣?那不用问了,新垣结衣我还不知道嘛,你肯定是</span></font><span>……啊?你也是中国人?</span></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><span><br /></span></p><section style=\"text-align: center; margin-bottom: 8px;\"><img class=\"rich_pages wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_jpg/laADTC8BCK6BKtksmjGLs7H2W1v4tr5dJ7Ude6boDRRppefibC5Qh3HUumYiakuibUWe7XVqbW8984DEYLje42nIg/640?wx_fmt=jpeg\" style=\"width: 264px; height: auto !important;\" type=\"block\" /></section><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><span><br /></span></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span>这对吗?不查不知道,一查才发现,东野氏、新垣氏、端木氏</span></font><span>……看上去像外国人,都是土生土长的中国姓氏!这又是怎么一回事?</span></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span><br /></span></font></p><section label=\"Powered by 135editor.com\"><section style=\"padding-right: 8px; padding-left: 8px;\"><section style=\"margin-bottom: 8px;\"><section style=\"letter-spacing: 0.578px; background-color: rgb(255, 255, 255); display: flex; width: 661px;\"><sectiLine truncated
"category": "",
"link": "/article/translate/5913_1.html",
"creator": "www.i21st.cn",
"pubDate": "Wed, 30 Jul 2014 10:35:02",
"link": "http://weixin.sogou.com/weixin?type=2&query=%E5%9B%BD%E5%AE%B6%E4%BA%BA%E6%96%87%E5%8E%86%E5%8F%B2+%E8%BF%98%E4%BB%A5%E4%B8%BA%E6%98%AF%E5%A4%96%E5%9B%BD%E4%BA%BA%E5%91%A2%E2%80%A6%E2%80%A6%E6%96%B0%E5%9E%A3%E3%80%81%E4%B8%9C%E9%87%8E%E3%80%81%E5%A4%AA%E5%AE%B0%E5%85%A8%E9%83%A8%E6%98%AF%E4%B8%AD%E5%9B%BD%E5%A7%93%EF%BC%9F",
"creator": "",
"pubDate": "Thu, 10 Jul 2025 13:30:00 +0800",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "zh",
"folder": "双语",
"feed": "21世纪",
"language": "",
"folder": "人文",
"feed": "国家人文历史",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "9f21f8fa51704a71191c0219c9793433",
"highlights": []
},
{
"title": "廖凡加冕柏林电影节影帝",
"description": "Berlin International Film Festival",
"content": "Berlin International Film Festival",
"category": "",
"link": "http://www.i21st.cn/article/translate/4929_1.html",
"creator": "www.i21st.cn",
"pubDate": "Mon, 17 Feb 2014 11:22:15",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "zh",
"folder": "双语",
"feed": "21世纪",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "f58695c9a7cdaddb9ab71b5698627132",
"highlights": []
},
{
"title": "索契冬奥会李坚柔夺中国首金",
"description": "Short track speed skating",
"content": "Short track speed skating",
"category": "",
"link": "http://www.i21st.cn/article/translate/4927_1.html",
"creator": "www.i21st.cn",
"pubDate": "Fri, 14 Feb 2014 10:50:53",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "zh",
"folder": "双语",
"feed": "21世纪",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "7371f6dbcab15edaf9642e52b8d5ac96",
"hash": "4201b11405f33110511efeb9f60405fa",
"highlights": []
},
{
@@ -979,6 +869,72 @@
"hash": "8a7b5ecca0ebc50594522df8d1c34ac3",
"highlights": []
},
{
"title": "侯逸凡:最年轻的“棋后”Conquering the world of chess",
"description": "16岁就成为最年轻的国际象棋世界“棋后”,她是真人版的《后翼弃兵》!",
"content": "16岁就成为最年轻的国际象棋世界“棋后”,她是真人版的《后翼弃兵》!",
"category": "人物",
"link": "http://www.i21st.cn/story/3807.html",
"creator": "www.i21st.cn",
"pubDate": "Thu, 1 Sep 2022 17:00:02",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "zh",
"folder": "双语",
"feed": "21世纪",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "3372e349617e8cdb5732ee4da3cdcdce",
"highlights": []
},
{
"title": "“大老虎”被拿下!中共中央决定对周永康严重违纪问题立案审查",
"description": "",
"content": "",
"category": "",
"link": "/article/translate/5913_1.html",
"creator": "www.i21st.cn",
"pubDate": "Wed, 30 Jul 2014 10:35:02",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "zh",
"folder": "双语",
"feed": "21世纪",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "9f21f8fa51704a71191c0219c9793433",
"highlights": []
},
{
"title": "索契冬奥会李坚柔夺中国首金",
"description": "Short track speed skating",
"content": "Short track speed skating",
"category": "",
"link": "http://www.i21st.cn/article/translate/4927_1.html",
"creator": "www.i21st.cn",
"pubDate": "Fri, 14 Feb 2014 10:50:53",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "zh",
"folder": "双语",
"feed": "21世纪",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "7371f6dbcab15edaf9642e52b8d5ac96",
"highlights": []
},
{
"title": "秦始皇求仙问药的“昆仑”在哪里?坐高铁能到吗?",
"description": "<div><div><div class=\"rich_media_content\" id=\"js_content\"><section style=\"margin-right: 8px; margin-bottom: 8px; margin-left: 8px; white-space: normal; font-size: 16px; text-align: center; line-height: 1.5em;\"><img class=\"rich_pages js_insertlocalimg wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_gif/laADTC8BCK6M7Nv6wvsPyLPCsN7uraAJxdXiby5XB2BE6S0ulr9Fs213uZ85nlxAalcgRcLFiaSVdOVlrtCZRibIw/640?wx_fmt=gif\" style=\"height: auto !important;\" /></section><section style=\"margin-bottom: 8px; white-space: normal; line-height: 1.5em;\"><section style=\"display: inline-block;\"><span><br /></span></section></section><section style=\"margin-bottom: 8px; white-space: normal; line-height: 1.5em;\"><section style=\"text-align: center; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><img class=\"rich_pages wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_png/laADTC8BCK4BVPAv0hJPaNADoHURc78arMKa07vIOSIiarnI78uIxvUmykV7Oib858ialNYfZ8IasSO4UoU9kmYSA/640?wx_fmt=png&amp;from=appmsg\" style=\"height: auto !important;\" type=\"block\" /></section><section style=\"display: inline-block;\"><span><br /></span></section></section><p><span><span>本 文 约 5000 字</span></span></p><section><section label=\"Powered by 135editor.com\"><p><span style=\"letter-spacing: 1px;\"><span style=\"color: rgb(178, 178, 178); font-size: 12px;\"><span>阅 读 需 要 17 分 钟</span></span><span><span> </span></span></span></p><p><span style=\"letter-spacing: 1px;\"><span><span><br /></span></span></span></p></section><section><span><p></p></span></section></section><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span>前段时间</span></font><font face=\"宋体\"><span>,《光明日报》的一篇《实证古代</span></font><font face=\"宋体\"><span>“昆仑”的地理位置——青海黄河源发现秦始皇遣使“采药昆仑”石刻》在中国的历史与考古学界掀起了一场惊涛骇浪,一大批历史学者纷纷就这一石刻的篆刻字体、年代、文字内容以及当地自然环境发表了相关评论。众说纷纭中,大家最为关注的莫过于石刻对“昆仑”这一中国古代传奇圣山的地理定位,从先秦到明清,昆仑都</span></font><font face=\"宋体\"><span>堪称</span></font><font face=\"宋体\"><span>“</span></font><font face=\"宋体\"><span>神圣之巅</span></font><font face=\"宋体\"><span>”</span></font><font face=\"宋体\"><span>,它的存在曾被认为是传说中虚幻之处,也曾在从陕西到新疆之间的山川广域之中辗转腾挪。那么中国古代的</span></font><font face=\"宋体\"><span>“昆仑”究竟在何方?</span></font></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span><br /></span></font></p><section style=\"text-align: center; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><img class=\"rich_pages wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_png/laADTC8BCK4BVPAv0hJPaNADoHURc78auWYnmsvblHQrcqaaGicjbQrH5CzbjaQswQnI9EEQpf9Nn4I7BpDWkDQ/640?wx_fmt=png&amp;from=appmsg\" style=\"height: auto !important;\" type=\"block\" /></section><section style=\"text-align: center; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><img class=\"rich_pages wxw-img\" src=\"http://img2.jintiankansha.me/get?src=http://mmbiz.qpic.cn/mmbiz_png/laADTC8BCK4BVPAv0hJPaNADoHURc78a5jwYJ1xwpMHgTFrKw5X0hg5LmtT1cnvnib4sZtwFW5icYmpibNEdtXESA/640?wx_fmt=png&amp;from=appmsg\" style=\"height: auto !important;\" type=\"block\" /></section><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span><br /></span></font></p><section label=\"Powered by 135editor.com\"><section style=\"padding-right: 8px; padding-left: 8px;\"><section style=\"margin-bottom: 8px;\"><section style=\"letter-spacing: 0.578px; background-color: rgb(255, 255, 255); display: flex; width: 661px;\"><section style=\"display: flex;\"><section style=\"padding: 6px 12px; text-align: center; border-width: 1px 0px; border-top-style: solid; border-bottom-style: solid; border-top-color: rgb(98, 98, 98); border-bottom-color: rgb(98, 98, 98);\"><p style=\"font-weight: bold; line-height: 22px; letter-spacing: 1px; margin-bottom: 0px;\"><font face=\"仿宋\"><b><span>茫茫山海:昆仑之墟何在?</span></b></font></p></section></section></section></section></section></section><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"></p><p><span> </span></p><p style=\"line-height: 1.75em; margin-left: 8px; margin-right: 8px; margin-bottom: 8px;\"><font face=\"宋体\"><span>关于</span></font><font face=\"宋体\"><span>昆仑的记载,最早起于先秦时代的典籍中,最初多</span></font><font faceLine truncated
@@ -1080,226 +1036,6 @@
"image": "\n\t",
"description": "分享免费、小巧、实用、有趣、绿色的软件",
"items": [
{
"title": "IntelliSSH:AI驱动的远程服务器管理软件",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"946555259\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"946555259\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"946555259\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509587\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"df4248eea569923f43f773ef649506dd\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"946555259\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"946555259\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"946555259\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"946555259\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509587\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"df4248eea569923f43f773ef649506dd\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"946555259\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uin = Line truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/OQujCpu9iGz2VLn3EiwbGg",
"creator": "",
"pubDate": "2025-07-09T11:01:21.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "OQujCpu9iGz2VLn3EiwbGg",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "290eeedc7d45ee8faa23fab84d6ac371",
"highlights": []
},
{
"title": "自托管的云文件存储解决方案Phylum",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"1626685441\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"1626685441\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"1626685441\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509537\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"ac26447ad37a4bd1e3b05159a69bd74d\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"1626685441\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n thiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"1626685441\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"1626685441\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"1626685441\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509537\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"ac26447ad37a4bd1e3b05159a69bd74d\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"1626685441\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/xBkVJ0TIxPerLzM7YMST8Q",
"creator": "",
"pubDate": "2025-07-07T11:00:35.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "xBkVJ0TIxPerLzM7YMST8Q",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "37e8086261b53a64d0e3494743fc98a7",
"highlights": []
},
{
"title": "开源服务运行监控工具Lunalytics",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"80449066\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"80449066\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"80449066\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509514\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"e7ec6a4073404fe8edfc53f3fe950552\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"80449066\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uin = Line truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"80449066\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"80449066\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"80449066\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509514\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"e7ec6a4073404fe8edfc53f3fe950552\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"80449066\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uin = uin Line truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/RbOSWZiiOtlHv2VuA1tiLg",
"creator": "",
"pubDate": "2025-07-05T11:00:18.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "RbOSWZiiOtlHv2VuA1tiLg",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "f0df0be64f51d343c75d6699734cd798",
"highlights": []
},
{
"title": "Docker端口映射查看工具Dockpeek",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"507683773\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"507683773\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"507683773\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509487\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"7aa81ad8b99aedb2de323aac72a57e1e\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"507683773\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"507683773\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"507683773\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"507683773\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509487\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"7aa81ad8b99aedb2de323aac72a57e1e\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"507683773\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uin = Line truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/PTjw74p0qW9rxiOytEWBXw",
"creator": "",
"pubDate": "2025-07-04T11:00:39.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "PTjw74p0qW9rxiOytEWBXw",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "c8f37ade75a11813df0bcb7cf0bdd61a",
"highlights": []
},
{
"title": "股票分析MCP服务stock-scanner-mcp",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"64402733\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"64402733\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"64402733\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509467\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"56ae3ddf7430cdf0d0bd13247a5b396a\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"64402733\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uin = Line truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"64402733\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"64402733\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"64402733\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509467\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"56ae3ddf7430cdf0d0bd13247a5b396a\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"64402733\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uin = uin Line truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/x60X3th9Doqm891_sUia1A",
"creator": "",
"pubDate": "2025-07-02T11:02:08.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "x60X3th9Doqm891_sUia1A",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "420210f81c94b8766190b7b62de88c66",
"highlights": []
},
{
"title": "极易搭建的自助Git服务Gogs",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"123300513\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"123300513\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"123300513\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509428\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"2f03e36fd2471c3ae2ca24971faca36e\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"123300513\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"123300513\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"123300513\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"123300513\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509428\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"2f03e36fd2471c3ae2ca24971faca36e\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"123300513\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uin = Line truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/eL0FL7l0NuILUZZB6EEyug",
"creator": "",
"pubDate": "2025-06-30T11:01:20.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "eL0FL7l0NuILUZZB6EEyug",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "b54132b0681affd72262bc6384d424bf",
"highlights": []
},
{
"title": "先进的视频监控应用iSpy Agent DVR",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"1968652729\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"1968652729\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"1968652729\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509385\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"cfd46cae2082abcb4080af456d30aa53\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"1968652729\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n thiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"1968652729\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"1968652729\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"1968652729\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509385\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"cfd46cae2082abcb4080af456d30aa53\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"1968652729\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/zQjsqJ2SCic2sIHZsEIKgQ",
"creator": "",
"pubDate": "2025-06-28T11:01:00.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "zQjsqJ2SCic2sIHZsEIKgQ",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "7e131f0d49c5f528c5126c431bbd8321",
"highlights": []
},
{
"title": "微信公众号文章搜索MCP服务weixin_search_mcp",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"641666127\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"641666127\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"641666127\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509332\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"779ed7b6c46cc79a8f7de6a63ba2f4fe\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"641666127\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"641666127\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"641666127\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"641666127\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509332\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"779ed7b6c46cc79a8f7de6a63ba2f4fe\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"641666127\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uin = Line truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/mYn2xaoIVom9zptCMIxvLA",
"creator": "",
"pubDate": "2025-06-27T11:02:24.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "mYn2xaoIVom9zptCMIxvLA",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "cec0b4ac495d75dcf0d0496c32a70cac",
"highlights": []
},
{
"title": "AList的开源替代:OpenList",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"799561153\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"799561153\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"799561153\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509279\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"247dd9fa0e2877a0c16af75ed1deca36\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"799561153\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"799561153\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"799561153\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"799561153\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509279\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"247dd9fa0e2877a0c16af75ed1deca36\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"799561153\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uin = Line truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/Dre79Okfs5ZuGT7e9zCWpw",
"creator": "",
"pubDate": "2025-06-25T11:02:20.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "Dre79Okfs5ZuGT7e9zCWpw",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "53e3d4c67a46cabd373f08ca74932a19",
"highlights": []
},
{
"title": "FeedMe:通过AI摘要提升阅读效率",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"1930439200\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"1930439200\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"1930439200\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509240\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"73bc3f01b1302b5a0ba5c167baac416a\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"1930439200\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n thiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"1930439200\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"1930439200\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"1930439200\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509240\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"73bc3f01b1302b5a0ba5c167baac416a\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"1930439200\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/jFPxZMLSKIxsBa72VhwVhg",
"creator": "",
"pubDate": "2025-06-23T11:00:24.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "jFPxZMLSKIxsBa72VhwVhg",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "9d4d7122028a361937c754b38d2b7578",
"highlights": []
},
{
"title": "Windows 远程控制的最佳方案,我只服微软。但还有一个问题…",
"description": "作为 Windows 操作系统的开发者,微软提供了整套跨平台的远程控制方案,就是 Windows App! 微软在起名这方面,还是非常随意的。 顾名思义,Windows App 是一个叫做 Windo ",
@@ -1520,6 +1256,116 @@
"hash": "aca0cf1e23a0eeab8b00bced237f9255",
"highlights": []
},
{
"title": "自托管的云文件存储解决方案Phylum",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"1626685441\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"1626685441\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"1626685441\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509537\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"ac26447ad37a4bd1e3b05159a69bd74d\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"1626685441\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n thiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"1626685441\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"1626685441\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"1626685441\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509537\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"ac26447ad37a4bd1e3b05159a69bd74d\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"1626685441\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/xBkVJ0TIxPerLzM7YMST8Q",
"creator": "",
"pubDate": "2025-07-07T11:00:35.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "xBkVJ0TIxPerLzM7YMST8Q",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "37e8086261b53a64d0e3494743fc98a7",
"highlights": []
},
{
"title": "Docker端口映射查看工具Dockpeek",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"507683773\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"507683773\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"507683773\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509487\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"7aa81ad8b99aedb2de323aac72a57e1e\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"507683773\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"507683773\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"507683773\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"507683773\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509487\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"7aa81ad8b99aedb2de323aac72a57e1e\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"507683773\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uin = Line truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/PTjw74p0qW9rxiOytEWBXw",
"creator": "",
"pubDate": "2025-07-04T11:00:39.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "PTjw74p0qW9rxiOytEWBXw",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "c8f37ade75a11813df0bcb7cf0bdd61a",
"highlights": []
},
{
"title": "极易搭建的自助Git服务Gogs",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"123300513\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"123300513\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"123300513\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509428\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"2f03e36fd2471c3ae2ca24971faca36e\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"123300513\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"123300513\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"123300513\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"123300513\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509428\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"2f03e36fd2471c3ae2ca24971faca36e\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"123300513\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uin = Line truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/eL0FL7l0NuILUZZB6EEyug",
"creator": "",
"pubDate": "2025-06-30T11:01:20.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "eL0FL7l0NuILUZZB6EEyug",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "b54132b0681affd72262bc6384d424bf",
"highlights": []
},
{
"title": "微信公众号文章搜索MCP服务weixin_search_mcp",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"641666127\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"641666127\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"641666127\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509332\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"779ed7b6c46cc79a8f7de6a63ba2f4fe\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"641666127\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"641666127\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"641666127\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"641666127\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509332\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"779ed7b6c46cc79a8f7de6a63ba2f4fe\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"641666127\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uin = Line truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/mYn2xaoIVom9zptCMIxvLA",
"creator": "",
"pubDate": "2025-06-27T11:02:24.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "mYn2xaoIVom9zptCMIxvLA",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "cec0b4ac495d75dcf0d0496c32a70cac",
"highlights": []
},
{
"title": "FeedMe:通过AI摘要提升阅读效率",
"description": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"1930439200\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"1930439200\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"1930439200\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509240\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"73bc3f01b1302b5a0ba5c167baac416a\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"1930439200\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n thiLine truncated
"content": "<!DOCTYPE html>\n<html class=\"\n\">\n <head>\n <meta name=\"wechat-enable-text-zoom-em\" content=\"true\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n<meta name=\"color-scheme\" content=\"light dark\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover\">\n<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/NTI4MWU5.ico\" reportloaderror>\n<link rel=\"mask-icon\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/MjliNWVm.svg\" color=\"#4C4C4C\" reportloaderror>\n<link rel=\"apple-touch-icon-precomposed\" href=\"//res.wx.qq.com/a/wx_fed/assets/res/OTE0YTAw.png\" reportloaderror>\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\">\n<meta name=\"format-detection\" content=\"telephone=no\">\n<meta name=\"referrer\" content=\"origin-when-cross-origin\">\n<meta name=\"referrer\" content=\"strict-origin-when-cross-origin\">\n<script nonce=\"1930439200\" reportloaderror>try{document.getElementsByTagName('html').item(0).style.webkitTextSizeAdjust=JSON.parse(window.__wxWebEnv.getEnv()).fontScale+'%'}catch(e){}</script>\n<script type=\"text/javascript\" nonce=\"1930439200\" reportloaderror>\n window.logs = { pagetime: {} };\n window.logs.pagetime['html_begin'] = (+new Date());\n window.LANG = \"en\";\n</script>\n\n \n<script nonce=\"1930439200\" reportloaderror>\nwindow.__moon_initcallback = function () {\n if (!!window.__initCatch) {\n window.__initCatch({\n idkey: 27611 + 2,\n startKey: 0,\n limit: 128,\n badjsId: 43,\n reportOpt: {\n uin: '',\n biz: \"MzI1NTQxMzc3MA==\" || \"\",\n mid: \"2247509240\" || \"\" || \"\",\n idx: \"1\" || \"\" || \"\",\n sn: \"73bc3f01b1302b5a0ba5c167baac416a\" || \"\" || \"\",\n },\n extInfo: {\n network_rate: 0.01, \n badjs_rate: 0.1\n }\n });\n }\n}\n</script>\n\n <script type=\"text/javascript\" nonce=\"1930439200\" reportloaderror>\n \n \n var WX_BJ_REPORT = window.WX_BJ_REPORT || {};\n (function(_) {\n if (_.BadJs) {\n return;\n }\n \n var BADJS_WIN_ERR = 'BadjsWindowError';\n var extend = function(source, destination) {\n for (var property in destination) {\n source[property] = destination[property]\n }\n return source\n }\n \n _.BadJs = {\n uin: 0,\n mid: \"\",\n view: \"wap\",\n _cache: {},\n _info: {},\n _hookCallback: null,\n ignorePath: true,\n throw: function(e, extData) {\n this.onError(e, extData);\n throw e;\n },\n \n \n onError: function(e, extData) {\n try {\n \n if (e.BADJS_EXCUTED == true) {\n return;\n }\n e.BADJS_EXCUTED = true;\n var data = errToData(e);\n data.uin = this.uin;\n data.mid = this.mid;\n data.view = this.view;\n data.cmdb_module = 'mmbizwap';\n \n if (!!extData) {\n data = extend(data, extData);\n }\n \n if (data.cid) {\n data.key = \"[\" + data.cid + \"]:\" + data.key;\n }\n \n if (data._info) {\n if (Object.prototype.toString.call(data._info) == \"[object Object]\") {\n data.msg += \" || info:\" + JSON.stringify(data._info);\n } else if (Object.prototype.toString.call(data._info) == \"[object String]\") {\n data.msg += \" || info:\" + data._info;\n } else {\n data.msg += \" || info:\" + data._info;\n }\n }\n if (typeof this._hookCallback == \"function\") {\n if (this._hookCallback(data) === false) {\n return\n }\n }\n this._send(data);\n return _.BadJs;\n } catch (e) {\n console.error(e);\n }\n },\n winErr: function(event) {\n if (event.error && event.error.BADJS_EXCUTED) {\n return;\n }\n if (event.type === 'unhandledrejection') {\n if (event.reason instanceof Error) {\n var e = event.reason || {};\n _.BadJs.onError(createError(event.type, e.message || \"\", e.sourceURL || \"\", e.line || \"\", e.column || \"\", event.reason));\n } else {\n var message = typeof event.reason === 'object' ? JSON.stringify(event.reason) : event.reason;\n _.BadJs.onError(createError(event.type, message, \"\", \"\", \"\", event.reason));\n }\n }else{\n _.BadJs.onError(createError(BADJS_WIN_ERR, event.message, event.filename, event.lineno, event.colno, event.error));\n }\n },\n init: function(uin, mid, view) {\n this.uiLine truncated
"category": "",
"link": "https://mp.weixin.qq.com/s/jFPxZMLSKIxsBa72VhwVhg",
"creator": "",
"pubDate": "2025-06-23T11:00:24.000Z",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "jFPxZMLSKIxsBa72VhwVhg",
"language": "",
"folder": "IT技术",
"feed": "各种折腾",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "9d4d7122028a361937c754b38d2b7578",
"highlights": []
},
{
"title": "微信官宣:备份与恢复功能正式上线…了吗?",
"description": "还记得差不多半个月前,网传微信将提供备份聊天记录到 U 盘功能里提到,微信灰度上线了备份聊天记录到U盘功能。 今天早上,微信官方信息第一出口微信派发布了《聊天记录备份和迁移,更新!》,正式上线新的备份 ",
@@ -1753,28 +1599,6 @@
"hash": "70391c560d13fa2ded36785145ef6474",
"highlights": []
},
{
"title": "航天飞机为什么被淘汰?",
"description": "<div><img src=\"http://picx.zhimg.com/v2-76fed30f10beac07dc1504820516242c_fhd.jpg?source=8673f162\" alt=\"头图\"/><div><div>\n<p>如果这问题用“航天飞机”表示美国太空运输系统 Space Transportation System(以下称为 STS),那么其退役的主要原因是成本过高、安全性不足、维护困难。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-4ae95521eddcd76d0db2ad82bc0810ab_720w.jpg?source=8673f162\" alt=\"\"><figcaption>STS. 拍摄者:Caryn Bohn</figcaption></figure>\n<p>“航天飞机”一词表示水平着陆的、可重复使用的航天器,不限于 STS。现存的无人驾驶航天飞机可以完成一些任务,主要是科学和军事任务。今后,人们或许还会制造更多的航天飞机。</p>\n<p>历史上,STS 曾自称在以下方面超越运载火箭:</p>\n<ul>\n<li><strong>重复使用</strong>。STS 计划起初吹嘘每架轨道飞行器可以复用 100 次,理论上比“为每次任务建造新航天器”便宜。在第一次发射前,STS 计划承诺“大大降低太空飞行的成本”。</li>\n<li><strong>载荷能力</strong>。可以运送 7 名航天员,可以发射·维修大型卫星、空间站结构、空间望远镜等,执行需要大量人员、物资的任务——必要时也包括“攻击敌人的航天器”、“将核弹丢在敌国”,尽管弹道导弹更擅长投送核弹。</li>\n<li><strong>特殊设备</strong>。STS 的机械臂等设备可帮助航天员执行相对复杂的舱外工作,在修复哈勃空间望远镜时声称“只有 STS 做得到”。</li>\n</ul>\n<p>后来,人们发现 STS 有以下问题:</p>\n<ul>\n<li><strong>成本高昂</strong>。“重复使用”和“载荷能力”建立在昂贵的运行成本、维护成本、发射成本上,1972 年概算每磅有效载荷的成本按通货膨胀合 2012 年 1109 美元,实际上在不考虑研究与开发费用的情况下每磅有效载荷的成本高达 2012 年的 37207 美元,<em>超额 3255%</em>;STS 计划主任罗伯特·汤普森承认,后来设计阶段的主要目标“不包含降低造价”,因为“降低成本会导致其他技术要求无法满足”。1982 年,NASA 估算 STS 每次飞行花费 2.6 亿美元,估算时声称每年要发射 24 次、持续十年。实际上,STS 到退役共发射 135 次,平均每次发射耗资 16.42 亿美元。</li>\n<li><strong>过于复杂</strong>。STS 的“关键部件”数量众多,增加维护成本、延长维护时间、降低可行的发射频率和复用次数。轨道飞行器每次降落后要花 3 到 7 个月进行拆卸、检查、翻新,需要大量熟悉它的工作人员。STS 使用的多项技术,包括引擎,从未达到起初预想的水平。随着时间流逝,工作人员换代进一步降低 STS 的可维护性。</li>\n<li><strong>安全性差</strong>。1986 年挑战者号失事、2003 年哥伦比亚号失事造成大量航天员死亡,调查显示两次失事都归因于设计缺陷和安全管理问题,O 形环被腐蚀的事情发生过数次、没有引起足够关注,破坏哥伦比亚号隔热层的泡沫塑料块本就没必要安装、之前就曾脱落并砸到轨道飞行器上。STS 计划起初宣传事故率约 1/100000,失事后调查发现 STS 早期发射时发生“灾难性事故”的概率高达 1/9。后期经过改进,STS 的“灾难性事故”概率下降到约 1/90。美国找不到给 STS 配置有效的紧急逃生系统的方法。</li>\n</ul>\n<figure><img src=\"http://picx.zhimg.com/v2-52c41c5248f3327e0e2fc560af493b0c_720w.jpg?source=8673f162\" alt=\"\"><figcaption>挑战者号点火后 58.788 秒,右侧固体助推器出现羽流</figcaption></figure>\n<figure><img src=\"http://pic1.zhimg.com/v2-ef5311c30a996e47c9d3512e7be9dcac_720w.jpg?source=8673f162\" alt=\"\"><figcaption>挑战者号失事</figcaption></figure>\n<figure><img src=\"http://picx.zhimg.com/v2-330251f37d6d604631cbe9d676e31f3f_720w.jpg?source=8673f162\" alt=\"\"><figcaption>哥伦比亚号失事</figcaption></figure>\n<ul>\n<li><strong>必要性低</strong>。NASA 起初将 STS 的主要任务设为部署卫星,<em>给出的报价低于成本</em>,但一次性运载火箭的快速进步让用 STS 赔本发射卫星的吸引力仍然不足。轨道飞行器的死重对有效载荷的限制无法处理。用 STS 为轨道上的大部分卫星进行维护、加注燃料比用一次性火箭发射一个执行相同任务的新卫星还要贵,何况新卫星能够使用新技术提高效能。在挑战者号失事后,NASA 修改了 STS 的任务安排,缓解了这个问题。</li>\n</ul>\n<p>——从诞生到退役,STS 进行了 135 次发射,发生 2 次重大事故,死亡 14 人。轨道飞行器的最大复用次数为 39(发现号)。STS 的主发动机号称可以复用 55 次,实际上平均复用了约 7.8 次。</p>\n<p>苏联“暴风雪”号航天Line truncated
"content": "<div><img src=\"http://picx.zhimg.com/v2-76fed30f10beac07dc1504820516242c_fhd.jpg?source=8673f162\" alt=\"头图\"/><div><div>\n<p>如果这问题用“航天飞机”表示美国太空运输系统 Space Transportation System(以下称为 STS),那么其退役的主要原因是成本过高、安全性不足、维护困难。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-4ae95521eddcd76d0db2ad82bc0810ab_720w.jpg?source=8673f162\" alt=\"\"><figcaption>STS. 拍摄者:Caryn Bohn</figcaption></figure>\n<p>“航天飞机”一词表示水平着陆的、可重复使用的航天器,不限于 STS。现存的无人驾驶航天飞机可以完成一些任务,主要是科学和军事任务。今后,人们或许还会制造更多的航天飞机。</p>\n<p>历史上,STS 曾自称在以下方面超越运载火箭:</p>\n<ul>\n<li><strong>重复使用</strong>。STS 计划起初吹嘘每架轨道飞行器可以复用 100 次,理论上比“为每次任务建造新航天器”便宜。在第一次发射前,STS 计划承诺“大大降低太空飞行的成本”。</li>\n<li><strong>载荷能力</strong>。可以运送 7 名航天员,可以发射·维修大型卫星、空间站结构、空间望远镜等,执行需要大量人员、物资的任务——必要时也包括“攻击敌人的航天器”、“将核弹丢在敌国”,尽管弹道导弹更擅长投送核弹。</li>\n<li><strong>特殊设备</strong>。STS 的机械臂等设备可帮助航天员执行相对复杂的舱外工作,在修复哈勃空间望远镜时声称“只有 STS 做得到”。</li>\n</ul>\n<p>后来,人们发现 STS 有以下问题:</p>\n<ul>\n<li><strong>成本高昂</strong>。“重复使用”和“载荷能力”建立在昂贵的运行成本、维护成本、发射成本上,1972 年概算每磅有效载荷的成本按通货膨胀合 2012 年 1109 美元,实际上在不考虑研究与开发费用的情况下每磅有效载荷的成本高达 2012 年的 37207 美元,<em>超额 3255%</em>;STS 计划主任罗伯特·汤普森承认,后来设计阶段的主要目标“不包含降低造价”,因为“降低成本会导致其他技术要求无法满足”。1982 年,NASA 估算 STS 每次飞行花费 2.6 亿美元,估算时声称每年要发射 24 次、持续十年。实际上,STS 到退役共发射 135 次,平均每次发射耗资 16.42 亿美元。</li>\n<li><strong>过于复杂</strong>。STS 的“关键部件”数量众多,增加维护成本、延长维护时间、降低可行的发射频率和复用次数。轨道飞行器每次降落后要花 3 到 7 个月进行拆卸、检查、翻新,需要大量熟悉它的工作人员。STS 使用的多项技术,包括引擎,从未达到起初预想的水平。随着时间流逝,工作人员换代进一步降低 STS 的可维护性。</li>\n<li><strong>安全性差</strong>。1986 年挑战者号失事、2003 年哥伦比亚号失事造成大量航天员死亡,调查显示两次失事都归因于设计缺陷和安全管理问题,O 形环被腐蚀的事情发生过数次、没有引起足够关注,破坏哥伦比亚号隔热层的泡沫塑料块本就没必要安装、之前就曾脱落并砸到轨道飞行器上。STS 计划起初宣传事故率约 1/100000,失事后调查发现 STS 早期发射时发生“灾难性事故”的概率高达 1/9。后期经过改进,STS 的“灾难性事故”概率下降到约 1/90。美国找不到给 STS 配置有效的紧急逃生系统的方法。</li>\n</ul>\n<figure><img src=\"http://picx.zhimg.com/v2-52c41c5248f3327e0e2fc560af493b0c_720w.jpg?source=8673f162\" alt=\"\"><figcaption>挑战者号点火后 58.788 秒,右侧固体助推器出现羽流</figcaption></figure>\n<figure><img src=\"http://pic1.zhimg.com/v2-ef5311c30a996e47c9d3512e7be9dcac_720w.jpg?source=8673f162\" alt=\"\"><figcaption>挑战者号失事</figcaption></figure>\n<figure><img src=\"http://picx.zhimg.com/v2-330251f37d6d604631cbe9d676e31f3f_720w.jpg?source=8673f162\" alt=\"\"><figcaption>哥伦比亚号失事</figcaption></figure>\n<ul>\n<li><strong>必要性低</strong>。NASA 起初将 STS 的主要任务设为部署卫星,<em>给出的报价低于成本</em>,但一次性运载火箭的快速进步让用 STS 赔本发射卫星的吸引力仍然不足。轨道飞行器的死重对有效载荷的限制无法处理。用 STS 为轨道上的大部分卫星进行维护、加注燃料比用一次性火箭发射一个执行相同任务的新卫星还要贵,何况新卫星能够使用新技术提高效能。在挑战者号失事后,NASA 修改了 STS 的任务安排,缓解了这个问题。</li>\n</ul>\n<p>——从诞生到退役,STS 进行了 135 次发射,发生 2 次重大事故,死亡 14 人。轨道飞行器的最大复用次数为 39(发现号)。STS 的主发动机号称可以复用 55 次,实际上平均复用了约 7.8 次。</p>\n<p>苏联“暴风雪”号航天飞Line truncated
"category": "",
"link": "https://daily.zhihu.com/story/9782455",
"creator": "",
"pubDate": "Thu, 10 Jul 2025 08:27:02 +0800",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "",
"folder": "资讯",
"feed": "知乎",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "b7b8f935745963dc6347512b9735cecf",
"highlights": []
},
{
"title": "历史上有哪些名人,还是普通人的时候就相互熟悉?",
"description": "<div><img src=\"http://picx.zhimg.com/v2-ba26b19cba61cf8e200f6ad02ea38dfe_fhd.jpg?source=8673f162\" alt=\"头图\"/><div><div>\n<p>洪武四年,明军从陕西、湖广分别向南、向西,兵分两路进攻割据四川的明夏政权。其中东路领兵将领是汤和,北路领兵将领是傅友德,由于明朝在前一年也就是洪武三年已经大封群臣,所以此时的汤和是中山侯,傅友德是颍川侯。当时明夏那边负责对付北路明军的是平章政事丁世贞和向大亨,负责对付东路明军的是邹兴和莫仁寿。</p>\n<p>在明军的战前规划中,本来东路军是主力,汤和也是老朱被调去刷军功的,没成想邹兴、莫仁寿和大夏太尉吴友仁三位把夔门守了个水泼不进,再加上酉阳、石砫等土司的协助,明军顿兵在此没有任何进展,所以反而是傅友德从北边进展迅速,先在文州击败丁世贞,随后在绵州击败向大亨,直逼成都,在夔门督战的大夏丞相戴寿、太尉吴友仁眼见西边要崩,赶紧从前线分兵去川西抵挡,然后被傅友德在汉州(四川广汉)击败了向大亨、戴寿、吴友仁三路合兵,随后进围成都。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-441d276942c5f8ac99f1fcf88f443e7f_720w.jpg?source=8673f162\" alt=\"\"></figure>\n<p>其实傅友德跟交手的这三位明夏高层都认识,早就认识。</p>\n<p>龙凤三年,韩宋太保刘福通调白不信、大刀敖、李喜喜驰援西路北伐军,傅友德跟着李喜喜进陕西作战,并在次年西路军兵败巩昌之后由阶、文向南退入四川,而恰在此时,担任徐宋统军都元帅的后来大夏开国太祖明玉珍也正好带着徐宋军队从夔门向西进入四川,于是这两位河南江北行省的老乡就这样在四川不期而遇,双方打了一仗,韩宋军队惨败,打不过就加入,所以傅友德就归附了明玉珍。</p>\n<blockquote>(傅)友德,其先宿州人,徙居颍州,后徙砀山,元末从山东李喜喜起兵,转攻剽入蜀,李喜喜败,归明玉珍。</blockquote>\n<p>当时明玉珍只是徐宋各路统兵将领里的一位,地位并不高,所以手下也没有多少人,数得着的基本也就戴寿、万胜、向大亨、张文炳、邹兴、吴友仁、莫仁寿等几位,而这几位在明玉珍称帝之后的称呼分别是<strong>冢宰戴寿</strong>、司马万胜、<strong>司寇向大亨</strong>、司空张文炳、司徒邹兴、<strong>司徒吴友仁</strong>、司寇莫仁寿。</p>\n<p>所以我其实很好奇,如果拍一部以傅友德为主角的电视剧,那么当这三位在汉州城外跟傅友德再次见面时,互相之间是个怎样的心情,台词又应该怎么写。</p>\n<p>1911 年 10 月,武昌城内一声枪响,辛亥革命爆发,随后极短时间内革命风潮席卷全国,武昌作为这次革命的引爆点,也成为清军与革命军的重点交火对象,清军参战部队是北洋系的新军的第一、第四、<strong>第五镇</strong>,革命军是湖北新军<strong>第八镇</strong>,双方从从 10 月 18 日革命军主动进攻汉口刘家庙清军阵地开始,到 11 月 27 日清军攻陷汉阳结束,恶战四十一天。</p>\n<p>其实这并不是双方的第一次照面。</p>\n<p>光绪三十二年,1906,10 月,清朝为了检验新建陆军的成色,在河南安阳举行了一次军事演习,史称彰德秋操。参加这次野战演习的北军是新军<strong>第五镇</strong>及第一混成协,南军是湖北的新军<strong>第八镇</strong>和河南第二十九混成协,双方出动军队三万余人,马五千余匹,车一千五百多辆,各省都派出观操大员,还有外国的驻华武官观战,甚至还有国内外媒体记者记录实时报道。</p>\n<p>也是在这场军事演习中,后来叱咤中国二十年的人物纷纷登场。</p>\n<p>阅操大臣是后来的民国第一任大总统袁世凯,演习总参议是后来的民国陆军总长王士珍,中央审判长是辛亥革命时革命军陆军第八师师长哈汉章,南军审判长是冯国璋,秋操参谋是徐世昌,南军第八镇统制是黎元洪,北军第五镇统制是张怀芝,北军混成第一协统领是曹锟。</p>\n<p>当时有个年轻参谋在讲评会上问张怀芝:第五镇来了多少人?留守的有多少人?有多少病号?多少轻病?多少重病?帐篷来了多少?马匹来了多少?张怀芝答不上来,面红耳赤哑口无言。而他后来担任新军第二十镇统制,武昌起义爆发的时候他正在筹划着利用永平秋操的机会,与第六镇统制吴禄贞、第二混成协协统蓝天蔚一起弄假成真直接武装起义。他叫张绍曾。</p>\n<p>把这段趣事记录下来的人叫冯玉祥,时任新军第六镇十一协二十四标第三营后队排长。</p>\n<p>当时各省新Line truncated
@@ -1797,28 +1621,6 @@
"hash": "d6faf5dd8fe44e0c45d04c7ccfdcaeb3",
"highlights": []
},
{
"title": "牙齿是 tooth ,医生是 doctor ,那为什么牙医不是 tooth doctor ,而是 dentist ?",
"description": "<div><img src=\"http://picx.zhimg.com/v2-9d8826f6f05df9f37aa27f15ab142e1c_fhd.jpg?source=8673f162\" alt=\"头图\"/><div><div>\n<p>实际上 dent- 和 tooth 是同源的,意思也相同,只不过前者借自拉丁语(或法语)而后者是英语本土词。</p>\n<p>其实不止这俩,英语还有第三个表示牙齿的词根——odont-,比如 odontology(牙科学),odontoid(齿状的),这个词根来自希腊语,和前面提到过的拉丁词根 dent-、英语本土 tooth 全部同源</p>\n<p>由于英语、拉丁语、希腊语都属于印欧语系,在很多年前是同一种语言,因此他们彼此之间有大量同源词是很正常的事情,「牙齿」就是一个例子。</p>\n<p>那么在这三种语言分开之前,原始印欧语是怎么说牙齿的呢?——*h₃dónts</p>\n<ol>\n<li>之后这个词走了三条路,演变为了英语中的三个词 / 词根:*h₃dónts&gt;*tanþs(原始日耳曼语,词首辅音前喉音消失,格林定律推移 d&gt;t&gt;þ,短元音 o 变 a)&gt;tōþ(古英语,北海日耳曼语擦音前鼻音消失,并导致前面的短 a 延长再高化至ō)&gt;tooth(现代英语)</li>\n<li>*h₃dónts&gt;*h₃dn̩ts(零级形式)&gt;*dents(原始意大利语,词首辅音前喉音消失)&gt;dēns(拉丁语,dēns 是主格,很多变形依然保留了 dent- 的形式,比如宾格为 dentem。后代包括意大利语 dente,葡萄牙语 dente,西班牙语 diente,罗马尼亚语 dinte,加泰罗尼亚语 / 奥克语 dent,法语 dent 等)→借入英语 dent-</li>\n<li>*h₃dónts&gt;*odónts(原始希腊语,词首辅音前的第三喉音 h₃元音化为 o)&gt;odoús(古典希腊语(已拉丁转写),odoús 是主格,很多变形依然保留了 odont- 的形式,比如宾格 odónta)→借入英语 odont-</li>\n</ol><hr>\n<p>至于为什么英语会通过借词整出这三个同源同义不同形的词或词根……因为很长一段时间盎撒人以尊法、拉丁、希腊为荣,借了大量法语 / 拉丁 / 希腊词汇,同在造高级词汇时也倾向于使用法语 / 拉丁 / 希腊词根而非本土词(这点其实不止盎撒人,整个欧洲或多或少都有这种倾向,只是盎撒人的这种倾向很大),就类似于——近代日本人在造高级词汇时也倾向于使用汉语词(音读)而非和语词。日本人造了不少和制汉语,盎撒人同样造了不少「盎制拉丁语 / 希腊语」,比如 internet 就是美国人用拉丁词根造出来的</p>\n<p>再举一些英语中类似的「同源同义不同形」词 / 词根例子(按本土,拉丁,希腊的顺序排):</p>\n<ul>\n<li>over,super-,hyper-</li>\n<li>un-,in-(im-/ir-/il-),a-(元音或 h 前作 an-)</li>\n<li>heart,cordi-/core,cardio-</li>\n<li>night,nocto-,nycto-</li>\n<li>foot-,pedo-,podo-</li>\n<li>tear,lacrimal,dacryo-</li>\n<li>two-,duo-/bi-,di-/dy-</li>\n<li>three,tri-,tri-</li>\n<li>four,quart-/quadr-,tetra-</li>\n<li>five,quint-,penta-</li>\n<li>six-,sex-,hexa-</li>\n<li>seven,sept-,hept-</li>\n<li>eight,octo-,octo-/octa-</li>\n<li>nine,nona-,ennea-</li>\n<li>ten,deci-,deca-</li>\n<li>hundred,centi-/cent-,hecato-/hecto-</li>\n</ul>\n</div>\n</div>\n\n\n<div><a href=\"https://www.zhihu.com/question/1914023697024525407\">查看知乎讨论<span></span></a></div>\n\n</div>\n\n\n</div>\n</div>",
"content": "<div><img src=\"http://picx.zhimg.com/v2-9d8826f6f05df9f37aa27f15ab142e1c_fhd.jpg?source=8673f162\" alt=\"头图\"/><div><div>\n<p>实际上 dent- 和 tooth 是同源的,意思也相同,只不过前者借自拉丁语(或法语)而后者是英语本土词。</p>\n<p>其实不止这俩,英语还有第三个表示牙齿的词根——odont-,比如 odontology(牙科学),odontoid(齿状的),这个词根来自希腊语,和前面提到过的拉丁词根 dent-、英语本土 tooth 全部同源</p>\n<p>由于英语、拉丁语、希腊语都属于印欧语系,在很多年前是同一种语言,因此他们彼此之间有大量同源词是很正常的事情,「牙齿」就是一个例子。</p>\n<p>那么在这三种语言分开之前,原始印欧语是怎么说牙齿的呢?——*h₃dónts</p>\n<ol>\n<li>之后这个词走了三条路,演变为了英语中的三个词 / 词根:*h₃dónts&gt;*tanþs(原始日耳曼语,词首辅音前喉音消失,格林定律推移 d&gt;t&gt;þ,短元音 o 变 a)&gt;tōþ(古英语,北海日耳曼语擦音前鼻音消失,并导致前面的短 a 延长再高化至ō)&gt;tooth(现代英语)</li>\n<li>*h₃dónts&gt;*h₃dn̩ts(零级形式)&gt;*dents(原始意大利语,词首辅音前喉音消失)&gt;dēns(拉丁语,dēns 是主格,很多变形依然保留了 dent- 的形式,比如宾格为 dentem。后代包括意大利语 dente,葡萄牙语 dente,西班牙语 diente,罗马尼亚语 dinte,加泰罗尼亚语 / 奥克语 dent,法语 dent 等)→借入英语 dent-</li>\n<li>*h₃dónts&gt;*odónts(原始希腊语,词首辅音前的第三喉音 h₃元音化为 o)&gt;odoús(古典希腊语(已拉丁转写),odoús 是主格,很多变形依然保留了 odont- 的形式,比如宾格 odónta)→借入英语 odont-</li>\n</ol><hr>\n<p>至于为什么英语会通过借词整出这三个同源同义不同形的词或词根……因为很长一段时间盎撒人以尊法、拉丁、希腊为荣,借了大量法语 / 拉丁 / 希腊词汇,同在造高级词汇时也倾向于使用法语 / 拉丁 / 希腊词根而非本土词(这点其实不止盎撒人,整个欧洲或多或少都有这种倾向,只是盎撒人的这种倾向很大),就类似于——近代日本人在造高级词汇时也倾向于使用汉语词(音读)而非和语词。日本人造了不少和制汉语,盎撒人同样造了不少「盎制拉丁语 / 希腊语」,比如 internet 就是美国人用拉丁词根造出来的</p>\n<p>再举一些英语中类似的「同源同义不同形」词 / 词根例子(按本土,拉丁,希腊的顺序排):</p>\n<ul>\n<li>over,super-,hyper-</li>\n<li>un-,in-(im-/ir-/il-),a-(元音或 h 前作 an-)</li>\n<li>heart,cordi-/core,cardio-</li>\n<li>night,nocto-,nycto-</li>\n<li>foot-,pedo-,podo-</li>\n<li>tear,lacrimal,dacryo-</li>\n<li>two-,duo-/bi-,di-/dy-</li>\n<li>three,tri-,tri-</li>\n<li>four,quart-/quadr-,tetra-</li>\n<li>five,quint-,penta-</li>\n<li>six-,sex-,hexa-</li>\n<li>seven,sept-,hept-</li>\n<li>eight,octo-,octo-/octa-</li>\n<li>nine,nona-,ennea-</li>\n<li>ten,deci-,deca-</li>\n<li>hundred,centi-/cent-,hecato-/hecto-</li>\n</ul>\n</div>\n</div>\n\n\n<div><a href=\"https://www.zhihu.com/question/1914023697024525407\">查看知乎讨论<span></span></a></div>\n\n</div>\n\n\n</div>\n</div>",
"category": "",
"link": "https://daily.zhihu.com/story/9782425",
"creator": "",
"pubDate": "Tue, 08 Jul 2025 08:27:03 +0800",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "",
"folder": "资讯",
"feed": "知乎",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "40b72135b8d3eeb7a090e0ed5cf12895",
"highlights": []
},
{
"title": "有哪些类似武汉这样,由若干地名拼成的地名?",
"description": "<div><img src=\"http://pic1.zhimg.com/v2-f3e4101d47faf763670f4bc6b0bd672b_fhd.jpg?source=8673f162\" alt=\"头图\"/><div><div>\n<p>大元朝这种地名多的是:</p>\n<figure><img src=\"http://pic1.zhimg.com/v2-47abaed80c3144339197efa0ba1c556a_720w.jpg?source=8673f162\" alt=\"\"></figure>\n<p>比如这个经典的“松潘叠宕威茂州宣抚司”。</p>\n<figure><img src=\"http://pic1.zhimg.com/v2-5e392b588c84823077b1bd58af445047_720w.jpg?source=8673f162\" alt=\"\"></figure>\n<p>乌思藏纳里速古鲁孙等三路宣慰使司都元帅府</p>\n<p>碉门鱼通等处管军守镇万户府</p>\n<p>松潘宕叠威茂州等处军民安抚使司</p>\n<p>碉门鱼通黎雅长河西宁远等处军民安抚使司</p>\n<p>以地图上的这个“松潘叠宕威茂州宣抚司”为例,它是这么来的。北周、隋、唐的时候,在今天的甘南、川西一带设置过很多的州,虽然后来这地方被吐蕃占领导致唐后期荒废了,宋朝也没有收复此处,但这个地名是留下了的,等到蒙古人占领青藏之后,就把这些州拢到一块,设置了一个上级单位,也就是把这里的松州、潘州、叠州、宕州、威州、茂州拼到了一起,于是就有了醒目提神的松潘叠宕威茂州宣抚司,其中松州在今天的四川松潘县,潘州在四川若尔盖县求吉乡甲基村,叠州在甘肃迭部,宕州在甘肃舟曲西北(也是宕昌县的名字来源),威州在四川汶川,茂州在四川茂县。</p>\n<p>同理,乌思藏纳里速古鲁孙等三路宣慰使司都元帅府也是乌思、藏、纳里、速古鲁孙四个合在一起的,碉门鱼通黎雅长河西宁远等处军民安抚使司说的是碉门安抚司、鱼通万户府、黎州、雅州、长河西管军万户府、宁远府这六家拢一块。</p>\n<p>后来这招也被明朝学了去,在广大土司地区运用的炉火纯青。</p>\n<p>比如都匀南边有个叫“合江洲陈蒙烂土长官司”的土司,他是把元朝在这里设置的合江州、陈蒙州以及烂土寨三家土司合并成了一个。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-f0d37fa694c616e534d7b63540f36009_720w.jpg?source=8673f162\" alt=\"\"></figure>\n<p>镇远附近的臻剖六洞横坡等处长官司、镇远溪洞金容金达蛮夷长官司,也是同理。本来设置的臻剖长官司、六洞长官司、横坡长官司,而这里头的臻剖长官司又是臻洞、剖洞两个土司村寨合并设置的,后来这四个合并成了一个,就叫臻剖六洞横坡等处长官司;镇远溪洞金容金达蛮夷长官司也是如此,以前是镇远、金容、金达三个土司。</p>\n<figure><img src=\"http://pic1.zhimg.com/v2-a4d10c4c5a217f47ed5796e422df4972_720w.jpg?source=8673f162\" alt=\"\"></figure>\n<p>其实存留今天的拼凑地名,很多是清代把明代的卫所合二为一改设为县的情况,比如山西大同东边有天城卫、镇虏卫,阳和卫、高山卫,西边有大同左卫、云川卫,大同右卫、玉林卫这么四对八个卫所,两两同城,所以清代改设县的时候直接就是各取一个字,天城卫、镇虏卫合并就叫天镇县,阳和卫、高山卫合并就叫阳高县,大同左卫、云川卫合并叫左云县,大同右卫、玉林卫合并叫右玉县,同时,大同北边也有一个这样的地名,雍正十二年在长城以北设置丰川卫、镇宁所,乾隆十五年合此二区划为一,各取一字,就叫丰镇。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-69c779b23f31d82c073e997ed4733a3c_720w.jpg?source=8673f162\" alt=\"\"></figure>\n<p>贵州也有一个,洪武二十三年设置威清卫,崇祯三年平定水西叛乱之后又设镇西卫,康熙二十六年废威清、镇西二卫设县,名字就各取一个字,叫清镇县,由于处在西南,所以很多人都忘了,这个名字也是卫所二合一来的。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-eb4fc921622633138c38078021096382_720w.jpg?source=8673f162\" alt=\"\"></figure>\n</div>\n</div>\n\n\n<div><a href=\"https://www.zhihu.com/question/12015309264\">查看知乎讨论<span></span></a></div>\n\n</div>\n\n\n</div>\n</div>",
@@ -1840,28 +1642,6 @@
"tags": [],
"hash": "83bc9f980c4741dfe1ca8069d1ae4e38",
"highlights": []
},
{
"title": "为什么点球很少踢上角?",
"description": "<div><img src=\"http://pica.zhimg.com/v2-34e08954e6967dd54dc4876544d0ee93_fhd.jpg?source=8673f162\" alt=\"头图\"/><div><div>\n<p><strong>结论:从几何分析和进球概率上来看,上角球最刁钻也难守。但刁钻的射门角度又会带来另一个风险:球容易射到球门外或撞到球门框上。</strong></p>\n<p>在点球大战中罚失点球的原因很多,但归结起来主要有两方面:门将扑救水平和主罚球员罚球的质量。点球射门的方向是影响罚球质量的重要因素。一记高质量的点球,除了要有力量外,还要有刁钻的角度。例如在 2018 年世界杯 1/8 决赛哥伦比亚对阵英格兰的点球大战中,哥伦比亚队主罚球员夸德拉多射向左上角的点球角度就非常刁钻(图 1)。这种情况下,即使守门员判断出了正确方向,也很难守得住。然而刁钻的射门角度又会带来另一个风险:球射到球门外或撞到球门框上。</p>\n<figure><img src=\"http://pic1.zhimg.com/v2-bef1c6049b828e34a737c747df54321a_720w.gif?source=8673f162\" alt=\"\"><figcaption>图 1 : 哥伦比亚队夸德拉多的左上角点球</figcaption></figure>\n<p><strong>点球大战中,主罚球员到底应该往哪个方向射</strong>?研究表明[1],守门员容易扑救的范围是有限的,这个范围近似为一个半圆(跳跃包线)区域,我们称为“扑救区”(红色),扑救区外的球门区域称为“死亡区”(图 2)。根据每个门将身高、臂长以及反应速度不同,扑救区的范围又有大有小。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-1397721d1558e867d270194549f228a2_720w.gif?source=8673f162\" alt=\"\"><figcaption>图 2: 跳跃包线和扑救区</figcaption></figure>\n<p>射向扑救区的点球被扑住的概率约为 50%,而射向死亡区的点球被扑住的概率只有不到 20%[2]。因此,点球想要让对方守门员难以扑住,就应该瞄准球门左右两侧的死亡区射门。<strong>但为了不让点球射到球门外或撞到球门框上,又应该尽可能地让球远离球门左右两侧的立柱和上方的横梁。那有没有完美的点球瞄准点,既能让守门员难以扑住,又能最大程度确保球不射到球门外?</strong></p>\n<p><strong><strong>模型</strong></strong><strong><strong>几何模型</strong></strong></p>\n<p>从图 2 中不难看出,当我们将点球的瞄准点从球门的底角往上移动到顶角时,球门死亡区的宽度逐渐增大了。因此,球门左右两侧的底角并不是最好的选择。此外,低位射门时球还很容易触及地面,这会降低球的速度并降低守门员扑球的难度。因此,点球应瞄准死亡区较高的位置,并让球尽可能远离跳跃包线、球门横梁和立柱。为了找到这样的瞄准点,本文建立如图 5 所示的坐标系,其中 <em>a</em> = 3.66 m 为球门的半长,<em>b</em> = 2.44 m 为球门的高度,<em>R </em>为跳跃包线的半径,本文假定 <em>R</em> = 2.85 m。从几何角度来讲,最满足条件的点是与跳跃包线、球门横梁和立柱同时相切的圆的圆心,即图 3 中的 <em>P </em>点。在球门左侧对称的位置还有一个这样满足条件的点,下文仅以右侧的 <em>P </em>点为例展开讨论。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-c2cf0df830aea039c22cc5759d317dde_720w.jpg?source=8673f162\" alt=\"\"><figcaption>图 3: 最佳瞄准点的几何位置</figcaption></figure>\n<p>要确定 <em>P </em>点的准确位置并不难,假定其坐标为 (<em>x</em>, <em>y</em>),根据图 3 中几何关系有</p>\n<p><img src=\"https://www.zhihu.com/equation?tex=x%5E2+%2B+y%5E2+%3D+%28R%2Br%29%5E2+%5C%5C\" alt=\"\" eeimg=\"1\"></p>\n<p>将 <em>x</em> = <em>a</em> - <em>r</em> 和 <em>y</em> = <em>b</em> - <em>r </em>代入上式并稍加整理可得</p>\n<p><img src=\"https://www.zhihu.com/equation?tex=r%5E2+-+2%28a%2Bb%2BR%29%5Ccdot+r+%2B+a%5E2+%2B+b%5E2+-+R%5E2+%3D+0+%5C%5C\" alt=\"\" eeimg=\"1\"></p>\n<p>上式是 <em>r</em> 的一元二次方程,由求根公式可知方程的两个根为</p>\n<p><img src=\"https://www.zhihu.com/equation?tex=r+%3D%28a%2Bb%2BR%29%5Cpm+%5Csqrt%7B2%28a%2BR%29%28b%2BR%29%7D+%5C%5C\" alt=\"\" eeimg=\"1\"></p>\n<p>将 <em>a</em> =3.66 m,<em>b </em>= 2.44 m 和 <em>R</em> = 2.85 m 代入上式,可得一元二次方程的两个解:<em>r </em>= 0.65 m 和 <em>r</em> = 17.25 m。两个解对应的几何情况如图 4 所示,显然 <em>r </em>= 17.25 m 并不符合实际情况。因此,我们取 <em>r</em> = 0.65 m。这表明,我们要瞄准的目标点 <em>P</em> 位于距离球门横梁和立柱都为 0.65 m 的位置。当然我们也可以给出 <em>P</em> 的坐标 (3.01, 1.79)。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-b6958a84bc87937ac9eedbe5716de411_720w.jpg?source=8673f162\" alt=\"\"><figcaption>图 4: 一元二次方程的两个解</fiLine truncated
"content": "<div><img src=\"http://pica.zhimg.com/v2-34e08954e6967dd54dc4876544d0ee93_fhd.jpg?source=8673f162\" alt=\"头图\"/><div><div>\n<p><strong>结论:从几何分析和进球概率上来看,上角球最刁钻也难守。但刁钻的射门角度又会带来另一个风险:球容易射到球门外或撞到球门框上。</strong></p>\n<p>在点球大战中罚失点球的原因很多,但归结起来主要有两方面:门将扑救水平和主罚球员罚球的质量。点球射门的方向是影响罚球质量的重要因素。一记高质量的点球,除了要有力量外,还要有刁钻的角度。例如在 2018 年世界杯 1/8 决赛哥伦比亚对阵英格兰的点球大战中,哥伦比亚队主罚球员夸德拉多射向左上角的点球角度就非常刁钻(图 1)。这种情况下,即使守门员判断出了正确方向,也很难守得住。然而刁钻的射门角度又会带来另一个风险:球射到球门外或撞到球门框上。</p>\n<figure><img src=\"http://pic1.zhimg.com/v2-bef1c6049b828e34a737c747df54321a_720w.gif?source=8673f162\" alt=\"\"><figcaption>图 1 : 哥伦比亚队夸德拉多的左上角点球</figcaption></figure>\n<p><strong>点球大战中,主罚球员到底应该往哪个方向射</strong>?研究表明[1],守门员容易扑救的范围是有限的,这个范围近似为一个半圆(跳跃包线)区域,我们称为“扑救区”(红色),扑救区外的球门区域称为“死亡区”(图 2)。根据每个门将身高、臂长以及反应速度不同,扑救区的范围又有大有小。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-1397721d1558e867d270194549f228a2_720w.gif?source=8673f162\" alt=\"\"><figcaption>图 2: 跳跃包线和扑救区</figcaption></figure>\n<p>射向扑救区的点球被扑住的概率约为 50%,而射向死亡区的点球被扑住的概率只有不到 20%[2]。因此,点球想要让对方守门员难以扑住,就应该瞄准球门左右两侧的死亡区射门。<strong>但为了不让点球射到球门外或撞到球门框上,又应该尽可能地让球远离球门左右两侧的立柱和上方的横梁。那有没有完美的点球瞄准点,既能让守门员难以扑住,又能最大程度确保球不射到球门外?</strong></p>\n<p><strong><strong>模型</strong></strong><strong><strong>几何模型</strong></strong></p>\n<p>从图 2 中不难看出,当我们将点球的瞄准点从球门的底角往上移动到顶角时,球门死亡区的宽度逐渐增大了。因此,球门左右两侧的底角并不是最好的选择。此外,低位射门时球还很容易触及地面,这会降低球的速度并降低守门员扑球的难度。因此,点球应瞄准死亡区较高的位置,并让球尽可能远离跳跃包线、球门横梁和立柱。为了找到这样的瞄准点,本文建立如图 5 所示的坐标系,其中 <em>a</em> = 3.66 m 为球门的半长,<em>b</em> = 2.44 m 为球门的高度,<em>R </em>为跳跃包线的半径,本文假定 <em>R</em> = 2.85 m。从几何角度来讲,最满足条件的点是与跳跃包线、球门横梁和立柱同时相切的圆的圆心,即图 3 中的 <em>P </em>点。在球门左侧对称的位置还有一个这样满足条件的点,下文仅以右侧的 <em>P </em>点为例展开讨论。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-c2cf0df830aea039c22cc5759d317dde_720w.jpg?source=8673f162\" alt=\"\"><figcaption>图 3: 最佳瞄准点的几何位置</figcaption></figure>\n<p>要确定 <em>P </em>点的准确位置并不难,假定其坐标为 (<em>x</em>, <em>y</em>),根据图 3 中几何关系有</p>\n<p><img src=\"https://www.zhihu.com/equation?tex=x%5E2+%2B+y%5E2+%3D+%28R%2Br%29%5E2+%5C%5C\" alt=\"\" eeimg=\"1\"></p>\n<p>将 <em>x</em> = <em>a</em> - <em>r</em> 和 <em>y</em> = <em>b</em> - <em>r </em>代入上式并稍加整理可得</p>\n<p><img src=\"https://www.zhihu.com/equation?tex=r%5E2+-+2%28a%2Bb%2BR%29%5Ccdot+r+%2B+a%5E2+%2B+b%5E2+-+R%5E2+%3D+0+%5C%5C\" alt=\"\" eeimg=\"1\"></p>\n<p>上式是 <em>r</em> 的一元二次方程,由求根公式可知方程的两个根为</p>\n<p><img src=\"https://www.zhihu.com/equation?tex=r+%3D%28a%2Bb%2BR%29%5Cpm+%5Csqrt%7B2%28a%2BR%29%28b%2BR%29%7D+%5C%5C\" alt=\"\" eeimg=\"1\"></p>\n<p>将 <em>a</em> =3.66 m,<em>b </em>= 2.44 m 和 <em>R</em> = 2.85 m 代入上式,可得一元二次方程的两个解:<em>r </em>= 0.65 m 和 <em>r</em> = 17.25 m。两个解对应的几何情况如图 4 所示,显然 <em>r </em>= 17.25 m 并不符合实际情况。因此,我们取 <em>r</em> = 0.65 m。这表明,我们要瞄准的目标点 <em>P</em> 位于距离球门横梁和立柱都为 0.65 m 的位置。当然我们也可以给出 <em>P</em> 的坐标 (3.01, 1.79)。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-b6958a84bc87937ac9eedbe5716de411_720w.jpg?source=8673f162\" alt=\"\"><figcaption>图 4: 一元二次方程的两个解</figcapLine truncated
"category": "",
"link": "https://daily.zhihu.com/story/9782372",
"creator": "",
"pubDate": "Sun, 06 Jul 2025 08:27:03 +0800",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "",
"folder": "资讯",
"feed": "知乎",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "b7980c8dfb9da926292ad90874552fa7",
"highlights": []
}
],
"folder": "资讯",
@@ -2316,28 +2096,6 @@
"hash": "b7980c8dfb9da926292ad90874552fa7",
"highlights": []
},
{
"title": "“大老虎”被拿下!中共中央决定对周永康严重违纪问题立案审查",
"description": "",
"content": "",
"category": "",
"link": "/article/translate/5913_1.html",
"creator": "www.i21st.cn",
"pubDate": "Wed, 30 Jul 2014 10:35:02",
"enclosure": "",
"enclosureType": "",
"image": "",
"id": "",
"language": "zh",
"folder": "双语",
"feed": "21世纪",
"read": false,
"favorite": false,
"created": false,
"tags": [],
"hash": "9f21f8fa51704a71191c0219c9793433",
"highlights": []
},
{
"title": "香蕉有种子吗,在哪里?",
"description": "<div><img src=\"http://picx.zhimg.com/v2-b78c54828ee95b73dd60d0b466c95a77_fhd.jpg?source=8673f162\" alt=\"头图\"/><div><div>\n<p>.</p>\n<p>这个问题要区分场景。</p>\n<p>市场上能买到的香蕉,都是没有种子的。</p>\n<p>在植物学家的实验室里和育种基地里,香蕉是有种子的。</p>\n<p>这样回答太简单了,虽然题主没问,我们可以追问一下,“为什么会这样?”那就从头说起吧。</p>\n<figure><img src=\"http://pic1.zhimg.com/v2-46a94f8c2df50c4c823a86053cdcbacc_720w.jpg?source=8673f162\" alt=\"\"><figcaption>原创图片</figcaption></figure>\n<p>香蕉在全球最受欢迎的水果中排名第三。</p>\n<p>吃一根香蕉,可以为你提供超过 10%的每日所需的钾、维生素 C 和纤维素,20%的维生素 B6 ,不含胆固醇和脂肪。</p>\n<p>要说香蕉是最完美的水果,我估计不会有人提出异议。它自带可降解包装,不需要剪刀,用手撕开直接食用,还有其他水果比香蕉更方便的吗?</p>\n<p>香蕉是世界上第一个产业化水果,因为它有一项重要特性:在主要的全球性作物中,香蕉是遗传性是最均匀一致的。也正是由于这个事实,导致了它的脆弱性:商业化种植的香蕉,是全世界最濒危的主要作物。</p>\n<figure><img src=\"http://picx.zhimg.com/v2-5b78678081a927d62692c5d4170422b7_720w.jpg?source=8673f162\" alt=\"\"><figcaption>原创图片</figcaption></figure>\n<p>野生香蕉,曾在不同的地方被不同的人驯化,从马来西亚到印度尼西亚和新几内亚,再到太平洋群岛的广大热带地区,香蕉至少被驯化了两次。香蕉的野生祖先至今还生活在这片地区。</p>\n<p>如果把驯化香蕉和野生香蕉并排种在一起,从植株和花序上,没有太大的区别。只有果实成熟了我们才会发觉,野生的香蕉根本不能吃,因为里边长满了 BB 弹大小的坚硬的黑色种子。</p>\n<p>而驯化香蕉却是“单性结实”的,即便没有授粉,雌花照常发育出果实,而且是无籽的。</p>\n<p>我们咬开香蕉看见的黑色小点点,那是授粉失败的胚珠。现代科学已经能够解释这种现象,驯化的香蕉均为<strong>三倍体</strong>香蕉,它不能授粉繁殖,只能进行营养繁殖。好处就是没有遗传变异,口感和品质一致性高。</p>\n<p>香蕉属于芭蕉科草本植物。香蕉并不是长在树上的,我们看到的香蕉“树”,实际上是它的假茎,真正的茎在地下。</p>\n<p>香蕉的假茎生长一年就可以成熟,开花结果,等果实成熟之后,假茎就会死去。这并没有结束,因为地下茎会在假茎死亡之后,悄悄生出几棵新芽,新的假茎为来年结果做好了准备。这些新的假茎被称为「根出条」。这些根出条可以就地生长,也可以移栽,称为「分株」。这种繁殖方式能够确保子代拥有和亲代一样的基因,驯化香蕉植株就是自我克隆的机器。</p>\n<figure><img src=\"http://pica.zhimg.com/v2-4b2d3717d10eea0b25b39c80bcfc4ba4_720w.jpg?source=8673f162\" alt=\"\"><figcaption>原创图片</figcaption></figure>\n<p>在大航海时代,植物猎手们把香蕉植株克隆带出了东南亚,引入到热带殖民地种植。当时被种植的香蕉品种五花八门,大约有数百种之多。</p>\n<p>直到工业革命带来农业种植园发展,一个新的基株被大量繁殖,它的名字叫「大迈克」(Big Mike)。</p>\n<p>大迈克口味好,香气浓郁,从十九世纪末到二十世纪初,一经推出就征服了世界人民的味蕾。</p>\n<p>然而好景不长,二十世纪上半叶,大迈克就几乎被摧毁殆尽,罪魁祸首是两种真菌。其中之一导致了「巴拿马病」,另一种导致了「黄色香蕉叶斑病」</p>\n<p>「红皇后效应」正是解释这个现象的绝佳理论。该效应取自一本叫做《爱丽丝镜中奇遇记》中意思:如果你要维持在原来的位置,就必须用尽全力奔跑。如果你想突破现状,就必须以两倍的速度奔跑。总结起来说就是:<strong>不进即是倒退,停滞等于灭亡</strong>。</p>\n<p>香蕉基因是稳定不变的,而致病菌却在飞速进化。它们大约 20 分钟就能繁殖一代,数量庞大,而且高频率变异,以至于某个变异品种刚好能够感染香蕉植株,摧毁了它的万世不变的基因。</p>\n<p>大迈克的消亡给我们的教训是:一旦某种数量庞大的生物表现出极度的均一性,那么某种害虫遇到并蚕食这个巨大营养库就只是时间问题了。</p>\n<figure><img src=\"http://pic1.zhimg.com/v2-80f41c9f4560051c029135d062a71f90_720w.jpg?source=8673f162\" alt=\"\"><figcaption>原创图片</figcaption></figure>\n<p>大迈克输了,在自然进化中淘汰出局。人们只好用另外一个品种替代它,虽然口味差Line truncated