自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fredricen的专栏

滴水之恩,当涌泉相报

  • 博客(71)
  • 资源 (2)
  • 收藏
  • 关注

原创 Qt展示动态波形

Qt展示动态波形。

2023-08-04 16:07:27 7107

原创 CTF之MISC题目-简单流量

这是一道关于网络数据包分析的题目,主要是wireshark工具的使用和发现代码、理解代码。同时要了解Linux 的 Shell脚本。

2022-12-30 21:15:27 9799 2

原创 CTF之MISC题目-西游记

CTF中关于MISC(杂项)的题目通常都比较有意思,很考察思维的发散性。下面的这道题就是需要灵活的思考,涉及暴力破解、编码、手动处理文本等多种手段。

2022-12-30 11:06:44 8303

原创 CTF之密码学题目-classical && coding

在CTF比赛中,有关密码学的问题,都是考察思路和工具使用,还有具备良好的编码能力。本篇文章主要讲的是一个关于多种编码和字频解密的内容。

2022-12-28 21:16:54 2227

原创 再次理解URL编码

在平时的网络攻防比赛中,对URL编码的应用可谓是家常饭,那么URL编码的本质是什么?我们一探究竟。

2022-12-25 21:28:53 193

原创 TLS/SSL通信基于NodeJS16

基于node.js的安全传输加密通信,底层在传输层上进行,服务端和客户端交互。

2022-08-26 17:23:44 816

原创 office2013以上输入数学公式

office下公式输入快捷方式

2022-07-27 10:18:20 165

原创 NodeJS中的UDP通信

UDP通信,适用于实时性要求高的场景,一般作为流媒体应用、语音交流、视频会议所使用的传输层协议,还有许多基于互联网的电话服务使用的VOIP(基于IP的语音)也是基于UDP运行的,实时视频和音频流协议旨在处理偶尔丢失的数据包,因此,如果重新传输丢失的数据包,则只会发生质量略有下降,而不是出现较大的延迟。UDP优点:简单,轻量。UDP缺点:没有流控制,没有应答确认机制,不能解决丢包、重发、错序问题。下面我们使用nodejs16来实现一个简单的UDP通信。客户端运行效果服务端......

2022-07-13 11:03:14 9878 3

原创 纯JavaScript在HTML页面写入SVG

纯JavaScript在HTML页面写入SVG,需要注意哪里问题?

2022-06-14 16:03:55 1357

原创 理解webpack5文档中的require.cache

引言webpack是基于nodejs开发的一个文件打包工具,在其5.X版本的文档中讲到模块缓存。多处引用同一模块,最终只会产生一次模块执行和一次导出。所以,会在运行时(runtime)中会保存一份缓存。删除此缓存,则会产生新的模块执行和新的导出。 里面有个例子引起了我的注意,代码如下:var d1 = require('dependency');require('dependency') === d1; //truedelete require.cache[require.resolve('depe

2022-05-06 12:10:13 918

原创 全屏或者退出全屏检测

