良晨
码龄8年
关注
提问 私信
  • 博客:116,980
    116,980
    总访问量
  • 73
    原创
  • 203,990
    排名
  • 39
    粉丝
  • 0
    铁粉
  • 学习成就

个人简介:keep coding...

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2017-04-26
博客简介:

良晨的技术站

博客描述:
关注我的个人博客 www.coolsite.top
查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    405
    当月
    1
个人成就
  • 获得121次点赞
  • 内容获得53次评论
  • 获得370次收藏
  • 代码片获得1,401次分享
创作历程
  • 1篇
    2024年
  • 3篇
    2023年
  • 4篇
    2022年
  • 11篇
    2021年
  • 9篇
    2020年
  • 40篇
    2019年
  • 13篇
    2018年
成就勋章
TA的专栏
  • C++
    6篇
  • 生活
    3篇
  • LeetCode
    37篇
  • 操作系统
    9篇
  • Linux
    7篇
  • Coding
    7篇
  • TensorFlow
    1篇
  • Spring
    1篇
  • 后端
    9篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

357人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C 结构体链表的一点想法

我觉得这样的作法并不是太好,虽然从实现上是可行的,但这样会使 list 的职责不单一,也就是说结构体中的 list 节点可能是该结构体是一个链表节点,也可能是某个链表的链表头,而且某个结构体会出现多个 list 成员,这样结构体的可读性也不够高。这样的话 list 的职责就单一了,每个结构体只会含有一个 list,每个 list 必然连接的结构体是相同的。如果把另外两个链表头换成另外两个结构体的指针,这样能保证每个结构体都只有一个 list,而且职责单一,保证该 list 一定是表示该结构体是链表成员。
原创
发布博客 2024.03.21 ·
340 阅读 ·
4 点赞 ·
0 评论 ·
0 收藏

vscode java 项目无法运行和显示依赖问题

vscode 运行项目可能会有找不到主类的错误,import 的外部依赖模块无法正常读取和显示,其他一切正常。
原创
发布博客 2023.07.09 ·
2178 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

哀悼左耳朵耗子陈皓老师

从来没有哪个大佬去世让我这么震撼,我是耗子叔的忠实追随者,从 coolshell 上的每一篇精彩文章,到左耳听风专栏,到 github 上依然在乐此不疲的更新 leetcode 算法,无不让每位热爱技术的人佩服,包括我的网站名 coolsite 也是致敬耗子叔。另外,我在至少45岁前不会出书,因为我觉得在那之前,我是不会沉淀足够的学识,没有资格出书。今天得知了一个噩耗,我最敬重的程序员大佬,左耳朵耗子陈皓老师突发心梗去世了。耗子叔专栏的头像已灰,我的学习进度还没有完成,虽然很多文章都反复读了很多遍。
原创
发布博客 2023.05.15 ·
277 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

从 level-ip 源码来看 TCP 如何接收消息

陈硕的书中有说到过网络编程有三个层次:● 读过教程和文档,做过练习● 熟悉本系统 TCP/IP 协议栈的脾气● 自己写过一个简单的 TCP/IP stack个人觉得自己第一层次已经没有什么问题,自己编写过一些经典的的网络编程代码(chat、echo、proxy),能够不错地运行在开发环境;第二层次通过自己开发的 serverlite 网络库也对网络编程和 TCP/IP 的一些坑有所了解,欠缺一些线上调试和解决问题的经验,这个需要多年的工作积累目前尚未达到,所以第二层次算是入门。但经验积累不是一蹴
原创
发布博客 2023.01.14 ·
679 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ros 框架解析-订阅部分

本文从roscpp源码的角度解析ros框架的订阅部分,目的是分析订阅相关的各个类的关系和作用,从而熟悉ros订阅功能底层调用过程,和ros节点之间的通信方式。源码地址是https。
原创
发布博客 2022.07.24 ·
833 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Docker 中修改时区的问题

最近在 Docker 中修改时区遇到了一个问题,就是 python3 启动 apscheduler 时会通过接口去拿系统时区,而我之前 Docker 中的时区是这么改的:然后报错这样:解决方案大概意思是目标的时区配置文件和 /etc/timezone 中的时区名冲突,代码试图去拿 /etc/localtime 软链接指向的文件,而因为我是通过拷贝将 Asia/Shanghai 拷贝到 /etc/localtime,而该文件软链接指向的文件是 UCT,所以导致的错误。正确操作是使用软链接将 软链接到
原创
发布博客 2022.06.24 ·
2163 阅读 ·
3 点赞 ·
2 评论 ·
4 收藏

