
小天管理 发表的所有内容
-
[Apple] ITGZ 雷电 3 硬盘盒主控 ?
tb 和 pdd 宣传都说是使用的 JHL7440, 插到 Mac 上查看 Thunderbolt 设备,发现设备名称却是 DM7801BJ,制造商来自 Shenzhen Dongman Technology Co.,ltd, 这款芯片难道不应该显示设备名称 JHL7440 吗 感觉有些奇怪
- [Apple] 大陆号码写进 esim 机器目前貌似是可以做到的
-
[微信] 有没有一起学习微信小程序开发的人?
有没有一起学习微信小程序开发的人?大家一起组一个学习搭子,一个人学习小程序开发好难坚持下来,大家一起相互监督,相互提醒效果应该会好很多。如果你是在广州大学城的女生更好,我们还可以一起逛街。 加 V:harry_cn_gz
-
[酷工作] 6 年前端上海继续求内推
个人情况:统招本科,六年工作经验,react 和 vue 都会(都有 3 年左右的使用经验)。react 会更熟一点。 上任工资 20k ,这次薪资预期持平即可,已离职随时到岗,另外现在还不在上海,最好一面能够远程面试。 如果有意向可以加我 v:jarvan_king(不用解 base64),我发简历或者留下联系方式我联系你
-
[Apple] 我的 IPHONE14 PRO 怎么了,每天十几次菊花
难道是升级了 IOS 18 的原因? 没升级之前隔三差五菊花一次,也能接受。 现在每天菊花十几次,动不动就菊花一下,实在太难受了,手机背面也烫的厉害。 以前也去过天才吧,检测也没啥问题。 你们有遇到这类情况的吗?你们如何解决或者缓解的呢?
-
[Apple] S9 升级最新系统微信消息没震动了
平时 iPhone 静音,watch 只开震动 iOS17 的使用习惯:微信收到消息之后手机不震动,手表震动 升级 iOS18 之后,微信收到消息手表直接不震动了,为此耽误不少事情 今天偶尔发现手机的 [声效与触感反馈] - [默认提醒] - [触感反馈] 默认是无,随便设置了一下,手表有震动了,但是更难受的是,这样设置之后手机在微信打开的时候也是有震动的
-
[Cloudflare] cloudflare warp 有可能设置出口区域么?
现在出口是香港,速度倒是贼快,延时 44ms ,但是没法用 chatgpt 个 gemini 了。。。
-
[问与答] 联想扬天 M460 值的买吗?
酷睿 14 代 i5-14400 32G DDR5 1TB ,价格 4500 政府补贴 20% 3600 元,用来写代码,生产力,不怎么打游戏:D 。 本来想购买一个 thinkbook 16+ 后面想了一下还是台式机更实惠。自己有两个 Dell 的 1080p 显示器,当时买也不便宜,打算接着用,这个价格适合入手吗?
-
[程序员] 目前哪个云厂商可以用最少的钱买到最多的 IPv6 地址?
有个场景需要用不同的公网 IP 地址访问同个服务器,IP 数量越多越好。IPv4 太贵,IPv6 目前哪个云厂商支持这个需求,并且价格最低?
-
[分享创造] 面向娃编程。无聊弄了一个汉字笔顺练习的小程序。
如题。 之前开发了一半没弄完,前几天刷到 v2 有朋友开发了个这个。又把这个小程序用起来了。 之前一直没认证小程序,名字搜索不到。直接贴码吧。 空了再添加一些功能。
-
[问与答] bank of america 如何购买高利率定存(certificate of deposit)
 我在 boa 的官网上,找 cd ,但是发现怎么利率才 0.3%,有点离谱. 但是,利息不应该是在 4%+的吗? 很疑惑。
