自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(143)
  • 资源 (6)
  • 收藏
  • 关注

原创 Linux服务器大文件或多文件上传下载问题

直接在服务器从其他服务器拖数据,需要考虑和服务器会话超时问题,相对来说,用 screen 是比较好的方式,这样终端断开服务器也没有关系,不会导致运行的命令被终止。(因为中间“文件”只是管道媒介,所以用 - 就行了,生成的分片文件前缀为 archive.tar.gz.part),恢复的时候用。注意,rz 对于太大太大的文件可能有大小4GB限制(我没试过 rz -be 选项,此种情况可以考虑sftp,参考。(服务器输入 rz 表示服务器接收文件,sz则是服务器发送文件,没有lrzsz可以安装),服务器。

2024-12-25 11:06:15 729

转载 Linux 使用 lftp 命令断点续传、mirror 并发下载文件

这是转载且未经试验!

2024-12-25 09:58:12 69

原创 防火、防盗、防windows defender

今天我的markdown文件都能给你扫描一遍,明天谁能保证它会扫描什么——虽然WPS那样的软件为了合规也“扫描”用户云端文件,不过,只允许国产流氓,不允许外国强盗,是极端情况下的必然选择。其实也没干啥事,就是备备课,整理一下和 CTF 有关的PHP语言的特性,这个文档用 VSCode 写的,格式是 Markdown (其实也是乱写的,没怎么整理),也就按人家的帖子中的题目,去看看正好用到哪些语言特性。上一个我吃过的跟杀毒软件有关的苦头是360把我的在windows server 2003上的服务给杀了。

2024-07-11 14:28:42 350

原创 ubuntu server 24.04 使用记录

等到自己的验证程序可以使用,结果发现上不了网,检查才发现好像安装是把网关写成自己的IP地址了(ssh登录不上去就是这个原因了,因为我一般不会忘记勾选安装sshd的)!最后,发现 awk/sed 命令都可以使用 :-|) ,然后用 sed '行号s/搜索字符串/替换字符串/' 目标文件 > 新文件 实现了修改(使用中才知道,目标文件和新文件不能是同一个文件,不然内容就被清空了!经过几周分析研究,终于摸清楚了校网验证过程,然后写了golang程序,试验在 22.04 上可以使用。

2024-06-24 21:58:54 704

原创 vscode作为markdown LaTeX编辑器

按 Ctrl+Shift+P,找到 MPE:自定义样式(全局),在配置文件 /home/sjg/.config/crossnote/style.less 中添加信息 ,也就是加入 font-family 定义 (后一半是页码格式定制)Deepin 20.9 对应 debian 10,下载 debian 10 的deb包安装即可 (安装后命令在 /usr/bin 下)1、安装插件 Markdown All in One。目前上述配置使用OK。

2024-06-18 16:51:45 588

原创 行结束符\r\n和\n坑人一例

问题就出在你没法知道 mac.txt 的行结束符使用的是 \n 还是 \r\n。正好 mac.txt 是 Windows 下拷贝终端输出到记事本生成的,而上述代码用 \n 来分割内容,从而数组每个元素是字符串 xxxx\r,在输出时,因为\r,后续的输出内容会覆盖前面的输出内容。当时心急,调试了半天不知道问题在哪里。怪也怪我看看内容简单,当时心又急,就想粗暴使用 file_get_contents 和 explode 解决问题,没有耐心分析原因,只知道瞎改输出格式,就没有找到问题。

2024-06-05 15:50:10 194

原创 golang学习随便记15-测试

golang测试go test 命令go test 命令是一个按照一定的约定和组织来测试代码的程序。我们需要了解有哪些约定和组织:在包目录内,所有后缀为 _test.go 的源文件不会被 go build 构建命令构建成包的一部分,相反,它们会被 go test 命令使用。在 *_test.go 文件中,有3种类型的函数:测试函数、基准(benchmark)函数、示例函数。一个测试函数以 Test为函数名的前缀,用来测试程序的一些逻辑行为是否正确;go test 命令会调用这些测试函数并报告

2024-03-26 15:52:13 1200 2

原创 golang学习随便记16-反射

Type 其实是接口(看 src/reflect/type.go,Type接口里有很多方法,如String()、Kind()、Comparable()、Elem()等),有许多方法来区分类型以及检查它们的组成部分,唯一能反映 reflect.Type 实现的是接口的类型描述信息,类型描述信息标识了接口值的动态类型(参见接口中接口值一节)。这里的意思就是在反射机制中,所有类似的类型,都可以 Addr() 方法取得数据对应的地址(想想也是,总要让我们可以挖出数据来,而取得地址是必需的)。标识符,如 foo;

2024-03-11 16:01:54 989 2

原创 关闭CloudflareWARP批处理脚本

127.0.0.2 和 127.0.0.3 两个IP地址是服务启动时产生,所以, sc start 启动服务时需要适当延时(脚本中用 ping命令),不延时可能后续添加地址时出现找不到的情况。CloudflareWARP修改了DNS,会导致很多国内的域名无法解析(包括笔者单位的vpn服务器)。以下脚本用于切换 DNS。

2024-02-27 12:03:20 589

原创 GoFrame学习随便记1

internal/controller/lookup下分别是基本空的 lookup.go文件,定义“空”类型 ControllerV1 和工厂方法 NewV1() 的文件 lookup_new.go文件,定义“空”类型所含方法LookupGetList(这个方法是我们需要修改成具体实际实现的) 的 lookup_v1_lookup_get_list.go 文件。),把下载的几个exe放到 %GOPATH%\bin 目录下,而该目录在 %PATH% 环境变量中,因此,可以直接使用 sqlite3.exe。

