自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(133)
  • 问答 (2)
  • 收藏
  • 关注

原创 Python:腾讯云-轻量应用服务器-实现自动快照

主要是轻量应用服务器的快照配额就两个,每次备份快照都是-删快照-新建快照这么个流程。而且如果你和我一样每周甚至每天都要备份个快照,那每次备份快照都要登陆,然后点这点那的,还是蛮麻烦的。和删快照不一样,新建快照需要指定在xxx实例(也就是xxx服务器)上新建快照,所以我们还需要服务器的实例id。一般来说,删快照删的是最老的那个,所以还要给快照的创建时间排个序,再筛选出最老的那个快照。其他的和获取快照列表的代码都差不多。官方文档也写了,删快照需要传入被删除快照的id,这也是为什么要先去获取快照列表。

2024-04-19 15:27:47 382

原创 《Xbox手柄同步充电套件 可充电锂电池》开箱评测

我现在这个xbox手柄用了8-9个月,最常用的A键和B键已经有点不灵了。xbox的这个电池一个就要200,如果它的预期寿命能达到两年的话那就是值得入手的。但是塞一次之后除非手柄报废啥的,不然一辈子不用拆后盖,所以问题不大。昨天刚到货的时候没充电就直接装上手柄开玩,玩了三个多小时就没电了。不知道充满电之后效果如何,理论上讲续航啥的应该是比不过五号电池的。8个小时的续航玩一天都没问题了,更何况闲置的时候可以拿去充电。当然,除了充满电再用,也可以边充电边玩,问题不大。欸,还真别说,你还真别说。

2024-02-26 15:48:40 422 6

原创 Ubuntu 23.10:内网安装rapidocr_paddle(GPU)及其前置准备

如果你CUDA安装的是12.0或者以上(12.x)的版本,那么cudnn至少也得是8.9.1及以上(8.9.x)的版本。如果安装失败,缺这缺那的,配内网的apt-get源然后安装以下依赖。安装的时候还需要注意,选安装组件的时候不要勾选第一项的Driver,因为上面已经安装过显卡驱动了。我一开始下的deb包,dpkg -i安装完,进python验证的时候发现cuda识别不到cudnn,提示缺libcudnn。没有的话就问问机房的人。我用的8.9.5,记得看对应的CUDA版本是11.x还是12.x的。

2024-02-21 14:37:31 1423

原创 WinFrom窗口始终置顶于桌面

P/Invoke(Platform Invocation Services)是.NET框架中的一种技术,它允许托管代码(如C#或VB.NET编写的代码)调用本地平台上的非托管函数,这些函数通常是通过C/C++在DLL中实现的。你刚打开计时器的时候,由于聚焦的是计时器的窗口,此时计时器的等级是0。方案二简单来说,是通过通过委托去监听Windows系统前端页面的变化,如果当前窗口没有置顶,通过调用回调函数去调Windows操作系统的API,来实现窗口的置顶。我自己试过了,目前还没发现会被非系统窗口遮挡的情况。

2024-01-31 10:17:45 1087

原创 Windows冷知识:最小化远程桌面与ffmpeg

我们用的是远程桌面,远程桌面关了并不会导致虚拟机关机,也不会关闭虚拟机的显示屏。但是这个思路不太对劲,就像我们上面说的那样,你改远程桌面的分辨率也好,关闭远程桌面也好,都不会影响到被连接主机的桌面。也可以不全屏,通过点击窗口外面的部分来聚焦新的窗口,此时远程桌面只是在屏幕上显示的“层级”变了,它的GUI界面还是在正常跑着。正常来说,你肯定是最小化PC B的远程窗口,把它挂后台放那录制然后做其他的事情去。是的,Windows为了优化,在窗口最小化后窗口会进入无GUI模式。讲真这都是推测,我有两种思路。

2024-01-30 09:10:50 993 3

原创 Python:正则表达式与Json

叫它“模式”也好,“模板”也好,简单来说,哪个字符串能对的上这个模板,那么match的结果就返回true。不过模式都是人为规定的,json格式也是人为规定的。text里面是条时间戳。只要前面是IP,IP后面跟着的字符串里面有冒号和点号,点号后面一定接着一串数字,那就可以认为这就是我们要找的时间戳。我们得把字典的数据写入到pandas的数据结构DataFrame中,DataFrame可以简单理解为一张数据表格。转excel的话我估计得用到pandas,最重要的是得做一步行转列的操作,再写入到excel里面。

2024-01-29 11:50:27 483

原创 内存耗尽排查思路

但还是找不出到底是哪个进程一口气吃了13g的内存。除了内存的波形图比windows任务管理器自带的好看一点,对这个问题没啥本质性的帮助。所以本文都用的是自己电脑的图片,方便演示)看进程的内存占用看半天也找不到是谁在吃内存。直观看着就是:占用内存最大的前十个进程加起来才3g,但是剩下13g的内存莫名其妙的被占用了。本身我也不是网安专业的,查病毒查内存这些只会用点工具,所以暂时放弃往中病毒的这个方向找,先看看有没有其他的思路。安全模式简单来说,该启动的启动,多余的东西,比如一些开机自启的服务这些一概不启动。

