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.0
	for 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.0
	rad := math.Pi / 180.0
	lat1 = lat1 * rad
	lng1 = lng1 * rad
	lat2 = lat2 * rad
	lng2 = lng2 * rad
	theta := lng2 - lng1
	dist := 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.mfbz.cn/a/593146.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Netty 网络编程深入学习【一】:ByteBuffer 源码解析

ByteBuffer源码阅读 ByteBuffer是一个用于处理字节数据的缓冲区类。它是Java NIO 包的一部分&#xff0c;提供了一种高效的方式来处理原始字节数据。 ByteBuffer 可以用来读取、写入、修改和操作字节数据&#xff0c;它是一种直接操作字节的方式&#xff0c;比起传统的 InputSt…

如何高速下载,百度 阿里 天翼 等网盘内的内容

如何高速下载&#xff0c;百度 阿里 天翼 等网盘内的内容&#x1f3c5; 前言教程下期更新预报&#x1f3c5; 前言 近段时间经常给大家分享各种视频教程&#xff0c;由于分享的资料是用迅雷网盘存的&#xff0c;但是绝大部分用户都是使用的某度&#xff0c;阿某的这些网盘&…

AI工具大揭秘:如何改变我们的工作和生活

文章目录 &#x1f4d1;前言一、常用AI工具&#xff1a;便利与高效的结合1.1 语音助手1.2 智能推荐系统1.3 自然语言处理工具 二、创新AI应用&#xff1a;不断突破与发展2.1 医疗诊断AI2.2 智能家居2.3 无人驾驶技术 三、AI工具在人们生活中的应用和影响3.1 生活方式的变化3.2 …

旅游系列之:庐山美景

旅游系列之&#xff1a;庐山美景 一、路线二、住宿二、庐山美景 一、路线 庐山北门乘坐大巴上山&#xff0c;住在上山的酒店东线大巴游览三叠泉&#xff0c;不需要乘坐缆车&#xff0c;步行上下三叠泉即可&#xff0c;线路很短 二、住宿 长江宾馆庐山分部 二、庐山美景

Ubuntu 20.04安装桌面XFCE

1.安装Xfce软件包 $ sudo apt update $ sudo apt install xfce42.选择gdm3和lightdm 我这里选择的是lightdm LightDM&#xff0c;即&#xff1a;Light Display Manager&#xff0c;是一个全新的、轻量的Linux桌面的桌面显示管理器&#xff0c;而传统的Ubuntu用的是GNOME桌面…

HR面试测评,招聘行政部门主管的人才测评方案

把合适的人放入到合适的岗位中&#xff0c;可以实现双赢&#xff08;企业效益和个人成就&#xff09;&#xff0c;人力资源管理者HR又该如何去发掘行政主管岗位的人才&#xff1f; 行政部门主管属于管理层岗位&#xff0c;在企业发展中有重要的作用&#xff0c;可以协助企业…

Docker私有镜像仓库搭建 带图形化界面的

搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址&#xff1a;https://hub.docker.com/_/registry 先配置私服的信任地址: # 打开要修改的文件 vi /etc/docker/daemon.json # 添加内容&#xff1a; "insecure-registries":["http://192.…

FastAPI - Pydantic相关应用

参考链接&#xff1a;Pydantic官方文档 文章目录 定义数据模型创建模型实例数据验证数据转换模型转换模型更新模型配置辅助类Fieldvalidator Pydantic 是一个 Python 库&#xff0c;主要用于数据验证和管理。数据验证是指检查数据是否符合预定的规则和格式&#xff0c;比如检查…

xss注入漏洞解析(下)

DOM型XSS 概念 DOM全称Document Object Model&#xff0c;使用DOM可以使程序和脚本能够动态访问和更新文档的内容、结 构及样式。DOM型XSS其实是一种特殊类型的反射型XSS&#xff0c;它是基于DOM文档对象模型的一种漏洞。 HTML的标签都是节点&#xff0c;而这些节点组成了DOM的…

TeXCount failed. Please refer to LaTeX Utilities Output for details.

写LaTeX的时候总是报这个错、看了下网上也没有什么好的解决方法、就是单词计数器无法使用 我的解决方法: 看下驱动器是否还在&#xff0c;不在的话重新安装一下、不要把驱动器给删除了

开关门机关

根物体创建动画 子物体录制动画 ctrl6&#xff1a;调用动画窗口 添加关键帧&#xff1a;输入添加关键帧到第几帧&#xff0c;然后点击录制&#xff0c;最后在该物体的面板上修改其位置等&#xff0c;记得添加完要结束录制 搞个父物体是为了让动画的可移植性变高 设置触发器方…

基于OpenCv的图像金字塔

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

人工智能大模型应用指南

大家好&#xff0c;我是爱编程的喵喵。双985硕士毕业&#xff0c;现担任全栈工程师一职&#xff0c;热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

【Flask 系统教程 2】路由的使用

Flask 是一个轻量级的 Python Web 框架&#xff0c;其简洁的设计使得构建 Web 应用变得轻而易举。其中&#xff0c;路由是 Flask 中至关重要的一部分&#xff0c;它定义了 URL 与视图函数之间的映射关系&#xff0c;决定了用户请求的处理方式。在本文中&#xff0c;我们将深入探…

设计模式——行为型模式——策略模式

策略模式 定义 策略模式定义了一系列算法&#xff0c;并将每个算法封装起来&#xff0c;使它们可以相互替换&#xff0c;且算法的变化不会影响使用算法的客户。 策略模式属于对象行为模式&#xff0c;它通过对算法进行封装&#xff0c;把使用算法的责任和算法的实现分割开来&a…

【ARM Cortex-M3指南】3:Cortex-M3基础

文章目录 三、Cortex-M3基础3.1 寄存器3.1.1 通用目的寄存器 R0~R73.1.2 通用目的寄存器 R8~R123.1.3 栈指针 R133.1.4 链接寄存器 R143.1.5 程序计数器 R15 3.2 特殊寄存器3.2.1 程序状态寄存器3.2.2 PRIMASK、FAULTMASK和BASEPRI寄存器3.2.3 控制寄存器 3.3 操作模式3.4 异常…

# 在 Windows 命令提示符(cmd)中,可以通过以下方法设置长命令自动换行

在 Windows 命令提示符&#xff08;cmd&#xff09;中&#xff0c;可以通过以下方法设置长命令自动换行 1、点击 cmd 窗口左上角标题栏&#xff0c;选择【属性】。 2、在【属性】菜单中&#xff0c;依次点击【选项】&#xff0c;找到【编辑选项】下面的【自动换行】&#xff…

经纬度聚类:聚类算法比较

需求&#xff1a; 将经纬度数据&#xff0c;根据经纬度进行聚类 初始数据 data.csv K均值聚类 简介 K均值&#xff08;K-means&#xff09;聚类是一种常用的无监督学习算法&#xff0c;用于将数据集中的样本分成K个不同的簇&#xff08;cluster&#xff09;。其基本思想是…

OpenCV | 入门

OpenCV | 入门 安装 参考教程 基础知识 V G A 640 480 VGA 640 \times 480 VGA640480 H D 1280 720 HD 1280 \times 720 HD1280720 F H D 1920 1080 FHD 1920 \times 1080 FHD19201080 4 K 3840 2160 4K 3840 \times 2160 4K38402160 这些都表示了固定的像素…