错过的都是命,得到的才是人生

今天新家算是刚刚收拾好了。最近一直处于比较忙碌的状态,工作的,生活的,都得一个人搞定,偶尔跟家里汇报一下。简单记录一下好了。 5月底开始定下一套二手房之后,就开始了比较漫长的流程阶段。请了一些假,今天为止,除了更换的冰箱还没到之外,其他的基本上暂时都搞定了。已经住了两天,自己一个人住还是挺好的。就是老担心出门忘记带钥匙,于是换了个指纹锁。其他的东西能不换的都暂时没动,等慢慢再看了。 家里爷爷身体不好,也回家了一段时间,大家都要注意身体。身体真的是本钱,对爷爷是有一点点遗憾的,一个是没有来得及带他们去台湾玩,另一个就是自己对婚姻的事情一直不怎么上心。想到还是带他们去了一些地方玩,在从上大学之后的这10年里,给爸妈联系的倒不是很多,但是每周基本上固定的会给爷爷奶奶打电话,工作后,给他们买了手机,就经常能够视频,心里也稍微能好受一下。 工作上的事情,即将迎来自己毕业工作的整整5年。之前由于转岗,没能在工作4年的时候晋升,今年相对顺利,在中间件成为了技术专家,和一同入职的同事比起来,不算是优秀吧。最优秀的同学在3年的时候,就完成了,稍微晚一点的是4年,而自己5年了,但也算达成了一个小目标,多和自己比比就好了。起码5年到自己认可的7也算是对得起自己。 爱情上的事情,一言难尽。 回顾这5年,很多事情,本来可以做得更早,但是在年轻的时候,没有这种意识,导致错过了很多,比如带爷爷奶奶旅游,这几年物价上涨,房价飞涨,不过现在房子买了,工作也上了一层,跟新主管聊晋升的时候,未来也有了一个初步的,比较清晰的个人成长目标,怎么达成还没想好。未来还有很多事情要做。 总之,最近一个比较深的感触,错过的都是命,得到的才是人生。……

阅读全文

Recently

最近有点烦,焦虑,感情,工作,生活,都不是很顺利。难以排解。 生活上,发生了太意外的事情,毫无准备,却也无能为力。 感情上,突然进入了一个难以处理的境地。那些曾经不是问题的现在都变成了问题,难以逾越。 工作上,焦虑,对现状和未来有不少担忧,希望未来几个月能想清楚吧。 总之,年龄大了,有时候想的太多,反倒让自己快乐还是很难的。算了,先换个头像吧。……

阅读全文

Mac迁移导致Golang无法debug的问题修复

最近,使用Mac的迁移助手之后,突然出现一个奇怪的问题。我的golang 用goland 或者vscode都会出现间歇性的无法debug,表现为第一次debug,断点可以停下来。再调试一遍就会直接走过 而如果你直接在项目中执行 dlv debug 会看到如下的报错 Unexpected header files xxxx uint64_t 之类的 网上搜了一下都没有解决。。 并给出了具体的文件目录。这个看着是c库的一些文件,当时我记得迁移完成后,brew提示有一些库有问题。 执行 brew doctor 会看到 Warning: Unbrewed header files were found in /usr/local/include. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted. Unexpected header files: /usr/local/include/node/openssl/archs/BSD-x86_64/asm/crypto/include/internal/bn_conf.h /usr/local/include/node/openssl/archs/BSD-x86_64/asm/crypto/include/internal/dso_conf.h /usr/local/include/node/openssl/archs/BSD-x86_64/asm/include/openssl/opensslconf.h /usr/local/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/buildinf.h /usr/local/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/include/internal/bn_conf 于是,拷贝下来,一个for循环,将这些文件全部删除。之后再执行dlv debug 就好了。。……

阅读全文

Social Network Break

最早我有QQ,没有什么人找我谈工作。想看就看,不想看就不看,半个月后再回复也行。 后来QQ没了,我开始用微信,加了几个人,偶尔朋友圈发个照片,发个吐槽。 后来微信成了工作群,分组分类又是很麻烦的事情,所以基本能不发就不发了。 后来有了钉钉,彻底毁了生活,无尽的钉与无尽的免费工作电话骚扰。不分时间和地点。 微博又太过公开,娱乐至上,也基本废弃。 人和人就是这样,在不断的走近中,最终破坏彼此的界限。让一些人走近自己最私密的圈子,之后则开始顾虑,在想要被看到,到想被少数人看到,到不想被任何人看到,逐步变得更孤独。 技术产品带来美好的同时,又亲手将它毁坏。而技术人员本身最终会变成客服,所有的生活变得不值一提,就像得到的与失去的。 –来自一个周末的吐槽。不要介意,我只是随便说说,毕竟,谁也不容易。……

阅读全文

Record for 2018

