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


title: 2024年6月个人工作生活总结
urlname: code-for-2024-06
tags:

  • 代码积累
  • 知识总结
    categories:
  • 我的程序代码
    date: 2024-06-30 00:00:00
    photos:
  • gallery/tech/c2.jpg

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

研发编码

编码和注释

因某些需要,重拾了2019年的工程代码。断续地经过大半天时间跟踪调试和打印,理清了业务流程,原来浅薄的理解加深了,还画了泳道流程图。如果能回到过去,一定要问自己,当时为何没有画流程图,注释为何没有写多一些?当然,近年这个差习惯已经改了一些。年纪一旦上去了,思维活跃程度不如从前了。

关于应用服务配置文件及监控的记录

配置文件:

文件格式多样化,如xml、ini、yaml、json等,这几种都在实际工程中应用到。像golang解析这些格式比较方便。另外golang也有组件支持热更新配置,只是目前还没有真正使用到。至于热更新,需要根据实际情况确定,比如日志中的文件名称等可能不太好热更新,但日志等级可以做到。

监控:

最近在一个golang工程中做了统计页面的访问,如最近5分钟、当日、昨天、今日,等。对其它一些数据还做了多维度的统计。

用faketime修改容器时间

容器可用faketime调整时间。但必须用LD_PRELOAD=./libfaketime.so.1 FAKETIME="@2024-06-19 00:30:00" xxx方式执行。经测试,对如C++、Java等应用层程序有效,对于golang程序不适用,对于底层动态库不适用。faketime编译方法:

git clone https://github.com/wolfcw/libfaketime
cd libfaketime
make
make install

生成文件为src/libfaketime.so.1。使用方法见上示例。之前在容器中使用date查看日志,发现没有变化,误以为不生效,后面用程序测试才发现在程序中打印的时间的确变化了。因为在执行程序前使用了LD_PRELOAD环境变量,作用于其后的程序,而其它的命令或库,没有被影响到。

Delphi四舍五入精度问题

这个的Delphi工具又出现四舍五入不进位的精度问题了。在2021年年底时已经解决过一次,当时是在四舍五入时额外添加一个很小很小浮点数,比如0.00000001,当时的确解决了已发现的问题,为保险起见,还在另一个Golang写的工具做了相同算法,并与Delphi生成的数据做对比。这样做是因为找不到根本原因(直接解决Delphi四舍五入不进位,上峰肯定不接受),因为用不同语言写不同工具对比,以期及时发现修正。此后一直如此操作,到2022年年底,有一项数据特殊,将其忽略掉不进行对比,一年半载后,就出现了问题。原来出问题的数据为100.49999999999999,用上述方法修正后,得100.500000000,符合预期。这次出现问题的是另一计算步骤,中间过程浮点数为197.5,但做四舍五入操作却无法进位。有关部门问到原因,我解释了Delphi用银行家算法,又解释了计算步骤可能存在的问题,最后还提到当初在数据库那个表的设计上,不应使用浮点数。比如存储的数据为里程,数值为0.139公里,使用navicat查看,该项为0.1389999999999999,而有的数据为1.1440000000000000001。经对比,代码里应该使用的是一个能在网上找到的2014年写的四舍五入算法函数,如下:

function RoundClassic(R: Real): Int64; 
begin Result:= Trunc(R); if Frac(R) >= 0.5 then Result:= Result + 1; 
end;

本次将其修改为:

function RoundClassicNew(R: Real): Int64;
begin R := R + 0.0000000001;Result:= Trunc(R); if Frac(R) >= 0.5 then Result:= Result + 1; 
end;

利用diff对比差异项

场景:有一100MB的csv文件,因数据精度问题生成了2个版本,业主要求给出差异项,运维人员说内容太多,要我直接提供最终文件,由于时间紧改程序太麻烦,于是用工具对比。使用excel,未果;使用beyond compare,卡了半天,有结果了,但拷贝时少了分隔用的逗号,格式不对。最后用diff,但输出旧新两种数据,且排版不对,找了些资料,可以通过设置diff参数,仅保留出现在新文件中的差异项,达到目的。

完整脚本如下:

# 利用diff工具输出新旧文件差异项,仅输出新文件的差异项
#!/bin/bashif [ $# != 2 ]; thenecho "usage: $0 <old file> <new file>"exit 1
fidiff --unchanged-line-format='' --old-line-format='' --new-line-format='%L' $1 $2

