IT博客汇
首页
精华
技术
设计
资讯
扯淡
权利声明
登录
注册
相关标签
作者:
Jiajun的技术笔记
1998
source
关注
love
0
Jiajun的技术笔记
发表于
2022-03-15 00:00:00
KVM 显卡穿透给 Windows
《KVM 显卡穿透给 Windows》很久以前就想这么玩,但是碍于各种条件,一直没有实现,直到最近,得到一块额外的亮机卡,于是就有了这次折腾。那么通过显卡穿透,我们可以做啥呢?比如:我们可以用Linux做宿主机,虚拟化一个Windows出来,但是Windows使用独显打游戏;或者我们可以把显卡透传给虚拟机挖矿,等等。我的宿主机是AMD平台,宿主机使用AMD显卡,虚拟机使用Nvidia显卡... ...
继续阅读 (69)
love
0
Jiajun的技术笔记
发表于
2022-03-12 00:00:00
使用 HTTP Router 处理 Telegram Bot 按钮回调
《使用 HTTP Router 处理 Telegram Bot 按钮回调》写 Telegram Bot 的时候,我们可能会选择使用 [Inline keyboard](https://core.telegram.org/bots/2-0-intro#new-inline-keyboards),这样的好处是界面比较好看,交互也好,消息下面可以有很多按钮,点击一下就可以更新消息和按钮,但是开发起来就比较麻烦,因为每一个点击,对于 Telegram Bot 程序来说,都是要处理一个回调,而且大部分情况下按钮是需要带一定的消息回去的... ...
继续阅读 (62)
love
0
Jiajun的技术笔记
发表于
2022-01-10 00:00:00
使用反射(reflect)对结构体赋值
《使用反射(reflect)对结构体赋值》[上一篇](./2022_01_09-gin_binding_args.md) 中,我们看了GIN是如何绑定参数并且校验的,本着知道如何使用也要知道底层原理的探索精神,这一篇中,我们自己来使用 `reflect` 实现一个轻量版的参数绑定... ...
继续阅读 (62)
love
0
Jiajun的技术笔记
发表于
2022-01-09 00:00:00
GIN 是如何绑定参数的
《GIN 是如何绑定参数的》在GIN这个框架里,可以通过 `Bind` 系列的函数绑定并且校验参数,我们来看看是如何实现的。GIN 的binding分为两个系列... ...
继续阅读 (50)
love
0
Jiajun的技术笔记
发表于
2021-12-30 00:00:00
你好 2022(2021 年终总结)
《你好 2022(2021 年终总结)》2021年又要结束了,今年的主旋律是去杠杆,到年底基本上把杠杆降到了可以驾驭的程度,目前的杠杆率可以应对2022年的装修了,算是完成了年初定下的目标。技术上,今年把 Redis 源码读了一遍,把 Nginx 读了一小部分,Android 开发由于觉得拼 UI 太无聊,并且对我来说也没有太多使用场景,后来放弃了。总体上感觉技术进步不如往年大,不过这也符合预期... ...
继续阅读 (59)
love
0
Jiajun的技术笔记
发表于
2021-12-11 00:00:00
用Go导入大型CSV到PostgreSQL
《用Go导入大型CSV到PostgreSQL》最近我想试试 `PostgreSQL`,素闻美名,一直没有尝试过。从网上下载了一个超大的CSV,解压后达18G,一般的文件编辑器直接打不开,简单的方案是直接用 PostgreSQL 提供的 `\copy` 命令,或者 `COPY` 语句,但是这个文件无法使用,因为其中有几行都是坏数据... ...
继续阅读 (56)
love
0
Jiajun的技术笔记
发表于
2021-12-01 00:00:00
使用 OpenWRT 搭建软路由
《使用 OpenWRT 搭建软路由》绝大部分的家庭网络拓扑,都是很直接的光猫到路由器,然后分别接入有线和无线设备,如下图所示:... ...
继续阅读 (51)
love
0
Jiajun的技术笔记
发表于
2021-11-26 00:00:00
使用软KVM切换器 barrier 共享键鼠
《使用软KVM切换器 barrier 共享键鼠》我一直用 Linux 办公,之前都是 Linux host + Windows 虚拟机的方案,但是换AMD + 4k显示器之后,虚拟机不知道是啥原因,卡得慌,于是把老本本搬出来放一边用于开会等... ...
继续阅读 (63)
love
0
Jiajun的技术笔记
发表于
2021-11-04 00:00:00
SQL 防注入及原理
《SQL 防注入及原理》SQL 注入一直是 Web 安全中非常常见的攻击手段,也是非常严重的安全漏洞,我在使用 SQLAlchemy 的时候,想要防止 like 语句被注入,最后发现 SQLAlchemy 已经做了这一层的处理。我们来看看其原理... ...
继续阅读 (56)
love
0
Jiajun的技术笔记
发表于
2021-10-12 00:00:00
使用 gomock 测试 Go 代码
《使用 gomock 测试 Go 代码》gomock 是 Google 推出的用于 Go 的 mock 工具。它的大致用法是:- 需要 mock 的地方,使用接口... ...
继续阅读 (54)
love
0
Jiajun的技术笔记
发表于
2021-10-11 00:00:00
gevent不是黑魔法(二): gevent 实现
《gevent不是黑魔法(二): gevent 实现》上一篇我们说了,gevent 是基于 greenlet,结合 event loop 实现的,这一篇我们就来看看 gevent 是如何实现的... ...
继续阅读 (56)
love
0
Jiajun的技术笔记
发表于
2021-09-29 00:00:00
gevent不是黑魔法(一): greenlet 实现
《gevent不是黑魔法(一): greenlet 实现》最近粗略的读了一下 gevent 的实现,毕竟用了这么多年的 gevent,之前没去看过怎么实现,心里没底呀。gevent 是基于 greenlet 之上,结合 eventloop 实现的一套 Python 协程库,通过 gevent monkey patch,可以用同步的方式写出... ...
继续阅读 (66)
love
0
Jiajun的技术笔记
发表于
2021-09-06 00:00:00
用 entgo 替代 gorm
《用 entgo 替代 gorm》一直以来,基本上 Go 的ORM都是用 GORM 。直到前段时间朋友推荐了 entgo,尝试之后发现 entgo 是更好的选择。entgo 是 Facebook 开源的一个基于 go generate生成的 ORM,但是并不算复杂,相比 GORM 的好处在于,GORM中,大量存在... ...
继续阅读 (59)
love
0
Jiajun的技术笔记
发表于
2021-09-01 00:00:00
应用内使用crontab不是那么方便
《应用内使用crontab不是那么方便》以前我一直是 cron 的忠实用户,毕竟这么多年了,cron 非常稳定。我一直说 cron 简单粗暴,坚如磐石。但是随着使用 cron 越多,我越是发现不太方便的一些地方,主要是在应用开发里... ...
继续阅读 (53)
love
0
Jiajun的技术笔记
发表于
2021-08-27 00:00:00
单测时要不要 mock 数据库?
《单测时要不要 mock 数据库?》最近我们讨论了一个问题,要不要 mock 数据库? 本文是我的一些个人观点。首先,对于第三方调用进行 mock ,这是基本都能获得一致意见的,但是是否需要 mock 数据库,则各有分歧。我是赞成不 mock 数据库... ...
继续阅读 (56)
love
0
Jiajun的技术笔记
发表于
2021-08-25 00:00:00
Sentry 自建指南
《Sentry 自建指南》之前一直使用官方的免费服务,最近想要自己托管一个玩玩,于是就折腾了起来。Sentry 是一个开源的异常收集工具,据我所知好像很多公司都在用它,而且讲真确实挺好用的,我也是老用户... ...
继续阅读 (57)
love
0
Jiajun的技术笔记
发表于
2021-08-19 00:00:00
用selenium完成自动化任务
《用selenium完成自动化任务》Selenium 是一个控制浏览器的自动化软件,常常用来做自动化UI测试(浏览器端),既然可以代码控制,那么就是自动化的一个好工具了。这一篇我们就来看看如何使用 Selenium 来搜索一下,由于 Selenium打开一个全新的浏览器会话,我没有配置全局梯子,我们就以百度搜索为例... ...
继续阅读 (71)
love
0
Jiajun的技术笔记
发表于
2021-07-09 00:00:00
用闲置的安卓手机做垃圾电话短信过滤
《用闲置的安卓手机做垃圾电话短信过滤》我几乎每天都要收到垃圾短信和电话,基本都是:你买房吗?你装修吗?你分期吗?你改套餐吗?你...超级烦人,对于短信,iOS和Android都有不错的解决方案,但是对于垃圾电话来说,没有一个好用的方案,即使安装了手机管家,也没有什么用,相反我成了电话标注的一个数据源,它并没有帮助到我避免被打扰,只能采取打一个拉黑一个的方案,但是敌在暗处,我在明处,防不胜防... ...
继续阅读 (62)
love
0
Jiajun的技术笔记
发表于
2021-07-06 00:00:00
推荐三个时间管理工具
《推荐三个时间管理工具》最近比较忙,一忙起来,就没完没了,各种事情来找,怎么把事情安排的有条不紊呢?这个时候就需要借助一些时间管理工具了。我今天介绍三个,他们分别是Google Calendar,Kanboard和Microsoft TODO... ...
继续阅读 (74)
love
0
Jiajun的技术笔记
发表于
2021-07-02 00:00:00
一次事故反思
《一次事故反思》最近把一个管理后台系统从原来的大单体中整体拆分出来,出了四个问题,我对此进行深刻反思。本文为反思录。事情的起因是大家决定要把管理后台拆出来,状况是... ...
继续阅读 (61)
love
0
Jiajun的技术笔记
发表于
2021-06-22 00:00:00
当JS遇到uint64:JS整数溢出问题
《当JS遇到uint64:JS整数溢出问题》最近遇到一个问题,就是传了一个超级大的uint64,结果前端发现数字对不上,精度丢失了!原因就在于,JS的Number是"64-bit floating point IEEE 754 number"。最大能表示的数是 `Number.MAX_SAFE_INTEGER`,一般来说,就是... ...
继续阅读 (64)
love
0
Jiajun的技术笔记
发表于
2021-06-19 00:00:00
SQLite3 存储以及ACID原理
《SQLite3 存储以及ACID原理》我一直想知道如何处理磁盘存储,最近学习了一下SQLite3的做法,这是学习笔记。首先多亏了操作系统的抽象,对于一个磁盘上文件,我们可以简单的想象成... ...
继续阅读 (59)
love
0
Jiajun的技术笔记
发表于
2021-06-07 00:00:00
Redis源码阅读:pub/sub实现
《Redis源码阅读:pub/sub实现》今天我们来看看Redis是怎么实现 PUB/SUB 这个功能的,其实比较简单,但是我们还是从命令入手。PUB/SUB 命令用法如下:```bash... ...
继续阅读 (48)
love
0
Jiajun的技术笔记
发表于
2021-06-06 00:00:00
Redis源码阅读:zset实现
《Redis源码阅读:zset实现》关于zset这个数据结构的,网上有很多的资料,这一篇文章我主要还是通过探索几个命令,来看到zset是怎么实现的。首先我得借用维基百科上一张关于skiplist的图,来让大家对skiplist进行一个认知... ...
继续阅读 (68)
love
0
Jiajun的技术笔记
发表于
2021-05-30 00:00:00
Redis源码阅读:bitmap 位图的运算
《Redis源码阅读:bitmap 位图的运算》Redis提供了位图,位图也就是从bit的角度来看数据,可以把某一个bit设置为0或者1,举个简单的例子,我们希望记录用户某个月的每一天是否登录,那么就只需要给一个32bit的值,如果第n天登录了,就把第n个bit设置为1。位图很节省内存,毕竟是从bit的角度来看待和存储数据的,但是缺点也很明显,位图所需要存储的数据的大小取决于上限... ...
继续阅读 (64)
love
0
Jiajun的技术笔记
发表于
2021-05-29 00:00:00
Redis源码阅读:set是怎么做交并集运算的?
《Redis源码阅读:set是怎么做交并集运算的?》今天我们来看看 Redis 中的set是如何存储数据,然后如何做交集、并集、差集运算的,所以我们一共会探索 `SADD`, `SISMEMBER`,`SINTER`, `SUNION`, `SDIFF` 这五个命令的实现... ...
继续阅读 (57)
love
0
Jiajun的技术笔记
发表于
2021-05-28 00:00:00
Redis源码阅读:list实现(ziplist, quicklist)
《Redis源码阅读:list实现(ziplist, quicklist)》如果我们用Redis做过broker,就知道,绝大部分的队列实现,都是基于 `LPUSH` 和 `BRPOP` 这两个命令的。那么,Redis到底是怎么实现list的呢?底层是如何实现的,是否省内存,Redis为了省内存又做了什么优化?阻塞版的pop又是怎么实现的?这篇文章里,我们就会探讨这些问题... ...
继续阅读 (59)
love
0
Jiajun的技术笔记
发表于
2021-05-27 00:00:00
Redis源码阅读:RDB是怎么实现的
《Redis源码阅读:RDB是怎么实现的》Redis中提供的另外一种持久化方式就是RDB,全称是 Redis Database,其实就是把Redis进程中存储的内容全部dump到磁盘上,因此 RDB 文件是以二进制形式保存的,这一点与 AOF 相反... ...
继续阅读 (49)
love
0
Jiajun的技术笔记
发表于
2021-05-26 00:00:00
Redis源码阅读:AOF重写
《Redis源码阅读:AOF重写》Redis会自动进行AOF重写,也可以由 `BGREWRITEAOF` 命令手动触发重写。我们来看看,从 `BGREWRITEAOF` 开始入手:```c... ...
继续阅读 (57)
love
0
Jiajun的技术笔记
发表于
2021-05-25 00:00:00
Redis源码阅读:AOF持久化
《Redis源码阅读:AOF持久化》都说Redis是内存数据库,其实 Redis 也有持久化机制,就是我们在 `redis.conf` 里配置的如下几行:```c... ...
继续阅读 (56)
上一页
3/14
下一页