flask-admin 中显示视图如何修改时区显示

用 flask admin 的时候,有转换显示视图字段的需求,比如修改时区因为可能数据库中存储的字段是utc时间戳,所以显示的时候需要转换为国内时区。假如字段为 update_time,数据类型为 datetime.datetime。我们需要将 update_time 修改为国内时区,并格式化显示。首先解决的问题是如何修改 flask-admin 的视图字段,通过文档可查阅,column_formatters 可以修改字段显示格式。class MyModelView(BaseModelView.
原创
发布博客 2022.03.24 ·
1972 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Nginx 内存池源码解析

内存池是一种节省内存的技术方案,Nginx 实现的内存池代码精炼且实用,值得我们深入学习,一探究竟。Nginx 使用内存池主要有以下原因:内存管理Nginx 通过直接申请一整块内存的方式,来代替开发者主动去堆中申请内存块,开发者主动从堆中申请内存,所以申请的内存可以用内存池统一释放。这样的好处是开发者无需对自己申请的每一块内存都释放,可以由一个地方统一释放,这样能解决大部分的内存泄露问题。内存碎片如果手动从堆中分配内存,且如果分配了大量的小内存块,则有内存碎片的情况。频繁系统调用多
原创
发布博客 2022.03.14 ·
3172 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

libevent 实现一个 TcpRelay

libevent 实现一个 TcpRelay前言最近用 libevent 实现了一个 TcpRelay,也叫 TCP 中继器,同时连接客户端和服务端来使双方进行间接的通信。一般是为了解决客户端无法直接访问服务端的情况,可以通过 TcpRelay 来替双方转发消息,是比较简单的网络程序,只需把收到的数据交给另一方就行。使用 libevent 的目的第一个是熟悉这个网络库,抱着学习的态度来使用,也想和最近正在看的 muduo 库做一些比较;其次是熟悉代理服务器的一些实现方法,所以就先从简单的 tcpre
原创
发布博客 2021.11.07 ·
422 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Redis 请求的一次网络旅程

Redis 请求的一次网络旅程Redis 不必多说,可以说是目前互联网使用最广泛的内存数据库,源于其丰富的数据结构、支持数据持久化、集群、高性能的这些特性。本文从 Redis 单线程模式,对于 Redis 客户端从登录到发送消息和收到消息的连续的行为,以 Redis 源码的角度做出解释,详细分析一个 Redis 连接的完整旅程,也作为我在 Redis 学习过程中的一个深入思考的过程。要解释 Redis 连接的完整过程,事实上主要是对 Redis 网络模型进行分析,因此会分为这几个部分(服务端角度)
原创
发布博客 2021.08.22 ·
406 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Docker中配置Git环境

Docker中配置Git环境工作中遇到了需要在Docker环境中操作GitLab仓库的场景,需要事先在Docker中搭好Git环境。由于在Docker中对Git仓库操作是全自动化的,因此需要免密拉取仓库和提交等操作,我这里是使用SSH来进行免密操作。所以首先是配置SSH,其次是配置Docker环境。配置SSH Key先生成SSH key:ssh-agenteval $(ssh-agent -s)ssh-keygen -o -t rsa -b 4096 -C "{username}"ssh-
原创
发布博客 2021.08.10 ·
8142 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

一起写一个 Nginx 访问统计模块

前言Nginx 是一款强大的web服务器,是由核心模块和其他的一系列模块一起组成,其高度模块化的设计使得Nginx的扩展和开发十分方便。Nginx提供了web反向代理服务、email邮件服务、负载均衡、web服务器等功能,其核心模块Nginx core提供了通讯、运行环境,是所有其他模块协作的基石。本文将会手撸一个访问统计模块,统计每一个 IP 的页面访问次数,业务并不复杂,只是用来学习 Nginx 模块的编写方法。在这之前,先简单介绍下 Nginx 模块的基本理论。Nginx 模块概述Nginx
原创
发布博客 2021.07.04 ·
605 阅读 ·
0 点赞 ·
3 评论 ·
2 收藏

重读&笔记系列-《深入理解计算机系统》第三章-part3,part4

Machine Programming III: ProceduresMechanisms in ProceduresPassing controlTo beginning of procedure codeBack to return pointPassing dataProcedure argumentsReturn valueMemory managementAllocate during procedure executionMechanisms al
原创
发布博客 2021.05.27 ·
369 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

CSAPP实验之Bomb Lab详解

文章目录前言phase 1phase 2phase 3phase 4phase 5phase 6总结和感想前言Bomb Lab来自《深入理解计算机系统》(CSAPP)一书的第三章“程序的机器级表示”的配套实验,该实验的目的是通过反汇编可执行程序,来反推出程序执行内容,进而能够正确破解”密码“,解除“炸弹”。Bomb Lab文件目录如下:├── bomb├── bomb.c└── READMEbomb: 可执行程序,我们需要对其进行反汇编和gdb调试。bomb.c: bomb的主函数mai
原创
发布博客 2021.05.23 ·
19017 阅读 ·
40 点赞 ·
8 评论 ·
229 收藏

重读&笔记系列-《深入理解计算机系统》第三章-part1,part2

Machine Programming IMachine Programming I: BasicHistory of Intel processors and architecturesC, assembly, machine codeDefinitionArchitecture: also ISA instruction set architecture) The parts of a processor design that one needs to understand or wri
原创
发布博客 2021.05.05 ·
1777 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

