自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 1065 2

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

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

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

原创 关闭CloudflareWARP批处理脚本

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

2024-02-27 12:03:20 285

原创 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 255

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

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

2023-06-01 14:49:46 577

原创 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 558 1

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

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

2023-05-16 16:31:48 1058

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

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

2023-05-11 16:42:49 114

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

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

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

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

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

2023-05-06 16:40:03 229

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

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

2023-05-05 17:15:20 453

原创 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 467

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

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

2023-03-27 15:27:34 144

原创 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 390

原创 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 470

原创 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 96

原创 Java学习随便记3

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

2022-12-12 14:49:43 212

原创 Java学习随便记2

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

2022-12-06 13:19:04 216

原创 Java学习随便记1

java最基本的概念

2022-12-05 16:32:59 441

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

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

2022-09-05 17:33:27 991

原创 Ubuntu 16.04 xrdp远程桌面

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

2022-06-25 13:27:39 665

原创 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 179

原创 yii2 ListView 用法记录

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

2022-02-22 13:06:35 293

原创 汉字转拼音PHP类

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

2022-01-12 16:53:06 944

原创 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 258

原创 vue3学习随便记12

过渡与动画

2021-12-10 13:30:22 432

原创 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 753 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 523

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

深入组件组件注册

2021-11-29 13:04:35 491

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

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

2021-11-24 17:01:55 655

原创 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 716

原创 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 450

原创 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 1041

原创 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 1450 1

原创 vue3学习随便记3-组件实例、property、生命周期

应用实例与组件实例创建一个应用实例创建应用实例是通过全局API函数 createApp 实现的,应用有它自己的应用API函数,并且应用API函数的返回值多数是应用自己,所以,可以链式调用<html><head> <script src="vue.global.js"></script></head><body> <div id="app"> <search-inp

2021-11-12 13:46:31 978

原创 vue3学习随便记2-声明式渲染、处理用户输入、条件与循环

初步学习 Vue的概念,一上来就用 vue-cli 的方式的确是找死,会让自己陷入很多复杂的坑。初次尝试,最好是直接引入。在开始了解 Vue 的概念之前,我们要先来回顾一下 MVC模式、MVVM模式的初步思想。MVC 模式是一种后端考虑思维,是厚重后端的思维。Model负责对来自用户的数据、从数据库获取的数据进行加工,有关业务逻辑的处理,把一定的数据通过Controller提供给 View 层。View 层负责利用所给的数据生成展示用的 HTML、CSS、JS 发送给客户浏览器,如果需要一些前端的效

2021-11-11 16:34:22 967

原创 vue3学习随便记1-安装(快速上手)

安装 | Vue.js官网文档提到4种安装方式:在页面 CDN包 的形式导入 下载 JavaScript 文件放到自己网站再引入 使用 npm 安装 使用官方 cli 构建项目除了第3种,似乎我都稍微用过一下,第1、2种方式是在网站的局部使用 vue(第一种方式最好确定使用的版本),最后一种是前后端分离下的现代开发方式,是 npm安装方式的拓展(为开发SPA提供了一堆工具,开发后发布时存在编译构建的概念)。当然,使用 uni-app 从某种程度上来说是 npm 安装。我当前系统 Deep

2021-11-09 16:47:17 2053

原创 golang学习随便记14-包和工具

包和工具

2021-11-06 13:57:15 142

原创 golang学习随便记13-并发中的竞争、互斥、锁

基于共享变量的并发

2021-11-05 19:50:32 239

原创 docker 构建 php,mariadb,nginx环境

docker多版本php的搭建_cangqiong_xiamen的博客-CSDN博客_docker 多版本phpCentOS 7中Docker搭建LNMP环境的方法_CentOS_资源库sudo docker pull mariadb:10.3sudo docker pull php:7.2-fpmsudo docker pull nginx:1.14

2021-10-29 14:01:44 794

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关注的人

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