IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    love 0
    oldj\'s blog
    发表于
    2025-11-29 15:26:00

    使用 uv 管理 Python 依赖

    我有一个运行了好几年的 Django 项目,之前一直在使用默认的 pip 管理和安装依赖,最近切换到了uv,感觉还不错,在这儿记录一下。什么是 uv根据官网的介绍,uv 是一个 Python 包以及项目管理器,非常快,使用 Rust 开发。安装和管理依赖只是它的功能之一,除此之外,它还可以创建虚拟环境,即可以取代 pip + virtualenv 的功能。我测试了一下,uv 确实比 pip 快了很多。在使用相同的镜像源,且都是纯净的 docker 环境下,使用 pip 安装项目的依赖花了约 88 秒,但使用 uv 只用了 13 秒。不过,安装依赖并不是一个高频操作,多花一点时间一般不是什么痛点,uv 更吸引人的是它简化了很多工作,比如内置了 Python 多版本安装以及虚拟环境管理,且能保证环境的可复现性,这就让 Python 项目的开发和发布工作简单了很多。uv 的安装和初始化在 macOS 或 Linux 上,可以使用以下命令安装 uv:curl -LsSf https://astral.sh/uv/install.sh | shWindows 上的命令如下:# On Windows. powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"安装完成之后,可以使用以下命令 ...继续阅读 (17)


    love 0
    52nlp
    发表于
    2025-11-29 10:34:27

    Qwen3-VL技术报告英中对照版.pdf

    Qwen3-VL 是阿里推出的最先进多模态基础模型,面向文本、图像、PDF、表格、界面(GUI)与视频的统一理解和推理任务。它具备 256K 原生上下文 的长文能力,能够跨数百页文档、完整教材、长视频进行稳定关联、定位与引用,是面向企业真实场景的全栈多模态引擎。模型体系覆盖 2B / 4B / 8B / 32B Dense,以及 30B-A3B / 235B-A22B MoE,在延迟、吞吐与精度间提供灵活选择。多模态训练不仅未削弱语言能力,反而在多个 NLP benchmark 上优于纯文本大模型,使其在文本任务上也具备强竞争力。技术核心升级有三点:Interleaved-MRoPE:将时间/水平/垂直的频率交错排列,解决旧式 MRoPE 在长视频中的频率偏置问题,使视频时空建模更稳定。DeepStack 视觉跨层注入:从视觉编码器的多个层级提取特征并注入 LLM 对应层,融合低层细节与高层语义,大幅提升视觉理解与推理精度。文本式时间戳:用<3.0 seconds>这种显式 token 替代复杂的时间编码,为长时间序视频带来更可控、更通用的时间理解能力。训练采用 四阶段预训练(8K→32K→256K)+ SFT + 强到弱蒸馏 + RL(Reasoning + General) 的完整体系,并提供 Thinking / Non-Thinking 双模式,兼顾推理能力与速度。数据方面 ...继续阅读 (18)


    love 0
    zhuxy
    发表于
    2025-11-29 09:50:47

    小学生财商启蒙

    下面给你呈现一份超级实用、可执行、适合小学生的理财教育完整计划——由“理财大师 + 少儿心理专家”联合视角设计,让孩子既听得懂、做得到,又愿意坚持学。小学生理财教育计划(适用 6–12 岁)一、教育目标(3 大方向)认识钱:钱从哪里来?为什么重要?如何花?养成习惯:储蓄、延迟满足、记录、计划、责任感。建立金钱观:价值判断、对与错、节制、选择成本。二、四个阶段学习体系(每阶段 2–3 个月)阶段 1:认识金钱(6–8 岁)目标让孩子知道钱是什么、有什么作用、不是“想要就给”。方法(游戏式)玩“商店游戏”:用假钱买卖玩具家务换零花钱(象征性,不要太高)让孩子参与小额购买决策,如买雪糕、文具推荐童书《第一次学理财》(适合 6–8 岁,图画丰富)《花婆婆》(培养创造价值的意识)《小狗钱钱》(内容略深,请家长陪读,跳读即可)行动任务家里放一个“透明储蓄罐”零花钱按周发(5~20 元即可)学一句话:“钱是用来交换价值的。”阶段 2:建立储蓄习惯(8–10 岁)孩子开始理解因果关系,是培养“延迟满足”的黄金时期。目标学会储蓄、目标规划、记录收支。方法建立3 罐法(经典)消费罐(50%)储蓄罐(40%)爱心罐(10%)用于捐赠、帮助别人教孩子设立“小目标”想要一个玩具?告诉他:“存 4 周就能买到!”简单账本用贴纸记录本周剩下多少钱每周和孩子一起回顾推荐书籍《富爸爸财商启蒙绘本》(孩子特别喜欢)《 ...继续阅读 (17)


    love 0
    Arvin Dio
    发表于
    2025-11-29 07:13:11

    Sistem Analitik Otomatis: Inovasi Teknologi yang Mengubah Cara Kita Membaca Data dan Mengambil Keputusan

    Jakarta,cssmayo.com– Di tengah era digital yang semakin cepat, dunia bisnis dan teknologi bergerak menuju satu arah utama: otomatisasi. Salah satu inovasi paling signifikan dalam transformasi digital adalahsistem analitik otomatis, sebuah teknologi yang mampu membaca, memproses, dan memberikan insight dari data secara mandiri tanpa campur tangan manusia yang terlalu intens. Dengan kehadiran data yang semakin melimpah setiap detik—baik dari aktivitas online, perangkat IoT, transaksi digital, hingga perilaku pelanggan—organisasi tidak lagi bisa mengandalkan metode manual.Media teknologi na ...继续阅读 (16)


    love 0
    admin
    发表于
    2025-11-29 01:27:49

    ComfyUI 的缓存架构和实现

    围绕 ComfyUI,大家讨论最多的是节点、工作流、算力这些,真正去看缓存细节的人其实不多。但只要你开始在一台机器上堆多个模型、多个 LoRA、多个 workflow,缓存策略就会直接决定这几件事:你是算力浪费,还是把显存 / 内存用在刀刃上;容器会不会莫名其妙 OOM;工作流切换时,是“秒级热身”还是“从头再来”。这篇文章只做一件事:把 ComfyUI 当前的缓存架构和实现讲清楚,重点是三类策略(CLASSIC / LRU / RAM_PRESSURE)在「键怎么算、什么时候命中、什么时候过期」上的差异,以及在多模型、多 LoRA、多 workflow 场景下应该怎么选择。1. 整体架构:两路缓存 + 四种策略先把整体结构捋清楚。1.1 两类缓存:outputs 和 objects在执行一个工作流的时候,ComfyUI 维护了两类缓存:outputs:存中间结果和 UI 输出。命中时可以直接跳过节点执行,这部分是真正省计算的地方。objects:存节点对象实例(类实例),避免每次重新构造节点对象。这两类缓存由一个统一的集合类CacheSet来管理。核心结构在execution.py中:classCacheType(Enum):CLASSIC =0LRU =1NONE =2RAM_PRESSURE =3classCacheSet:def__init__(self, cache_ty ...继续阅读 (16)


    love 0
    Edwin Black
    发表于
    2025-11-29 00:48:53

    IT Development: Advancing Technology Solutions for a Smarter Future

    JAKARTA, cssmayo.com–IT Development: Advancing Technology Solutions kinda feels like a wild ride, doesn’t it? I remember the first time I got thrown into an IT project—totally clueless, barely keeping up. But man, that’s how I started picking up the skills that matter most in tech.Building the digital backbone of tomorrow hinges on robustIT Development—the craft of designing, coding, testing, and maintaining software and infrastructure that power organizations and society. From agile workflows to cloud-native architectures, effective IT Development accelerates innovation, imp ...继续阅读 (18)


    love 0
    bigwhite
    发表于
    2025-11-28 23:21:32

    “香蕉、猴子和整片丛林”:我们是否深陷于 OOP 的“优雅”陷阱?

    本文永久链接– https://tonybai.com/2025/11/29/oop-the-worst-thing-that-happened-to-programming大家好,我是Tony Bai。Erlang 之父 Joe Armstrong 曾提出了一个关于面向对象编程(OOP)的、流传甚广的深刻比喻:“你想要一根香蕉,但你得到的却是一只拿着香蕉的猴子,以及整片丛林。”这个比喻辛辣地讽刺了 OOP 中继承(Inheritance)等机制带来的强耦合与不必要的复杂性。近日,一篇由 Alexander Danilov 撰写的、题为《OOP:编程史上发生的最糟糕的事》的文章,则以一种更系统、更“檄文”式的方式,为我们详细解剖了这只“猴子”和这片“丛林”的构成。Danilov 的文章,如同一份详细的“丛林勘探报告”,迫使我们重新审视,我们最初只是想要的那根香蕉(代码复用),是如何让我们不知不觉地,深陷于一片由类、继承和“魔法”构成的、盘根错节的“优雅”陷阱之中的。想要香蕉,却来了只猴子 (继承的“原罪”)故事始于一个最简单的愿望:代码复用。Danilov 在文章中展示了一个典型的场景:我们有一个 User 类,现在想创建一个 Npc(非玩家角色),它也需要 User 的 name 和 surname 字段。在 OOP 的世界里,最“优雅”的做法就是继承。// OOP ...继续阅读 (17)


    love 0
    Paulin
    发表于
    2025-11-28 23:07:37

    Sleep Sensor: Teknologi Tidur Pintar yang Mulai Mengubah Cara Kita Istirahat

    JAKARTA, cssmayo.com– Ada masa ketika kualitas tidur dianggap hal yang tidak terlalu penting. Yang penting bisa memejamkan mata, bangun, lalu lanjut menjalani aktivitas. Namun itu dulu, sebelum teknologi berkembang pesat dan membawa kita pada era baru yang semakin sadar bahwa tidur bukan hanya rutinitas, tetapi fondasi kesehatan. Di sinilahSleep Sensormuncul sebagai bintang baru di dunia teknologi tidur, membawa pendekatan yang lebih ilmiah, lebih manusiawi, dan tentu lebih pintar.Dalam beberapa kesempatan sebagai pembawa berita teknologi, saya sering bertemu dengan orang-orang yang berc ...继续阅读 (18)


    love 0
    ysicing (i@ysicing.me)
    发表于
    2025-11-28 22:25:29

    Debian/Ubuntu 默认禁用 SSH RSA 密钥?一篇文章教你彻底解决

    最近升级了 Gitspace 基础环境版本,导致没法使用 RemoteSSH。在新版本系统中,不少人发现原本一直使用的 RSA SSH Key 突然无法登录了。原因不是你的服务器出了问题,而是 OpenSSH 在 8.3 版本之后,默认关闭了对ssh-rsa的支持。本文带你快速了解为什么会这样、怎样安全地重新启用 RSA Key 登录,以及需要注意哪些风险和最佳实践。全文简单易懂、一步到位。RSA 过时协议OpenSSH 官方从 8.3 起,将ssh-rsa标记为过时算法,主要原因是:RSA(尤其是小于 4096 位的)安全性相对较弱更现代、更高强度的算法例如 ed25519、ecdsa 已经普及出于安全考虑,服务器端默认不再接受 ssh-rsa 签名因此,在看到日志类似:Authentications that can continue: publickey,password Trying private key: /root/.ssh/id_rsa之前免密配置了但就是死活登录不上注意:客户端其实仍然可以使用 RSA,只不过是服务器拒绝了它大多数情况下,客户端不用配置任何内容,因为 OpenSSH 客户端默认依然支持 RSA真正需要修改的是服务器,因为服务器默认不接受 ssh-rsa 公钥当然还有少数情况下客户端也需要配置,我就是改出问题了,客户端也需要配置重新启用 RSA Ke ...继续阅读 (15)


    love 0
    Putri Siapah
    发表于
    2025-11-28 21:48:19

    Electric Slicer—Inovasi yang Bikin Kegiatan di Dapur Lebih Praktis

    cssmayo.com  —Electric slicerpertama kali masuk ke dapur gue karena gue mulai sering masak untuk meal prep mingguan. Lo pasti pernah ngerasain ribetnya motong bahan satu-satu, tangan capek, potongan ga konsisten, dan ujung-ujungnya waktu habis di meja dapur. Di titik itu, gue merasa perlu alat yang bisa bantu proses dapur jadi lebih ringkas.Electric slicer hadir sebagai penyelamat. Dengan motor elektrik yang muter stabil, alat ini bisa motong sayur, buah, roti, bahkan daging dalam irisan yang sama persis tiap kali. Buat lo yang suka hasil yang rapi tanpa ribet, alat ini juara banget.Gue juga n ...继续阅读 (19)


    love 0
    王叨叨
    发表于
    2025-11-28 21:38:00

    开始记账了

    不知道大家有没有记账的习惯,我之前刚工作那会是有的,当时手机上记账软件也不多,看来看去用的随手记,还买了安卓的会员。前段时间又下载回来试了试,竟然又要收费了…[...] ...继续阅读 (19)


    love 0
    云风的 BLOG
    发表于
    2025-11-28 18:53:55

    欧陆风云5的游玩笔记

    最近一个月共玩了 270 小时的欧陆风云5 ,这两天打算停下来。最近在游戏后期打大战役时,交互已经卡得不行。我已经是 i9-14900K 的 CPU ,估计升级硬件已经无法解决这个问题,只能等版本更新优化了。ps. 其实只要把游戏暂停下来立刻就不卡了。虽然我直到这个游戏需要的计算量非常大,但是卡交互操作肯定是实现的不对。因为这并不是因为渲染负荷造成的卡顿,可以让游戏时间流逝更慢一些,也不应该让鼠标点击后的界面弹出时间变长。在暂置游戏前,我先把一些关于游戏设计上的理解先记录下来。也是对上一篇的补充。在最初几十小时的游戏时间里,我一直想确认游戏经济系统的基础逻辑。和很多类似策略游戏不同,欧陆风云5 在游戏一开始,展现给玩家的是一个发展过(或者说是设定出来)的经济系统版图。玩家更需要了解的是他选择扮演的国家在当下到底面临什么问题,该怎样解决。这不只是经济,也包括政治、文化和军事。而很多游戏则是设定好规则,让玩家从零开始建设,找到合适的发展路径。大多数情况下,EU5 玩家一开始考虑的并不是从头发展,所以在游戏新手期也没有强烈的理解游戏底层设计细节的动机。不过游戏也有开荒玩法,在游戏中后期势必会在远方殖民、开拓新大陆;甚至游戏还设计了让玩家直接转换视角以新殖民地为核心来继续游戏。但即使的重新殖民,在四周鸟无人烟的地方开荒,和在已有部分发展的区域附近拓展也完全不同。我十分好奇这样一个复杂的经济 ...继续阅读 (19)


    love 0
    siti
    发表于
    2025-11-28 18:40:05

    Earbud Nirkabel pilihan terbaik untuk gaya hidup modern

    JAKARTA, cssmayo.com –Perubahan besar dalam dunia audio bukan lagi soal ukuran speaker atau kekuatan subwoofer, tapi justru terletak di telinga—tepatnya di balik namaearbud nirkabel. Dalam hitungan detik, perangkat mungil ini bisa menghubungkan pengguna ke dunia musik, panggilan, hingga podcast dengan kualitas suara yang tak lagi bisa dianggap remeh.Earbud nirkabel telah menjadi bagian dari gaya hidup generasi digital. Tak hanya soal suara, tapi juga soal mobilitas, gaya, hingga pernyataan identitas. Dari pekerja kantoran yang melakukan panggilan bisnis sambil berjalan, hingga mahasiswa ...继续阅读 (18)


    love 0
    whrss
    发表于
    2025-11-28 15:08:22

    一致性事务:从 2PC 到 Outbox pattern

    前言:分布式系统里最让人头疼的事如果你做过一点微服务开发,大概率都遇到过这种场景:用户下单 → 扣库存 → 扣余额 → 更新积分。这听上去很简单,按顺序写几行逻辑就好,但问题是——这些操作分散在不同的服务、不同的数据库里。于是问题来了:如果中间有一步失败了,整个流程该怎么办?订单创建了,但库存没扣?库存扣了,但支付失败?消息没发出去,用户看不到状态?这就是经典的分布式事务一致性问题。今天我们就从最早的 2PC(两阶段提交)开始,一路讲到现在大家更常用的 Outbox 模式,看看这一路我们是怎么在”理想”和”现实”之间反复拉扯的。一、理想中的完美方案:2PC(两阶段提交)2PC,全称 Two Phase Commit。听起来就很有那味儿:让多个数据库像一个事务一样提交或回滚。它是怎么工作的?顾名思义,它分两步走:Prepare 阶段(投票阶段)协调者(Coordinator)告诉所有参与者(数据库、服务):”兄弟们,准备一下,看你们能不能提交。”每个参与者检查本地事务是否能成功,如果没问题,就写好日志、锁住资源,回复一句”我准备好了(YES)”。如果不行,就回复”NO”。Commit/Abort 阶段(执行阶段)如果所有人都回复”YES”,协调者就广播”Commit!”,大家正式提交。如果任何一个回复”NO”或超时,协调者就广播”Abort!”,大家全部回滚。听上去很完美,对吧?所有 ...继续阅读 (16)


    love 0
    whrss
    发表于
    2025-11-28 11:33:07

    Clash 设置国内国外自动分流访问

    Clash 是一款开源的网络代理工具,可以帮助用户实现对网络流量的控制和管理。我使用了很久,但苦于每次访问国内外网络需要手动开关代理,于是我就问了下GPT, 还真就解决了。如果你也需要设置 Clash 区分国内和国外流量,可以按照以下步骤进行操作:1. 打开配置文件(windows在右下角):使用 Visual Studio Code 打开 config.yaml内容是这样的:#---------------------------------------------------# ## 配置文件需要放置在 $HOME/.config/clash/*.yaml ## 这份文件是clashX的基础配置文件,请尽量新建配置文件进行修改。 ## !!!只有这份文件的端口设置会随ClashX启动生效 ## 如果您不知道如何操作,请参阅 官方Github文档 https://github.com/Dreamacro/clash/blob/dev/README.md #---------------------------------------------------# # (HTTP and SOCKS5 in one port) mixed-port: 7890 # RESTful API for clash external-controller: 127 ...继续阅读 (15)


    love 0
    whrss
    发表于
    2025-11-28 11:16:34

    鸿蒙 OS 的签名密钥机制,我终于整明白了!

    在做移动应用开发时,不管是 Android 还是 iOS,我们都绕不开“签名”这件事。最近我们项目在筹备适配HarmonyOS NEXT(鸿蒙 Next)的 SDK,也顺势把鸿蒙的签名机制研究了一遍。这篇文章来分享下。简单来说,签名的目的是确保应用的来源可信、内容完整、平台可识别。我们开发的应用,最终都要交给系统安装,那系统当然得确认一下:这个包是“你”发的、这包在传输过程中没被篡改、它是我允许安装的对象。这就要靠数字签名。说到底,数字签名就是:用私钥对应用包里的内容摘要加密,生成一个签名块,塞进包里。系统在安装时用你当初的公钥解密它,校验签名是否匹配。如果一切对得上,才会放行。我们先复习下 Android 和 iOS 的签名流程,再看看鸿蒙的做法是怎么“融合创新”的。Android 签名机制回顾搞过 Android 的同学都知道,签名这套流程绕不开Keystore 文件(.jks 或 .keystore)。它是个密钥库,里面有你生成的一对公私钥。生成方法嘛,Android Studio 自带的工具或者命令行keytool都能搞。你得设置密码、别名、组织机构之类的。签名流程一般是:用apksigner或jarsigner对 APK 进行签名;安装时,系统会从 APK 中提取签名块;用嵌入的公钥验签;检查包的内容有没有被改动。重点是——升级包必须用相同密钥签名!否则就会被系统拦下来, ...继续阅读 (17)


    love 0
    whrss
    发表于
    2025-11-28 11:16:34

    数据库分表实践:如何优雅地切换到分表架构

    写在前面在我们的后端架构中,我们采用了以游戏为租户单位的多租户数据库设计。所有游戏共享同一套数据库 schema,每张表通过game_id字段进行逻辑隔离。这种设计在初期带来了显著的开发与维护效率,支持我们快速迭代、快速上线多个游戏项目。然而,随着接入的游戏数量增加、业务数据持续增长,这种“共享单表”的设计逐渐暴露出一些架构层面的瓶颈与隐患。某些高流量的游戏影响到了其他本应“风平浪静”的项目;一些核心表的索引开始变得笨重,甚至拖慢了查询性能;数据分析时需要频繁在庞大的表中筛选特定游戏数据,效率极低。更不用说,MySQL 的单表上限正一步步逼近我们曾以为遥远的边界。我们意识到,曾经高效的“共享单表”策略,已经成为了未来扩展的绊脚石。于是,在年初,我们启动了一项重要的系统演进计划:按服务维度进行数据库分表改造。这不仅是一次技术重构,更是系统架构从“共享瓶颈”走向“弹性隔离”的转型。本篇将完整记录我们这次数据库分表的路径与实践细节——希望对你有所启发。实施原则与总体策略数据库分表,不仅是表结构的变化,更是一套兼容旧有系统、可渐进式切换、可回滚的工程设计。在正式动手之前,我们就明确了三项核心原则:不影响线上服务运行,兼容已有功能支持灰度切换,逐步从旧表过渡到新表设计可回滚机制,出现问题可以随时切换回旧表基于这三条,我们制定了如下的整体方案:我们将整个数据库分表的工作拆分为多个阶段,每次只处 ...继续阅读 (15)


    love 0
    whrss
    发表于
    2025-11-28 11:16:34

    “该省省,该花花”

    春节假期,我终于完成了两件大事:见了未来的岳父岳母,还带奶奶游览了北京。忙里偷闲,我决定总结一下这几天的经历,顺便分享一些“花钱”与“省钱”的小感悟。作为一名农村出身的人,我的消费观念一直是:钱能不花,就不花。例如:• 旅游?自己带矿泉水,自己带干粮,景区里一瓶水8块?不可能!• 门票?买最低门槛的,能溜进去的坚决不多花一分钱!• 遇到导游、摄影师、纪念品摊贩?避之如洪水猛兽,仿佛他们会瞬间吸干我的钱包。但这些年,尤其是这个假期的几件事,让我逐渐意识到:有些钱,省下来是亏的,花出去才是赚的。游泳:花钱买经验,少走弯路大学时,我决定学游泳。(ps: 一个月1000生活费,拮据~)当时面临两个选择:办游泳年卡(500块),自学成才!请游泳教练(20节课500块),专业入门!作为精打细算的学生党,我毫不犹豫地选择了年卡,心想:天天泡在泳池里,还能游不会?结局是,我的年卡被用得相当充分,但整整一年下来,只学会了蛙泳。自由泳换气?不行。打腿节奏?不对。游过去还能游回来?不存在的。两年后,喝了无数口泳池水,我终于磕磕绊绊学会了自由泳,蝶泳只学了个“皮毛”。但即便如此,每次游完我脖子都酸,说明动作仍然有问题。回头一想,当年如果花钱请教练,可能两个月就能达到现在的水平,少喝多少水啊!(而且,大学时候的教练费是真的便宜啊~~)但当时的我,非要靠自己摸索,结果就是走了很多弯路,还差点呛成“水鬼”。滑雪 ...继续阅读 (16)


    love 0
    whrss
    发表于
    2025-11-28 11:16:34

    Golang 中的 EOF 与 read: connection reset by peer 错误深度剖析

    引言在 Golang 网络请求中,我们经常会遇到两种常见的错误:EOF和read: connection reset by peer。这两个错误虽然看似相似,但实际上有着本质的区别。这篇文章将深入探讨这两种错误的原因、区别以及如何优雅的处理它们。错误原因解析EOF 错误首先,让我们看看 Golang 标准库中对EOF的定义:// EOF is the error returned by Read when no more input is available. // (Read must return EOF itself, not an error wrapping EOF, // because callers will test for EOF using ==.) // Functions should return EOF only to signal a graceful end of input. // If the EOF occurs unexpectedly in a structured data stream, // the appropriate error is either ErrUnexpectedEOF or some other error // giving more detail. var EOF = errors.Ne ...继续阅读 (21)


    love 0
    whrss
    发表于
    2025-11-28 11:16:34

    为什么你应该在代码中消除 \"context deadline exceeded\" 错误

    在 Go 语言中,context包提供了一种跨 API 和进程边界传递请求作用域值、取消信号以及超时信号的方式。使用context可以帮助我们更好地控制 goroutine,避免 goroutine 泄漏等问题。出现 “context deadline exceeded” 错误通常是因为在请求上下文中设置了超时时间,但请求在超时时间内未完成。我们应该尽量避免这种错误,原因如下:错误处理:context deadline exceeded是一个错误,如果忽视它可能导致程序运行异常或产生其他错误。错误分析:当我们对数据埋点和日志进行分析时,如果出现 “context deadline exceeded” 错误,我们很难直接定位到具体的错误来源。假设我们在一个分布式系统中处理多个请求,如果日志中充斥着 “context deadline exceeded” 错误,我们根本无法判断是哪里出现了问题。资源泄漏:未及时取消 goroutine 可能会导致资源(如内存、文件描述符等)无法及时释放,引起资源泄漏问题。比如数据库慢查询,数据库连接可能会被占用,导致连接池耗尽。性能问题:长时间运行的请求未能取消,会消耗大量的系统资源,影响整体系统性能。用户体验:对于需要等待长时间的请求,用户可能会感到迷惑和不耐烦,影响用户体验。为了消除 “context deadline exceeded” 错误,我 ...继续阅读 (16)


    love 0
    whrss
    发表于
    2025-11-28 11:16:34

    死锁日记:手写 GoLang 上报队列

    我们团队负责的防沉迷上报服务突然在某一天遭遇了内存溢出(OOM)的情况。通过查看 Prometheus 监控数据,我们发现 Goroutines 的数量在中午十二点之后呈现出线性增长趋势,直至晚上十点 OOM 发生,Goroutines 数量骤降为零。如下图所示:从这个 Goroutine 的创建趋势图中,我们可以推断出服务在中午十二点触发了某个 bug,导致 Goroutine 不断创建,最终引发了内存溢出的问题。队列实现在我们的服务中,有一个用于上下线上报的队列。当队列达到一定阈值或指定时间间隔时,会触发读取和上报。以下是队列的具体实现:package main import ( "errors" "sync") type QueueError error var CapacityExceededError QueueError = QueueError(errors.New("capacity exceeded")) // Queue 包含信号通知的队列 // 当队列长度大于等于 thresholdSize 时,触发信号,外部可以监听信号 // 当队列长度小于 thresholdSize 时,重置信号状态 type Queue struct { items items capacity int ...继续阅读 (15)


    love 0
    whrss
    发表于
    2025-11-28 10:57:40

    体验 New Bing:一个比 ChatGPT 更强大、更幽默、更有用的搜索引擎聊天机器人

    最近在推特上看到很多人在谈论New Bing申请的事情,我也收到了试用通过的邮件。于是我马上打开Edge浏览器体验了一下。注意:如果你也收到了邀请,但是无法进入聊天页面,请参考这篇文章:https://zhuanlan.zhihu.com/p/605970396New Bing是一个基于人工智能的搜索引擎聊天机器人。它可以回答各种问题,并且提供相关的链接和信息。它还可以跟你聊天,并且很有幽默感。我在搜索框输入了一些问题,并且看到了右侧New Bing的回复。我还向上滑动鼠标进入了聊天窗口,在那里我跟New Bing进行了一些对话。其中包括一些荒谬的问题:为了对比New Bing的能力,我还用同样的问题向ChatGPT问了一下。从这个问题中可以看出,两个机器人都给出了相对正确的答案。但是New Bing却显得更像一个懂得幽默的人,并且每个专业名词都有引用来源。以前我曾经问过ChatGPT关于滕王阁序的问题。它告诉我滕王阁序是李白、苏轼、白居易写的。每次问都是不同的答案,但都是错的。今天我又问了同样的问题,它给出了这样的回答:现在,它的作者是正确的,但是它的地址、内容描述等等都还是错误的。同样的问题,bing是怎么回复的呢?bing的回复没有任何问题,并且对滕王阁 王勃 骈文 对仗的出处都有标出链接引用。它是从这些答案中汇总得出的。然后我继续问了几个问题:在问到一些想法的问题时,bi ...继续阅读 (15)


    love 0
    whrss
    发表于
    2025-11-28 10:30:40

    从零开始搭建家庭软路由系统(安装OpenWrt,并做为旁路由接入家庭网络)

    之前刷推看到了不少人发软路由,最近又看到a姐发了一句:全推入手软路由了开始我还觉得软路由对我的作用应该不大吧,随着从众心理的影响,我觉得我应该试试。刚好我还有从笔记本上拆下的内存和固态,岂不是严丝合缝?然后我就下单了一个外观差不多是这个样子:内部结构大概是这个样子:拥有5个网口、两个 USB 2.0 和两个 USB 3.0 口、HDMI、DP、存储卡位以及两个笔记本内存条槽位、一根 m.2 插槽和一个 SATA 接口,可以说五脏俱全。我买的是只带电源的,内存条和磁盘需要自己加。一、第一步 组装机器打开机器背部的固定螺丝以及后盖,将内存条插入相应槽位接入 SATA 固态硬盘或 M.2 硬盘,不要装上后盖,以防有问题还需要再拆开。连接电源,此时路由器将自动开机开机后如果听到一声响,表示内存识别功能正常。如果听到三声响连续作响就表示出现了问题。我使用的两个内存条,分别在两个槽位上尝试,只有一根(金士顿的骇客神条2400)能在其中一个槽位上被识别。如果两个槽位都无法识别,就只能买同店的内存条了。接下来就是准备安装系统。二、 制作启动盘我选择的系统是OpenWRT/LEDE在国内的家庭软路由中有着非常高的占有率,拥有海量的软件,和非常强大的生态。同时,OpenWRT 的教程也很丰富详实。这里我使用的是KoolShare 固件,内置了非常强大的插件市场。1. 下载efi找到最新版本进行下载。2 ...继续阅读 (15)


    love 0
    whrss
    发表于
    2025-11-28 10:08:07

    最新版 Let’s Encrypt 免费证书申请步骤,保姆级教程

    最近将域名迁到了google domain,就研究了一下Let’s Encrypt的域名证书配置。发现网上找到的教程在官方说明中已经废弃,所以自己写一个流程记录一下。步骤方法官方文档见:https://eff-certbot.readthedocs.io/en/stable/install.html#installationsnapd官方文档见:https://certbot.eff.org/instructions1. 安装snapd(这里我使用的是centos系统)sudo yum install snapd sudo systemctl enable --now snapd.socket sudo ln -s /var/lib/snapd/snap /snap2. 使用snapd安装certbotsudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot####3. 生成证书(需要指定nginx):fa-chevron-circle-right:手动安装nginxcertbot certonly --nginx --nginx-ctl /usr/local/nginx/sbin/nginx --nginx-server-root /usr/local ...继续阅读 (16)


    love 0
    coder4
    发表于
    2025-11-28 10:04:11

    让Docker兼容firewalld防火墙

    docker与ufw是不兼容的,一个方案是用三方的docker_ufw 今天换一个方案,可以简单配置以兼容firewalld 1 安装firewalld sudo apt-get install firewalld 2 配置firewalld sudo firewall-cmd --add-port={22/tcp,443/tcp} --permanent sudo firewall-cmd --remove-port=3306/tcp --permanent sudo firewall-cmd --reload sudo firewall-cmd --list-all sudo firewall-cmd --state running 3 安装Docker 参考最新教程,不重复了 https://docs.docker.com/engine/install/debian/ 4 配置让Docker不修改iptables规则 sudo vim /etc/docker/daemon.json { "iptables": false } 重启Docker sudo systemctl restart docker 5 后续,docker端口直接映射到host上,默认对内网是可见,外网不可见,需要的可以通过1中的firewalld控制 ...继续阅读 (16)


    love 0
    whrss
    发表于
    2025-11-28 10:00:38

    【Gorm】Save 方法更新踩坑记录

    在我最近使用Gorm进行字段更新的过程中,我遇到了一个问题。当我尝试更新status字段时,即使该字段的值没有发生变化,Gorm还是提示我“Duplicate entry ‘xxxx’ for key ‘PRIMARY’”。首先,让我们看看Gorm的官方文档对Save方法的描述:Save方法会保存所有的字段,即使字段是零值。db.First(&user;) user.Name = "jinzhu 2" user.Age = 100 db.Save(&user;) // UPDATE users SET name='jinzhu 2', age=100, birthday='2016-01-01', updated_at = '2013-11-17 21:34:10' WHERE id=111; ``` `Save`方法是一个复合函数。如果保存的数据不包含主键,它将执行`Create`。反之,如果保存的数据包含主键,它将执行`Update`(带有所有字段)。 ```go db.Save(&User;{Name: "jinzhu", Age: 100}) // INSERT INTO `users` (`name`,`age`,`birthday`,`update_at`) VALUES ("jinzhu",100,"000 ...继续阅读 (17)


    love 0
    whrss
    发表于
    2025-11-28 09:46:16

    一个有趣且实用的开源项目,将网页打包成应用

    最近在GitHub上面发现了一个很有趣的开源应用,可以将网页打包成应用:这里是它的使用文档底层使用了rust进行开发,支持 Mac、Windows 和 Linux。使用命令将网站直接打包成应用。这里我以最近部署的一个私人 ChatGPT Next为例, 我的地址为https://gpt.whrss.com需要本地先有一个node环境,能使用npm命令。然后npm全局安装这个工具npm install -g pake-cli安装完之后,就可以使用pake url [OPTIONS]...来生成桌面应用了,参数有很多,我先用了这些:这是我的命令:pake https://gpt.whrss.com --name GPT --icon /Users/wu/Downloads/gpt.icns --height 700 --width 900这里我指定了网站的url :https://gpt.whrss.com指定了生成的应用包的名字:GPT指定了应用的 icon指定了应用打开初始化的高度和宽度mac icon生成和获取的地方 :https://macosicons.com/#/然后我进行了运行,因为我的icon指定的目录是Downloads下面,所以它直接生成在了下面,默认是用户目录。如上图,生成的包体非常的小和轻量,只有不到3M。= 更新 =# 查看npm安装的插件的版本 npm ...继续阅读 (17)


    love 0
    whrss
    发表于
    2025-11-28 08:48:14

    探索 PlanetScale:划分分支的 MySQL Serverless 平台

    最近我发现了一个非常有趣的国外MySQL Serverless平台,它叫做PlanetScale。这个平台不仅仅是一个数据库,它能像代码一样轻松地创建开发和测试环境。你可以从主库中拉出一个与之完全相同结构的development或staging数据库,并在这个环境中进行开发和测试。所有的数据都是隔离的,不会相互干扰。当你完成开发后,你可以创建一个deploy request,PlanetScale会自动比对并生成Schema diff,然后你可以仔细审查需要部署的内容。确认没问题,你就可以将这些变更部署到线上库中。整个部署过程不会导致停机时间,非常方便。PlanetScale的入门使用是免费的,他们提供了以下免费套餐:5GB存储空间每月10亿行读取操作每月1000万行写入操作1个生产分支1个开发分支社区支持如果超出了免费套餐的限制,他们会按照以下价格收费:每GB存储空间每月2.5美元,每10亿行读取操作每月1美元,每100万行写入操作每月1.5美元。对于我这样的个人使用者,真的太不错了。这个平台运行在云上,提供了一个Web管理界面和一个CLI工具。我试了一下他们的Web管理界面,但发现它并不是很好用,无法进行批量的SQL执行。于是我研究了一下CLI工具的使用,并做了一份小记录,现在和大家分享一下。以下是在Mac中使用PlanetScale CLI工具的步骤:其他系统安装可见:官方文 ...继续阅读 (18)


    love 0
    whrss
    发表于
    2025-11-28 07:55:25

    GORM 中 SQL、慢 SQL 打印日志传递 trace ID

    实现gorm.io/gorm/logger下的函数⬇️// gorm 源码 type Interface interface { LogMode(LogLevel) Interface Info(context.Context, string, ...interface{}) Warn(context.Context, string, ...interface{}) Error(context.Context, string, ...interface{}) Trace(ctx context.Context, begin time.Time, fc func() (sql string, rowsAffected int64), err error) }以下为自定义的重写实现,主要函数是Tracepackage log import ( "context" "time" "github.com/go-kratos/kratos/v2/log" "gorm.io/gorm/logger" ) type GormLogger struct { SlowThreshold time.Duration } func ...继续阅读 (15)


    love 0
    Yao
    发表于
    2025-11-28 06:25:51

    Ops4.5 —— 王者归来

    今年做了一些产品,大量的使用了 ai,特别是 claude code。在 8,9 月份,claude 周限很高,opus4.1几乎可以无限制的使用,那个阶段真是美好,额度一天绝对用不完的,只要你付出四五百块钱,随便用,甚至我给组内也都使用,我付费,根本用不完。我把 claude code 内置到我的产品中,直接在产品里面调用 claude code,去编辑代码,让用户去 vibe coding,我们的用户是非技术人员。在 10 月后,A 社给 claude opus 添加了周限,200 刀的账户,密集使用,1 天就能消耗掉一周的额度,悲惨的故事开始了,sonnet4.5明显是不如opus4.1的,用户开始抱怨,经过一系列的努力,各种规则的新增,但是并没有太好,顶着压力,给每个用户手动去维护出问题的代码。基础模型的能力,会严重的限制我们这类产品。gemini3发布之后,claude应该明显是有压力了,把opus4.5移除了周限,反而把sonnet4.5加入了周限,简单说,基本上sonnet4.5退位,opus4.5是正位/主力模型。我们在第二天就立刻更新了产品把opus4.5作为默认模型,用户反馈,明显变的更聪明了。我不想去画天气图,而是切实的感觉到了模型能力的上升。甚至,即使不是opus4.5,而是opus4.1我都会非常满意。ops4.5价格虽然还是比sonnet4.5贵一点,但 ...继续阅读 (17)

1/4404 下一页
沪ICP备19023445号-2号
友情链接