2024-01-23 15:41:16 412

原创 计网期末复习(一)

而IP协议是网络层的,网络层只管发送数据报,建立连接啥的都交给传输层来完成。所以网络层提供的是不可靠无连接的服务。实际上TCP协议才是提供可靠有连接的服务,比如建立TCP连接啊,三次握手四次挥手这些,都是在传输层完成的。需要注意的是,高电平是表示1还是0,低电平是表示0还是1,人为定义的。在无噪声情况下,若某通信链路的带宽为3kHz,采用4个相位,每个相位具有4种振幅的QAM调制技术,则该通信链路的最大数据传输速率是?虚电路传输的话相对于在两个端之间开条逻辑连接,就像打电话一样,传输的分组都是有序的。

2024-01-13 21:48:32 930

原创 什么是事件管理器

2023年12月29日文章访问量:4Windows日志Windows调试必备工具你知道吗,windows系统左下角的”win徽标“,除了可以左键打开“开始”菜单,还可以右键点击。其中有个叫事件管理器的东西。今天碰到个问题,就是通过事件管理器+GitHub Copilot解决的。接下来详细说说是怎么解决的。最近在写一个计时器程序,基础要求CPU占用要小于10%。试了下python随便写了个带gui的程序,cpu占用最少也要15%,那只能skip了。

2023-12-29 17:39:16 512

原创 WindowsServer2022自动关机的解决方法

激活windowsServer2022也有讲究的。得先看你的是eval评估版还是正常的standard版。看自己windowsServer版本后面带不带evaluation就行。是用下面这个方法解决的,虽然执行后会报错,但是不用管,重启下系统就激活了,而且evaluation也没了,变成了standard版。原因:没激活,会导致开机后大概过一小时,就会自动关机。最后还是看事件管理器才找出来的问题。如果是eval评估版,得先转成standard版。直接在系统激活那个界面输密钥是没用的。

2023-12-29 10:42:04 1751 2

原创 Linux内网安装

However,在内网环境下,如果公司有给内部的镜像源的话,那自己配置下yum源或apt-get的sources.list就行。而且有些应用本身就是要先去官网找tar/rpm/deb包,再传到服务器上去下载,像oracle这种就需要手动下包,真的不是一般的麻烦。比如在统信UOS(linux)中安装mysql,是应该下debian版本的包,还是下red hat的包?最后搞了个linux generic的包,再跟着网上装mysql 5.7.42的教程,最后也是把mysql 5.7.44给装上了。

2023-12-14 20:29:45 148

原创 第8关:定义一个名为PROC_AVGWEIGHT的有参数存储过程

DECLARE用于定义变量,在存储过程和函数中通过declare定义变量在BEGIN...END中,且在语句之前,定义变量语法为:

2023-12-03 11:05:38 377

原创 被删数据库+勒索

还好前两天做了快照,不用回滚个几个星期啥的,不然真的会疯的。回滚后第一件事就是改密码。复盘之后推测该漏洞,是由于前几天为了能通过navicat远程访问centos7服务器的mysql数据库,修改了user表导致的漏洞。发现登上去之后wordpress就剩上图的内容了,仔细一看才知道确实是给人黑了。这次是给人黑了数据库,被人删库+勒索,先放图吧。多次尝试后,发现是mysql的root账户登不上去,密码是对的,但就是登不上去。接下来就是排除服务器的安全漏洞了,先把服务器的基线风险一个一个处理掉吧。

2023-11-23 15:24:31 343

原创 应用层的地址(标识符)到底是什么?

由于套接字定义了通信终端,我们可以说套接字是由一对套接字地址标识的,这一对套接字地址分别是本地套接字地址和远程套接字地址。这意味着套接字地址应该是一个IP地址和一个端口号的组合。我们需要以TCP/IP协议簇的标识符来定义套接字地址。

2023-11-18 00:55:17 326

原创 实验11 SQL互联网业务查询-2

可能发题解到博客上,主要是写完一遍实在不想看第二遍,太长了,优化都不想优化,看着头疼。这就是SQL题带给我的自信😕。

