当前位置: 首页 > news >正文

2024年12月个人工作生活总结

本文为 2024年12月工作生活总结。

研发编码

Golang语言byte数组赋值

假定有如下变量:

var strCode string
var bCode [9]byte

现需将string类型转换成byte类型,如下:

bCode = []byte(strCode)

无法转换,提示:

cannot use []byte(strCode) (value of type []byte) as [9]byte value in assignment

在golang中,[]byte[9]byte是不同的类型。可用copy拷贝:

copy(inputStruct.Ets_code[:], []byte(input.Ets_code)[:9])

注意,copy第二个参数最好加上长度的限定。另外,也可用for循环单个字符赋值。

导出mysql数据表

使用mysqldump命令导出数据库表结构,命令:

mysqldump -h 172.18.8.18 -P 3306 -u my_name -p<密码> my_table --no-data > my_table.sql
或
mysqldump -u my_name -p<密码> my_table --no-data > my_table.sql

导入方法1:

mysql -u highway -p<密码> my_table < my_table.sql

导入方法2:

连接数据库
use mydb; # 选数据库
source /tmp/my_table.sql;

经测试,在TiDB数据库导入MySQL数据表时,只能用方法2,方法1行不通。

迁移gitlab仓库

据有关消息称,Gitlab 将停止为中国区用户提供服务,可将账号迁移至国内一家公司。有60天迁移期,过期可能删除账号,先不管其真或假,多个地方备份,总不会错。为此,专门抽了一些时间将先前的仓库同步到github上。

github提供import功能,但经测试不成功,因此只能先克隆再上传,命令如下:

克隆gitlab仓库:git clone https://gitlab.com/latelee/gitee-koa.git
进入目录:cd gitee-koa
在github上仓库创建同名仓库后,再添加:git remote add github git@github.com:latelee/gitee-koa.git
推送到远程仓库:git push github

十年前就开始使用gitlab了,当初看中的是其私有仓库,现在github也能建立私有仓库。不久前,github也提供了免费版本的copilot。可惜经常连不上,无法使用。

有关研发流程的思考

有感于当前的研发实情,流程方面还是没有形成,或者形成了但没有很好落实到位。目前没有专门的研发管理人员,流程也只是在文档中(有的没有)。如果团队磨合得很好,问题倒也不大,当然,在管理上肯定必须要有相关流程制度。

举例一些小事:

有的事务,虽然已经提过,但有时上游交付的东西不够详情,靠自己猜或用工具测试出来。这也是当初写工具的驱动力之一。因此,需要确定流程,并宣贯到位。

如微服务的版本迭代升级,因为有2套不同的环境,已经确定了版本先提交到内网仓库,再同步到专网仓库,最后更新到生产环境。此过程使用harbor管理镜像,因此版本有迹可寻,有时候出于调试需要,有的版本不走仓库,而是通过挂载方式运行程序。有时,测试通过后,就一直使用了。当后续有版本通过仓库更新时,因为用了挂载方式,版本并不是最新的。因此,需要确定流程,研发人员要清楚理解。

如前几年开会确立了由专人对接现场,整理问题,再转到研发,将问题分类好后,处理起来非常快,如有的是已知问题,有的已有解决方案的。如果不确定,转研发,再归档。这是好的,但没有执行到位。

如有的问题,起初,某现场已经报了,也提了方案了,但整改没有到位,一年后,其它现场依然陆续提出。比如,某版本号的显示问题,一年多前就陆续有不同的现场报了,再如今,还有现场打电话来问。比如,某个程序可以自动更新不同时间的版本,但偏偏默认起始时间为2020年,但部署时没修改,于是要花很久才轮到2024年年底,偏偏时间又紧急,占用网络带宽不说,影响现场就不好了。这2个问题很好解决,前者就是接口加上显示界面的事,后者在启动时将时间修改为当前前几天即可。这就需要有项目需求和问题的跟踪机制了。

当然,个人负责的事,还是要有责任心的。上述所述,或多或少是个人接触到的,因此会去思考,至于解决,就是相关方的事情。对于个人的程序,为方便起见,会额外加料,比如,将重要的实时日志,输出到http接口,直接用浏览器或curl即可查看,基于此,还会再添加重点模块的异常信息,以及系统资源监控,等等。这些都是为了方便自己而已。

当然,上面所述,是作为个人的我,站在个人岗位,所作的不成熟的个人思考。上层肯定有上层的设计和考量,比如看重创造的价值,而不是个人的努力;看重产品整体,而不是各模块个体。限于能力水平、制度和位置,个人是不敢越过的。但是,我在个人岗位,还是要求自己向较好的那一方发展,并影响一些人。

国产化系统适配

重新下载了新版本TiDB,编译了三大平台的版本。此过程还是比较麻烦和耗时的——这里的耗时包括查问题消耗,以及编译消耗。在编译过程中没有详细记录,后续还得再试一次,以便形成实操性较强的文档。

年底杂事

这几年每到年底,都会有很多事。版本切换,版本上新,需求变更,值班保稳定,等等。一些计划内的事就被中断了。比如,研究系统镜像livecd的自动安装;找系统依赖库源码编译测试,等等。起了头被中断,后面又得重新去梳理思路。

挑战和应战

有些时候,我喜欢挑战,有一种不服输的念头。

当年,有感于网络的开源精神,我也做了一些东西,或放到github,或发表文章。如今的网络环境,查点有用的资料,要会员,要积分,要钱。不过,有些(不涉及版权的)技术和代码,我还是坚持分享。

