WWW.YOUINFO.SITE
标签聚合 命名

/tag/命名

LinuxDo 最新话题 · 2026-06-10 00:28:35+08:00 · tech

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>FLAC 重命名工具 · 读取内嵌元数据</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { background: #f5f0e8; font-family: 'Segoe UI', system-ui, sans-serif; min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 1.5rem; } .container { max-width: 850px; width: 100%; background: #fffdf7; border-radius: 1.8rem; box-shadow: 0 20px 40px rgba(0,0,0,0.1); padding: 2rem; } h1 { font-size: 2rem; color: #4a3724; display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.3rem; } .badge { background: #d4b896; color: #2d1f0e; font-size: 0.85rem; padding: 0.3rem 1rem; border-radius: 20px; font-weight: 600; } .desc { color: #6b5d4b; margin-bottom: 1.5rem; font-size: 0.95rem; border-left: 3px solid #c9a87c; padding-left: 1rem; } .drop-area { background: #faf7f1; border: 2px dashed #c8b28b; border-radius: 1.5rem; padding: 2.5rem; text-align: center; cursor: pointer; transition: all 0.2s; margin-bottom: 1.5rem; } .drop-area:hover, .drop-area.active { border-color: #a0845c; background: #f5ede0; box-shadow: 0 0 0 4px rgba(180,140,90,0.1); } .drop-area .icon { font-size: 3rem; margin-bottom: 0.5rem; } .drop-area .main-text { font-weight: 600; color: #4d3a24; font-size: 1.1rem; } .drop-area .sub-text { color: #8b7a62; font-size: 0.9rem; margin-top: 0.2rem; } input[type="file"] { display: none; } .file-panel { background: #fefcf8; border: 1px solid #e3d5bd; border-radius: 1.2rem; padding: 1rem; max-height: 380px; overflow-y: auto; margin: 1.2rem 0; display: none; } .file-row { display: flex; align-items: center; gap: 0.8rem; padding: 0.7rem 0.5rem; border-bottom: 1px solid #efe4d0; flex-wrap: wrap; } .file-row:last-child { border-bottom: none; } .orig { font-family: 'Consolas', 'Monaco', monospace; background: #f3ecdd; padding: 0.3rem 0.8rem; border-radius: 20px; font-size: 0.85rem; color: #5c4a30; word-break: break-all; flex: 1; min-width: 130px; } .arrow { color: #b39260; font-weight: bold; font-size: 1.2rem; } .newname { font-family: 'Consolas', 'Monaco', monospace; background: #e2edda; padding: 0.3rem 0.8rem; border-radius: 20px; font-size: 0.85rem; color: #2d4a1e; font-weight: 600; word-break: break-all; flex: 1; min-width: 130px; text-align: right; } .newname.missing { background: #ffe8e0; color: #a04030; font-style: italic; } .meta-detail { font-size: 0.7rem; color: #8b7356; background: #f9f4ea; padding: 0.15rem 0.6rem; border-radius: 12px; white-space: nowrap; } .actions { display: flex; gap: 0.8rem; flex-wrap: wrap; align-items: center; } button { padding: 0.8rem 1.8rem; border-radius: 2rem; border: 1px solid #d4bc92; background: #f1e7d4; color: #4d3a22; font-weight: 600; cursor: pointer; font-size: 0.95rem; transition: 0.2s; display: flex; align-items: center; gap: 0.3rem; } button:hover:not(:disabled) { background: #e5d3b0; } button.primary { background: #c7a16b; border-color: #9c7a4a; color: #fffdf5; box-shadow: 0 4px 12px rgba(160,120,50,0.2); } button.primary:hover:not(:disabled) { background: #b38845; } button:disabled { opacity: 0.45; cursor: not-allowed; } .status { margin-left: auto; font-size: 0.9rem; color: #6b5d48; background: #f6f1e6; padding: 0.4rem 1.2rem; border-radius: 20px; } .footer { margin-top: 1rem; font-size: 0.8rem; color: #9b8b74; text-align: center; } </style> </head> <body> <div class="container"> <h1>🎵 FLAC 元数据重命名 <span class="badge">标题-作曲家</span></h1> <div class="desc">读取 FLAC 文件内嵌的歌曲标题 (TITLE) 和作曲家 (COMPOSER/ARTIST) 标签,自动重命名为 "标题-作曲家.flac"</div> <div class="drop-area" id="dropZone"> <div class="icon">📂</div> <div class="main-text">点击选择或拖拽 FLAC 文件</div> <div class="sub-text">支持批量 · 读取内嵌元数据标签</div> </div> <input type="file" id="fileInput" accept=".flac,audio/flac" multiple> <div class="file-panel" id="filePanel"> <div id="fileList"></div> </div> <div class="actions"> <button id="clearBtn" disabled>🗑️ 清空</button> <button id="renameBtn" class="primary" disabled>💾 下载重命名文件</button> <span class="status" id="status">等待添加 FLAC 文件...</span> </div> <div class="footer">* 浏览器安全限制:通过下载方式生成新文件名,原文件不会被修改</div> </div> <script> (function() { const dropZone = document.getElementById('dropZone'); const fileInput = document.getElementById('fileInput'); const filePanel = document.getElementById('filePanel'); const fileListDiv = document.getElementById('fileList'); const clearBtn = document.getElementById('clearBtn'); const renameBtn = document.getElementById('renameBtn'); const statusEl = document.getElementById('status'); let filesData = []; // { file, title, composer, newName, error } // ========== 解析 FLAC 内嵌元数据 (Vorbis Comment) ========== async function readFlacMetadata(file) { return new Promise((resolve) => { const reader = new FileReader(); reader.onload = (e) => { try { const buf = e.target.result; const view = new DataView(buf); if (buf.byteLength < 4) return resolve({ title: null, composer: null, error: '文件过小' }); const magic = String.fromCharCode(view.getUint8(0), view.getUint8(1), view.getUint8(2), view.getUint8(3)); if (magic !== 'fLaC') return resolve({ title: null, composer: null, error: '非FLAC文件' }); let offset = 4; let lastBlock = false; let title = null; let composer = null; while (offset < buf.byteLength && !lastBlock) { if (offset + 4 > buf.byteLength) break; const header = view.getUint8(offset); lastBlock = (header & 0x80) !== 0; const blockType = header & 0x7F; const blockSize = (view.getUint8(offset+1) << 16) | (view.getUint8(offset+2) << 8) | view.getUint8(offset+3); offset += 4; if (blockType === 4 && offset + blockSize <= buf.byteLength) { // VORBIS_COMMENT 块 const block = new Uint8Array(buf, offset, blockSize); const dec = new TextDecoder('utf-8'); if (block.length < 4) { offset += blockSize; continue; } const vendorLen = block[0] | (block[1]<<8) | (block[2]<<16) | (block[3]<<24); let pos = 4 + vendorLen; if (pos + 4 > block.length) { offset += blockSize; continue; } const numComments = block[pos] | (block[pos+1]<<8) | (block[pos+2]<<16) | (block[pos+3]<<24); pos += 4; for (let i = 0; i < numComments; i++) { if (pos + 4 > block.length) break; const commentLen = block[pos] | (block[pos+1]<<8) | (block[pos+2]<<16) | (block[pos+3]<<24); pos += 4; if (pos + commentLen > block.length) break; const commentStr = dec.decode(block.slice(pos, pos + commentLen)); pos += commentLen; const eqIdx = commentStr.indexOf('='); if (eqIdx > 0) { const key = commentStr.substring(0, eqIdx).toUpperCase().trim(); const val = commentStr.substring(eqIdx + 1).trim(); if (key === 'TITLE' && !title) title = val; // 优先 COMPOSER,其次 ARTIST if (key === 'COMPOSER' && !composer) composer = val; if (key === 'ARTIST' && !composer) composer = val; } } // 找到注释块即可退出 break; } offset += blockSize; } resolve({ title: title || null, composer: composer || null, error: null }); } catch (err) { resolve({ title: null, composer: null, error: err.message }); } }; reader.onerror = () => resolve({ title: null, composer: null, error: '读取失败' }); reader.readAsArrayBuffer(file); }); } // ========== 生成新文件名 ========== function makeNewName(title, composer, origName) { const sanitize = (s) => s.replace(/[\\/:*?"<>|]/g, '_').replace(/\s+/g, ' ').trim().substring(0, 200); const fallback = origName.replace(/\.flac$/i, '') || 'unknown'; const t = (title && title.trim()) ? sanitize(title) : sanitize(fallback); const c = (composer && composer.trim()) ? sanitize(composer) : '未知作曲家'; return `${t}-${c}.flac`; } // ========== 渲染文件列表 ========== function render() { fileListDiv.innerHTML = ''; if (filesData.length === 0) { filePanel.style.display = 'none'; clearBtn.disabled = true; renameBtn.disabled = true; setStatus('📭 暂无文件'); return; } filePanel.style.display = 'block'; clearBtn.disabled = false; renameBtn.disabled = false; filesData.forEach(item => { const row = document.createElement('div'); row.className = 'file-row'; const origSpan = document.createElement('span'); origSpan.className = 'orig'; origSpan.textContent = item.file.name; const arrow = document.createElement('span'); arrow.className = 'arrow'; arrow.textContent = '→'; const newSpan = document.createElement('span'); newSpan.className = 'newname'; if (item.error && !item.title && !item.composer) { newSpan.classList.add('missing'); newSpan.textContent = '⚠ 元数据缺失'; } else { newSpan.textContent = item.newName; } // 显示读取到的标签详情 const metaDetail = document.createElement('span'); metaDetail.className = 'meta-detail'; const t = item.title || '—'; const c = item.composer || '—'; metaDetail.textContent = `TITLE: ${t} | COMPOSER: ${c}`; row.appendChild(origSpan); row.appendChild(arrow); row.appendChild(newSpan); row.appendChild(metaDetail); fileListDiv.appendChild(row); }); const valid = filesData.filter(f => f.title || f.composer).length; setStatus(`📋 ${filesData.length} 个文件 · ${valid} 个可重命名`); } function setStatus(msg) { statusEl.textContent = msg; } // ========== 处理添加文件 ========== async function addFiles(fileList) { const flacFiles = Array.from(fileList).filter(f => f.name.toLowerCase().endsWith('.flac')); if (flacFiles.length === 0) { setStatus('❌ 请选择 .flac 文件'); return; } setStatus('🔍 正在读取内嵌元数据...'); renameBtn.disabled = true; clearBtn.disabled = true; for (const file of flacFiles) { const meta = await readFlacMetadata(file); const newName = makeNewName(meta.title, meta.composer, file.name); filesData.push({ file, title: meta.title, composer: meta.composer, newName, error: meta.error }); } // 去重 const seen = new Map(); filesData = filesData.filter(item => { const key = `${item.file.name}|${item.file.size}|${item.file.lastModified}`; if (seen.has(key)) return false; seen.set(key, true); return true; }); render(); setStatus('✅ 元数据读取完成'); } // ========== 执行下载重命名 ========== async function doRename() { const valid = filesData.filter(f => f.title || f.composer); if (valid.length === 0) { setStatus('⚠️ 没有可重命名的文件'); return; } setStatus('⏳ 正在下载重命名文件...'); renameBtn.disabled = true; clearBtn.disabled = true; for (const item of valid) { const blob = new Blob([item.file], { type: 'audio/flac' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = item.newName; document.body.appendChild(a); a.click(); document.body.removeChild(a); await new Promise(r => setTimeout(r, 150)); URL.revokeObjectURL(url); } setStatus('🎉 下载完成!原文件未被修改'); renameBtn.disabled = false; clearBtn.disabled = false; } function clearAll() { filesData = []; fileInput.value = ''; render(); setStatus('🧹 已清空'); } // ========== 事件绑定 ========== dropZone.addEventListener('click', () => fileInput.click()); dropZone.addEventListener('dragover', e => { e.preventDefault(); dropZone.classList.add('active'); }); dropZone.addEventListener('dragleave', e => { e.preventDefault(); dropZone.classList.remove('active'); }); dropZone.addEventListener('drop', e => { e.preventDefault(); dropZone.classList.remove('active'); if (e.dataTransfer.files.length) addFiles(e.dataTransfer.files); }); fileInput.addEventListener('change', e => { if (e.target.files.length) addFiles(e.target.files); }); clearBtn.addEventListener('click', clearAll); renameBtn.addEventListener('click', doRename); render(); setStatus('📎 选择或拖入 FLAC 文件以读取内嵌元数据'); })(); </script> </body> </html> 1 个帖子 - 1 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-07 11:21:07+08:00 · tech

这个世界上真的存在“绝对”吗? 小时候,我们习惯用绝对的眼光看待世界。好人就是好人,坏人就是坏人;成功就是成功,失败就是失败;爱就是爱,不爱就是不爱。然而随着年龄增长,我渐渐发现,世界远没有那么简单。 我越来越相信,世界上没有绝对的任何事物。 即使是被人们奉为真理的自然定律,也有自己的适用范围。牛顿力学曾经被认为能够解释所有物体的运动规律,但当人类进入微观世界和接近光速的领域后,人们发现它并非绝对正确,而是在一定条件下成立。所谓真理,往往不是绝对,而是在特定条件下最接近真实的解释。 数学似乎是最接近绝对的学科,但即使在数学应用中,人们也常常无法得到绝对准确的结果。 例如最小二乘法。当实验数据存在误差时,人们无法找到一条穿过所有数据点的直线,于是只能寻找一条让总体误差最小的曲线。它并不是绝对正确的答案,而是在现有条件下最接近真实的答案。 最初看到这个方法时,我想到的并不是数学,而是人们面对世界时的态度。 如果执着于让曲线经过每一个点,那么任何偏差都无法被容忍;任何误差都必须被消除;任何例外都不应该存在。然而现实恰恰充满偏差、误差和例外。正因为如此,“经过每一个点”反而成为一个过于绝对、几乎无法完成的目标。 于是数学家放弃了对绝对正确的追求,转而寻找整体上最合理的结果。 这让我明白,很多时候我们真正需要的不是完美,而是平衡;不是绝对正确,而是最接近真实。 爱情更是如此。 很多人都向往永远在一起,但“永远”本身就是一个充满矛盾的词。说永远在一起,似乎是一种太过绝对的承诺,因为没有人能够预知未来;可如果从不谈永远,又好像显得爱得不够深。 后来我发现,这其实是人们对爱情的误解。 说“永远在一起”,表达的是对未来最美好的期待;而真正成熟的人也明白,未来充满变数,没有谁能够掌控一切。于是爱情总是在理智与感性之间徘徊:太理智,爱情会失去温度;太感性,又容易失去方向。 爱的深浅从来不取决于是否说出“永远”,而在于是否愿意在每一个当下认真地选择对方。 爱情也像最小二乘法一样。两个人来自不同的成长环境,拥有不同的性格、习惯与追求,就像分散的数据点一样,不可能时时刻刻完全重合。如果要求对方满足自己所有期待,要求关系没有任何矛盾和遗憾,就如同要求一条曲线经过每一个点一样,是一种近乎绝对主义的幻想。 真正长久的感情,不是让彼此完全一致,而是在一次次偏差、误解和分歧中不断调整方向,让关系整体朝着更好的方向发展。 相爱的人寻找的从来不是绝对完美,而是属于彼此的平衡点。 人性也是如此。 没有绝对的好人,也没有绝对的坏人。善良的人可能会犯错,犯错的人也可能拥有善意。每个人都生活在复杂的环境中,都有自己的立场、经历和局限。 幸福与痛苦、成功与失败,同样不是绝对的概念。 今天被称为成功的事情,也许会在未来暴露出新的问题;今天以为的失败,也许会在多年之后成为人生的重要转折。很多事情在发生的那一刻并没有最终答案,它们只是漫长过程中的一个阶段。 失败未必是真正的失败,成功也未必是最终的成功。人生不是一次考试,没有固定的标准答案,更没有提前写好的结局。 也许,人类之所以迷恋“绝对”,是因为绝对能够带来安全感。它让世界看起来简单,让答案显得明确。然而真实的世界却充满变化、矛盾与不确定。 接受没有绝对,并不意味着放弃原则,而是承认世界的复杂性。我们可以坚持自己的信念,但也要允许自己修正观点;我们可以做出判断,但也要明白任何判断都存在局限。 世界不是非黑即白,而是由无数层灰色构成。 真正的成熟,不是执着于寻找绝对的答案,而是在不确定中保持思考,在复杂中寻找平衡,在无法得到完美结果时,依然努力靠近真实。 因此,我认为,世界上最接近绝对的,也许恰恰是“没有绝对”这件事。 而人生、爱情和成长,都像一场巨大的最小二乘拟合。我们无法让曲线经过生命中的每一个点,也无法满足所有期待、避免所有遗憾。但我们可以在不断修正中,让误差越来越小,让自己无限接近那个更真实、更完整的答案。 没有绝对的成功,也没有绝对的失败;没有绝对正确的选择,也没有绝对错误的道路。我们所经历的一切,都只是人生这条曲线上的一个坐标点。 正因为如此,我们不能停下脚步。 当下的答案不是终点,当下的遗憾也不是终点。每一次跌倒、每一次迷茫、每一次重新出发,都是对人生轨迹的一次修正。 人生从来不是一道已经算完的题,而是一篇仍在书写的文章。 人生,永远未完待续。 最有有个问题:当理智的意识到自己爱的不理智,到底是理智还是不理智? 2 个帖子 - 2 位参与者 阅读完整话题

IT之家 · 2026-06-06 18:45:15+08:00 · tech

IT之家 6 月 6 日消息,一汽红旗今日宣布,红旗首款硬派越野正式命名为“红旗 G919”。 官方给出了命名的含义,IT之家汇总如下: “G ”承“国车”脊梁、守护万里征途 “9”铸旗舰定位、彰显尊享智造 “1”流产品性能、臻享驾乘体验 “9”寓全维服务、久久相伴同行 这款新车曾在 2026 北京车展亮相,号称“中式美学赋能,硬核气场拉满,解锁民族越野新姿态”。新车配备矩形大灯,采用当下流行的“ 方盒子 ”造型设计。 新车配备了防撞杠、隔挡绳、拖车钩、车顶平台、探照灯、小书包以及越野 AT 轮胎等,进一步提升了硬核氛围;此外,车顶配备有激光雷达,预计将提供高阶辅助驾驶系统。

LinuxDo 最新话题 · 2026-06-04 16:28:44+08:00 · tech

今天重命名了项目文件夹,结果发现CodexApp直接不认新文件夹了,而且还不能重新修改老项目的文件夹位置。 于是干脆让Codex写了一个Python程序,可以把一个项目的对话文件迁移到另一个项目。 其中类型为异常项目的就是原文件夹已经不存在的项目。 选择项目后可以选择自定义新项目文件夹或合并到已有项目,如下图。 合并完后如果状态还是不存在只要在CodexApp里 手动添加 这个项目文件夹就可以,对话记录会一并出现,如下图。 使用方法 在有Python环境的电脑上直接运行 codex_project_manager_tui.cmd outputs.zip (47.7 KB) 1 个帖子 - 1 位参与者 阅读完整话题

cnBeta全文版 · 2026-06-04 15:05:10+08:00 · tech

在 Build 2026 开发者大会上微软宣布将 WinUI 3 框架重命名为 WinUI,同时微软开始鼓励开发者使用 WinUI 框架为 Windows 11 开发高性能原生应用,微软释放的信号似乎是不要再纵容基于 Web 技术的劣质应用继续拖累 Windows 11,当然原本微软也是制造 Web 垃圾的一员。 鼓励开发者开发原生应用: 目前 Windows 平台充斥着大量基于 Electron、React Native 或基于 WebView 2 Runtime 打包的应用,这些应用占用的内存比较高、启动速度慢、界面风格也存在差异,当然最重要的还是性能体验非常差。例如微软自家开发的基于 WebView2 Runtime 的 Outlook 体验就非常糟糕。 不过从今年开始微软已经决定在 Windows 11 中抛弃基于 Web 技术的应用,转而采用更加可靠的原生架构,例如开始菜单 (推荐部分),所以微软也开始鼓励开发者也采用原生框架开发体验更好的原生应用,只不过对开发者而言采用 Electron 可以降低开发成本,开发者是否愿意遵从微软的建议开发原生应用还需要观察,毕竟微软的态度变化非常快。 为什么要将 WinUI 3 更名为 WinUI: 科技以更名为本,所以现在微软宣布将 Windows 应用生产级平台 WinUI 3 开发框架更名为 WinUI,更名的原因有可能是微软觉得以 2 3 4 这种版本号发布可能会让开发者担心,即微软不停地发布新框架,开发者需要不断地适配新框架,要是微软进行破坏性的大改动,那开发者适配成本就会大幅度增加。 所以微软强调基于长期稳定性考虑,WinUI 框架正式取消版本号,微软没有计划在未来开发新的 UI 框架,也不会进行破坏性的大改动,让开发者们可以安心专注于基于 WinUI 框架进行应用开发,为应用带来更好的使用体验。 微软还透露 Windows 11 更多系统级 Shell 组件将会陆续迁移到 WinUI,实现全平台界面风格和性能的一致性,但微软也不会排斥其他框架,只不过微软建议开发者使用 WinUI 而不是 Electron 等框架。 查看评论

cnBeta全文版 · 2026-06-04 14:05:32+08:00 · tech

三星今年计划推出两款书本式折叠屏智能手机——Galaxy Z Fold 8和Galaxy Z Fold8 Ultra的消息得到进一步证实。Galaxy Z Fold8 Ultra被视为去年推出的Galaxy Z Fold7的继任者,其更大的电池容量和更薄的机身设计标志着三星在折叠屏技术领域持续进步。 尽管三星官方尚未就此发表任何声明,但蓝牙技术联盟(Bluetooth SIG)的认证数据库已明确列出"Samsung Galaxy Z Fold8 Ultra"这一型号,证实该命名真实存在。 此前,Fold8曾被称为Fold8 Wide,而Fold8 Ultra则被称为Fold8,上个月发生的命名变更曾引发一定混淆。此次蓝牙SIG的认证为Fold8 Ultra的命名提供了权威确认。虽然认证数据库未披露Fold8 Ultra的具体规格参数,但暴露了该手机的五个型号编号:SC-56G、SCG39、SM-F976C、SM-F976Q和SM-F976Z。 据传闻,三星Galaxy Z Fold8 Ultra将搭载5000毫安时电池,支持45W有线充电,重量为215克。该手机展开后的厚度仅为4.1毫米,比其前身Galaxy Z Fold7薄0.1毫米。而标准版Galaxy Z Fold8则将配备4800毫安时电池,充电速度与Ultra版本相同,重量为201克,并搭载新的5000万像素摄像头,原生支持2400万像素模式。 关于屏幕折痕问题,传闻称Fold8和Fold8 Ultra的显示折痕将尽可能微小,达到与OPPO Find N6相当的水平。 三星预计将于7月22日在伦敦举行发布会, 一同推出两款折叠屏智能手机。 查看评论

LinuxDo 最新话题 · 2026-06-04 12:16:04+08:00 · tech

来源: 3K Star 被质疑刷星,然后我收到了这辈子最好的一个PR 搞七捻三 [screencapture-file-Users-haleclipse-Downloads-p-1-html-2026-06-04-112630] 发图是因为AI润色啊喂喵 当然要遵守规则啦啦啦 如何: 改你的开发/执行/git相关skill或是在agents.md中要求 函数名举例: 发送邮件通知 → whisperToSubscribers() 校验数据 → sniffForTrouble() Commit举例: 优化数据库查询索引 → help the database find its glasses before searching the room 添加查询结果缓存 → remember hard work so we don’t compute the same thing twice 1 个帖子 - 1 位参与者 阅读完整话题

IT之家 · 2026-06-03 08:47:00+08:00 · tech

IT之家 6 月 3 日消息,设计师 Andreas Storm 昨日(6 月 2 日)在 X 平台发布推文, 爆料指出苹果 macOS 27 系统名称可能为 Big Bear。 该设计师在 X 平台话题标签 #WWDC26 旁的小图标文件名上,发光 Apple 标识图片文件名包含“ Project_Big_Bear_2026_Hashmoji_only.png ”。 因此该设计师推测苹果可能会以大熊湖(Big Bear Lake)为灵感,命名 macOS 27 系统。 IT之家查询公开资料,大熊湖(Big Bear Lake)是美国加州圣伯纳迪诺山脉的一处著名高山度假胜地,海拔约 2060 米,距离洛杉矶仅约 2 小时车程。 这里以清澈的湖泊、冬季滑雪和夏季山地骑行及徒步而闻名,是南加州人四季皆宜的“后花园”。 大熊湖,图源:Pexels 科技媒体 Appleinsider 表示,在苹果正式发布 macOS 27 系统前,以上信息仅为佐证推测,苹果公司仍可能选择其他地点名称,包括 Redwood、Mono、Shasta、Almanor、Donner、Oroville 和 Tulare 等。

cnBeta全文版 · 2026-06-03 02:35:18+08:00 · tech

苹果在为全球开发者大会(WWDC)2026 预热的社交媒体物料中,疑似提前埋下了下一代 macOS 27 命名的线索,引发业界关注。据介绍,一位名为 Andreas Storm 的设计师在社交平台 X 上发现,在 #WWDC26 等话题标签旁边显示的苹果发光 Logo 小图标(所谓“hashmoji”)本身并不特别,但其底层图片文件名却颇为耐人寻味。 该图片文件名被标注为“Project_Big_Bear_2026_Hashmoji_only.png”.在 OS 命名上,苹果近年来一直采用加州著名地名作为 macOS 正式版本名称,例如 macOS Tahoe 就源自加州的太浩湖(Lake Tahoe)。报道指出,在这一命名传统下,同样位于加州南部圣贝纳迪诺山脉的 Big Bear Lake(大熊湖),无论从地理位置还是知名度来看,都十分符合苹果的既有命名逻辑,因此“Big Bear”被认为是 macOS 27 的热门候选名称之一。 不过,仍有分析认为,这一名称出现在文件名中,可能只是苹果内部项目代号意外“外露”,并不必然对应最终的市场推广名称。此前有苹果高管在采访中提到,苹果在产品开发阶段会长期使用内部代号,而面向市场的正式名称往往要到发布前才在公司内部有限范围内确定。在此背景下,也不排除苹果有意利用这一“泄露”制造话题或刻意放出的“烟雾弹”。 AppleInsider 指出,苹果非常清楚外界对其未来产品动向的高度敏感和“挖线索”的热情,因此类似命名线索究竟是无心疏漏还是精心设计,目前尚难下结论。如果“Big Bear”最终未被采用,苹果仍有大量加州地名可供选择,包括编辑提到的 Redwood、Mono、Shasta、Almanor、Donner、Oroville、Tulare 等多个湖泊或地标名称,均可能成为 macOS 27 或后续版本的候选名字。 当前距离 WWDC 主旨演讲还有一周时间,macOS 27 的正式命名预计将由 Craig Federighi 按照惯例在发布会上“揭晓”,届时“Project Big Bear”究竟是内部代号、营销伏笔,还是一次成功的“障眼法”,也将水落石出。 查看评论

cnBeta全文版 · 2026-06-02 13:35:33+08:00 · tech

6月2日,近日,有消费者发现,以宗馥莉英文名命名的“KELLYONE”品牌推出了全新产品“果然啵啵”混合果汁碳酸饮料。目前果然啵啵已在江苏、浙江、上海等地的叮咚买菜、小象超市、全家便利店、喜士多便利店等渠道售卖。产品共有柠檬、西柚两个口味,300ml的“果然啵啵”售价约3元,600ml的售价约6元。 据公开信息,2016年宗馥莉在宏胜集团创立了以自己英文名Kelly命名的自有品牌KELLYONE,此后相继推出了茶饮料“一茶”、 气泡水“生气啵啵”等产品,曾邀请陈坤、王一博等明星代言。 去年7月,KELLYONE传出线上店铺停摆、所有商品下架的消息。截至目前,《BUG》栏目在淘宝、抖音等平台已无法搜索到KELLYONE相关店铺信息。 对于该新品是否意味着“KELLYONE”将再被重视,《BUG》栏目致电宏胜饮料集团,截至发稿前未获回应。 查看评论

cnBeta全文版 · 2026-06-01 13:05:17+08:00 · tech

微软的 OneDrive 云存储服务提供离线访问、已知文件夹移动、按需文件下载、回收站 / 防止勒索软件等诸多功能,微软也在持续为 OneDrive 提供更多新功能,例如 Microsoft 365 团队已经预告将在 2026 年 6 月为用户提供基于人工智能的文件重命名功能,该功能可以分析文件内容提供描述式标题。 新的建议重命名功能: 这项新功能名为建议重命名,功能本身由 Microsoft Copilot 人工智能助手提供,人工智能将首先检查文件内容然后再提供描述性强且清晰易懂的文件名,这意味着文件名实际上具有上下文感知能力。在实际操作时人工智能将提供 3 个不同的文件名建议,用户只需要点击自己喜欢的文件名,当然用户也可以忽略建议直接保留原文件名。 建议重命名功能将在用户重命名文件时自动弹出建议的文件名,人工智能助手会在后台自动扫描文件并给出建议,用户没有准备对文件重命名时人工智能助手自然也会保持安静,不过实际建议的文件名效果怎么样还需要等待 6 月份后微软上线这项新功能后进行测试。 最后目前这项功能可能仅会在 Microsoft OneDrive 网页版中提供,考虑到 Microsoft Copilot 在桌面版应用中的实际功能,可能短时间内微软不会在桌面版 OneDrive 中提供此类重命名建议功能。 支持扫描哪些文件给出建议: Microsoft Word / DOCX Microsoft Excel / XLSX Microsoft PowerPoint / PPTX PDF 文档格式 Markdown / MD 文档 常见图片格式如 PNG / JPEG / BMP / WEBP 等 查看评论

IT之家 · 2026-06-01 07:14:58+08:00 · tech

IT之家 6 月 1 日消息,外媒 SAMMobile 发文,称三星今年推出的“宽折叠”预计将被命名为 Galaxy Z Fold 8 Ultra,而非此前传闻的 Galaxy Z Fold 8 Wide,该公司希望通过如此命名来强调产品战略属性。 事实上,三星已在旗下大量设备中采用“Ultra”命名,例如 Galaxy S26 Ultra、 Galaxy Tab S11 Ultra 等。本次阔折叠手机被命名为“Galaxy Z Fold 8 Ultra”预计是三星希望能够以此让消费者更明晰产品定位,帮助他们在苹果的首款折叠手机(可能被命名为 iPhone Fold 或 iPhone Ultra)之间作出选择。 基于目前曝光的信息,该机后置双摄,分别是 5000 万像素主摄和 5000 万像素超广角,没有长焦;电池为 4800mAh,支持 45W 充电,内屏为 7.6 英寸、4:3 比例,整机重量约 200 克。

LinuxDo 最新话题 · 2026-05-30 21:34:38+08:00 · tech

好奇一下各位佬命名的时候是喜欢怎么命名的 虽然一般是看语言的,但是这里是让佬挑自己喜欢的(如果语言不限制第一会选什么) 解释一下 驼峰命名: CamelCase这样的(每一个单词的首字母都大写) 蛇形命名: snake_case这样的(用下划线串起来) 脊柱命名: spinal-case这样的(用短横线连起来) 驼峰命名 蛇形命名 脊柱命名 点击以查看投票。 26 个帖子 - 19 位参与者 阅读完整话题

cnBeta全文版 · 2026-05-30 15:06:24+08:00 · tech

微软终于在2026年5月发布的可选更新KB5089573中为Windows 11用户提供了自定义本地用户配置文件夹名称的功能,彻底改变了长期以来系统自动截取电子邮件地址前五个字母作为文件夹名的做法。这项备受期待的改进正式告别了用户对系统自动生成的奇怪文件夹名称的困扰,但该功能仅在设备初始设置阶段可用,现有用户无法享受这一便利。 在Windows 11系统中,默认用户文件夹是在C:Users路径下创建的个人目录,用于存储文档、下载内容、图片及其他配置文件数据,是电脑上最重要的文件夹之一。此前,当用户在安装Windows 11时使用微软账户登录,系统会自动提取电子邮件地址的前五个字符作为用户文件夹名称。例如,邮箱地址为 [email protected] 的用户,其文件夹会被命名为"abhij",这种毫无意义的缩写让许多用户感到困扰。对于开发者和系统管理员而言,这种截断命名方式还会引发实际技术问题,因为许多传统开发工具、自定义环境变量和自动化构建脚本依赖特定的目录结构,不可预测的截断用户名路径可能导致脚本无法定位本地文件,迫使开发人员手动重写整个工作空间的路径定义。 新版本在设备名称页面增加了"用户文件夹名称"选项,用户可以在Windows 11安装过程中自定义该名称。微软在发布说明中指出,用户现在可以在Windows安装期间的设备名称页面选择自定义用户文件夹名称,这一更新使得在设置阶段选择自定义名称变得更加容易,如果跳过此步骤,Windows将使用默认文件夹名称并正常继续安装,用户文件夹名称必须遵循Windows标准命名要求。该功能最早于2026年3月在Windows 11预览版Build 26300.8068中悄然推出,如今已从测试阶段毕业,作为可选更新提供给所有正式版用户,并计划在2026年6月的"补丁星期二"安全更新中进行更广泛的推送。 然而,这项更新存在重大限制,用户只能在设备初始设置阶段修改文件夹名称,这意味着对现有用户没有实际益处。对许多人而言,修复文件夹名称的唯一"干净"方法是完全重新安装Windows或购买新电脑,而仅仅为了修复一个名为"abhij"或"john1"的文件夹就清空整个系统设置显然不太合理。微软还为自定义用户文件夹名称增加了若干限制,因为这些文件夹与Windows文件系统深度关联。根据微软官方命名规则,用户不能使用保留字符如< > :"/ | ? *,也不能使用保留系统名称如CON、PRN、AUX、NUL、COM1或LPT1,文件夹名称也不能以空格或句点结尾。虽然Windows技术上允许空格和Unicode字符,但建议使用标准字母的简单名称,如C:UsersAbhijith这样简洁的文件夹路径,比包含空格或符号的名称更不容易在旧版命令行工具、脚本、开发环境或游戏模组中引发问题。 值得注意的是,微软正在使用受控功能推出(Controlled Feature Rollout)逐步发布此功能。即使安装了2026年5月可选更新,新的"用户文件夹名称"字段也可能不会立即在设置过程中出现。因此,现在立即清空电脑重装系统可能仍会遇到相同的五字母截断问题。尽管如此,这仍是Windows 11一项细微但贴心的改进,配合微软正在进行的文件资源管理器可靠性修复以及对原生Windows体验的重新关注,Windows 11终于开始修复长期存在的烦恼问题,而不是仅仅在其之上堆砌更多功能。 查看评论

IT之家 · 2026-05-30 13:22:19+08:00 · tech

IT之家 5 月 30 日消息,科技媒体 Windows Latest 昨日(5 月 29 日)发布博文,报道称在 Windows 11 五月可选更新 KB5089573 中, 微软在新电脑初始设置中,支持用户自定义本地用户文件夹名称。 IT之家援引博文介绍,用户本地文件夹位于 C:\Users\ 下,是文档、下载、图片和个人配置的默认位置。 设备命名页面更新前后对比 Windows 11 用户此前使用微软账号登录之后,通常会取邮箱 ID 前 5 个字符生成文件夹名。若邮箱开头含数字、符号或不完整姓名,最终路径可能显得突兀。 Windows 11 默认用户文件夹示例 Windows Terminal 显示默认用户路径 而在五月可选更新之后,用户在 Windows 11 开箱初始设置环节,可以看到“用户文件夹名称”字段,支持用户自定义调整。 Windows 11 初始设置设备命名页面 微软还保留命名限制,用户不能使用 CON、PRN、AUX、NUL、COM1、LPT1 等系统保留名称,文件夹名也不能以空格或句点结尾。 虽然 Windows 技术上支持空格和 Unicode 字符,但简单英文路径更适合命令行工具、脚本和游戏 Mod。 该名称只能在初始设置阶段修改,已经完成设置的用户无法通过这次更新直接更改现有用户文件夹。对多数人来说,想获得干净路径,仍可能需要重装系统。 设备命名页显示用户文件夹名称字段

cnBeta全文版 · 2026-05-25 20:05:37+08:00 · tech

2026年,一个由中国企业命名的定律,正在全球半导体界引发一场“巨震”。当西方产业界还在为“摩尔定律是否走到尽头”而争论不休时,华为技术有限公司董事、半导体业务部总裁何庭波,在国际电路系统研讨会(ISCAS 2026)上发布了一个全新的技术演进方向——“韬(τ)定律”。 在芯片产业中,传统芯片技术演进的核心逻辑是将晶体管越做越小,但这条路正逼近物理和经济的双重极限。而华为此次公布的定律则是将芯片发展的关注焦点从传统的“几何空间缩微”(把晶体管做小)转向了“时间缩微”(把信号传输时间缩短),通过逻辑折叠等技术,实现半导体与电子系统的持续演进。 过去六年,华为基于这一思路设计并量产了381款芯片。今年秋季,首款完整采用逻辑折叠技术的麒麟芯片将面世。华为预计,到2031年,基于韬(τ)定律的高端芯片晶体管密度将达到1.4纳米制程的同等水平。 但一个更尖锐的问题也摆在了行业面前:韬(τ)定律到底是一个真正的“新定律”,还是在技术受限下的自救营销? “关键点并不在于韬(τ)定律是否真的成为摩尔定律层面上的一个新‘定律’。”一位业内的分析人士表示,韬(τ)定律比起替代摩尔,更重要的信号在于它首次打破了“唯制程论”的桎梏,为产业打开了另外一条可能的发展路径,虽然依旧挑战重重。 摩尔定律的替代品? 过去半个多世纪,摩尔定律驱动着半导体产业的进步。它的核心是几何缩微:每18至24个月,晶体管密度翻一番,性能提升,成本下降。但现在的半导体产业,想要继续依靠缩小尺寸换取性能提升,已经越来越难。 5月25日,何庭波在一篇署名论文《多层电子系统的时间缩微理论》中提到,在大部分历史中,半导体产业只有一件事要做:把晶体管做得更小,但在7nm之后,纯尺寸缩微的回报已经趋于平缓。掩模成本、EUV折旧和设计规则复杂性已将2nm节点的前沿芯片设计预算推至超过十亿美元。 华为提出的“韬(τ)定律”,核心本质在于不再依赖几何尺寸的缩小,而是通过在器件、电路、芯片、系统等各个层面,压缩有效常数τ来实现。 “所有的芯片,他们共同的工作就是搬运数据。之前几何尺度上的优化,主要是用更好的光刻机打印更高密度的电子通路加快。但是现在电子通路的宽度已经跟在上面跑的这个车差不多了,所以会出现漏电以及丢数据的情况,其实就是摩尔定律遇到瓶颈了。”华为一名内部人士对记者表示,时间尺度上的优化,举例来说就像电信号在芯片介质上的传播速度只有它在真空中的50%,但只要在材料学上有突破,换介电系数更好的材料,那么就有提升空间。 但寻求后摩尔时代下的替代方案,华为并不是第一家。此前,英伟达也在系统集成上加大投入,包括NVLink、NVSwitch、CoWoS封装、HBM集成、软件生态系统,以及机架级架构。AMD追求小芯片(chiplet)和先进封装技术,英特尔的Foveros和台积电的SoIC,也代表了各自在垂直集成和三维堆叠方面的努力。苹果的M系列芯片的成功,很大程度上归功于内存的本地化以及硬件与软件的垂直集成。 “3D堆叠、混合键合、光替代铜等,台积电等半导体企业其实都已经在做了。”上海财经大学特聘教授胡延平在一篇署名文章中表示,业界讨论过程中的疑问主要集中在三点:第一点,“韬(τ)定律”是一条与众不同的新路,还是其实大家都会走的路;第二点,这是一条渐进、优化、改良的路,还是一个全新的体系;第三点,这是在换道超车,还是需要攻克更多的基本难关。 他认为,尽管已经有数学测算,但“韬(τ)定律”目前还不是严格意义上的半导体领域的发展定律,只是根据实践提炼出来的测算理论,以及对未来的系统判断和发展预期,和摩尔定律短时间内也无法相提并论。但是从制程延缓、计算架构在变、新的计算系统时空观正在形成等角度来看,“韬(τ)定律”成为定律也不是一点可能都没有。 “制程方面没有亘古不变的定律,能持续有效个十来年就不错了。AI算力需求持续井喷当前,对计算的需求不仅仅在于提高晶体管密度、提升能效比,还包括必须面向SICAS未来架构的加速演进。”胡延平表示,半导体产业的确处在发展历程的重要拐点,这个拐点必须有人发出拐弯信号,有企业做出拐弯动作。走出冯·诺伊曼架构、三进制、类脑计算、光计算、量子计算等不同方向业界都在向前走。包括华为在内的企业,不会停留在路径依赖里。 在何庭波提交的论文中,提到芯片在速度性能方面取得的相当一部分收益,并不是通过新的光刻工艺步骤获得的,而是通过在三维空间中对逻辑分布进行拓扑重组实现的,且该方向可持续。这种方式就像是“将平房升级为摩天大楼”,传统的芯片设计是2D平面的,信号在几百亿个“门限开关”(晶体管)之间穿行,但在摩天大楼中,原本需要长距离水平传输的信号,现在可以“坐电梯”垂直穿越,物理距离被急剧缩短。 这与摩尔定律有着本质不同,因为驱动技术的力量不再是制程的追赶以及单一的光刻节点的突破,而是依赖于在器件、电路、芯片、系统四个层面系统性。正是这种多维度的根本性转变,让半导体产业不得不重新审视未来的演进方向。 产业影响几何? 当游戏规则从“几何空间”变为“时间系统”时,牌桌上的玩家们也在开始担心是否会面临一次残酷的洗牌。在采访中,部分人士对记者表示,这里面有机会,也有挑战。 对于行业而言,韬(τ)定律下,封装技术、新材料、互连架构、系统软件协同设计等过去被视为“配角”的领域,逐步站到了关键位置。任何一家公司,如果能在系统层级设计上实现创新,例如通过先进的3D堆叠、片间互联协议来有效压缩τ值,就有可能在性能上超越采用更先进但成本高昂制程的对手。 这无疑为具备强大系统集成能力的公司,以及国内众多初创的Chiplet和先进封装公司,打开了新的机会窗口。 “在无法获得最先进EUV和领先代工厂服务的情况下,反而让华为卸下了包袱。事实证明,不依赖最先进节点,通过系统级的时间优化,同样可以实现代际性能提升。这直接挑战了前者赖以生存的竞争优势基石。”半导体行业的一位资深人士对记者表示,靠摩尔定律成功的公司,组织架构、人才储备、技术积累和资本配置都是围绕“工艺节点”展开的,擅长的是“把一个功能做到极致”,而τ定律要求的是全栈能力。 何庭波在演讲中也在反复强调从器件到系统的协同优化,华为的“统一总线(UB)”、“HiONE光互联引擎”、“系统折叠”等,无一不是系统级的工程。 但也有产业链企业表现出了担忧。一位半导体上游设备相关负责人对记者表示:目前该理论短期内产业影响有限,但若后续技术路径推进至1纳米以下制程,行业将迎来严峻挑战。 “华为这套技术方案,是在缺失顶尖光刻机的前提下,依托架构、算法等软性技术实现性能等效对标,但该模式无法替代硬件层面的技术攻坚。”上述人士表示,国内外芯片企业发展处境差异显著,海外厂商可借力台积电、三星等先进制程资源,国内企业发展阻力更大,行业发展仍有赖于软硬件领域同步实现技术突破。 此外,理论从提出到成为产业共识,都必然伴随着巨大的风险和现实挑战。摩尔定律之所以成功,不仅仅是因为晶体管密度的提升,更是因为这些改进伴随着经济上可扩展的制造工艺。τ定律目前更像是一个卓越的系统工程学原则,但尚未被证明是一条通用的、普适的经济学法则。当需要大规模量产数百万乃至数千万片芯片,并承受消费级市场的成本压力时,τ缩微的经济账是否能算得过来,仍是巨大未知数。 “韬(τ)定律意味着难度系数在一定程度上更大了。”胡延平表示,设备、制程、工艺、良率乃至散热以及EDA等基础层面的挑战与自我挑战并存。这一定律不是遥遥领先式的官宣,而是对打法的一次融合提炼,对未来的一次勇敢预期,对体系的一次全面拓新。 不过,在他看来,先进制程正在变成“不是唯一”,且制程本身在放缓,从时间角度给了国产芯片、新的计算体系以创新空间。 尽管前路漫漫,荆棘密布,但华为也在用自身的案例来说明这一定律的可行性。何庭波在论文中给出了一组数据,2020年5月至2026年5月期间,华为半导体设计并量产了381颗芯片,服务于移动、AI、汽车、工业和基础设施市场。在整个产品组合中,τ缩微论点经受住了考验。2029年,CPU性能核心频率预计将迈向4GHz及以上,麒麟SoC效率预计在三到五年内在典型使用下将提升1倍以上,AI硬件集成度预计到2035年将增长100倍以上。 她表示,“韬(τ)定律”正在向行业战略家和资本配置者表明,下一笔投资应跟随τ而非节点,产品竞争力不再完全依赖顶尖光刻工艺,芯片封装、内存带宽、互联架构的战略地位,已比肩昔日先进逻辑制程。 对于在成长过程中将“摩尔定律”等同于“进步”的一代工程师而言,这是一个困难的转变。“几何时代事实上已经结束,否认这一事实不是可行的策略。通过缩微实现加速的时代正在让位于通过多层电子系统的τ优化实现加速的时代。”何庭波说。 她在论文的最后对产业界发出了号召,并表示未来六至十年,以τ作为核心研发目标的企业、科研团队与产业生态,将主导后续十年的计算产业发展格局。 “未来十年技术发展框架已然清晰,仍存在诸多待解难题,仅凭单一企业无法攻克。工具链、行业标准、性能基准、器件物理、商业模型等领域,都需要全行业协同共创。”何庭波说。 查看评论

LinuxDo 最新话题 · 2026-05-22 09:59:13+08:00 · tech

看Gemini CLI迁移、新的Antigravity CLI文档配置啥的看得晕晕乎乎的,还有配置文件中的 .gemini 、 .antigravity 和 .gemini/antigravity-cli 令人头大。 卸载了Gemini CLI后发现 .gemini 还在,遂问agy,才知道原来 .antigravity 是Antigravity IDE的配置目录, .gemini 是Antigravity CLI与Gemini CLI的配置目录,谷畜这命名真的诗人啊…… 1 个帖子 - 1 位参与者 阅读完整话题