对注释快捷键Ctrl+/的思考

我主要使用VS Code编码,无论是C++、Golang还是Delphi,一些快捷键使用得多了,就养成习惯。比如注释的快捷键Ctrl+/。当在Qt Creator中做此操作,发现也能注释,更意外的是,在Navicat中查询SQL语句时,有些where条件暂时不使用到时,也习惯用Ctrl+/,发现也能注释掉。不知道这几个工具之间是否有默契还是相互参考,反正于我而言,是个好的事情。让用户的学习成本降低,不需要太多思考。如窗口的关闭位置,不管是桌面程序还是浏览器,我概念中是右上角的,但有些却反其道而行,不知道产品经理们是站在大众面,还是站在大众对立面。当然,也有例外,比如我设置了密码,我用明文进行提示,为避免歧义,我还添加了双引号,如请输入“250+250=?”

有的APP开屏广告,关闭窗口上下左右位置不固定,加上加了背景色,很难跳过,这是提高用户成本,提升产品广告有效时间、点击率的一个方法。

业余时间

为同时保持英语的听力和行业知识,不至于落后,这个月在B站听了一些关于架构的课程,这里记录一下地址,比如系统设计基础、系统设计系列。说实话,很多知识点都知道个大概,没深入研究,而且时间也上允许,但出现难题又无法快速解决。这里的难题等级较高,如nginx如何做到故障平滑转移?ELK如何方便自定义日志搜索?等等。

B站最近出现了很多电影,能搜索到很多粤语片,在996之余,抽空看了几部清一下脑子。

生活记录

流水

六一当天正值周六,向上层说有事不去加班,全家人去了南宁市科技馆,玩了半天。

端午假期,第一天,在下雨,至下午4点,雨停了。和大锤玩一个”左拐右拐“的游戏,就是骑电驴,出门,右拐,至下一路口左拐;至下一路口右拐,依此类推。大概半个多小时,就到了近郊外的地方,但见远山长,青山绿,云雾缭绕。泥路边有南瓜苗、红薯苗,还看到葫芦棚,开着花,结着果。远处还有小路,但雨后不好走,就打道回府了。路上大锤睡了,如当年带他去玩回程睡觉那样,于是绕路慢行,回到家时,已快入夜了。

端午假期第二天,居家休息,因新功能上线,晚9点多到公司值班,守至端午当天凌晨2时,数据正常,汇报后回家,路上买粉吃。

端午假期第三天,10点多出发去江边看龙舟,后因雨回家。

差不多896了

这个月再接再厉,一周中,有5天是8点多到工位,有4天是晚上近9点下班,周六上大半天班。于是大锤作业多的时候,能写到11点半。

育儿记录

记录一些问题,一些解决办法,一些结果。

月初,大锤有个练习试卷得A,接着得了B,而全班C者只有4名,可理解大锤是倒数10名内了。大锤被骂了,但看样子没有知耻后勇,月底,搞了2个C出来。简单总结,一是写字不认真,在他妈妈强烈要求下花了几百块的书法培训班结束后,依然不成样子。二是不仔细,比如“单”的中间部分变成了“日”,“样”字右边变成“半”,“b”写成“d”,解决办法是买了个记事本,专门让大锤把错的字、拼音写上。(但是,这个也不是办法,试了两后大锤就不愿意写了。)

本月大锤练习上有形近字、同音字,我也花了点时间做了些笔记。。数学方面,找了些有趣的应用题,比如1只猫1分钟吃掉一条鱼,100只猫同时吃100条鱼要花多少时间。大锤先是回答100分钟,两人分析小半天后,才认为需要1分钟。

月底学校中考,大锤放假前2天,老师打电话给他妈妈投诉,于是我也被骂了。

家里大人的教育理念是相反的,这个比较麻烦。如:我认为普通话的发音是要准确的,但人家说别人听大锤说话还以为大锤是北方人。我认为是先学会洗衣做饭才能成长,而不是成长了就会洗衣做饭,同理学习也一样。

内心话