-
[Android] 有做过 AndroidTV 的兄弟吗? GooglePlayStrore 提示不兼容
我安装了 GMS 后,内置从 APKMirrors 下载的 AndroidTV 版本 GooglePlayStrore ,打开提示不兼容,但是手机版本安装后是可以打开的,是需要额外的操作吗?
-
[iCloud] iCloud 云盘卡住不动
经常遇到 iCloud 云盘的同步进度已经 100%了,但还是显示正在下载 xx 个项目,之前退出过 iCloud 账号可以解决,但是又出现了,有什么办法可以治标又治本吗?
-
[iPhone] 不同于硬件锁死的 watch,国行 iPhone16 用外版 magsafe 充电器可以激活 25w 充电
BV18wtDeQEec ,实测国行 16PM 直接插港版 magsafe 充电器就能跑到 25w ,这下国行 iPhone 跟外版的差距只有 AI 了(非常规手段好像也能开?) 但苹果今年的国行操作还是令人窒息,不刚需无线充的 iPhone 表面锁快充,而真正刚需无线充的 watch 锁死慢充,无敌了。
-
[酷工作] 二本前端应届 日语 n2 好去日本就业吗?
大学主要还是做的前端 有过一年前端实习经验 现在在一家小公司做前端开发 会 Vue React Ts Nuxt Sass 不知道赴日就业是否对就业经验很有要求呢? 现在这家公司感觉快经营不下去了 但是这个学历在国内实在太难了
-
[分享创造] 用 rust 搞了个 jenkins 命令行发布工具
用 Rust 编写的 Jenkins 命令行发布工具,支持多环境、项目过滤、构建参数缓存、console 结果展示。 项目地址: https://github.com/kairyou/jenkins-cli 对于需 Jenkins 触发构建的场景,尤其是需要频繁构建的场景,可命令行直接发布。 人生苦短,节约时间。 欢迎 star 或使用。
-
[问与答] Java 下是否有工具或者方法可以监控程序对 API 的调用?
比如传统的 win32 程序可以通过 hook 系统 api 的形式拦截到对这些 api 的调用并获取一些有意义的信息,主要是参数和堆栈 对于 java 程序由于已经有一层 vm,所以直接对 win32 的 api 进行监控无法和原代码或者伪码对应,所以请问是否有工具可以做到类似的效果?
-
[问与答] 想开一家东北麻辣烫店,诚心请教各位 v 友的意见
V 友们好,本人目前在北京工作,想跟 v 友们请教一些经验。本人家乡在大兴安岭,平时也爱好做一些饭。我后续计划离开北京,在别的城市开一家东北麻辣烫店,目前首选是在西安(我比较喜欢西安这个城市,哈哈),准备十一先去西安考察看看。想请教一下在西安工作或者对西安比较熟悉的 v 友们: 东北麻辣烫在西安的接受程度怎么样? 十一我去西安探探路,应该重点在哪里考察比较好呢,目前我准备去高新和大学城附近看看,但由于对西安不是很了解,各位 v 友们是否有推荐的具体的地点呢 如果有 V 友们有过餐饮相关的经验,也希望各位传授下宝贵的建议~ 感谢大家!
-
[Go 编程语言] Go 链路追踪中为什么先调用 otel.GetTracerProvider() 再调用 otel.SetTracerProvider() 也能上报成功?
最近在go-zero中使用了一些三方包集成内部的链路追踪, 部分代码如下 package main import ( "fmt" "github.com/zeromicro/go-zero/zrpc" ) func main() { // 1. 获取服务依赖的配置 svcCtx := svc.NewServiceContext() // 2. 实例化服务但配置, 实际上这里的代码会调用 otel.SetTracerProvider() // server.NewServer() => // service.SetUp => // trace.StartAgent => // trace.startAgent() => // otel.SetTracerProvider() s := zrpc.MustNewServer() defer s.Stop() fmt.Printf("Starting rpc server at %s...\n", svcCtx.Config.ListenOn) s.Start() } package svc import ( "time" "github.com/redis/go-redis/extra/redisotel/v9" "github.com/redis/go-redis/v9" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/plugin/opentelemetry/tracing" "github.com/zeromicro/go-zero/zrpc" ) func NewServiceContext() { conn, err := gorm.Open() redisClient := redis.NewClient() // 1.1 增加 链路追踪 // 这以下两个方法都会调用 otel.GetTracerProvider() redisotel.InstrumentTracing(redisClient) conn.Use(tracing.NewPlugin(tracing.WithoutMetrics())) // return xxx } https://github.com/go-gorm/opentelemetry/blob/v0.1.6/tracing/tracing.go#L46 https://github.com/redis/go-redis/blob/v9.6.1/extra/redisotel/config.go#L57 按理说肯定要先Set才能Get,而实际上otel采用了委托的方式让我们可以先get然后再set 代码追踪 otel包的代码也很简单, 就是为了包装一层标准, 实际上是调用了global包 package otel // import "go.opentelemetry.io/otel" import ( "go.opentelemetry.io/otel/internal/global" "go.opentelemetry.io/otel/trace" ) func Tracer(name string, opts ...trace.TracerOption) trace.Tracer { return GetTracerProvider().Tracer(name, opts...) } func GetTracerProvider() trace.TracerProvider { return global.TracerProvider() } func SetTracerProvider(tp trace.TracerProvider) { global.SetTracerProvider(tp) } global包的代码也很简单, 就是为了包装一层标准, 实际上是调用了global包 代码也没什么特别的, 只是使用了原子返回了一个默认的实例 最主要的就是SetTracerProvider方法, 它会通过TracerProvider拿到当前的实例(gorm,redis已经用的那个) 然后把当前要设置的tp传递给原来的的那个(且只会执行一次) package global // import "go.opentelemetry.io/otel/internal/global" import ( "sync" "sync/atomic" "go.opentelemetry.io/otel/metric" "go.opentelemetry.io/otel/propagation" "go.opentelemetry.io/otel/trace" ) var ( globalTracer = defaultTracerValue() delegateTraceOnce sync.Once delegateTextMapPropagatorOnce sync.Once delegateMeterOnce sync.Once ) type ( tracerProviderHolder struct { tp trace.TracerProvider } propagatorsHolder struct { tm propagation.TextMapPropagator } meterProviderHolder struct { mp metric.MeterProvider } ) func TracerProvider() trace.TracerProvider { return globalTracer.Load().(tracerProviderHolder).tp } func SetTracerProvider(tp trace.TracerProvider) { current := TracerProvider() if _, cOk := current.(*tracerProvider); cOk { if _, tpOk := tp.(*tracerProvider); tpOk && current == tp { // Do not assign the default delegating TracerProvider to delegate // to itself. Error( errors.New("no delegate configured in tracer provider"), "Setting tracer provider to its current value. No delegate will be configured", ) return } } delegateTraceOnce.Do(func() { if def, ok := current.(*tracerProvider); ok { def.setDelegate(tp) } }) globalTracer.Store(tracerProviderHolder{tp: tp}) } func defaultTracerValue() *atomic.Value { v := &atomic.Value{} v.Store(tracerProviderHolder{tp: &tracerProvider{}}) return v } 图解 ┌───────────────────┐ │ │ │ │ │ tracer.Start() ├──────────────────────────────┐ │ tracer.Tracer() │ │ │ │ │ │ │ 6. 实 际 是 使 用 delegate 去 调 用 对 应 的 方 法 ├───────────────────┘ │ │ │ zrpc.MustNewServer() │ go-redis/gorm/x │ │ │ tracer = otel.GetTracerProvider()──┐ │ │ │ │ │ │ │ │ │ 4. 设 置 链 路 追 踪 服 务 提 供 者 2. get global default │ │ │ │ │ ┌───────────package global───────────── │ ───────┐ │ ▼ │ ▼ │ │ otel.SetTracerProvider() │ ┌───────────────TracerProvider() │ │ │ tp = 0x03 │ │ │ │ │ │ │ │ │ │ │ │ │ │ ▼ │ 3. return global default │ │ ┌─ global.SetTracerProvider() │ │ │ │ │ │ │ ▼ │ │ │ │ │ ┌─►globalTracer tracerProviderHolder = 0x01 │ │ │ 5. 修改当前全局默认 │ │ tp tracerProvider = 0x02 ┌────┐ │ │ │ │ │ │ delegate trace.TracerProvider =│nil │ │ │ │ ▼ │ │ │ │ │ │ │ globalTracer tracerProviderHolder = 0x04 │ │ │ │ │ │ tp tracerProvider = 0x03 │ 1. init global default │0x03│◄─────┘ │ │ │ └────┘ │ │ └──defaultTracerValue() ▲ │ │ │ │ │ │ └──────────────────────────────────────── │ ─────┘ │ │ │ │ │ │ │ │ │ │ │ │ 5-1. 把 delegate 从 nil => 0x03 │ │ │ │ └────────────────┘ 调试断点的值也能说明这一点
- [音乐] 怀旧 - 小小的一片云呀
-
[职场话题] 一大早到公司被同事怼了,因为他懒得开双重认证,我还不帮他取消
上个月开会,为了加强网络安全管理,更新了邮箱策略,强制开启 2FA ,每天首次登陆都要验证码。我平时用 1Password ,一键填充没啥太大影响 今早上班,有个部门同事问能不能取消 2FA ,登陆每次都要验证码很不方便。我说是上面的决定,有异议可以找我老大讲,我只负责执行不参与决策 因为他手机没更新,用起来很麻烦,我主动推荐了几个替代软件,他回了一句懒得弄。当时就有点生气,没理他,反正这事我说的又不算。一大早的碰到个 213 ,影响摸鱼心情 过会又私聊我,能不能他单独取消认证,反正有没有黑客攻击他,我当时就黑人问号了,说当然不行,公司统一设置的,然后就被怼了,说我不灵活,跳不出条条框框,巴拉巴拉一堆(插句题外话,我们公司跟安全行业沾点关系,性质比较特殊,网络攻击和钓鱼家常便饭了,光运维和安全部门就 40 多号人) 遭不住了,不是哥们你谁啊,先不说能不能单独设置,我凭啥给你取消认证?万一出了安全事故你替我进去怎么的?之前也遇到过缺根弦的,今天这种是头一次见 顺便问一下,这种事要不要给领导题一嘴?
- [Apple] iPhone Mirroring 的两个问题
-
[北京] 最近一直掉头发,北京哪个医院治脱发比较好
18 年的时候掉过一阵子,后来没管它,自己好了,现在真不能再掉了,再掉就秃了,求推荐北京的医院
-
[Visual Studio Code] vscode 要闪瞎我的双眼啊,本来视力就不好
版本 1.93.1 ,windows 版本 双击标题栏在最大化和非最大化之间切换,闪电一般的效果,铝合金狗眼也扛不住啊....
-
[NAS] 新手求教 为啥我的 qBittorrent 会自己定时下载某个特定的文件?
前几周在黑裙上装了 nastool ,qBittorrent 等服务, 这两天发现 qBittorrent 总是有一个下载任务,删了过段时间又会自己加入下载, 结合 nastool 的日志时间和文件下载时间, 感觉像是 rss 订阅下载的,但是我又没有相关的订阅。 请教下怎么排查? 自动下载的文件 qBit 日志 nastool 日志