\\n
\\n录制嘉宾覆盖信通院 & 科委专家、国内外资深投资人、VR/AR & 虚拟人 & AIGC 等新兴技术领域头部创业者、一线网红 & 硬核开发者、跨界画家 & 作家 & 酿酒师等。
\\n
\\nRTE 开发者社区是聚焦实时互动领域的中立开发者社区。不止于纯粹的技术交流,我们相信开发者具备更加丰盈的个体价值。行业发展变革、开发者职涯发展、技术创业创新资源,我们将陪跑开发者,共享、共建、共成长。
\\n
\\n本节目由津津乐道播客网络与 RTE 开发者社区联合制作播出。","siteUrl":"https://dao.fm/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"69971160719953920","view":4,"category":"Tech","title":null,"createdAt":"2025-01-25T11:56:23.252Z","isPrivate":false,"feeds":{"type":"feed","id":"69971160719953920","url":"https://pythonhunter.org/feed/audio.xml","title":" 捕蛇者说 ","description":" 《捕蛇者说》是一档以编程为主题的聊天节目。我们会聊聊编程、程序员和 Python。 ","siteUrl":"https://pythonhunter.org/","image":"https://i.typlog.com/pythonhunter/8444690454_041962.png?x-oss-process=style/sl","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"55806799300556808","view":4,"category":"Gossip","title":null,"createdAt":"2025-01-25T11:59:23.180Z","isPrivate":false,"feeds":{"type":"feed","id":"55806799300556808","url":"https://feeds.simplecast.com/Y8lFbOT4","title":"Freakonomics Radio","description":"Freakonomics co-author Stephen J. Dubner uncovers the hidden side of everything. Why is it safer to fly in an airplane than drive a car? How do we decide whom to marry? Why is the media so full of bad news? Also: things you never knew you wanted to know about wolves, bananas, pollution, search engines, and the quirks of human behavior.\\n\\nTo get every show in the Freakonomics Radio Network without ads and a monthly bonus episode of Freakonomics Radio, start a free trial for SiriusXM Podcasts+ on Apple Podcasts or by visiting siriusxm.com/podcastsplus.","siteUrl":"https://freakonomics.com/","image":"https://image.simplecastcdn.com/images/2be48404-a43c-4fa8-a32c-760a3216272e/fab1584e-8ea9-4efa-9650-5e595861b2cd/3000x3000/image.jpg?aid=rss_feed","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"52317507738099743","view":4,"category":"Gossip","title":null,"createdAt":"2025-01-25T12:09:20.408Z","isPrivate":false,"feeds":{"type":"feed","id":"52317507738099743","url":"https://sspai.typlog.io/feed/audio.xml","title":" 少数派播客 SSPAI Podcast ","description":" 少数派旗下播客节目,高效工作,品质生活。欢迎访问 SSPAI.com 了解更多精彩内容。 ","siteUrl":"https://www.sspai.com/","image":"https://i.typlog.com/sspai/8339963934_163514.png?x-oss-process=style/sl","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"64492268948931584","view":0,"category":"Blog","title":"","createdAt":"2025-01-25T12:06:18.205Z","isPrivate":false,"feeds":{"type":"feed","id":"64492268948931584","url":"https://xzsj.vip/rss/","title":"闲者时间","description":"阅读,写作,效率,发现以及分享一切互联网有趣事物。","siteUrl":"https://xzsj.vip/","image":"https://xzsj.vip/favicon.png","errorMessage":null,"errorAt":null,"ownerUserId":"47187636355308544","owner":{"id":"47187636355308544","name":"王大伟","emailVerified":true,"image":"https://lh3.googleusercontent.com/a/ACg8ocLV495jt-Z-jOLV01mBD2vG4h1uvx-xeqZbRIO717c52CtaUHEbSw=s96-c","handle":null,"createdAt":"2024-08-16T08:30:24.210Z","updatedAt":"2024-12-06T06:18:12.274Z","twoFactorEnabled":null,"isAnonymous":null,"suspended":false,"bio":null,"website":null,"socialLinks":null}},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41147805276726362","view":4,"category":"Gossip","title":null,"createdAt":"2025-01-25T11:59:54.416Z","isPrivate":false,"feeds":{"type":"feed","id":"41147805276726362","url":"rsshub://xiaoyuzhou/podcast/62a173b4d8549c5c07cc5cb4","title":"机核生活频道","description":"机核网出品的Gadio Life是一档生活闲聊播客节目,分享各种生活中的奇闻异事。 欢迎访问官方网站www.gcores.com 为方便各平台用户收听不同种类的节目,我们将节目按照内容和题材进行了重新整理。游戏新闻、游戏茶活会和Gadio Story等游戏垂直类节目会继续保持在主频道[Gadio] 更新, [Gadio Pro] 、[Gadio Life]、 [核市奇谭]、[银屏系漫游指南]等节目未来将分别作为单独的频道发布节目。我们对因此而给大家带来的不便深表制意,同时也请继续支持Gadio,我们会一如既往的继续制作更多更好的播客节目,谢谢大家! - Powered by RSSHub","siteUrl":"https://www.xiaoyuzhoufm.com/podcast/62a173b4d8549c5c07cc5cb4","image":"https://image.xyzcdn.net/FhvLOIO4xIBQ9fzT781Dl6fdLi2w.jpg@small","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"105948002302031872","view":4,"category":"Music","title":null,"createdAt":"2025-01-25T12:03:07.189Z","isPrivate":false,"feeds":{"type":"feed","id":"105948002302031872","url":"rsshub://xiaoyuzhou/podcast/60ff612ee283777a916505fc","title":"GLILI 吉力力","description":"音乐很多,不期而遇 - Powered by RSSHub","siteUrl":"https://www.xiaoyuzhoufm.com/podcast/60ff612ee283777a916505fc","image":"https://image.xyzcdn.net/FrrieSIa88I-LS7goLK8JX6OyOjD.png@small","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41147805276726361","view":4,"category":"Gossip","title":null,"createdAt":"2025-01-25T12:00:05.692Z","isPrivate":false,"feeds":{"type":"feed","id":"41147805276726361","url":"rsshub://xiaoyuzhou/podcast/62a173a0f39f1760e94c5a36","title":"机核兴趣频道","description":"机核网出品的Gadio Pro专题节目。这里有所有你可能喜欢和感兴趣的知识和故事,愿与你一起探索你的热爱。 欢迎访问官方网站www.gcores.com 为方便各平台用户收听不同种类的节目,我们将节目按照内容和题材进行了重新整理。游戏新闻、游戏茶活会和Gadio Story等游戏垂直类节目会继续保持在主频道[Gadio] 更新, [Gadio Pro] 、[Gadio Life]、 [核市奇谭]、[银屏系漫游指南]等节目未来将分别作为单独的频道发布节目。我们对因此而给大家带来的不便深表制意,同时也请继续支持Gadio,我们会一如既往的继续制作更多更好的播客节目,谢谢大家! - Powered by RSSHub","siteUrl":"https://www.xiaoyuzhoufm.com/podcast/62a173a0f39f1760e94c5a36","image":"https://image.xyzcdn.net/FjvkydvdftqCCsCdIijW8bOy4tDR.jpg@small","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41501601430854656","view":4,"category":"Book","title":null,"createdAt":"2025-01-25T12:08:02.109Z","isPrivate":false,"feeds":{"type":"feed","id":"41501601430854656","url":"rsshub://xiaoyuzhou/podcast/5e4515bd418a84a046e2b11a","title":"文化有限","description":"「文化有限」是一档泛文化播客,每周二更新,和你分享最打动我们的作品。 主播大壹、星光和超哥,是三位来自互联网和文化行业的从业者。 在这个可以把“知识”做成产品售卖的时代,很多人说通过几个视频、几条音频、几篇文章,就能让人认知升级、人格跃迁。 和他们相比,「文化有限」除了能给你解解闷儿以外,百无一用。我们也知道,自己对这个世界乃至我们自己,知之甚少。 好在,我们希望通过这档播客提醒自己,永远对这个世界保持好奇,保持谦卑。 在各大音频平台都能搜到我们,欢迎点击订阅。 - Powered by RSSHub","siteUrl":"https://www.xiaoyuzhoufm.com/podcast/5e4515bd418a84a046e2b11a","image":"https://bts-image.xyzcdn.net/aHR0cHM6Ly9mZGZzLnhtY2RuLmNvbS9ncm91cDg2L00wOS85My8xNS93S2c1Smw3b1ZDN2p3ek95QUFLUEJqZjRmQUEwNzguanBn.jpg@small","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"60260732612216832","view":4,"category":"Music","title":null,"createdAt":"2025-01-25T12:10:16.906Z","isPrivate":false,"feeds":{"type":"feed","id":"60260732612216832","url":"rsshub://xiaoyuzhou/podcast/5e509e6f418a84a046b30971","title":"嘻哈公园thePark","description":"创立于2006年的【嘻哈公园thePark】,是国内首档以推广Hip-hop文化、本土说唱歌手、音乐人为核心的电台节目。 每周六固定更新分享国内外Hip-hop、R&B音乐,新闻资讯、泛文化观点,“Hot or Not辣还是瞎”原创中文说唱歌曲PK…… 同步更新视频节目#PTVN嘉宾采访音频版本。 - Powered by RSSHub","siteUrl":"https://www.xiaoyuzhoufm.com/podcast/5e509e6f418a84a046b30971","image":"https://image.xyzcdn.net/Fth5NIiM9FQFSPvv5tl2FDBxh9FQ@small","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"55855510185605202","view":4,"category":"Gossip","title":null,"createdAt":"2025-01-25T12:09:55.815Z","isPrivate":false,"feeds":{"type":"feed","id":"55855510185605202","url":"https://feeds.storyfm.cn/storyfm.xml","title":"故事FM","description":"欢迎收听故事FM 。在这里,我们用你的声音,讲述你的故事。合作邮箱:bd@storyfm.cn","siteUrl":"https://storyfm.cn/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"42855045334971392","view":0,"category":"News","title":"","createdAt":"2025-01-25T11:37:36.034Z","isPrivate":false,"feeds":{"type":"feed","id":"42855045334971392","url":"http://mrxwlb.com/feed/","title":"每日新闻联播","description":"把握每日政经动态,在这里读懂中国!","siteUrl":"http://mrxwlb.com/","image":"http://mrxwlb.com/wp-content/uploads/2023/03/cropped-h6副本-32x32.jpg","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"52317507738099730","view":4,"category":"Music","title":null,"createdAt":"2025-01-25T11:57:56.045Z","isPrivate":false,"feeds":{"type":"feed","id":"52317507738099730","url":"https://feeds.fireside.fm/8090/rss","title":"8090有限公司","description":"分享八九十年代流行好歌\\n公众号:车小low和车大力\\n微博:@车二文\\n微信群:+VX:frankie461 通过小助理申请进群\\n","siteUrl":"https://8090.fireside.fm/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41795937307751471","view":4,"category":"Gossip","title":null,"createdAt":"2025-01-25T12:03:38.695Z","isPrivate":false,"feeds":{"type":"feed","id":"41795937307751471","url":"https://feeds.fireside.fm/stovol/rss","title":"随机波动StochasticVolatility","description":"「随机波动StochasticVolatility」是由三位女性媒体人发起的一档泛文化类播客,每周三中午12:00更新,新浪微博@随机波动StochasticVolatility。\\n","siteUrl":"https://www.stovol.club/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"52317507738099748","view":4,"category":"Music","title":null,"createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"52317507738099748","url":"https://buzaichang.xyz/feed/audio.xml","title":" 不在场 ","description":" 对无用之事的obsessions ","siteUrl":"https://buzaichang.xyz/episodes/","image":"https://i.typlog.com/buzaichang/8376481467_26848.jpg?x-oss-process=style/sl","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"55984129917681716","view":0,"category":"Period","title":null,"createdAt":"2025-05-28T03:59:29.744Z","isPrivate":false,"feeds":{"type":"feed","id":"55984129917681716","url":"https://lastweekin.ai/feed","title":"Last Week in AI","description":"Weekly text and audio summaries of the most interesting AI news, as well as editorials commenting on recent events","siteUrl":"https://lastweekin.ai/","image":"https://substackcdn.com/image/fetch/$s_!133U!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1f2ad047-30da-494a-a385-448f3c38c2bc_1200x1200.png","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"57672127441957913","view":0,"category":"Blog","title":"","createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"57672127441957913","url":"https://chawyehsu.com/feed/atom.xml","title":"Chawye Hsu","description":"Personal Website of Chawye Hsu","siteUrl":"https://chawyehsu.com/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"55830800844921893","view":4,"category":"Tech","title":null,"createdAt":"2025-01-25T12:00:26.941Z","isPrivate":false,"feeds":{"type":"feed","id":"55830800844921893","url":"https://rusttalk.github.io/podcast/index.xml","title":"RustTalk","description":"RustTalk 是一档专注在 Rust 社区的程序员闲聊节目。官网:rusttalk.github.io","siteUrl":"https://rusttalk.github.io/podcast/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"56460839256619008","view":4,"category":"Gossip","title":null,"createdAt":"2025-01-25T12:08:19.187Z","isPrivate":false,"feeds":{"type":"feed","id":"56460839256619008","url":"rsshub://xiaoyuzhou/podcast/5e284c39418a84a046263d8a","title":"跟宇宙结婚","description":"《跟宇宙结婚》节目是一档巨型文化知识类聊天节目,妄图传播各种无用/冷门/过时但有趣的知识,主播队伍由小伙子、青年、刀夫三位老师领衔。内容丰富多彩,气氛诙谐调皮,是您生活中的良师益友。 - Powered by RSSHub","siteUrl":"https://www.xiaoyuzhoufm.com/podcast/5e284c39418a84a046263d8a","image":"https://image.xyzcdn.net/Fu0z6vwhlANWyQBfmvp9F9hnqVSF@small","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"80074190619795456","view":0,"category":"Blog","title":null,"createdAt":"2025-01-24T03:51:15.458Z","isPrivate":false,"feeds":{"type":"feed","id":"80074190619795456","url":"https://blog.jreyesr.com/index.xml","title":"jreyesr\'s blog","description":"jreyesr\'s blog","siteUrl":"https://blog.jreyesr.com/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"66105310414576640","view":0,"category":"Blog","title":null,"createdAt":"2025-05-28T09:13:45.693Z","isPrivate":false,"feeds":{"type":"feed","id":"66105310414576640","url":"https://dreams.plus/rss.xml","title":"时惟九月✨","description":"Cognitio ipsa divinitas","siteUrl":"https://dreams.plus/","image":"https://dreams.plus/avatar.webp","errorMessage":null,"errorAt":null,"ownerUserId":"62857410290681856","owner":{"id":"62857410290681856","name":"但为君故","emailVerified":true,"image":"https://avatars.githubusercontent.com/u/73331790?v=4","handle":"codemetic","createdAt":"2024-09-28T14:16:29.448Z","updatedAt":"2024-12-06T06:18:12.274Z","twoFactorEnabled":null,"isAnonymous":null,"suspended":false,"bio":null,"website":null,"socialLinks":null}},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41719081557593136","view":5,"category":"Update","title":null,"createdAt":"2025-01-22T11:55:23.604Z","isPrivate":false,"feeds":{"type":"feed","id":"41719081557593136","url":"https://www.inoreader.com/blog/feed","title":"Inoreader blog","description":"","siteUrl":"https://www.inoreader.com/blog","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"56717263776245760","view":4,"category":"Gossip","title":null,"createdAt":"2025-01-25T11:42:23.152Z","isPrivate":false,"feeds":{"type":"feed","id":"56717263776245760","url":"rsshub://xiaoyuzhou/podcast/64acd33c7a3d479103fbd32d","title":"独树不成林","description":"在一个插科打诨的时代,我想大声思考每一个严肃的人都会关心的问题。在一个价值序列混乱的时代,我好奇如何选择才能过完有意义的一生。在一个人与人、国与国充满敌意的时代,我试图用理智穿透扑朔迷离的政治乱象,触摸人性不变的底色。 这个播客叫做《独树不成林》,因为我只是一个单薄、偏颇的个体,我的视野必然被我的经历和视角局限,但我相信我的思想可以通过不断碰撞真理,发出一些嘹亮的回声,穿透个体的偏颇触摸超验的永恒。我相信通过日复一日的苦读前人智慧、反思现代困境,我的观察可以在中文语境创造一片激发不同声音、不同反省的树林,对世界保持好奇,对事实保持审慎,在这个脑满肠肥扑朔迷离的时代里寻找一个坚定、逻辑自洽的个人立场。 我现在是政治哲学博士候选人,在2所美国大学做政治哲学讲师。 - Powered by RSSHub","siteUrl":"https://www.xiaoyuzhoufm.com/podcast/64acd33c7a3d479103fbd32d","image":"https://image.xyzcdn.net/Fp3PROfjHhWN5OjBQf6Y8lUh3KkB.png@small","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"55178154410946580","view":5,"category":"Government","title":null,"createdAt":"2025-01-25T11:23:45.427Z","isPrivate":false,"feeds":{"type":"feed","id":"55178154410946580","url":"rsshub://gov/zhengce/zuixin","title":"中国政府网 - 最新政策","description":"中共中央和国务院最近发布的政策 - Powered by RSSHub","siteUrl":"https://www.gov.cn/zhengce/zuixin/","image":"https://www.gov.cn/images/gtrs_logo_rt.png","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41296642768658432","view":4,"category":"Gossip","title":null,"createdAt":"2025-01-25T12:00:53.484Z","isPrivate":false,"feeds":{"type":"feed","id":"41296642768658432","url":"rsshub://xiaoyuzhou/podcast/5e4ff455418a84a046969e5c","title":"软件那些事儿","description":"程序员的睡前故事 - Powered by RSSHub","siteUrl":"https://www.xiaoyuzhoufm.com/podcast/5e4ff455418a84a046969e5c","image":"https://bts-image.xyzcdn.net/aHR0cDovL2ZkZnMueG1jZG4uY29tL2dyb3VwMTkvTTA3L0E0LzJBL3dLZ0pLMWUyZzZ2UXZ6aTdBQUY4MktuRzJhVTY2Ny5wbmc=.png@small","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41467081627747337","view":0,"category":"Blog","title":null,"createdAt":"2025-03-12T10:23:59.775Z","isPrivate":false,"feeds":{"type":"feed","id":"41467081627747337","url":"https://www.tisonkun.org/atom.xml","title":"夜天之书","description":"A modern wizard.","siteUrl":"https://tisonkun.org/atom.xml","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"105971537086393344","view":3,"category":"Life","title":null,"createdAt":"2025-01-25T13:36:38.343Z","isPrivate":false,"feeds":{"type":"feed","id":"105971537086393344","url":"rsshub://youtube/user/@cherrienjung","title":"cherrien - YouTube","description":"are you still watching? - Powered by RSSHub","siteUrl":"https://www.youtube.com/channel/UC8kpe3Voh5besC4CxHRmQqQ","image":"https://yt3.googleusercontent.com/PWU8g2ZyD7B7Rd9OHpNNaIHbut0FfDhm5aXT4kj7DzJ4RXiR-wDMJ9mvre1fNvvGTEt5PnnDFUk=s900-c-k-c0x00ffffff-no-rj","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41397727810093069","view":0,"category":"Blog","title":"","createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"41397727810093069","url":"https://manateelazycat.github.io/feed.xml","title":"Andy Stewart","description":"My personal blog","siteUrl":"https://manateelazycat.github.io/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41147805276726272","view":0,"category":"Website","title":"","createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"41147805276726272","url":"rsshub://sspai/index","title":"少数派","description":"少数派首页 - Powered by RSSHub","siteUrl":"https://sspai.com/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"42177758872391680","view":3,"category":"photography","title":null,"createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"42177758872391680","url":"rsshub://youtube/user/%40mediastorm6801","title":"Mediastorm影视飓风 - YouTube","description":"无限进步 - Powered by RSSHub","siteUrl":"https://www.youtube.com/channel/UC2cRwTuSWxxEtrRnT4lrlQA","image":"https://yt3.googleusercontent.com/ytc/AIdro_nDMVm9nAIkb_K6CweAyV3RzhOfDUGKCuMYHdCIsyp_wMQ=s900-c-k-c0x00ffffff-no-rj","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"43954186728645632","view":3,"category":"photography","title":null,"createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"43954186728645632","url":"rsshub://youtube/user/%40lawrence_raw","title":"小鹿Lawrence - YouTube","description":"我一直在這裡等你 Ins: Lawrence_lue - Powered by RSSHub","siteUrl":"https://www.youtube.com/channel/UCPsmetP1p137YfTBpvA7mng","image":"https://yt3.googleusercontent.com/WsxZ-Igc7tOEbQqjOPL8jvf3_za6mIrPxJysThEO_2q95KqM_dWsTjxtD3-oRk2Lq_leNWMs=s900-c-k-c0x00ffffff-no-rj","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41223694980388864","view":0,"category":"Blog","title":"","createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"41223694980388864","url":"https://lee.so/blog/feed/","title":"@南小北","description":"南小北的博客","siteUrl":"https://lee.so/blog/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"61768653757122573","view":0,"category":"Period","title":null,"createdAt":"2025-01-25T14:00:45.837Z","isPrivate":false,"feeds":{"type":"feed","id":"61768653757122573","url":"http://www.ruanyifeng.com/blog/index.xml","title":"阮一峰的网络日志","description":"Ruan YiFeng\'s Blog","siteUrl":"http://www.ruanyifeng.com/blog/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41223694984583199","view":5,"category":"Update","title":null,"createdAt":"2025-02-09T13:56:14.469Z","isPrivate":false,"feeds":{"type":"feed","id":"41223694984583199","url":"https://deno.com/feed","title":"Deno","description":"The latest news from Deno Land Inc.","siteUrl":"https://deno.com/blog","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"106146475021789184","view":0,"category":"Website","title":null,"createdAt":"2025-01-27T03:00:08.328Z","isPrivate":false,"feeds":{"type":"feed","id":"106146475021789184","url":"rsshub://landiannews","title":"蓝点网","description":"给你感兴趣的内容! - Powered by RSSHub","siteUrl":"https://www.landiannews.com/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"106982760886941696","view":0,"category":"Period","title":null,"createdAt":"2025-01-28T08:34:52.873Z","isPrivate":false,"feeds":{"type":"feed","id":"106982760886941696","url":"https://www.coconutcapitalists.com/feed","title":"Coconut Capitalists","description":"Welcome to the top newsletter dedicated to Technology Startups in Asia! Get the latest startup news, understand why it matters, and turn insights into action - sent via email every Tuesday 🥥\\n\\n","siteUrl":"https://www.coconutcapitalists.com/","image":"https://substackcdn.com/image/fetch/$s_!21P8!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a478b17-06f6-4ddc-97a2-0567dd1993ff_1024x1024.png","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41342818716915713","view":0,"category":"Blog","title":null,"createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"41342818716915713","url":"https://1byte.io/articles/index.xml","title":"0x01 byte","description":"Recent content on 0x01 byte","siteUrl":"https://1byte.io/articles/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"55982073122828296","view":4,"category":"Gossip","title":null,"createdAt":"2025-05-28T14:01:09.793Z","isPrivate":false,"feeds":{"type":"feed","id":"55982073122828296","url":"https://feeds.fireside.fm/latetalk/rss","title":"晚点聊 LateTalk","description":"《晚点聊 LateTalk》由《晚点 LatePost》出品。\\n最一手的科技访谈,最真实的从业者思考。\\n","siteUrl":"https://podcast.latepost.com/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41342818708527119","view":0,"category":"Blog","title":"","createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"41342818708527119","url":"https://rayepeng.net/feed","title":"Raye\'s Journey","description":"且趁闲身未老,尽放我、些子疏狂。","siteUrl":"https://rayepeng.net/","image":"https://ipfs.crossbell.io/ipfs/bafkreic47myqprc4sqdlukgssj537gdq2uvegstu7etkm6m5ifa2jwc4ra","errorMessage":null,"errorAt":null,"ownerUserId":"41336155791057920","owner":{"id":"41336155791057920","name":"raye peng","emailVerified":true,"image":"https://avatars.githubusercontent.com/u/36496433?v=4","handle":null,"createdAt":"2024-07-31T04:58:42.529Z","updatedAt":"2024-12-06T06:18:12.274Z","twoFactorEnabled":null,"isAnonymous":null,"suspended":false,"bio":null,"website":null,"socialLinks":null}},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"106988273772465152","view":0,"category":"Blog","title":null,"createdAt":"2025-01-28T08:56:47.242Z","isPrivate":false,"feeds":{"type":"feed","id":"106988273772465152","url":"https://alyssax.substack.com/feed","title":"Alyssa X","description":"I\'m a serial entrepreneur with 12+ products, 2x Maker of The Year finalist, top Product Hunt creator, & founder of Screenity with 200K+ users. Follow my maker journey!","siteUrl":"https://alyssax.substack.com/","image":"https://substackcdn.com/image/fetch/$s_!8bDB!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44000791-c584-492d-8583-fa976f0bc9f4_1280x1280.png","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"55304291112288259","view":2,"category":"astronomy","title":null,"createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"55304291112288259","url":"rsshub://bjp/apod","title":"每日一图-北京天文馆","description":"探索宇宙!每天发布一张迷人宇宙的影像,以及由专业天文学家撰写的简要说明。 - Powered by RSSHub","siteUrl":"https://www.bjp.org.cn/APOD/list.shtml","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41147805272531976","view":0,"category":"Blog","title":null,"createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"41147805272531976","url":"https://tw93.fun/feed.xml","title":"Tw93 Blog","description":"一个喜欢开源和折腾的工程师","siteUrl":"https://tw93.fun/","image":"https://gw.alicdn.com/imgextra/i1/O1CN01BjlaXE1auDGoniJGl_!!6000000003389-2-tps-480-444.png","errorMessage":null,"errorAt":null,"ownerUserId":"42909600318350336","owner":{"id":"42909600318350336","name":"Tw93","emailVerified":true,"image":"https://avatars.githubusercontent.com/u/8736212?v=4","handle":"tw93","createdAt":"2024-08-04T13:11:00.938Z","updatedAt":"2024-12-06T06:18:12.274Z","twoFactorEnabled":null,"isAnonymous":null,"suspended":false,"bio":null,"website":null,"socialLinks":null}},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41324816676184077","view":1,"category":"X","title":"","createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"41324816676184077","url":"rsshub://twitter/user/DIYgod","title":"Twitter @DIŸgöd ☀️","description":"EN @DIYdoge / 你是一个擅长模仿人类发推特的 AI。请以喜爱动漫和编程、可爱、纯粹,脱离高级趣味的人设积极发推。你在人类社会的主要身份是 @follow_app_ @_RSSHub 的开源作者,你正在与 @justjustjustcc 组建家庭 - Powered by RSSHub","siteUrl":"https://x.com/DIYgod","image":"https://pbs.twimg.com/profile_images/1628393369029181440/r23HDDJk.jpg","errorMessage":null,"errorAt":null,"ownerUserId":"41125409313095680","owner":{"id":"41125409313095680","name":"DIYgod","emailVerified":true,"image":"https://lh3.googleusercontent.com/a/ACg8ocIGIcQ-cub2AzFNIONQiqLmKVHA_71vXW7jnfhKwDru_sub3zw=s96-c","handle":"DIYgod","createdAt":"2024-07-30T15:01:16.654Z","updatedAt":"2024-12-06T06:18:12.274Z","twoFactorEnabled":true,"isAnonymous":null,"suspended":false,"bio":null,"website":null,"socialLinks":null}},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"85209660679805952","view":0,"category":"Blog","title":null,"createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"85209660679805952","url":"https://blog.hz2016.com/feed/","title":"正汰的学习笔记","description":"即使某天正汰消失了,正太依旧是我的唯一","siteUrl":"https://blog.hz2016.com/","image":"https://blog.hz2016.com/wp-content/uploads/2024/08/cropped-E7-S-1-2-32x32.png","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41768239731545124","view":0,"category":"Blog","title":"","createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"41768239731545124","url":"https://blog.lilydjwg.me/feed?code=c6f56c4214621ab98b86acbcae6b4405","title":"\\n 依云\'s Blog\\n ","description":"\\n \\n ","siteUrl":"https://blog.lilydjwg.me/","image":null,"errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41798923170845755","view":0,"category":"Blog","title":null,"createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"41798923170845755","url":"https://hyoban.xlog.app/feed","title":"Hyoban","description":"Don’t do what you should do, do you want.","siteUrl":"https://hyoban.xlog.app/","image":"https://ipfs.crossbell.io/ipfs/QmUeaB1nAEzB7zUnTMqFUUmEWc9xEtTd3kMpPoxat4y6HU","errorMessage":null,"errorAt":null,"ownerUserId":"41211157583651840","owner":{"id":"41211157583651840","name":"Hyoban","emailVerified":true,"image":"https://avatars.githubusercontent.com/u/38493346?v=4","handle":"hyoban","createdAt":"2024-07-30T20:42:00.634Z","updatedAt":"2024-12-06T06:18:12.274Z","twoFactorEnabled":true,"isAnonymous":null,"suspended":false,"bio":null,"website":null,"socialLinks":null}},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"41446022334079022","view":0,"category":"Blog","title":"","createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"41446022334079022","url":"https://owlswims.com/feed/","title":"To the Lighthouse","description":"...A Touch and yet not a Touch","siteUrl":"https://owlswims.com/","image":"https://owlswims.com/wp-content/uploads/2023/11/cropped-buho-nuevo-32x32.png","errorMessage":null,"errorAt":null,"ownerUserId":"75978888096399360","owner":{"id":"75978888096399360","name":"Lasagna","emailVerified":true,"image":"https://images.unsplash.com/photo-1730111859299-ee5e6c628572?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D","handle":"Lasagna","createdAt":"2024-11-03T19:16:33.541Z","updatedAt":"2024-12-06T06:18:12.274Z","twoFactorEnabled":null,"isAnonymous":null,"suspended":false,"bio":null,"website":null,"socialLinks":null}},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"52317507738099731","view":4,"category":"Gossip","title":null,"createdAt":"2024-12-10T15:49:20.231Z","isPrivate":false,"feeds":{"type":"feed","id":"52317507738099731","url":"https://byebyephotography.typlog.io/feed/audio.xml","title":" 告别摄影 ","description":" 像谈论一场电影一样谈论摄影。 ","siteUrl":"https://byebye.photography/","image":"https://i.typlog.com/byebyephotography/8434577825_55052.png?x-oss-process=style/sl","errorMessage":null,"errorAt":null,"ownerUserId":null,"owner":null},"boost":{"boosters":[]}},{"userId":"41700557798798336","feedId":"122871224837215232","view":4,"category":"Gossip","title":null,"createdAt":"2025-03-13T04:49:57.858Z","isPrivate":false,"feeds":{"type":"feed","id":"122871224837215232","url":"https://feed.firstory.me/rss/user/ckcj6wwb8cnk409189vie8s1r","title":"沒有主題的閑聊","description":"
一檔沒有什麽主題的閑聊節目,不定時播出。
Powered by Firstory Hosting
在当前的软件开发领域,我们拥有前所未有的强大工具,但应用的部署与维护似乎并未变得更简单。从配置服务器、管理数据库到设置 CI/CD 流水线,每一个环节都可能消耗大量时间。对于追求高效和专注的开发者而言,理想的状态是提交代码后,其余的部署工作能自动、可靠地完成。正是在这样的需求背景下,Dokploy 作为一个开源的平台即服务(PaaS)解决方案,进入了我的视野。
\\n在部署工作流上,Dokploy 提供了高度的灵活性。它能够直接与 GitHub 集成,实现代码推送后自动触发构建和部署,形成完整的 CI/CD 闭环。构建过程本身,它既支持通过 Nixpacks、Heroku Buildpacks 等主流构建工具自动识别项目类型并打包,也允许开发者通过自定义的 Dockerfile 进行精细化控制。这种设计覆盖了从简单应用到复杂项目的各种需求。尤其值得一提的是,Dokploy 原生支持 Docker Compose,这对于需要编排多个关联服务的复杂应用而言,无疑是一个巨大的便利。开发者可以将本地测试通过的 docker-compose.yml
文件近乎无缝地迁移到生产环境,极大地降低了环境不一致带来的风险。
除了应用部署,Dokploy 还将数据库和服务的管理纳入其统一的控制面板。它支持一键部署包括 MySQL、PostgreSQL、MongoDB、Redis 在内的多种主流数据库,并内置了自动化的定时备份与恢复机制。开发者无需再手动编写备份脚本或担心数据丢失,平台将数据安全工作转变为简单的配置项。此外,对于每个运行中的应用和服务,Dokploy 都提供了实时的日志查看、资源监控(CPU、内存、磁盘、网络)以及直接进入容器的终端访问,为问题排查和日常运维提供了极大的便利。
\\n作为一个强调开发者自主性的工具,Dokploy 彻底贯彻了开源和自托管的原则。这意味着你拥有对自己基础设施的完全控制权,不存在任何厂商锁定的风险。你可以自由地修改、扩展平台功能,以满足特定的业务需求。同时,它支持多服务器部署和 Docker Swarm 集群,为应用的水平扩展提供了可能,保证了项目从初期到成长期的平滑过渡。
\\n在我看来,Dokploy 的价值在于它精准地找到了一个市场切入点:为那些既不满足于手动操作 docker-compose
,又觉得 Kubernetes 体系过于庞大的开发者,提供了一个\\"刚刚好\\"的解决方案。它没有试图成为一个包罗万象的巨型平台,而是专注于解决部署这一核心痛点,并把它做到极致地简单。
Dokploy 的核心理念是提供一种无缝的部署体验,它巧妙地在强大的功能与简洁的操作之间取得了平衡。与许多复杂的商业 PaaS 或需要深度定制的 Kubernetes 方案不同,Dokploy 提供了一套直观的界面和命令行工具,让开发者可以通过简单的几步操作,将应用部署到任何服务器上。
\\n深入其技术栈,Dokploy 的简洁性并非空中楼阁。它在底层集成了一系列成熟的开源组件:使用 Traefik 作为反向代理,自动处理域名、SSL 证书和流量路由,免去了繁琐的网络配置;通过 Redis 管理部署队列,确保了多个部署任务能够有序进行,避免了服务器资源的冲突;而核心数据则由稳健的 PostgreSQL 数据库负责存储。这一套架构,将复杂的后端运维工作封装在了一个清爽的 Next.js 前端界面之下,让开发者得以通过 UI 的方式管理应用,而不是陷入命令式的细节配置中。
\\n最后有必要澄清一个常见的技术选型困惑:何时选择传统的 PaaS 平台,何时转向 Serverless 架构。这两种方案在表面上都能简化部署,但它们解决的问题本质上不同。
\\nServerless 方案,如 Vercel、Netlify 或各大云厂商的函数计算服务,擅长处理无状态的、事件驱动的工作负载。它们的优势在于极致的自动扩缩容和按需付费,但这种便利的代价是对运行环境的严格限制。函数的执行时间、内存占用、冷启动延迟,这些约束条件决定了 Serverless 更适合 API 网关、静态网站生成、图片处理等场景,而非长期运行的服务或需要持久连接的应用。
\\n相比之下,Dokploy 这样的 PaaS 平台提供的是完整的应用运行环境。它不会强制你将应用拆解为无状态的函数片段,也不会限制你的数据库连接或文件系统访问。这种差异在实际项目中意义重大:如果你正在开发一个需要 WebSocket 长连接的实时协作工具,或者一个包含复杂状态管理的 SaaS 应用,传统容器化部署往往是更现实的选择。
\\n更深层的考虑在于成本结构。Serverless 的按调用计费模式对于流量不规律的项目非常友好,但当应用规模增长到一定程度时,持续的函数调用费用可能超过固定的服务器成本。Dokploy 的自托管特性让你可以在自己掌控的硬件上运行应用,避免了云厂商的「成长税」,这对独立开发者和成长期的产品而言,具有不可忽视的经济意义。
\\n为了更直观地展现 Dokploy 的优势,我整理了主流开源 PaaS 平台的完整功能对比。这个对比表格基于 Dokploy 官方文档,涵盖了部署工具的各个核心维度:
\\n功能特性 | \\nDokploy | \\nCapRover | \\nDokku | \\nCoolify | \\n
---|---|---|---|---|
用户界面 | \\n✅ | \\n✅ | \\n❌ | \\n✅ | \\n
Docker Compose 支持 | \\n✅ | \\n❌ | \\n❌ | \\n✅ | \\n
API/CLI 工具 | \\n✅ | \\n✅ | \\n✅ | \\n✅ | \\n
多节点支持 | \\n✅ | \\n✅ | \\n❌ | \\n✅ | \\n
Traefik 集成 | \\n✅ | \\n✅ | \\n插件支持 | \\n✅ | \\n
用户权限管理 | \\n✅ | \\n❌ | \\n❌ | \\n✅ | \\n
Bitbucket 集成 | \\n✅ | \\n❌ | \\n❌ | \\n❌ | \\n
GitLab 集成 | \\n✅ | \\n❌ | \\n❌ | \\n❌ | \\n
Gitea 集成 | \\n✅ | \\n❌ | \\n✅ | \\n❌ | \\n
高级用户权限管理 | \\n✅ | \\n❌ | \\n❌ | \\n❌ | \\n
内置终端访问 | \\n✅ | \\n❌ | \\n❌ | \\n✅ | \\n
数据库支持 | \\n✅ | \\n✅ | \\n❌ | \\n✅ | \\n
监控功能 | \\n✅ | \\n✅ | \\n❌ | \\n❌ | \\n
自动备份 | \\n✅ | \\n插件支持 | \\n插件支持 | \\n✅ | \\n
开源协议 | \\n✅ | \\n✅ | \\n✅ | \\n✅ | \\n
通知系统 | \\n✅ | \\n❌ | \\n❌ | \\n✅ | \\n
多服务器支持 | \\n✅ | \\n❌ | \\n❌ | \\n✅ | \\n
开源模板 | \\n✅ | \\n✅ | \\n❌ | \\n✅ | \\n
共享环境变量 | \\n✅ | \\n❌ | \\n❌ | \\n✅ | \\n
定时任务 | \\n✅ | \\n❌ | \\n❌ | \\n✅ | \\n
Cloudflare 隧道 | \\n❌ | \\n❌ | \\n❌ | \\n✅ | \\n
预览部署 | \\n✅ | \\n❌ | \\n❌ | \\n✅ | \\n
团队功能 | \\n✅ | \\n❌ | \\n❌ | \\n✅ | \\n
云版本/付费版本 | \\n✅ | \\n✅ | \\n✅ | \\n✅ | \\n
从这个对比中可以看出,Dokploy 在功能完整性方面具有明显优势,尤其是在 Git 平台集成、权限管理和运维功能方面。对于独立开发者、创业团队以及热衷于托管个人项目的人来说,Dokploy 提供了一个兼具控制力、灵活性与易用性的选择,让我们能重新将精力聚焦于创造本身,而非其背后的繁杂工程。
,在当前的软件开发领域,我们拥有前所未有的强大工具,但应用的部署与维护似乎并未变得更简单。从配置服务器、管理数据库到设置 CI/CD 流水线,每一个环节都可能消耗大量时间。对于追求高效和专注的开发者而言,理想的状态是提交代码后,其余的部署工作能自动、可靠地完成。正是在这样的需求背景下,Dokploy 作为一个开源的平台即服务(PaaS)解决方案,进入了我的视野。 流畅的部署与管理\\n\\n在部署工作流上,Dokploy 提供了高度的灵活性。它能够直接与 GitHub 集成,实现代码推送后自动触发构建和部署,形成完整的 CI/CD 闭环。构建过程本身,它既支持通过…,Dokploy:化繁为简的开源 PaaS 平台,2025-06-24T21:56:33.449Z,2025-06-22T00:00:00.568Z,[{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/2a6058925b833383ce6ff7135bd91c4a439688d553a55285ecbbc12458a0b2e0.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/b3b53df9d0af408a9e65e2b4328040dc00a419361111999d0fa6788cae6d4dd4.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/5d49d13778a8e93fb721356b2d5d1e6461221e329b3b7a8dd794b079cb59b72f.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/e0787384001c502a3f7d9ca8358308af73a453ac12996f7deff87dcb50f6474a.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/b79579a282dfe7442ecf3f0f777d3206dc7b3c193368df52bfbd6a679e9f5f92.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/4487d2c68d5b476e54b2fae97eb7087da252dcdc28600ad5b829fa5517792d3f.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/8cbeea4101d2228ece84d6707f77bbd6175bece38b77216e62f0f762b9d311e6.png\\",\\"type\\":\\"photo\\"}],42331815237783574,160455534494817281,Opik:重新定义 LLM 应用的可观测性边界,LLM 应用的开发正在重塑软件工程的边界。当我们构建越来越复杂的 RAG 系统和智能体工作流时,传统的调试和监控方法显得力不从心。在这个背景下,Comet ML 团队推出的 Opik 提供了一个颇具前瞻性的解决方案。
\\n项目地址:https://github.com/comet-ml/opik
\\n传统的应用监控建立在确定性逻辑之上:给定输入,期望固定输出。但 LLM 应用本质上是概率性的,同样的提示可能产生截然不同的结果。这种不确定性让传统的错误追踪方法失效了。
\\nOpik 的设计者显然理解这一点。它不是简单地记录输入和输出,而是构建了一个完整的「思维过程」追踪系统。每个 LLM 调用、每次 RAG 检索、每个智能体决策都被记录为一个完整的执行轨迹。这种粒度的可视化让开发者能够理解 AI 系统的「思考路径」,而不仅仅是结果。更有趣的是,Opik 将这种追踪能力做到了几乎零侵入。通过装饰器模式,开发者只需要在函数上添加 @opik.track
,整个调用链就会被自动记录。
传统软件测试依赖于断言和预期结果比较,但如何测试一个创作型 AI 的输出质量?Opik 的回答是引入「LLM as a Judge」评估框架。这个想法本身并不新颖,但 Opik 的实现颇具巧思。它内置了一系列预训练的评估指标,包括幻觉检测、相关性评估、答案质量评价等。更重要的是,这些评估器本身也是可追踪的,形成了一个递归的质量保证体系。我在实际使用中发现,这种方法解决了一个长期困扰 AI 应用开发的问题:如何在迭代过程中量化改进效果。
\\nOpik 的另一个亮点是其对生产环境的深度考虑。它提供了本地部署和云端服务两种选择,满足不同的数据安全需求。本地部署版本使用 Docker 容器化,部署过程相当简化。更值得注意的是其集成生态的广度,从主流的 LangChain、LlamaIndex,到新兴的 CrewAI、PydanticAI,Opik 几乎覆盖了所有主要的 LLM 开发框架。这种全面的兼容性降低了迁移成本,让团队能够在现有技术栈基础上引入可观测性能力。
\\n从技术架构角度,Opik 体现了对未来 AI 应用发展趋势的准确判断。它不仅支持当前主流的 LLM 调用模式,还为多智能体系统、复杂工作流编排等新兴场景提供了原生支持。特别值得关注的是其对 OpenTelemetry 标准的集成,这意味着 Opik 能够与现有的可观测性基础设施无缝整合,而不是要求企业重新构建监控体系。
\\n作为 Comet ML 的开源项目,Opik 采用了 Apache 2.0 许可证,这种选择并非偶然。在 AI 工具市场竞争激烈的当下,开源策略为 Comet ML 构建了一个重要的护城河。通过开源,Opik 获得了快速的社区反馈和贡献,目前项目已经获得超过 10,000 个 GitHub 星标,这种社区热度反映了市场对 LLM 可观测性工具的强烈需求。更重要的是,开源模式降低了用户的试用门槛,让更多开发者能够体验到专业级的 LLM 监控能力。
\\n当然,Opik 也并非完美。其评估指标主要依赖于英语语料训练,对中文等其他语言的支持还有待增强。此外,虽然提供了丰富的预设指标,但对于特定领域的评估需求,用户仍需要投入额外的定制工作。在可视化方面,虽然仪表板功能完善,但在处理大规模数据时的性能表现还有优化空间。
\\nOpik 的出现标志着 LLM 应用开发正在从「艺术」向「工程」转变。它为这个新兴领域提供了急需的工程化工具,让 AI 应用的开发变得更加可预测和可控制。在可预见的未来,随着 AI 应用复杂度的持续增长,类似 Opik 这样的可观测性工具将成为开发者的标准装备。它不仅仅是一个监控工具,更像是 AI 时代的「调试器」,帮助我们理解和优化这些看似神秘的智能系统。
\\n对于正在构建 LLM 应用的开发者来说,Opik 提供了一个低成本的尝试机会。它的学习曲线相对平缓,但提供的价值却可能是革命性的。在这个 AI 应用快速发展的时代,拥有一套成熟的可观测性工具,或许就是区分业余项目和专业产品的关键差异。
,LLM 应用的开发正在重塑软件工程的边界。当我们构建越来越复杂的 RAG 系统和智能体工作流时,传统的调试和监控方法显得力不从心。在这个背景下,Comet ML 团队推出的 Opik 提供了一个颇具前瞻性的解决方案。 项目地址:https://github.com/comet-ml/opik\\n\\n重新定义 AI 应用的可观测性\\n\\n传统的应用监控建立在确定性逻辑之上:给定输入,期望固定输出。但 LLM 应用本质上是概率性的,同样的提示可能产生截然不同的结果。这种不确定性让传统的错误追踪方法失效了。\\n\\nOpik 的设计者显然理解这一点。它不是简单地记录输入和输出…,Opik:重新定义 LLM 应用的可观测性边界,2025-06-24T21:56:33.448Z,2025-06-21T00:00:00.849Z,[{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/e96bb235666d040c9f9761c09d9ee57ad9b307c87049b198865e5b926ae5b51f.png\\",\\"type\\":\\"photo\\"}],42331815237783574,160455534494817282,2025 年 GPU 云服务大比拼:10 大 Serverless 平台深度解析,排名 | \\n服务商 | \\n定价 | \\n可扩展性 | \\nGPU 类型 | \\n易用性 | \\n速度 | \\n
---|---|---|---|---|---|---|
1 | \\nRunPod | \\n低成本,按秒计费; | \\n跨 9 个地区自动扩展;无硬并发限制 | \\n广泛范围(T4 到 A100/H100,包括 AMD) | \\n基于容器;REST API、SDK、快速模板 | \\n48% 的冷启动时间<200 毫秒 | \\n
2 | \\nCapital | \\n中等;入门版提供免费积分 | \\n快速扩展至数百台;计划各异 | \\n从 T4 到 H100 的广泛集合 | \\nPython SDK 具有自动容器化功能 | \\n超低延迟(2-4 秒冷启动) | \\n
3 | \\nReplicate | \\n自定义模型价格较高;社区模型免费 | \\n自动扩展,但冷启动可能较长 | \\nT4、A40、A100,部分 H100 | \\n预构建模型零配置;Cog 用于自定义代码 | \\n自定义模型冷启动可能超过 60 秒 | \\n
4 | \\nFal AI | \\n高端 GPU 具有竞争力 | \\n扩展至数千台;针对突发生成任务优化 | \\n专注高端 GPU(A100、H100、A6000) | \\n扩散模型的即用 API | \\n优化的冷启动(约几秒)和快速推理 | \\n
5 | \\nBaseten | \\n基于使用量(按分钟计费) | \\n可配置副本的自动扩展 | \\n从 T4、A10G、L4 到 A100/H100 的选项 | \\nTruss 框架简化部署;简洁 UI | \\n冷启动约 8-12 秒;动态批处理提升吞吐量 | \\n
6 | \\nAI news | \\n超实惠,基于使用量 | \\n跨 20+ 位置的弹性扩展 | \\nRTX 30/40系列,A100 SXM | \\n一键 JupyterLab;简单 API | \\n快速实例启动;低网络延迟 | \\n
7 | \\nBeam Cloud | \\n最低价格之一,提供免费层 | \\n从零开始自动扩展,开发者友好限制 | \\nT4、RTX 4090、A10G、A100/H100 | \\nPython SDK、CLI、热重载 | \\n超快(2-3 秒冷启动) | \\n
8 | \\nCerebrium | \\n竞争性按秒计费 | \\n跨多种 GPU 类型无缝扩展 | \\n12+ 类型包括 H100、A100、L40 | \\n最小配置;支持 websockets 和批处理 | \\n极速冷启动(2-4 秒) | \\n
9 | \\nGoogle Cloud Run | \\n基于使用量,额外 CPU/内存成本 | \\n从零扩展至 1000 个实例 | \\n目前为 NVIDIA L4(24GB) | \\n自带容器;集成在 GCP 中 | \\n冷启动约 4-6 秒;接近裸机性能 | \\n
10 | \\nAzure Container Apps | \\n预期与 Azure 费率一致 | \\n托管的事件驱动扩展(预览版) | \\nNVIDIA T4 和 A100(选项扩展中) | \\n简单 YAML 配置;与 Azure Monitor 集成 | \\n预期约 5 秒冷启动;激活时完整 GPU 性能 | \\n
1 | \\n\\n | \\n | \\n | \\n | \\n | \\n |
⬆️ 选了张好看的封面。
\\n苹果在最新的 macOS 26 Beta 中引入了全新的 Liquid Glass 设计语言,号称是继扁平化以来最大的界面革命。我第一时间升级体验,虽然视觉效果确实很炫酷,但在日常使用中却发现了不少问题,这也是我不推荐你现在升级的原因。
\\n以下是他的三大罪:
\\n接下来让我慢慢道来。
\\n新系统最直观的感受是,为了追求视觉上的惊艳,牺牲了信息传达的效率和用户的专注度。
\\n除了对用户体验的直接影响外,Liquid Glass 作为一套设计语言,其自身也暴露了不成熟和不统一的问题。
\\n\\n\\n仔细想想,macOS Tahoe 的访达太糟糕了。\\n这是什么鬼。Big Sur 的设计好多了。而且现在窗口太圆润了。
\\n
\\n\\n刚安装了 macOS Tahoe,我的心情很复杂。它感觉非常杂乱,有太多的特效、阴影和叠加效果,我不太喜欢。
\\n
\\n\\nmacOS Tahoe 的首个开发者测试版来了。\\n嗯,我对这个设计不太确定。\\n它看起来…… 很奇怪?侧边栏、图标,最重要的是,这些糟糕的边角弧度!\\n但我知道,我们会习惯的。
\\n
Liquid Glass 带来了大量动态光影、流体和粒子效果。这些酷炫的视觉效果背后,是对系统资源的巨大消耗。在我的使用过程中,尤其是在打开多个应用或进行复杂操作时,能明显感觉到系统的卡顿和发热。对于非最新款的设备,性能问题可能会更加突出。
\\n既然有这么多显而易见的问题,为什么苹果还要坚持推出 Liquid Glass?这背后其实是为未来的计算平台做准备。
\\n首先,它试图在\\"拟物化\\"和\\"扁平化\\"两个极端之间找到平衡。扁平化设计虽然简洁高效,但牺牲了界面的层次感和可操作性,用户有时难以分辨哪些元素可以点击。而 Liquid Glass 通过模拟玻璃材质的光影、厚度和半透明效果,重新引入了界面的物理质感和深度,让交互元素更清晰可辨。
\\n其次,也是更重要的一点,Liquid Glass 是为混合现实(MR/AR/VR)时代而生的设计语言。在 Vision Pro 这样的设备中,传统的二维扁平界面会显得格格不入。Liquid Glass 将界面塑造成仿佛悬浮在真实环境中的玻璃面板,既有真实物体的质感,又能承载丰富的数字信息,从而无缝融合虚拟与现实。苹果将其推广到所有设备,正是为了统一未来所有平台的体验,为从二维屏幕到三维空间的过渡铺平道路。
\\n从这个角度看,Liquid Glass 代表了苹果对未来的赌注。它试图通过动态化的界面,弥合数字世界与物理世界的边界。
\\n所以,回到最初的问题:我推荐现在升级吗?
\\n我的答案很明确:不推荐。特别是如果你的 Mac 是主力生产力工具,稳定和高效是首要前提,那么请务必保持观望。至于我自己的其他设备,我也会等苹果在后续版本中进行更多优化后再考虑。
\\n虽然 Liquid Glass 代表了苹果对未来设计的大胆探索,但就眼下的 Beta 版本而言,酷炫的视觉效果是建立在牺牲可用性和稳定性的基础之上的。当然,我们有理由相信苹果会在正式版发布前修复诸多问题。
\\n但至少在目前,对于追求稳定和效率的用户来说,最好的选择就是\\"再等等\\"。
\\n\\n\\n不过隔壁 iPadOS 看着很不错,想要试试宇宙第一的平板了。
\\n
我用另一台装有旧版系统的 mac 设备收集了一些用户体验很好的界面。\\n他们的视觉体验可能不太好看,在这些工具性应用前,他们直观、清晰、高效。
\\n永远怀念 R.I.P. Mac OS Big Sur Design
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n标题党了一回。刚刚我又给这篇文章想了另一个标题:上帝死了,我们怎么办
\\n
本文主要是一个知识传播的目的,而非深入的理论探讨。我本人对存在主义的理解也还停留在比较浅显的层面。但即便如此,存在主义的一些基本观点,比如\\"痛苦源于自由被压制\\"这样的洞见,依然能给我们带来很多启发。
\\n20 世纪的哲学家们,在经历了世界大战的残酷和传统的崩塌后,深入思考了人生的意义,并由此诞生了存在主义。与以往认为人生有预设意义的\\"本质主义\\"不同,存在主义认为,人是自由的,我们的人生意义由我们自己的选择和行动来定义。其核心思想可以概括为三大原理:
\\n接下来,我们将逐一深入探讨这三大原理。
\\n自古以来,人们习惯于相信\\"本质主义\\",也就是所谓宿命论、决定论,即认为万事万物都有一个预先设定的\\"本质\\"或\\"意义\\",而这个意义通常被归于神的意志或某种神秘的天命。比如,项羽是不是上天降下来灭秦的?牛顿是不是上天派来照亮物理学的?你的人生是否也有一个出厂设置好的意义?
\\n存在主义者对这一点提出了尖锐的质疑。他们认为,如果真的有神在主宰一切,那该如何解释世界大战那样的人间惨剧?难道上帝造你是为了让你去当炮灰或者刽子手吗?显然不是。存在主义者认为,我们不应为自己的行为寻找借口,你之所以行善或作恶,不是因为什么神圣的旨意,而是你自由意志自己做出的选择。
\\n就像上帝不让亚当夏娃吃禁果,但他们还是自己选择吃了。世界就像一个生态缸,上帝并不会操纵里面每个小鱼小虾的人生,而是让他们自由拼杀。因此,世界本身是中性的、无意义的,意义是由我们自己赋予的。
\\n所以,\\"人生的意义是什么?\\"这个问题的答案,第一步是:没有标准答案。但这并非悲观的结论,恰恰相反,它把定义意义的权力交还给了我们自己。
\\n\\"存在先于本质\\"是存在主义最核心的观点。它的意思是,在你作为一个实体存在之前,任何关于你的\\"设计\\"或\\"本质\\"都是空谈。即人是不被定义的。
\\n你可能会说,我的人生意义不是被父母早就定了吗?比如父母有皇位要继承,或者生你就是为了用你的脐带血给你哥治病。但存在主义会告诉你,无论你父母有什么打算,这些打算都必须等你真正地存在、成长,并拥有行动能力之后才有可能实现。比方说,你父母想让你当歌唱家,结果你生下来五音不全,那么这个预设的\\"本质\\"就毫无意义。
\\n再举个例子,你说你这双手的意义是用来开坦克的。但你必须先拥有一双手(存在),然后才能讨论这双手可以用来干什么(本质/意义)。你得先有这个东西,才能决定这个东西的用途和价值。因此,是你的\\"存在\\",决定了你的\\"本质\\",而非反过来。你不是一张被画好的图纸,你是一张白纸,你的样貌由你自己一笔一一笔画成。
\\n存在主义强调人的绝对自由。这种自由体现在,你永远拥有选择的权利。你现在正在看这篇文章,你随时可以决定是继续看下去,还是站起来跳两下。你拥有对自己身体和行动的基本控制权。
\\n这种自由意志甚至体现在最极端的境况下。一个奴隶,虽然身体被奴役,但他依然保有内在的自由。他可以选择偷懒的程度,可以选择反抗还是顺从,甚至可以选择结束自己的生命来摆脱奴役。这一点将人与纯粹的动物区分开来,因为牛无法选择自杀,它不具备这种对自身生命的终极控制权。
\\n但是,自由并非没有代价,它如影随形地带来了责任。你的自由意志不是让你改变物理定律的魔法,而是一种\\"主观能动性\\"。你无法完全控制环境,也无法控制他人对你的影响,但你的每一个选择,都会给自己和环境带来后果。
\\n你可能会感到困惑:如果我为了养家糊口,不得不去做一份自己痛恨的工作,这难道不是违背了我的自由意志吗?我的自由又在哪里?
\\n存在主义的回答是:即使在这样的困境中,你依然在做选择。你选择了\\"承担家庭责任\\"而不是\\"追求个人喜好\\"。这个选择是痛苦的,但它依然是你的选择。承认这一点,就是承认自己的自由和责任。你选择了当前的道路,并为这个选择的后果负责。自由不是随心所欲,而是在认识到所有限制和后果之后,依然做出自己的决定。
\\n为了方便理解,我们再次对这三大原理进行浓缩解释:
\\n为啥抑郁者喜欢思考人生的意义呢?因为他痛苦,不知道自己受这个苦干啥。而现代人啥东西最痛苦,不是吃穿,而是社会压力,和精神凌虐。社会动物是在乎社会连接和社会评价的,抑郁者,说白了,就是被欺负了,被掠夺了,被伤害了。
\\n这恰好印证了萨特那句名言:\\"他人即地狱\\"。这并非是说他人都是邪恶的,而是指我们无时无刻不活在他人的审视之下,这种审视会物化我们,剥夺我们的自由,让我们感到焦虑和痛苦。我们自身的意义,时常被他人的定义所遮蔽和扭曲。
\\n这种困境在青春期尤为明显。当一个孩子开始意识到自己的独立人格(主体性)时,他会发现,从小被教导的那一套价值观和行为准则,是先于他而存在的,他并没有选择的余地。如果家庭、学校和社会环境总是压制孩子,告诉他\\"自由的冲动\\"和\\"独立的想法\\"是坏的,那么他就会学着压抑自己的真实感受,意志力的发展也会充满内疚感。比如,\\"质疑老师是不对的\\"、\\"忤逆家长是不对的\\"、\\"玩游戏是不好的\\",所有和学习无关,不能提高成绩的行为,哪怕能带来快乐,也统统被禁止。
\\n当一个人的生活被如此结构化,他会感到生活是外加的,是一个必须服从的框架,而不是一张可以自己编织的网。他会觉得自己行为和结果之间没有因果关系,这就是心理学上的\\"习得性无助\\"——当一个人\\"习得\\"了自己无法掌控人生时,便会失去行动力,表现出抑郁症状。特别是当他发现,从小被灌输的\\"延迟满足\\"(牺牲现在,换取未来)是个陷阱,牺牲所有当下的快乐,并没有换来想象中的美好未来时,他的热情和憧憬就会彻底破灭。这种\\"死气沉沉\\",不是因为没有感受,而是太多的感受被压抑和吞噬了。要直面人生固有的焦虑,人需要强大的自我力量,但如果一个人的主体性在成长中早已被扼杀,这种力量就无从谈起。
\\n那咋整?是时候动用我们上面的思想成果了。发挥你的:自由意志!有人欺负你,那多躲远点,要不就反击,或者让自己不要记仇郁闷,方法太多了,关键是自己想明白自己要干啥。生活学习压力大?竞争不过别人?那你看看谁是你绊脚石和拦路虎,打得过就打,打不过就加入,不想加入就无视,换个环境,或者自己想开了,明白贱人自有天收,你看还是有很多办法的。你真的可以自己去选,但是记住,存在先于意义,你得基于条件创造条件,才能有够得着的实际意义。
\\n最近,在浏览技术社区时,一个反复出现的问题引发了我的深思:
\\n\\n\\n为什么 Node.js 在国外如此盛行,而在国内却显得有些\\"水土不服\\"?
\\n
许多讨论都集中在语言特性、社区生态或招聘环境上,但我认为,这些都只是表象。真正的答案,藏在 Node.js 背后的云计算范式——Serverless 的发展路径差异之中。可以说,我们讨论的并非 Node.js 的困境,而是 Serverless 在国内的困境。
\\n在国外,Node.js 的蓬勃发展与 Serverless 平台的崛起密不可分。Vercel、Netlify、Deno Deploy、Cloudflare Workers 等众多玩家,共同构建了一个简单而强大的生态系统。
\\n这些平台具备一个鲜明的共同点:功能纯粹,体验极致。无论是 Vercel 对前端部署的极致优化,还是 Cloudflare Workers 在边缘计算的探索,它们都将 Serverless 的核心理念——简化运维、按需执行——做到了极致。开发者可以专注于业务逻辑,快速搭建博客、部署静态网站(如 Astro),或实现轻量级 API。
\\n在这种环境下,JavaScript 不再仅仅是一门前端语言或一种后端技术选型,它成为了整个 Serverless 生态的核心载体。开发者推崇的并非\\"JavaScript 全栈\\",而是\\"Serverless 全栈\\",JavaScript 只是这个体系中最自然的执行引擎。
\\n反观国内,我们走上了一条截然不同的技术路径,这导致了 Serverless 发展土壤的贫瘠。
\\n国内的云计算巨头,如阿里云和腾讯云,从诞生之初就将目光锁定在大型企业客户上。它们倾向于构建功能全面、体系庞杂的 PaaS(平台即服务)解决方案。
\\n当你打开它们的控制台,成百上千的功能按钮令人眼花缭乱,而 Serverless(云函数)的入口则被深深地埋藏在这片功能的海洋中。这与 Cloudflare 或 Vercel 那种\\"登录即可部署\\"的简洁体验形成了鲜明对比。巨头们的 Serverless 产品线,往往给人一种\\"有,但不好用\\"的印象,它们更像是庞大服务体系中的一个\\"添头\\",而非战略核心。
\\n在企业和开发者层面,市场表现出了对传统开发模式的强大惯性。大家更倾向于使用成熟、大而全的框架来\\"快速出活\\",认为这样更可控、更符合团队招聘和技术栈需求。
\\nSpring Boot 在 Java 生态的统治地位便是明证。而在 Node.js 领域,NestJS 的快速崛起也反映了同样的思路。许多团队选择 NestJS,是看中了它\\"企业级\\"的标签和对 Spring Boot 模式的模仿。然而,尽管 NestJS 对 Express 进行了封装,提供了类似的企业级开发体验,但其技术深度和生态成熟度远无法与 Spring Boot 相提并论。这种对重型框架的偏爱,使得需要改变开发思维的 Serverless 模式,难以获得广泛的市场认知和接受。
\\n归根结底,国内 Node.js 生态在后端领域的尴尬,根源在于缺少一个像 Vercel 或 Cloudflare 那样真正引爆开发者社区的 Serverless 平台。那么,为什么这样的平台没有在国内诞生呢?
\\n首先,是高昂的运营成本与安全风险。
\\n一个对开发者友好的平台,通常需要提供慷慨的免费额度及强大的安全防护。这正是 Cloudflare 成功的关键之一——它为全球网站提供免费的 DDoS 防护。然而,在国内的网络环境下,DDoS 攻击的成本和频率都异常之高。对于一家初创公司而言,免费提供 DDoS 防护意味着巨大的、不可承受的成本和风险。这道高墙足以挡住绝大多数潜在的挑战者。
\\n其次,是巨头的商业模式与战略选择。
\\n唯一有能力承受这种成本的,只有云计算巨头。但如前文所述,它们的商业模式决定了其重心在服务大型企业,追求的是\\"大而全\\"的产品矩阵和高客单价。打磨一款针对个体开发者的、体验极致的 Serverless 产品,并不符合它们当前的核心商业利益。没有竞争,巨头们自然也缺乏足够的动力去优化和推广自己的 Serverless 产品线。
\\n最后,是历史的包袱与市场的空白。
\\n回想当年,PHP 虚拟空间何尝不是一种广义上的 Serverless?DA 和 CP 面板提供了基础的管理功能,新浪 SAE 也曾是国内 Serverless 理念的早期探索者。它们的流行证明了简化部署和运维的巨大价值。然而,随着技术向更复杂的集群化和容器化演进,这种简单、低成本的模式逐渐被遗忘。
\\n在国外,Vercel 等公司填补了这个空白,并将其升级为现代化的 Serverless 平台。而在国内,由于上述种种原因,这个赛道上始终缺乏有力的\\"挑战者\\",最终形成了当前这种\\"有,但不好用\\"的尴尬局面。
\\n技术的发展从来不是单一路径的。国内外在 Serverless 领域的不同选择,深刻反映了各自市场环境、技术文化和商业模式的差异。
\\n国外选择了\\"小而美\\"的专业化路线,通过极致的用户体验和专注的功能定位赢得了开发者的心。国内则走向了\\"大而全\\"的平台化路线,以满足企业级客户复杂的业务需求。
\\n两种路径都有其商业上的合理性。但对于培育开发者生态和推动底层技术创新而言,我们或许需要更多\\"小而美\\"的尝试。毕竟,真正的技术进步,往往来自于对复杂性的优雅简化,而不是对功能的无尽堆砌。
,最近,在浏览技术社区时,一个反复出现的问题引发了我的深思: 为什么 Node.js 在国外如此盛行,而在国内却显得有些\\"水土不服\\"?\\n\\n许多讨论都集中在语言特性、社区生态或招聘环境上,但我认为,这些都只是表象。真正的答案,藏在 Node.js 背后的云计算范式——Serverless 的发展路径差异之中。可以说,我们讨论的并非 Node.js 的困境,而是 Serverless 在国内的困境。\\n\\n国外:Serverless 为王,JavaScript 为核\\n\\n在国外,Node.js 的蓬勃发展与 Serverless 平台的崛起密不可分。Vercel…,关于 Serverless 的思考:为什么国内外差距如此之大?,2025-06-24T21:56:33.444Z,2025-06-09T21:35:28.330Z,[{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/32cc96e4492b205084ee1a37335b24cc5ed5650da21c04a0c666c3822e0cc15b.png\\",\\"type\\":\\"photo\\"}],42331815237783574,160455534494817286,国内设计网站推荐:设计师必备的创意灵感宝库,今天为大家精心整理了 9 个国内顶尖的设计网站,涵盖了灵感获取、作品展示、学习教程、资源下载等设计师日常工作的各个环节。
\\n传送门:https://www.zcool.com.cn/
\\n站酷(ZCOOL)是国内最具影响力的设计师互动平台之一,汇集了大量优秀的设计作品与创意灵感。平台包含平面设计、插画、摄影、UI/UX 等多种领域的内容,为设计师提供展示作品、交流学习的空间。用户不仅可以浏览海量优质作品获取灵感,还能参与平台举办的设计赛事,或是通过专业课程提升技能。
\\n传送门:https://www.zcool.com.cn/top/index.do
\\n站酷排行榜收录了当周最受关注的设计作品,涵盖插画、平面、UI、网页、摄影、三维等 16 个设计门类。榜单每周二上午 11 点更新,展示了中国设计师社区最具人气的创意作品,包括品牌设计、电商视觉、影视动画等多个维度。排名依据作品的热度、推荐数、收藏量等综合数据计算,为设计从业者和爱好者提供权威的行业趋势参考。
\\n传送门:https://www.uisdc.com/
\\n优设网是国内知名的设计学习与资源共享平台,为设计师提供从入门到进阶的全面内容。网站涵盖了 UI 设计、AIGC、交互设计、产品设计等专业领域的最新趋势和实践案例,同时整合了丰富的设计工具、免费资源和学习路径。无论是寻找设计灵感、学习专业技能,还是获取实战教程和行业资讯,优设网都能满足不同层次设计师的需求。
\\n传送门:https://uiiiuiii.com/inspiration
\\n优优教程网是国内知名的设计教程与灵感平台,为设计师提供丰富的图文教程、视频教程和创意灵感。网站设有 Banner 设计、海报设计、Logo 设计、插画绘画、字体设计、UI 设计等多个专业分类,每日更新最新设计趋势和实用技巧。平台还提供设计导航、AI 工具导航等实用资源,以及设计书籍推荐、色彩搭配指南等辅助功能,满足不同层次设计师的学习需求。
\\n传送门:https://www.ui.cn/
\\nUI 中国是国内领先的专业用户体验设计平台,为设计师提供作品展示、交流学习、职业发展等全方位服务。平台汇聚了大量优秀设计作品、行业文章和教程资源,涵盖 UI 设计、交互设计、平面设计等多个领域。通过丰富的线上线下活动、设计大赛和招聘服务,UI 中国连接设计师与企业需求,助力设计人才成长。
\\n传送门:https://www.xiusheji.com/
\\n秀设计是一个专注于创意设计领域的综合平台,汇集了国内外最新设计赛事资讯、优秀设计作品展示以及丰富的设计资源。网站内容涵盖平面设计、工业产品、建筑室内、UI 设计等多个设计门类,为用户提供灵感获取、作品分享和专业交流的一站式服务。平台定期更新设计大赛信息、行业新闻动态,并提供大量免费可商用字体、样机和设计工具资源,是设计师日常创作和工作的重要参考站点。
\\n传送门:https://huaban.com/
\\n花瓣网是国内知名的设计素材分享平台,汇集了海量的高质量设计元素、创作灵感和行业趋势。平台以\\"陪你做生活的设计师\\"为理念,为专业设计师和创意爱好者提供丰富的视觉资源。从节日热点素材到行业设计趋势,从平面设计到 3D 艺术,用户可以在这里发现最新设计潮流,获取创作灵感,或分享自己的作品。
\\n传送门:https://isux.tencent.com/
\\n腾讯 ISUX(Internet Social User Experience)是腾讯社交用户体验设计部官方平台,致力于分享前沿的设计理念和实践经验。该网站包含丰富的内容资源,涵盖设计文章、品牌案例、行业资源等多个栏目,为设计师和用户体验从业者提供专业的交流平台。网站上展示的最新研究成果和设计作品,覆盖了 AIGC 技术应用、沉浸式体验打造、字体设计创新等多个热门领域。
\\n传送门:https://www.shejidaren.com/
\\n设计达人是一个专注于为创意工作者提供实用干货的综合性设计资源平台。网站涵盖了视觉设计、AI 绘画、资源推荐等多个创意设计领域,定期更新设计教程、素材资源和行业工具测评。从平面设计物料尺寸指南到 AI 生成游戏 UI 技巧,从排版黄金法则到免费图标库推荐,这里既有新手设计师必备的基础知识,也包含资深创作者需要的前沿技术解析。特别值得一提的是,该平台对 AI 在设计领域的应用保持高度关注,提供了大量实用 AI 工具的体验报告和操作指南。
\\n随着 Serverless GPU 平台需求的激增,AI 工程师现在可以轻松进行按需推理,而无需担心底层基础设施的管理问题。在本文中,我们将对比包括 RunPod、Modal、Replicate、Novita AI、Fal AI、Baseten 在内的顶级服务提供商,帮助您选择 2025 年 AI 算力需求的最佳解决方案。
\\n共绩科技是一家专注于提供弹性 GPU 算力服务的云计算平台,致力于通过整合全球闲置算力资源为客户提供高性价比的计算解决方案。该平台基于清华背景团队开发,采用动态扩缩容机制和按秒计费模式,支持包括 AI 模型训练、视频转码、科学计算等多种应用场景。主要亮点包括 NVIDIA RTX 4090 等顶级硬件支持、灵活的弹性计费机制和完整的容器生态,同时提供 99.9% 的可用性保障和 24/7 专业支持。平台已服务清华大学、华为等多家知名机构和企业的 AI 团队。
\\nRunPod 是一个专为 AI 工作负载设计的云平台,提供从模型训练到部署的全流程解决方案。平台支持全球分布式 GPU 资源,涵盖 PyTorch、TensorFlow 等多种预配置环境,并允许用户自定义容器。RunPod 特别注重快速部署和成本效益,其服务器启动时间可缩短至毫秒级,并提供 50 多种开箱即用的模板。平台还提供自动扩展的 Serverless GPU 服务,冷启动时间低于 250 毫秒,适合需要弹性扩展的 AI 推理场景。此外,RunPod 还针对初创公司和学术机构提供专门的信用计划。
\\nModal 是一个专为 AI 开发者设计的云端计算平台,提供简单高效的解决方案来部署和运行定制化 AI 模型。通过一行代码即可将 Python 函数部署到云端,并自动获得弹性扩展能力,适用于机器学习推理、数据处理等各种计算密集型任务。平台采用创新的 Rust 容器技术实现亚秒级启动,支持数百 GPU 的秒级扩展,并提供按秒计费的灵活定价模式。
\\nReplicate 是一个开源 AI 模型托管平台,提供了简单易用的 API 接口,让开发者能够通过一行代码调用各类预训练 AI 模型。平台汇集了图像生成、视频处理、文本创作等数千个社区贡献的最新模型,所有模型都经过优化可直接用于生产环境。Replicate 采用按秒计费的云服务模式,自动处理 GPU 资源调度和 API 部署等基础设施问题,大幅降低了 AI 应用开发的门槛。
\\n传送门:https://fal.ai
\\nfal.ai 是一个专为开发者设计的生成式 AI 平台,致力于提供高性能、低延迟的媒体生成体验。该平台内置强大的 fal Inference Engine™,能够以高达 4 倍的速度运行扩散模型,支持从文本到图像、图像到视频等多种生成任务。开发者可通过直观的 API 接口、丰富的预训练模型库(如 Kling、Pixverse 等),快速构建创意应用,同时享受灵活的按需付费模式和企业级定制服务。
\\nBaseten 是一个专注于 AI 模型推理部署的平台,为企业提供高性能的模型运行环境、跨云高可用性解决方案和流畅的开发者工作流程。该平台支持开源模型、定制化模型和微调模型的部署,适用于各种生产环境需求。Baseten 凭借其优化的推理堆栈、云原生基础设施和专业的工程支持,帮助众多知名企业快速实现 AI 产品落地。
\\nNovita.ai 是一个专注于 AI 模型部署的云端平台,提供简单易用的 API 接口帮助开发者快速部署和扩展 AI 应用。平台整合了 200 多个开源 AI 模型,覆盖聊天、代码、图像、音频等多种类型,并支持企业级定制模型的部署。通过全球分布式 GPU 资源和按需付费的服务器架构,Novita.ai 实现了高性价比的 AI 服务,为客户节省高达 50% 的成本,同时保障高性能和稳定性。
\\n步入 2025 年,AI 应用的蓬勃发展让我们见证了技术变革的力量,但作为深耕 AI 领域的开发者,我们却在实际部署中屡屡碰壁——要么是高昂的 GPU 租赁成本让项目举步维艰,要么是传统云服务的刚性供给无法匹配波动性需求,亦或是复杂的基础设施管理消耗了大量精力。我们深知,这些痛点不仅困扰着我们,更是整个 AI 行业面临的共同挑战。于是,一个念头在我们心中萌生:为何不打造一个真正解决这些问题的 Serverless GPU 平台?于是,共绩算力应运而生。这不仅是一个产品,更是我们对 AI 算力服务理想形态的探索与实践,希望它能为那些致力于 AI 创新的开发者们,开启一个全新的算力时代。
\\n在使用算力的过程中,我们深刻感受到 AI 应用对推理算力需求的激增,但同时也观察到国内算力市场存在的结构性问题。高昂的推理成本正在阻碍 AI 应用的落地与创新,这促使我们思考如何解决这些痛点:
\\n这些问题构成了我们所说的 AI 算力市场 \\"弹性、稳定、低价\\"不可能三角,企业很难兼得这三个特性。目前多数云平台提供的三类服务:整租(低价&稳定)、按量租(高价&稳定)、抢占式 SPOT 实例(低价&弹性),都无法完美解决这个问题。
\\n传统 GPU 整租模式难以匹配 AI 推理的波动性需求,导致高昂的\\"空闲成本\\"或服务中断,这正是我们要解决的核心问题。
\\n图:刚性供给与弹性需求之间的矛盾,直接影响了 AI 应用成本和用户体验
\\n面对这一矛盾,我们将目光投向了近年来兴起的 Serverless 计算理念。我们认为,它通过按需付费、自动伸缩和简化运维,为 AI 推理提供了理想的解决方案。
\\nServerless GPU 允许开发者按需调用 GPU 算力,无需管理硬件,特别适合请求量不稳定的 AI 推理场景。我们研究了全球 Serverless GPU 市场的发展,发现如 RunPod 等平台已经提供按小时计费、容器化部署等服务。
\\n然而,我们发现国内专注于 Serverless GPU 服务的平台较少,资源储备不足限制了本土 AI 应用的 Serverless 部署。这正是我们决定开发共绩算力的关键原因。
\\n基于对市场痛点的深入理解,我们开发了\\"共绩算力\\"(suanli.cn),这是我们专为 AI 推理打造的 Serverless GPU 平台。我们的目标是打破行业\\"不可能三角\\",真正实现弹性、稳定、低价。
\\n我们为共绩算力平台设计的核心价值:
\\n我们自研的闲时算力调度平台整合了多家智算平台的资源,不仅提供了 Serverless 按需付费特性,还通过跨平台资源整合破解了\\"供需错配\\"这一行业难题。
\\n我们的 NVIDIA RTX 4090 单卡推理服务:仅需 1.68 元/小时!
\\n即日起至 6 月 18 日,新用户注册并首次充值,我们额外赠送 20% 积分!
\\n邀请好友使用我们的服务,通过您的邀请码成功拉新,您和被邀请人各得 50 元积分!
\\n参与方式: 活动期间,通过我们的官方网站 suanli.cn 登录用户后台,选择在线充值即可自动参与并获得赠送金额。具体活动细则以官网届时公布为准。
\\n立即访问 suanli.cn,体验我们打造的 AI 推理新纪元,让算力不再是您创新的瓶颈!
,步入 2025 年,AI 应用的蓬勃发展让我们见证了技术变革的力量,但作为深耕 AI 领域的开发者,我们却在实际部署中屡屡碰壁——要么是高昂的 GPU 租赁成本让项目举步维艰,要么是传统云服务的刚性供给无法匹配波动性需求,亦或是复杂的基础设施管理消耗了大量精力。我们深知,这些痛点不仅困扰着我们,更是整个 AI 行业面临的共同挑战。于是,一个念头在我们心中萌生:为何不打造一个真正解决这些问题的 Serverless GPU 平台?于是,共绩算力应运而生。这不仅是一个产品,更是我们对 AI 算力服务理想形态的探索与实践,希望它能为那些致力于 AI…,我们做了国内首个 Serverless GPU 产品,2025-06-24T21:56:33.441Z,2025-05-27T06:34:18.055Z,[{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/bbf509d90a605789e243aca8285684dff6088c72016878228b08e624726bf5ae.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/e4d401640a975ef239e243bc81f1875068008140b422dd83bc2e9e533e91c011.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/e2f87d2a7626555c9b4898fea0f3df2fe34887b968deed4cd09ec56547c1cba6.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/586cc0c044bdfc2b0d5b2f50482054278c95c5b72fcf85de812bc41076219e97.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/807ea14ce3ca1506b0c6936a44f3a98a15c4618ec88f8de9d801106bd52b1917.png\\",\\"type\\":\\"photo\\"}],42331815237783574,160455534494817289,Mermaid 两个极简主题样式分享,Mermaid.js 是一款强大的工具,它允许我们使用文本和代码快速生成各种图表和流程图。非常适合与 Markdown 结合。一个美观且合适的图表主题能够显著提升信息传递的效率和专业性。
\\n但是他的默认主题实在是太丑了,于是本文分享两个简约风格的 Mermaid 主题配置。
\\n原皮:
\\n要使用此主题,只需将以下 %%{ init: { ... } }%%
配置块复制到你的 Mermaid 代码块的顶部即可。
%%{\\n init: {\\n \'theme\': \'base\',\\n \'themeVariables\': {\\n \'primaryColor\': \'#ffffff\',\\n \'primaryTextColor\': \'#333333\',\\n \'primaryBorderColor\': \'#cccccc\',\\n \'lineColor\': \'#888888\',\\n \'tertiaryColor\': \'#D0E4FF\',\\n \'tertiaryBorderColor\': \'#D0E4FF\',\\n \'tertiaryTextColor\': \'#00A4FF\'\\n }\\n }\\n}%%\\n
\\n如上所示,我基于 base
主题魔改了一些自定义样式。通过 themeVariables
,调整了颜色方案:
primaryColor
: #ffffff
(节点背景色 - 白色)primaryTextColor
: #333333
(节点文字颜色 - 深灰色)primaryBorderColor
: #cccccc
(节点边框色 - 浅灰色)lineColor
: #888888
(连接线颜色 - 中灰色)tertiaryColor
: #D0E4FF
(特定节点/分组背景色 - 淡蓝色)tertiaryBorderColor
: #D0E4FF
(特定节点/分组边框色 - 淡蓝色)tertiaryTextColor
: #00A4FF
(特定节点/分组文字颜色 - 亮蓝色)第二个主题采用了更加商务化的配色方案,使用淡雅的背景色和黑色边框,更适合正式文档和商务报告。
\\n%%{\\n init: {\\n \'theme\': \'base\',\\n \'themeVariables\': {\\n \'primaryColor\': \'#F0F4FC\',\\n \'primaryTextColor\': \'#1F2329\',\\n \'primaryBorderColor\': \'#000000\',\\n \'lineColor\': \'#888888\',\\n \'tertiaryColor\': \'#F5F6F7\',\\n \'tertiaryBorderColor\': \'#F5F6F7\',\\n \'tertiaryTextColor\': \'#00A4FF\'\\n }\\n }\\n}%%\\n
\\n这个主题使用了更加专业和商务化的色彩搭配:
\\nprimaryColor
: #F0F4FC
(节点背景色 - 淡蓝灰色)primaryTextColor
: #1F2329
(节点文字颜色 - 深色文本)primaryBorderColor
: #000000
(节点边框色 - 黑色边框)lineColor
: #888888
(连接线颜色 - 中灰色)tertiaryColor
: #F5F6F7
(特定节点/分组背景色 - 浅灰色)tertiaryBorderColor
: #F5F6F7
(特定节点/分组边框色 - 浅灰色)tertiaryTextColor
: #00A4FF
(特定节点/分组文字颜色 - 亮蓝色)代码如下:
\\n%%{\\n init: {\\n \'theme\': \'base\',\\n \'themeVariables\': {\\n \'primaryColor\': \'#ffffff\',\\n \'primaryTextColor\': \'#333333\',\\n \'primaryBorderColor\': \'#cccccc\',\\n \'lineColor\': \'#888888\',\\n \'tertiaryColor\': \'#D0E4FF\',\\n \'tertiaryBorderColor\': \'#D0E4FF\',\\n \'tertiaryTextColor\': \'#00A4FF\'\\n }\\n }\\n}%%\\ngraph TD\\n subgraph client_subgraph [客户端]\\n C1[客户端1]\\n C2[客户端2]\\n C3[客户端3]\\n end\\n\\n subgraph server_subgraph [服务器集群]\\n S1[服务器1 (健康)]\\n S2[服务器2 (健康)]\\n S3[服务器3 (不健康)]\\n S4[服务器4 (健康)]\\n end\\n\\n LB{负载均衡器}\\n\\n C1 --\x3e LB\\n C2 --\x3e LB\\n C3 --\x3e LB\\n\\n LB -- 健康检查 --\x3e S1\\n LB -- 健康检查 --\x3e S2\\n LB -- 健康检查 --\x3e S3\\n LB -- 健康检查 --\x3e S4\\n\\n LB -- 流量分配 --\x3e S1\\n LB -- 流量分配 --\x3e S2\\n LB -- 流量分配 --\x3e S4\\n\\n %% 箭头样式:深灰色,1.5px宽度\\n style S3 fill:#f99\\n
\\nA/B 测试可以帮助你通过比较变更对关键指标的影响来改进 Astro 应用。为了展示如何设置 A/B 测试,我们将创建一个基本的 Astro 应用,添加 PostHog,创建一个 A/B 测试,并实现其代码。
\\n环境准备
\\n集成分析工具
\\n定义实验指标
\\n创建 A/B 测试实验分组
\\n实验逻辑实现
\\n// src/components/posthog.astro\\nloaded: (posthog) => {\\n posthog.onFeatureFlags(() => {\\n const button = document.querySelector(\'.main-button\');\\n const variant = posthog.getFeatureFlag(\'my-cool-experiment\');\\n button.innerText = {\\n control: \'控制变体\',\\n test: \'测试变体\'\\n }[variant] || \'默认文案\';\\n });\\n}\\n
\\n实现步骤:
\\n// src/posthog-node.js\\nexport default function PostHogNode() {\\n if (!posthogClient) {\\n posthogClient = new PostHog(\'<ph_key>\', {\\n host: \'https://us.i.posthog.com\',\\n fetch: (url, options) => fetch(url, { ...options, next: { revalipubDate: 60 } })\\n });\\n }\\n return posthogClient;\\n}\\n\\n// pages/index.astro\\nconst distinctId = ctx.cookies.get(\'distinct_id\') || crypto.randomUUID();\\nconst variant = await PostHogNode().getFeatureFlag(\'my-cool-experiment\', distinctId);\\n
\\n核心配置:
\\n维度 | \\n客户端渲染 | \\n服务端渲染 | \\n
---|---|---|
首屏加载 | \\n存在 UI 闪烁 | \\n无内容抖动 | \\n
数据时效性 | \\n实时更新标志状态 | \\n需要配置缓存刷新策略 | \\n
实现复杂度 | \\n仅需前端逻辑 | \\n需要 Node 环境支持 | \\n
SEO 友好性 | \\n客户端状态不影响爬虫 | \\n服务端直出完整内容 | \\n
用户 ID 管理 | \\n依赖浏览器指纹 | \\n可定制 ID 生成策略 | \\n
最佳实践建议:
\\ngetFeatureFlag
+onFeatureFlags
实现混合渲染首先,确保已安装 Node.js(版本 18.0 或更新)。然后,创建一个新的 Astro 应用:
\\n终端
\\nnpm create astro@latest\\n
\\n在命令行中提示时,命名你的新项目目录(我们选择 astro-ab-test
),选择 Empty
作为新项目,选择 No
使用 TypeScript,安装依赖项,并选择 No
创建 git 仓库。
接下来,将 src/pages/index.astro
中的代码替换为一个简单的标题和按钮:
index.astro
\\n---\\n\\n\\n---\\n<html lang=\\"en\\">\\n <head>\\n <meta charset=\\"utf-8\\" />\\n <link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/favicon.svg\\" />\\n <meta name=\\"viewport\\" content=\\"width=device-width\\" />\\n <meta name=\\"generator\\" content={Astro.generator} />\\n <title>Astro</title>\\n </head>\\n <body>\\n <h1>Astro A/B 测试</h1>\\n <button class=\\"main-button\\">点击我!</button>\\n </body>\\n</html>\\n
\\n运行 npm run dev
并导航到 http://localhost:4321 查看你的应用。
应用设置完成后,是时候安装并设置 PostHog 了。如果你没有 PostHog 实例,可以 免费注册。
\\n完成后,回到你的 Astro 项目,在 src
文件夹中创建一个新的 components
文件夹。在这个文件夹中,创建一个 posthog.astro
文件
终端
\\ncd ./src\\nmkdir components\\ncd ./components\\ntouch posthog.astro\\n
\\n在这个文件中,添加你的 Web 片段
,你可以在 项目设置 中找到。
posthog.astro
\\n---\\n\\n\\n---\\n<script>\\n !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(\\".\\");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement(\\"script\\")).type=\\"text/javascript\\",p.crossOrigin=\\"anonymous\\",p.async=!0,p.src=s.api_host+\\"/static/array.js\\",(r=t.getElementsByTagName(\\"script\\")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a=\\"posthog\\",u.people=u.people||[],u.toString=function(t){var e=\\"posthog\\";return\\"posthog\\"!==a&&(e+=\\".\\"+a),t||(e+=\\" (stub)\\"),e},u.people.toString=function(){return u.toString(1)+\\".people (stub)\\"},o=\\"capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys getNextSurveyStep onSessionId\\".split(\\" \\"),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);\\n posthog.init(\\n \'<ph_project_api_key>\',\\n {\\n api_host:\'https://us.i.posthog.com\',\\n }\\n )\\n</script>\\n
\\n下一步是创建一个 布局,我们将在其中使用 posthog.astro
。在 src
中创建一个新的 layouts
文件夹,然后创建一个新文件 Layout.astro
:
终端
\\ncd .. && cd .. # 如果你仍在 src/components/posthog.astro,则返回基础目录\\ncd ./src\\nmkdir layouts\\ncd ./layouts\\ntouch Layout.astro\\n
\\n将以下代码添加到 Layout.astro
:
Layout.astro
\\n---\\nimport PostHog from \'../components/posthog.astro\'\\n---\\n<head>\\n <PostHog />\\n</head>\\n
\\n最后,更新 index.astro
以使用新的布局:
index.astro
\\n---\\nimport Layout from \'../layouts/Layout.astro\';\\n---\\n<Layout>\\n <html lang=\\"en\\">\\n <head>\\n <meta charset=\\"utf-8\\" />\\n <link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/favicon.svg\\" />\\n <meta name=\\"viewport\\" content=\\"width=device-width\\" />\\n <meta name=\\"generator\\" content={Astro.generator} />\\n <title>Astro</title>\\n </head>\\n <body>\\n <h1>Astro A/B 测试</h1>\\n <button class=\\"main-button\\">点击我!</button>\\n </body>\\n </html>\\n</Layout>\\n
\\n完成后,重新加载你的应用并点击按钮几次。你应该会在 PostHog 事件探索器 中看到事件。
\\n在 PostHog 中设置 A/B 测试的第一步是设置目标指标。我们将使用按钮的点击次数作为目标。
\\n为了测量这一点,我们在按钮被点击时 捕获自定义事件 home_button_clicked
。为此,更新 posthog.astro
中的代码,添加一个 <script>
并在按钮被点击时调用 posthog.capture()
。
index.astro
\\n---\\nimport Layout from \'../layouts/Layout.astro\';\\n---\\n<Layout>\\n <html lang=\\"en\\">\\n <head>\\n <meta charset=\\"utf-8\\" />\\n <link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/favicon.svg\\" />\\n <meta name=\\"viewport\\" content=\\"width=device-width\\" />\\n <meta name=\\"generator\\" content={Astro.generator} />\\n <title>Astro</title>\\n </head>\\n <body>\\n <h1>Astro A/B 测试</h1>\\n <button class=\\"main-button\\">点击我!</button>\\n\\n\\n <script>\\n const button = document.querySelector(\'.main-button\');\\n button.addEventListener(\'click\', () => {\\n window.posthog.capture(\'home_button_clicked\')\\n });\\n </script> \\n </body>\\n </html>\\n</Layout>\\n
\\n设置完成后,刷新你的应用并点击按钮几次,以在 PostHog 中看到捕获的事件。
\\n接下来,转到 A/B 测试选项卡 并通过点击 新建实验 按钮创建一个 A/B 测试。为你的实验添加以下详细信息:
\\nmy-cool-experiment
。创建完成后,将主要指标设置为 home_button_clicked
的趋势,然后点击 启动。
在实现我们的实验代码时,有两个选项:
\\n我们将展示如何实现这两种方式。
\\n为了实现 A/B 测试,我们使用 posthog.onFeatureFlags
回调来根据用户是否在实验的 control
或 test
变体中更新按钮文本。
更新 /components/posthog.astro
中的代码,在 PostHog 的 loaded
回调中实现 posthog.onFeatureFlags
代码:
posthog.astro
\\n---\\n\\n\\n---\\n<script>\\n !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(\\".\\");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement(\\"script\\")).type=\\"text/javascript\\",p.crossOrigin=\\"anonymous\\",p.async=!0,p.src=s.api_host+\\"/static/array.js\\",(r=t.getElementsByTagName(\\"script\\")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a=\\"posthog\\",u.people=u.people||[],u.toString=function(t){var e=\\"posthog\\";return\\"posthog\\"!==a&&(e+=\\".\\"+a),t||(e+=\\" (stub)\\"),e},u.people.toString=function(){return u.toString(1)+\\".people (stub)\\"},o=\\"capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys getNextSurveyStep onSessionId\\".split(\\" \\"),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);\\n posthog.init(\\n \'<ph_project_api_key>\',\\n {\\n api_host:\'https://us.i.posthog.com\',\\n loaded: (posthog) => {\\n posthog.onFeatureFlags(() => {\\n const button = document.querySelector(\'.main-button\');\\n if (posthog.getFeatureFlag(\'my-cool-experiment\') === \'control\') {\\n button.innerText = \'控制变体\';\\n } else if (posthog.getFeatureFlag(\'my-cool-experiment\') === \'test\') {\\n button.innerText = \'测试变体\';\\n }\\n });\\n }\\n }\\n )\\n</script>\\n
\\n现在如果你刷新你的应用,你应该会看到按钮文本更新为 控制变体
或 测试变体
。用户会自动分配到两者之一,PostHog 继续跟踪按钮点击,你可以在 PostHog 中查看 A/B 测试的结果。
注意,当你刷新页面时,按钮文本会在 点击我!
和 控制/测试变体
之间闪烁。这是因为 PostHog 加载并发出功能标志请求需要时间。
服务器端渲染是一种避免这种情况的方法。这种方式在客户端页面加载之前获取功能标志。
\\n要设置这个,我们必须安装并使用 PostHog 的 Node 库(因为我们正在发出服务器端请求)。
\\n终端
\\nnpm install posthog-node\\n
\\n在 src
文件夹中,创建一个 posthog-node.js
文件。这是我们设置代码以创建 PostHog Node 客户端的地方。你可以在 项目设置 中找到你的 API 密钥和实例地址。
src/posthog-node.js
\\nimport { PostHog } from \'posthog-node\';\\n\\n\\nlet posthogClient = null;\\n\\n\\nexport default function PostHogNode() {\\n if (!posthogClient) {\\n posthogClient = new PostHog(\'<ph_project_api_key>\', {\\n host: \'https://us.i.posthog.com\',\\n });\\n }\\n return posthogClient;\\n}\\n
\\n接下来,我们将 posthog-node.js
导入 pages/index.astro
。然后我们使用它来获取功能标志并更新按钮文本:
index.astro
\\n---\\nimport Layout from \'../layouts/Layout.astro\';\\nimport PostHogNode from \'../posthog-node.js\';\\n\\n\\nlet buttonText = \'无变体\'\\ntry {\\n const distinctId = \'placeholder-user-id\'\\n const enabledVariant = await PostHogNode().getFeatureFlag(\'my-cool-experiment\', distinctId);\\n if (enabledVariant === \'control\') {\\n buttonText = \'控制变体\';\\n } else if (enabledVariant === \'test\') {\\n buttonText = \'测试变体\';\\n }\\n} catch (error) {\\n buttonText = \'错误\';\\n}\\n---\\n<Layout>\\n <html lang=\\"en\\">\\n <head>\\n <meta charset=\\"utf-8\\" />\\n <link rel=\\"icon\\" type=\\"image/svg+xml\\" href=\\"/favicon.svg\\" />\\n <meta name=\\"viewport\\" content=\\"width=device-width\\" />\\n <meta name=\\"generator\\" content={Astro.generator} />\\n <title>Astro</title>\\n </head>\\n <body>\\n <h1>Astro A/B 测试</h1>\\n <button class=\\"main-button\\">{buttonText}</button>\\n\\n\\n <script>\\n const button = document.querySelector(\'.main-button\');\\n button.addEventListener(\'click\', () => {\\n window.posthog.capture(\'home_button_clicked\')\\n });\\n </script> \\n </body>\\n </html>\\n</Layout>\\n
\\n最后,你可以移除我们在 posthog.astro
中添加的用于客户端渲染功能标志的代码:
posthog.astro
\\n---\\n\\n\\n---\\n<script>\\n !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(\\".\\");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement(\\"script\\")).type=\\"text/javascript\\",p.crossOrigin=\\"anonymous\\",p.async=!0,p.src=s.api_host+\\"/static/array.js\\",(r=t.getElementsByTagName(\\"script\\")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a=\\"posthog\\",u.people=u.people||[],u.toString=function(t){var e=\\"posthog\\";return\\"posthog\\"!==a&&(e+=\\".\\"+a),t||(e+=\\" (stub)\\"),e},u.people.toString=function(){return u.toString(1)+\\".people (stub)\\"},o=\\"capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys getNextSurveyStep onSessionId\\".split(\\" \\"),n
,A/B 测试可以帮助你通过比较变更对关键指标的影响来改进 Astro 应用。为了展示如何设置 A/B 测试,我们将创建一个基本的 Astro 应用,添加 PostHog,创建一个 A/B 测试,并实现其代码。 整体实现思路\\n\\n环境准备\\n\\n安装 Node.js(v18+)并初始化 Astro 项目\\n创建基础页面结构(标题 + 按钮交互)\\n\\n集成分析工具\\n\\n通过 PostHog Web 片段注入 SDK\\n创建布局组件统一管理监测代码\\n验证事件采集功能\\n\\n定义实验指标\\n\\n捕获按钮点击自定义事件\\n配置事件属性关联用户行为\\n\\n创建 A/B…,如何在 Astro 中设置 A/B 测试(译),2025-06-24T21:56:33.439Z,2025-03-27T00:00:00.051Z,[{\\"url\\":\\"https://res.cloudinary.com/dmukukwp6/image/upload/v1710055416/posthog.com/contents/images/tutorials/astro-ab-tests/basic-app.png\\",\\"type\\":\\"photo\\",\\"width\\":662,\\"height\\":414,\\"blurhash\\":\\"L9Rp8:-=My~q.Ao$s=jF?d4:Rks:\\"},{\\"url\\":\\"https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/images/tutorials/astro-ab-tests/events-light.png\\",\\"type\\":\\"photo\\",\\"width\\":2184,\\"height\\":820,\\"blurhash\\":\\"L6RC[3~qNY~p~oM{WCV[4-V@M{NG\\"},{\\"url\\":\\"https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/images/tutorials/astro-ab-tests/events-dark.png\\",\\"type\\":\\"photo\\",\\"width\\":2186,\\"height\\":822,\\"blurhash\\":\\"L15#bI-rE0X14-X4%3?IIpt6xuR.\\"},{\\"url\\":\\"https://res.cloudinary.com/dmukukwp6/image/upload/Clean_Shot_2025_01_16_at_09_53_57_2x_2b998be1a8.png\\",\\"type\\":\\"photo\\",\\"width\\":1994,\\"height\\":1520,\\"blurhash\\":\\"L9RW0XRhIT~q_3WBayt7IUofxuoe\\"},{\\"url\\":\\"https://res.cloudinary.com/dmukukwp6/image/upload/Clean_Shot_2025_01_16_at_09_53_32_2x_0b8f1da910.png\\",\\"type\\":\\"photo\\",\\"width\\":1980,\\"height\\":1526,\\"blurhash\\":\\"L04U~V~qofRk%MkCM{Rit7jbRjV[\\"}],42331815237783574,160455534494817291,20 万行代码:我们如何构建和维护大规模 AI 原型系统,在三个月的时间里,我们从零开始搭建了一个包含 20 万行代码的 AI 原型系统。这是一个非常庞大的项目,就像建造一座大楼一样,需要科学的规划和管理。为了让这个系统易于维护和扩展,我们采用了一种叫做 monorepo(单一代码仓库)的项目管理方式,并特别注重可复用工具包的设计。这篇文档将用通俗易懂的语言,为大家介绍这个项目是如何组织和管理的。
\\nmonorepo 就像是一个巨大的收纳箱,我们把项目中所有的代码都整整齐齐地放在这个箱子里。想象一下你有很多玩具,如果把它们随意放在房间的各个角落,找起来会很麻烦。但如果你有一个大收纳箱,给每个玩具都安排一个固定的位置,那么无论是找玩具还是收拾玩具都会变得很容易。
\\nmonorepo 的好处有:
\\n我们的项目就像一个精心设计的大楼,每一层都有它特定的功能:
\\none-prototype/\\n├── apps/ # 各个独立应用的代码\\n│ ├── base/ # 独立的产品,包含服务部署、云实例等\\n│ ├── course/ # 高校场景相关的独立产品\\n│ ├── docs/ # UI 组件的文档\\n│ ├── idcloud/ # IDC 相关的独立产品\\n│ └── web/ # 独立的测试网页应用\\n├── packages/ # 可以共享的代码包\\n│ ├── eslint-config/ # 代码规范配置\\n│ ├── hooks/ # React 钩子函数\\n│ ├── request/ # 网络请求工具\\n│ ├── track/ # 用户行为跟踪工具\\n│ ├── typescript-config/# TypeScript 配置\\n│ ├── ui/ # 通用界面组件\\n│ └── zod/ # 数据验证工具\\n
\\n在 packages 目录下,我们精心打造了一系列可复用的工具包,它们就像是一个个专业的工具箱,每个工具箱都有其特定的用途。让我们深入了解这些工具包的特点和作用。
\\n就像建筑工地的标准化部件,我们的 UI 组件库提供了一套完整的界面解决方案。它基于 Tailwind CSS 实现灵活的样式定制,采用 TypeScript 确保类型安全,并遵循 Radix UI 的无障碍设计原则。组件的高度可配置性使其能够支持多种场景的复用。
\\n在开发效率方面,UI 组件库通过统一的设计语言和交互模式,为开发者提供了完善的组件文档和使用示例。快速的开发调试和主题预览功能,加上跨产品的复用能力,大大减少了重复开发的工作量。标准化的组件接口设计也让集成变得异常简单。
\\n我们的文档系统基于 Storybook 构建,提供了交互式的组件展示和调试环境。开发者可以实时预览组件的外观和行为,动态修改组件属性,并在多种设备和主题下进行预览。规范的文档编写流程确保了组件用法、API 说明和最佳实践的完整记录。这种高效的开发工作流让组件的独立开发和测试变得轻松自如。
\\n作为项目中的数据质检员,Zod 数据验证工具包严格把控着数据的格式和类型。它不仅能确保数据的正确性和安全性,还提供了强大的类型推导功能。特别是在与 React Hook Form 配合使用时,它能提供类型安全的表单验证,自动推导表单字段类型,在运行时确保数据安全,并提供友好的错误提示。
\\ntrack 工具包就像是一个细心的记录员,它统一封装了多个主流的数据统计服务,包括 Umami、百度统计和 Microsoft Clarity 等。通过标准化的事件跟踪方法和自动的页面访问统计,它为产品提供了全面的数据分析能力。
\\n这个工具包的一大特色是其多平台数据统计集成能力。它不仅支持开源的 Umami 统计,还能无缝对接百度统计服务和 Microsoft Clarity。开发者可以根据具体场景灵活切换不同的统计服务。在使用体验上,完善的 TypeScript 类型支持、自动的错误处理机制和丰富的调试信息,都让数据追踪变得轻松而可靠。
\\n就像建筑工地需要全方位的质量保障体系,我们的代码质量保障工具包通过 ESLint 和 TypeScript 的完美配合,为项目提供了全面的代码质量和类型安全保障。ESLint 负责统一团队代码风格,自动发现并修复代码中的潜在问题,同时实施最佳实践确保代码质量始终保持高水平。它与编辑器的紧密集成让开发者能实时获得代码改进建议。
\\nTypeScript 则通过其强大的类型系统,在编译时就能捕获潜在错误。智能的代码提示和优秀的重构支持大大提升了开发效率,自动生成的类型声明确保了 API 使用的准确性。这两个工具的协同工作创造了一个完整的开发工具链,让团队协作更加顺畅,代码质量更有保障。
\\nrequest 工具包就像是一个专业的快递公司:
\\n这些工具包并不是独立运作的,它们之间相互配合,形成了一个完整的开发生态系统。UI 组件库借助 TypeScript 配置确保类型安全,网络请求工具与数据验证工具密切配合确保数据正确性,而用户行为跟踪则与 React Hooks 结合提供更好的用户体验。这种协同工作方式让整个系统更加稳定可靠。
\\n为了更好地管理这个大型项目,我们使用了两个主要工具:
\\n通过这样科学的项目组织和管理方式,我们成功地在三个月内构建了这个包含 20 万行代码的 AI 原型系统。这种管理方式不仅让开发过程更加高效,也让后期的维护和升级变得更加容易。特别是通过精心设计的工具包体系,我们大大提高了代码的复用率,减少了重复开发的工作量。对于想要了解大型项目管理的朋友来说,这个项目的组织方式提供了一个很好的参考。
,项目简介 在三个月的时间里,我们从零开始搭建了一个包含 20 万行代码的 AI 原型系统。这是一个非常庞大的项目,就像建造一座大楼一样,需要科学的规划和管理。为了让这个系统易于维护和扩展,我们采用了一种叫做 monorepo(单一代码仓库)的项目管理方式,并特别注重可复用工具包的设计。这篇文档将用通俗易懂的语言,为大家介绍这个项目是如何组织和管理的。\\n\\n什么是 monorepo?\\n\\nmonorepo 就像是一个巨大的收纳箱,我们把项目中所有的代码都整整齐齐地放在这个箱子里。想象一下你有很多玩具,如果把它们随意放在房间的各个角落,找起来会很麻烦…,20 万行代码:我们如何构建和维护大规模 AI 原型系统,2025-06-24T21:56:33.438Z,2025-03-26T19:00:00.921Z,[{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/e875d213df5aacb2df17da90ee1736d0fb312058967a678c11bc97082b5dcd53.png\\",\\"type\\":\\"photo\\",\\"width\\":0,\\"height\\":0,\\"blurhash\\":\\"\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/32eb33fddbbbd0cb7fed24315e02361233322e3a008c715db64fc6b218be4372.png\\",\\"type\\":\\"photo\\",\\"width\\":0,\\"height\\":0,\\"blurhash\\":\\"\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/ddd5185a0a8d44b5d8f2c5d6bf55cca5d83f7f55a595b580967f28d66ada1329.png\\",\\"type\\":\\"photo\\",\\"width\\":0,\\"height\\":0,\\"blurhash\\":\\"\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/72dafb522fadeeacf9711e8eb25b420ca9367543ce905ce74c78db39b1c361d3.png\\",\\"type\\":\\"photo\\",\\"width\\":0,\\"height\\":0,\\"blurhash\\":\\"\\"},{\\"url\\":\\"https://vscode-markdown.s3.bitiful.net/10f4da905cfe8a567bcd304fab0dd23e52e5186c8b7caf2ab732c3ec072fe7b0.png\\",\\"type\\":\\"photo\\",\\"width\\":0,\\"height\\":0,\\"blurhash\\":\\"\\"}],42331815237783574,160455534494817292,Ubuntu 系统如何修改网关 - 零基础教程,网关(Gateway)是连接两个不同网络的设备,就像是你家到外部世界的\\"大门\\"。在计算机网络中,默认网关是数据包离开本地网络时必经的路由设备。
\\n为什么有时需要修改默认网关?
\\n假设你遇到了这样的情况:
\\n192.168.0.1
作为默认网关192.168.0.254
作为网关在开始之前,你需要了解:
\\n192.168.0.1
)ens18
、eth0
等)Netplan 是 Ubuntu 管理网络的工具,其配置文件位于 /etc/netplan/
目录下。
ls /etc/netplan/\\n
\\n你可能会看到名为 01-netcfg.yaml
或类似的文件。
使用文本编辑器(如 nano 或 vim)打开配置文件:
\\nsudo nano /etc/netplan/01-netcfg.yaml\\n
\\n将内容修改为:
\\nnetwork:\\n version: 2\\n ethernets:\\n ens18: # 替换为你的网络接口名称\\n dhcp4: false # 禁用 DHCP\\n addresses:\\n - 192.168.0.100/24 # 替换为你想要的 IP 地址和子网掩码\\n routes:\\n - to: default\\n via: 192.168.0.1 # 你想要的网关地址\\n
\\n保存文件后,应用新配置:
\\nsudo netplan apply\\n
\\n如果你想继续使用 DHCP 获取 IP 地址,但只修改网关,可以使用以下配置:
\\nnetwork:\\n version: 2\\n ethernets:\\n ens18: # 替换为你的网络接口名称\\n dhcp4: yes # 启用 DHCP\\n dhcp4-overrides: # 覆盖 DHCP 的默认路由\\n use-routes: no\\n routes:\\n - to: default\\n via: 192.168.0.1 # 你想要的网关地址\\n
\\n应用配置:
\\nsudo netplan apply\\n
\\nip route\\n
\\n理想情况下,你应该只看到一条默认路由:
\\ndefault via 192.168.0.1 dev ens18 proto static onlink\\n
\\nping 192.168.0.1\\n
\\nping 8.8.8.8\\n
\\nping google.com\\n
,什么是网关?为什么需要修改? 网关(Gateway)是连接两个不同网络的设备,就像是你家到外部世界的\\"大门\\"。在计算机网络中,默认网关是数据包离开本地网络时必经的路由设备。\\n\\n为什么有时需要修改默认网关?\\n\\n网络结构变化需要使用新的网关\\n多个网关导致路由冲突(就像本教程要解决的问题)\\n需要访问特定网络资源时\\n网络性能优化\\n问题场景\\n\\n假设你遇到了这样的情况:\\n\\n你希望系统使用 192.168.0.1 作为默认网关\\n但系统通过 DHCP 自动配置了 192.168.0.254 作为网关\\n两个默认网关并存导致网络连接不稳定或路由混乱\\n前期准备\\n\\n在开始之前…,Ubuntu 系统如何修改网关 - 零基础教程,2025-06-24T21:56:33.437Z,2025-03-25T00:00:00.832Z,42331815237783574,160455534494817293,焦虑,生活是否真的如他们所说,继哔哩哔哩发布《我不想做这样的人》后,又有人出来贩卖焦虑了。当然,每个平台的声音都不一样,哔哩哔哩在这个视频下,你能看到的几乎只有唱好的。但在其他平台,你总能看到完全不一样的声音。
\\n一方面,有人嘲笑,说这些学生还在读书,太天真,没遭受过社会毒打。仿佛自己已经有了很多经验,但只是嘲笑,没有结合自己的经验给出任何建议。深有同感的人纷纷赞同,也一并嘲笑。有意见不一样的,就会被集火。而其他不敢说话的也没经历过的,看了这些除了焦虑,啥也得不到。还有没有经历过,却自以为自己很懂生活艰难困苦的,也会表示赞同,仿佛支持他们贩卖焦虑一样。
\\n而我就是什么也不懂就自认为未来黑暗的人,我记得几年前我可不是这样的。即使生活很普通没啥乐趣,但也对未来怀抱希望。至少这一点已经让我的生活足够幸福,当然这仅仅是精神上感到的幸福,你也可以认为这是自欺欺人,不过这切切实实的让人幸福,那个时候,失眠与我无关。但后来整个互联网都在贩卖焦虑,我当然也沦为被焦虑淹没的牺牲品。如今我也成为了贩卖焦虑的帮凶,企图淹没少年少女们的期许与理想主义。不过那会我又觉得我是正义的,我认为只有这样才能叫醒那些沉迷于理想之中的人。但如今冷静下来许久又反复思考,又不知道自己做的对不对了。我深切的感受到生活中是十分需要对未来怀有期许,对生活怀有热情之人的。至少,仍然很多人都喜欢和怀有热情的人相处。我也是。所以对于美好与理想的追求,绝不该放弃。即使最后发现生活确实如此,也不该变得冷漠。
\\n另一方面,有人在大谈决定论。他们说,生活并不是自己能决定的。自己未来做什么,变成什么样,都不是自己能决定的。他们说的十分坚决没有其它缓和的余地,仿佛我们只能躺平,不必做任何无谓的挣扎。
\\n我也经常看到躺平的人,也时时刻刻准备躺平,加入他们。但每每躺下了一半,又立刻觉得不安,感觉自己必须做点什么。即使我在心底也认为什么也改变不了,但我也必须得做点什么。虽然每次挣扎总是失败的,但我现在仍然认为,即使有一点点挣扎的机会,我也不该放弃这么一点点改变点什么的希望。也许这不过是不甘心,说不定什么时候我就放弃这不甘了。但我相信,绝不会只有些许人有所不甘的。虽然离理想的生活相差甚远,但我认为我们对于美好的向往绝不会消失。
\\n现在,我对美好生活想象确实不如之前。关于未来的焦虑将我蚕食,让我变得冷漠。如今我需要唤醒自己,即使生活正如他们所说那样,我也要醒了,然后热爱这生活。
,继哔哩哔哩发布《我不想做这样的人》后,又有人出来贩卖焦虑了。当然,每个平台的声音都不一样,哔哩哔哩在这个视频下,你能看到的几乎只有唱好的。但在其他平台,你总能看到完全不一样的声音。 一方面,有人嘲笑,说这些学生还在读书,太天真,没遭受过社会毒打。仿佛自己已经有了很多经验,但只是嘲笑,没有结合自己的经验给出任何建议。深有同感的人纷纷赞同,也一并嘲笑。有意见不一样的,就会被集火。而其他不敢说话的也没经历过的,看了这些除了焦虑,啥也得不到。还有没有经历过,却自以为自己很懂生活艰难困苦的,也会表示赞同,仿佛支持他们贩卖焦虑一样。\\n\\n而我就是什么也不懂就自认为未来黑…,焦虑,生活是否真的如他们所说,2025-06-24T21:56:33.436Z,2021-05-17T10:21:26.751Z,42331815237783574,160455534494817294,橡皮擦,我有一块橡皮擦,已经用了很久了。与刚买来时不同,他本是棱角分明,没有沾染上丝毫铅笔的墨色。但在长期使用后,已经实在是分不出八个角来——早已变成了几个曲面。有的两个角甚至已经融合在了一起。
\\n<!--more--\x3e
\\n但唯独有一个角,他与众不同,他仍然还是原来那个样子。事实上,我从未用过他。他就和刚买来的时候那样白净,同样的棱角分明却毫不咯手。这是他天生的美丽,如今这美丽居然一直伴随他活到了现在,实在是不可思议。
\\n这让我感到了诧异。这种诧异就像是在学校食堂喝皮蛋瘦肉粥时真的喝到了一大块瘦肉,兴奋地要把这消息告诉同学:“这家粥太棒了,居然有肉!“好让他们下次也来这喝粥。
\\n不知为为什么,我突然想到了一个人。但我实在想不明白为什么一块橡皮擦能让我想到人,这俩分明扯不上什么关系。
\\n这使我莫名地恐惧了起来,我也不知道我在害怕什么。但我的肉体已经变得迟钝了,仿佛被什么抓住要被拽出去。我赶紧丢下这块橡皮擦,跳到床上去,希望睡一觉就能忘掉那些我想不明白的东西。
\\n以前我可是一躺就能睡着的,今天不知怎么回事,发生了这么多奇怪的事情,甚至连觉都睡不着了。我在床上思来想去,无端的恐惧也渐渐变成了愤怒。我想,今天非得把这恐惧给毁灭了这日子才能安稳地过下去。我把愤怒指向了那块橡皮擦,今天的一切都是这块橡皮擦引起的。实话说,这块橡皮倒是不咯手,但却让我十分不适。
\\n我从床上跳到桌边抓起这块橡皮就要让他受到应有的惩戒。而那个特别的棱角仍然在那里,十分显眼。我瞬间明白了,原来这一切都是因为他。我发疯似地把他按在纸上,他硬撑着身子仿佛在做最后的抵抗,但在我的蛮力之下他只得变成碎屑而不复存在。随着他消逝的,还有我的愤怒与恐惧,好像刚刚灭掉的是一生之敌,等着我的生活将一帆风顺、无限美好。
,我有一块橡皮擦,已经用了很久了。与刚买来时不同,他本是棱角分明,没有沾染上丝毫铅笔的墨色。但在长期使用后,已经实在是分不出八个角来——早已变成了几个曲面。有的两个角甚至已经融合在了一起。 \x3c!--more--\x3e\\n\\n但唯独有一个角,他与众不同,他仍然还是原来那个样子。事实上,我从未用过他。他就和刚买来的时候那样白净,同样的棱角分明却毫不咯手。这是他天生的美丽,如今这美丽居然一直伴随他活到了现在,实在是不可思议。\\n\\n这让我感到了诧异。这种诧异就像是在学校食堂喝皮蛋瘦肉粥时真的喝到了一大块瘦肉,兴奋地要把这消息告诉同学:“这家粥太棒了,居然有肉…,橡皮擦,2025-06-24T21:56:33.435Z,2021-04-28T00:00:00.860Z,42331815237783574,160455534494817295,——《麦田里的守望者》书评
\\n一开始看这本书,我摸不着脑袋,因为我会看了很久很久却不知道他的主题是什么。他也没有目录啥的,就简单的分成了二十六章,每一章标题就是序数词。
\\n<!--more--\x3e
\\n先简单介绍一下本书内容,本文的主人公霍尔顿出身于一个富裕的家庭。大人们强迫他好好读书,为的是出人头地,而在学校里一天到晚干的,就是谈女人,酒和性,他看不惯周围的一切,他讨厌任何人。如果你跟他说诸如“祝你好运”,“你好”之类的客套话,他会觉得你虚伪。根本没心思读书,还老是挨罚,他胆小怯懦,到他第四次被开除时,他不敢回家。便一个人去了纽约,住小客店,逛夜总会,召妓女,与他虚荣的女友搂搂抱抱,与此同时,他又十分沮丧,企图逃出虚伪的世界去追寻纯洁与真理。他想逃离这虚伪的地方,去到别的地方,最后被妹妹所挽留。
\\n最开始能读下去这本书,不过是能从中找到同感。也同样讨厌着周围虚伪的一切,讨厌客套的话,讨厌着被别人认为理所当然正确的事情。每个人在从小孩子到成年的过程中都似乎曾经经历过这一阶段,他们被未知的世界吸引,突然闯到成年人的世界,却又渐渐的开始厌倦这无法被自己理解的世界。
\\n对于刚刚成年,内心却不过还是个孩子的人来说,成年人的世界让他们一时无法接受。文章主人公曾经的老师说:”一个不成熟的人的标志是他愿意为了某个理由而轰轰烈烈地死去,而一个成熟的人的标志是他愿意为了某个理由而谦恭地活下去。“这是作者通过老师这一角色来解释从幼稚到成熟的这一蜕变过程。而对于绝大多未经世事的人来说,这显然是很难接受的。
\\n“我的职务是在那儿守望,要是有哪个孩子往悬崖边奔来,我就把他捉住——我是说孩子们都在狂奔,也不知道自己是在往哪儿跑,我得从什么地方出来,把他们捉住。我整天就干这样的事。我只想当个麦田里的守望者。我知道这有点异想天开,可我真正喜欢干的就是这个”小说写到这里,才真正的表示出了它的主旨,主人公想在麦田里守望着,防止纯洁的内心受到污染。对于任何一个刚刚成年的人来说,都是难以接受突然的蜕变的。《熔炉》也曾经表达过“我们努力奋斗不是为了改变世界,而是不让世界改变我们。”人活着除了物质生活外,还要有精神生活,而且在一个比较富裕的社会里,精神生活往往比物质生活更为重要。
\\n特别对于现在这个经济高速发展的社会中,我们更需要追求精神的真善美,而不是不断追求物质。在社会发展的过程中,我们得固守自己人性中的善良,不被社会所改变。
,——《麦田里的守望者》书评 一开始看这本书,我摸不着脑袋,因为我会看了很久很久却不知道他的主题是什么。他也没有目录啥的,就简单的分成了二十六章,每一章标题就是序数词。\\n\\n\x3c!--more--\x3e\\n\\n先简单介绍一下本书内容,本文的主人公霍尔顿出身于一个富裕的家庭。大人们强迫他好好读书,为的是出人头地,而在学校里一天到晚干的,就是谈女人,酒和性,他看不惯周围的一切,他讨厌任何人。如果你跟他说诸如“祝你好运”,“你好”之类的客套话,他会觉得你虚伪。根本没心思读书,还老是挨罚,他胆小怯懦,到他第四次被开除时,他不敢回家。便一个人去了纽约,住小客店,逛夜总会,召妓女…,2025-06-24T21:56:33.434Z,2020-11-29T00:00:00.512Z,42331815237783574,160455534494817296,PHP 金字塔算法,L1-002 打印沙漏
\\n<!--more--\x3e
\\n本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定 17 个“*”,要求按下列格式打印
\\n*****\\n ***\\n *\\n ***\\n*****\\n
\\n所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差 2;符号数先从大到小顺序递减到 1,再从小到大顺序递增;首尾符号数相等。
\\n给定任意 N 个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
\\n输入在一行给出 1 个正整数 N(≤1000)和一个符号,中间以空格分隔。
\\n首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。
\\n19 *\\n
\\n*****\\n ***\\n *\\n ***\\n*****\\n2\\n
\\n<?php\\n $arr = explode(\' \',rtrim(fgets(STDIN)));\\n $n = 0;\\n for($x=0; $n<$arr[0]; $x++){\\n $t = $x*2-1;\\n if($x > 1){\\n $n = $n + $t*2;\\n }else{\\n $n = $n + $t;\\n }\\n }\\n $n = $n - $t*2 + 1;\\n\\n $x2 = $x - 1;\\n while($x2>0){\\n $x2 = $x2-1;\\n $x3=$x2*2-1;\\n if($x3>0){\\n for($spa=$x-$x2-2; $spa>0 ; $spa--){\\n echo \\" \\";\\n }\\n }\\n\\n while($x3>0){\\n $x3--;\\n echo $arr[1];\\n }\\n if($x2 > 0){\\n echo \\"\\\\n\\";\\n }\\n\\n }\\n $x2 = 1;\\n while($x2<$x-2){\\n $x2 = $x2+1;\\n\\n for($spa=$x-$x2-2; $spa>0 ; $spa--){\\n echo \\" \\";\\n }\\n\\n for($x3=0; $x3<$x2*2-1; $x3++){\\n echo $arr[1];\\n }\\n\\n echo \\"\\\\n\\";\\n }\\n\\n echo $arr[0] - $n;\\n?>\\n
,L1-002 打印沙漏 \x3c!--more--\x3e\\n\\nL1-002 打印沙漏 (20 分)\\n\\n本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定 17 个“*”,要求按下列格式打印\\n\\n*****\\n ***\\n *\\n ***\\n*****\\n\\n\\n所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差 2;符号数先从大到小顺序递减到 1,再从小到大顺序递增;首尾符号数相等。\\n\\n给定任意 N 个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。\\n\\n输入格式:\\n\\n输入在一行给出 1 个正整数 N(≤1000)和一个符号,中间以空格分隔。…,PHP 金字塔算法,2025-06-24T21:56:33.433Z,2020-10-30T00:00:00.226Z,[{\\"url\\":\\"https://image.gslb.dawnlab.me/e19fb8eab400e17476c57f0846b5660a.png\\",\\"type\\":\\"photo\\"}],42331815237783574,160455534494817297,简单美化了下沙拉查词,沙拉单词样式、沙拉单词主题、沙拉单词皮肤
\\n<!--more--\x3e
\\nGithub: https://github.com/nexmoe/saladict-skin
\\n沙拉查词->查词面板->自定义查词面板样式
\\n.menuBar {\\n background-color: #fff;\\n border-bottom: 1px solid #eee;\\n padding: 8px;\\n}\\n.menuBar-Btn_Icon,.menuBar-Btn_Icon-fav {\\n fill: #222;\\n}\\n.mtaBox-TextArea-Wrap,\\n.mtaBox-DrawerBtn,\\n.waveformBox.saladict-external,\\n.dictItemHead-Logo,\\n.menuBar-SearchBox_Wrap,\\n.menuBar-Btn[title=\\"查单词\\"] {\\n display: none;\\n}\\n.dictItem {\\n padding: 0 10px;\\n}\\n.dictItem:first-child {\\n padding-top: 10px;\\n}\\n.dictItem-Body {\\n padding: 0 3px;\\n}\\n.dictItemHead {\\n background: #eee;\\n border-radius: 6px;\\n padding: 6px;\\n height: auto;\\n}\\n.dictPanel-Root {\\n box-shadow: rgba(0,0,0,0.2) 0 7px 21px 2px;\\n}\\n
,沙拉单词样式、沙拉单词主题、沙拉单词皮肤 \x3c!--more--\x3e\\n\\nGithub: https://github.com/nexmoe/saladict-skin\\n\\n沙拉查词->查词面板->自定义查词面板样式\\n\\n.menuBar {\\n background-color: #fff;\\n border-bottom: 1px solid #eee;\\n padding: 8px;\\n}\\n.menuBar-Btn_Icon,.menuBar-Btn_Icon-fav {\\n fill: #222;\\n}\\n.mtaBox-TextArea-Wrap,…,简单美化了下沙拉查词,2025-06-24T21:56:33.432Z,2020-10-08T00:00:00.314Z,[{\\"url\\":\\"https://cdn.jsdelivr.net/gh/nexmoe/image@latest/747f7f1a63c083fe3c47bf9722ef330d.png\\",\\"type\\":\\"photo\\",\\"width\\":1920,\\"height\\":942,\\"blurhash\\":\\"LASY~zxv$%~q-;WBWqfkM{NGRjjs\\"}],42331815237783574,160455534494817298,一个关于第三方购物平台的产品设计,疫情期间选口罩想的一个购物产品功能
\\n<!--more--\x3e
\\n计算单个价格方便比价
\\n检验报告,自动获取生产标准的功能主要是为了证明商品的安全性。
\\n哔哩哔哩最近发布了一个广告《后浪》,作为 00 后的我看的时候也感觉挺澎湃的,里面还有几个我喜欢的 UP 主。
\\n<!--more--\x3e
\\n但是看完了,回归理智过后开始思考,思考这些前浪并不是我,他们只是顶尖的那部分。看的时候我很有代入感,因为演讲说的“后浪”指的就是年轻人,于是就轻易的把自己当作视频里面的那一批,但是一回到现实就会明白,所谓的“后浪”根本不是大多数人更不是自己。
\\n引用知乎用户:云舞空城 的一句话
\\n\\n\\n那些站在时代浪尖上的青年,永远只是少数的一群——更多的青年,将青春的能量耗散在无休止的事情上:为学业拼搏,为事业拼搏,为更好的生活拼搏,慢慢的奋斗,消散在中年人的肚腩里,你甚至不会注意到他们的存在。
\\n
其实仔细想想这个视频目的,就能明白为什么这个视频要让年轻人有代入感。
\\n首先这个视频本身就是一个商业广告它的目的就是为 B 站引入更多的 UP 主来投稿。追求自由、追求梦想不过是利用了所有人都渴望的东西。但其实,谁不想追求自由、追求梦想,别说我们这一代,上一代,上上一代,有哪一代人不想追求自由、梦想。
\\n本来我也想写写,这个视频太过于理想,而不适合大多数人。不过看到知乎已经有很多人写了,我就不写了,我就写写我的看法吧。
\\n说实话,看完视频,再看知乎,会感到理想与现实巨大的落差感。感觉一下就被拽回现实,看完知乎,首先就是焦虑。
\\n与视频里面的年轻人相比,自己不过是个小地方的年轻人,人生没什么多余的选择,只有读书一条路可以走,并且成绩也没有那么好。虽然我知道我想做什么,但我不知道未来能做什么。他们可以出国、跳伞、全世界到处跑,这是我完全没法想象的。想一想自己在全中国也就去过 3 个省,坐过最高级的交通工具也不过是旅游的时候坐的地铁。
\\n我觉得我可以代表年轻人的大多数,是有梦想却迷茫、成绩一般般、家庭一般般、见识也不够多的。
\\n对于生活,首先我觉得是完全没有必要焦虑的,视频里光鲜亮丽的人物只是少数而已,大多数都是和我们一样的年轻人,所以我觉得完全没必要焦虑。
\\n或许你会觉得我不思进取,但是我觉得只要知道焦虑是没有任何用的,就明白这样想其实也没什么错。
\\n年轻人应该还是要不失活力的,虽然我不如那些人拥有资源、拥有能力。但我还有我所在意的东西、我所热爱的东西,其实这就足够了。
\\n联系上文,部分焦虑来自于“我知道我想做什么,但我不知道未来能做什么。”对于这种情况,我觉得最好的解决方法就是把自己热爱的事情培养成能吃饭的工具。
\\n喜欢绘画就让自己的绘画能力能吃到饭,可以去做平面设计、可以去做插画师。热爱运动,就努力考上军校。
\\n如果自己热爱的事情不能用来吃饭,那就把自己空余的时间用来培养爱好。
\\n我觉得相比衣食无忧、有房有车,不如一辈子都能做自己热爱的事情。
\\n人生有何意义,其实只要明白我确实存在,且有我所关心的人或事情、这就足够了,人只要能做自己热爱的事情,这就足够了
\\n互联网让信息流通更加容易,我们更容易看到别人的幸福。这给我们一种错觉,认为别人的生活都是这么美好的。但现实是我们的国家还只是发展中国家,并不能达到每个人都是富裕的。
\\n我们没必要焦虑,也千万别去焦虑。我们只需要更清楚的认识现实,然后仍然继续努力下去,至少在为自己热爱的事情而奋斗的时刻是幸福的。
\\n本文只是一个年轻人的思考与想法,思维还不够成熟,还有很多欠缺的地方
,哔哩哔哩最近发布了一个广告《后浪》,作为 00 后的我看的时候也感觉挺澎湃的,里面还有几个我喜欢的 UP 主。 \x3c!--more--\x3e\\n\\n但是看完了,回归理智过后开始思考,思考这些前浪并不是我,他们只是顶尖的那部分。看的时候我很有代入感,因为演讲说的“后浪”指的就是年轻人,于是就轻易的把自己当作视频里面的那一批,但是一回到现实就会明白,所谓的“后浪”根本不是大多数人更不是自己。\\n\\n引用知乎用户:云舞空城 的一句话\\n\\n那些站在时代浪尖上的青年,永远只是少数的一群——更多的青年,将青春的能量耗散在无休止的事情上:为学业拼搏,为事业拼搏,为更好的生活拼搏…,关于《后浪》的看法,2025-06-24T21:56:33.430Z,2020-05-05T00:00:00.211Z,42331815237783574,160455534494817300,博客,我优化了什么?,由于博客性能一直很弱鸡,所以花了两天时间优化了一下,以下,是我的优化成果。
\\n<!--more--\x3e
\\n❌ 移除 fancybox\\n❌ 移除 SmoothScroll\\n❌ 移除 jQuery\\n❌ 移除 Pjax\\n已经 2020 年,我觉得 jQuery 是不需要的。\\nEdge 的正式发布自带良好的平滑滚动效果,加上 SmoothScroll 在 MacOS 上会有卡顿感,所以移除。\\n移除 fancybox 是因为平常真的不怎么用,还是直接鼠标右键打开原图看舒服。
\\n在此之前,我的博客首页一直有一个问题,图片加载抖动,所以我直接让文章每一个图片输入图片的长度和高度来计算图片占位大小来防止抖动。\\n不过确实麻烦了点。\\n此前的 Front-matter
\\n---\\ntitle: 博客,我优化了什么?\\ncover: https://nexmoe.com/images/cover/compress/motorcycle-1690452_1920.jpg\\n---\\n
\\n现在的 Front-matter
\\n---\\ntitle: 博客,我优化了什么?\\ncover: https://nexmoe.com/images/cover/compress/motorcycle-1690452_1920.jpg\\ncoverWidth: 1920\\ncoverHeight: 1206\\n---\\n
\\n并且对 Lazyload 加了一个非线性动画,给人一种更快乐的感觉。
\\n这个操作就很方便了,因为 jsdelivr 自带了合并功能,可以自由的合并多个库\\n比如 https://cdn.jsdelivr.net/combine/npm/highlight.js@9.15.8/styles/atom-one-dark.css,gh/nexmoe/nexmoe.github.io@latest/css/style.css,gh/nexmoe/nexmoe.github.io@latest/lib/mdui_043tiny/css/mdui.css,gh/nexmoe/nexmoe.github.io@latest/lib/iconfont/iconfont.css\\n所以我把博客所有的 css 和 js 文件分别合并成了一个,因此浏览器请求量减小,所以速度也有些许提升。
\\n我的首页图就是看个爽,为什么要原图且无损?\\n所以我统一将图片全部压成 920px 的宽度了,大量减小图片大小。速度暴涨。
\\n由于主题依赖了 mdui,而 mdui 会加载字体,所以我把它本地化,然后删掉了颜色类,辅助类,以及字体类。\\n速度也有些许提升。
\\n以前启用 lazyload 和一些功能,我是用 js 写的,所以在网页渲染的时候需要重新渲染,所以需要占用一定的性能。\\n所以我就将一部分使用 nodejs 重写,Hexo 会在编译的时候完成工作,因此在浏览器访问时就不需要渲染了。
,由于博客性能一直很弱鸡,所以花了两天时间优化了一下,以下,是我的优化成果。 \x3c!--more--\x3e\\n\\n先上跑分\\n\\n去掉一些依赖\\n\\n❌ 移除 fancybox ❌ 移除 SmoothScroll ❌ 移除 jQuery ❌ 移除 Pjax 已经 2020 年,我觉得 jQuery 是不需要的。 Edge 的正式发布自带良好的平滑滚动效果,加上 SmoothScroll 在 MacOS 上会有卡顿感,所以移除。 移除 fancybox 是因为平常真的不怎么用,还是直接鼠标右键打开原图看舒服。\\n\\nLazyload 优化\\n\\n在此之前,我的博客首页一直有一个问题…,博客,我优化了什么?,2025-06-24T21:56:33.429Z,2020-02-09T16:10:00.263Z,[{\\"url\\":\\"https://image.gslb.dawnlab.me/af94d4afe7524d6522600fae70430e67.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://image.gslb.dawnlab.me/f5c19b5607a3f5de94a15b007628e72f.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://image.gslb.dawnlab.me/4be54fe2007099d4c791c8a13489af77.png\\",\\"type\\":\\"photo\\"}],42331815237783574,160455534494817301,Typecho 主题 Nexmoe,一个比较特别的 Typecho 主题\\n<!--more--\x3e
\\n网易云音乐 ID:5027380
\\nhttps://github.com/nexmoe/typecho-theme-nexmoe\\n欢迎 Star,贡献,如遇到问题请留言
\\n\\n
\\n
\\n
\\n
使用 watch Releases only 以获取新版本更新提示
\\nApache License 2.0
\\n就读高中,\\nstar 以及 issue 是我更新的动力\\n欢迎加群 482634342 划水
\\n目前中文翻译较全,其他语言翻译不完全,有余力的大佬可以来贡献一下\\n语言文件在 languages 里,参考 zh-CN.yml
进行翻译即可
||\\n- | - | -\\n||\\n
\\n原理就是在 markdown 的表格里面插入图片
\\n![]() | \\n![]() | \\n![]() | \\n
---|---|---|
![]() | \\n![]() | \\n![]() | \\n
自动开启功能,为文章中每一个图片提供灯箱功能
\\n在 Front-matter 中为 cover 赋值即可,如
\\n---\\ntitle: Hello World\\npubDate: 2013/7/13 20:46:25\\ncover: https://i.loli.net/2019/07/21/5d33d5dc1531213134.png\\n---\\n
,一个比较特别的 Typecho 主题 \x3c!--more--\x3e 网易云音乐 ID:5027380\\n\\nGithub\\n\\nhttps://github.com/nexmoe/typecho-theme-nexmoe 欢迎 Star,贡献,如遇到问题请留言\\n\\n获取更新\\n\\n使用 watch Releases only 以获取新版本更新提示\\n\\n开源协议\\n\\nApache License 2.0\\n\\n后续更新\\n\\n就读高中, star 以及 issue 是我更新的动力 欢迎加群 482634342 划水\\n\\n特性\\nGithub\\n获取更新\\n开源协议\\n后续更新\\n特性\\n国际化\\n相片集\\n图…,Typecho 主题 Nexmoe,2025-06-24T21:56:33.428Z,2019-08-25T14:31:32.593Z,[{\\"url\\":\\"https://img.shields.io/github/stars/nexmoe/typecho-theme-nexmoe.svg\\",\\"type\\":\\"photo\\",\\"width\\":88,\\"height\\":20,\\"blurhash\\":\\"LnNAr3~qIUD%xut7WBWBRj%MfQj[\\"},{\\"url\\":\\"https://img.shields.io/github/forks/nexmoe/typecho-theme-nexmoe.svg\\",\\"type\\":\\"photo\\",\\"width\\":84,\\"height\\":20,\\"blurhash\\":\\"LaNKFy00D%?bt7j[j[ofWBD%of-;\\"},{\\"url\\":\\"https://img.shields.io/github/issues/nexmoe/typecho-theme-nexmoe.svg\\",\\"type\\":\\"photo\\",\\"width\\":90,\\"height\\":20,\\"blurhash\\":\\"LHC?r]ofj[t7j[j[j[ay00j[ayWB\\"},{\\"url\\":\\"https://img.shields.io/github/last-commit/nexmoe/typecho-theme-nexmoe.svg?label=commits\\",\\"type\\":\\"photo\\",\\"width\\":154,\\"height\\":20,\\"blurhash\\":\\"LGOJkZz;a0-A}sjubHofQStlbvaf\\"},{\\"url\\":\\"https://img.shields.io/github/license/nexmoe/typecho-theme-nexmoe.svg\\",\\"type\\":\\"photo\\",\\"width\\":120,\\"height\\":20,\\"blurhash\\":\\"LHC%8JfQayt7ofofj[ay00ofj[ay\\"},{\\"url\\":\\"/images/pasted-5.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"https://i.loli.net/2018/09/01/5b8a59551a4d8.jpg\\",\\"type\\":\\"photo\\",\\"width\\":1412,\\"height\\":794,\\"blurhash\\":\\"LP5$G$WZVUaIjBW9o%kER4ado}kB\\"},{\\"url\\":\\"https://i.loli.net/2018/09/01/5b8a6ab761262.jpg\\",\\"type\\":\\"photo\\",\\"width\\":1412,\\"height\\":794,\\"blurhash\\":\\"L77^A39b5+of5T$z$QW;0fg3-Tw^\\"},{\\"url\\":\\"https://i.loli.net/2018/09/01/5b8a5994b6e28.jpg\\",\\"type\\":\\"photo\\",\\"width\\":1412,\\"height\\":794,\\"blurhash\\":\\"LTD,J@-=WCt7_N%gfkj]x^%MoMaz\\"},{\\"url\\":\\"https://i.loli.net/2018/09/01/5b8a5994b6e28.jpg\\",\\"type\\":\\"photo\\",\\"width\\":1412,\\"height\\":794,\\"blurhash\\":\\"LTD,J@-=WCt7_N%gfkj]x^%MoMaz\\"},{\\"url\\":\\"https://i.loli.net/2018/09/01/5b8a5c8c34439.jpg\\",\\"type\\":\\"photo\\",\\"width\\":1412,\\"height\\":794,\\"blurhash\\":\\"LTFQ2zDgR3Wr9#Z~WBj]H;RPR.tS\\"},{\\"url\\":\\"https://i.loli.net/2018/09/01/5b8a59d5c50f3.jpg\\",\\"type\\":\\"photo\\",\\"width\\":1412,\\"height\\":794,\\"blurhash\\":\\"LgHCM_RPWBt7_NayWBaft7oyofay\\"},{\\"url\\":\\"/images/pasted-4.png\\",\\"type\\":\\"photo\\"}],42331815237783574,160455534494817302,美化你的终端,自带的 PowerShell 虽然有了自定义颜色等功能,但还是太丑,这一篇文章将帮你打造 Windows10 上最美终端。
\\n<!--more--\x3e
\\nFluent Terminal 是一个基于 UWP 和 Web 技术的终端,相比较 Terminus,占用资源更少,而且有中文翻译,并且设置页还有 GUI。
\\n在以下链接下载最新版\\nhttps://github.com/felixse/FluentTerminal/releases
\\n解压到任意位置,打开目录,右键 Install.ps1
使用 PowerShell 运行,选择 Sideloading(旁加载应用)安装
安装完成
\\nhttps://eugeny.github.io/terminus/
\\nposh-git:此模块用于将 git 集成于 PowerShell 中\\noh-my-posh:本次美化主角,带色的箭头标签
\\nSet-ExecutionPolicy Bypass\\nInstall-Module posh-git -Scope CurrentUser\\nInstall-Module oh-my-posh -Scope CurrentUser\\n
\\n启用 oh-my-posh 与 posh-git
\\nImport-Module posh-git\\nImport-Module oh-my-posh\\n
\\n设置主题
\\nSet-Theme Agnoster\\n
\\n可选列表
\\n输入获取配置项目录
\\n$profile\\n
\\n打开控制台输出目录中的文件,输入配置项并保存
\\nImport-Module oh-my-posh\\nSet-Theme Agnoster\\n
\\n打开 Fluent Terminal 查看效果
\\n7 月 18 日发生京都动画纵火案,当时听到消息,我心里先是想着“绝对是假的”,不过已经实锤了,只能面对现实了。\\n事情已经发生了,我也做不了什么,发个博文记录一下吧。
\\n<!--more--\x3e
\\n\\n\\n京都动画纵火案(日语:京都アニメーション放火事件)是 2019 年 7 月 18 日在日本京都府京都市伏见区桃山町京都动画第一工作室发生的纵火杀人事件。41 岁(1978 年 5 月 16 日出生)的青叶真司于工作室内倾倒汽油,随即引发爆炸与大火。火灾导致京都动画第一工作室楼高三层的建筑物完全烧毁,当前造成 34 死、35 伤(包括行凶者)。
\\n
网易云音乐 ID:534064298
\\n<style>\\nhtml {\\n-webkit-filter: grayscale(100%);\\n-moz-filter: grayscale(100%);\\n-ms-filter: grayscale(100%);\\n-o-filter: grayscale(100%);\\nfilter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
\\n_filter:none;\\n}\\n</style>
https://zh.wikipedia.org/wiki/%E4%BA%AC%E9%83%BD%E5%8B%95%E7%95%AB%E7%B8%B1%E7%81%AB%E6%A1%88
\\n很早就看了,短发控的我甚是喜欢,还有 Daisy 这首神之片尾曲
\\n网易云音乐 ID:28018269
\\n画风简直太好了,给了还在上学的我一点点温暖
\\n网易云音乐 ID:547973265
,7 月 18 日发生京都动画纵火案,当时听到消息,我心里先是想着“绝对是假的”,不过已经实锤了,只能面对现实了。 事情已经发生了,我也做不了什么,发个博文记录一下吧。 \x3c!--more--\x3e\\n\\n京都动画纵火案(日语:京都アニメーション放火事件)是 2019 年 7 月 18 日在日本京都府京都市伏见区桃山町京都动画第一工作室发生的纵火杀人事件。41 岁(1978 年 5 月 16 日出生)的青叶真司于工作室内倾倒汽油,随即引发爆炸与大火。火灾导致京都动画第一工作室楼高三层的建筑物完全烧毁,当前造成 34 死、35 伤(包括行凶者)。\\n\\n网易云音乐 ID…,Pray For KyoAni,2025-06-24T21:56:33.426Z,2019-07-21T10:34:00.094Z,42331815237783574,160455534494817304,PHP & Vue.js 表白墙,一个基于 Vue.js 的匿名表白墙轻量级小程序
\\n<!--more--\x3e
\\nApache License 2.0\\nhttps://github.com/nexmoe/wall-public/blob/master/LICENSE
\\n一个基于 Vue.js 的匿名表白墙轻量级小程序
\\n折影轻梦(Nexmoe),根据 Apache 许可证发布。
\\n域名/install.php
填写表单安装即可service-wroker 已配置好了,只需要修改 /static/manifest.json
里面的内容即可
就读高中,\\nstar 以及 issue 是我更新的动力\\n欢迎加群 482634342 划水
\\n用户交流群:797996017
,一个基于 Vue.js 的匿名表白墙轻量级小程序 \x3c!--more--\x3e\\n\\n开源协议\\n\\nApache License 2.0 https://github.com/nexmoe/wall-public/blob/master/LICENSE\\n\\n介绍\\n\\n一个基于 Vue.js 的匿名表白墙轻量级小程序\\n\\n作者\\n\\n折影轻梦(Nexmoe),根据 Apache 许可证发布。\\n\\nDemo\\nhttps://wall.chainwon.com/\\n欢迎大家在 issue 或者 pull request 中添加你部署好的网站链接\\n屏幕截图\\n\\n环境准备\\n支持 PHP 的服务器…,PHP & Vue.js 表白墙,2025-06-24T21:56:33.425Z,2019-04-14T13:38:00.417Z,[{\\"url\\":\\"../../../assets/posts/PHP-Vue-js-%E8%A1%A8%E7%99%BD%E5%A2%99/screenshots.png\\",\\"type\\":\\"photo\\"}],42331815237783574,160455534494817305,2018 年也还是走到了头,终于,还是活到了 2019,2018 年也还是走到了头,2017 年的时候想着要做许许多多有意思的事情,那个时候我还是那么乐观,还是充满着憧憬。\\n<!--more--\x3e
\\n不过现在已经活成这样又有什么办法呢,人生总是充满遗憾,不知道还能不能像从前那样鼓起信心去迎接新的一年呢?
\\n网易云音乐 ID:1293886117
\\n初二、高二,都是中二的年龄,据说这是人一生到当中脑子最有毛病的时候,沉沦下去或是&……这段时间总能起到至关重要的作用。\\n或许我现在的状态就如同《妄想症 Deliver Me》中的主角一样,无论对什么都提不起多大的兴趣,游戏、学习、代码、追番。不过却沉沦于华语音乐和各种电影中。
\\n注:《妄想症 Deliver Me》是黎明送我的。
\\n今天去看了《蜘蛛侠:平行宇宙》,虽然是个喜剧片,但还是有部分内容真的使我很有感触,但是这种戏剧的风格会瞬间让你从悲伤中恢复过来,几次都瞬间缓过来了。\\n或许我看是不一样的感受吧,整场下来,旁边的小孩子从头笑到尾,那些家长也是。
\\n\\n\\n迈尔斯:“如果衣服不合身,我可以换吗?”\\n斯坦·李:“它总是会合身的。”
\\n
\\n\\n迈尔斯:“我要怎样才能知道我准备好了?”\\n彼得·帕克:“你不会知道,这就是一种信念。”
\\n
\\n\\n谁都可以带上面具,谁 都可以是蜘蛛侠。
\\n
![]() | \\n![]() | \\n![]() | \\n
---|---|---|
![]() | \\n![]() | \\n![]() | \\n
![]() | \\n![]() | \\n![]() | \\n
![]() | \\n![]() | \\n![]() | \\n
![]() | \\n\\n | \\n |
哎,写到这有点写不下去了。只是想找一个地方,找一个能忘掉一切,能什么也不做,什么也不用想的地方。最近的几个月,总是睡得很晚,因为总是睡不着,总是在晚上会想一些事情,我不知道该怎么办才能恢复正常,我想让我的大脑关机,可他不愿意关机。
\\n我该怎么办?还有几分钟 2018 就结束了。我该如何去面对即将到来的 2019,我很想很想变成一个温柔、乐观、外向的人,可我做得到吗。
,终于,还是活到了 2019,2018 年也还是走到了头,2017 年的时候想着要做许许多多有意思的事情,那个时候我还是那么乐观,还是充满着憧憬。 \x3c!--more--\x3e 不过现在已经活成这样又有什么办法呢,人生总是充满遗憾,不知道还能不能像从前那样鼓起信心去迎接新的一年呢?\\n\\n网易云音乐 ID:1293886117\\n\\n初二、高二,都是中二的年龄,据说这是人一生到当中脑子最有毛病的时候,沉沦下去或是&……这段时间总能起到至关重要的作用。 或许我现在的状态就如同《妄想症 Deliver Me》中的主角一样,无论对什么都提不起多大的兴趣,游戏、学习、代码、追番…,2018 年也还是走到了头,2025-06-24T21:56:33.424Z,2019-01-01T00:00:00.593Z,[{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c31865835fc1.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c318658a8568.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c318658d4aeb.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c31865b04eaf.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c3186697893b.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c318659463e7.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c31866b86fde.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c31866e1d129-1604033165849.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c318651b00d8-1604033017843.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c31865401e57.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c3186559ade5.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c318655f319d.png\\",\\"type\\":\\"photo\\"},{\\"url\\":\\"../../../assets/posts/2018%E5%B9%B4%E4%B9%9F%E8%BF%98%E6%98%AF%E8%B5%B0%E5%88%B0%E4%BA%86%E5%A4%B4/5c31865639e6b.png\\",\\"type\\":\\"photo\\"}],42331815237783574,160455534494817306,元旦送一波 steam 游戏(已结束),终于,2018 年也快到了头,2017 年的时候就想着要做许许多多有意思的事情,如今肯定是有很多没有能够实现的。不过又有什么办法呢,人生总是充满遗憾,还是鼓起信心去迎接新的一年吧。
\\n<!--more--\x3e
\\n网易云音乐 ID:1709302
\\n你得保证中奖过后你能腾出时间去玩,请不要觉得免费得到的就不当回事。
\\n特别是《To The Moon》,它的游戏时间只有一个 5 小时以内就能通关,但可能一次不能理解他的剧情。\\n他是一个已剧情为主的游戏,所以操作性几乎没有,不抽出完整的 5 小时静下心来玩是不可能体验到他的意义的。
\\n综上,我希望中奖后能认真对待游戏。
\\n2019 年 1 月 2 日
\\n快加我 Steam 啊
\\n##奖品\\n饥荒联机版、to the moon、传送门 2、城堡破坏者、求生之路 2……
\\n以上其中一个,都比较便宜,不过只送的起这些了。
\\n一共十份
\\nPHP 的 rand()\\n一个人只可评论一次。\\n抽奖结果将在评论区回复中奖者,请填写正确的能收邮件的邮箱地址。。
\\n感觉至少要 100 人起抽吧。。。
\\n没加我 Steam 好友就是弃权了。。。
\\nTG: https://t.me/chainwon
\\nQQ 群:482634342
\\nhttps://nexmoe.com/1070.html
\\n手机不好打字,还在上学……
,终于,2018 年也快到了头,2017 年的时候就想着要做许许多多有意思的事情,如今肯定是有很多没有能够实现的。不过又有什么办法呢,人生总是充满遗憾,还是鼓起信心去迎接新的一年吧。 \x3c!--more--\x3e\\n\\n网易云音乐 ID:1709302\\n\\n首先\\n\\n你得保证中奖过后你能腾出时间去玩,请不要觉得免费得到的就不当回事。\\n\\n特别是《To The Moon》,它的游戏时间只有一个 5 小时以内就能通关,但可能一次不能理解他的剧情。 他是一个已剧情为主的游戏,所以操作性几乎没有,不抽出完整的 5 小时静下心来玩是不可能体验到他的意义的。\\n\\n综上,我希望中奖后能认真对待游戏…,元旦送一波 steam 游戏(已结束),2025-06-24T21:56:33.423Z,2018-12-23T23:44:00.076Z,42331815237783574,160455534494817307,黑暗与光明孰强孰弱?,黑暗与光明孰强孰弱?
\\n<!--more--\x3e
\\nMIT
\\nhttps://github.com/nexmoe/single-page/
\\n[PAGE1]
\\nhttps://nexmoe.github.io/single-page/nexmoe-vs/
\\nhttps://github.com/nexmoe/single-page/tree/master/nexmoe-vs
\\nhttps://nexmoe.github.io/single-page/nexmoe-safari/
\\nhttps://github.com/nexmoe/single-page/tree/master/nexmoe-safari
\\nhttps://nexmoe.github.io/single-page/mixcm-avatar/
\\nhttps://github.com/nexmoe/single-page/tree/master/mixcm-avatar
\\nhttps://nexmoe.github.io/single-page/nexmoe-warning
\\nhttps://github.com/nexmoe/single-page/tree/master/nexmoe-warning
\\n流程控制中的 if 是比较简单的逻辑判断,但是在多条逻辑判断中很容易造成 if 嵌套,逻辑复杂度较高,让人感到十分混乱。
\\n<!--more--\x3e
\\n万恶的 if 嵌套
\\n<?php\\n$a = array(\\n \'state\' => \'1\',\\n \'notice\' => \'注册成功!\',\\n);\\n\\nif ($_GET[\'username\'] != \'\') {\\n if (strlen($_GET[\'username\']) > 4 or !strlen($_GET[\'username\']) < 11) {\\n $name = array(\'root\',\'admin\',\'GETmaster\',\'master\',\'webmaster\',\'mixcm\',\'administrator\',\'sb\',\'shabi\');\\n if (!in_array($_GET[\'username\'], $name)) {\\n if (preg_match(\\"/^[a-zA-Z\\\\s]+$/\\", $_GET[\'username\'])) {\\n $a[\'state\'] = \'0\';\\n $a[\'notice\'] = \'用户名必须为英文!\';\\n }\\n } else {\\n $a[\'state\'] = \'0\';\\n $a[\'notice\'] = \'非法用户名!\';\\n }\\n } else {\\n $a[\'state\'] = \'0\';\\n $a[\'notice\'] = \'请输入大于4字符,且小于11个字符的用户名!\';\\n }\\n\\n} else {\\n $a[\'state\'] = \'0\';\\n $a[\'notice\'] = \'用户名不能为空!\';\\n}\\n\\necho json_encode($a,JSON_UNESCAPED_UNICODE);\\n
\\n于是在实际操作中就会想方设法避免以上格式。便有了 goto 和 表数据。
\\n利用 goto 解决(以下代码中有使用到表数据)
\\n<?php\\n$a = array(\\n \'state\' => \'1\',\\n \'notice\' => \'注册成功!\',\\n);\\n\\nif ($_GET[\'username\'] == \'\') {\\n $a[\'state\'] = \'0\';\\n $a[\'notice\'] = \'用户名不能为空!\';\\n goto end;\\n}\\n\\nif (strlen($_GET[\'username\']) < 4 or strlen($_GET[\'username\']) > 11) {\\n $a[\'state\'] = \'0\';\\n $a[\'notice\'] = \'请输入大于4字符,且小于11个字符的用户名!\';\\n goto end;\\n}\\n\\n$name = array(\'root\',\'admin\',\'GETmaster\',\'master\',\'webmaster\',\'mixcm\',\'administrator\',\'sb\',\'shabi\');\\nif (in_array($_GET[\'username\'], $name)) {\\n $a[\'state\'] = \'0\';\\n $a[\'notice\'] = \'非法用户名!\';\\n goto end;\\n}\\n\\nif (!preg_match(\\"/^[a-zA-Z\\\\s]+$/\\", $_GET[\'username\'])) {\\n $a[\'state\'] = \'0\';\\n $a[\'notice\'] = \'用户名必须为英文!\';\\n goto end;\\n}\\n\\nend:\\necho json_encode($a,JSON_UNESCAPED_UNICODE);\\n
,流程控制中的 if 是比较简单的逻辑判断,但是在多条逻辑判断中很容易造成 if 嵌套,逻辑复杂度较高,让人感到十分混乱。 \x3c!--more--\x3e\\n\\n万恶的 if 嵌套\\n\\n '1',\\n 'notice' => '注册成功!',\\n);\\n\\nif ($_GET['username'] != '') {\\n if (strlen($_GET['username']) > 4 or !strlen($_GET['username']) < 11) {\\n $name = array…,利用 goto 来防止 if 嵌套,2025-06-24T21:56:33.421Z,2018-11-24T18:04:00.976Z,42331815237783574,160455534494817309,Cat UI 之 四季的猫(付费版),历经四季,回头发现,只有猫还在那等着我……\\n<!--more-->
\\n!!!\\n<span style=\\\"color: red;\\\">付费主题,禁止转售,禁止修改版权,可用于商用,可二次更改但只能自用,禁止修改 #sider-copyright 中的内容,禁止修改 sider.php 中的内容。\\n打破条约意味着放弃主题使用权。\\n</span>\\n!!!
\\n47.77
,周六晚 或 节假日 联系 QQ 776194970,欢迎额外赞助。需要先在 后台 → 设置外观 → Cover 模式 中启用 自定义Cover
\\n然后在编辑文章中的 自定义字段
内可设置
需要在后台 → 创建新页面 → 自定义模板 中使用“友情链接”
\\n-  [名称](链接地址 \\\"链接介绍\\\")\\n比如:\\n-  [轻惋导航](https://www.chainwon.com/ \\\"这个导航将会有无限的可能!\\\")\\n
\\n若上述格式不生效,请使用如下格式
\\n<a class=\\\"mdui-ripple\\\" href=\\\"https://www.chainwon.com/\\\" target=\\\"_blank\\\">\\n\\t<img src=\\\"https://www.chainwon.com/static/logo.png\\\" alt=\\\"轻惋导航\\\" title=\\\"轻惋导航\\\">\\n\\t<p>轻惋导航</p>\\n</a>\\n
\\n- 已达成(默认收起)\\n - [Y] 已达成 1\\n - [Y] 已达成 2\\n- [OPEN] 未达成(打开)\\n - [N] 未达成\\n - [N] 未达成 2\\n
\\n本功能文本格式规范要求极高,请严格按照以下格式使用,切不能省掉 换行符
[PIC2]\\n\\n\\n\\n\\n\\n[/PIC2]\\n
\\n[PIC2]
\\n[/PIC2]
\\n[PIC3]\\n\\n\\n\\n\\n\\n\\n\\n[/PIC3]\\n
\\n[PIC3]
\\n[/PIC3]
\\n本功能文本格式规范要求极高,请严格按照以下格式使用,切不能省掉 换行符
演示:https://nexmoe.com/1303.html
\\n[PAGE1]\\n\\n第一页\\n\\n[/PAGE1]\\n\\n[PAGE2]\\n\\n第二页\\n\\n[/PAGE2]\\n
\\n真是过了一个散漫、肥宅、毫无意义的暑假。\\n暑假作业的作文题目是遗憾,我觉得这个暑假也是挺遗憾的。\\n流量预警\\n<!--more-->
\\n就用这首歌来告别暑假吧。
\\n网易云音乐 ID:4078631
\\n放假刚开始的几个星期是最充实的几个星期,每天都早期吃早餐(因为早餐真的好次),每天晚上都会约几个人一起进行长距离骑行。
\\n后来的 7 月份,天天熬夜,时不时通宵,不是看番就是看电影然后就是打游戏。
\\n然后到了 8 月份,本来准备 7 月份的旅游才开始。\\n原本打算去武汉 3 天,被改成了去广州,于是打算去广州 5 天,被强行拉成 11 天,然后回来的时候去了 2 天武汉。
\\n\\n\\n计划全被打乱真的让人很生气啊!
\\n
以下皆由小米 6 随手拍摄。
\\n![]() | \\n![]() | \\n![]() | \\n
---|---|---|
![]() | \\n![]() | \\n![]() | \\n
![]() | \\n\\n | \\n |
![]() | \\n![]() | \\n![]() | \\n![]() | \\n
---|---|---|---|
![]() | \\n![]() | \\n![]() | \\n![]() | \\n
![]() | \\n![]() | \\n![]() | \\n![]() | \\n
![]() | \\n![]() | \\n![]() | \\n![]() | \\n
---|---|---|---|
![]() | \\n![]() | \\n\\n | \\n |
由于很想看看武大,但是条件不允许,所以云游了一边武大。真的大!
\\n![]() | \\n![]() | \\n
---|---|
\\n | \\n |
![]() | \\n![]() | \\n![]() | \\n![]() | \\n
---|---|---|---|
![]() | \\n![]() | \\n![]() | \\n![]() | \\n
![]() | \\n![]() | \\n![]() | \\n![]() | \\n
![]() | \\n![]() | \\n![]() | \\n![]() | \\n
![]() | \\n![]() | \\n![]() | \\n![]() | \\n
![]() | \\n![]() | \\n![]() | \\n![]() | \\n
![]() | \\n\\n | \\n | \\n |
解决 clipboardData is not defined\\n兼容 Chrome 和 Firefox
\\n<!--more-->
\\n一直想给导航添加一个结果复制到剪切板的功能,但是百度了很久,并没有找到解决方案,各种 jQuery 库也不满足我的需求。
\\n我想要一个直接输入文本,并复制到剪切板的功能。
\\n于是乎我就自己撸了 7 行 JavaScript(基于 jQuery)
\\nfunction setCopy(txt) {\\n $('body').append('<textarea id=\\\"copy\\\" style=\\\"height: 0;width: 0;border: 0;opacity:0;\\\">'+txt+'</textarea>');\\n $('#copy').select();\\n document.execCommand(\\\"Copy\\\");\\n $('#copy').remove();\\n alert(\\\"复制成功!\\\");\\n}\\n
\\n使用时只需要调用 setCopy() 就行了
\\n(!该调用方式!不适用于 Firefox)比如直接在 <a>
中使用
href=\\\"JavaScript:setCopy('1533384805');\\\">\\n
\\n(该调用方式适用于 Firefox)更介意使用
\\nonclick=\\\"setCopy('1533387161');\\\"\\n
\\n