让链表跳起来--SkipList的原理及实现

让链表跳起来–SkipList的原理及实现引言Skip lists are a data structure that can be used in place of balanced trees. Skip lists use probabilistic balancing rather than strictly enforced balancing and as a result the algorithms for insertion and deletion in skip lists ar
原创
发布博客 2021.04.11 ·
382 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

重读&笔记系列-《Linux多线程服务端编程》第一章

C++《linux多线程服务端编程》笔记1 线程安全生命期管理析构函数与多线程C++多线程的几种竞态条件:析构时如何保证本对象不正在被执行使用使用对象时如何保证不正在被析构使用对象时本对象是否还活着线程安全class的三个条件:多线程访问能够正确执行多线程执行顺序不会影响程序行为无须额外同步或协调使用 MutexLock 和 MutexLockGuard 封装 mutex。线程安全的Counter(部分):int64_t Counter::value() const{
原创
发布博客 2021.03.28 ·
266 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

重读&笔记系列-《深入理解计算机系统》第一章

《深入理解计算机系统》笔记1 计算机系统漫游计算机由系统软件和硬件组成,其内在概念亘古不变。通过对hello world程序的生命期来了解计算机系统。1.1 信息就是位+上下文信息+上下文=信息,不同类型的信息有不同的上下文,上下文就是编码规则。只由ASCII字符构成的文件为文本文件,其他所有文件为二进制文件。C语言成功的因素:Unix由C语言编写、小而简单、为实践目的设计。1.2 程序被翻译成不同的格式预处理阶段(.c->.i):处理#开头的命令,载入头文件,替换宏定义。编译阶
原创
发布博客 2021.03.26 ·
159 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Python3缺少sqlite3或openssl的问题

最近对需要在一台内网环境的服务器上离线手动安装python3,操作系统为ubuntu16.04,遇到的问题特此记录问题描述在python导入模块sqlite3和openssl过程中出现如下错误:手动编译python3过程中出现以下错误:这些错误说明了以下几点:ssl相关的库文件libssl.so.1.1, libcrypto.so.1.1未找到sqlite3等模块相关文件未找到无法安装ssl模块由于库文件无法找到的原因,未能成功安装那么我们一一解决以上问题。1 手..
原创
发布博客 2021.01.19 ·
1528 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

awk根据指定字符串内容排序

引言最近需要对一个MarkDown表格进行排序,关键字段是在第一个的两个|中间,如下|8|String to Integer (atoi) | C++|Medium||5|Longest Palindromic Substring | C++|Medium||17|Letter Combinations of a Phone Number | C++|Medium||538|Convert BST to Greater Tree | C++|Medium||1122|Relative Sort
原创
发布博客 2020.12.19 ·
891 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏
加载更多