没忍住这两天买了 mac mini,看到网上有很多卖 mac mini 扩展坞底座的产品,各位佬们觉得有必要买吗? 欢迎佬们分享下使用/不使用扩展坞的场景,如果推荐的话希望能分享下在用的品牌~ 5 个帖子 - 5 位参与者 阅读完整话题
规划了些 自己常用的一些右键功能。如果说作为用户,你可能会付费的功能是啥呢?当前就准备自己用用,等自己觉得好用可用时,可能会开源下。 不得不说,现在软件确实是日抛了,想要什么功能自己给ai描述就行了,即使不会代码也能写一个自己满意的软件。放在之前是不可能有这种想做个应用自己用的想法的。 2 个帖子 - 2 位参与者 阅读完整话题
Google近日宣布,其在 Chrome 浏览器中内置的 Gemini 聊天机器人功能已扩展至更多国家和地区,在桌面端和 iOS 端面向拉丁美洲、非洲及中东用户开放。 Google在支持页面中列出了本次更新所覆盖的完整地区名单,用户需将设备所在区域设置为受支持地区方可使用该功能。 不过,欧盟市场此次依旧被排除在外,Google并未给出具体原因,仅表示或将在稍后时间再作推进。 Gemini in Chrome 去年率先在美国上线,今年 3 月扩展到了加拿大、新西兰和印度,如今覆盖范围再度明显扩大。 顾名思义,Gemini in Chrome 是将Google的 Gemini 人工智能助手直接集成进 Chrome 浏览器,使其可以“看到”用户当前打开的标签页和窗口,并基于其中的内容提供协助。 例如,它可以对网页内容进行自动摘要,在多标签页之间对信息进行交叉比对,利用 Nano Banana 2 模型生成和编辑图像等。 凭借与Google各项服务的深度整合,Gemini in Chrome 还能在侧边栏中直接调用日历为用户安排会议、在地图中查询地点信息、在 Gmail 中撰写和发送邮件,或就 YouTube 视频中的内容回答用户的问题,全程无需离开当前浏览页面。 通过这些集成功能,Google希望借助 Gemini 提升用户在浏览器中的搜索、创作和日常办公效率。 查看评论
天才程序员陨落,更新了codex最新版,要重新登录账号,然后各种浏览器扩展获取auth.json的都无法获取到最新的rt了,codex没法用了 1 个帖子 - 1 位参与者 阅读完整话题
如图 千万别点修复 血泪教训 你的脚本会全部清空并且不可找回 别问我怎么知道的 出现这种情况我是重启几次可能突然就好了 这次的扩展损坏重启几次也不能恢复了 有佬真正弄明白原理吗 怎么才能避免这种情况 9 个帖子 - 6 位参与者 阅读完整话题
起因 刷 B 站的时候一直有个痛点: 投屏只能一个一个投 。躺着刷,经常一口气看到好几个想丢电视上看的(纪录片、长视频、合集),但手机一次只能推一个,剩下的只能干等;等当前这个播完,往往就忘了刚才要看哪几个,再翻回去又找不到了。 找了一圈没有顺手的,就自己写了一个,叫 QCast 。核心就一件事: 给投屏加一个队列,一次把想看的都排进去,一个播完自动播下一个,中途不用碰手机。 是什么 手机 App(Android)维护队列,从 B 站 App 分享视频即可入队 两种投屏端,同一时刻二选一: 电视 :走标准 DLNA/UPnP,自动发现局域网渲染器 浏览器 :配套的 Chrome 扩展,视频在电脑浏览器里全屏播放 完全免费,纯本地局域网通信,不注册、不上传任何数据 这个项目基本是 vibe coding 做出来的(全程 AI 结对),算是一次完整的"从想法到上架"的实践,体验还挺顺的。 已知限制(先说清楚) 只支持 Bilibili ,YouTube 等暂不支持 仅 Android (Flutter 写的,iOS 没精力签名分发) 电视端需要支持 标准 DLNA ;有些投屏 App(如乐播)默认不开 DLNA,得手动打开,或换当贝/快投屏 DLNA 投屏时,视频流经手机中转给电视,所以 投屏期间手机别断网/别杀进程 建议把 QCast 加入电池优化白名单 (允许后台运行),否则手机后台一刷新进程,投屏就断了 链接 Chrome 扩展(已上架): https://chromewebstore.google.com/detail/qcast/llggfegahlihjijpcbhegehafpnnacdd Android APK(GitHub Release): https://github.com/jimsshom/QCast-release/releases/latest 最后 自己边用边迭代的,功能还在完善。有同样需求的欢迎试试,有 bug 、有想要的功能、或者实现上觉得哪里不对,都欢迎在帖子里拍砖,我会持续更新。
🍎服务和 ai 走了代理 26.5.1 都能用消除 奇怪居然报错了
【开源】WebHomeTV,Nostr去中心化影视推荐榜单、集成盘搜、网盘检测、一键同步等功能 开发调优 本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签: 是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社区和佬友监督: 是 以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出 没积分了,… WebHome扩展 配置任意网站url,配合注入脚本调用app原生开放能力 WebHome 扩展脚本开发指南 https://img.naixiai.cn/2026/06/10/604167551-856cf38e-9cb6-435e-9f1a-c52e1bb93186.mp4 登录态学习 一键同步功能,用来同步cookies比较方便,但是前提是你知道同步哪个目录里包含这些cookies文件,默认同步的有TV等三个目录。 有的接口比如饭太硬保存cookies的文件路径你不知道(在app私有目录里),那么就可以用学习登录态功能来找出它们。 它的原理是开启学习时,会自动监控sdcard和app私有目录的文件变化,这时你操作登录cookies,它就会学习到。 https://img.naixiai.cn/2026/06/10/FILE-2026-06-10-121658.mp4 管理页面 可能手机/电视客户端有些操作不够方便,可以局域网浏览器打开操作 https://img.naixiai.cn/2026/06/10/FILE-2026-06-10-121835.mp4 站点健康学习排序 记录搜索、详情、播放成功/失败、耗时和最近状态。 搜索和自动换源会优先使用健康度更高的站点。 https://img.naixiai.cn/2026/06/10/603921066-51b02b69-d0e1-492f-b1ba-ae5fca919ac8.mp4 自动生成代理规则建议 不会设置代理规则的用户的福音,选择站点,自动生成规则建议 https://img.naixiai.cn/2026/06/10/603793022-fc7d3ddd-4ad8-4698-a6cc-5d7711467230.mp4 3 个帖子 - 2 位参与者 阅读完整话题
🍎服务和 ai 走了代理 26.5.1 都能用消除 奇怪居然报错了
我用 Simple Chat Hub这个扩展 用Claude网页版,只要Claude发现是被嵌套在iframe里,就会自动隐藏掉侧栏,不让切换对话 很可惜扩展开发者被Anthropic给干了,没法处理…… github.com/jackyr/simple-chat-hub-extension Claude Issue 已打开 02:59AM - 24 Dec 25 UTC kgfly Offical web: <img width="1082" height="267" alt="Image" src="https://github.com … /user-attachments/assets/334de9bd-b19b-454f-9ad5-73cc5d1a292a" /> From the plugin <img width="818" height="472" alt="Image" src="https://github.com/user-attachments/assets/75d5dff7-63b0-4751-a633-1c5c4e143131" /> May you please keep the red circle? Otherwise, it's not possible to open the history. 想问问站内有佬可以搞定吗? 1 个帖子 - 1 位参与者 阅读完整话题
前言 最近我在开发一个基于 Plasmo 的 Chrome MV3 浏览器扩展,项目主要用于统一管理 ChatGPT、Claude 等 AI 平台的对话记录,支持账号同步、搜索、收藏、标签、批量操作等功能。 随着功能逐渐完善,扩展里出现了大量 UI 文案、提示信息、错误信息。如果这些文本全部硬编码在组件里,后续维护会非常麻烦: 想支持英文、中文等多语言时,需要到处改代码; popup、content script、background 里都有文案,容易遗漏; Chrome 扩展本身也有名称、描述等 manifest 文案,也需要国际化; 文案带变量时,比如“已选中 5 项”,如果手动拼接,会不利于多语言适配。 因此,我最终使用 Chrome 扩展原生提供的 chrome.i18n API,再结合 Plasmo 的目录约定,给项目做了一套轻量、简单、够用的国际化方案。 本文就结合我的项目实践,介绍如何在 Plasmo 浏览器扩展中实现 i18n。 一、项目技术栈 我的项目是一个 Chrome MV3 扩展,主要技术栈如下: Plasmo React TypeScript Tailwind CSS Chrome Extension Manifest V3 项目结构比较简单,所有源文件都放在项目根目录,没有额外的 src 目录。 核心文件大致如下: my-first-extension/ ├── popup.tsx ├── content.ts ├── background.ts ├── logic.ts ├── db.ts ├── utils/ │ └── i18n.ts ├── locales/ │ ├── en/ │ │ └── messages.json │ └── zh_CN/ │ └── messages.json ├── package.json └── ... 其中和国际化相关的主要是: utils/i18n.ts locales/en/messages.json locales/zh_CN/messages.json package.json 二、Plasmo 项目中的语言包目录 在 Chrome 扩展规范中,最终构建产物里通常会有 _locales 目录,例如: _locales/ ├── en/ │ └── messages.json └── zh_CN/ └── messages.json 而在 Plasmo 项目开发阶段,我们可以直接在项目中创建: locales/ ├── en/ │ └── messages.json └── zh_CN/ └── messages.json Plasmo 构建时会处理这些语言资源,让它们符合 Chrome Extension 的国际化规范。 我的项目里目前支持两种语言: locales/en/messages.json locales/zh_CN/messages.json 其中: en 是英文; zh_CN 是简体中文。 三、在 manifest 中配置默认语言 Chrome 扩展要启用国际化,必须在 manifest 中声明 default_locale 。 在 Plasmo 项目里,可以直接在 package.json 的 manifest 字段里配置: { "manifest": { "default_locale": "en", "permissions": [ "storage", "alarms" ], "host_permissions": [ "https://chatgpt.com/*", "https://claude.ai/*" ] } } 这里我把默认语言设置为英文: "default_locale": "en" 这意味着如果用户当前浏览器语言没有对应的语言包,Chrome 会回退使用英文语言包。 四、扩展名称和描述的国际化 浏览器扩展的名称、描述也可以使用 Chrome i18n 的占位符语法。 我的 package.json 中这样写: { "name": "multi-ai-conversation-manager", "displayName": "__MSG_extName__", "description": "__MSG_extDescription__" } 这里的重点是: "displayName": "__MSG_extName__", "description": "__MSG_extDescription__" __MSG_xxx__ 是 Chrome 扩展国际化的特殊语法。 例如: __MSG_extName__ 会去当前语言包的 messages.json 中查找: { "extName": { "message": "ChatGPT & Claude AI Conversation Manager" } } 中文语言包中对应的是: { "extName": { "message": "ChatGPT、Claude AI 对话管理器" } } 这样一来,扩展在 Chrome 扩展管理页、商店信息或者 manifest 中展示时,就能根据用户浏览器语言自动切换名称和描述。 五、messages.json 的基本格式 Chrome 扩展的语言文件必须叫做 messages.json 。 基本格式如下: { "key": { "message": "具体文案" } } 比如英文语言包: { "account_management": { "message": "Account Management" }, "account_add": { "message": "Add Account" }, "btn_confirm": { "message": "Confirm" }, "btn_cancel": { "message": "Cancel" } } 中文语言包: { "account_management": { "message": "账号管理" }, "account_add": { "message": "添加账号" }, "btn_confirm": { "message": "确认" }, "btn_cancel": { "message": "取消" } } 这里需要注意: 不同语言包里的 key 要保持一致。 也就是说,英文里有: "account_add" 中文里也必须有: "account_add" 否则运行时调用这个 key 时,某些语言环境下就可能取不到翻译。 六、封装一个统一的 t 函数 虽然可以在代码里直接写: chrome.i18n.getMessage("btn_confirm") 但如果项目中大量使用这个 API,会有几个问题: 写起来比较长; 后续如果想增加 fallback 逻辑,需要到处改; popup、content script、background 都会重复使用; 不方便统一处理参数替换。 所以我在项目中封装了一个简单的工具函数。 文件位置: utils/i18n.ts 代码如下: /** * Chrome 扩展国际化工具函数 * 封装 chrome.i18n API,提供类型安全的文本获取方法 */ /** * 获取国际化文本 * @param key - messages.json 中定义的 key * @param substitutions - 可选的替换参数,字符串或字符串数组 * @returns 翻译后的文本,如果 key 不存在则返回 key 本身 */ export function t(key: string, substitutions?: string | string[]): string { return chrome.i18n.getMessage(key, substitutions) || key } 这个函数做了两件事: 第一,简化调用: t("btn_confirm") 比下面这样更简洁: chrome.i18n.getMessage("btn_confirm") 第二,增加 fallback: return chrome.i18n.getMessage(key, substitutions) || key 如果某个 key 没有找到,直接返回 key 本身。这样至少页面不会显示空字符串,调试时也很容易发现哪个 key 没配置。 七、在 React Popup 页面中使用 i18n 我的扩展主要 UI 在 popup.tsx 中,它是一个 React 页面。 首先引入工具函数: import { t } from "./utils/i18n" 然后就可以在 JSX 中使用: <button> {t("account_add")} </button> 或者用于错误提示: return ( <div className="p-4 text-red-500 text-sm"> {t("errorBoundaryMessage")} </div> ) 对应的英文语言包: { "errorBoundaryMessage": { "message": "An error occurred. Please close and reopen the extension" } } 对应的中文语言包: { "errorBoundaryMessage": { "message": "出现错误,请关闭后重新打开扩展" } } 这样,当用户浏览器语言是中文时,会显示中文;如果是英文环境,则显示英文。 八、在 Content Script 中使用 i18n 浏览器扩展不仅 popup 页面需要国际化,content script 也经常需要显示文案。 我的项目中, content.ts 会注入到 ChatGPT 或 Claude 页面中,用于检测当前登录账号。如果发现新账号,会在页面右下角显示一个提示卡片,引导用户同步账号。 同样先引入: import { t } from "./utils/i18n" 然后在创建 DOM 时使用: card.innerHTML = ` <button class="close-btn" aria-label="${t('content_closeAriaLabel')}">×</button> <div class="header"> <div class="text-content"> <h3>${t('content_newAccountTitle')}</h3> <p>${t('content_newAccountDesc', platformName)}</p> </div> </div> <div class="actions"> <button class="btn-ignore">${t('content_btnIgnore')}</button> <button class="btn-add">${t('content_btnSync')}</button> </div> ` 这里有一个带变量的文案: t("content_newAccountDesc", platformName) 比如英文里可能是: { "content_newAccountDesc": { "message": "A new $PLATFORM$ account was detected. Do you want to sync it now?", "placeholders": { "platform": { "content": "$1", "example": "ChatGPT" } } } } 中文里可以是: { "content_newAccountDesc": { "message": "检测到新的 $PLATFORM$ 账号,是否立即同步?", "placeholders": { "platform": { "content": "$1", "example": "ChatGPT" } } } } 这样在代码里只需要传入平台名称: t("content_newAccountDesc", "ChatGPT") 最终 Chrome 会自动把 $1 对应的内容替换进去。 九、在 Background 和业务逻辑中使用 i18n 除了 UI,后台逻辑里也会产生提示信息或错误信息。 比如消息处理器、同步逻辑、错误封装中,也可以统一使用: import { t } from "~utils/i18n" 或: import { t } from "./utils/i18n" 然后: throw new Error(t("error_accountMismatch")) 或者: return { success: false, error: t("error_syncFailed") } 这样有一个好处: 前端展示的错误信息和后台返回的错误信息,都可以使用同一套语言包管理。 对于浏览器扩展来说,popup、content script、background 是不同运行环境,如果不统一管理文案,后期维护会很痛苦。 十、带参数文案的写法 国际化里最常见的问题之一,就是文案里带变量。 比如: 已选中 5 项 不能简单写成: "已选中 " + count + " 项" 因为不同语言的语序可能不一样。 正确做法是放到语言包中: 英文: { "batch_selectedCount": { "message": "$COUNT$ items selected", "placeholders": { "count": { "content": "$1", "example": "5" } } } } 中文: { "batch_selectedCount": { "message": "已选中 $COUNT$ 项", "placeholders": { "count": { "content": "$1", "example": "5" } } } } 代码中调用: t("batch_selectedCount", String(selectedCount)) 如果有多个参数,也可以传数组: t("error_accountMismatch", [oldEmail, newEmail]) 语言包中可以使用: { "error_accountMismatch": { "message": "账号不匹配:当前账号是 $CURRENT$,目标账号是 $TARGET$", "placeholders": { "current": { "content": "$1", "example": "[email protected]" }, "target": { "content": "$2", "example": "[email protected]" } } } } 十一、推荐的 key 命名方式 随着项目变大,语言包会越来越长。如果 key 命名不规范,很容易混乱。 我在项目中采用了按业务模块前缀命名的方式,例如: theme_light theme_dark theme_system account_management account_add account_delete account_sync batch_manage batch_addTag batch_removeTag batch_selectedCount tag_management tag_create tag_rename tag_delete conversation_notFound conversation_total conversation_copyLink content_newAccountTitle content_newAccountDesc content_btnIgnore content_btnSync errorBoundaryMessage error_syncFailed 这种命名方式有几个优点: 一眼能看出文案属于哪个模块; 搜索方便; 不容易和其他模块冲突; 语言包比较容易维护。 我个人不太建议全部写成非常短的 key,例如: title desc button message 因为项目一大,这些 key 很快就会失去语义。 十二、Chrome i18n 的语言选择机制 使用 chrome.i18n 后,不需要我们自己判断用户语言。 Chrome 会根据用户浏览器语言自动选择语言包。 比如项目里有: locales/en/messages.json locales/zh_CN/messages.json 如果用户浏览器语言是中文简体,Chrome 会优先使用: zh_CN 如果用户浏览器语言是英文,则使用: en 如果没有找到对应语言,会回退到 manifest 中配置的: "default_locale": "en" 所以在大多数情况下,我们不需要自己写: navigator.language 也不需要自己维护语言切换逻辑。 十三、Plasmo i18n 实现流程总结 整体流程可以总结为五步。 1. 创建语言包目录 locales/ ├── en/ │ └── messages.json └── zh_CN/ └── messages.json 2. 在 package.json 中配置默认语言 { "manifest": { "default_locale": "en" } } 3. 使用 __MSG_xxx__ 国际化扩展名称和描述 { "displayName": "__MSG_extName__", "description": "__MSG_extDescription__" } 4. 封装 i18n 工具函数 export function t(key: string, substitutions?: string | string[]): string { return chrome.i18n.getMessage(key, substitutions) || key } 5. 在 popup、content script、background 中统一调用 t("btn_confirm") t("batch_selectedCount", String(count)) t("content_newAccountDesc", platformName) 十四、这种方案的优点 我目前这个项目采用的是原生 chrome.i18n 方案,而不是引入 i18next 、 react-intl 之类的第三方库。 原因很简单:对于浏览器扩展来说,原生方案已经足够好用。 它的优点包括: 1. 不需要额外依赖 不需要安装额外 npm 包,减少 bundle 体积。 2. 和 Chrome 扩展天然集成 manifest 中的名称、描述都可以直接使用 __MSG_xxx__ 。 3. popup、content script、background 都能用 只要在扩展环境中,都可以调用: chrome.i18n.getMessage() 4. 构建简单 Plasmo 会处理扩展构建,不需要自己手动生成 _locales 。 5. 维护成本低 对于中小型浏览器扩展项目,这种方案非常轻量。 十五、需要注意的坑 1. 必须配置 default_locale 如果使用了语言包,但是 manifest 没有配置: "default_locale": "en" 扩展可能无法正确加载国际化资源。 2. key 必须在所有语言包中保持一致 比如英文有: "btn_confirm" 中文也应该有: "btn_confirm" 否则在某些语言下会取不到翻译。 3. messages.json 格式不能随便写 Chrome i18n 不是普通 JSON 字典,不能写成: { "btn_confirm": "Confirm" } 必须写成: { "btn_confirm": { "message": "Confirm" } } 4. 占位符要用 $1 、 $2 比如: { "conversation_total": { "message": "$COUNT$ conversations", "placeholders": { "count": { "content": "$1", "example": "10" } } } } 代码中: t("conversation_total", "10") 5. 不建议在代码里拼接多语言句子 不推荐: t("selected") + count + t("items") 推荐: t("batch_selectedCount", String(count)) 因为不同语言的语序可能不一样。 6. content script 中使用 innerHTML 时要注意安全 如果语言包内容完全由开发者自己维护,风险较小。但如果文案来自用户输入,就不要直接拼进 innerHTML 。 我的项目中的语言包是静态文件,由开发者维护,所以可以用于构造提示卡片。但如果要插入用户输入,最好使用 textContent 或做好转义。 十六、适合继续优化的方向 目前这个方案已经可以满足我的项目需求,不过后续还可以继续优化。 1. 给 key 增加 TypeScript 类型约束 现在的 t 函数是: export function t(key: string, substitutions?: string | string[]): string 也就是说 key 是普通字符串。 如果写错了: t("btn_confim") TypeScript 不会报错,只有运行时才会发现。 后续可以自动从 messages.json 生成类型,例如: type I18nKey = | "btn_confirm" | "btn_cancel" | "account_add" | "account_delete" 然后改成: export function t(key: I18nKey, substitutions?: string | string[]): string { return chrome.i18n.getMessage(key, substitutions) || key } 这样可以在开发阶段提前发现 key 拼写错误。 2. 编写脚本检查多语言 key 是否一致 可以写一个 Node.js 脚本,对比: locales/en/messages.json locales/zh_CN/messages.json 检查两个文件的 key 是否完全一致。 比如: en 中有但 zh_CN 中没有 zh_CN 中有但 en 中没有 这对项目变大后非常有用。 3. 拆分语言包 当 messages.json 变得非常大时,可以按模块维护源文件,例如: i18n-source/ ├── account.json ├── batch.json ├── tag.json ├── content.json └── error.json 然后通过脚本合并生成最终的: locales/en/messages.json locales/zh_CN/messages.json 不过对于大多数浏览器扩展项目,一个 messages.json 也完全够用。 十七、完整示例 下面给一个简化版完整示例。 package.json { "name": "multi-ai-conversation-manager", "displayName": "__MSG_extName__", "description": "__MSG_extDescription__", "manifest": { "default_locale": "en", "permissions": [ "storage", "alarms" ] } } locales/en/messages.json { "extName": { "message": "ChatGPT & Claude AI Conversation Manager" }, "extDescription": { "message": "Unified management for ChatGPT and Claude conversations" }, "btn_confirm": { "message": "Confirm" }, "btn_cancel": { "message": "Cancel" }, "batch_selectedCount": { "message": "$COUNT$ items selected", "placeholders": { "count": { "content": "$1", "example": "5" } } } } locales/zh_CN/messages.json { "extName": { "message": "ChatGPT、Claude AI 对话管理器" }, "extDescription": { "message": "统一管理 ChatGPT、Claude 平台的 AI 对话" }, "btn_confirm": { "message": "确认" }, "btn_cancel": { "message": "取消" }, "batch_selectedCount": { "message": "已选中 $COUNT$ 项", "placeholders": { "count": { "content": "$1", "example": "5" } } } } utils/i18n.ts export function t(key: string, substitutions?: string | string[]): string { return chrome.i18n.getMessage(key, substitutions) || key } popup.tsx import { t } from "./utils/i18n" export default function Popup() { const selectedCount = 5 return ( <div> <button>{t("btn_confirm")}</button> <button>{t("btn_cancel")}</button> <p>{t("batch_selectedCount", String(selectedCount))}</p> </div> ) } 结语 在 Plasmo 浏览器扩展项目中实现 i18n,并不一定要引入复杂的国际化框架。 对于大多数 Chrome 扩展来说,直接使用浏览器原生的 chrome.i18n API 就已经足够: manifest 文案使用 __MSG_xxx__ ; 页面和脚本中使用 chrome.i18n.getMessage() ; 封装一个简单的 t() 函数; 使用 locales/en/messages.json 、 locales/zh_CN/messages.json 管理语言包; 对变量文案使用 placeholders。 这种方式简单、轻量、和浏览器扩展生态天然兼容,非常适合 Plasmo 架构下的扩展开发。 我目前的项目就是采用这种方案,同时覆盖了 popup 页面、content script、background 消息处理和错误提示。整体使用下来,维护成本低,也方便后续继续增加更多语言支持。 1 个帖子 - 1 位参与者 阅读完整话题
就在壁纸这里,应该是本地运行的,跑完手机有点烫 二次元图片透视还是有点问题 1 个帖子 - 1 位参与者 阅读完整话题
https://www.nature.com/articles/s41592-026-03124-8 [!abstract]+ 序列到功能(S2F)模型可以评估任意DNA序列,但它们难以全面捕捉个体间基因表达的差异。我们提出了SAGE-net,一个可扩展的框架,用于利用个人基因组训练和评估S2F模型。虽然个人基因组训练提高了对未纳入研究的个体的基因表达预测准确性,但性能提升主要来源于识别预测性变异,而非学习跨位点泛化的顺式调控语法。可扩展的软件对于推进S2F模型在个人基因组学领域的应用至关重要。 github.com GitHub - mostafavilabuw/SAGEnet 通过在 GitHub 上创建帐户来为 mostafavilabuw/SAGEnet 开发做出贡献。 1 个帖子 - 1 位参与者 阅读完整话题
低成本高性能,更多扩展性 esp32-c3 + RGB Led https://github.com/cx4/StatusLed 抛砖引玉来了,是不是鸡肋呢。 通信方式: 支持局域网( http ) 蓝牙( BLE ) 串口(数据线) 灯光自定义 颜色自定义,闪烁频率自定义,呼吸灯效果,频闪效果,常亮效果...
低成本高性能,更多扩展性 esp32-c3 + RGB Led https://github.com/cx4/StatusLed 抛砖引玉来了,是不是鸡肋呢。 通信方式: 支持局域网( http ) 蓝牙( BLE ) 串口(数据线) 灯光自定义 颜色自定义,闪烁频率自定义,呼吸灯效果,频闪效果,常亮效果...
低成本高性能,更多扩展性 esp32-c3 + RGB Led https://github.com/cx4/StatusLed 抛砖引玉来了,是不是鸡肋呢。 通信方式: 支持局域网( http ) 蓝牙( BLE ) 串口(数据线) 灯光自定义 颜色自定义,闪烁频率自定义,呼吸灯效果,频闪效果,常亮效果...
低成本高性能,更多扩展性 esp32-c3 + RGB Led https://github.com/cx4/StatusLed 抛砖引玉来了,是不是鸡肋呢。 通信方式: 支持局域网( http ) 蓝牙( BLE ) 串口(数据线) 灯光自定义 颜色自定义,闪烁频率自定义,呼吸灯效果,频闪效果,常亮效果...
低成本高性能,更多扩展性 esp32-c3 + RGB Led https://github.com/cx4/StatusLed 抛砖引玉来了,是不是鸡肋呢。 通信方式: 支持局域网( http ) 蓝牙( BLE ) 串口(数据线) 灯光自定义 颜色自定义,闪烁频率自定义,呼吸灯效果,频闪效果,常亮效果...
苹果宣布将在即将推出的 iOS 27 系统中,扩展健康应用中原有的“月经周期追踪”功能,首次引入面向围绝经期和绝经阶段的专门支持,包括相关通知、症状记录以及科普教育资源等内容 。升级后,系统可以根据用户长期记录的月经周期模式,判断其是否出现疑似围绝经期变化,并在适当时候向用户推送提醒 。 用户还可以在健康 app 内直接记录围绝经期和绝经相关症状,并访问官方整理的教育信息,以获得对这一生理过渡阶段的指导和支持 。同时,Apple Fitness+ 也将上线针对围绝经期和绝经人群设计的新锻炼课程,与健康 app 的新功能形成联动 。 苹果介绍称,iOS 27 中新增的围绝经期与绝经支持,会基于用户长期积累的周期数据,识别出可能在绝经前十年甚至更早就开始的激素变化趋势 。这项新增能力属于 iOS 27 中更广泛健康功能改进的一部分,其中还包括更高级的周期追踪能力、更快的数据更新速度,以及一系列界面设计优化 。 苹果最早在 iOS 13 和 watchOS 6 中,将“月经周期追踪”功能引入 iPhone 和 Apple Watch,并在此后持续扩展功能边界 。在 Apple Watch Series 8 加入腕部温度传感器后,用户已可以通过该功能记录基础体温,并获得排卵时间的回溯性推测,本次围绝经期与绝经追踪能力则是在此基础上的进一步延伸 。 查看评论
IT之家 6 月 9 日消息,在目前正在进行的 WWDC26 中,苹果宣布对 Safari 浏览器进行 Apple 智能升级。 全新 Safari 浏览器能够检测打开的网页,自动整合标签页,便于用户查找,同时用户还可以用自然语言告诉 Safari 浏览器自己要关注的内容,内容更新时用户将会获得通知。 同时,苹果还为 Safari 浏览器引入自定义扩展生成功能,用户可以用自然语言生成浏览器扩展。