2018总结 工作 1.1 养活自己的 2018年,工作上一切如常,第一感觉比往年更累,似乎也没啥可说的。事情很多,也很杂,一些事情没有好的设计和提前规划,希望来年能腾出一点时间,做一些好的设计和方案。 1.2 技术上 个人的技术上,底层中间件熟悉了一些,对Golang熟悉了不少,也读了一些代码,19年多些完整的分布式和容器服务的阅读列表,让知识体系更完整些。 生活 2.1 文哥 最重要的放在最前面,感情依然很好。差不多快5年了。“最爱你的人是我”。 2.2 花钱买到的很值的 年中的时候,买了一个 Bose QC35 蓝牙耳机,体检极佳,目前使用率极高,在火车,飞机和加班的时候,非常好用。年末的时候文哥赞助我入手了一台iPhoneX,省心不少。也不用折腾流畅性了。 2.3 迁移的软件服务 从 Google Reader 到 Feedly,终于在年中末的时候,将 Feedly 进行了注销,从此告别 RSS 了。从此也没有好的信息来源了。基本就靠主动搜索和读书了。 有了 iPhone 之后,除了Google Photos和Gmail,其他的 Google 产品,比如日历记事,Keep笔记,都全部迁移到了iOS自带的。 印象笔记,Bear 等也在今年进行了废弃,转换过程中也将自己的笔记基本上通读了一遍,精简了不少。告别了收集癖。基本都是自己整理的了。目前笔记直接使用 iOS 的 notes 读书除了一些买的书,大部分还是读电子版,iOS自带的读书软件很好用。笔记本和手机可以同步。 2.4 一趟旅行 团队outing去了一趟塞班,月亮却是国外的圆,水却是国外的清。 2.5 其他 来来回回,总算把杭州户口搞定了。买房的事情提上日程,只有这时候,才觉得自己这几年做的似乎并不那么好。 手上也没多少钱,有合适的就开始摇号中。31号跟同事和文哥在杭州吃了个饭,算是跨年了。 各种App的所谓年终总结也就不贴了。电影看的比较多。音乐听了一些老歌。 总结 总结的话,就是感觉累,分身乏术,离年轻人越来越远,热点大多数也不知道,在这种事情上越来越后知后觉,生活和工作上使用的东西,也越来越追求简单够用。不再追求那种大而全的软件或者功能,越简单越好。 2019年已经来了。希望一切更好吧。……

阅读全文

Wireshark可用的BOLT协议解析插件

https://github.com/leizhiyuan/bolt-dissector 自己平常看协议,经常看到眼花,所以写了一个解析 SOFARPC 中 BOLT 协议的 wiresharks 插件 Wireshark是排查网络问题最常用的工具,它已经内置支持了上百种通用协议,扩展性也好,对于私有协议,还是得自己写的.对 C 不熟,但是 Lua 看了一下语法,还是挺简单的. 插件是使用lua开发的,安装比较简单,以OS X平台为例: 将协议解析脚本拷贝到/Applications/Wireshark.app/Contents/Resources/share/wireshark/ 目录 (非必须) 编辑init.lua文件,设置disable_lua = false,确保lua支持打开,默认是打开的.一般就不要操作了. 在init.lua文件末尾增加,当然你也可以写全路径. dofile("bolt.lua") `` 再次启动Wireshark,会对12200端口的数据流使用脚本解析,已经可以识别BOLT协议了。 参考文档 https://wiki.wireshark.org/LuaAPI 附上 lua脚本 目前只支持 boltv1,稍后看看改一下支持 boltv2和 tr,方便大家理解 和抓包. --- --- Created by bystander. --- DateTime: 2018/11/16 8:57 AM --- -- declare the protocol bolt_proto = Proto("bolt", "SOFA BOLT Protocol") -- declare the value strings local vs_proto = { [1] = "BOLT", [13] = "TR", } local vs_type = { [1] = "Request", [2] = "Request Oneway", [0] = "Response", } local vs_cmdcode = { [0] = "HeartBeat", [1] = "Request", [2] = "Response", } local vs_version2 = { [1] = "v1", [2] = "v2", } local vs_codec = { [1] = "HESSIAN_CODEC", [2] = "JAVA_CODEC", [11] = "PROTOBUF_CODEC", } local vs_responsestatus = { [00] = "Success", [01] = "Error", [02] = "Server Exception", [03] = "Unknown Exception", [04] = "Server Thread Pool Busy", [05] = "Error Communication", [06] = "No Processor", [07] = "Timeout Exception", [08] = "Client Send Error", [09] = "Codec Exception", [10] = "Connection Closed", [11] = "Server Serialize Exception", [12] = "Server DeSerialize Exception", } -- declare the fields local f_proto = ProtoField.……

阅读全文

27 Years Old Man

