工地 > 再一次重构站点
2021-12-13
由于github登陆方式的改变,需要重新编译,
再一次重构站点。
主要是用户系统和缓存。
感觉改变了不少,又感觉什么都没改变
接下去要一个一个重构代码了
希望没有过度设计
代码 > golang pprof记录
2021-07-07
mud 客户端有内存泄露,调试了一把,记录一下。
首先,引入 profile库
import "net/http/pprof"
然后合适的地方引入
runtime.SetBlockProfileRate(int(10 * time.Second))
runtime.SetMutexProfileFraction(int(10 * time.Second))
Router.Handle("/debug/pprof/").HandleFunc(pprof.Index)
Router.Handle("/debug/pprof/cmdline").HandleFunc(pprof.Cmdline)
Router.Handle("/debug/pprof/profile").HandleFunc(pprof.Profile)
Router.Handle("/debug/pprof/symbol").HandleFunc(pprof.Symbol)
Router.Handle("/debug/pprof/trace").HandleFunc(pprof.Trace)
SetBlockProfileRate是设置记录block的代码的值,单位是纳秒
SetMutexProfileFraction是设置记录锁起效代码的值。
然后打开debug/pprof页面
allocs 4 block 0 cmdline 17 goroutine 232 heap 0 mutex 0 profile 21 threadcreate 0 trace
其中重点关注的是 goroutine,heap,block几块
goroutine是看实时的goroutine数量和发起位置。如果不停增长,可能是泄露
heap是堆,数值是一直增长的。点入后看到的数据,建议加上gc=1参数强制gc一次
第一行的数字大概是
2: 58368 [2474: 8919408] @ heap/1048576
第二个数字58368是当前堆内存大小,最后一个数字1048576是最大使用的堆内存
然后是按当前使用内存大小的堆信息,大概是
1: 57344 [1: 57344]
第一个57344是当前使用的堆内存
方括号内的57344是最大使用过的堆内存。
网络 > [记录]aliyun vpc的坑
2021-02-25
今天给一台阿里云服务器换了vpc,踩了点坑
表现为网站无法打开,vnc链接后服务器无网络
总结如下
- 切换vpc需要改ecs的网络配置
- ecs的网络配置,用dhcp未必起效
- 手工设置ecs的网络配置时,可能需要设置网关
- 网关地址没找到说明,我是把网段最后几个保留ip按个ping,再倒数第三个能ping同,然后设为网关,通了。
另外吐槽下,阿里云的工单改版。
不能直接提交工单,出来个伪对话框,普通工单120分钟内回复,紧急工单90分钟内回复,付钱10分钟内回复。
很好,很强大。
网络 > 腾讯企业邮箱开始不干人事了
2021-02-19
收到了腾讯企业邮箱的邮件
贵公司正在使用基础版的企业邮箱,目前有 5 个成员使用容量已超过普通帐号的 2G 上限,当前为超容使用中。建议将贵公司的企业邮箱升级到专业版,并把这些成员账号升级为VIP账号,即可不受容量限制。同时,专业版提供更多便捷管理功能,让工作更高效。了解专业版及VIP账号 注意:5天后,若邮箱账号未及时升级到VIP账号,2月24日起,这些账号容量将降级为标准容量。超出容量限制的邮箱账号将无法收到新的邮件,请提醒成员及时清理历史邮件,以免影响邮箱的正常使用。
无力吐槽。
啥玩意?
你要收费正常,之前的用户你觉得给的容量太多也正常。
但提前一周不到给个这个邮件?
这是准备做商业客户的态度?
你微盘送的免费空间吃了吐也就算了。
做对公业务的,早点提醒会死么?
但凡遇到个付款要审批的,怎么搞?
代码 > [记录]踩了golang的defer/recover的坑
2021-01-18
今天写代码的时候完了个花活,想复用recover,结果炸了……
体现在recover没起效,直接panic出来了。
查了下,defer里一旦再调用函数,原有上下文就变了,recover就失效了。
想想也有道理。
改了个骚气代码,解决了
q.Recover = func() {
defer n.Recover()
if r := recover(); r != nil {
panic(r)
}
}
网络 > 阿里云cdn全站加速无法缓存图片的解决
2020-12-31
部分php生成的图片无法缓存,响应头永远是 x-cache: MISS TCP_MISS dirn:-2:-2
x-cache:
MISS TCP_MISS dirn:-2:-2
x-cache:
MISS TCP_MISS dirn:-2:-2
经过测试,需要设置缓存过期时间,并移除掉 Pragma 响应头
apache为例
Header unset Pragma
为什么这种特性在文档没有……
奇葩……
我偏要说 > [备份] 国家广播电视总局发布规定「网络直播不得为劣迹艺人提供公开出镜发声机会」,你支持吗?
2020-11-30
https://www.zhihu.com/question/431922368
支持。
看着那些口口声声不支持的笑笑。
得了吧,上层建筑之所以是上层建筑,是因为付出了血与火的代价的,不管是谁的代价。
能够让别人付出代价本来就是一种最珍惜的能力。
老百姓哪管你这种有的没的,能让老百姓过上好日子的就是好上层建筑。
什么叫群众,不是人多就叫群众,还是能带领最多的人才叫群众。
“最广大人民群众根本利益”
先能理解这句话再说吧。
说句大点的话,这个才是所谓的“普世价值”,只不过不同的国家因为实际的管辖区域/人员分布/民俗习惯等,采用了不同的形式去控制而已,粗暴直接一点或者文明清柔一点罢了。
再回到原题。
整治直播是为什么。
是为了放开直播的口子。
为什么要放开直播?
因为直播能吸引劳动力。
为什么需要吸引劳动力?
因为……
老大立下规矩,让大家一起喝汤。
你还在问谁是老大……
不知道这个回答能或多久,很久没7天了,稍微放纵一点……
代码 > 选择Golang的json schema库蛋疼了
2020-11-02
最近在整理数据验证这一块,看了下json schema下的3款golang 实现,十分蛋疼。
我对于json schema 验证库的要求比较简单,要求就是以下几点
- 能自定义错误信息模板
- 能获取错误类型,进行分类处理
- 能得到错误发生的数据的JSON Pointer
- 能获得错误发生的数据位置的Shcema信息,比如title,描述
这点,php的库
https://docs.opis.io/json-schema/1.x/php-validation-result.html
都能很好的满足。
换成go的库,各有各的问题
https://github.com/xeipuuv/gojsonschema
这个库相对而言最靠谱点,问题是没有JSON Pointer,也没有相关的Schema信息
https://github.com/santhosh-tekuri/jsonschema
这个库有JSON Pointer,但是错误信息只有 数据的pointer,schema的pointer,mesage,非常蛋疼
https://github.com/qri-io/jsonschema
这个库有数据Pointer,但没有schema的数据,只有message。
考虑要拉个库下来改一下了……
杂言碎语 > 放弃节食
2020-09-11
疫情体重反弹后,由于减少了运动量,体重迟迟降不下来,开始减少中午的食量。
从原先的馄饨或者寿司,降低到鸡胸肉+玉米+苹果,再到苹果+番茄,辅以跑代走,体重依然无法下降。
每周必然有1到2次暴食。
痛定思痛。
放弃长期的节食
可以偶尔节制下,长期节食除了折磨自己的意志以外,毫无用途。
上一波控制饮食,同样的体重能保持每周1公斤的减重。
这一拨完全压不下来,必然是策略错了。
Linux > 配置了下scrcpy,基本能正常使用的状态
2020-09-03
配置了一下scrcpy,大体如下:
1.还是使用usb连接,无线链接方式看起来太蛋疼,突然觉得自己的无线充电器白买了。
2.由于我使用的是gnome3环境,在设置里添加了一个快捷键 scrcpy -w -S --always-on-top
3.手机输入法对比了QQ,迅飞,搜狗后,用了搜狗。QQ在知乎评论时不稳定,迅飞没办法按Shift+6输入省略号,这明显影响本阴阳大师发挥。至于百度,不管系统自带的华为版还是新安装的,都不支持键盘输入中文,真是废物……
继续使用,看看感觉。
总体来说。似乎不如华为自己的多屏联动方案省心强大。