
小天管理 发表的所有内容
-
[酷工作] 二本前端应届 日语 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 日志
-
[Android] 马上发布的 iqooz9turbo+怎么样,看着挺猛
9300+ 6400mah 196g 双频 gps 屏幕好像升级成了小米 14 同款华星 c8 线下价格 16+256 2499 16+512 2899 不知道发布会会写多少
-
[问与答] 和学妹微妙的关系 —— 后续
原文 和学妹微妙的关系,我该怎么做? 看到很多 v 友催,来补后续了。(其实第二天下午我就在原文 APPEND 了第三条附言。) 时间线拉回 9 月 20 日,看完每个 v 友的评论后,那时心中有了些想法和决定。六点,准时下班附会。 9 月 20 日晚 晚上,我们在商场碰面,吃的淮扬菜。 那晚她面无血色,略显憔悴,她说她例假第二天都很虚弱。 淮扬菜不怎么合她胃口,吃了没多少就回酒店了。 我坐沙发,她坐床上。 那晚聊了很多我想问的问题,比如她的理想型是什么样的,未来有什么规划,对结婚的想法。(那时的我已做好表白的准备。) 但她说: 她不接受异地,不考虑远嫁,只会留在重庆,态度很肯定。 很显然,她很清楚知道自己想要什么,而我并不是她理想的那个人! 我做不到放弃这边的一切,远离家乡去重庆发展,她也是。 所以,其他条件再符合、两人再搭又怎么样呢? 明知结果会失败,还要固执的去做吗? 我不是处男,我不是第一次谈恋爱,我更不是阳 w ,我只是不想谈一场没有结果的恋爱,我不是只想玩玩而已,我想谈能走到最后的恋爱。 心里已有想法,我也没再说什么,开始聊其他的话题。 学妹可能看出我的异样,说饿了,还想再吃点烧烤。 但后来的话始终都没说出口。那晚两点多到家。 9 月 21 日 白天陪学妹去了鸡鸣寺(我没进去),逛了玄武湖,两人都逛累了,下午回家各自补觉。 晚上 6 点半,学妹问要不要一起吃一起去夫子庙,我表示晚饭吃过了,晚上想休息会,没去。 晚上 9 点 02 分,学妹发了来南京后第一条(也是唯一一条)朋友圈 —— 夜游秦淮河的游客照,配文** [她仍在这里守候,隔江遥盼那城楼] **。默默点了个赞,夸照片拍的好看。 9 月 22 日 一天无话。 学妹自己去玩了。 下午三点,学妹说找到一家经常在重庆吃过的川菜馆,晚上她请,位置在明瓦廊。 我以距离太远为由委婉拒绝。 约一小时后,学妹说我家附近也有一家分店,晚上就在那吃,想想答应了下来。 晚上,茶颜悦色配川菜,说不上来的味道。 学妹是十足的 E 人,也可能她自己故事确实很多,在她房间又聊到晚上十点。 她说她不想上班想到处玩,我说什么时候不愁吃穿了就可以; 我说“我给你介绍个学长,包配你”,她说“别,我还小,不想谈”。 她说她 11 月想去大理,我说国庆过后,我就没假了,只有过年。 她说那可以过年再去一趟。她喜欢大理。 最后 她跟我再次确认了国庆的行程,让我 2 号过去。我说行,到时候看看。 我让她收拾好行李,定好闹钟,早点休息,别误了飞机。 随即道别 9 月 23 日 这个时候,她已回到重庆,向我报了平安。 我 我知道我令 v 友们失望了,很多 v 友看的火冒三丈,看的恨铁不成钢。 或怂或理性或想法过多,我跟她都不是对方的最佳人选。 我不想谈一场轰轰烈烈的恋爱后,最后又因早就知道不可能妥协的问题,黯然收场。 不表白有可能造成遗憾,但如果走出那一步,结局不是更令人遗憾吗? 有花堪折直须折,莫待无花空折枝。 此花有意非向我,且留芬芳待他时。 最后 有可能对她来说我就是个朋友而已,有可能她也知道在一起的结局,有可能她的段位比我高,也有可能......,但无论何种,我跟她的故事也到此为止,日子继续恢复平静~ 和学妹微妙的关系,就让 TA 顺其自然吧~ emmmm ,已做好被骂的准备,请~ 以上皆真人真事
-
[程序员] chrome 升级到 129 之后 Vue3 项目打包白屏
升级之前 chrome 是 128 ,升级后打包后直接白屏,没有任何报错,dev 下是正常的。 前端大佬们应该如何排查呢? 使用的是 vue3+elementplus 2.7.1
-
[VPS] 供不起了 bwg 90 刀的 ThePlan 换 40 刀的 GIA
- [项目管理] 做好项目管理的 6 个方法,提升团队协作效率
- [北京] 北京还有带棚的电动三轮或四轮吗?老人接送孩子上下学用
- [问与答] 3k 以内办公笔记本电脑有推荐的吗?
老妈在酒店做财务相关工作,需要一台笔记本电脑,主要用处就是做做 excel 表格,也有插 U 盘使用的需求,V 友有推荐的吗?- [问与答] 国庆旅游求攻略
- [字体排印] 有谁知道这张图背后展板上的喷绘文字是什么字体吗?网上不知道该搜什么关键词呢
- [问与答] 堡垒机你们现在都用啥?
- [问与答] Gmail 邮件用 Spark 发送不出去
很喜欢 Spark 的 UI ,但是绑定 Gmail 邮箱只能收取邮件,发送一直失败。绑定的 QQ 邮箱却可以正常收发邮件,没有任何问题,之后尝试了苹果自带的邮箱收发也正常,Outlook 也是正常,唯独 Spark 不行。想咨询一下各位佬,这种情况该怎么办- [问与答] 国庆想出去玩,大家有没有租大疆无人机的经验
想出去那无人机在草原拍点视频,但是大疆 mini3 买下来也 4K+了,想了解一下租无人机的话有没有什么靠谱的平台?还请大家指点一下,- [生活] 求求了,以后在 V 站的 '迷茫贴' 能否标记一下有多少万存款,我好直接不点进去看。
例如是存款 10 万以下,100 万以上,或者是具体 300 万,500 万这种具体。 并不是说酸不酸,或者是发贴者凡尔赛的问题,而是过滤,我自己混得那么差,就这点水平也给不了百万大佬什么建议。看了半天看到存款 250 万,我自己 5 万都没有,建议个屁;真是浪费时间。- [程序员] 大佬们,怎么扒券商客户端的交易接口?
最近想看看怎么扒券商的交易接口,发现对我来说挺难的,有没有什么好办法,或者说: 如果请一个人帮忙扒出来某家券商的交易接口,包括长连接协议的封包方式,大概得多少钱? 大概包含:登录、账户信息查询、买入、卖出、撤单。 应该是券商的通达信、同花顺那种的交易端。