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

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

研发编码

excel创建直方图

因工作需要,在excel学习使用了直方图。下面是文字版。

加载工具库:

直方图可在“数据”->"数据分析"中找到,如无,则要加载之。文件->选项->加载项,“管理 Excel加载项”,“转到”,勾选“分析工具库“,确定。

创建直方图:

A列填写标题及数据,B列写标题及区间数值(包含本级),如60、80、100(表示60及以下的,6080,80100,100及以上的)。“数据”->“数据分析”->”直方图“,确定。输入区域选A列(从标题开始至结束),接收区域选B列(含标题),勾选”标志“,输出区域选空白列即可,勾选”图表输出“,确定,即可。可再对创建的直方图及数据进行调整。

改现有代码的一点记录

本月因某工程代码迭代,查了一些模块代码,改一一些代码。记录一下。

  • 头文件的结构体定义char foo[18]字段,但在使用时,较大使用if (foo == NULL)来判断其是否合法。我一度认为是未初始化时foo里的数据为空,于是用NULL来判断,大胆猜测,小心求证,经过自编测试代码,发现foo不会为NULL
  • 接上,偶尔发现有部分地方使用sizeof(foo) < 18这样的语句判断是否合法,这个也有点影响到我朴素的编码认知。也不是不行,只是有点不太能接受。

Golang计算经纬度

源码如下:

// 返回距离 四舍五入取整到米  latlng 传入为经度、纬度
func GetEarthDistance(latlng [][2]float64) int {if len(latlng) < 1 {return 0}total := 0.0for i := 0; i < len(latlng)-1; i++ {dis := GetEarthDistanceSingle(latlng[i][1], latlng[i][0], latlng[i+1][1], latlng[i+1][0])total += dis}return int(math.Round(total))
}// 计算2个经纬度之间的距离,单位为米(不取整) 纬度 lat1 lat2 经度 lng1 lng2
func GetEarthDistanceSingle(lat1, lng1, lat2, lng2 float64) float64 {if lng1 == lng2 { // 经测试lng1和lng2相等时,会返回NaN,判断之return 0.0}// 地球赤道半径。一说用 6378137.0,经测试,会有误差,弃用radius := 6371000.0rad := math.Pi / 180.0lat1 = lat1 * radlng1 = lng1 * radlat2 = lat2 * radlng2 = lng2 * radtheta := lng2 - lng1dist := math.Acos(math.Sin(lat1)*math.Sin(lat2) + math.Cos(lat1)*math.Cos(lat2)*math.Cos(theta))return dist * radius
}

说明:就我们国家而言,数值大的是经度,小的是纬度。按latlng的排序,应该是纬度、经度。但一般都称呼“经纬度”。所以2个函数有参数顺序有点不同。leaflet的坐标是纬经度,个人保存的数据还是用经纬度。在传给前端时程序内部调换一下顺序,两边都happy。

旧机制新形势

我手上维护着的代码,最早可以追溯到2000年前,几个主力工程,诞生时间也有在2015、2016年的。改祖传代码我都很小心,除了明显的问题,如打开文件不关闭,申请内存不释放,数组长度不够等,基本会大胆地改。但对于机制不明的地方,还是不敢随便动。领导提过几次,原来是这样,就一直是这样吗?按发展观点看,的确不能如此,但改动触发某些坑,责任就很大了。比如之前重构某工程的接口,实际是有2个接口,绝大部分的实现是一样的,但是却人为区分开,在分析代码时,一个代码片段,经常在多个地方看到,加上C++的重载特性,不小心就会搞混。

在开会时,领导多次提到,设计、开发、测试,原来都是一个人做完的,现在人多了,问题也多了。

目前还没有找到好的方法解决问题。在没有文档情况下,走一步算一步,积累经验。

程序性能和投入时间

我真正编程是从单片机开始的工作后很长时间内是做嵌入式开发(当然也搞上位机)。因此对存储、耗时比较敏感,这个习惯现在也保持着。但往往要投入比较多的时间。

概括与概念

要善于概括,提炼文字,形成概念,这样方便和他人沟通,特别是对业主。否则对外一种说法,内部是另一种说法,不易交流。这点我还是比较欠缺的。

责任心

某集群跑着若干服务,有的服务有多个实例,且用nginx进行负载均衡,但服务使用方没有将IP和端口配置成nginx统一入口,去年提过几次。这个月出了线上事故,某实例异常,导致服务异常,经查,另一实例正常在跑。但因为使用方没有配置nginx的端口,所以已有的负载均衡机制没有生效。

某几台服务器在跑应用服务,每天产生较多日志,平均1GB,最甚者有3GB~5GB。而应用服务所在的磁盘分区只有几十GB,由于是生产环境且有一定年限,所以只能用脚本处理日志。这个也是我做测试查日志才知道,虽然只是负责其中一动态库模块,但还是写了定期脚本清除日志。

趁着搬迁,决定彻底和服务器维护撇开关系,不是自己开发的程序,不负责部署,以前就是口子开了,很多程序传着传着变成是我负责了。我觉得现在涉及的语言和技术栈已经够杂的了,像Java、spring那些,真的啃不动,宁可把花在这上面的时间投入到业务了解上。

生活记录

热爱生活

某天突然发现,自己已经很久没有热爱过生活了。没什么爱好,周末假期不想出去玩,如果大锤没有特别要求去玩,我宁可在家,博物馆的青铜器展出有4个多月,我才带大锤去过一次。文学类文字和小说,现在也看不下去了。回顾大锤出生至今的7年多时间,除了起初工作变动带来的刻心记忆外,其它的,没什么值得记下来的。

回首这一路,让我铭记的,或者是初中那个夏天的下午,我刚去市区买了个随身听,用来自己录音背书,然后在一快餐店吃饭,几块钱的菜已经很丰富了,店里还放着《河东狮吼》电影。那时对未来是有憧憬的,作为从山村出来的娃,好好学习,考上高中,就是对父母的报答。

育儿记录

每次大锤不听话,都会吵架,大锤性格也有变化了。这个月班上有3位学生被老师找家长,大锤是其中一个。不懂是不是教育体系发展趋势使然,现在的很多作业都是在手册布置,学生完成,家长批改。我对大锤要求其实不高,背诗文没有时间要求,对写的作业也不要求全对,有时个别字写得不好,也没纠正,有些数学写错也没说。但队友不行,印象最深的一句话是:两个人,两天时间,还错那么多。用特有的南普口音说出来,我能记住很长一段时间。于是我对大锤也严格起来,于是大锤在家被骂,在学校被老师批评。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/5424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#数据库: 10.调用存储过程查询信息,并显示在窗体上

查询女生信息&#xff0c;并将信息显示在窗体上: 原数据表//右键数据库名,新建查询 ------------- 新建查询窗口,添加新建存储过程Procedure_GetGirls1和查询代码如下 : CREATE PROCEDURE dbo.Procedure_GetGirls1 /*存储过程名称*/ AS SELECT * f…

[React] 手动实现CountTo 数字滚动效果

这个CountTo组件npmjs里当然有大把的依赖存在&#xff0c;不过今天我们不需要借助任何三方依赖&#xff0c;造个轮子来手动实现这个组件。 通过研究其他count to插件我们可以发现&#xff0c;数字滚动效果主要依赖于requestAnimationFrame 通过js帧来让数字动起来&#xff0c;…

【docker】Spring Boot3.x 打包 Docker容器

Docker化Spring Boot应用 创建文件夹 demo mkdir democd demo创建Dockerfile # 两个 openjdk 二选一 #FROM openjdk:17-jre-alpineFROM eclipse-temurin:17MAINTAINER chengxuyuanshitang <chengxuyuanshitangXX.com>RUN mkdir -p /workspace/java/demoCOPY demo.ja…

Python 与 TensorFlow2 生成式 AI(五)

原文&#xff1a;zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十二章&#xff1a;用生成式人工智能玩视频游戏&#xff1a;GAIL 在之前的章节中&#xff0c;我们已经看到如何使用生成式人工智能来生成…

LVGL自定义滑动

触摸和编码器都可以操作 typedef struct {lv_obj_t* obj;int16_t x;int16_t y;int16_t width;int16_t height; }pos_and_size_t;typedef struct {lv_obj_t* obj;lv_coord_t height;lv_coord_t width;lv_coord_t width_pad;lv_coord_t height_pad;lv_coord_t child_widget;lv_co…

Mybatis.net + Mysql

项目文件结构 NuGet下载Mybatis.net相关包&#xff1a;IBatisNet 安装完成后&#xff0c;会显示在&#xff0c;在已安装页面。同时&#xff0c;在管理器中的引用列表中&#xff0c;会多出来两个引用文件 IBatisNet.CommonIBatisNet.DataMapper 安装 Mysql.data。 注意&#xff…

【设计模式】14、strategy 策略模式

文章目录 十四、strategy 策略模式14.1 map_app14.1.1 map_app_test.go14.1.2 map_app.go14.1.3 navigate_strategy.go 十四、strategy 策略模式 https://refactoringguru.cn/design-patterns/strategy 需求: client 知道很多不同的策略, 希望在运行时切换. 场景示例: 就像高…

使用一等对象函数重构策略模式

目录 经典的策略模式 使用函数重构策略模式 选择最佳策略的简单模式

C++ 中 scanf 的高阶用法:scanf(“%[a-z]“,ch);

● C 中 scanf 的高阶用法&#xff1a;scanf("%[a-z]",ch);语句 scanf("%[a-z]",ch); 表示只读入小写字母入字符串。任何包含非小写字母的字符串&#xff0c;将不能读入&#xff0c;自然也不可能有输出。例如&#xff1a; 运行下面代码&#xff1a;输入 ab…

Harbor服务器停电重启后用户不能登陆怎么办?

Harbor服务问题处理 今天遇到一个问题&#xff0c;可能因为这几天下暴雨打雷比较厉害&#xff0c;办公室机房跳闸&#xff0c;有一台测试服务器没有停电保护停机。重启这台服务器以后&#xff0c;上面运行的Harbor服务登陆不上&#xff0c;用户名和密码都没改过&#xff0c;搞…

Stm32CubeMX 为 stm32mp135d 添加网卡 eth

Stm32CubeMX 为 stm32mp135d 添加网卡 eth 一、启用设备1. eth 设备添加2. eth 引脚配置2. eth 时钟配置 二、 生成代码1. optee 配置2. uboot 配置3. linux 配置 bringup 可参考&#xff1a;Stm32CubeMX 生成设备树 一、启用设备 1. eth 设备添加 我这里只启用一个eth设备&…

特斯拉与百度合作;字节正全力追赶AI业务;小红书内测自研大模型

特斯拉中国版 FSD 或与百度合作 根据彭博社的报道&#xff0c;特斯拉将通过于百度公司达成地图和导航协议&#xff0c;扫清在中国推出 FSD 功能的关键障碍。 此前&#xff0c;中国汽车工业协会、国家计算机网络应急技术处理协调中心发布《关于汽车数据处理 4 项安全要求检测情…

【漏洞复现】zookeeper AdminServer 未授权访问漏洞

0x01 产品简介 ZooKeeper 是一个集中式服务&#xff0c;用于维护配置信息、命名、提供分布式同步和提供组服务。ZooKeeper的AdminServer是其管理界面的一部分&#xff0c;通常用于监控ZooKeeper集群的状态和执行一些管理操作。AdminServer提供了Web-based的管理和监控功能&…

大数据中的项目数据采集

Datax介绍 官网&#xff1a; DataX/introduction.md at master alibaba/DataX GitHub DataX 是阿里云 DataWorks数据集成 的开源版本&#xff0c;在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。 DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS…

C#条件运算符

条件运算符分为&#xff1a;&#xff08;比较运算符 判断运算符&#xff09; 条件运算符的作用: 用于比较两个变量或者常量 判断符号: > < ! > < 条件运算符不能直接使用 需要搭配运算符使用 <u>*如果条件满足则返回true 条件不满足则返回fals…

GO解析 - Linux 指令之 lsblk

版本 lsblk --version lsblk from util-linux 2.38.1 代码 lsblkParser.go package utilstype LSBlkItem struct {Name string // 名称Major uint // 主版本Minor uint // 此版本Removable bool // 可移除deWritable bool // 可写的Size …

【算法基础实验】图论-最小生成树Prim的延迟实现

最小生成树-Prim的延迟实现 理论基础 树的基本性质 用一条边连接树中的任意两个顶点都会产生一个新的环&#xff1b; 从树中删去一条边将会得到两棵独立的树。 切分定理的定义 定义。图的一种切分是将图的所有顶点分为两个非空且不重叠的两个集合。横切边 是一条连接两个属…

华为5700配置

恢复出厂设置&#xff0c;清空配置 1、更改名字 system-view sysname tp-10-50-01-04 2、配置管理接口 int vlan 1 ip add 10.50.1.4 255.255.254.0 quit 2、链路汇聚 interface eth-trunk 1 mode lacp quit 3、绑定端口 interface eth-trunk 1 trunkport gigabitethernet …

RTSP,RTP,RTCP

机器学习 Machine Learning&#xff08;ML&#xff09; 深度学习&#xff08;DL&#xff0c;Deep Learning&#xff09; CV计算机视觉&#xff08;computer vision&#xff09; FFMPEG&#xff0c;MPEG2-TS,H.264,H.265,AAC rstp,rtp,rtmp,webrtc onvif,gb28181 最详细的音…