本文为 2023 年 8 月工作生活总结。
某工程,有多个协程,不同协程,最终按需要可能会调同一个C++写的动态库(用C做了一层封装),测试发现,在等待协程结束后,概率性出现较耗时问题。该工程实际是一个响应post请求的web服务,一般来说,平均大概20ms~30ms可完成一次请求的处理,但偶尔出现超过100ms的情况。限于时间,没有详细测试,且在实验室环境无法重现。猜测是go的协程调用同一so时,系统出现资源冲突,所以耗时,但没有理论支持,待后续写个测试示例看看。
用ffmpeg.exe对rtsp流进行截图,在网上找到的命令如下:
ffmpeg -i rtsp://192.168.18.18:554/1 -y -f mjpeg -t 0.001 -s 1280x720 test.jpg
但经测试,对于码率较高,分辨率较大的视频流,绝大部分情况结果是灰色图片,猜测原来在-t 0.001
。稍作修改:
ffmpeg.exe -timeout 5000000 -y -rtsp_transport tcp -i rtsp://192.168.18.18:554/1 -f mjpeg -t 1 -r 1 video/1.jpg
某一服务器使用的是麒麟服务器版,但没有安装g++。想当然使用命令安装:
# yum install g++
结果提示:
Error: Unable to find a match: g++
网上找了下,用下面的命令安装:
yum install gcc-c++ libstdc++-devel
可以成功安装g++。
但是,同一工程代码,在x86上用g++ 4.8.5编译正常,但在arm上用g++7.3.0编译出错,代码示例如下:
int Utf8ToGbk1(char *src_str, size_t src_len, char *dst_str, size_t dst_len)
{
iconv_t cd;
char **pin = &src_str;
char **pout = &dst_str;
cd = iconv_open("gbk", "utf8");
if (cd == 0)
return -1;
memset(dst_str, 0, dst_len);
if (iconv(cd, pin, &src_len, pout, &dst_len) == (size_t)-1)
return -1;
iconv_close(cd);
*pout = '\0';
return 0;
}
出错在*pout = '\0';
这一句:错误:从类型‘char’到类型‘char*’的转换无效 [-fpermissive]
。
因为接手一个项目,编译环境是单独的,与当前所用的虚拟机有些不同,虽然都是centos和debian,但从系统操作上看,似乎还是有点差异,无奈,只能在电脑上同时存放多个不同版本的虚拟机了。目前我已经不想折腾安装虚拟机,但手上的虚拟机,都是很多年前安装好的,硬盘空间只有十多GB,根本不够。提到我手上,磁盘占用率已经有95%了,其中~/.cache/vmware/drag_and_drop/
占了大头,但我不习惯直接把文件拖到虚拟机,在虚拟机开发。因为觉得虚拟机存放代码不安全,当然在物理机硬盘上放代码也不安全,虽然我不断担心硬盘会挂掉,但目前还没有发生。
月底某个早上,被同事叫帮领导安装台式机系统,下载ISO、帮同事要U盘,在格式化过程中,把E盘当成F盘了,于是发现一旦被格式化,用什么软件也恢复不了恢复。幸好当前进行的非常重要的事务的代码都已经备份了,没有太大损失。但我的个人研究用的代码工程,就找不到了,只能凭记忆重新写了。
本来有个项目不归我管的,我也没研究过代码,但事情紧急起来,默认都是全能行的,一句“很简单”,可能要耗我几个深夜的研究。手上的事越来越多了,只进不出,但不断扩展新的东西。开会领导说,不希望员工成为“苦行僧”,但像自驾游、打球这些,一来要金钱,二来要时间,反正我是没有资格的,毕竟人与人不同,人家是“生活”,我只是“活”。
月初大锤和大妞去外婆家,玩了半个月,我一个人在家,这段时间,耳根清静了很多,熬夜也很多,做了一次中等规规模的大扫除,和罗师傅去唐山路进行一次购书活动,他买了本版繁体《古文观止》,耗资10元,我买了三册《古代汉语》,耗资10元。由于对饮食无讲究,本来这个月开销少,结果手机屏幕坏了,买了台新手机,由于一直使用某米手机,不想丢弃数据,最终耗资1300买了台红某米手机。既然钱花了,于是破罐子破摔,又耗资400买了个音箱,再耗资300多给家里每人买了电动牙刷,所有这些虽然明面上是为了报复那块坏的手机屏幕,但都是许久以来所计划的。
大锤去玩的第二天上班,早上打完卡,屏幕就无反应,用刀拆机,没看到问题,到附近手机店问,师傅只看一眼就判断要换屏幕,200多块钱。因为刚换屏才一个月(上个月初在实体店换屏),于是回去换备用机。晚上找实体店,问之无货,再问何时有,对曰不知。于是艰难地使用备用机在某东下单,为赶在第二天收到货,没花什么时间选,后来才发现振动小,声音小,除此外,暂时也没发现什么毛病。
月底,大锤正式成为一名小学生,注册那天,学校提前说拿通知书带小孩去,结果上午只需要小孩在教室坐着听老师讲,然后立马赶赴加班现场,因为下午轮到大妞注册,时间上冲突,于是下午2点立马背着电脑赶赴学校开家长会。老师反映说很多小孩说口渴,我也跟老师反映学校的通知像挤牙膏一样,不太到位。因为各种忙,在晚饭前,实在忍不了吃了家中常备的泡面,我还自诩饥饿能靠意志力抵抗,还是年纪大了。
从我的观察,大锤还不知道上小学意味着什么,还是一如既往地玩,找借口玩,连每天写几行字的要求也没做到。大妞直接读幼儿园中班,由于没有写字认字要求,只吃喝玩睡,从老师反馈知,目前还能适应。
这几个月来,主要在汉字和字体方面做了些工夫。一方面,买了本竖版刻版的《说文解字》,还买了《古代汉语》;一方面,到图书馆借了相关的书,比如甲骨文、篆体等的书;一方面,到B站看万献初教授、邵永海教授的视频。在实践方面,个人还是学习很多东西的,比如知道了“月”字旁的很多字,都和身体有关。而对于小孩,主要是看书(而不手机)认一些有趣的字,比如“眉”就是眼睛上的毛毛,“鼠”最后一笔是尾巴、“象”第一笔是鼻子。
对小孩教育,我从来不在时间上做要求,因为慢慢来就是最快的,我相信时间的力量,我教小孩背诗的同时,也强调不能到处跟老师同学说,因为这些并不是去炫耀的。
本来计划用go+html实现一个记账的工具,但写了一些功能函数没有及时提交,又得重新写了。我记了十多年账,不舍得那些数据,也不信任那些APP,还是掌握在自己手里为好。