2023-11-17 16:03:37 462

原创 golang web学习随便记8-应用测试

上述测试函数中,用 testing.Short() 判断测试是否处于短时模式,如果处于短时模式,就跳过当前测试函数。结尾,一般测试文件名字和被测试源码文件是对应的(如 server_test.go 文件测试的是 server.go 文件中的函数或功能),并且。decoder方式解析),把解码的功能打包到函数 decode 中,然后函数 decode 作为我们测试的目标函数。运行测试用例的方式类似如下:(显然,我们可以从 VSCode等 IDE 直接点击函数左侧三角形来运行单个测试函数)

2023-06-01 14:49:46 664 1

原创 golang web学习随便记7-XML、JSON、Web服务

在修改解析代码前,我们先需要考虑:是否需要为comments元素定义一个结构体,然后再为comment元素定义一个结构体,前者是后者的列表?我们可以使用`xml:"a>b>c"`这样的结构标签实现不指定树状结构的情况下直接获取指定的XML元素(即跳过中间元素a和b,直接获取c)。表面上看,上述xml就是外层元素post里面有两个子元素content和author,但post和author都是带有id属性的,其实这意味着author有2项信息,不能用一个字段表达,所以,下面的代码为author定义了结构体。

2023-05-18 14:42:10 651 1

原创 golang web学习随便记6-模板引擎

其实,对于文件模板,也是可以先New一个模板实例,然后用实例的ParseFiles方法解析模板文件。模板中有多个文件时,必须有一个“主模板”,如果执行模板时没有指定“主模板”(调用的是Execute方法),那么第一个将作为“主模板”。指定主模板时(调用的是ExecuteTemplate方法),如果模板是未命名的,那么就用模板文件名作为模板名。前面代码中,{{ . }} 的值都是golang代码执行模板时提供的确定值,但模板也提供了设置动作,可以在指定区域内使用模板内设定的其他值。下面我们来看模板中的动作。

2023-05-16 16:31:48 1152

原创 golang web学习随便记5-关系映射、ORM