像做livecd,onvif等,虽说有一定的工作需求驱动,但还是凭借内心去做。或者说,有个东西暂时难倒我了,但要顶硬上,要克服它。比如现在国产化适配,就遇到龙芯编译环境问题,官方没有给出方案,但自己就想着去解决,往小了说,是不服输,往宏观上说,是为国产化事业推进贡献力量。

生活记录

教大锤英语的构思

这个月主要做的事有:

整理英语启蒙书的文本,并转换成音频,当前使用的软件不太满意,github上有,但要部署python,没有找到方便的,后续还要继续找。

慢慢教大锤一些单词,同时注意教他怎么拼。我的设想是按学拼音的法子教,音标和与拼音相近的读法,也一并教并做区别。

在B站看到一个视频,讲英语的2个基本句型,经分析,的确不错,也有意教给大锤。

后续计划去一些地方了解英语培训行情,把培训的花费转换内部使用。假定一学期培训要花1千块,则将其转化成小时花费,将钱给大锤或我自己。用这些钱去玩,去吃喝,不失为一件乐事。就怕大锤或其它人不认可作为老师角色的我,而一定要将钱给别人才放心。

目前的矛盾主要有:中文都不会学什么英语;学校作业没写完学什么英语。因此只求坚持,慢慢来就是最快的方法。

看电影

本月有部狮子王电影上映,带大锤去看了。去的那个电影院十分冷清,全场只有4位小朋友。两张普通版的电影票,加上大锤念念不忘的爆米花,花了100块钱,考虑到我现在的经济,看电影的成本还是比较高的。

关于大锤被打的事的看法

本月上旬某天,老师打电话,通篇听起来,是大锤感觉有同学“说”他,就推那人了。结果,那人的2个好友仔在教室继续和大锤“说”,期间不免动了手,老师那边的说法是“用手垂直碰了”。到了大锤妈妈那边的信息,上面的“说”变成了“骂”,“碰了”变成“打了”,变成有3个人打大锤。气不过,就打电话给几个对方家长,但人家不承认。我一向坚持实事求是,而且不是严重的事,我一般看开。

当年在幼儿园,看录像,是大锤咬了小朋友,但刚开始不知道实情,大锤妈妈看到大锤手红了,认为是互打,就在群里和人家家长对骂起来,最后还得向人家道歉。因为在同小区,这事过了几年,现在还在唠叨。

后来再次和老师通话,师方的意思和前面一致。我提出看录像,老师说没有(大锤妈妈说有,但老师不给看)。问了大锤,大锤说被打了手和打了脚,但他说这话的时候是嘻嘻哈哈的,我很难相信。同样,我也很难相信老师。只能和大锤说,只要人家不过分,不打骂你,就不用管,告诉老师和父母。只要成绩比人家好就行——当然这是奢望。但是,既然事实上的确出现了另外2个人帮忙欺负大锤,说明先前有过类似的(老师方说法是“有过2次小争执”),也说明以后还是会有。虽然老师承诺会注意,但这同样是奢望。

但是,这个事,在人家眼里,我就成为不保护孩子,不是好爸爸了。大锤妈妈气得2天睡不着,于是开始说这近十年的往事,从坐月子到上幼儿园到小学。我的精力主要还是在工作上,因为我坚信经济基础是养家的首要条件,不可能吃着咸菜萝卜谈风花雪月,如果工资不按时发,养不起家,月供还不了,我将被骂得更惨。我知道一个人挣钱辛苦,也知道一个人在家带娃不容易。道理都懂,但我只是一个年近40的普通人,一个靠写代码谋生的外包佬,而已。

当然,我看得开,姿态放得低,即便别人骂我不是人,我照单全收。

http://www.lryc.cn/news/512806.html

相关文章:

  • PHP:IntelliJ IDEA 配置 PHP 开发环境及导入PHP项目
  • 【嵌入式C语言】指针数组结构体
  • 国产数据库TiDB从入门到放弃教程
  • 深入解析 Spring 属性:spring.codec.max-in-memory-size
  • 在K8S中,如何查看Pod状态的详情?事件显示cpu不足如何处理?
  • ArcGIS教程(009):ArcGIS制作校园3D展示图
  • REDIS2.0
  • 算法练习——模拟题
  • 京东供应链创新与实践:应用数据驱动的库存选品和调拨算法提升履约效率
  • pytorch张量的fill_方法介绍
  • WAP短信格式解析及在Linux下用C语言实现
  • Linux的诞生与发展、体系结构与发行版本
  • 为什么Mysql用B+树作为索引
  • 探索 DC-SDK:强大的 3D 地图开发框架
  • C#高级篇 反射和属性详解【代码之美系列】
  • 算法 class 005 (对数器C语言实现)
  • windows系统安装完Anaconda之后怎么激活自己的虚拟环境并打开jupyter
  • leetcode 面试经典 150 题:矩阵置零
  • SQL中的TRIM用法
  • Git Flow 工作流:保障修改不破坏主功能的完整指南20241230
  • CentOS 7安装Docker详细教程
  • 如何在 Ubuntu 22.04 上安装 Varnish HTTP 教程
  • 网络安全概念详解
  • 【前端】-音乐播放器(源代码和结构讲解,大家可以将自己喜欢的歌曲添加到数据当中,js实现页面动态显示音乐)
  • PawSQL性能巡检平台 (3) - 慢查询采集和优化
  • 在docker中对MySQL快速部署与初始数据
  • Mysql(MGR)和ProxySQL搭建部署-Kubernetes版本
  • 将现有Web 网页封装为macOS应用
  • 药片(药丸)和胶囊识别数据集,使用yolo,pasical voc xml, coco json格式标注,可识别药片和胶囊两种标签,2445张原始图片
  • 在Linux的世界中怎么玩转定时器任务