我以前想着要平衡好上班养家还房贷及教小孩,乃至扮好儿子、丈夫、父亲的角色,但做不好,也做不到。我对自己要求比较严格,也想打造一个好的人设。上班地点近了些,按日常出发时间,送完大锤上学,8点后就能到工位了,但不会卡到8点半。负责的工程没有专门测试人员,自己写测试程序。为方便自己远程连服务器,早早申请VPN,后面被其它很多同事使用。

对于小孩教育,我一般从长期角度考虑,因为严格要求了,也没有看到进步,而小孩骂得多又怕有心理问题。本来我也鸡娃的,但现在看,努力做到不拖后腿,老师不家访,已经不错了。虽然不能厚积薄发,但功不唐捐,相信时间的力量。这一点,在月底考虑再三,跟老师私信说了大意。

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

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

相关文章

Scala 循环

Scala 循环 Scala,作为一种多范式的编程语言,提供了丰富的方式来处理循环和迭代。在Scala中,除了传统的for和while循环外,还有更高级的函数式编程特性,如集合操作和高阶函数,这些都可以用来实现循环和迭代的任务。本文将详细介绍Scala中的循环机制,包括基本语法、高级用…

JUC工具类: Semaphore详解

Semaphore底层是基于AbstractQueuedSynchronizer来实现的。Semaphore称为计数信号量&#xff0c;它允许n个任务同时访问某个资源&#xff0c;可以将信号量看做是在向外分发使用资源的许可证&#xff0c;只有成功获取许可证&#xff0c;才能使用资源。立刀旁 目录 # 带着BAT大厂…

EDA 虚拟机 Synopsys Sentaurus TCAD 2016.03 下载

下载地址&#xff08;制作不易&#xff0c;下载使用需付费&#xff0c;不能接受的请勿下载&#xff09;&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1baw0IhmnFOKVkJMI3zkD_A?pwdcheo 提取码&#xff1a;cheo

【SQL】如何描述索引的分类

数据库中的索引种类多样&#xff0c;每种索引都有其特定的用途和特点。以下是常见的索引分类&#xff1a; 1. 单列索引 (Single-Column Index) 对单个列创建的索引。最基本的索引类型。 CREATE INDEX idx_column_name ON table_name (column_name);2. 多列索引 (Composite I…

联邦的基础配置

一、联邦的定义 联邦&#xff1a;在AS内部部署全互联的IBGP对等体可以很好解决IBGP路由传递的问题&#xff0c;但是扩展性低&#xff0c;大型网络中会带来沉重负担&#xff0c;针对此问题可以用路由反射器解决&#xff0c;也可以利用联邦解决&#xff0c;联邦也被称为联盟。大…

从Telnet到SSH:提升远程访问的安全性

前言 在计算机网络和远程通信中&#xff0c;Telnet和SSH是两种常用的协议&#xff0c;用于远程访问和管理服务器。然而&#xff0c;它们在安全性和功能方面有显著的区别。本文将详细讲述Telnet和SSH的区别&#xff0c;并探讨SSH在增强远程访问安全性中的重要性。 什么是Telne…

上门按摩SPA系统源码定制,专业搭建开发预约服务平台

在快节奏的现代社会&#xff0c;人们对放松和舒缓压力的需求日益增长。上门按摩SPA服务因其便捷性和私密性&#xff0c;受到了越来越多消费者的青睐。为了满足这一市场需求&#xff0c;专业的上门按摩SPA预约服务平台的搭建显得尤为重要。 我们的团队专注于为按摩SPA行业提供上…

MRTK 2.8.3