又是一年,工作进入了第5年了。身体各方面略有一些下降,生活上,也未能彻底稳定下来。 由于各方面的原因,博客基本荒废,最近抽空搞成了go 版本的 hugo 生成静态网站的形式。速度快很多,也没有hexo那么折腾,写作的欲望有一些上升。下一年稍微还是写几篇。 2019年,希望几个事情能有一些推进,其他事情一切顺利,顺便祝自己生日快乐。……

阅读全文

skywalking插件开发的注意事项

最近蚂蚁金服中间件开源了 sofa 相关的部分组件,比如 rpc,欢迎大家参与讨论贡献,为 rpc 做链路适配的时候,skywalking 现在快到5.0版本了. 已经不支持 h2暂时,开发过程中了,环境的搭建.以下部分字段不能少.否则外面无法连接 es. docker run -d -p 9200:9200 -p 9300:9300 -e "network.host=0.0.0.0" -e "transport.host=0.0.0.0" -e "network.publish_host=0.0.0.0" -e "xpack.security.enabled=false" -e "network.bind_host=0.0.0.0" -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:5.5.0 这条命令会搞定. 同时 application.yml 文件中 storage: elasticsearch: cluster_name: docker-cluster cluster_transport_sniffer: false cluster_nodes: localhost:9300 index_shards_number: 2 index_replicas_number: 0 ttl: 70 这一段改一下. 其他的一些网上已有的文档,可以看看.SkyWalking 源码分析 —— 调试环境搭建……

阅读全文

最近的一些变动

现在是凌晨1点了,还在公司,想随便写点什么,也算是一点记录吧. 工作三年,经历了不少的事情,有一天,突然明白.那些曾经对我重要的,可能并不是我真正想要的,想要成为的,所以基于对自己未来的规划.和自己更想做的,大概在两个月前开始准备转岗.前前后后,很多人跟我聊,希望我留在原岗位,会有更好的"发展”.最终还是走到了工作交接这一步. 这个博客原来的名字叫做 “寻找妹子和窄门”, 后来,大概一段时间后,和文哥认识,现在三年多过去了.一切安好.余生请君指教,还是我的签名,也是我的承诺,于是这个博客的名字改成了寻找窄门,也有很多人问我,寻找窄门到底是什么意思.这个窄门其实来自圣经中的一段话:“你们要从窄门进去;因为那通向灭亡的门是大的,那条路是宽的,从那里进去的人也多”,我当时想表达的意思是,我们有很多的选择和不同的路,那些在大多数看来,这个选择更好,可能并不是未来几年看来更好的选择,所以我希望,能够在这种得失选择中,不要受到公司对自己的 job model, 或者title: 的影响.遵从内心的感受,更多的关注自身的兴趣和梦想,让自身的能力发挥最大化的体现. 下个月末会进入蚂蚁中间件做基础技术的研发.也算是个人职业生涯中比较重要的一个改变,在这三年中,我偶尔会想,我在目前的团队继续呆着,明年成为了测试技术专家,又能怎么样呢,这是我想要的吗,我想成为自己心中认为的技术专家,我想得到的不是一个 title, 而是真正的能力上的提升,更多的技术上的认可.更跟随自己内心的感受. 从测试开发工程师到中间件研发工程师,新的部门,会有新的挑战,希望下一个三年,能在中间件有更大的突破.……

阅读全文

分析代码调用关系的利器-Flow

今天推荐一个不错的软件.是idea 的插件.名字是Flow, 官方称:A better way to understand your Java applications,原理就是通过 java-agent 修改字节码,配置了拦截器,然后真实地跑一个测试用例,或者启动一下项目,就会生成一个真实的调用关系.官方地址:http://findtheflow.io/ 之前阅读源代码,对于抽象类,或者接口,静态阅读代码不太容易确定具体的调用类,因此阅读有一定的阻碍,当然 debug 也行..但是这个可以通过跑用例,或者简单的测试用例,理清调用关系,非常不错. 可以对代码结构有一个整体关系 安装 安装比较简单:https://plugins.jetbrains.com/plugin/8362?pr=idea 直接安装idea 这个插件,然后重新启动 idea, 安装完成后的效果. 使用 使用更简单,直接点击上图中的按钮,开始跑一下,即可,如果启动成功.控制台会有显示. 然后,会在本地开启7575的端口,来显示结果. 效果 注意,在结果页里,可以和 idea 源码交互,对着方法点右键,可以直接定位到 idea 代码中的源代码,非常方便. 其他 其他,就是 可以在配置里设置根据哪些类,这样一些工具类啥的可以直接忽略了. 使用了一下,还是不错的.但是这个有个问题,如果你的项目自定义了 classloader/ 或者使用了自定义的容易,这个由于没有 mvn 的 jar 包,可能会报错,类找不到.暂时没有好的办法.但是阅读开源代码基本没有问题了.……

阅读全文