
杂记
文章平均质量分 70
杂货铺
cheniie
这个作者很懒,什么都没留下…
展开
-
PostgREST 入门篇
PostgREST 是一个为 PostgreSQL 数据库提供 REST API 的后端服务, 是用 Haskell 开发的开源软件,源代码非常值得学习。有了 PostgREST,搭配 PostgreSQL,只要建好表,加上一个简单的配置,就可以拥有一个 REST API 后端,简直不要太爽。原创 2025-03-14 13:04:47 · 603 阅读 · 0 评论 -
PostgREST 权限篇
PostgREST 本身并没有权限管理的功能,而是将权限验证下放到了数据库层,通过数据库的角色来控制用户访问数据的权限,而 PostgREST 唯一要做的事就是获取每个请求发起者的角色,然后切换到这个角色再去执行 SQL,成败就看这个角色所具备的权限了。为了安全的获取用户的角色,PostgREST 使用了 JWT 来传递角色信息。但是 PostREST 只能解析 JWT token,用户登录以及如何生成 jwt token 需要我们自己实现。在中,我们创建了todos。原创 2025-03-19 15:00:38 · 945 阅读 · 0 评论 -
如何快速接纳 Emacs
之前一直使用 vscode 做为编辑器,但是后来我发现这家伙实在太费电了,即便我的笔记本有80瓦时的容量,也能明显感觉电量飞快流失。这让我非常不爽,于是我决定转向 Emacs,其实我接触 Emacs 也有较长一段时间了,但是一直没有完全投入它的怀抱,因为实在是不怎么习惯,用上 Emacs 就像突然瞎了一样,工作效率太低。所以我决定重新思考这个问题,为什么觉得不习惯,怎样才能快速习惯?原创 2024-11-01 16:17:24 · 1056 阅读 · 0 评论 -
GitLab-CI/CD指南
由于公司没有运维,写go服务时各个环境编译部署还是略显麻烦,由于代码管理使用的是 gitlab,所以决定使用 gitlab 自带的 CI/CD 来做自动编译和部署,这样每次提交代码以后就可以自动部署到服务器上了。Executor的类型在注册 Runner 的时候确定,比较常用的是 Docker 和 SSH。GitLab,Runner 和 Executor 之间的关系如下图所示(图片来自GitLab官方文档)。原创 2024-08-10 18:54:18 · 2713 阅读 · 2 评论 -
Windows服务运维脚本指南
但问题是我们希望程序能在独立的进程中运行,并且不带命令行窗口,不能随着命令行的关闭而结束,因为我的程序是一个网络服务,它需要一直运行。当然,获取进程PID并写入文件也可以通过脚本来实现,只是我的服务已经写入PID了,所以我的脚本就直接读取它了,感兴趣的朋友可以尝试自己实现通过脚本维护PID。选项不仅可以用来执行指令,还可以用来对结果进行过滤,这里我们希望提取第4行(注意第一行有空行),第二列的内容,也就是进程ID,和我们之前从pid文件中获取的进程id进行比较,来判断进程是否存在。,这样也能正确匹配。原创 2024-06-22 19:02:01 · 1687 阅读 · 0 评论 -
JumpServer初探
如果刷新无效,可以点击表格中的主机名,这是一个链接,到资产详情页,右边有一个快速更新的模块,分辨点击这两个刷新按钮,看到OK后关掉,再回到资产列表,应该就能看到”可连接“状态变为绿色叉叉,并且服务器信息页成功显示出来了。在”用户“栏选择的是JumpServer的用户,也就是第一步创建的用户,”资产“栏也有系统用户选择,这里选的是第四步创建的用户,然后在资产栏选择运行访问的资产,这样一条授权规则就创建好了,他将JumpServer用户,服务器和服务器账户关联了起来。如果已有资产,可以点击更新设置特权用户。原创 2023-12-08 17:45:03 · 249 阅读 · 0 评论 -
安卓如何卸载应用
最后再强调一遍,此方式是用来卸载哪些无法通过正常方式卸载的系统应用的,而且不需要获取手机root权限,应该不会有人用这种方式卸载第三方应用吧。查看所有的包名,有些包名是可以大致猜出对应的应用的,毕竟大厂程序员写代码都讲究一个可读性。获取应用包名的方式比较多,这里我只讨论仅使用adb的方式,因为并不像为了这一点小事引入或安装更多东西。回车,然后在手机上打开你想卸载的软件,此时命令行中就会打印出刚才打开的软件的包名。说完了怎么卸载,那么最关键的是如何获取想要卸载的应用的包名呢?回车,退出监视模式,然后再用。原创 2023-08-09 23:55:45 · 1099 阅读 · 0 评论 -
递归与尾递归
栈帧是一个函数一次运行的快照,是函数的内部状态。再多思考一点,如果将函数调用看作一条时间线,先执行的函数是过去,被调用的函数是未来,也就是过去需要用到将来的结果,这显然是不可能的,至少目前我们的物理学还是因果的。所以一般只有函数式编程语言的编译器会去做尾递归优化,然而并不是所有的递归都是天然的尾递归,许多时候需要我们手动消除状态,方式就是把局部变量(状态)变成参数,我称之为状态参数化。注意,尾递归优化需要编译器的支持,我们在这里讨论的是尾递归的本质以及如何把编译器不能优化的递归改写成可以优化的递归。原创 2023-02-17 12:52:54 · 506 阅读 · 0 评论 -
如何实现RTMP协议
rtmp是Adobe公司出品的流媒体传输协议,它的全称是Real Time Messaging Protocol,是一个实时消息传输协议,学习RTMP一定要抓住 一个关键点:消息。rtmp协议的原文可以在Adobe官网下载,内容十分精简,建议读一读原文。rtmp的核心是消息交换,是一个基于TCP的协议,消息被分成消息块(chunk)使用TCP传输。每个chunk都携带一个id,称为chunk id,接收端根据chunk id将分块重新组装成完整的消息。原创 2023-02-01 22:18:23 · 1966 阅读 · 4 评论 -
【操作系统】模式切换篇
什么是CPU的模式?这和CPU的发展过程有关,最开始CPU是8位的,后来发展到16位,然后是32位,现在是64位,多少多少位指的是寄存器的位宽。CPU能使用的寄存器宽度以及CPU使用的指令等就构成了CPU的模式,比如16位模式和32位模式,注意除了寄存器,不同模式下CPU对指令的解释也是不同的,因此16位模式的程序是不能在32位模式下运行的。为了向后兼容,后来的CPU要能运行在之前CPU的模式下,比如32位CPU也能跑16位模式,这样在之前CPU上编写的程序也能在新CPU上运行。原创 2022-12-14 21:03:41 · 1360 阅读 · 0 评论 -
【操作系统】BIOS篇
在之前的文章中我们说过,BIOS除了开机自检和加载引导扇区之外,还提供了很多有用的中断程序,这些程序是我们在真正启动操作系统之前的阶段和硬件交互的利器。既然叫基本I/O软件,那么我们就来看看其中比较重要的几个I/O功能。原创 2022-11-12 23:41:26 · 3402 阅读 · 0 评论 -
【操作系统】启动篇
对于编程路上各个阶段的人来说,操作系统无疑都是神秘而富有吸引力的。我们所看到的操作系统就像一座冰山,冰山之下的秘密令人向往而畏惧。不知你是否曾经也幻想过写一个操作系统,却苦于不知如何开始,或者因为畏惧而不敢开始。而我要告诉你的是,从零开始写一个操作系统并不是一件特别难的事情,本系列文章将带你走进操作系统这个神秘的世界。原创 2022-11-11 18:39:24 · 1333 阅读 · 0 评论 -
车车基础知识扫盲
排量是指发动机。所谓工作容积就是活塞在一个冲程内经过的区域的体积。气缸的总容积减去活塞的工作容积,剩下的就是压缩容积,压缩容积是用来燃烧的。排量的单位是升(L),常见的排量的标识有三种,T,TD和L,比如1.5T,1.5TD或1.5L,有时候L也会省略,写成1.5。只要数字相同,排量就是相同的。T表示发动机带有涡轮增压(Turbo),TD表示双涡轮,L表示自然吸气。在排量相同的情况下,涡轮增压能提供更多的空气,使燃料燃烧更充分,提高发动机功率。原创 2022-10-15 16:28:24 · 3766 阅读 · 0 评论 -
渐进式垃圾回收
渐进式GC可以被中断,旨在缩短最大暂停时间。由于可中断,也就可以实现并发GC。三色标记法将对象分为三种颜色,是并发标记的关键,适用于搜索类GC算法。写屏障是渐进式GC能正确标记对象的关键。......原创 2022-08-16 07:18:21 · 430 阅读 · 0 评论 -
GC标记压缩算法
GC标记压缩算法分为标记和压缩两个阶段。标记阶段从根节点开始标记活动对象,压缩阶段负责移动对象和重写指针。Lisp2算法的压缩阶段依次将活动对象向左移动,"挤出"垃圾,需要遍历3次堆。Two-Finger算法采用了填空法移动对象,要求堆内对象大小相等,需要遍历2次堆。表格算法以对象群为单位移动对象,利用非活动对象记录间隙表格,间隙表格记录了对象群首地址和移动距离,通过移动距离计算出对象新地址,需要遍历2次堆。GC标记压缩都需要3个基本步骤:移动对象,记录新地址,重写指针。......原创 2022-08-16 07:06:35 · 697 阅读 · 0 评论 -
GC复制算法
GC复制算法将堆均分为A,B两份,GC时将A堆的活动对象复制到B堆,复制过程中完成重写指针和压缩,复制完后将AB角色互换,由于压缩的存在,拥有极高的分配速度。广优的GC复制算法将复制过程搜索活动对象的深度优先遍历换成了广度优先遍历,消除了递归调用栈的消耗。利用To空间作为天然的队列,也不需要消耗额外的内存空间。近似深度优先搜索方法在To空间构造了两个队列,一个页队列,一个页中对象的队列,对两个队列分别广度优先搜索,将具有引用关系的队列尽量安排在同一个页面,在避免递归调用的同时有效利用了局部性原理。.....原创 2022-08-16 00:23:33 · 1310 阅读 · 0 评论 -
引用计数法
引用计数法记录了每个对象的引用数,并在更新指针时将没有"人气"的对象回收。延迟引用计数法延迟了回收过程,利用ZCT数组记录下"人气"为0的对象,内存不够时再遍历ZCT数组回收垃圾。优化了频繁更新计数器问题。Sticky引用计数法通过减小计数器位宽优化了计数器占用较多内存的问题,但是需要额外处理计数器溢出的对象。1位引用计数法将计数器减小到1比特,并且放到了指针中,彻底解决了计数器占用内存问题,同样也需要额外处理计数器溢出的情况。......原创 2022-08-15 23:41:07 · 3848 阅读 · 0 评论 -
GC标记清除算法
GC标记清除算法分标记和清除两个阶段。标记阶段从根节点开始为活动对象打上标记,清除阶段遍历堆将非活动对象加入空闲链表。多空闲链表利用数组模拟哈希表加快了分配速度。BiBOP是为了优化碎片化问题。位图标记提高了清除效率,兼容写时复制。延迟清除旨在减少最大暂停时间。......原创 2022-08-15 21:27:31 · 1315 阅读 · 0 评论 -
如何写简历
写简历看似简单,细想起来又还是蛮多细节的。有时候看着网上一堆专业人士的建议忽然感觉写简历比找工作还难,让人直呼连简历都这么卷了吗😂。最后希望本文能对你有所帮助,如果有和专业指导意见冲突的地方,果断相信专业人士。想我一个非专业人士,居然敢教大家写简历,真是一个敢教,一个敢看🤣。...原创 2022-07-29 00:18:02 · 1567 阅读 · 0 评论 -
如何快速区分Atoi和Itoa
许多语言标准库都会提供字符串和数字互相转换的函数,比如Go语言的的库就提供了和两个函数实现字符串和数字的转换。但是很多人都记不住这两个函数究竟哪个是字符串转数字,哪个是数字转字符串。其实问题的关键在于如何理解这个字母。根据我们的经验,整数一般叫,所以应该是的简写。而字符串一般称为,可是函数名里面却没有这个字符,所以你会感到疑惑。但函数名中的其实是ASCII的首字母,学过编程的人都知道ASCII意为着什么吧,其实代表的就是字符串。所以我们拆开来看其实就是,也就是ASCII(字符串)转(数字);而拆开来看就是,原创 2022-07-03 21:44:31 · 388 阅读 · 0 评论 -
佛法六通
天眼通 看见一切天耳通 听见所有他心通 知众生所想宿命通 知过去未来神足通 自由无碍漏尽通 断尽烦恼,脱离轮回原创 2022-04-09 18:50:24 · 211 阅读 · 0 评论 -
《对花枪》选段
选段1跨战马 提银枪足穿战靴换戎装今日里我上战场 来寻忘恩负义郎这苦衷 对谁讲倒叫我又悲又恨又羞又恼怒火满腔结发之人他不认不认儿孙丧天良叫尔等与我高声嚷叫罗艺快下山来对花枪选段2强忍怒火把话讲骂一声罗艺听端详自你走后四十载历尽艰辛度时光我为你生下罗松子孙儿的武艺比你强思念夫君倚门望我朝也盼哪暮也盼哪盼到今日得知你在瓦岗寨上举家大小喜洋洋实指望团聚多欢畅不料想忘恩负义变心肠今日若不看众将面定叫他跪死在这寨门旁...原创 2022-04-09 15:47:28 · 902 阅读 · 0 评论 -
Edge小技巧(持续更新)
格式化复制网页Web 选择可帮助您复制格式化的 Web 内容,如表格、页眉和图像。只需右键单击浏览器窗口,然后选择 “Web 选择”,或使用键盘快捷键 Ctrl + Shift + X。然后选择并拖动光标以突出显示所需的内容,然后选择 “复制”。适合将网页内容带格式的复制到word文档,如果粘贴到markdown会变成图片。更重要的是,如果网页本身是不允许选择复制的,用这种方式也能复制出来。一个字,屌!网页截图通过 Web 捕获,您可以轻松地从整个 Web 中抓取和标记屏幕截图。只需右键单击浏览器窗原创 2022-04-06 21:26:03 · 3731 阅读 · 3 评论 -
《孽海记·思凡》唱段·风吹荷叶煞
奴把袈裟扯破,埋了藏经,弃了木鱼,丢了铙钹。学不得罗刹女去降魔,学不得南海水月观音座。夜深沉,独自卧;起来时,独自坐。有谁人孤凄似我?似这等削发缘何?恨只恨说谎的僧和俗,哪里有天下园林树木佛?哪里有枝枝叶叶光明佛?哪里有江湖两岸流沙佛?哪里有八万四千弥陀佛?从今去把钟楼佛殿远离却,下山去寻一个年少哥哥,凭他打我骂我,说我笑我,一心不愿成佛,不念弥陀般若波罗!点我打开新世界大门...原创 2022-03-06 13:03:34 · 537 阅读 · 0 评论 -
《天女散花》唱段 · 风吹荷叶煞
天上龙华会罢,参遍世尊走遍大千俺也忙煞。借得个居士室放根芽,抵得过只园布地黄金价。锦排场本是假,箭机锋俺自耍,莽灵山藤牵蔓挂,作践了几领袈裟。叹只叹佛门病医无法,说什么弹指恒河沙数劫。一半是中宵火尽和灯灭;说什么多生性海光明彻,一半是半渡风生无船接。俺这优昙种遍西方佛土供养匝。任凭我三昧罢游戏毘耶。千般生也灭也迷也悟也,管他什么人挣扎,着了语言文字须差。点我打开新世界大门...原创 2022-03-05 22:42:29 · 664 阅读 · 0 评论 -
一个提升敲代码效率的小技巧
输入法通常默认使用shift快捷键来切换中英文输入,而在敲代码的过程中,我们经常会用到shift来输入括号和运算符等,一不小心常常会切换掉输入法,下次输入突然变成中文符号,又得删了切换回英文重新输入。这时,我们可以将切换中英文的快捷键设置为ctrl,同样是单个快捷键切换输入法,等习惯一段时间后还是和以前一样方便。但是我们再也不会因为错按shift而影响敲代码的体验了。win10输入法可以通过以下方法设置。双击状态栏的输入法图标,选择设置。然后点击按键,在模式切换中去掉shift,勾选ctrl。这原创 2022-01-10 00:49:49 · 2071 阅读 · 0 评论 -
如何理解充分条件和必要条件
作为九年义务教育的漏网之鱼,相信你多少被 “充分不必要条件” 和 “必要不充分条件” 折磨过。今天我们从一个非专业的角度带你理解必要和充分。首先还是看下原本的定义。假设A是条件,B是结论。1、由A可以推出B,由B可以推出A,则A是B的充要条件(A=B);2、由A可以推出B,由B不可以推出A,则A是B的充分不必要条件(A⊆≠B);3、由A不可以推出B,由B可以推出A,则A是B的必要不充分条件(B⊆≠A);4、由A不可以推出B,由B不可以推出A,则A是B的既不充分也不必要条件(A⊆≠B且B⊆≠A)。原创 2022-01-07 00:53:27 · 14293 阅读 · 0 评论 -
补码是如何把减法转化为加法的?
我们都知道在计算机中,数字是以补码的形式存储的,好处就是利于减法计算,可是为什么呢?让我们来试图回答一下几个问题。什么是补码,如何计算?补码如何将减法转化为加法?但凡编程入过门,都知道补码是怎么回事。正数的补码是其自身,负数的补码是其绝对值取反加一。在这里我们不考虑正数,因为正数没有补码,其实是不需要更准确。我们只看负数的补码,这里有两个信息:取反和加一。由这两个信息引出两个问题:取反是什么意思?为什么要加1?二进制不符合人的直观认知,所以我们在十进制下来看看补码的计算。以15-原创 2021-03-27 16:21:29 · 10525 阅读 · 15 评论 -
Markdown小技巧
公式中表示 {}\lbrace \rbrace{}$\lbrace \rbrace$公式中改变字体Typewriter$\mathtt{A}$ABCDEFGHIJKLMNOPQRSTUVWXYZ\mathtt{ABCDEFGHIJKLMNOPQRSTUVWXYZ}ABCDEFGHIJKLMNOPQRSTUVWXYZBlackboard Bold$\mathbb{A}$ABCDEFGHIJKLMNOPQRSTUVWXYZ\mathbb{ABCDEFGHIJKLMNOPQRSTUV原创 2021-02-15 01:26:40 · 158 阅读 · 0 评论 -
密钥 | 数字签名 | 数字证书
文章目录前言公钥和私钥数字签名数字证书加密通信过程前言在HTTPS中,有一些密码学相关的概念,比如密钥、签名、证书等。弄清楚这些概念对于理解为什么HTTPS是安全的以及HTTPS的通信过程会有很大帮助,这就本文的目的。公钥和私钥公钥和私钥是非对称密码学中的概念。他们的特点是用公钥加密的密文只能用私钥解密,用私钥加密的密文只能用公钥解密。在通信过程中,私钥由服务器持有,不可外泄,公钥则通过H...原创 2019-03-10 19:42:48 · 2324 阅读 · 0 评论 -
为什么网站用域名可以访问,用IP地址就不行
当我们访问某个网站时,通常是用域名去访问,而不用关心IP地址,域名服务会帮助我们通过域名找到IP。然而有一天突然心血来潮,自己拿到了域名对应的IP地址。然后,把域名换成IP地址再访问时却发现访问不了了。出现这种情况是因为有代理的存在,比如nginx。其实真正的服务并不是起在80端口,往往是一台机器上有很多服务,起在不同的端口,各自拥有不同的域名,但是这些域名都是解析到同一个IP地址的。当请求到达...原创 2019-12-10 22:17:28 · 12538 阅读 · 2 评论 -
如何快速区别odd和even
odd,3个字母,3→奇数;even,4个字母,4→偶数。原创 2020-02-05 14:14:39 · 16526 阅读 · 10 评论 -
(a+c)/(b+d)与a/b和c/d的关系
提问:ab\frac{a}{b}ba 和 cd\frac{c}{d}dc 与 a+cb+d\frac{a+c}{b+d}b+da+c 的大小是什么关系?要回答这个问题并不困难,即使直觉上不那么强烈,举几个例子总能得出结果,a+cb+d\frac{a+c}{b+d}b+da+c 应该落在 ab\frac{a}{b}ba 和 cd\frac{c}{d}dc 之间。如果它们的大小关系满足一...原创 2019-12-31 11:48:20 · 21611 阅读 · 1 评论 -
win10的一个好消息和一个坏消息
更新到最新的win10以后,一个重大的好消息就是:win10终于自带curl工具了,庆祝、撒花★,°:.☆( ̄▽ ̄)/$:.°★ 。同时自带的还有tar工具。打开cmd输入 curl --help 和 tar --help 可以看到命令的帮助信息。对于自带curl工具正是一个令人振奋的消息。但是,但是……千万不要用power shell来使用curl,会出现各种问题……如果已卸载Explo...原创 2018-09-22 15:08:04 · 297 阅读 · 0 评论