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

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,后面被其它很多同事使用。

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

相关文章:

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月工作生活总结。 研发编码 编码和注释 因某些需要&#xff0c;重拾了2019年的工程代码…...

Json与Java类

简介 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。JSON数据由键值对构成&#xff0c;并以易于阅读的文本形式展现&#xff0c;支持数组、对象、字符串、数字、布尔值…...

动手学深度学习(Pytorch版)代码实践 -计算机视觉-39实战Kaggle比赛:狗的品种识别(ImageNet Dogs)

39实战Kaggle比赛&#xff1a;狗的品种识别&#xff08;ImageNet Dogs&#xff09; 比赛链接&#xff1a;Dog Breed Identification | Kaggle 1.导入包 import torch from torch import nn import collections import math import os import shutil import torchvision from…...

在Linux系统中挂载硬盘

目录 1. 查看硬盘信息 2. 分区硬盘&#xff08;如果硬盘没有分区&#xff09; 3. 格式化分区 4. 创建挂载点 5. 挂载分区 6. 验证挂载 7.设置开机自动挂载&#xff08;可选&#xff09; 1. 查看硬盘信息 lsblk 这个命令会列出所有的块设备&#xff0c;包括硬盘 2.…...

安卓短视频去水印v1.7 简洁好用

各大平台视频无水印提取&#xff0c;登录即永久会员&#xff01; 无水印提取&#xff0c;图片无水印提取 视频旋转&#xff0c;倒放&#xff0c;转gif等功能。 链接&#xff1a;https://pan.baidu.com/s/1UgO4V16ZM34tG5uDog74Pg?pwdcn0u 提取码&#xff1a;cn0u...

【征服数据结构】:期末通关秘籍

【征服数据结构】&#xff1a;期末通关秘籍 &#x1f498; 数据结构的基本概念&#x1f608; 数据结构的基本概念&#x1f608; 逻辑结构和存储结构的区别和联系&#x1f608; 算法及其特性&#x1f608; 简答题 &#x1f498; 线性表&#xff08;链表、单链表&#xff09;&…...

GIT 基于master分支创建hotfix分支的操作

基于master分支创建hotfix分支的操作通常遵循以下步骤&#xff1a; 切换到master分支&#xff1a; 首先&#xff0c;确保你的工作区是最新的&#xff0c;并且你在master分支上。如果不在master分支&#xff0c;你需要先切换过去。 Bash git checkout master 拉取最新的master…...

Vue-CLI脚手架与node.js安装

前言&#xff1a; Vue-CLI 是一个基于 Vue.js 快速开发单页应用的官方脚手架工具&#xff0c;能够帮助开发者快速搭建前端项目的基础结构。在开始使用 Vue-CLI 前&#xff0c;首先需要安装 Node.js&#xff0c;因为 Vue-CLI 是基于 Node.js 构建的。 Node.js 是一个基于 Chrom…...

自适应站长跑路单页网站源码

跑路单页HTML源码自行修改文字就行了,上传到服务器里面运行即可&#xff0c;本地运行的话音乐会加载不出来&#xff0c;涉及到跨域问题 自适应站长跑路单页网站源码...

Java基础(判断和循环)

一、流程控制语句-顺序结构 顺序结构语句是Java程序默认的执行流程&#xff0c;按照代码的先后顺序&#xff0c;从上到下依次执行。 二、流程控制语句-分支结构&#xff08;分支结构包括if、switch) if语句&#xff1a;在程序中用来进行判断 1、If语句的第一种格式&#xf…...

51单片机第12步_使用stdio.h库函数仿真串口通讯

本章介绍如何使用stdio.h库函数仿真串口通讯&#xff0c;学会使用view下面的“serial window #1”,实现模拟串口通讯。 Keil C51中有一些关键字&#xff0c;需要牢记&#xff1a; interrupt0:指定当前函数为外部中断0&#xff1b; interrupt1:指定当前函数为定时器0中断&…...

simulink-esp32开发foc电机

1. ESP32 和 STM32 都是流行的微控制器&#xff0c;但它们的刷写方式有所不同。 ESP32 ESP32 可以通过以下几种方式刷写&#xff1a; USB 下载模式&#xff1a;这是最常见的一种刷写方式。将 ESP32 连接到计算机的 USB 端口&#xff0c;然后将 ESP32 置于下载模式。可以使用…...

Python教程--基本技能

】TOC 5.1 解析命令行参数 在Python中&#xff0c;解析命令行参数是一项常见的任务&#xff0c;尤其是在开发命令行工具或脚本时。Python标准库提供了argparse模块&#xff0c;它可以帮助你轻松地编写用户友好的命令行接口。下面是使用argparse模块解析命令行参数的基本步骤&…...

干货分享:Spring中经常使用的工具类(提示开发效率)

环境&#xff1a;Spring5.3…30 1、资源工具类 ResourceUtils将资源位置解析为文件系统中的文件的实用方法。 读取classpath下文件 File file ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX "logback.xml") ; // ...读取文件系统文件 file Resou…...

一文讲懂npm link

前言 在本地开发npm模块的时候&#xff0c;我们可以使用npm link命令&#xff0c;将npm 模块链接到对应的运行项目中去&#xff0c;方便地对模块进行调试和测试 用法 包链接是一个两步过程&#xff1a; 1.为依赖项创建全局软链npm link。一个符号链接&#xff0c;简称软链&a…...

观成科技:证券行业加密业务安全风险监测与防御技术研究

摘要&#xff1a;解决证券⾏业加密流量威胁问题、加密流量中的应⽤⻛险问题&#xff0c;对若⼲证券⾏业的实际流量内容进⾏调研分析&#xff0c; 分析了证券⾏业加密流量⾯临的合规性⻛险和加密协议及证书本⾝存在的⻛险、以及可能存在的外部加密流量威 胁&#xff0c;并提出防…...

使用Swoole开发高性能的Web爬虫

使用swoole开发高性能的web爬虫 Web爬虫是一种自动化获取网络数据的工具&#xff0c;它可以在互联网上收集数据&#xff0c;并且可以被应用于各种不同的领域&#xff0c;如搜索引擎、数据分析、竞争对手分析等。随着互联网规模和数据量的快速增长&#xff0c;如何开发一个高性…...

【Elasticsearch】Elasticsearch索引创建与管理详解

文章目录 &#x1f4d1;引言一、Elasticsearch 索引的基础概念二、创建索引2.1 使用默认设置创建索引2.2 自定义设置创建索引2.3 创建索引并设置映射 三、索引模板3.1 创建索引模板3.2 使用索引模板创建索引 四、管理索引4.1 查看索引4.2 更新索引设置4.3 删除索引 五、索引别名…...

[数据集][目标检测]棉花检测数据集VOC+YOLO格式389张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;389 标注数量(xml文件个数)&#xff1a;389 标注数量(txt文件个数)&#xff1a;389 标注类别…...

使用Java实现实时数据处理系统

使用Java实现实时数据处理系统 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 在当今信息爆炸的时代&#xff0c;实时数据处理系统变得越来越重要。无论…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...