![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 55
沧州刺史
Hello朋友你好!我是一名西安电子科技大学大四在校学生,目前主要在做web方向,前端居多,别的方向也有尝试。
如果对博客内容有疑问,或者有想法,欢迎私信或评论,看到一定会回复、尽力为大家解决问题!
如果你对web感兴趣,也可以一起交流讨论,比如学习路线、项目经验、技术点等等。
同时我会不定期写一些学习心得、技术教程、项目教学等博客,希望能丰富大家的技术视野。
技术不易,我们,继续努力!
展开
-
fedora 检测和安装 nvidia 显卡驱动
系统中安装了两块 NVIDIA GeForce GTX 1080 Ti 显卡,并且当前使用的内核驱动是 nouveau。nouveau 是一个开源的 NVIDIA 显卡驱动,但通常性能和功能不如官方的 NVIDIA 驱动。最终,你应该会看到 Kernel driver in use 变为 nvidia。这个命令会列出你的显卡信息以及相关的内核模块(驱动)。添加 PRM Fusion 仓库。安装 NVIDIA 驱动。命令重启或者手动重启电脑。原创 2024-07-13 13:54:29 · 270 阅读 · 0 评论 -
使用 SwanLab 进行可视化 MNIST 手写体识别训练
SwanLab是一款开源、轻量级的AI实验跟踪工具,提供了一个跟踪、比较、和协作实验的平台,旨在加速AI研发团队100倍的研发效率。其提供了友好的API和漂亮的界面,结合了超参数跟踪、指标记录、在线协作、实验链接分享、实时消息通知等功能,让您可以快速跟踪ML实验、可视化过程、分享给同伴。原创 2024-05-27 15:54:30 · 322 阅读 · 0 评论 -
Ubuntu 配置 kubernetes 学习环境,让外部访问 dashboard
首先下载一下minikube,这是一个单机版的 k8s,只需要有容器环境就可以轻松启动和学习 k8s。首先你需要有Docker、QEMU、Hyperkit等其中之一的容器环境,以下使用docker进行。对于 docker,需要当前用户能够拥有容器的管理员权限,即不用 sudo 就可以使用容器,如果你当前的用户需要才能使用docker,那么运行将当前用户添加到docker管理员用户组。当拥有容器环境之后,就可以使用二进制下载在 x86-64 Linux 上安装最新的minikube。原创 2024-03-27 16:16:25 · 636 阅读 · 1 评论 -
[BUG] husky + github desktop + nvm 执行git操作时报错:“PREFIX“、husky/pre-push: 4: npm: not found
nvm is not compatible with the "PREFIX" environment variable: currently set to "/usr/lib/github-desktop/resources/app/git"Run `unset PREFIX` to unset it..husky/pre-push: 4: npm: not founderror: failed to push some refs to 'github.com:SwanHubX/swanlab.gi原创 2024-01-14 13:02:41 · 1288 阅读 · 1 评论 -
python实现控制台(终端)打印捕获和日志存储
我的项目的目标是实现一个 pypi 的包(当然,下面介绍的代码你可以直接在你的程序中使用),用户在使用的时候直接通过 pip 下载我的包后,通过暴露出来的对象,init 之后就可以实现一定功能。其中包含日志收集,会将控制台的所有打印信息,不管是用户的还是包内的打印,都会在输出到终端的同时存储到日志文件中。我们实现了一个 Consoler 类,用来管理终端的一些信息。原创 2023-12-23 12:29:50 · 667 阅读 · 3 评论 -
Rust报错:the msvc targets depend on the msvc linker but `link.exe` was not found
Unable to compile Rust hellonote: the msvc targets depend on the msvc linker but `link.exe` was not foundnote: please ensure that Visual Studio 2017 or later, or Build Tools for Visual Studio were installed wit world on Windows: linker link.exe not found原创 2023-12-22 21:25:03 · 1619 阅读 · 0 评论 -
vite 使用 vite-plugin-mock 和 mockjs 配置 mock 模式
当后端还没有完全弄好,而前端需要同时启动的时候,一般会使用 mock 模拟后端响应,这样在后端接口准备完成之后,前端能以较小的工作量和接入接口,完成生产开发。最近正好尝试了一下,记录一下配置过程。原创 2023-12-02 13:32:30 · 4104 阅读 · 3 评论 -
打包时循环依赖(circular dependency)警告
我在打包构建我的vue3项目的时候,有这么一个警告信息:Export "useProjectStore" of module "src/store/modules/user.js" was reexported through module "src/store/index.js" while both modules are dependencies of each other and will end up in different chunks by current Rollup setting原创 2023-10-28 18:56:05 · 1733 阅读 · 0 评论 -
JS执行过程与浏览器渲染原理——消息队列与事件循环
在写 JS 的时候,你有没有想过 JS 是按照什么顺序执行的?浏览器是怎么执行 JS 代码的?为什么有时候代码没有按照我们认为的顺序执行?JS 作为解释型脚本语言,怎么能用上定时器、回调函数之类的操作?其实浏览器背后隐藏着一个精密而复杂的机制,那就是事件循环。这个机制使得网页能够响应用户的操作,同时保持了界面的流畅性和高效性。事件循环是现代前端开发中至关重要的概念之一,它负责管理各种异步操作,例如用户输入、网络请求和定时器等。这是浏览器层面的,做前端必须知道的东西。原创 2023-10-26 19:15:20 · 697 阅读 · 0 评论 -
西电B测——RC无源低通滤波器设计与测量及分析实验(matlab、multisim实现)
设计一个截止频率为63.6kHz的低通滤波器,用MATLAB仿真软件仿真输入输出信号的时域波形、频域波形、自相关函数、功率谱密度等,然后利用multisim软件实现该滤波器,最后利用multisim中的虚拟仪器(如信号源、示波器、光谱分析仪等)测试滤波器输入、输出信号的时域波形、频域波形以及滤波器的幅频特性。原创 2023-05-10 22:10:20 · 6547 阅读 · 9 评论 -
C语言考试中大概率用得到的内置函数
在C语言算法题目中,有一些常用的内置函数可以帮助我们更高效地完成题目,有很多内置函数就能实现的功能是不需要我们再花时间写的。以下是一些常用的内置函数(字符串、字符的题目,大多数都能用到内置函数去简化代码,画个重点)原创 2023-03-18 11:50:31 · 1807 阅读 · 0 评论 -
React是怎么设计的?有哪儿些重要思想?—— 设计模式
React是一款用于构建可重用组件化UI的流行JavaScript库。在使用React的过程中,设计模式是非常重要的,因为它们可以帮助我们编写出高效、可维护且可扩展的代码。本文将介绍React的设计模式,包括组件化设计模式、状态管理设计模式和性能优化设计模式。目的是帮助想要学习React,或者对React有一些了解的同学,更清晰的认识这个伟大的框架。因为有时候,可能我们对一些技术点习以为常,但会用但是不会说。原创 2023-03-18 00:28:00 · 790 阅读 · 0 评论 -
Vue3 bus 事件总线解决兄弟组件传参、不同层级组件传参
Vuex 和 Pinia 都是 vue 中常用的状态管理解决方案。但是他们主要都是用来解决不同组件公用参数或存放重要参数的,将其作为传参的方式,未免有些不妥和浪费,所以我们还可以使用另一种方式进行组件之间的传参:事件总线 bus原创 2023-02-09 22:00:06 · 2247 阅读 · 2 评论 -
手把手教你写web全栈入门项目—React+Koa+MongoDB(3w字教程,真的很详细,有代码)
之前一直都是前端选手,趁放假把后端学了学,结合目前所在团队(如果感兴趣可以看看微信小程序“焕影一新”)的技术栈,完成了一个简单的登录系统。如果你有时间,并且也想入门全栈,对于入门的练习项目来说,不必太复杂(比如一整个图书馆管理系统…),一个登录系统就够了。提示:如果你拥有前端基础或Node基础(Common JS),那么可能更容易接受,但如果你是后端选手也没关系,这篇博客的重点在于提供一个完整的前端-后端-数据库的项目流程,让大家在学习的时候有一个依据。原创 2023-01-25 16:19:51 · 818 阅读 · 0 评论 -
React input输入相关:受控方式无法更新对象类型数据(函数式组件 useState)
这个问题的关键其实我们都知道:**state不能通过直接赋值的方式修改,这也是我们为什么要解构出setUserInfo的原因**到这里你可能很疑惑,我是用的`setUserInfo`呀?但是看上面传入`setUserInfo`中的函数,传入函数是为了解决需要用到之前的state值的需求,这个`pre`就是之前的 state,可是在这个函数中,却直接使用了`pre.account = e.target.value`这样的形式,**用 = 给一个 state 赋值了!**既要获取之前的state值,原创 2022-12-29 20:01:42 · 749 阅读 · 5 评论 -
react-router v6 hook——useRoutes教程
上面的路由系统有一个问题:路由是通过标签形式管理,当有大量路由的时候,其易读性和架构就会变得不好,可以把这种路由模式类比XML,并与Json相比,他们在写法的优缺点上有明显的相似。如果你写过VUE,应该还记得VUE中的路由并不是这样的,而是抽离出来,作为一个对象数组去管理路由。,就会返回一个保存有路由组件的变量,在需要使用的地方。首先可以如图创建路由文件夹,管理路由文件。使用很简单,只需要将刚刚的路由对象传入。字段重定向,我们需要重定向,如从。申明路由使用的组件,而不能使用。字面意识是没有包裹在。原创 2022-12-27 23:23:33 · 1197 阅读 · 0 评论 -
node-config模块实现node项目配置
你可能还想创建一个自定义的配置文件来容纳一些环境变量的覆盖。Node-config提供了对配置文件类型的支持,你可以用的名字来定义。转载 2022-11-05 23:57:17 · 1180 阅读 · 0 评论 -
NodeJS连接MongoDB数据库(数据校验,增删查改)
方法去实现写入,这个方法接收两个参数,第一个参数为插入对象,第二个参数为操作后的回调函数,回调函数第一个参数为错误对象,第二个参数为成功增添的数据。需要注意的是,连接操作是一个异步操作,如果需要在连接之后进行数据库操作,那么需要进行异步处理,或把操作逻辑放在上述代码的else里面。上述代码有一些问题,会触发两个报错,这是因为API有变动,新版本,在连接数据库的时候,需要指定一个配置对象。当进行增删改查之前,我们需要了解几个核心的对象,因为很多接口都是放在他们的身上的。下面代码是紧接着上面的代码写的。原创 2022-11-04 14:17:21 · 733 阅读 · 0 评论 -
一文囊括MongoDB基础!
学习目标MongoDB的副本集: 操作, 主要概念, 故障转移, 选举规则 MongoDB的分片集群:概念, 优点, 操作, 分片策略, 故障转移 MongoDB的安全认证传统的关系型数据库 (比如 MySQL), 在数据操作的”三高”需求以及对应的 Web 2.0 网站需求面前, 会有”力不从心”的感觉所谓的三高需求:高并发, 高性能, 高可用, 简称三高而 MongoDB 可以应对三高需求具体的应用场景:这些应用场景中, 数据操作方面的共同点有:对于这样的数据, 更适合用 MongoDB 来实现数据存储转载 2022-10-30 18:32:07 · 220 阅读 · 0 评论 -
使用koa(koa-bodyParser插件)报错:ctx.onerror is not a function
插件可以让你快捷获取到POST数据,不然按照传统模式,则需要手动监听流事件。去获取数据片段,然后拼接每个片段,最后转换为JSON格式。这不是koa引起的错误,而是一个插件引起的错误。但是有一个点需要注意!原创 2022-10-29 12:22:46 · 2247 阅读 · 1 评论 -
React学习三 —— react组件的三大属性(state、props、refs)
React组件有很多属性,在其中有三个属性最为核心和重要:- state- props- refsstate让你可以通过数据驱动视图,让视图自动根据数据的改变而改变。props可以提高组件的灵活性,通过外界传值让组件根据用户特性而呈现不同的视图。refs能够减少用户对DOM的直接操作,而可以通过获取代理节点而提高开发效率和页面性能。原创 2022-10-06 14:11:15 · 1016 阅读 · 0 评论 -
React学习二 —— 组件入门
React中创建组件有两种方法:函数式组件和类式组件。本文阐述了如何通过函数和类创建一个简单的组件,并且其中有一些‘类’的知识点的复习原创 2022-10-06 11:45:11 · 380 阅读 · 0 评论 -
React学习一 —— 虚拟DOM和JSX语法规则
React 核心思想之一在于减少开发者对文档流对象DOM的直接操作,因为原生JS对DOM的直接操对性能影响很大,会使用户体验下降,所以可以使用JSX和React的一些API创建虚拟DOM,开发者操作虚拟DOM进行页面操作,只有等最终渲染的时候,才会将React的虚拟DOM翻译成浏览器可以看懂的真实DOM。原生style中写的都是一个一个键值对,那么可以这么理解为什么要用双括号了:最外面的括号代表里面的是一个JSX表达式,而里面的括号加上键值对,表示这是一个CSS样式对象。一个虚拟DOM不能有多个根标签!原创 2022-10-03 17:22:19 · 548 阅读 · 0 评论 -
Node学习二十 —— 构建和使用HTTP中间件
简单介绍一下中间件,我从这里面摘抄的。我国企业从20世纪80年代开始就逐渐进行信息化建设,由于方法和体系的不成熟,以及企业业务和市场需求的不断变化,—个企业可能同时运行着多个不同的业务系统,这些系统可能基于不同的操作系统、不同的数据库、异构的网络环境。现在的问题是,如何把这些信息系统结合成一个有机地协同工作的整体,真正实现企业跨平台、分布式应用。中间件便是解决之道,它用自己的复杂换取了企业应用的简单,接下来我们来了解一下什么是中间件?原创 2022-09-30 16:11:05 · 746 阅读 · 0 评论 -
Node学习十九 —— 回调地狱、Async库控制异步同步
当异步操作的时候,通常都是通过回调函数来进行反馈。如果你需要进行一些IO操作,那么基本都需要指定一个在操作结束的时候调用的回调函数,如果涉及大量IO操作,要把这些回调管理好就很麻烦,也许会导致一些被称为“回调汤”或者“飞去来器效应”的模式。原创 2022-09-27 19:53:33 · 518 阅读 · 0 评论 -
Node学习十八 —— Node调试器和检查器
实际应用一般都不是一个小工程,所以需要把程序划分成多个小的模块。如果需要检查程序模块内部的运行情况,则可以用到几个工具。原创 2022-09-27 14:01:50 · 461 阅读 · 0 评论 -
Node学习十七 —— 调试模块(Node-Tap,assert/t断言)
为了减少上线到生产环境下,程序有某些BUG影响用户使用,必须测试所写的代码,可以使用人工手动检查,但是这样效率太低了,可能测试功能单一、简单的代码可行,但是一旦需要大量数据测试,那最好还是编写用来测试的代码让测试过程实现自动化。目的是创建覆盖全部代码的一些列测试,包括运行的主要情形和边缘情形。原创 2022-09-27 11:49:25 · 594 阅读 · 0 评论 -
Node学习十六 —— 使用HTTPS保证HTTP的安全性
HTTPS为标准HTTP协议增加了TLS的安全性,在Node中HTTPS被实现为一个有别于HTTP的独立模块,除了一些小差别,别的都很相似。HTTPS核心模块扩展了HTTP模块,并将tls模块作为传输机制。例如,伪类继承自伪类。首先需要创建私钥和自签名证书,这和上一篇中的做法相同本篇略有缩减,如有理解困难或细节疑问请配合前置文章学习。原创 2022-09-26 14:59:54 · 539 阅读 · 0 评论 -
Node学习十五 —— 使用TLS/SSL提高安全性
传输层安全(Transport Layer Security,TLS)和 安全套接字层(Secure Socket Layer,SSL)允许客户端/服务器应用程序以组织窃听和篡改的方式通过网络进行通信。他们会在传输层上对网络连接进行加密,这使得隐私和消息都能得到验证。TLS是基于Netscape公司开发的早期SSL规范,实际上,TLS 1.0 也被成为 SSL 3.1。原创 2022-09-25 22:04:43 · 784 阅读 · 0 评论 -
Node学习十四 —— 使用node创建HTTP请求
Node擅长处理I/O操作,所以它不仅合适提供HTTP服务,也适合使用这些服务。接下来你将学习使用http模块和第三方模块执行和控制http请求。在HTTP协议中,有两个重要的属性:URL和方法。最常见的是GET、POST方法,还有PUT等别的方法。原创 2022-09-25 14:40:47 · 4052 阅读 · 0 评论 -
Node学习十三 —— 用户数据报
使用用户数据报TCP是一个面相连接的协议,它能提供可靠有序的数据流。然而,用户数据报协议(User Datagram Protocol,UDP)是一种无连接的协议,不具备TCP的传输特性。当发送UFP数据包的时候,无法保证数据包都顺序到达,甚至无法保证它能够到达。虽然有这些缺点,但是它还是非常有用,例如在需要广播消息的时候,并不需要严格地传输保证,或者消息顺序,此外,UDP也可用于不知道网络节点地址的场合。1. 理解用户数据报与TCP一样,UDP也位于传输层,在IP层之上,它允许你向其他主机发送消息原创 2022-09-25 00:21:49 · 338 阅读 · 0 评论 -
Node学习十二 —— 创建TCP客户端
构建TCP客户端TCP协议位于IP协议的上一层,是引用最广泛的互联网传输协议之一,在其之上就是类似HTTP这样的应用层协议。TCP是一种面向连接的协议,即一个终端需要和另一个终端建立专门的连接。该连接为双向数据流,两个终端可以同时控制收或者发数据。原创 2022-09-23 18:00:45 · 999 阅读 · 0 评论 -
Node学习十一 —— 创建HTTP服务器
HTTP是一个用来进行传送内容的应用程序的应用层协议,它将TCP用作传输协议,并且是万维网进行数据通信的基础。首选的应用程序部署方案之一就是在互联网上提供HTTP服务,用来响应HTTP客户端的请求,几乎常见的软件程序里面都会使用这一项技术。原创 2022-09-22 21:39:10 · 438 阅读 · 0 评论 -
Node学习十 —— TCP实战之聊天室
TCP服务器会在其生命周期内发射一些事件,即在被绑定到某个端口上时会发射“监听”事件,被关闭时会发射“关闭”事件,而出现错误时会发射“错误”事件。还可以监听“连接”事件,该事件会在新客户端连接时出现。连接事件会向你提交一个socket对象, socket对象既是可渎流又是可写流,可以用该对象来监听数据、发送数据、终止连接,甚至可以将连接数据传入另一个流中,反过来也可以将一个可读流传入连接。socket对象允许你使用socket.pause()和socket..resume()控制它的流程,还允许你对它的些原创 2022-09-22 14:35:51 · 245 阅读 · 0 评论 -
Node学习九 —— 创建TCP服务器
传输控制协议(Transmission Control Protocol,TCP)是Internet的基础协议之一,它位于网际协议(Internet Protocol,,P)之上,为应用层提供了一种传输机制。例如,HTTP工作在TCP之上,其他很多面向连接的应用(诸如RC、SMTP和MAP)也工作在TCP之上。Node以htp.Server伪类实现了HTTP服务器,改伪类继承自 .net Server中的TCP服务器伪类,这意味着本文所有内容也可以应用到Node HTTP服务器中去。原创 2022-09-21 22:33:35 · 815 阅读 · 0 评论 -
15812字教你从零入门node.js(基础篇)
node是每个js开发者都会使用,也是必会的工具,可能很多人都和我一样,平时都会用,但是没有系统去学习过他。这段时间,抽空从头开始学了学node基础,并把这段时间的学习作为node第一阶段,同时把第一阶段,node基础分为七个部分,共八篇,各位看官想分条细看,可以去我的主页找这八篇笔记。现在,我把这八篇笔记合八为一,综合成《15812字教你从零入门node.js(基础篇)》。原创 2022-09-20 23:46:33 · 390 阅读 · 0 评论 -
Node学习八 —— 流--读写数据流
流,是Node中的一个抽象概念。细分可以分为两个:可读流和可写流。他们可以由一些Node对象实现(牢记流只是一个概念)。举几个流的例子:TCP套接字、文件读写。。。虽然之前也接触过,但本文以更正式的方式介绍。注意:流是由几个Node对象实现的抽象概念,创建或者获取流的方式取决于使用流的类型。例如,可以基于文件显式地创建一个可读流或者可写流。但是,服务器端的TCP套接字流只有在客户端连接时才能为你所用。除了可读流或可写流的特性外,一个对象还可以具有其他一些特殊的属性或行为。原创 2022-09-11 15:11:05 · 689 阅读 · 0 评论 -
Node学习七 —— 创建和控制外部进程
Node是被设计用来高效处理/O操作的,但正如你所见,某些类型的程序并不适用于这种模式。比如当用Node处理一个CPU密集型任务时可能会阻塞事件循环,所以应该将CPU密集任务分配给另一个进程去处理,释放事件循环,分担主进程的压力。Node中可以创建进程,并把这些进程当成当前启动他的进程的子进程。也许你不是很了解进程和线程,但这不是本文的重点,所以如果想要了解的更清楚,请查一查,简单了解一下。提一句,后面用到的process对象是Node中的一个全局对象。原创 2022-09-10 17:04:38 · 1033 阅读 · 0 评论 -
Node学习六 —— 文件操作(fs模块,打开关闭读写文件)
引入fs模块之后,可以利用其中的接口进文件操作-fs模块const fs = require('fs');引入fs模块之后,可以利用其中的接口进行文件操作。查询文件的统计信息可以使用 fs.stat函数查询,第一个参数为文件路径,第二个参数为查询完成之后的回调函数,回调函数接受一个参数,为查询的返回值。返回值有文件的基本信息,具体就不列了,看文档即可。该函数会将stats类的一个实例作为返回值传给回调,通过这个实例,我们可以调用以下函数:isFile() :如果是标准文件而行文件操作。原创 2022-09-10 03:47:24 · 1057 阅读 · 0 评论 -
Node学习五 —— 操作文件(path模块,路径处理)
查询和读写文件Node中有一组流API,可以像处理网络流一样处理文件。流API很方便,但要求只能以连续的方式处理文件。如果需要在指定位置进行读写,流API就行不通了,所以需要用到一些更底层都操作。本文主要内容:如何打开文件如何读取文件的指定部分如何写入文件如何关闭文件Node与文件有关的API很多与UNIX很像,使用文件描述符的方法就和UNIX中的一样。文件描述符句柄在Node中也是一个整数,代表进程文件描述符表的某个入口的索引。有三个特殊的文件描述符:1:标准输入文件(只读流,可以原创 2022-09-09 10:50:05 · 614 阅读 · 0 评论