1.PC按键控制 移动摄像头:WSADQE、鼠标右键 模拟双手:左手(左Shift)、右手(右Shift) 将模拟的双手保持在视野中:T或Y 旋转模拟手部:按住Ctrl并移动鼠标 捏合手势:左Shift/空格 + 鼠标左键 2.常用脚本 (1)HandInteractionTouch(需搭配NearInteractionTouchableVolum…

python中方法的重写详解

python中对于类的继承的时候调用父类中一些方法的时候&#xff0c;会根据新的功能给方法增加一些新的内容&#xff0c;同时又要保留一些原有的父类里面的一些内容&#xff0c;此时就要对方法进行重写&#xff0c;这里面详细记录自己对于方法重写的心得 重写父类用两种&#xf…

使用Qt制作一个简单的界面

1、创建工程 步骤一&#xff1a; 步骤二&#xff1a; 步骤三&#xff1a; 选择 build system&#xff0c;有qmake、CMake 和 Qbs 三个选项。 CMake 很常用&#xff0c;功能也很强大&#xff0c;许多知名的项目都是用它&#xff0c;比如 OpenCV 和 VTK&#xff0c;但它的语法繁…

元宇宙相关技术研究--由AR眼镜引发的人机交互思考

本文是继上一篇文章基础上,跟踪最新VR/AR/MR眼镜技术发展的总结文章。随着IT新技术的发展,眼镜作为一种全新的交互方式,未来将逐渐走到人机交互的核心位置,眼镜集成了人机交互过程中的视觉(即眼睛)、听觉(即声音)、手势(即代替键盘鼠标触摸等)及方向位置感知等。这些交…

免费的CMS指纹识别系统

以下是一些免费的CMS指纹识别系统&#xff1a; WhatCMS&#xff1a;WhatCMS 是一个免费的在线工具&#xff0c;可以帮助用户快速识别网站所使用的CMS系统&#xff0c;包括WordPress、Joomla、Drupal等常见的CMS系统。用户只需输入网站的URL&#xff0c;即可获得识别结果。 ht…

如何成为C#编程高手?

成为C#编程高手需要时间、实践和持续的学习。以下是一些建议&#xff0c;可以帮助你提升C#编程技能&#xff1a; 深入理解基础知识&#xff1a; 确保你对C#的基本语法、数据类型、控制结构、面向对象编程&#xff08;OOP&#xff09;原则有深刻的理解。学习如何使用Visual Stud…

2024最新!将mysql的数据导入到Solr

Solr导入mysql的数据 如何安装导入数据前准备配置Solr的Jar包以及Mysql驱动包1.1、将solr-8.11.3\dist下的两个包进行移动1.2、将mysql-connect包也移动到该位置1.3、重启Solr项目 配置xml2.1、第一步我们需要创建核心2.2、第二步修改xml(这里是结合19年的教程)2.3、 创建data-…

mybatis延迟加载

mybatis延迟加载 1、延迟加载概述 应用场景 ​ 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求&#xff0c;当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 延迟加载的好处 ​ 先从单表查询、需要时再从关联表去关联查…

C++ 数据库MySQL 学习笔记(3) - 数据库操作

C 数据库MySQL 学习笔记(3) - 数据库操作 视图操作 视图是从一个或多个表中导出来的表&#xff0c;是一种虚拟存在的表。视图就像一个窗口&#xff0c;通过这个窗口可以看到系统专门提供的数据&#xff0c;这样用户可以不看整个数据库表中的数据&#xff0c;而只关心对自己有…

【加密与解密】【07】SSL安全套件全解析

SSL/TLS协议 SSL&#xff0c;Secure Socket Layer&#xff0c;安全套接层 TLS&#xff0c;Transport Layer Security&#xff0c;传输层安全协议 TLS是SSL的最终完善版本&#xff0c;一般也可称为SSL协议 SSL是负责传输层安全&#xff0c;确定传输层数据如何封装的一套协议…

讨论Nginx服务器的反爬虫和反DDoS攻击策略

Nginx服务器是一个高性能的Web服务器和反向代理服务器&#xff0c;具有强大的反爬虫和反DDoS攻击能力。本文将讨论Nginx服务器的反爬虫和反DDoS攻击策略&#xff0c;并给出相关的代码示例。 一、反爬虫策略 爬虫是一种自动化程序&#xff0c;用于从互联网上收集特定网站的数据…

Java 内存分页

1. 查询出要分页的总数 2. 根据 stream 流进行分页 3. 当分页数超过总数&#xff0c;返回空集合。例&#xff1a;总数10&#xff0c;页码2&#xff0c;pagesize10 4. 当最后一页不够 pageSize, limit(pageSize) 返回实际条数 例&#xff1a;12条数据&#xff0c;pageSize10…

使用Petalinux设计linux系统

文章目录 1.通过 Vivado 创建硬件平台&#xff0c;得到 hdf 硬件描述文件2.设置 Petalinux 环境变量3.创建 Petalinux 工程4.配置Petalinux 工程5.配置Linux内核6.配置Linux根文件系统7.配置设备树文件8.编译 Petalinux 工程9.制作BOOT.BIN启动文件10.制作SD启动卡 1.通过 Viva…