呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
#course #LLM #AI #docs #prompt
面向开发者的大模型手册 - LLM Cookbook
https://datawhalechina.github.io/llm-cookbook/
提示工程指南
https://www.promptingguide.ai/zh
面向开发者的大模型手册 - LLM Cookbook
https://datawhalechina.github.io/llm-cookbook/
提示工程指南
https://www.promptingguide.ai/zh
#优质博文 #前端
Think JavaScript Is Slow? Here's How JIT (Just In Time) Compilation Makes It 100x Faster Instantly
https://www.royalbhati.com/posts/why-js-is-fast
#JavaScript #性能优化 #V8 #JIT
via Royal Bhati
Think JavaScript Is Slow? Here's How JIT (Just In Time) Compilation Makes It 100x Faster Instantly
https://www.royalbhati.com/posts/why-js-is-fast
AI 摘要:通过解析 V8 引擎的 JIT 编译机制,解释 JavaScript 如何通过动态优化热点代码实现百倍性能提升。
本文以 V8 引擎为例,深入探讨 JavaScript 的 JIT(即时编译)技术如何弥合解释型语言与编译型语言的性能差距。作者通过一个计算数组和的示例代码,详细拆解 JIT 的工作流程:
1. 解析与字节码生成:代码被转换为抽象语法树(AST)后生成中间字节码。
2. 热点代码识别:高频执行的代码(如循环)被标记为“热代码”,触发优化编译为机器码。
3. 动态优化与去优化:若运行时假设失效(如变量类型变化),引擎会回退到未优化状态并重新编译。
文章结合代码示例、AST 结构、字节码片段和优化逻辑,直观展示了 JIT 如何通过减少解释器开销和针对性优化显著提升性能,并强调其核心目标是平衡灵活性与执行效率。
#JavaScript #性能优化 #V8 #JIT
via Royal Bhati
#前端 #优质博文
Turbocharging V8 with mutable heap numbers
https://v8.dev/blog/mutable-heap-number
#V8 #JavaScript #性能优化 #benchmarks
via V8 开发团队( v8.dev 官方博客)
Turbocharging V8 with mutable heap numbers
https://v8.dev/blog/mutable-heap-number
AI 摘要:V8 通过引入可变堆数值(mutable heap numbers)和 Int32 类型追踪优化 Math.random 实现,使 async-fs 基准测试性能提升 2.5 倍。
# 文章内容
本文解析了 V8 团队针对 JetStream2 基准测试套件中 async-fs 性能问题的优化过程。该基准测试使用自定义的确定性 Math.random 实现,其核心变量 seed 存储于 ScriptContext 中。由于 seed 的每次更新都会触发新的 HeapNumber 对象分配,并伴随低效的浮点运算,导致显著的内存分配与垃圾回收压力。
V8 团队通过两项关键优化解决此问题:
1. 可变堆数值槽:扩展 ScriptContext 的槽类型追踪能力,允许直接修改 HeapNumber 的值而非重新分配
2. 可变 Int32 类型:追踪数值是否在 Int32 范围内,避免浮点转换开销
这些优化不仅使 async-fs 性能提升 2.5 倍,也为处理类似模式的真实场景代码提供了通用优化方案。
#V8 #JavaScript #性能优化 #benchmarks
via V8 开发团队( v8.dev 官方博客)
#优质博文 #webgl #demo #前端 #three
好酷的效果!喜欢喵! Demo: https://tympanus.net/Tutorials/EmissiveDissolveEffect/
Implementing a Dissolve Effect with Shaders and Particles in Three.js.
https://tympanus.net/codrops/2025/02/17/implementing-a-dissolve-effect-with-shaders-and-particles-in-three-js/
这就是它 - 一个动态溶解效果,其中包含发光粒子!您可以随意尝试这些参数:尝试不同的杂色模式,调整发光强度,或修改粒子行为以创建您自己独特的变化。
via Jatin Chopra
好酷的效果!喜欢喵! Demo: https://tympanus.net/Tutorials/EmissiveDissolveEffect/
Implementing a Dissolve Effect with Shaders and Particles in Three.js.
https://tympanus.net/codrops/2025/02/17/implementing-a-dissolve-effect-with-shaders-and-particles-in-three-js/
这就是它 - 一个动态溶解效果,其中包含发光粒子!您可以随意尝试这些参数:尝试不同的杂色模式,调整发光强度,或修改粒子行为以创建您自己独特的变化。
AI 摘要:本文详细介绍了在 Three.js 中创建物体溶解效果的完整流程。作者从游戏中的灵感出发,分步骤实现了以下核心功能:
1. 环境与光照设置 :选择 CubeMaps 而非 HDRI 以控制反射强度,避免发光效果过曝。
2. 溶解效果 :基于 Perlin 噪声生成溶解图案,通过 uProgress 和 uEdge 控制溶解阈值与边缘宽度,并修改材质着色器实现动态溶解。
3. 粒子系统 :利用几何体属性(位置、速度、最大偏移量)驱动粒子运动,结合正弦波实现波浪状动态效果,并添加旋转、纹理和距离缩放增强表现力。
4. 选择性发光 :通过 Unreal Bloom 对溶解边缘和粒子添加辉光效果。
文中每个步骤均附有代码片段和关键参数说明,并提供了 GitHub 提交记录便于读者分阶段复现。
via Jatin Chopra
Claude 前几天发布了 Claude Code,号称能够根据需求自动完成开发任务。我看了 Fireship 发布的影片介绍 Claude 3.7 及其相关生态产品的开发能力,虽然觉得有趣,但也注意到整个测评过程过于「可控」,并没有体现最新模型和 Claude Code 解决真实世界问题的能力。因此我提交表单申请了 Claude Code Beta 的测试资格,打算亲自试试。
第二天就收到了邮件,并激活了测试身份。在开始开发前,你需要先向账户里面充值。考虑到 Claude 本身是一个很大的吞金兽,我便先充了 10 美金进去(加一块的税,总共 11 美金)。Bybit 发的 Australia 卡是可以直接在 Anthropic Console 里面充钱的,记得国家选 Australia 不然付款请求会被拒绝。接下来就是 npm 安装 Claude CLI、配置环境,整体上都没有什么问题。
在进入 Claude CLI 后,程序会先邀请你输入
/init
命令,随后它会简要地用 LLM 分析一下整个工程的结构,这一步读了不少文件,花了 $0.5,并在项目中生成了一个 Claude.md。按照我的理解,后面所有的开发请求都会带上这个文件以确保模型能正确理解整个项目的特点。最后生成的项目摘要其实有点错误,比如我的 Rust 异常处理主要都用 anyhow
来做,我的项目没有用 just 调用 linter,也基本没有一行单元测试(对不起 OTZ)。不过这都是小问题,可以在它生成之后手动调整一下。接下来就是「主菜」,让 Claude Code 在 Rune 这个核心代码量超过六万行的中大型仓库里面修 Bug。
我首先选择处理的 Bug 是 Rune 的远程控制协议不能正确传输媒体封面图的问题。我之前在赛博轮椅这篇文章讲过,想让 LLM 处理好问题,你必须得自己非常清楚问题是什么,把问题的边界收束好,让 LLM 负责整理和转化。因此我先花了点时间把问题的前因后果讲清楚,并且把所有需要参考的代码全都列了出来。很令人惊喜的是,尽管我提出来了一个大概的开发方向,但 Claude 并没有完全遵照我的想法执行,而是提出了一个更好的解决思路,并且产出了 Linter 没有大吼大叫的代码。虽然他的实现是有错误的,像是把 Server 和 Client 的关系搞反了、host 的传递实现不正确。但是基于它的良好设计,我没有费太多力气就完成了收尾工作。
接下来我请 Rune 处理 Flutter 和 Rust 侧的整合问题,因为 Rune 的遥控协议是基于自签证书实现的,Flutter 那边做自签证书校验很麻烦,所以网络请求栈全在 Rust 侧。我请它把之前实现的、有问题的 Flutter 侧网络请求转移到 Rust 侧,同样手工整理了很多有用的上下文信息。Claude Code 一步一步地在工程里面寻找参考实现,并且自己写出了 Protobuf 定义、Rust 侧的响应函数和 Flutter 侧的 API Binding。因为中间需要在命令行里面跑一遍代码生成,而 Claude Code 并没有做这件事(我不知道是它不能做还是因为我没提醒它做,它就没做),因此生成出来的代码并没有通过 Linter 检验。特别是 Flutter 侧的 API Binding,调用了完全不存在的 API。不过,这都是很好修的小问题,令我印象深刻的是,它扎实地完成了每一处的异常处理、并且有调理地完成了数据的流动和管理。和修上一个 bug 一样,我怀着非常愉快的心情把它没解决的几个小问题处理了一下,整个程序就跑通了。
老实讲,Cover Art 在客户端和服务器端的流动是一个不好做的事情,如果给我做的话可能要花个两三天才能摸清楚整个业务流程要怎么跑才是最优的,但是 Claude 3.7 给我的开发过程提供了很强的支撑,把原本的技术需求转化成了超出我预期的代码实现。哪怕产出的结果是有 Bug 的,也不能削弱模型产出代码以及背后洞见的价值。
Claude Code 的出现又激起了很多工程师的担忧:它会替代工程师吗?经过一下午的实验,我给出的答案是否定的。比起「终结者」,它更像是优秀工程师的劳保用品,能够减少大量低价值脑力活动造成的心力耗竭。这 2.61 美元然我一下午过得神清气爽,消灭掉了可以说是最难缠的一块 Bug,我觉得很值当。
Ref:
[1] 完整命令行输出
[2] Rune
#OCR #开源 #tools #pdf #AI
https://fixupx.com/GitHub_Daily/status/1894898367869902882
https://fixupx.com/GitHub_Daily/status/1894898367869902882
GitHubDaily (@GitHub_Daily): 一款强大的开源文档 OCR 工具:olmOCR,专为高精度转换 PDF 和其他文档为纯文本而设计。
完美保留文档原始阅读顺序,支持表格、公式、手写内容识别,特别适合处理学术论文和技术文档。
GitHub:https://github.com/allenai/olmocr
同时具有高吞吐量文档能力、保留自然阅读顺序的文本转换,高准确率减少幻觉。
#开源 #AI #前端 #组件库 #headless #shadcn
https://fixupx.com/GitHub_Daily/status/1894945553277989240
https://fixupx.com/GitHub_Daily/status/1894945553277989240
GitHubDaily (@GitHub_Daily): 一款专为 AI 应用设计的高质量 UI 组件库:prompt-kit。
该组件库可用于快速构建聊天体验、AI 智能体和自主助手等应用,提供美观且可自定义的界面组件。
GitHub:http://github.com/ibelick/prompt-kit
- 提供可自定义的 AI 提示输入组件
- 支持聊天消息展示组件
- 内置 Markdown 渲染功能
- 代码块语法高亮显示
#优质博文 #开源
唉,这,第几起了
Open Source is Where Dreams Go to Die
https://www.trevorlasn.com/blog/open-source-is-where-dreams-go-to-die
via Trevor Lasn
Resigning as Asahi Linux project lead
https://marcan.st/2025/02/resigning-as-asahi-linux-project-lead/
唉,这,第几起了
Open Source is Where Dreams Go to Die
https://www.trevorlasn.com/blog/open-source-is-where-dreams-go-to-die
AI 摘要:文章分析了当前开源生态系统中维护者面临的困境。作者指出,大多数开源项目背后都有一群默默奉献、无偿投入大量时间和精力的开发者,他们常因持续的价值剥夺和不公平期待而导致精疲力竭甚至倦怠。文章通过揭示 “免费” 软件背后的真实成本,批评了一个让梦想在现实中破灭的系统,并强调这种模式不仅损耗了个人激情,也危及了整个开源社区的未来。为此,作者提到 Github 的赞助计划和 Sentry 的 Open Source Pledge 等举措,希望能引起更多企业关注和投入,共同改善这一现状。
via Trevor Lasn
Resigning as Asahi Linux project lead
https://marcan.st/2025/02/resigning-as-asahi-linux-project-lead/
AI摘要:文章回顾了作者从早期 Wii homebrew 贡献者到启动 Asahi Linux 项目的历程。起初,作者凭借对开源软件和破解技术的热情投入开发,带领团队实现了运行 Linux 于 Apple M1 平台的梦想。项目初期,在零厂商支持和全新挑战下,取得了令人瞩目的成果,打造出流畅的 Linux 使用体验。然而,随着项目推进,作者不得不面对频繁上游提交代码时产生的各种烦恼,还要应对用户不断提及硬件支持、功能需求和性能问题的重复抱怨。与此同时,项目赞助和捐赠金额逐步下滑,加之长期高强度工作和自身生活的巨大变动,导致作者身心疲惫。最终,在内外压力与燃尽迹象一步步累积之后,作者作出了辞去 Asahi Linux 项目负责人一职的艰难抉择,并对未来进行了深刻反思。via Marcan
#AI #优质博文
MCP 终极指南
https://guangzhengli.com/blog/zh/model-context-protocol/
MCP 终极指南
https://guangzhengli.com/blog/zh/model-context-protocol/
AI 摘要:本文介绍了模型上下文协议MCP,它是一个开放的标准协议,用于AI模型与现有系统(如数据库、API等)集成。 MCP解决了AI应用集成缓慢的问题,允许AI Agent通过MCP服务器访问和调用各种服务,从而实现更强大的自动化功能。与Function Calling和AI Agent相比,MCP提供了一个标准化的接口,方便开发者和服务提供商构建更可靠、高效的AI应用生态。 文章还介绍了MCP的工作原理、代码示例以及一些常用的MCP服务器和资源。
#优质博文 #前端 #node #typescript
Demo: implementing a Node.js CLI app directly in TypeScript
https://2ality.com/2025/02/nodejs-type-stripping-demo.html
AI 摘要:本文介绍了作者发布的 nodejs-type-stripping 示例仓库,该仓库演示了如何直接用 TypeScript 实现一个 Node.js 命令行应用程序,无需通过传统的转译步骤。这得益于 Node.js 新增的类型擦除功能,允许直接执行 .ts 文件。文章详细说明了项目的结构、配置文件设置和运行方法,重点解释了在 package.json 中如何将 bin 脚本直接指向 TypeScript 源码,以及在 tsconfig.json 中启用类型擦除所需的关键配置选项。这种方法简化了 TypeScript 开发流程,无需额外的构建步骤即可部署和运行 TypeScript 应用。
via Axel Rauschmayer
Demo: implementing a Node.js CLI app directly in TypeScript
https://2ality.com/2025/02/nodejs-type-stripping-demo.html
AI 摘要:本文介绍了作者发布的 nodejs-type-stripping 示例仓库,该仓库演示了如何直接用 TypeScript 实现一个 Node.js 命令行应用程序,无需通过传统的转译步骤。这得益于 Node.js 新增的类型擦除功能,允许直接执行 .ts 文件。文章详细说明了项目的结构、配置文件设置和运行方法,重点解释了在 package.json 中如何将 bin 脚本直接指向 TypeScript 源码,以及在 tsconfig.json 中启用类型擦除所需的关键配置选项。这种方法简化了 TypeScript 开发流程,无需额外的构建步骤即可部署和运行 TypeScript 应用。
via Axel Rauschmayer
#碎碎念 再碎碎念一点吧,最大的要求其实是“白天工作的时候及时响应,把自己那块的活干完就行”,所以没打卡,也就是说不像有打卡的公司那样,你可以一觉睡到站会,开完再接着睡,下午再干活,只要你能干完,坏处是可能有的人会觉得工作和生活分不开,噢我反正已经快乐融进去俩年啦。🥰
(但是基本很少会在非工作时间找人)
(但是基本很少会在非工作时间找人)
#碎碎念 #招聘
我们开招前端/全栈/设计实习生啦,同事都很有爱,感兴趣的可以康康情况噢,远程办公无打卡的,有个考察意愿度的笔试噢(嘿嘿嘿)我们当时有个同事进来的时候笔试做了一周(阴暗的笑)
JD 进去看吧,没那么多条条框框的就react tailwind 那一套
全岗位共通要求
https://id.life/career
应该是招的差不多了
我们开招前端/全栈/设计实习生啦,同事都很有爱,感兴趣的可以康康情况噢,远程办公无打卡的,有个考察意愿度的笔试噢(嘿嘿嘿)我们当时有个同事进来的时候笔试做了一周(阴暗的笑)
JD 进去看吧,没那么多条条框框的就react tailwind 那一套
- 薪资可提供现有最高 offer 的 120%
- 请将简历投递至: hr@id.life
- 在校生/应届生/往届生均可, 全员从实习做起
- 全部岗位招聘流程包含笔试环节, 合格候选人将收到笔试邀请, 请确保有充足时间参与完成
全岗位共通要求
- 学习能力强且有强烈的求知欲, 爱折腾, 能肝, 遇到不懂就想搞懂, 喜欢探索未知摸索着前进的感觉
- 逻辑清晰且沟通在线, 既能听懂需求, 也能说清楚想法, 善于将复杂问题拆解, 遇到困难先想办法, 不撂挑子
-信息收集能力强, 包括科学上网, 读个英文文档不头大 (口语流利加分)
https://id.life/career
应该是招的差不多了