HTTP版本演进:第四回
本文介绍HTTP3http1.x及http2都是基于tcp协议实现的应用层协议。同1.x比较,http2几乎解决了所有1.x的鸡肋点,除了必须的tcp三次握手。
HTTP/3的目标,是通过解决HTTP/2的传输相关问题,在所有形式的设备上提供快速、可靠和安全的Web连接。为此,它使用了一种不同的传输层网络协议,称为QUIC,该协议最初由Google开发的。
QUIC实际上就是在UDP基础上重写了TCP的功能,但是又比TCP更加智能,更高效的实现了TCP的核心功能。
四轴无人机研究:第二回
本文插个题外话,但是个人觉得很重要。电流供电后,电动机是怎么动起来的呢?即:电动机的工作原理
升力从何而来压强差。因为气流的高速流动,导致桨叶上方压强小于下方,形成压强差抬升飞机。一般四轴无人机斜角方向桨叶一致,两侧相反,负负得正。
方向如何控制一侧的压力高于另一侧。
Paperjs:坐标系相关
本文将详细介绍paperjs坐标相关的点在paperjs的坐标体系中,默认方向为右正下正,没记错的话,应该是同opencv一致。我们通常见到的右正上正的坐标系,是标准的笛卡尔坐标系。这是一点区别。那么如果现在我们要做一件事情,就是将paperjs的坐标系转换成标准笛卡尔坐标系,该如何实现呢?即使实现,对那些事件点击的操作有什么影响呢
首先我们老样子初始化那一套,然后把标准的缩放拖拽操作随意的加上,同时随意的加上图片、文本等:
图片、文本和矩形框位置信息如下:
showImg(new paper.Point(-200, -200), '@/assets/Sam.webp')
showText(new paper.Point(200, -200), '测试')
showRect(new paper.Point(-200, 200))
从坐标数据结合实际效果看出,这确实是标准的右正下正结构。
在上面的基础之上,我们借助matrix,将坐标系变更为标准的笛卡尔坐标系。关键代码:
this.project.view.matrix = new paper.Matrix().scale(1, -1 ...
前端数据库?sql.js
本文尽可能详细介绍sql.js。
sql.js为何方神圣?一个专门用于处理sqlite文件的前端数据处理库。它可以根据sqlite文件, 在内存中构造一个对象(虚拟数据库),然后我们可以使用类似sql语句的查询方式,输出我们想要的方式。示例代码如下:
import initSqlJs from 'sql.js'
export function openLocalSqliteDB(sqliteFileData, callback) {
const SQL = initSqlJs({
// TODO: replace with local file path
// locateFile: file => `https://sql.js.org/dist/${file}`
// should put `sql-wasm.wasm` to `public/dist/` folder
locateFile: file => `/dist/${file}`
}).then((SQL) ...
网络工程师:第一回
本系列文章开始,将会整理软考网络工程师的必备知识点,主要是为了拿下中级网工计算机分层结构物数网传会表应,各层各司其职,分工明确。详细如下所示:
一段信息从 A 机器到达 B 机器显示的过程,实质就是经历各层层层打标签,然后再层层去标签。当然上面分层结构主要是 OSI 的分层,在 tcpip 则分成了四层:物理层、网络层、传输层和应用层。核心概括:物理层传输比特流;数据链路层,提供节点到节点的传输, 将数据封装成数据帧;网络层主要是路由选择,将数据封装成数据包-package;传输层提供可靠或者不可靠的端到端的传输,将数据封装成数据报文,数据段;表示层,数据的压缩解压缩.
带宽相关计算
模拟信道: w = f2 - f1,单位 Hz.
数字信道无噪声:奈奎斯特定理 B = 2W(带宽),其中 B 为码元速率(单位时间内,传输的码元个数),单位为波特率。其中,B = 1 / T,T 为码元宽度(脉冲周期)。注意,若导线材质是确定,带宽就是确定的。无噪声情况下的极限速率:R(数据速率) = Blog2N = 2Wlog2N。其 ...
无线电研究:第二回
静噪电路:为了消除不同话或通话间歇时,音频输出端的噪音。静噪灵敏度: 能够使得静噪电路退出静噪状态的射频信号最小输入电频
频偏:调频波频率摆动的幅度“频偏就是调频波频率摆动的幅度,一般说的是最大频偏,它影响调频波的频谱带宽。
射频: 可以辐射到空间的电磁频率发射时产生射频能量辐射,接收或者待机不产生
短波传输是与电离层弹射实现,而米波和分米波是沿着地面传播。
纯前端处理yml文件数据
import yaml from 'js-yaml'
// 处理文件输出sql能接受的数据
async getFileToSqliteData(file) {
const rrr = await this.readFile(new Blob([file.raw]))
const parsedData = yaml.load(rrr) // 输出为 json 格式
return parsedData
},
async readFile(blob) {
const reader = new FileReader(blob)
const promise = new Promise((resolve, reject) => {
reader.onload = function() {
resolve(reader.result)
}
reader.onerror = functio ...
无线电研究:通信的基本原理
杂谈那个谁的通信的基本原理论文自问问世以来,相关技术如原子弹的爆炸一般,急速膨胀的发展.也就过了这么大几十年的时间,世界的变化之巨大,堪比往前历史的总和。大家有没有认真思考过,我们习以为常的黑盒子手机,他们是怎么同他人的黑盒子通信的?最初代的有线电话尚能理解,毕竟通信双方之间是有链接线的,那么现如今的手机就显得抽象的多。两个黑盒子之间,是如何实现收发消息的呢?如果真有穿越时空的机器,把你搁在古代,你能否提前点爆科技树让人类进程前进百年?
通信的基本原理是啥?
计算机之间的通信
A机准备好了一种按约定结构组织的数据,这一坨数据然后会变成01比特信号
有线情况下,串口输出到导线,无线情况下,万能电磁波
通过路由器或者基站导航,最终被目标方接收。
B接收到这个信号后,串口输入,比特数据还原,完成通信的过程.
上述过程虽然字数寥寥但是,每一步都是海量的前人的努力结果。
第一部分:对于网线传输数据的计算机而言,依托的是分层结构就是所谓物数网传会表应。物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
原理解剖:Promise
本文从原理层面介绍Promise(期约),同时通过手撕一个promise加深对其的理解
首先我们要明白,这个promise到底是个啥?能用他来干嘛。
Promise是一个类,因为他保证未来的某个时间点返回一个特定的不可更改的状态:成功或者失败,然后调用对应的then或者catch回调函数。
const p = new Promise((resolve, reject) => {
console.log('promise-start')
resolve('asdasd')
reject('xxx')
})
p.then((res) => {
console.log('res>>', res)
})
p.catch((err) => {
console.log('err>>', err)
})
本质上跟我们new一个对象是一样的,但是总感觉看着很变扭。从代码中可知,该类的入参是一个回调函数。new的时候,该回调函数立即执行。好了,既然是一个类,那我们就照葫芦画瓢,写一个类,同时在con ...