2023-11-16 19:04:08 625

原创 MIT6.5830 Lab1-GoDB实验记录(六)

赛博坐牢之旅第一章第六节

2023-11-10 23:45:25 178

原创 MySQL–第4关:查询用户日活数及支付金额

写SQL题太多导致的☞

2023-11-09 22:14:58 602

原创 概念:云计算

IaaS,基础设施即服务(Infrastructure as a Service)。还有两个是SaaS,PaaS,后面碰到再详细记录吧。所以说,云计算是大类,云服务反而是属于云计算的一部分的?即云计算可划分出IaaS,SaaS,PaaS三种云服务。云计算所实现的不外乎“IT资源能够即需即用的环境“。说得更通俗一些,云服务就是”IT资源的自动售货机“。云计算是一个统称,可按照其提供的服务内容分为几大类。本书主要讲解的是其中被称为IaaS的一类云服务。

2023-11-08 14:50:36 970

原创 MIT6.5830 Lab1-GoDB实验记录(五)

这就是在说:每一个page的大小都是固定的,而且都有一个header(标头)。页(Pages)的概念和操作系统中“分页”的概念是一样的,指的都是把逻辑地址空间分为若干同等大小的页,并从0开始编号。同时,不要忘了元组Tuple是不带字段的,即我们还需要指明这些记录的数据是属于哪个字段的。而缓冲池(Buffer Pool),简单来说它的作用就是就是读磁盘中的页,再把页写入回磁盘。所以tupleter返回的才是一个函数,我们要在这个函数里遍历tuple中的所有非空记录,并且每次都返回新的非空记录。

2023-11-04 22:31:47 197

原创 MySQL:至少参与xxx参与的全部事件(二)

再从A中选出参与了xxx参与的所有比赛的选手,得到结果集B;创建一个名为test的视图,查询这样的选手信息(users表),参加过三次比赛(不包含null),且至少解答过”202002020217″选手result为4且采用language为1解答过的所有题目。最后回到宿舍仔细复盘的时候发现,题目要的是problem_id,要的是xxx参与过的所有题目,而不是所有比赛…我当时看到这题,嘿,又是嵌套NOT EXISTS,这个我熟啊,两分钟给你写完。也没其它的了,但是就是过不了,俺寻思这也没错啊,怎么回事呢?

2023-11-03 09:38:27 315 2

原创 MIT6.5830 Lab1-GoDB实验记录(四)

如果你是按着我的代码敲的,在tuple.equal中有个bug,会导致你即使没动过writeTo和read函数,run test TestTupleSerialization也能通过。可以看出,字符串先要转为字节数组,然后小于32字节的字符串要补0,一直补到32字节为止。在注释中,还提到了缓冲区大小不够,无法写入元组的情况,这种情况需要返回一个err,所以我们还需要判断缓冲区和元组的大小,并new一个error。主要是因为没比较两个元组的长度,只比较了Desc的长度。我们来个go中的例子。

2023-11-01 20:40:07 131

原创 MIT6.5830 Lab1-GoDB实验记录(三)

当然了,即使是新的元组,它们的描述符还是一样的,只是字段的数量改变了–因为我们要选择出特定字段。因为元组Desc的字段和我们要选择字段的下标是一致的,它们的关系举例如下。比如在oracle中的RID,说白了就是每一行都有个内置的标识符,这个标识符你直接SELECT的时候是看不到的,但是你可以通过RID快速的找到某个特定的行。有了DBType–数据库可用的基础数据类型,FieldType–管理字段的结构体,有了TupleDesc–管理元组的结构体,那么接下来实现的就是Tuple–元组本身了。

2023-11-01 20:36:13 99

原创 MIT6.5830 Lab1-GoDB实验记录(二)

如果id限定的类型为int,其他三者的类型为string。那么tableQualifier,顾名思义,“表限定符”,指代的是数据库中的表。上面的DBType,指向的是每一行的数据,它限定了每个元组中字段的类型。而FieldType指向的是每一列,它限定的是字段所构成的”元组“。Fieids的类型是FieldType,说明TupleDesc要比FieldType更高级,它从FieldType继承了它的方法和数据类型。接下来我们将完成tuple.go的缺失代码,并通过tuple_test.go的测试。

2023-11-01 17:52:42 228

原创 MySQL:至少参与xxx参与的全部事件

