[2023-年度总结]凡是过往,皆为序章
原创/朱季谦
2023年12月初,傍晚,在深圳的小南山看了一场落日。
那晚我们坐在山顶的草地上,拍下了这张照片——仿佛在秋天的枝头上,结出一颗红透的夕阳。

这一天很快就会随着夜幕的降临,化作记忆的碎片,然而,总会有一些难忘的痕迹,在逐渐落满灰尘的回忆里,熠熠生辉。这些痕迹,或许是一张随手拍下的照片,或许是聊天记录里的只言片语,又或许,只是朋友圈里一个普通动态......直到很久以后,突然翻到关于这一天的记录,死去的记忆顿时从四面八方赶回来,透过这张照片,我一定会想起,那天曾和喜欢的人坐在山顶上看过夕阳。
这难道不是刻舟求剑的另一种体现吗?
2023年就如那天的落日一样,渐渐沉入了岁月的大海。
在这艘岁月的船上,总得刻一点什么文字,方便日后再想起这一年时,不至于一片空白。
下面就分段写一下这一年印象深刻的事情。
一、获得腾讯云社区2022年度最佳作者
在今年年初的时候,很荣幸获得腾讯云社区颁发的“腾讯云社区2022年度最佳作者奖”,这是我写原创编程技术博客以来获得过的第一块奖杯,可以说,意义非凡。
它像是技术写作道路上的一块小里程碑,给了我不少的鼓励。
想起当初刚开始写技术类文章时,就像脚穿千斤鞋,举步维艰,无从下手——虽然在此之前,我已写过近百万字的网络小说和短篇小说随笔等,但是,第一次开始去写技术类文章,还是比较困难的。
现在回过头去看第一篇技术文,可以说很是稚嫩。
虽然现在写得仍是一般,但经过这两年的刻意练习,至少已经不像最初那样举步维艰和无从下手,相反,逐渐有一种得心应手的感觉。
或许,这就是刻意练习之后的熟能生巧,当然,若是展望未来的话,更希望能在熟能生巧的基础上,熟能生“新”。

二、拿到驾照
若是问我在大学的时候,比较遗憾的事情之一,考驾照肯定算一件。
以致于想买车的时候,却连驾照都没有考。
想起当时在深圳报考驾照的时候,还是很担心会踩雷,还好,特别幸运的是,遇到一个很好的教练,在2022年11月底报名,在2023年3月初就顺利拿到驾照。
我在年初有个目的之一是,今年一定要拿到驾照,算是按照目标完成了。

三、跟上ChatGPT潮流
今年上半年,可能最具爆炸性的新闻就是GPT模型了。
3月份那会儿,在自己的云服务器上通过Docker 部署一套前端仿写Chat GPT页面而内部真实通过ChatGPT 密钥调用外网接口的应用。这样一番操作下来,家里的数台电脑都无需再通过外网即可一键使用GPT。
后来,按照同样方式,给办公司开发团队部署了一套这样的Docker,使得内部团队早早就在工作当中用上了GPT。
直到现在,这套部署仍然运行在我的云服务器上,成为日常工作编程的绝佳助手。
当然,在这个过程当中,2月和3月份那会红利期,通过教人部署以及其他相关提供服务的途径,做了一些变相的尝试,虽然赚的不多,但总归是一次副业尝试。
四、大数据开发技术栈提升
今年比较幸运,有机会参与到内部大数据图计算前沿项目的开发,围绕这个项目,这近一年里将Spark、HBase、Hive、Hadoop、Sqoop等相关的大数据技术栈都在实际开发过程中掌握,算是在后端开发的基础上,拓展大数据领域的开发。
当然,在这个过程当中,还阅读了Spark Core以及Graphx相关的源码,同时还把阅读的心得写成文章,发布到博客,例如《图解Spark Graphx基于connectedComponents函数实现连通图底层原理》、《图解Spark Graphx实现顶点关联邻接顶点的collectNeighbors函数原理》这两篇,其中,《图解Spark Graphx基于connectedComponents函数实现连通图底层原理》获得了NebulaGraph 技术社区 2023 年年度征文奖。

五、各个技术平台的写作数据
之前写过一个总结这些年写作的感悟:完成比完美更重要。
特别对于新手而言,最好的写作方式,就是不断去写,带着“不要脸”和“老子就是造翔也要写完的心态”去写。写到脑子不够用了,就去看书、看视频等等做各种知识的输入。
写出个上百万字后,你就会发现,当初手里写出的那一坨翔,在多年以后,正逐渐变成文章里所有发光的起源。
每次遇到卡文时,我都是这样告诉自己的,硬着头皮写下去,只有不断写完,不断总结,下一篇才能写得更好。
而不是一上来,就要写出惊天地泣鬼神的完美作品。
这两年开始坚持写技术博客,总体而言,有收获,有不足。
今年记录下来,希望明年的这个时候,对比之下,有一个更好的成长。
5.1、腾讯云社区
说实话,在腾讯云社区退步了些,上半年名次最好的时候是到三四十名左右,中间有两三个月没怎么发文,排名就一直下降。我算是比较喜欢腾讯云社区,比较有温度,遇到问题,能够及时得到相应的解决,还有很多值得参与的活动。
与此同时,在这里遇到很多优秀的技术写作者,从他们身上,找到了不少榜样的动力。