从前一篇中我们可以发现,实现表的基本CRUD,包括处理关系,并不是很复杂,但很无趣,代码又多。和其他语言一样,golang有一些第三方库实现了关系的映射或ORM。Db改成了类型为 *sqlx.DB,打开相应修改为 sqlx.Open,查询一行修改为 Db.QueryRowx 且绑定时直接绑定到结构体变量(这里省了很多事)。代码中将作者字段改名为 AuthorName 是为了刻意演示tag标记的用法,tag标记类似json中的用法,注意冒号和名称之间不要有空格,名称用双引号包围。

2023-05-11 16:42:49 166

原创 golang web学习随便记4-内存、文件、数据库

先来看在内存中存储数据:下面的例子用结构体方式在内存存放数据,然后利用两个map来表示“索引”,键值对中的值是指向内存中结构体实例的指针。以下main函数的主要步骤是,用make初始化两个索引用的map,生成数据存放到结构体实例中,调用store创建索引,验证两种索引方式。正如书中所说,这个例子非常简单,但是,在实际应用中,对于需要在内存中缓存数据来提升性能的场合,并非都要用redis那样厚重的外部内存数据库,或许我们简单构建一下内存数据存储就能很好解决问题。我们来开始学习如何存储数据。

2023-05-09 17:11:56 1098 2

原创 golang web学习随便记3-响应有关

理解这一点的要点在于,http/server.go文件中定义的 ResponseWriter 是一个 interface 而非具体化的结构体,该接口约定了3个方法:Write、WriteHeader、Header,而 Response 类型在实现接口方法时,接收者使用的是指针式接收者,从而在调用接口方法时,可以用“值”形式的语法,而作为其他函数的参数或者赋值时的右值时,必须使用地址。中 方法接收者T和*T的差别)。前一篇中的例子已经“庞大”,我们这篇将编写新的例子来学习服务器的响应和cookie。

2023-05-06 16:40:03 333

原创 golang web学习随便记2-请求有关

在前一篇中,我们直接在 index 这个 handler func 中解析了模板,定义了数据,然后执行模板显示“拼合”了数据的网页。实际的应用显然需要能够处理用户的请求。对于浏览器客户端的请求,我们先要来了解和请求有关的东西,如 URL、请求头部、请求主体、表单、文件上传、JSON主体、cookie等。继续前面web学习随便记1中的代码:添加一个 handler func headers 如下。看来,读取 URL 和 请求头部中的信息还是比较容易的。主函数中添加路由 /headers 的处理。

2023-05-05 17:15:20 562

原创 golang web学习随便记1-快速入门

