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的普通人,一个靠写代码谋生的外包佬,而已。
当然,我看得开,姿态放得低,即便别人骂我不是人,我照单全收。
相关文章:
2024年12月个人工作生活总结
本文为 2024年12月工作生活总结。 研发编码 Golang语言byte数组赋值 假定有如下变量: var strCode string var bCode [9]byte现需将string类型转换成byte类型,如下: bCode []byte(strCode)无法转换,提示: cannot…...
PHP:IntelliJ IDEA 配置 PHP 开发环境及导入PHP项目
在创建PHP项目之前我们需要安装PHP插件,安装步骤如下:Windows:IntelliJ IDEA Ultimate 安装 PHP 插件-CSDN博客 1、导入已有PHP项目,导入之后选择,File > Setting 选择对应CLL Interpreter,如果没有操作…...
【嵌入式C语言】指针数组结构体
指针与数组 指针与数组指针数组数组指针 多维数组数组名的保存 结构体定义结构体定义结构体变量使用typedef简化结构体声明访问结构体成员结构体内存分配字节对齐位域定义位域位域的限制示例 指针与数组 指针数组和数组指针是两个不同的概念,它们涉及到指针和数组的…...
国产数据库TiDB从入门到放弃教程
国家层面战略,安全的角度,硬件、软件国产化是趋势,鸿蒙电脑操作系统、鸿蒙手机操作系统…数据库也会慢慢国产化,国产数据库TiDB用起来比OceanBase丝滑,本身没有那么重。 从入门到放弃 1. 介绍1.1 TiDB 的主要特点1.2 T…...
深入解析 Spring 属性:spring.codec.max-in-memory-size
在现代 Web 应用开发中,数据传输的大小和效率直接影响到系统的性能和稳定性。Spring WebFlux 作为一种响应式编程框架,提供了强大的数据流处理能力。在使用 WebFlux 时,spring.codec.max-in-memory-size 是一个关键配置,用于定义应…...
在K8S中,如何查看Pod状态的详情?事件显示cpu不足如何处理?
在Kubernetes中,查看Pod状态的详细通常设计使用kubectl命令行工具,这是kubernetes提供的一个强大的管理工具。以下是如何查看Pod状态详情的步骤: 1. 查看Pod状态详情 列出所有Pod: 使用kubectl get pods命令可以查看集群所有Po…...
ArcGIS教程(009):ArcGIS制作校园3D展示图
文章目录 数据下载校园3D展示图制作创建要素类矢量化【楼】要素矢量化【绿地】矢量化【范围】矢量化处理打开ArcScene添加动画数据下载 https://download.csdn.net/download/WwLK123/90189025校园3D展示图制作 创建要素类 添加底图: 新建【文件地理数据库】,并修改名称为【…...
REDIS2.0
string list hash set 无序集合 声明一个key,键里面的值是元素,元素的类型是string 元素的值是唯一的,不能重复 多个集合类型之间可以进行并集,交集,集查的运算 sadd test1 a b c c d :添加5个元素&am…...
算法练习——模拟题
前言:模拟题的特点在于没有什么固定的技巧,完全考验自己的代码能力,因此有助于提升自己的代码水平。如果说一定有什么技巧的话,那就是有的模拟题能够通过找规律来简化算法。 一:替换所有问号 题目要求: 解…...
京东供应链创新与实践:应用数据驱动的库存选品和调拨算法提升履约效率
2024 年度总结系列 2024 年 10 月,京东零售供应链技术团队凭借其在库存选品与调拨技术上的创新与实践,荣获运筹与管理学领域的国际顶级奖项 Daniel H. Wagner Prize。本文为您介绍获奖背后的供应链技术创新和落地应用。 00 摘要 在电商行业中&#x…...
pytorch张量的fill_方法介绍
在 PyTorch 中,fill_ 是一个张量的原地操作方法,用于将张量中的所有元素填充为指定的值。 方法签名 Tensor.fill_(value)参数 value (float or int): 要填充到张量中的值。 返回值 返回调用该方法的张量本身,且是经过修改后的张量。 特…...
WAP短信格式解析及在Linux下用C语言实现
WAP短信格式解析及在Linux下用C语言实现 一、引言二、WAP短信格式概述三、WAP短信头的内容四、UDHI与WAP短信体的关系五、在Linux下用C语言解析WAP短信头及短信体内容一、引言 在移动通信领域,短信作为一种古老却稳定的通信方式,一直扮演着重要的角色。随着技术的发展,短信…...
Linux的诞生与发展、体系结构与发行版本
Linux作为一个开源操作系统,在过去几十年中一直扮演着至关重要的角色。它不仅深刻影响了服务器、桌面和移动设备,还成为了开源运动的重要组成部分。本文将介绍Linux的历史、体系结构、以及主要的发行版,帮助你更好地了解Linux的方方面面。 一…...
为什么Mysql用B+树作为索引
首先,能作为索引的数据结构有很多,例如数组、链表、二叉树 数据和索引都是存储在磁盘里的。 我们通过索引来查询数据时,先从磁盘读取索引到内存,再通过索引从磁盘中找到某行数据,然后读入到内存。 要设计一个适合 MySQ…...
探索 DC-SDK:强大的 3D 地图开发框架
在现代 Web 开发中,地理信息系统(GIS)和 3D 地图可视化变得越来越重要。dc-sdk 是一个基于 Cesium 的开源 WebGL 地图开发框架,它提供了丰富的地图可视化功能和简单易用的 API,使开发者能够轻松地在 Web 应用中集成 3D…...
C#高级篇 反射和属性详解【代码之美系列】
🎀🎀🎀代码之美系列目录🎀🎀🎀 一、C# 命名规则规范 二、C# 代码约定规范 三、C# 参数类型约束 四、浅析 B/S 应用程序体系结构原则 五、浅析 C# Async 和 Await 六、浅析 ASP.NET Core SignalR 双工通信 …...
算法 class 005 (对数器C语言实现)
对数器的概念: 用来测试你的算法是否正确。 怎么做呢? 1:比如,写个冒泡排序,作为对比的对象 2:生成一个随机数 数组,用来测试 3:用冒泡排序和你想要验证的那个排序算法,同…...
windows系统安装完Anaconda之后怎么激活自己的虚拟环境并打开jupyter
1.在win主菜单中找到Anaconda安装文件夹并打开终端 文件夹内有所有安装后的Anaconda的应用软件和终端窗口启动窗口 点击Anaconda Prompt(Anaconda)就会打开类似cmd的命令终端窗口,默认打开的路径是用户名下的路径 2.激活虚拟环境 使用命令…...
leetcode 面试经典 150 题:矩阵置零
链接矩阵置零题序号73题型二维数组解题方法标记数组法难度中等熟练度✅✅✅✅ 题目 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1]…...
SQL中的TRIM用法
TRIM 是 SQL 中用于去除字符串两端(左侧和右侧)的空格或特定字符的函数。这个函数常用于清理数据中的无效空白字符,尤其是在从外部系统导入数据时,常常会遇到数据两端有不必要的空格,使用 TRIM 可以去除这些多余的字符…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...