5.2、CSDN社区
今年比较有突破一点是,入围了CSDN的2023年博客之星,希望明年这个时候,争取可以拿到TOP名次。

5.3、博客园
最开始技术写作平台,目前园子正经历一段苦难期,还是真心希望它能继续做下去。

5.4、思否
今年开始在SegmentFault思否写东西,很开心之前有一篇《Dubbo2.7的Dubbo SPI实现原理细节》得到了SegmentFault 思否写作挑战赛:写文章领取技术图书活动奖品,算是一次不错的进步。希望再接再厉,争取今年可以有更多突破。

写了这么多年东西之后,还有一件比较有成就感的事情是,网上搜自己的名字,发现满屏搜出来的,都是自己这些年的产出及相关信息。
在大学的时候,写过很多短篇小说,还有一些长篇小说。
遗憾的是,大学毕业后,开始程序员打工仔生涯之后,就很少写故事了,时间都花在学习各种技术上。
然而,这两年,特别是这一年以来,想写小说的欲望又开始慢慢浮现。或许是经历了一些亲人的离世,明白人总会有一死,那就在生命的终点前,去做一些自己热爱的事情。
我在今年上半年,化名接受过一次谷雨实验室-腾讯新闻一场关于副业的采访,当时有提到自己业余在做的事情。(沈颜云是我正在写的悬疑长篇里的主角名,当时小姐姐问我这篇采访用什么名字好,我就想用自己故事里的主角名了。)