引言在做监控视频时,一个很重要需求就是视频全屏以及退出。下面就讲讲用JavaScript来检测全屏以及退出。全屏实现全屏有一套Web API已经为我们准备好,见这里,不过有时我们在使用第三方Web SDK时,可能已经提供,比如海康威视、大华、宇视等。但是第三方其实也是基于Web API的二次封装而已,所以本质还是要了解的。export const clickFullScreen = () => { const objElement = document.querySelector('.par

2022-04-26 17:53:26 1118 1

原创 自建gitlab-runner

有时我们的项目依赖内部的CI/CD工具gitlab-ci,但是内部的CI工具处于信息安全的考虑,可能会对互联网的包仓库比如npm,限制访问,只能访问内部的自建仓库。但是我们为了利用互联网的包仓库,就可以通过自建gitlab-runner来实现。自建gitlab-runner在官方文档中有详细的描述,我们可以选择最简单的方式,在UI页面上,在所在项目下点击左侧 setting > CI/CD,在展示页面里展开Runner选项,然后在展开里面点击,如下图所示。然后点击“Show runner ins

2022-04-15 13:56:18 799

原创 @parcel/transformer-js: Browser scripts cannot have imports or exports报错问题解决

Openlayer6.x Example在本地报错报错如标题所示:@parcel/transformer-js: Browser scripts cannot have imports or exports官方答案见这里解决问题其实parcel2.x版本对浏览器本身做了兼容,现在大部分浏览器都已经原生支持es6语法,只需在<script>标签中加入type="module"即可,以官方simple map为例:<html lang="en"> <head&gt

2022-04-12 22:10:20 2016

原创 卡尔曼滤波

卡尔曼滤波(kalman filter)算法模型卡尔曼滤波器用于估计离散时间过程的状态变量x∈Rnx\in R^nx∈Rn ,这个离散时间过程由以下离散随机差分方程描述:xk=Axk−1+Buk+wk(1)\tag{1} x_k = Ax_{k-1} + Bu_k + w_kxk​=Axk−1​+Buk​+wk​(1)其中 xkx_kxk​ 表示 kkk​ 时刻的真实状态值,uku_kuk​ 表示 kkk 时刻的控制值,wkw_kwk​ 为过程噪声。定义观测变量z∈Rmz \in R^mz∈R

2021-08-26 11:08:37 111

原创 SSMS连接SqlServer报错18456的解决之道

前置设置我们需要新建一个test用户,设置密码为123456,便于后续用“Sql Server身份验证”连接所以我们需要先用“Windows身份验证模式”连接后,新增登录名,设置密码,如下图所示右键“登录名”,可以新增登录名test,密码设置为123456,如下图所示:设置好之后,点击“确定”即可。报错发生安装SqlServer时,一般默认是“Windows身份验证模式”,所以安装好之后,一般只能通过“Windows身份验证模式”来连接数据库,用“Sql Server身份验证模式”连接会报错,

2021-07-21 20:43:28 2345 1

原创 Fetching submodule xxx(模块名) [email protected]: Permission denied (publickey).

git 子模块我们需要在git 仓库中引入另一个git仓库,同时保持这两个仓库各自独立提交和拉取,这就是git子模块可以解决的问题。添加子模块在一个主项目中,添加子模块(一个git仓库),如下:git submodule add git地址/https地址 目录名$ git submodule add [email protected]:fredricen/flask-client.git client添加完要提交$ git commit -am "add submodule client"提交

2021-06-30 10:09:22 795

原创 JupyterLab 执行代码无响应的解决办法

描述有时我们会遇到通过Anaconda.Navigator打开JupyterLab,输入python脚本,执行(shift+enter)时,会出现无响应,或者没有返回执行结果。这个时候打开Jupyter Notebook,会发现一直显示"Kernal starting, please wait…",并最终会出现弹窗"Dead kernal"。解决问题受Stack Overflow的启发,采用命令行方式启动Jupyter Notebook,并采用debug模式:(base) C:\Users\Admi

2021-06-28 13:28:19 3374

原创 flask+vue实现简单的Web应用

简介flask是python在web开发上的一个比较轻量的开发框架,vue是前端视图库,是一个MVVM框架。flask+vue可以实现快速的现代web应用开发,这里我们以简单的读写配置文件为例,做一个示例。项目用到的开发基座有:python 3.8.8flask 1.1.2flask-cors 3.0.10vue 2.6.12vue-cli 4.5.13element-ui 2.15.2...

2021-06-28 13:01:17 24284 2

原创 Python3.8操作RabbitMQ入门

1. 安装RabbitMQ由于项目需求,采用了windows server 2012,所以我们这里描述一下windows下安装步骤:用管理员权限打开PowerShell;输入并运行:Set-ExecutionPolicy AllSigned;输入并运行:Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePo

2021-06-10 13:42:15 295 1

原创 vue2.x中过滤器和方法函数使用场景浅析

过滤器在vue2.x中允许自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:<!-- 在双花括号中 -->{{ message | capitalize }}<!-- 在 `v-bind` 中 --><div v-bind:id="rawId | formatId"></div>

2021-04-30 15:05:55 272

原创 3D离线地图的两种实现方式

引言我们一般都是在线地图,比如百度、高德、腾讯地图用的多,在线地图API也非常方便调用,并且可以利用在线地图强大的地图服务,比如路径规划等功能,但是有些特殊的项目需要在内网环境下展示地图,而且是3D地图。这就要求我们能够在离线情况下,实现对3D地图的展示。基石实现离线地图的基础,是地图瓦片的获取,我们需要先有离线的地图瓦片或者地图的合成文件(.tif)。所以依据输入的不同,我们有不同的实现。如果是离线的地图瓦片,我们可以直接利用,至于为啥,我们后面会有说明。如果是离线的地图合成文件(.tif),我们需

2021-03-22 14:45:38 3142

转载 CentOS7升级GCC,GDB,G++

centos7默认gcc版本为4.8,一般不满足编译需求,因此升级gcc版本为常见操作;现有博客中,大多数教程都是基于源码重新编译安装;但是源码编译过程等待时间很长且编译麻烦。因此,直接基于命令升级gcc迫切。亲测可用。升级到GCC8.3:yum -y install centos-release-sclyum -y install devtoolset-8-gcc devtoolset-8-gdb devtoolset-8-gcc-c++ devtoolset-8-binutilsscl e

2021-02-05 10:41:35 1103

转载 printf打印颜色

控制字符的通用格式如下:Esc[{attr1};…;{attrn}m其中:Esc 是转义字符, 其值为"\033";[ 是常量的左中括号;{attr1};…{attrn} 是若干属性, 通常是由一个有特定意义的数字代替, 每个属性之间用分号分隔;m 就是字面常量字符m;属性列表如下:通用格式控制:0 重置所有属性1 高亮/加粗2 暗淡4 下划线5 闪烁7 反转8 隐藏前景色:30 黑色31 红色32 绿色33 黄色34 蓝色35 品红36 青色37

2021-02-03 09:19:47 658

翻译 globs简明指南

什么是Globs?Globs,也即 glob patterns是可以将通配符模式扩展为匹配给定模式的路径名列表的模式(通常用来匹配目录以及文件,而不是文本!)。在Linux的早期版本中,命令解释器依赖于一个程序,该程序将这些字符扩展为无引号参数命令:/etc/ globs。这个命令后来作为一个库函数提供,现在很多程序都在使用这个函数,包括shell。几种不同的工具和语言已经采用了globs,并对其进行了一些微调。这是相当广泛的清单:Node.jsGoJavaHaskell

2021-01-28 16:44:15 734

原创 Vue中如何将绑定的带参事件回调函数转换为节流或者防抖

函数定义lodash 中的节流函数throttle和防抖函数debounce官方文档是这样定义的:_.throttle(func, [wait=0], [options=])参数func (Function): 要节流的函数。[wait=0] (number): 需要节流的毫秒。[options=] (Object): 选项对象。[options.leading=true] (boolean): 指定调用在节流开始前。[options.trailing=true] (boolean): 指

2021-01-28 15:14:09 2349 2

原创 AOT、JIT概念模糊理清一下

动态编译(dynamic compilation) 指的是“在运行时进行编译”;与之相对的是事前编译(ahead-of-time compilation,简称AOT),也叫静态编译(static compilation)。JIT编译(just-in-time compilation) 狭义来说是当某段代码即将第一次被执行时进行编译,因而叫“即时编译”。JIT编译是动态编译的一种特例。JIT编译一词后来被泛化,时常与动态编译等价;但要注意宽泛与狭义的JIT编译所指的区别。自适应动态编译(..

2021-01-07 14:43:10 424 1

转载 从 RegExp 构造器看 JS 字符串转义设计

new RegExp(/\w+\.ke\.qq\.com/).test('ktmaster.ke.qq.com') // 返回 truenew RegExp('\w+\.ke\.qq\.com').test('ktmaster.ke.qq.com') // 返回 falsenew RegExp('\\w+\\.ke\\.qq\\.com').test('ktmaster.ke.qq.com') // 返回 trueRegExp 构造器使用 string 参数时,其中的 \w、\ 等特殊含义字符是

2020-12-24 14:53:29 579

原创 正则表达式匹配位置速查

位置 模式 说明 ^ 匹配开头的位置,当正则有修饰符 m 时,表示匹配行开头位置 $ 匹配结尾的位置,当正则有修饰符 m 时,表示匹配行结尾位置 \b 匹配单词边界,即,\w 与 \W、^ 与 \w、\w 与 $之间的位置 \B 匹配非单词边界,即,\w 与 \w、\W 与 \W、^ 与 \W、\W 与 $之间的位置 (?=abc) 匹配 ...

2020-12-22 10:36:47 319

原创 JavaScript中的正则和字符串相关方法

等效方法1. match 和 exec字符串的match方法和正则实例对象的exec方法,例如使用 matchvar regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;var string = "2017-06-26";console.log( string.match(regex) );// =>["2017-06-26", "2017", "06", "26", index: 0, input: "2017-06-26"]使用execvar regex

2020-12-21 09:34:45 62

原创 从Vue看ES6中Array的fill方法

引子在学习Vue的“渲染函数”时,查看到官方文档有一段这样的代码:render() { return Vue.h('div', Array.apply(null, { length: 20 }).map(() => { return Vue.h('p', 'hi') }) )}于是对数据构造方法产生了好奇,我们知道构造数组有一种方法就是通过构造函数,即var arr = new Array(10) //生成一个长度为10的数组/*与上面等价*/var

2020-11-20 13:02:14 1322

原创 TypeScript中的感叹号

用作类型断言identifier! 从 identifier 的类型里去除了 null 和 undefinedfunction broken(name: string | null): string { function postfix(epithet: string) { return name.charAt(0) + '. the ' + epithet; // error, 'name' is possibly null } name = name || "Bob"; r

2020-11-11 16:22:02 4329 1

原创 TypeScript类型系统基本规则

开始TypeScript结构化类型系统的基本规则是,如果x要兼容y,那么y至少具有与x相同的属性。比如:interface Named { name: string;}let x: Named;// y's inferred type is { name: string; location: string; }let y = { name: 'Alice', location: 'Seattle' };x = y;这里要检查y是否能赋值给x,编译器检查x中的每个属性,看是否能在y

2020-11-10 19:39:18 230

原创 GIT ssh与https的相互切换

从ssh切换至httpsgit remote set-url origin(远程仓库名称) https://domain/username/ProjectName.git从https切换至sshgit remote set-url origin git@domain:username/ProjectName.git附录git remote set-url [--push] <name> <newurl> [<oldurl>]git remote set-u

2020-10-30 10:13:37 971

原创 Putty实现免密远程登录服务器

Putty实现免密远程登录1 生成公私秘钥对2 保存私钥到本地3 添加公钥到服务器4 配置putty会话1 生成公私秘钥对可以用puttygen来生成,也可以直接用linux系统自带的openssl来生成,我们这里采用后一种方式。我们选择ed25519算法,这种效率较高,安全性也比较高,RSA相对还要考虑位数,4096位目前还算比较安全。输入$ ssh-keygen -t ed25519然后一路回车,需要的话,可以修改文件名,口令可以不输,直接回车就好了,也可以输入口令,比如passwo

2020-09-27 17:15:55 1218

原创 vue中的代码逻辑封装心得

问题 watch: { isAuthenticated: function(val, oldVal) { for (const key of Object.keys(this.modelSearch)) { if (key !== 'authentication') { this.modelSearch[key] = '' } else { this.modelSearch[key] = val }

2020-09-22 16:05:24 603

原创 tinyMCE v5.4.2下的图片上传踩坑实录

tinyMCE初始化window.tinymce.init({ selector: `#${this.tinymceId}`, language: this.languageTypeList.zh, height: this.height, body_class: 'panel-body ', object_resizing: false, toolbar: this.toolbar.length > 0

2020-08-31 16:18:33 2220

原创 element-ui表单校验实现数值型兼容空值

rules:{ mandarinLevel: [ { message: '请选择普通话水平', trigger: 'change', transform(val) { if (val) { return Number(val) } } } ],}

2020-07-17 15:48:50 619

原创 vue2.X版本中filters访问methods中的方法

问题我们经常会用到过滤器filter,用于在处理变量的后操作。过滤器可以用在methods中,有两种思路可以实现,一个是采用全局过滤器,以官方文档中的代码为例:Vue.filter('capitalize', function (value) { if (!value) return '' value = value.toString() return value.charAt(0).toUpperCase() + value.slice(1)})new Vue({ methods

2020-07-07 10:43:20 16703 13

原创 vue-cli 4.x版本生成的工程,SCSS样式问题

问题vue-cli 4.x版本生成的vue工程,已经自动帮我们配置好了webpack的css-loader【清单详见这里】,我们在vue的单文件组件中写scss样式的时候,有些属性,比如background-image,需要配置url,譬如:background-image:url("/assets/img/background.jpg")但是这样的写法,在webpack的css-loader是无法解析打包的。分析这是由于css loader 会把非根路径的url解析为相对路径,加~前缀才解析为

2020-07-06 18:53:52 681

原创 了解node中的setImmediate()

概述当你想在node中执行异步代码,并且想尽可能快的执行,那么可以选择node中的setImmediate()函数。setImmediate(() => { //run something})任何传给setImmediate()的函数参数,都是在事件循环(event loop)的下一个迭代被调用执行。setImmediate()、setTimeout(() => {}, 0)、process.nextTick()区别setTimeout()以0ms的延时执行函数参数,和setI

2020-06-28 11:24:47 4135 2

HttpWatch9.x pro+lic

HttpWatch10系列还没有出破解,目前比较好的破解是9.x系列的。这个是比较好的版本,亲测完美破解!

2015-08-10

Oracle Spatial空间信息管理(英文原版)

本书是世界级Oracle Spatial专家Ravi Kothuri、Albert Godfrind和Euro Beinat的力作,旨在向您提供空间信息管理方面的概念知识和实用技能,帮助您成为该领域的专家。书中涵盖了Oracle数据库中空间信息管理的所有内容。主要阐述了空间信息管理的主要概念,Oracle Spatial的架构,以及大量用于管理空间数据的函数和操作。详细描述了Oracle Spatial所提供的用于存储、检索、分析和可视化空间信息的工具。本书还提供了丰富的样本数据、例子和提示,以帮助读者方便地将上述概念和工具结合到实际应用中。全书结构合理清晰,内容全面丰富,示例贴近实际,适用于所有DBA和应用系统开发人员。

2014-11-25

空空如也

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

TA关注的人

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