1. ICQ will stop working from June 26 (icq.com)
ICQ 服务将于 2024年6月26日 正式停止运营。
用户可转而使用以下替代产品:
- VK Messenger:用于与朋友聊天。
- VK WorkSpace:用于与同事沟通。
26 篇热帖
ICQ 服务将于 2024年6月26日 正式停止运营。
用户可转而使用以下替代产品:
摘要: 本文探讨了Go语言基础设施(模块校验数据库和代理)可能被滥用存储非Go代码的问题。
sum.golang.org)时,发现大量来自非Go项目(如Homebrew的Ruby项目、Rust项目)的记录。经调查,这些项目本身不包含Go代码,但仍出现在数据库中。go命令查询一个尚未记录在日志中的模块时,校验数据库会自动尝试从源头服务器(如GitHub)获取该模块。通过向/lookup端点(例如 sum.golang.org/lookup/module@version)发起请求,即可触发此机制,使Go基础设施下载并索引任意指定的Git仓库(或其他支持的版本控制系统仓库),无论其是否为Go项目。proxy.golang.org)。/@latest)获取版本信息并下载其压缩包。数据被永久存储在Go的公共基础设施中。核心定位 Mp3tag 是一款功能强大且易于使用的音频文件元数据编辑工具。它支持对多种格式的音频文件进行批量的标签编辑。
主要功能
支持的格式 涵盖众多主流音频格式,包括但不限于:MP3、FLAC、AAC、ALAC、AIFF、DSF、APE、OGG Vorbis、Opus、WMA、WAV、WebM 以及 MPEG-4 系列容器(如 M4A、M4B、MP4)。
近期版本动态 该软件持续更新,近期主要版本包括:
扩散模型是一类强大的生成模型,其核心思想是通过一个逐步向数据中添加噪声的前向过程,以及一个学习逐步去除噪声的反向过程,来从复杂分布中生成新样本。
生成建模的目标是学习数据分布 $p(\mathbf{x})$ 并从中采样。与难以训练且易发生模式崩溃的生成对抗网络(GAN)以及受限于可逆映射要求的标准化流不同,扩散模型通过随机地将数据映射到噪声分布(如高斯分布)来工作。
去噪扩散概率模型(DDPM) 是经典范式:
DDPM 需要数百至数千步采样,速度慢。研究发现了扩散模型与微分方程的深刻联系:
为了生成特定类别的内容(如“猫”),可引入条件 $y$(如文本嵌入):
扩散模型已扩展到多个领域:
模型的训练依赖于大规模数据集(如 LAION-5B)。其合法性及对艺术家生计的影响引发了广泛伦理讨论。一些模型(如 Adobe Firefly)开始使用授权数据或允许艺术家退出训练。同时,也出现了针对图像模型的“数据投毒”攻击方法(如 Nightshade)。
文章批评谷歌为追赶竞争对手而仓促推出AI搜索功能,导致出现错误并损害用户体验。文章指出,分析师认为谷歌必须快速行动,即使牺牲短期用户体验;但作者反驳称,谷歌搜索质量此前已下滑,此举进一步破坏了其25年来积累的用户信任。作者强调,谷歌本有选择权,却选择以牺牲产品信誉为代价,避免被视作“落后”。文章认为,在竞争对手发布不可靠内容时,保持落后反而是明智之举。
JetBrains发布了专为Rust编程语言设计的IDE——RustRover。该产品集成了Rust工具链,并提供可选的AI辅助功能(需通过插件和订阅)。
RustRover旨在简化Rust开发体验并释放其全部潜力,提供实时反馈、代码建议、简化的工具链管理和团队协作等功能。该IDE于5月21日公布。
JetBrains为此推出了新的许可模式:商业付费许可和面向个人非商业用途的免费许可。
此前,JetBrains通过开源的IntelliJ Rust插件支持Rust开发。RustRover作为专属产品,旨在为日益增长的Rust开发者社区提供更强大的功能。此外,JetBrains也在测试支持Rust的多语言编辑器JetBrains Fleet。
RustRover的关键功能包括:
RustRover在功能和定位上与JetBrains的其他语言特定IDE(如PyCharm、GoLand、RubyMine)相似。所有这些IDE均支持JetBrains AI Assistant插件,该插件通过订阅提供AI驱动的代码建议、代码解释和代码对话功能。
mistral-finetune 是一个轻量级代码库,用于对 Mistral 模型进行高效且低内存消耗的微调。它基于 LoRA(低秩适配) 技术,仅训练模型中约 1-2% 的附加权重(以低秩矩阵扰动形式),其余大部分权重保持冻结。
seq_len 设置为 ≤ 8192。lr=1e-6。seq_len 设置为 ≤ 16384。mistral-common 升级至 ≥ 1.3.1 版本。git clone https://github.com/mistralai/mistral-finetune.git
pip install -r requirements.txt
model_id_or_path 设置为下载目录的路径。数据必须为 JSONL 格式,并严格遵循以下两种类型之一:
text 字段。{"text": "文档中的文本内容"}
messages 列表,每个消息含 role(user, assistant, system)和 content。损失计算仅针对 assistant 角色的内容。tool_calls 和 tool 角色。需确保 tool_calls 中的 id 和 tool_call_id 为恰好 9 个字符的随机字符串。重要:数据格式错误(如对话以 user 角色结尾)会导致训练效率下降。可使用提供的工具(如 ./utils/reformat_data.py)进行校正。
python -m utils.validate_data --train_yaml <你的yaml配置文件路径>
此脚本会检查数据格式并估算训练时间。torchrun --nproc-per-node <GPU数量> --master_port $RANDOM -m train <你的yaml配置文件路径>
model_id_or_path:基础模型路径。seq_len:序列长度,影响训练效率和内存。batch_size:每个 GPU 的批处理大小。max_steps:最大训练步数。optim.lr:学习率。lora.rank:LoRA 适配器的秩(推荐 ≤ 64)。data.instruct_data:训练数据路径,支持多数据源及权重设置。data.eval_instruct_data:评估数据路径。wandb.project:用于 Weights & Biases 日志记录的项目名称。训练完成后,可使用 mistral-inference 库进行推理:
pip install mistral_inference
mistral-chat <模型目录> --lora_path <LoRA权重文件路径> --instruct
batch_size 和 seq_len。Lapis 是一个使用 Lua(或 MoonScript)构建 Web 应用程序的框架,主要面向 OpenResty(一个运行在定制化 Nginx 上的高性能 Web 平台)。它同时也兼容任何现代版本的 Lua 环境。
Lapis 开箱即用,提供了构建网站所需的全面功能:
使用简洁的语法定义 URL 模式和处理函数,并可通过命名路由生成链接。
-- Lua 示例
app:match("/", function(self)
return "Hello world!"
end)
通过继承 Model 类,为数据库表提供强大的抽象层,简化增删改查操作。
-- 定义模型并操作数据
local Users = Model:extend("users")
local user = Users:create({ name = "Leaf", age = 6 })
user:update({ age = 10 })
user:delete()
支持两种模板编写方式:
Widget 类支持继承、混入,并通过 HTML 构建器语法安全地生成 HTML(自动转义,防止 XSS 攻击)。文章提供了一个综合示例,展示了如何将路由、模型查询、CSRF 防护和表单处理集成在一起,构建一个完整的用户管理功能。
Lapis 兼容大多数现有的 Lua 库,并有一些官方或推荐的配套库,例如:
lapis-eswidget:前端资源聚合。lapis-console:浏览器内的交互式控制台。lapis-exceptions:异常跟踪。web_sanitize:HTML 净化。magick:图像处理。cloud_storage:云存储支持。Lapis 的运行依赖于 Lua、LPeg 和 OpenResty 项目。它以 MIT 许可证 发布。
.99结尾定价策略通过扭曲数字感知、利用锚定效应和左位数效应,使消费者低估实际价格,从而增加购买可能性和消费总额,同时削弱预算控制。这些心理机制运作于潜意识层面,即使消费者了解该策略,也难以完全抵抗其影响。
本文探讨了人类如何将思维外部化到各种认知工具中,以及这些工具如何通过空间和视觉元素组织与传达思想。
图表依赖一组基本图形元素及其空间排列来构建意义:
认知工具(图表、手势、环境设计)通过有组织的空间排列和视觉元素,将抽象思维具象化。它们简化复杂性,揭示关系,支持推理与沟通,并深深根植于空间中的行动之中。
文章内容显示在访问x.com时出现了错误。系统提示用户无需担忧,可以再次尝试访问。同时指出,隐私相关扩展可能是导致问题的原因,并建议用户禁用这些扩展后重试。
ACATS(自动化客户账户转移服务)是一个技术-法律系统,用于协调经纪公司之间的客户账户资产转移。它是金融基础设施的关键部分,通过标准化流程减少操作风险,简化了原本复杂的多机构账本更新过程。在转移中,资产本质上是电子记录(如电子表格条目),ACATS通过集中化网络统一操作,替代了传统的手动对接方式。
经纪公司由FINRA(金融行业监管局)监管,FINRA作为自律组织(SRO),制定了规则以保障客户资产转移的顺利进行。核心规则是FINRA Rule 11870,要求经纪公司必须快速配合客户的转移请求,不能无故阻挠。ACATS在此基础上运作,旨在解决小经纪公司拖延或拒绝转移资产的历史问题。
/s/ John Q. Public),甚至由经纪公司员工代签。ACATS的设计为追求效率,导致安全措施薄弱:
FINRA发布监管通知,建议经纪公司加强异常检测(如追踪频繁失败的转移请求)。然而,系统性问题难以根治:
ACATS是金融系统的重要支柱,通过自动化提升转移效率,但其信任模型和时间压力创造了欺诈机会。尽管系统设计如此运作,且资产最终会得到保障,但客户体验可能受损。当前缓解措施依赖机构自律和逐步改进,但核心漏洞依然存在。
Spot 是一个为 Go 语言设计的、简单、跨平台、响应式的桌面 GUI 工具包,旨在使用原生控件并提供一致的跨平台 API。它的核心理念是引入类似 Web 领域中“虚拟 DOM”或 React 的响应式模型到桌面应用开发中。
核心特性
go-fltk 的 FLTK 后端(用于非 macOS 系统)和基于 gocoa 的 Cocoa 后端(用于 macOS),未来计划改进 Windows 支持。UseState 等钩子管理状态,无需手动操作 UI 更新。基本用法
通过一个简单的“计数器”示例展示了其用法:使用 spot.MountFn 定义一个渲染函数,在其中利用 spot.UseState 管理状态,并返回一个包含 ui.Window 和 ui.Button 的组件树。按钮点击通过 setCounter 函数更新状态,触发 UI 重新渲染。
关键概念
Make(创建组件实例)、Render(渲染组件)、Build(构建虚拟 UI 树)、Mount(将虚拟树挂载为真实控件)、Update(更新已挂载的控件树)。扩展性 开发者可以:
Use 开头)。spot.Component 接口来编写自定义组件。支持与不支持的功能
Button、Checkbox、Dropdown、Image、Label、ListBox、ProgressBar、Slider、Spinner、TextField、TextEditor、Window 等,大部分状态为“已完成”或“部分实现”。临时一次性邮箱旨在保护您的真实收件箱免受垃圾邮件侵扰并保障隐私安全。
能否用临时邮箱发送邮件?
提供的邮箱地址是伪造的吗?
未收到预期邮件怎么办?
邮件保留多久?
平台提供关于临时邮箱的最新动态与使用技巧。
作者在接受智齿牙冠切除术后,经历了一小时的麻醉恢复期。在此期间,作者意识完全清醒,但短期记忆几乎丧失,接收的信息在几分钟内便会遗忘。作者利用这一特殊状态进行了一系列自我认知与行为测试。
尽管术后发现的异常液体最终确诊为无需二次手术的含牙囊肿,作者仍构思了若有机会进行第二次手术时将尝试的进一步实验:
作者在文末补充确认,智齿处的异常液体为含牙囊肿,属于最佳结果,因此不需要进行第二次手术。
本文介绍了在Clojure中基于core.async构建的一个简易作业系统,旨在处理如域名验证等异步任务,同时规避引入RabbitMQ等外部消息队列带来的复杂性。
背景与动机
作者在开发Scinamalink(一个提供魔法登录链接的服务)时,为解决垃圾信息问题,需要实施域名验证。这要求进行异步DNS查询。作者认为,引入RabbitMQ等消息队列会显著增加系统架构的复杂性(包括额外的进程、部署配置和集成代码),不利于快速推向市场。因此,他选择在单个进程内,利用Clojure的core.async库构建一个"足够可靠"的轻量级作业系统。
核心设计:有限状态机与函数式作业
作业系统的核心是将每个作业建模为一个有限状态机(FSM),其生命周期包含五个状态:created(创建)、starting(启动)、working(工作)、finished(完成)和crashed(崩溃)。这些状态在PostgreSQL数据库表worker_jobs中定义和存储。
关键实现思路是函数返回函数。系统将作业的每个状态实现为一个函数,该函数执行具体逻辑后,返回表示下一个状态的函数(实现状态转移),或返回nil(作业结束)。例如,一个域名验证作业的job-work函数在验证未完成时会返回自身的引用以实现重试,验证完成后则返回finished函数。
基于core.async的工作器与队列
作业系统使用core.async通道作为作业队列。工作器(worker)通过go-loop从队列中取出作业函数,并在core.async/thread(支持阻塞IO)中执行。如果作业函数返回了另一个函数,该函数将被重新放回队列等待执行,从而形成异步的递归处理流程。这避免了工作器饥饿,并允许作业在阻塞操作时释放线程。
作业持久化与加载
作业的详细信息(如作业类型、客户ID、域名ID等)以JSON格式存储在数据库的context列中。系统通过一个多方法->job-fn,根据数据库记录中的job-type和current_state,分派到对应的作业构造函数(如start-job),从而恢复作业状态并生成可执行的函数。
系统引入了一个loader组件,它定期(如每10分钟)从数据库查询所有待处理(created、starting、working)的作业。为避免重复加载正在运行的作业,系统使用一个原子registry来跟踪当前正在处理的作业ID。加载器会过滤掉已在registry中的作业,然后将新作业的函数放入工作队列。当进程启动时,也会执行一次加载操作以恢复中断的作业。
可靠性考量
作者承认单进程方案在进程崩溃时会丢失内存中的作业状态,但通过将关键状态持久化到数据库来缓解。作业在每个状态转换时都会更新数据库记录。如果作业执行失败(如抛出异常),作业函数会捕获异常,将作业状态设置为crashed或failed,并记录错误信息到数据库,确保了作业状态的可观测性。
作者整理了一份经常回顾并引用的编程文章清单,每篇都深刻影响了其工程思维与实践。以下为各文章的核心观点摘要:
该文主张工程师应坚信计算机和软件系统是可以被深入理解的。尽管现代系统极其复杂,但不应将其视为不可知的“黑箱”。虽然不可能掌握每一层的所有细节,但可以理解各层到所需抽象程度,并针对特定目的深入任意层次。这种信念显著提升了工程师的有效性。
该文为技术选型提供了关键指导:每个公司只有有限的“创新代币”(例如三个)。在开发网站、选择数据库或服务发现技术时,每采用一项新颖或实验性技术就消耗一枚代币。因此应优先选择经过验证的“无聊”技术(如成熟稳定的数据库),将创新代币留给真正的业务差异化领域,以避免技术债务和未来的悔恨。
该文反思了“不要重复自己”(DRY)原则。指出若在消除重复时选择了错误的接口边界,创建的抽象可能迅速变得难以维护。随着新需求出现,程序员可能被迫不断修改该抽象以适配各种情况,导致代码逐渐变得晦涩难懂。核心教训是:糟糕的抽象比适度的重复更可怕。
该文是关于“不变量”(即我们假设始终成立的特性)的重要提醒。它以姓名为例,逐条列举了那些看似理所当然的假设(如姓名在出生时确定、不会改变等)实际上经常被现实打破。这警示程序员在处理任何数据时,都应质疑那些“显然”的假设,为现实世界的边缘情况做好准备。
该文强烈倡导基于工作样本的招聘方式。作者通过一个例子说明,仅凭简历和面试难以发现真正的人才(如一位看似普通的.NET开发者却能发现Rails核心漏洞)。有效的招聘应设计实际编码或问题解决任务,以便从背景各异的候选人中识别出具备实际工程能力的人才,而非依赖传统简历筛选。
该文描绘了能在初创公司获得成功的工程师特质,即“产品导向”。这类工程师不仅关注技术实现,还主动参与产品思考,理解业务目标、用户行为和数据,善于与非工程师沟通,能提出产品与工程权衡方案,并以务实态度处理边缘案例,对产品特性进行端到端负责。
该文挑战了创建可重用软件的传统思维,提倡设计“可弃置”的代码。核心观点是:代码行数应被视为“维护成本”。降低维护成本的方法不是通过精心设计来扩展代码,而是确保代码易于整体删除和替换。商业逻辑本质上是边缘情况和临时解决方案的集合,有时删除一个大的错误设计比修补多个交织的小错误更有效率。
该文是经典之作,提出了“所有非平凡的抽象都会在一定程度上泄漏”的法则。以TCP协议为例,它抽象了底层不可靠的网络,但网络问题(如线缆损坏)仍会“泄漏”出来。该法则提醒工程师,任何抽象层都可能在某些情况下失效,设计时必须考虑抽象之下的现实细节。
该文指出,软件工具的速度不仅关乎任务完成快慢,更会改变用户的使用方式。更快的工具会让用户更频繁地使用它,甚至能促成全新类型的任务和工作方式。因此,工具性能的提升能带来质变而非仅仅是量变。
该系列文章阐述了如何利用关系型数据库(特别是Postgres)的ACID特性(原子性、一致性、隔离性、持久性)来构建健壮系统。通过原子事务、幂等API设计、事务性任务调度等技术,可以确保数据在边缘情况下的正确性和一致性,这是大型生产系统中保证可维护性的关键工具。
该文为构建分布式系统提供了实用指南。关键点包括:承认分布式系统故障是常态;实施背压机制;设计部分可用性;使用百分位数而非平均值衡量指标;合理规划容量;使用特性标志进行基础设施部署;谨慎选择ID空间;避免将缓存数据写回持久存储;适时提取服务。
该经典论文提出了端到端设计原则。指出将某些功能(如错误恢复、加密安全、去重)置于系统底层可能是冗余或低效的,更好的做法是将这些逻辑放在通信的端点实现,底层机制仅作为性能优化的辅助。该原则有助于简化许多分布式系统的设计。
该演讲(及附带文章)核心观点是:创造者需要与所创造之物有即时的连接与反馈。作者通过编程工具的演示,展现了工具如何通过实时可视化等手段极大提升创造效率和理解深度。该演讲重新设定了人们对编程工具潜力和交互性的期望标准。