这两本小说,今年一直在存稿,计划是明年顺利投网站走分成签约。
结果无论如何,都希望能继续写下去,无论是技术类写作,还是故事类写作。
六、展望2024年
关于2024年,有以下几个规划:
6.1、技术写作方面:输出同系列内容,希望能写出一本完整的技术电子书。
6.2、故事写作方面:任意一本小说投稿签约成功,连载完结。
6.3、扎实技术的深度能力,的框架底层源码,总结成内容输出。
6.4、提高演讲能力和管理能力。
6.5、坚持阅读。
相关文章:
[2023-年度总结]凡是过往,皆为序章
原创/朱季谦 2023年12月初,傍晚,在深圳的小南山看了一场落日。 那晚我们坐在山顶的草地上,拍下了这张照片——仿佛在秋天的枝头上,结出一颗红透的夕阳。 这一天很快就会随着夜幕的降临,化作记忆的碎片,然…...
OpenCV之像素操作
我们首先了解一下什么是像素,计算机中是如何存储图像,以及opencv是如何表示图像的。 像素: 像素是指由图像的小方格即所谓的像素(pixel)组成的,这些小方块都有一个明确的位置和被分配的色彩数值,而这些一小方格的颜色…...
Transfer Learning(迁移学习)
1. 什么是迁移学习 迁移学习(Transfer Learning)是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都…...
NPM 的使用技巧:简化 JavaScript 开发和依赖管理
前言 NPM(Node Package Manager)是 JavaScript 生态系统中最流行的包管理工具之一。本文将介绍一些有用的 NPM 使用技巧,帮助开发者更好地利用 NPM 管理项目依赖、执行脚本、发布自己的包以及解决常见问题。 1. 初始化项目 使用 NPM 初始化…...
统计和绘图软件GraphPad Prism mac功能特点
GraphPad Prism mac是一款专业的统计和绘图软件,主要用于生物医学研究、实验设计和数据分析。 GraphPad Prism mac功能和特点 数据导入和整理:GraphPad Prism 可以导入各种数据格式,并提供直观的界面用于整理、编辑和管理数据。用户可以轻松…...
WWW 指南-万维网联盟(World Wide Web)
WWW - 万维网联盟 WWW通常称为网络。 web是一个世界各地的计算机网络。 电脑在Web上使用标准语言沟通。 万维网联盟(W3C)制定了Web标准 什么是WWW? WWW 代表 World Wide Web(万维网)万维网常常被称为 网络网络是世界各地的计算机网络网络中…...
Linux网络编程之TCP/IP实现高并发网络服务器设计指南
目录 引言: 多进程服务器 例程分享: 多线程服务器 例程分享: I/O多路复用服务器 select 例程分享: poll 例程分享: epoll 例程分享: 总结建议 引言: 随着互联网的迅猛发展ÿ…...
【SpringBoot实战】基于阿里云实现文件上传
【SpringBoot实战】基于阿里云实现文件上传 在实际项目开发中,不可避免地会使用到阿里云OSS进行文件存储。尽管阿里云有详细的开发文档,但本篇博客的目的是让我们能够用简明的代码快速实现这个功能。 引入依赖 <dependencies><!-- 阿里云oss…...
大数据技术学习笔记(十一)—— Flume
目录 1 Flume 概述1.1 Flume 定义1.2 Flume 基础架构 2 Flume 安装3 Flume 入门案例3.1 监控端口数据3.2 实时监控单个追加文件3.3 实时监控目录下多个新文件3.4 实时监控目录下的多个追加文件 4 Flume 进阶4.1 Flume 事务4.2 Flume Agent 内部原理4.3 Flume 拓扑结构4.3.1 简单…...
电路设计时,继电器线圈、风扇电机绕组等感性负载必须有续流二极管。
续流二极管(也常被称为“自由轮流二极管”或“反向并联二极管”)在感性负载电路中的应用非常重要,尤其是在继电器线圈、风扇电机绕组等设备中。感性负载是指那些在其线圈中会产生感应电动势的负载,例如电动机、变压器和继电器等。当这些设备的电源被切断时,它们的线圈会因…...
Mongodb基础介绍与应用场景
NoSql 解决方案第二种 Mongodb MongoDB 是一款开源 高性能 无模式的文档型数据库 当然 它是NoSql数据库中的一种 是最像关系型数据库的 非关系型数据库 首先 最需要注意的是 无模式的文档型数据库 这个需要后面我们看到它的数据才能明白 其次是 最像关系型数据库的非关系型数据…...
mysql参数配置binlog
官网地址: MySQL :: MySQL Replication :: 2.6.4 Binary Logging Options and Variables 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. MySQL 复制 / ... / 二进制日志记录选项和变量 2.6.4 二进…...
pytorch常用的几个函数详解
文章目录 view基本用法自动计算维度保持原始数据不变 t函数功能语法返回值示例注意事项 permute() 函数基本概念permute() 函数的使用 unsqueeze() 函数基本概念unsqueeze() 函数的使用 squeeze() 函数基本概念squeeze() 函数的使用 transpose() 函数基本概念transpose() 函数的…...
Linux下安装Flume
1 下载Flume Welcome to Apache Flume — Apache Flume 下载1.9.0版本 2 上传服务器并解压安装 3 删除lib目录下的guava-11.0.2.jar (如同服务器安装了hadoop,则删除,如没有安装hadoop则保留这个文件,否则无法启动flume&#…...
20231225使用BLE-AnalyzerPro WCH升级版BLE-PRO蓝牙分析仪抓取BLE广播数据
20231225使用BLE-AnalyzerPro WCH升级版BLE-PRO蓝牙分析仪抓取BLE广播数据 2023/12/25 20:05 结论:硬件蓝牙分析仪 不一定比 手机端的APK的效果好! 亿佰特E104-2G4U04A需要3片【单通道】,电脑端的UI为全英文的。 BLE-AnalyzerPro WCH升级版B…...
.net6使用Sejil可视化日志
(关注博主后,在“粉丝专栏”,可免费阅读此文) 之前介绍了这篇.net 5使用LogDashboard_.net 5logdashboard rootpath-CSDN博客 这篇文章将会更加的简单,最终的效果都是可视化日志。 在程序非常庞大的时候&…...
mysql(51) : 大数据导出为insert
代码 import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Objects;public class 大数据导出为insert {public …...
MFC查找错误的方法
在visual studio2005上Debug总是会出现各种问题,比如指针错误,乱码等,无法正确查看变量的值,这时候可以使用AfxMessageBox()方法对数据进行弹窗输出,但AfxMessageBox()函数只支持CString数据输出,我们就需要…...
Jave EE 网络原理之网络层与数据链路层
文章目录 1. 网络层1.1 IP 协议1.1.1 协议头格式1.1.2 地址管理1.1.2.1 认识 IP 地址 1.1.3 路由选择 2. 数据链路层2.1 认识以太网2.1.1 以太网帧格式2.1.2 DNS 应用层协议 1. 网络层 网络层要做的事情,主要是两个方面 地址管理 (制定一系列的规则&am…...
ElasticSearch 使用映射定义索引结构
动态映射 dynamic 可选值解释true默认值,启用动态映射,新增的字段会添加到映射中runtime查询时动态添加到映射中false禁用动态映射,忽略未知字段strict发现未知字段,抛出异常 显示映射 创建映射 PUT user {"mappings&qu…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀”
深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀” 在JavaScript中,我们经常需要处理文本、数组、对象等数据类型。但当我们需要处理文件上传、图像处理、网络通信等场景时,单纯依赖字符串或数组就显得力不从心了。这时ÿ…...
