- 博客(332)
- 资源 (31)
- 问答 (1)
- 收藏
- 关注
原创 Python操作Excel工作簿(\*.xlsx)
`Excel` 作为流行的个人计算机数据处理软件,混迹于各个领域,在程序员这里也是常常被处理的对象,可以处理 `Excel` 格式文件的 Python 库还是挺多的,比如 `xlrd`、`xlwt`、`xlutils`、`openpyxl`、`xlwings` 等等,但是每个库处理 `Excel` 的方式不同,有些库在处理时还会有一些局限性...
2020-03-15 17:29:27 8156 77
原创 MySQL数据库导入、导出、复制表、重命名表
提前说明这是一篇小白总结,高手勿喷请绕行,写这篇总结的原因是发觉自己有时候确实眼高手低了,大道至简,花了很多时间去看索引、缓存、主从等等,等到出现实际问题的时候却发现自己磨磨蹭蹭写出的SQL语句居然有语法错误,看来还得稳扎稳打从基础入手,因为实际工作的用到的SQL并不多,现在把常用的几条总结一下,即使下次不能立马写出来,也能在这篇文章中的快速找到想要的...
2019-11-30 14:13:09 4780 24
原创 linux环境下常用的打包、压缩、解压命令(tar、gzip、bzip2、zip)
经常使用电脑的人常常会接触到压缩文件,不管是软件、数据还是资料,下载之后通常就是一个压缩包,在Windows平台上如果安装了WinRAR或者360压缩,不管是什么格式的压缩文件,一般点击压缩文件右键选择解压选项即可,非常地方便。正因为长时间在Windows平台上方便的解压文件,导致我对打包、压缩的概念理解错误,结果在linux操作压缩文件时有很多疑问,今天终于明白了一点,专门总结一下,同时列举常用的压缩、解压命令,方便日后查找使用...
2019-11-06 17:10:56 2954 20
原创 float的精度和取值范围
前言关于float的精度和取值范围这个问题,我查询了很多次,每次都是用完就忘了,等到再使用的时候还需要再次查询,关键是这个问题大家给出的结果并不都是一致的,我得从众多的资料当中选择出正确的观点,这还要额外花一些时间,所以我决定也总结一次,方便我以后拿来直接用了,如果能给大家带来帮助那就更好了。下面提到一些说法很多都是我个人的理解,如果大家有疑义,欢迎讨论。精度限制首先考虑下为什么会产生精度...
2019-06-16 12:11:00 188260 197
原创 智能指针(三):weak_ptr浅析
weak_ptr这个指针天生一副“小弟”的模样,也是在C++11的时候引入的标准库,它的出现完全是为了弥补它老大shared_ptr天生有缺陷的问题,其实相比于上一代的智能指针auto_ptr来说,新进老大shared_ptr可以说近乎完美,但是通过引用计数实现的它,虽然解决了指针独占的问题,但也引来了引用成环的问题,这种问题靠它自己是没办法解决的,所以...
2018-09-01 14:36:26 53563 63
原创 面对AI你到底能做什么?怎样能让其为我所用
面对AI铺天盖地的新闻,大有替代万事万物的之势,但如果要问AI能做什么?你是否会在心里打个问号?它好像只能用来聊天,又好像什么都能做,ChatGPT现在是我每天都要使用的工具,每天只是对话问问题,特定领域的问题确实比搜索引擎更精准一些,但是对AI的使用也就仅限于此,难道AI只有这么大点能力吗...
2024-05-07 02:15:00 635
原创 帧同步入门项目LockstepDemo的初步学习
上一篇文章介绍了这个项目可以作为帧同步入门读物,解决了跨域限制的问题以后,这个开源项目就可以运行起来啦,虽然我没有使用js写过实际的项目,但看的多了自然也能看懂大部分的js代码了,作为一个帧同步领域的小白,我开始了阅读这个项目代码的旅程,看过之后确实解开了我之前的迷惑,所以简单记录一下学习心得...
2024-04-25 01:00:00 969
原创 帧同步入门之日遭遇CORS(跨域资源共享)问题的暴击
工作以来的每个游戏项目都是用的状态同步,所以一直想找时间看一下帧同步的实现细节,网上搜到了一些开源项目,有cocos的、有Unity的,有原生C#的,大多数项目作为入门资料来看都比较重,虽然定点数计算、UDP加速这些已经成为了帧同步策略的标配,但是对于一个初学者来说,这些内容的引入无疑增加了学习成本,所以我还是想找一款帧同步纯逻辑实现的代码,后来发现这个项目还不错,那就从它开始学吧...
2024-04-24 02:00:00 569
原创 k8s小白的学习初体验
有些时候的巧合让人匪夷所思,前两周刚刚尝试了一遍Docker操作,紧接着就收到好朋友说要学习k8s容器部署的建议,最近两周抽空看了一些关于k8s的知识,相关概念真的是太多了,概念本身是枯燥的,但是当概念运行起来就有意思多了,这时候取出费曼学习大法,尝试着用自己的话来描述这些概念,看看自己是不是真的学会了。本文k8s相关概念均来自个人理解,后续...
2024-03-29 02:00:00 1278
原创 将python编写的网站制作成docker镜像并上传到Github Packages上
还记得上一篇《借助ChatGPT使用Python搭建一个工具网站》总结中我利用ChatGPT写了一个网站,最终它运行良好,就在昨天我看到了Github Packages,不久前刚刚使用了GitHub Actions,我发现Github在被微软收购后,并没有变的更“闭源”,之前广大网友还在调侃,最大的闭源软件公司收购了最大的开源平台,看来一切还在向好的方向发展,简单介绍下前面提到的这两个都是什么东西...
2024-03-09 02:00:00 1132
原创 借助ChatGPT使用Python搭建一个工具网站
不知不觉ChatGPT已经风靡一年多了,现在基本每天工作时都会用到,相比于传统的搜索引擎它究竟强在哪呢?
2024-03-02 02:00:00 1818 2
原创 在golang语言中简单使用protobuf时遭遇go_package困难重重
Protobuf,全称Protocol Buffers,是一种由Google开发的用于序列化结构化数据的开源数据交换格式,Golang作为一种后端语言,免不了使用protobuf这种数据交换格式,本来打算写个小例子展示一下怎样在go语言中使用protobuf,结果遇到的问题到不少,特别是这个go_package的要求,也是之前在项目开发过程中遇到的,这次就查找一下具体原因以及怎么使用吧...
2024-02-18 21:00:00 1263
原创 简单聊聊go语言中引用模块的版本控制以及invalid: should be v0 or v1, not v2问题的解决
如果你接触go语言比较早,一定有过当年所有go源码全部放入GOPATH下的混乱经历,不过发展到今天,go的包管理使用go.mod和go.work已经能得心应手,满足绝大多数的开发不成问题,其实在 `go.mod` 引入之后,go的包管理就有了明显的改善,再也不像原来那样好似闹着玩一样了...
2024-02-09 00:45:00 1295 1
原创 使用nslookup命令查询域名系统的信息
这个命令出现在与运维同学沟通过程中,在此之前要是问我一个域名对应的服务器是IP地址是什么,我肯定优先想到的是ping这个命令,这个命令确实可以在回复的信息中看到IP地址,但是不全面,有时一个域名对应不止一个IP地址,这时就要用到 nslookup 命令了,这也是在沟通中学到的新知识点...
2024-01-29 22:11:51 1425
原创 一个golang小白使用vscode搭建Ununtu20.04下的go开发环境
先交代一下背景,距离正式接触golang这门语言已经有5年时间,平时偶尔也会用go写写工具和功能,但其实充其量就是语言小白,基本上就是按照教程配置好环境,按照需求写写逻辑,能跑起来就行了。golang随着这几年的变化,这门语言的变化还是非常大的,之前写过一篇《Go环境配置时遇到的GOPATH路径以及包管理问题》,可以看出之前配置的变量很像Java早期的配置环境,从1.11 版本之后go工程不必放到GOPATH路径中了,通过go.mod文件来标记并跟踪每个软件包的版本,灵活度大大提高...
2024-01-21 20:44:05 1486 1
原创 推荐一款通过ssh连接linux服务的开源工具WindTerm
工作一入门便是游戏服务器开发,所以常常有连接Linux服务器的需求,之前用的最多的是Xshell,最近这个软件个人版只能免费使用一个月了,超过时间会提示更新无法正常使用,工作当中用的最多的是SecureCRT,不过这个软件是收费的,公司买了授权,可以正常用,但是在家时就不行了,最近我找到了WindTerm这个软件,用起来还不错,记录一下...
2024-01-14 19:39:08 1485
原创 2023年终总结——你相信光吗
最近在看一本叫《饱食穷民》的书,讲述的是泡沫经济年代的日本社会,宛如梦幻泡影一样变化无常,又像断梗浮萍一样飘忽不定,到处充斥着不安的色彩,我试图从中寻找一些当前现实问题的解决方案,上段文字也是出自此书之中,阅读之后我大受震撼,其中描述的有关软件工程师的篇章,简直就是我的复刻版,无论是心境、情感、还是所面临的问题都如出一辙,读完觉得背后隐隐发凉,因为最终那些令人无法接受的结局,确实是我不想看到的...
2024-01-01 00:02:35 1108
原创 Linux环境下通过journal命令查看和管理日志
就在半月之前,负责打包更新的服务器突然登录不上去了,赶紧找来运维的同事帮忙解决,发现系统日志中有很多 `systemd-journald[424]: Failed to open runtime journal: No space left on device` 字样的错误,被告知磁盘满了需要清理,但是我当时登录不上去,只能让他们帮忙重启后利用单用户模式上去删除临时文件试试,但重启后发现问题解决了,很是诧异,查询服务器后台监控平台,发现磁盘空间还有50%,inode只占用了0.02%,这怎么会磁盘满了呢..
2023-12-22 22:03:50 2280
原创 gitlab修改代码库的名称、路径和分组
工作项目的源码使用gitlab进行管理,通常情况下不会修改代码库和路径,但是非一般的情况总是存在,比如刚刚立项时多次调整项目名,甚至改变管理层级,所以还是有这类需求的,一开始我本打算将旧的代码库和提交记录推送到新的地址和分组,后来在gitlab后台里翻了翻,结合网络大神们的指点,发现可以直接修改代码库的名称和分组,总共需要修改3个配置,一起来看下...
2023-12-19 22:20:24 1345
原创 利用websockify将websocket通信转换成tcp
目前遇到一个问题,原本的服务都是利用tcp通信的,但是某些平台只支持websocket,是不是要从头实现一套websocket网络收发逻辑呢?短时间内有没有替代方案呢?在经过一番寻找之后发现了websockify这个神器,可以将websocket协议转换成tcp协议,从而实现不修改应用服务就支持tcp协议的目的,接下来就说说它怎么用,以及探索的过程...
2023-12-13 22:30:05 1253
原创 nginx配置自建SSL证书
之前的一篇文章《自建CA并生成自签名SSL证书》中讲到为什么要自建CA和自签名SSL证书,是因为买证书得花钱,对于内部或小规模项目,使用自建SSL证书可能更为方便,不需要支付费用,而且不涉及复杂的验证过程。正式对外的服务一般都是要买公共证书颁发机构(CA)签发的SSL证书的,但是在对外发布前可以先使用自建证书打通流程nginx配置自建SSL证书,只需要修改nginx配置文件,在端口后配置添加 ssl 并指定证书和私钥路径即可...
2023-12-08 23:24:23 584
原创 怎么验证公钥和私钥是一对
公钥和私钥都是一串字符,长得也没有什么关联性,那么当拿到一个公钥和一个私钥后怎么验证它们两个是一对呢?先说说为什么会有这个疑问,最近在对接一些SDK时经常需要做签名和验证签名的工作,双方要相互提供公钥来完成后续的身份验证,测试过程中生成了多个密钥对,当时就在想如果我用错了怎样才能发现呢?有没有什么方法可以验证公钥和私钥是一对呢?再寻找方法的过程中发现ssh-keygen和openssl生成的密钥对差别居然这么大,但后来又发现他们居然还有联系,所以本文将刚刚提到的问题都总结一下,方便日后查阅...
2023-12-05 23:20:43 1887 4
原创 自建CA并生成自签名SSL证书
这是加密与认证系列的第五篇文章了,本来我是想把自建证书和nginx配置https访问总结到一起的,但是在实际操作的过程中我发现了很多细小的知识点,有些还是挺有意思的,这是一个不断自我提问不断寻求答案的过程,随着扩展的内容越来越多,我决定这篇只写自建CA和签名SSL证书这部分,至于nginx配置https访问放到后面再写吧...
2023-11-30 23:13:57 2627
原创 究竟什么是阻塞与非阻塞、同步与异步
这几个名词在程序开发时经常听到,但是突然问起来各个词的含义一时间还真是说不清楚,貌似这几个词都是翻译过来的,每个人的解释都不太一样,我对这几个词的理解也不是一成不变的,随着开发经验的积累,渐渐有了自己的记忆方式,所以总结一下,不一定准确,有问题可以一起聊一聊...
2023-11-24 22:08:31 422
原创 git diff对比差异时指定或排除特定的文件和目录
你一般什么时候会用GPT?居然会有这种话题,答案就是作为程序员的我天天在用,虽然GPT有个胡说八道的毛病,但试试总没错的,就比如今天题目中这个问题,我也是先查了GPT没好使,但给我提供了查询思路,最后在Stack Overflow上找到解决办法,记录一下...
2023-10-31 21:26:41 1968
原创 linux环境下使用timeout监控命令执行超过5分钟后发送通知
有一段时间没写了,马上1024了,总得有点输出吧,想到最近用了一个挺有用的命令timeout,所以拿出来简单展示一下它的用法,作用就是可以给指定命令设置超时时间,相当于扩展了原命令,对于一般没有超时参数的命令是个方便的扩展方式,可以增加超时处理...
2023-10-23 22:35:37 667
原创 废了九牛二虎之力终于修改了MySQL8.0的root密码
上次说到在Ubuntu系统上安装MySQL8.0之后默认是没有密码的,如果想设置密码需要写成的形式,其实在用这种方式之前,我还使用功能了mysql_secure_installation这个MySQL自带的程序来设置密码,但是没生效,为什么这个看起来很正规的方式不生效的呢?接下来一起找找原因...
2023-10-08 20:54:35 396
原创 C++20中的关键字
源于上一篇中提到了decltype是一个关键字,所以去查了现有的关键字列表,其实我对C/C++的关键字还停留在上世纪大概30多个的时代,虽然知道C++加了autoconstexpr等关键字,但查询过后才发现原来他扩充到了将近100个,而C语言的关键字也扩到了六七十个,有点震惊了...
2023-10-07 23:36:39 370
原创 linux环境下如果掌控了系统root账户就能对上面安装的MySQL数据为所欲为了吗
根据我目前测试的情况来看,这个问题的答案是【确实可以为所欲为】,事情的起因是这样的,一次偶然的机会我发现Ubuntu20.04系统上通过命令安装的MySQL服务器,使用root账号登录无论输入什么密码都可以成功进入,多次尝试后才知道原来root用户默认没有密码,这可是让我惊呆了,居然还可以这样,为了服务器的安全,我必须给他设置个密码,在不断尝试的过程中引发了标题中的疑问...
2023-10-07 20:53:27 270
原创 C++中的decltype、std::declval 和 std::decay_t傻傻分不清楚
在C++中提到推导第一个映入脑海的可能是“模板”,当然有人也可能想到auto,这些都是和推导相关的语言语法,再比如“完美转发”等等,总是就是他们的类型不用明明白白的写出来,可以利用一种简单的方式来定义,比如candidates是一个字符串数组, 如果遍历它我们可以写成,而不用将skillId变量定义成,这在一定程度上带来了便利,今天的几个东东也是用于推导的,我们一起来看看...
2023-09-05 21:47:01 1211
原创 C++定义一个返回值为拥有3个元素的 char 数组引用的函数
编程语言最怕细节,怼着一个点扣能让你怀疑人生,今天就碰到这么一个问题,“C++定义一个返回值为拥有3个元素的 char 数组引用的函数”,不敢说99%的人不会,但我觉得应该有80%的人写不出来吧,要不你来试试...
2023-08-28 22:21:41 281
原创 C++编程中的六种内存顺序模型
程序员真是一个活到老学到老的职业,一天不学习就会掉队,『内存顺序模型』对于我来说就是一个新的世界,虽然之前写过多线程的服务器,也处理过死锁和竞态条件等问题,但是从来没考虑过内存顺序问题,所以当我第一次看到这个概念时,整个人都是懵的,经过一段时间的学习和了解有了初步的认识,所以简单总结下来,以备后续查看,不多写,慢慢总结...
2023-08-24 23:01:59 1310
原创 linux环境下Shell脚本中定义函数
说实话,这是我第一次用Shell来定义函数,之前也写了很多shell脚本,但是体量都不大,所以基本上是按照需求罗列了多个命令来实现的,这次也是一样,但是我发现重复的地方太多了,所以还是要拿出看见本事“抽象函数”来解放我懒惰的手指...
2023-08-15 22:46:29 402
原创 Ubuntu删除大量磁盘文件时,内存cache降free升而创造的漂亮曲线
最近在做压力测试,对磁盘、CPU、内存等指标比较敏感,因为产生了大量的日志文件需要定期删除,于是写了个定时清理磁盘的脚本,今天早上发现内存曲线居然产生了一个漂亮的图形,不知道你们想到了什么?看到这曲线我首先想到的是《编程之美》中那个“让CPU占用率曲线听你指挥” 的面试题,是不是得加一个想内存使用率曲线听你指挥...
2023-08-12 10:42:57 325
原创 常用游戏运营指标DAU、LTV及参考范围
作为游戏人免不了听到DAUUP值留存等名词,并且有些名词听起来还很像,特别是一款上线的游戏,这些游戏运营指标是衡量游戏业务绩效和用户参与度的重要数据,想做一个合格的游戏人得花点时间了解一下,接下来会总结一些常见的游戏运营指标及其简称...
2023-08-11 22:28:52 4401
原创 在Ubuntu系统下修改limits.conf不生效
最近遇到的一个问题,在Ubuntu系统下修改不生效,查了多种资料都说不用重启,但是我改完就是不生效,多次尝试之后发现Ubuntu系统有毒...
2023-08-10 22:37:32 1470
原创 linux环境下运行脚本时常用>/dev/null 2>&1 &这一串的作用
>/dev/null 2>&1 & 的作用是将某个程序在后台运行,并将其标准输出和标准错误输出都丢弃,不在终端中显示或记录。这样做常常用于运行不需要显示输出的程序或脚本,并且让它在后台运行,不占用终端的输入输出...
2023-08-01 01:56:49 3011
原创 之前好好的distcc突然报错distcc[18595] (dcc_pump_sendfile) ERROR: sendfile failed: Broken pipe怎么办
distcc是一个用于分布式编译的工具,它可以将编译任务分发到多台计算机上,从而加快代码编译的速度。distcc允许多台计算机共同参与编译过程,利用分布式系统的优势来并行处理编译任务,从而提高编译速度和性能...
2023-07-21 22:35:10 294
原创 linux环境下rsync命令中两个目录结尾的斜杠‘/‘到底有什么作用
每次使用文件拷贝cp命令或者同步rsync命令时都会有些疑惑,不知道路径末尾的需不需要加,隐约感觉到有些不同,但具体的区别却不太清楚,需要实际操作一次才能知道了,下面就来试一试...
2023-07-20 22:36:13 2614
原创 C++中的 i++ 和 ++i 这两种自增运算不是原子操作
C++中的i++和++i这两种自增运算是不是原子操作,突然被这么一问竟有点不知所措,这么“简单”的操作应该是原子的吧,但是好像有读又有写应该不是原子操作,原子操作就是那种刷一下就能完成的操作,准确来描述就是一个操作不可再分,要完成都完成不能存在中间态,咦?怎么听起来和事务这么像?那么i++和++i是不是原子操作我们看它是否满足不可再分就行了...
2023-07-04 09:58:39 276
WindTerm2.6.0
2024-01-14
x86_64-8.1.0-release-posix-seh-rt_v6-rev0.zip
2020-07-03
linux下sed命令在windows上的移植版本工具sed.exe
2020-04-18
UnxUtils_2013-04-24_WithUpdates.zip
2020-04-17
显示当前目录下所有文件的修改时间的工具
2020-04-04
Redis-x64-3.2.100.msi和Redis-x64-3.2.100.zip打包下载
2019-11-22
ActivePerl-5.26.3.2603-MSWin32-x64-a95bce075.exe
2019-03-18
sublime所需的channel_v3.json
2019-01-11
VS2015主题下载 - Son of Obsidian
2018-06-25
VS2015主题下载 - Selenitic
2018-06-25
Lua代码解释器-Release版本-发布版本
2016-09-13
curl源码(支持http跨平台)
2016-06-28
LeakDiag 内存检测软件
2016-06-26
python简单入门,怎样提起学python的兴趣
2022-07-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人