这玩意,期末要考,还是重点。所以不得不仔细思考思考怎么写了。什么时候用NOT EXISTS双重否定表肯定之前虽然已经讲过了,不过那一篇文章讲的是,而本文相比于那篇文章还多了一个限制条件:参与的是xxx参与的全部事件。等会我们会用具体例子来解释什么叫“参与了xxx参与的全部事件”,现在先来回顾一下什么时候要用嵌套NOT EXISTS查询。假设我要找出购买了全部商品的顾客,能用EXISTS吗?不行。因为EXISTS只要碰到任意一条匹配的记录就会退出循环,并返回true。

2023-10-26 23:31:32 297 1

原创 MySQL:IFNULL无法返回null的情况

为什么exp为“空”时,IFNULL无法返回NULL?

2023-10-25 21:10:07 477

原创 MIT6.5830 Lab1-GoDB实验记录(一)

从lab1开始一直到实验结束,我们的目的只有一个–实现GoDB,一个基础的数据库管理系统。而本次实验lab1主要完成的功能为:访问磁盘上存储的数据。这点我们会在接下来的实验记录中慢慢展开。由于我是边做实验边记录,所以可能在记录过程中有些遗漏的地方没有讲到,不过我还是会尽力给出一个详细具体的思路的,还请见谅。但在此之前请在go.sum所在目录的终端中输入以下代码,否则go test的时候会报错“缺少依赖项”。之后阅读整个lab1的markdown文档,可以看到这次实验共有5个模块。了解接下来的实验要做什么。

2023-10-25 09:48:39 92

原创 MIT6.5830 Lab0-Go tutorial实验记录(四)

还有点需要注意的是,records[4]读取的total_one肯定是string类型的,需要转换为int类型的。那么我们要做的就是”根据time_period_xx,求xx线路在此时间的客流量总和,并且这个客流量和所在站台和线路的行驶方向无关“。idIdxMap的key就是时间段(“time_period_xx“),而对应的value为0-9,其实就是让你把idIdxMap[key]的值当boardings的下标用。接下来新建个int64的切片,且长度为9,用来存储9个时间段的客流量。

2023-10-19 14:03:57 293

原创 MIT6.5830 Lab0-Go tutorial实验记录(三)

上一篇我们讲过这个GenerateBarChart的函数,这里我们调用API后得到一个int64类型的切片。打开template.html,可以看到图像源设置为data:image,当执行tmpl.Execute时,{{.Image}}就会被data中的Image替换,那我们直接指定Image=barChartBase64即可。这里写个if是因为–如果你没能连接到数据库,这里传进来的barChartImage会是空的,所以写个if方便调试。在前面两次实验记录的铺垫,是时候完成第一项任务了。

2023-10-18 00:19:32 258

原创 MIT6.5830 Lab0-Go tutorial实验记录(二)

rows之类的得根据你自己编写的SQL语句来看,如果是按Lab0给的实验代码,最后rows不能是nil。还是没说lineId是什么,但我们从这个函数大概能推断出:GetRidership( )接收string类型的 lineId,并返回一个int类型的切片和error。那么把lab0中代码复制过来,再把lineId改成“red”试试,能获取到数据就说明连接是成功的。还是没说它是干什么的,但我们知道了lineId应该和这四种颜色有关。很明显了,line_id就应该表示的是xx号线,即“x号线的id”。

2023-10-17 14:32:22 238 2