处理,去掉URL路径前缀/static/,返回(相对于文档根目录的)/public路径下的*所代表的文件(例如,浏览器访问 http://localhost:8088/static/css/bootstrap.min.css,返回给客户的是/public/css/bootstrap.min.css);上面的代码中,多路复用器mux设定了两种信号的处理:对路由 /static/* 用一个 (http.FileServer函数创建的),代码中用字符串切片[1:]去掉了第1个字符/)

2023-04-19 16:07:02 578

原创 Deepin20在噢易保护硬盘上的安装

注意:必须在第一次进入系统的时候及时备份,一旦进入了其他操作系统,将无法再认到Deepin,会失去备份机会!然后安装Deepin20.8系统:在分区时,先把噢易200M efi分区后面的部分设为一个分区(因为我这个机器内存64GB,所以不设交换分区了),挂载到/,先删除not used分区和噢易创建的默认200M efi系统分区,然后创建300M~350M的efi分区(我是设置了300M的efi系统分区,后面有点空着就让它空着吧,只要保证Linux系统分区位置和噢易设定的对准就行),然后按部就班安装完。

2023-03-27 15:27:34 249

原创 PHP 7.4/8.x FFI的使用例子

而[ffi]小节只启用ffi,修改设置如下 (这里启用ffi为preload,即默认值,此时,对于CLI模式,ffi总是启用的,而非CLI模式,就是只有opcache预加载的文件才能使用ffi了,这就是鸟哥文章中说的考虑“安全”的情况了)另一种是使用额外的“中介”预加载php文件,用此“中介”php加载“中介”.h头文件,同时将此php缓存到opcache。鸟哥的文章中“安全”的做法,指的是预加载的php文件中,把需要的功能打包好,然后避免FFI有关功能被其他PHP用到(除了调用我们打包的函数以外)

2023-03-15 15:11:55 519

原创 yii2项目使用frp https2http插件问题

这样,frp client 转发到 nginx 时,头部信息 HTTP_HOST 会被改写成设定的值,从而 getHostInfo 执行时会走路径4 (读取头部 Host信息的紫色路径),但仅仅这样是不行的,因为我们需要协议是 https,而 getIsSecureConnection 根据超级全局变量 $_SERVER['HTTPS'] 或者头部信息Forwarded中的proto部分来决定是https还是http(转发时不存在https到http切换会比较简单,因为不需要考虑这一步)。

2023-03-07 16:34:50 633

原创 Java学习随便记4 (待续)

个人实在不太喜欢xml格式的配置文件,可是Java的现实是到处是xml。另外,哪怕再简单的一个项目,也要下载一堆依赖。然后,运行 HelloWorldApplication java类(带静态main函数的那个类),就会启动 Springboot web项目,监听端口8080。在 src/main/java 下 HelloWorldApplication.java同目录下新建子目录(package)web,然后在里面新建 HelloWorldController java类。

2023-01-06 17:56:25 142

原创 Java学习随便记3

Set就是数学概念上的集合,即元素的唯一性,这种唯一性是可以比较的。借由Vector实现的 Stack类的优点是线程安全的,但作为栈使用,如果频繁进出栈,不如用 LinkedList 实现栈结构(但在编程竞赛中,如果一次性的分配不会超出空间,那自己维护栈顶指针的数组才能速度最快)。Java的 Vector泛型类 和 STL vector接近,值得注意的是,Java的 Vector 可以同时装入整数和浮点数(可以认为此时它们都是Object类型),而 STL vector只能是整数序列或者浮点数序列。

2022-12-12 14:49:43 254

原创 Java学习随便记2

可抛出的对象:错误和异常错误是致命的,而且程序员预期不该发生的,一旦发生程序通常自行奔溃;异常是程序员可以预期的某种特殊情况,程序应该捕获且合理地处理它。Java内置了不少异常类,如除以0、数组越界、对象为空、加载类时找不到对应类……。基类 Throwable 定义了 getMessage()、toString()、printStatckTrace()等方法,可以在捕获异常时使用。一个方法可能抛出(非检查性)异常,应该在方法签名尾部用 throws关键字声明这些异常。异常处理中,可以在 try{...} c

2022-12-06 13:19:04 264

原创 Java学习随便记1

java最基本的概念

2022-12-05 16:32:59 493

原创 极域教师端预览学生界面学生机按IP重排

极域教师端,表格视图中可以按机器名或者IP地址进行排序,而学生桌面预览处通常是按第一次登录上来的顺序排列的,这个看起来不太方便。另外,我通常喜欢噢易保护系统在刚装好重启进入修改IP地址的时候,让所有学生机连接一遍教师机,这样干活快一点,但这有一个毛病,就是学生母机如果最先开启并登录,导致之后第一个登录的学生机器名显示不正确,而如果学生母机后来开启,那么它的机器名不正确——极域本身的逻辑是要求所有学生机都修改完毕IP地址,重启一遍进入,再去开启教师机,这样显示的机器名才会按顺序。

2022-09-05 17:33:27 1806

原创 Ubuntu 16.04 xrdp远程桌面

Windows 通过XRDP 远程桌面连接Ubuntu16.04

2022-06-25 13:27:39 730

原创 kartik Editable与Popover X插件使用要点

Editable组件点击时触发显示一个Popover X模态对话框,对话框内是form,然后通过Ajax请求修改对应字段的值。kartik Popover X比较类似BootstrapModalPopover,而且使用了和popper.js类似的定位,包括CSS类。这时,可能存在CSS类“冲突”问题。例如,我引入了bootrap的popper(因为tooltip需要),就使用了.popover CSS类,而 Popover X 同时包含了 .popover 和 .popover-x 类,通常 .popo

2022-05-13 14:07:40 269

原创 yii2 ListView 用法记录

yii2当前默认使用bootstrap4,这一点从 AppAsset 的 $depends 可以找到。ListView 默认的页面导航太过简陋,是几乎什么“调味料”都不加的状态,如下:要让页面导航美观一些,需要配置 ListView 的 pager 属性 (即对应 类yii\widgets\LinkPager 的对应属性 的数组)。对于 disabled 的按钮 (例如已经在第一页,前一页按钮就是 disabled,如果显示首页、尾页按钮,那么已经在头尾,相应按钮也是 disabled),有..

2022-02-22 13:06:35 345

原创 汉字转拼音PHP类

<?php/** * PHP 汉字转拼音 * 参考 @author Jerryli(hzjerry@gmail.com) * 改写 @author Betashen (sjg20010414@qq.com) * 主要改写:关联数组改成2个独立数组,用二分搜索,分 UTF-8 和 GBK,分大小写 * @example: UTF-8字符串用 encode(), GBK字符串用 encodeGBK() * echo ChineseToPinYin::encode('浙江机电职业技术学院'.

2022-01-12 16:53:06 2156

原创 vue3学习随便记13

过渡与动画进入过渡和离开过渡在插入、更新或从DOM移除项时,Vue提供了多种方法实现转换效果:自动为CSS过渡和动画应用class 集成第三方CSS动画库,例如Animate.css | A cross-browser library of CSS animations. 在过渡钩子期间使用 JS 直接操作 DOM 集成第三方 JS 动画库单个元素或组件的过渡Vue提供了 transition 封装组件(内置组件),在下列情形下,可以给任何元素或者组件添加进入或离开过渡效果:使.

2021-12-17 17:04:45 319

原创 vue3学习随便记12

过渡与动画

2021-12-10 13:30:22 476

原创 vue3学习随便记11-深入组件(注入、动态、异步、模板引用)

深入组件Provide/Inject通常,我们需要把数据从父组件向子组件传递时,使用 prop。但对于深度嵌套的组件系统,有时候,深层子组件需要父组件的部分内容,此时,仍然使用 prop机制会非常麻烦。例如,爷爷a 要把数据传递给孙子 c1,使用 prop机制就必须 b2 定义prop,从a获得数据,c1再定义prop,从b2把那个数据再传递一下。对于如下组件层次结构Root└─ TodoList ├─ TodoItem └─ TodoListFooter .

2021-12-01 13:05:12 817 5

原创 vue3学习随便记10-深入组件(自定义事件、slot)

深入组件自定义事件事件名规则和组件prop一样,即 JS 中 camelCase,HTML中 kebab-case。this.$emit('myEvent')<my-component @my-event="doSomething"></my-component>自定义事件在组件的 emits 选项上定义。如果在 emits 选项中定义了原生事件(如 click),则组件自定义事件将替代原生事件侦听器。与props类似,在 emits 选项定义事件时,可以使用

2021-11-30 11:10:09 613

原创 vue3学习随便记9-深入组件(注册、prop/非prop attribute)

深入组件组件注册

2021-11-29 13:04:35 554

原创 vue3学习随便记8-属性、事件、插槽、动态组件

组件基础我们其实前面已经看过很多组件的例子,都是用 app.component(...) 注册一个全局组件,组件的“视图”是直接用 template 定义的字符串模板。这样的组件主要用来举例和学习原理,实际工程中通常会使用单文件组件,即一个组件是单个文件定义的(在编译构建系统中常常是 .vue 文件)。组件是自定义元素,可以像元素一样复用,复用时,每个组件都是新的实例,它的属性方法都是它自己的。组件通常可以嵌套组织成树状。模板中要使用组件,必须先注册。注册分为全局注册和局部注册。我们用 ap

2021-11-24 17:01:55 753

原创 vue3学习随便记7-事件与表单

事件处理监听事件其实我们已经用了不少监听事件,即 v-on:click="methodName"(简写为 @click="methodName" )事件处理方法事件处理总是对应一个方法,直接写 JS 代码作为事件处理是不行的。<html><head> <script src="vue.global.js"></script></head><body> <div id="app"&gt

2021-11-23 16:09:34 795

原创 vue3学习随便记6-条件渲染、列表渲染

v-if有v-if并没有v-end,所以v-if必须用在元素上,靠元素本身的配对来决定起止。如<h1 v-if="awesome">Vue is awesome!</h1>有 v-else<h1 v-if="awesome">Vue is awesome!</h1><h1 v-else>Oh no ????</h1>也有 v-else-if (这个使用频率不高)<div v-if="

2021-11-22 15:38:23 514

原创 vue3学习随便记5-计算属性与侦听器、class和style绑定

计算属性和侦听器计算属性计算属性可以避免在模板中放入复杂逻辑,维持模板的清晰。计算属性像属性一样被使用,但可能依赖其他属性,而且它是响应式的。<html><head> <script src="vue.global.js"></script></head><body> <div id="app"> <p>已经出版书籍:</p> &

2021-11-16 16:33:31 1097

原创 vue3学习随便记4-模板语法、property、方法

模板语法插值文本插值:插值 Mustache语法,会将数据解释为普通文本<span>Message: {{ msg }}</span>组件实例 msg property 改变时,插值内容自动改变。如果希望插值处的内容只被替换一次,可以附加使用 v-once 指令<span v-once>这个将不会改变: {{ msg }}</span>原始HTML:Mustache语法会将数据解释为普通文本,如果希望输出HTML,需要使用 v-ht

2021-11-16 11:25:37 1550 1

install-xrdp-Ubuntu18.04-script.zip

Ubuntu 18.04 Desktop远程桌面安装脚本:脚本是老外的,坑是我自己踩过的,先看里面的note

2019-09-02

pear包安装器go-pear

老版PHP用go-pear.php,新版用go-pear.phar 用cmd命令行下:php.exe 文件名 试一下就知道了

2014-11-05

VC技术内幕第6版(2-2)

VC技术内幕,学习MFC编程的典型资料。建议学MFC的直接看这个第6版,潘爱民翻译的,流畅舒服。另外,如果你看到最后托管C++部分,建议下载我的资源中Lippman关于托管C++到C++/CLI迁移的说明的材料,以便在VC2005下使用相关的部分,这部分欢迎同时参考俺的笔记sjg2001414.blog.hexun.com。

2008-11-26

VC技术内幕第6版(2-1)

VC技术内幕,学习MFC编程的典型资料。建议学MFC的直接看这个第6版,潘爱民翻译的,流畅舒服。另外,如果你看到最后托管C++部分,建议下载我的资源中Lippman关于托管C++到C++/CLI迁移的说明的材料,以便在VC2005下使用相关的部分,这部分欢迎同时参考俺的笔记sjg2001414.blog.hexun.com。

2008-11-26

从托管C++到C++/CLI的参考资料

Stanley B. Lippman关于如何从托管C++迁移到C++/CLI的说明。如果你在看VC技术内幕第6版,看到后面的托管C++部分,而现在的VC2005是使用新的C++/CLI语法的,那么,这份文档很合适。

2008-10-29

VC60中文版类库参考手册

VC60中文版类库参考手册 尽管有MSDN可以查阅,但有时候不能联网或者不想联网,有时候你仅仅是想了解某个MFC类的基本成员函数和用法,直接查类库参考手册还是有用的。

2008-09-26

空空如也

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

TA关注的人

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