呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
联系频道主:@cosine_yu
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
联系频道主:@cosine_yu
#优质博文 #前端 #react #错误处理
Guide to Error & Exception Handling in React
AI 摘要:本文探讨了在 React 应用中处理错误和异常的最佳实践,强调了错误边界(Error Boundaries)的重要性。错误边界是 React 组件,用于捕获其子组件渲染、生命周期方法和构造函数中的 JavaScript 错误,防止应用崩溃,并显示备用 UI。此外,文章还介绍了使用
from Sentry
Guide to Error & Exception Handling in React
AI 摘要:本文探讨了在 React 应用中处理错误和异常的最佳实践,强调了错误边界(Error Boundaries)的重要性。错误边界是 React 组件,用于捕获其子组件渲染、生命周期方法和构造函数中的 JavaScript 错误,防止应用崩溃,并显示备用 UI。此外,文章还介绍了使用
try...catch 处理异步代码中的错误,以及结合 Suspense 组件处理异步加载时的错误。为简化错误处理,推荐使用 react-error-boundary 库,该库提供预构建的错误边界组件,支持重置错误边界、集成错误日志服务等功能。文章还建议在关键组件和根组件中添加错误边界,提供特定的错误信息和备用 UI,实施重试逻辑,并记录所有错误以便及时修复。from Sentry
#优质博文 #前端 #css
CSS :has() Interactive Guide
AI 摘要:CSS 的
via Ahmad
CSS :has() Interactive Guide
AI 摘要:CSS 的
:has() 选择器允许根据元素的子元素来应用样式。例如,使用 figure:has(figcaption) 可以为包含 <figcaption> 的 <figure> 元素添加特定样式。此外,:has() 还可与其他选择器组合,实现更复杂的选择逻辑,如选择包含特定子元素的父元素,或选择不包含特定子元素的元素。这种功能在处理动态内容或生成的 HTML 时尤为有用。 via Ahmad
填写并提交申请后,90天内到访香港激活即可,无需亲临分行
到访香港后,可以顺便在手机上申请 BOC HK(中银香港),也无需亲临分行。
你可以在这篇文章找到包括 BOC HK在 内的香港银行开户教程。
订阅 newsletter 第一时间获得 博客 内容更新
选了 1 3 4
简单概括,局域网网关配置保守透明代理 + 主力机配置激进透明代理
Q1: 这种适用范围最窄,一般会在网络调试等需要尽可能保持网络环境原生,同时又需要保证特定应用不失联时使用。(对,就是 tg )
应用没有显式提供代理配置,不等于应用不支持代理。比如,基于 Chromium 的 Electron App 可以通过命令行传参开启代理;Parsec 可以通过配置文件方式写入代理。
特别地,Discord 这种使用人数众多的 App,会有针对的方案,比如 https://github.com/aiqinxuancai/DiscordProxyStart 和 https://github.com/aiqinxuancai/discord-proxy
Q2: 这种方案确实没办法保证所有 App 走代理,所以现在很少用到了。对我来说,只有需要网络调试,且需要保持代理状态时才会使用。
(Tun Mode 会影响传输层和网络层的调试结果)
Q3: 问题比较复杂,分开来说。
规则可以选的非常多,从最简单的
具体来说,取决于自己的需求、经常访问的网站分组、设备的配置。需求越复杂,访问的网站分组越多,设备配置越高,需要和能承载的规则总数就多。也因此,在 arm based 透明网关上就不宜使用太复杂的规则,甚至不太适合使用 clash 系代理。
我目前的方案是,主力机场使用自己写的订阅转换规则,加上一些公开和自己写的规则集,使用机场官方的订阅转换。还有自己和朋友的小小 VPS 节点池,采用手搓配置文件的方式。
由于互联网服务的多样性,和每个人访问服务的多样性,不可能找出一个适合所有人的万能规则。因此,最合适的方法还是选择自己常见的服务集合(比如 Steam、Telegram、微软、谷歌、Speedtest、ChatGPT、Github),在主流规则集的基础上修改。最终订阅转换后,也可以在客户端设置一些精确的 Prepend 覆写。
例如 ZeroTier 和 Tailscale 的主程序走直连、某游戏的域名走直连、某诡异的 .cn 域名但解析到境外的博客走代理等等。
常看 Clash UI 的 Connections,有助于更好的发现有问题的规则。使用 Surge 更是可以解锁 MITM 能力,一定程度上取代抓包软件的地位。
而分流规则的具体应用,搭配不同地区、不同倍率的机场节点可以发挥最大作用。跑下载时,更注重带宽,可以选择低倍率、大带宽的节点乃至直连节点;游戏加速时,一般选择高倍率的专线节点。使用 GPT 时,往往使用美国节点来获得最大的可用性;而 Bili 港澳台和东南亚,又要使用对应的节点才能解锁;而对某台特定的 VPS 测速时,更可以只将 Speedtest 指向该节点,而不影响其他服务照常运行。
(注:部分机场后端可能会将同一机器、同一IP同时连接不同节点算做不同的用户,需要注意)
总体来说,对于咱现有的分流配置还是大体满意的(
Q4: 出门的时候当然是每个设备挂自己的代理了,也没得选。也有极少数人可能会带一台便携的 ARM 软路由,或者使用安装了 Clash for Magisk 等方案的手机开热点。
如果是短途出行,也可以使用 Tailscale 或者 ZeroTier 的方式使用异地组网的网关作为流量出口。
Q5:境外流量卡、肉身翻墙(逃
简单概括,局域网网关配置保守透明代理 + 主力机配置激进透明代理
Q1: 这种适用范围最窄,一般会在网络调试等需要尽可能保持网络环境原生,同时又需要保证特定应用不失联时使用。
应用没有显式提供代理配置,不等于应用不支持代理。比如,基于 Chromium 的 Electron App 可以通过命令行传参开启代理;Parsec 可以通过配置文件方式写入代理。
特别地,Discord 这种使用人数众多的 App,会有针对的方案,比如 https://github.com/aiqinxuancai/DiscordProxyStart 和 https://github.com/aiqinxuancai/discord-proxy
Q2: 这种方案确实没办法保证所有 App 走代理,所以现在很少用到了。对我来说,只有需要网络调试,且需要保持代理状态时才会使用。
(Tun Mode 会影响传输层和网络层的调试结果)
Q3: 问题比较复杂,分开来说。
规则可以选的非常多,从最简单的
geoip:cn, direct; match, proxy 、最懒人的机场自带规则,到自己手搓,总有一款适合你。具体来说,取决于自己的需求、经常访问的网站分组、设备的配置。需求越复杂,访问的网站分组越多,设备配置越高,需要和能承载的规则总数就多。也因此,在 arm based 透明网关上就不宜使用太复杂的规则,甚至不太适合使用 clash 系代理。
我目前的方案是,主力机场使用自己写的订阅转换规则,加上一些公开和自己写的规则集,使用机场官方的订阅转换。还有自己和朋友的小小 VPS 节点池,采用手搓配置文件的方式。
由于互联网服务的多样性,和每个人访问服务的多样性,不可能找出一个适合所有人的万能规则。因此,最合适的方法还是选择自己常见的服务集合(比如 Steam、Telegram、微软、谷歌、Speedtest、ChatGPT、Github),在主流规则集的基础上修改。最终订阅转换后,也可以在客户端设置一些精确的 Prepend 覆写。
例如 ZeroTier 和 Tailscale 的主程序走直连、某游戏的域名走直连、某诡异的 .cn 域名但解析到境外的博客走代理等等。
常看 Clash UI 的 Connections,有助于更好的发现有问题的规则。
而分流规则的具体应用,搭配不同地区、不同倍率的机场节点可以发挥最大作用。跑下载时,更注重带宽,可以选择低倍率、大带宽的节点乃至直连节点;游戏加速时,一般选择高倍率的专线节点。使用 GPT 时,往往使用美国节点来获得最大的可用性;而 Bili 港澳台和东南亚,又要使用对应的节点才能解锁;而对某台特定的 VPS 测速时,更可以只将 Speedtest 指向该节点,而不影响其他服务照常运行。
(注:部分机场后端可能会将同一机器、同一IP同时连接不同节点算做不同的用户,需要注意)
Q4: 出门的时候当然是每个设备挂自己的代理了,也没得选。也有极少数人可能会带一台便携的 ARM 软路由,或者使用安装了 Clash for Magisk 等方案的手机开热点。
如果是短途出行,也可以使用 Tailscale 或者 ZeroTier 的方式使用异地组网的网关作为流量出口。
Q5:
#优质博文 #前端 #javascript
Precise Decimal Math in JavaScript with Fraction.js
AI 摘要:JavaScript 在处理浮点数时常出现精度问题,例如 0.1 + 0.2 结果为 0.30000000000000004。这是由于计算机以二进制存储数字,某些十进制小数无法精确表示,导致舍入误差。为解决此问题,Fraction.js 库提供了将数字表示为分数的方式,确保精确计算。通过 Fraction.js,诸如 0.1 + 0.2 等运算可得到精确结果 0.3,避免了浮点数的精度陷阱。
via Trevor
Precise Decimal Math in JavaScript with Fraction.js
AI 摘要:JavaScript 在处理浮点数时常出现精度问题,例如 0.1 + 0.2 结果为 0.30000000000000004。这是由于计算机以二进制存储数字,某些十进制小数无法精确表示,导致舍入误差。为解决此问题,Fraction.js 库提供了将数字表示为分数的方式,确保精确计算。通过 Fraction.js,诸如 0.1 + 0.2 等运算可得到精确结果 0.3,避免了浮点数的精度陷阱。
via Trevor
👋 大家好,我是 RSSHub 的作者。最近我开发了一款名为 Follow 的特别的 RSS 阅读器。这个阅读器与 RSSHub 无缝集成,让用户更轻松地访问和使用其功能。Follow 代表了我对 RSS 未来可能性的全新探索。它将于 下周一 在 Product Hunt 上发布,希望大家能在当天投票支持。如果你是 RSSHub 的爱好者、或认同相似的理念,非常希望你也来为我们投票。每一票对我们都很重要,也是对社区和团队最大的支持和鼓励,非常感谢!!! 🙏🙏🙏
If you already have an Product Hunt account, please help me click "Notify me" in advance. If you don't have an account, please help me register in advance to ensure you can vote on the day.
如果你已有 Product Hunt 账户,请帮我们提前点击 "Notify me"。如果你没有账户,请帮我们提前注册以避免当天权重过低无法投票
🌟 Link: https://www.producthunt.com/products/follow-3