原创 MIT6.5830 Lab1-Go tutorial实验记录(一

接下来我们看下HomeHandler,这里已经说明了它是个function,那我们就用HandleFunc。后者是我fork的代码仓库,可以参考我的代码或者直接去看源仓库。简单来说,当用户请求访问对应的路由时(比如https://baidu.com/hello中的/hello),就会调用Handler的方法来响应用户的请求。在做实验前还是得了解GO的基础知识的,不过不了解也没问题,本文会讲的非常非常详细。根据GO的官方文档,我们可以还可以得到一个创建http server的代码例。

2023-10-16 16:29:12 218

原创 Javascript自定义页面复制事件

当用户尝试在页面上复制某些内容时,就会触发copy事件。而通过监听copy事件,我们就可以自定义用户在页面上的复制的内容。又或者是在用户复制的内容后加上copyright内容(如csdn)。上面这段代码实现了对段落标签的监听,当用户尝试复制该内容时,阻止默认的复制事件,并实现你自定义的事件。这里自定义的是修改用户剪贴板的内容,并在浏览器中显示一个警告的弹窗。可以试着复制下列文本,再粘贴到上方的文本框中,看看能不能复制成功。现在当你尝试复制相关内容时,会自动打开我的网站首页。2023年10月13日。

2023-10-14 10:41:24 310

原创 Mysql:通过NOT EXISTS选择参与全部事件的数据

SQ而外层的SELECT就知道:“哦,这一行name满足我的条件,所以我要从数据库中选取该行的数据”。而NOT EXISTS那就是顾名思义,如果把EXISTS改成NOT EXISTS,此时若某一行的数据满足内层的WHERE条件,那么WHERE NOT EXISTS就会返回true。id去重之后,既然要选“没有购买全部产品”的客户,最后再加NOT得到“买了全部产品客户”的集合。由于EXISTS最后返回的都是布尔值,所以SELECT 什么都是没问题的,SELECT 1也是OK的。2023年10月12日。

2023-10-13 14:40:04 224

原创 VSCODE+PHP8.2配置踩坑记录

接下来你可以试着打几个断点,先开debug调试,再reload server,看看能不能命中断点,命中的话在vscode的debug界面,左边有“变量”,“监视”啥的,变量那一栏会显示当前变量的值之类的的信息。从网上下载完php并解压到本地,打开vscode,安装php拓展和php server,php debug这两个调试用的拓展,敲下了人生中的第一段php代码。下载完之后,可以下载的dll重命名为php.xdebug.dll,方便后面的配置。下,记得下载的xdebug版本要和你用的php版本相匹配。

2023-10-11 23:32:16 1430

原创 19. 删除链表的倒数第 N 个结点

此时second指针指向链表尾部的null,而first指针刚刚好指向i节点的前一个节点。删除节点的时候,有一种比较特殊的情况:链表中只有一个元素or删除的是头节点。这样“头节点”就变成了”链表中的某一个节点“,不管删除它还是其他什么的都是和链表中其他节点一样的操作,省的多写和多想。它的前一个节点刚刚好就是链表的第length-i个节点。leetcode上面的链表题普遍开头的head节点都不为空,所以要删节点的话可以新建一个dummy节点。为了方便删头节点,还是和上面一样,带上个dummy节点。

2023-09-27 16:49:36 172

原创 数据库中的DDL与DML

为什么要有DDL呢?之前提到数据库模式的时候有说过:模式是预先设计好的。所以我们限制“dept_name”列的数据类型为char,”budget“列的数据类型为numeric(数字的)。很明显后者比过程化的DML简单,我们在SQL中最常用的“查询语句“(query language)就是非过程化的DML。如果说DDL是总工程师,那数据操控语言DML(Data-Manipulation Language)就是下面搬砖的。而过程化的DML在Oracle那块的PL/SQL“貌似”经常被提及,以后碰到再记录吧。

2023-09-23 18:06:14 268

原创 APK的反编译,签名,对齐

首先,需要一个jar包,以我在用的为例:apktool_2.8.1.jar。为了方便操作,我把所有需要用到的工具都放同一个文件夹内,这里先放上集齐了三相之力(apktool,apksigner,zipalign)的图片。在签名之前,APK还需要对齐,不然在Android 11及以上的版本会装不上报错。比如这里生成了一个密钥库密码为123456(该密码最少要六位,也可以自己设置)的签名文件,这个密码后面还要用到。对齐apk的话要用到该指令,如果对已经有签名的apk对齐的话,记得重新打一次签名。

2023-09-22 23:23:49 342

原创 用bat启动exe(快速摸鱼)

比如我把写了个bat放在桌面(C盘的Desktop文件夹)。因为bat的运行目录就是它当前所在的目录。所以如果你不带这个参数,你只能在bat所在的盘(这里为C盘)内作操作。即你只能对同在C盘的其他exe进行操作。前情提要:我个人在摸鱼的时候喜欢打开这两个exe、但我又不想在桌面上放太多快捷方式,又不想点好几下才能打开这两个exe(懒人是这样的),所以写了个bat,直接把”网易云,启动!当然直接复制到其他电脑上大概率是用不了的,毕竟这里用的是绝对路径。start就不用说了,顾名思义嘛。2023年9月17日。

2023-09-19 00:07:03 1715

原创 链路与交换网

上课笔记

2023-09-15 21:19:53 98 1

原创 jupyter notebook找不到python内核(kernel)的解决记录

然后查看下环境,base环境的package这么多,一个一个去看是不可能的。此时我就觉得:这个方向是对的,能行。前情提要:在费了九牛二虎之力,终于安装成功了jupyter notebook,并能创建python3文件后,我又发现了新的问题:它找不到kernel。“的玩意,我突然就在想:会不会要自己把python的kernel打包进去,才能正常运行?诶,能跑了,完美解决。貌似导致这个问题的原因有非常多,这里只是说一个可能的解决方法。有了一个大致的解决方向,那就先不管行不行,先试试再说吧。

2023-09-14 10:50:49 2030

原创 WinUI3-动态切换主题

几行代码搞定切换应用主题。

2023-09-11 23:41:02 394

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除