首页
归档
分类
标签
更多
留言板
说说
关于
Search
1
饥荒联机版控制台代码大全
1,028 阅读
2
编译安装带 Brotli 压缩的 Nginx
932 阅读
3
Obsidian多端快速同步插件
901 阅读
4
树莓派+EC20模块实现连接蜂窝网和短信收发
890 阅读
5
EC20通过gammu接收短信再转发优化
866 阅读
软件
CSS
Python
MySql
Java
typecho自定义
Vue
学习笔记
Linux
Shell脚本
Nginx
树莓派
邮件
拍照
热点
ec20
云盘
系统烧录
好玩
饥荒
硬件
工具
笔记
随心记
登录
Search
标签搜索
树莓派
Linux
Java
CSS
饥荒
小妙招
个人热点
nextcloud
云盘
DHT11
学习笔记
树莓派拍照
Nginx
MySql
ESP
娱乐
ec20模块
文件共享
git
图床
Mango
累计撰写
51
篇文章
累计收到
7
条评论
首页
栏目
软件
CSS
Python
MySql
Java
typecho自定义
Vue
学习笔记
Linux
Shell脚本
Nginx
树莓派
邮件
拍照
热点
ec20
云盘
系统烧录
好玩
饥荒
硬件
工具
笔记
随心记
页面
归档
分类
标签
留言板
说说
关于
搜索到
21
篇与
的结果
2022-10-12
Java改变控制台输出文字样式
Java在控制台上的输出字体样式其实是可以自己定义的代码如果结尾处没有加 \033[m 这次输出后的全部输出都会变成相同样式 System.out.println("\033[30m"+"Hello World 设置m为:30"+"\033[m"); System.out.println("\033[31m"+"Hello World 设置m为:31"+"\033[m"); System.out.println("\033[32m"+"Hello World 设置m为:32"+"\033[m"); System.out.println("\033[33m"+"Hello World 设置m为:33"+"\033[m"); System.out.println("\033[34m"+"Hello World 设置m为:34"+"\033[m"); System.out.println("\033[35m"+"Hello World 设置m为:35"+"\033[m"); System.out.println("\033[36m"+"Hello World 设置m为:36"+"\033[m"); System.out.println("\033[37m"+"Hello World 设置m为:37"+"\033[m"); System.out.println("\033[38m"+"Hello World 设置m为:38"+"\033[m"); System.out.println("\033[39m"+"Hello World 设置m为:39"+"\033[m"); System.out.println("\033[40m"+"Hello World 设置m为:40"+"\033[m"); System.out.println("\033[41m"+"Hello World 设置m为:41"+"\033[m"); System.out.println("\033[42m"+"Hello World 设置m为:42"+"\033[m"); System.out.println("\033[43m"+"Hello World 设置m为:43"+"\033[m"); System.out.println("\033[44m"+"Hello World 设置m为:44"+"\033[m"); System.out.println("\033[45m"+"Hello World 设置m为:45"+"\033[m"); System.out.println("\033[46m"+"Hello World 设置m为:46"+"\033[m"); System.out.println("\033[47m"+"Hello World 设置m为:47"+"\033[m");样式其实,并不用特别的去记什么数字代表什么样式,用一个for循环输出看看就可以知道了for(int i=0;i<99;i++) { System.out.println("\033["+i+"m" + "Hello World 设置m为:"+i+ "\033[m"); }
2022年10月12日
349 阅读
0 评论
0 点赞
2022-09-04
移动硬盘安装Linux系统闪屏问题解决方案
前引电脑自带的固态只有120GB,着实有点嫌小就换了个大一点的,原来的就被我做成了移动硬盘。但是已经有很多可以使用的U盘,对速度也没有太高的追求,与其被丢在角落里吃灰,不如在移动盘里烧录个Linux,和原本主机的Windows一起做双系统使用,做个即插即用的备用系统。遇到的问题在给移动硬盘烧录Ubuntu 22.4后还没使用多长时间,屏幕就开始不间断闪烁尝试解决方案一开始我以为是显示器参数没有调对,就把在UI界面下可以调节的什么伽马值,屏幕刷新率挨个调了个遍,都没有变化然后,我以为是驱动的原因,按照网上的教程安装显卡驱动后,问题并没有得到解决我开始怀疑也许是Linux发行版与我的电脑不兼容(纯小白)就尝试使用了许多不同的系统;Ubuntu、OpenSUSE、Manjaro、Kali等各大发行版后,每一版都会有不同程度的闪屏问题问题根源发现之前一直把移动硬盘插在一个绿联的USB扩展坞上,在Windows这边读取并没有任何的问题,但有一次把移动硬盘直接插在了电脑的USB口上就开始频繁的设备挂载与退出好家伙,网上一查是移动硬盘的供电不足,导致了设备频繁挂在推出看来是买了便宜的移动硬盘盒,但是在USB扩展坞上使用没有任何问题,直接插电脑上却用不了。不知道又是些什么奇奇怪怪的原因了。最终解决方案暂时并没有多余的资金去买一个好一点的硬盘盒,又有一个USB的电压电流计,就打算拿他做中转试试,还真成功了真的是莫名其妙的解决办法,自己看了都有点想笑。不管那么多了,反正又不是不能用,不再闪屏就行
2022年09月04日
346 阅读
0 评论
0 点赞
2022-08-11
利用GitHub Action自动集成部署Hexo博客到服务器
前引Hexo生成的静态博客有着安全、快速等特点,但是同时也存在一些比较明显的痛点由于没有后台,出现错误时移动端修改不方便本地文件丢失,很难找回原本博客配置文件没有Nodejs环境不能部署而这些问题都能通过Github Action得到比较好的解决Hexo本地博客创建{% note info simple %}已经有的可以跳过{% endnote %}第一次使用的话本地Hexo环境是肯定要有的,如果本地博客都没有的话后续步骤也没有意义了网上已经有比较成熟的教程,此处不做具体描述,{% link 从0开始用Hexo框架搭建个人博客(无坑版),清菡,https://zhuanlan.zhihu.com/p/305812430 %}{% link Hexo+阿里云,手把手教你如何搭建属于自己的个人博客(超详细),到站了还不下车,https://zhuanlan.zhihu.com/p/126243913 %}GitHub仓库创建在创建时最好选择私有,避免重要内容泄露新建工作流文件在博客更目录下新建.github/workflows/deploy.yml文件,deploy.yml文件的文件名可以随意起,只要是yml文件就行将配置内容复制到新建文件中# 当有改动推送到master分支时,启动Action name: Hexo博客自动部署 on: push: branches: - master release: types: - published jobs: deploy: runs-on: ubuntu-latest steps: - name: 检查分支 uses: actions/checkout@v2 with: ref: master - name: 安装 Node uses: actions/setup-node@v1 with: node-version: "12.x" - name: 安装 Hexo run: | export TZ='Asia/Shanghai' npm install hexo-cli -g env: CI: true - name: 缓存 Hexo uses: actions/cache@v1 id: cache with: path: node_modules key: ${{runner.OS}}-${{hashFiles('**/package-lock.json')}} - name: 安装依赖 if: steps.cache.outputs.cache-hit != 'true' run: | npm install --save env: CI: true - name: 生成静态文件 run: | hexo clean hexo generate env: CI: true - name: 部署 uses: burnett01/rsync-deployments@@5.2.1 with: switches: -avzh path: public/ remote_path: /var/hexo/ remote_host: mstzf.cn remote_port: 22 remote_user: root remote_key: ${{ secrets.SERVER_KEY }} 文本中流程执行结果是将静态文件部署到个人服务器中去其中,最后部署部分脚本通过 ssh 上的 rsync 将文件部署到远程文件夹中switches:rsync 标志,例如:-avzr --deletepath:要上传文件地址,当前hexo g之后静态文件在public/中remote_path:博客在服务器中的路径remote_host:主机地址remote_port:ssh连接端口号remote_user:要连接的用户remote_key:服务器生成的密钥服务器获取ssh连接密钥登录服务器终端,输入命令ssh-keygen出现的提示内容一路回车,最终会在~/.ssh生成公钥和私钥id_rsa.pub、id_rsa将公钥id_rsa.pub复制到authorized_keyscat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys复制一份私钥的内容新建secrets登录GitHub,选择要上传博客源文件的仓库->setting下name:SERVER_KEYValue:刚刚复制的私钥name可以随意但要和流程文件中secrets调用的名字一致检查.gitignore文件.DS_Store Thumbs.db db.json *.log node_modules/ public/ .deploy*/文件中内容表示上传要忽略的文件,如果文件不存在或者内容有缺少,要及时补充否则会上传大量无用文件,在添加和提交时都会浪费大量时间提交博客源代码到github将博客根目录下和主题文件下存在的.git文件删除或者移动到其非博客文件夹下将本地博客目录初始化文git仓库git init #初始化 git remote add origin <github仓库ssh代码> git checkout -b master # 切换到master分支,本地git仓库搭建成功后将源代码提交到GitHub仓库git add . git commit -m "first commit" git push origin masterGitHub Action会自动执行工作流程,如果一切顺利没有差错的话,博客会自动部署到我们的服务器上去
2022年08月11日
256 阅读
0 评论
0 点赞
2022-08-07
Hexo搜索引擎优化(SEO)
前引我们费尽心血写出来的各种博客,当然是希望分享给更多的人,让更多的人看到的,但是如果只是在自己的小圈子里面去分享的话,很难有好的浏览量,所以就需要我们去优化搜索,让浏览器收录我们的网址,这样在有人在浏览器搜索对应关键字的时候就有可能将我们的文章推荐给他。道理虽然是这样,但我自己的浏览数据也一直少得可怜搜索平台收添加搜索平台站长管理平台地址必应站长管理平台谷歌站长管理平台百度站长管理平台登录到搜索平台的站长管理页面,将自己的域名添加后,还需要进行验证,有三种方式,截图以必应的为例文件验证下载对应平台的验证文件后,将其保存到网站的根目录,hexo博客框架的话推荐保存到source/目录下,这样每次生成静态页面后都会在public文件下存在,当然也可以直接在public/下添加,但是在运行hexo clean之后被删除。其他博客框架添加方法也大同小异,只要确定网站根目录然后添加即可。最终达到的效果就是:能够通过https://你的域名/下载文件名直接访问到文件内容即可HTML标签验证将获取到的Meta粘贴在HTML文件的<head> </head> 部分中以下为必应下的Meta样式:<meta name="msvalidate.01" content="9565AFED5E9E8A24241BB5E6223CCB04" />我用的是hexo的butterfly主题,添加方法作者大大已经弄好,直接将获取到的值添加就行Butterfly 安裝文檔(四) 主題配置-2 | Butterfly其他主题应该也大同小异CNAME验证在DNS域名服务器中,给自己的域名添加新的解析记录添加必应的,以我在阿里云购买的域名为例,则需要在DNS下添加这里推荐使用方法1,下载文件,因为不需要改变其他文件,也不需要很复杂的操作流程。不论使用哪种方法,只要验证成功都可。提交站点地图站点地图是一个网站所有链接的容器。很多网站的连接层次比较深,爬虫很难抓取到,站点地图可以方便爬虫抓取网站页面,通过抓取网站页面,清晰了解网站的架构,网站地图一般存放在根目录下并命名sitemap,为爬虫指路,增加网站重要内容页面的收录。站点地图就是根据网站的结构、框架、内容,生成的导航网页文件。站点地图对于提高用户体验有好处,它们为网站访问者指明方向,并帮助迷失的访问者找到他们想看的页面。Hexo 可以通过两个插件来实现自动生成站点地图百度npm install hexo-generator-baidu-sitemap --save谷歌、必应npm install hexo-generator-sitemap --save然后在 hexo 的配置文件_config.yml中添加sitemap: path: sitemap.xml baidusitemap: path: baidusitemap.xml之后每次编译都会自动在/public目录下生成sitemap.xml和baidusitemap.xml。网站提交之后就可以到搜索平台上提交自己的站点地图了站点地图的URL为:https://你的域名/sitemap.xml和https://你的域名/baidusitemap.xml添加robotsrobots是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。在/source下新建一个文本文档,重命名为:robots.txt内容为:User-agent: * Allow: / Allow:/posts/ Disallow: /js/ Disallow: /css/ Sitemap: https://域名/sitemap.xml Sitemap: https://域名/baidusitemap.xmlAllow: 表示可以访问Disallow:表示不允许访问Sitemap:表示站点地图更多详细内容自行百度修改永久链接hexo新建文章后的永久链接为/year/month/undefined,这样的链接格式层数太深,另外就是不方便命名。对此我的修改方式如下:去除year,在URL中出现年份,要是年份太远的话搜索引擎可能会给较低的优先级将/替换为-,将深度降低重新设置了一个urlname最终的permalink被替换成permalink: :month-:day/:urlname/ # :urlname 自定义文章网址名这样每次新建文章只需要在MarkDown的注释部分(用于生成文章标题,日期标签...)添加一个urlname: 自定义链接中的文章名字部分在使用MarkDown写文章时的一些小细节在文章中不要再使用一级标题#,推荐从二级标题##开始使用,不然会有多个<h1>标签的SEO错误添加keywords,好的关键字可以提高搜索准确率添加description,并且描述说明的长度应该再25-160字之间有图片时中括号[]内尽量不要为空,应当有适当注释{% note blue 'fas fa-bullhorn' simple %}有不足、错误之处欢迎大家评论指正{% endnote %}
2022年08月07日
319 阅读
0 评论
0 点赞
2022-05-12
MySql入门基础命令
{% note info simple %}该文章为个人学习笔记,内容仅供参考{% endnote %}主要参考以下两个网站{% flink %}class_name: 参考网站class_desc:link_list:name: MySQL 5.1中文文档link: https://www.mysqlzh.com/avatar: https://www.mysqlzh.com/Application/Home/View/Public/img/mysql-logo.svgdescr: MySql中文网name: 易百教程link: https://www.yiibai.com/avatar: https://www.yiibai.com/static/img/logo.pngdescr: 专注于IT教程和实例{% endflink %}连接数据库mysql -h hostname -u user -phost:当前服务器主机名user:用户名密码:可以直接在p后面直接跟密码,如:-ppasswords;还可以p后留空回车后再输入密码。推荐使用后者,这样更安全。创建数据库创建一个新数据库CREATE DATABASE [IF NOT EXISTS] dbname;显示数据库SHOW DATABASES;选择数据库USE dbname # 或者在连接时选择 mysql -h hostname -u user -p dbname创建表查看数据库中的表SHOW TABLES;创建新表CREATE TABLE tableName (listing1 dataType default value listingConstraint, listing2 dataType default value listingConstraint, listing3 dataType default value listingConstraint, listing4 dataType default value listingConstraint, ......, tableConstraint );表名tableName在一个数据库中必须是唯一的,括号内的内容是对每一列的列名和属性的定义通过‘,’隔开每一列,最后一列是对表的约束‘,’可以省略。表被创建好后可以使用DESCRIBE来查看表中的列名和数据类型等属性。DESCRIBE TABLES;对表中数据的管理查找数据SELECT 查询内容 FROM 数据表 WHERE 查询条件;查询内容可以是表中的一列或多列,* 则表示查询表中所有的列所查询的数据表应为当前数据库中存在的表查询条件可以做出合适的限定,从而只返回我们想要的数据在查询NULL内容时,WHERE后的条件不是"列=NULL",而是"列 IS NULL"增加数据# 单次添加一个新记录 INSERT INTO 数据表 (列名) VALUES (数据内容);列名与数据内容要一一对应如果每一列都要添加数据,列名可以省略,此时的数据内容则要包含每一列数据数据内容如果是多项用‘,'隔开# 单次添加多个新纪录 LOAD DATA LOCAL INFILE 'fileName' INTO TABLE tableName;将要添加的数据保存到文本文件中,每行表示一个新记录,用定位符(Tab)把每一列分隔开,对于NULL值使用\N来代替。删除数据DELETE FROM 表名 WHERE 删除条件;WHERE 删除条件可以省略,表示删除表中所有行修改数据UPDATE 表名 SET 列名1=值1, 列名2=值2, ..., WHERE 条件;SET 后可修改多列,以','分隔开WHERE 条件可以省略,省略后表示修改所有行中的数据
2022年05月12日
339 阅读
0 评论
0 点赞
2022-04-22
接入每天60S看世界API
Timeline{% timeline 更新日志 %}文章发布将XMLHttpRequest替换为fetch,增加打字机效果{% endtimeline %}前言目前在网上已经有很多博主出了对博客引入这个API的教程,内容也已经比较详细,但是很多通过直接获取整张图片的形式;这样做省去了很多不必要的麻烦,只是图片在加载的时候会比较缓慢,而且在静态博客框架下开启图片懒加载后有几率发生图片加载失败的情况。还有一些博主也使用了直接请求文字内容的教程,而这些很多都是针对基于PHP搭建的博客,不能用于静态博客。XMLHttpRequest求情HttpXMLHttpRequest是JavaScript中自带Http请求函数,可以快速调出浏览器调试界面发请求。在小规模的情况下可以有效减少其他依赖快速的接入接口。方法描述open("method","URL",[asyncFlag],["userName"],["password"])建立对服务器的调用。method参数可以是GET、POST或PUT。url参数可以是相对URL或绝对URL。这个方法还包括3个可选的参数,是否异步,用户名,密码setRequestHeader("header", "value")把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()。设置header并和请求一起发送 ('post'方法一定要 )send(content)向服务器发送请求在代码中主要值使用了XMLHttpRequest中的这几个方法,更多方法可以到 (XMLHttpRequest - Web API 接口参考 | MDN (mozilla.org) 中查看更多方法使用技巧开始引入注册ALAPI 账号获取Token注册账号后到用户管理界面获取Token并保存,在后面的代码部分会使用到代码部分<div> <div style="display: flex;flex-direction: column;align-items: center;"> <h1 style="color: red;font-size: 2.5em;">每天60s看世界</h1> <img id="head-img" src="" alt=""> <p id="news" style="width:90%; color: blue;font-size: 1.4em;">新闻正在加载</p> </div> <script> (() => { const news = document.querySelector('#news') const headImg = document.querySelector('#head-img') var xhr = new XMLHttpRequest() fetch('https://v2.alapi.cn/api/zaobao', { method: "POST", // or 'PUT' headers: { "Content-Type": "application/json", }, body: JSON.stringify({ token: 'wNj349sLbMqqUaew', format: 'json', }), }).then(res => res.json()).then(ori => { var text = ori.data.news var str = '' for (let i = 0; i < text.length; i++) { str += text[i] + '<br>' } // news.innerHTML = str; headImg.src = ori.data.head_image let i = 0; let str_ = '' let timer = setInterval(() => { if (str_.length < str.length) { str_ += str[i++] news.innerHTML = '<p>' + str_ + '_</p>' //打印时加光标 } else { clearInterval(timer) news.innerHTML = '<p>' + str_ + '</p>' } }, 50) }) })() </script> </div>找到代码中xhr.send('token=粘贴刚刚获取到的Token&format=json');部分,将刚刚获取到的Token粘贴到中文标注部分。引入到博客中将html代码整个的粘贴到新建页面或者其他要添加的地方。
2022年04月22日
615 阅读
0 评论
0 点赞
2022-04-03
Java面向对象
Java是一种相对比较成熟的面向对象编程语言。面向对象是一种较为符合人类思维习惯的编程思想。在Java中一切皆可有对象,我们把具有相同性质、特点的事物抽象成一个类,而每一个具有这些性质、特点的事物就是这个类的一个对象。面向对象与面向过程面向过程:面向过程就是分析出解决问题的一个个步骤,在程序中的提现就是写好的一个个执行不同目的的函数,在解决问题的时候,就再一个一个的调用这些步骤(函数)。就比如说洗衣服这件事,在面向过程的时候,就会被拆分成:放入衣服、加入洗衣液、加入适量水、启动洗衣、排水、甩干、晾衣服。这一些列的过程,最终达到洗衣服的目的。面向对象:面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。再以洗衣服这件事为例,在面向对象的时候洗衣粉主要就被分为了两类对象,第一类对象——人,主要有放入衣服、加入水、晾衣服等属性;第二类对象——洗衣机,主要有洗衣服、甩干衣服等属性。面向对象主要是划分了问题而不是步骤。面向对象与面向过程的优缺点面向过程:优点:流程化使得编程任务明确,在开发之前基本考虑了实现方式和最终结果,具体步骤清楚,便于节点分析。效率高,面向过程强调代码的短小精悍,善于结合数据结构来开发高效率的程序。比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。缺点:代码重用性低,扩展能力差,后期维护难度比较大。面向对象优点:结构清晰,程序是模块化和结构化,更加符合人类的思维方式;易扩展,代码重用率高,可继承,可覆盖,可以设计出低耦合的系统;由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护缺点:开销大,当要修改对象内部时,对象的属性不允许外部直接存取,所以要增加许多没有其他意义、只负责读或写的行为。这会为编程工作增加负担,增加运行开销,并且使程序显得臃肿。性能低,由于面向更高的逻辑抽象层,使得面向对象在实现的时候,不得不做出性能上面的牺牲,计算时间和空间存储大小都开销很大。面向对象的基本特性封装:是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。良好的封装能够使程序更高效安全。继承:继承是Java程序设计中的一项核心技术。继承的基本思想是使用已经存在类中的属性和方法去创建新的类,在新类中可以添加心得属性和方法,让新的类能够适应心得情况而不用重写已经存在的属性方法。多态:多态性是面向对象编程的又一个重要特征,它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。对面向对象来说,多态分为编译时多态和运行时多态。其中编译时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的方法。通过编译之后会变成两个不同的方法,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是大家通常所说的多态性。(解释来自C语言中文网](http://c.biancheng.net/view/1001.html)))面向对象的五大基本原则单一职责原则(Single Responsibility Principle)没一个类应该专注于做一件事。指类的功能要单一,不要包罗万象;像人一样不要一心二用。开放封闭原则OCP(Open-Close Principle)一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的里氏替换原则(Liskov Substitution Principle)子类应当可以替换父类并出现在父类能够出现的任何地方依赖倒置原则(Dependence Inversion Principle)具体依赖抽象,上层依赖下层。接口隔离原则(Interface Segregation Principle)模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来
2022年04月03日
335 阅读
0 评论
0 点赞
2022-03-08
Windows安装ESP-IDF官方工具
官方文档ESP官方 在Windows上的安装流程已经非常完善了,但是ESP-IDF 工具安装器在国内由于一些众所周知的原因下载速度会比较慢下载ESP-IDF工具安装器ESP-IDF工具安装器 最好选择离线安装器,在线安装器安装的速度是真心慢(能科学上网的请自便)。如果安装工具下载太慢,可以使用我在阿里云盘提前下载好的,「esp-idf-tools-setup-offline-4.4.exe」https://www.aliyundrive.com/s/W1D4qpuJVSx 到2022/03/07 为止还是最新的4.4版本。离线安装开始的几个步骤一般都不会出现错误,一直往下就行。安装前检查,若出现错误可以使用应用修复,没错误继续下一步下载或使用ESP-IDF,第一次安装选择下载ESP-IDF就行,如果之前有安装使用过,要在先前的基础上安装就选择使用现有的ESP-IDF目录更改安装路径,C盘较大的可以忽略,若C盘空间不足一定要更改安装路径ESP-Tool会安装ESP在编译和烧录软件时必要的各种软件,和安装目录一样可以根据自己的需要修改路径ESP-IDF 工具安装器会下载 Github 发布版本中附带的一些工具,如果访问 Github 较为缓慢,可以选择使用Espressif,从而优先选择 Espressif 的下载服务器进行 Github 资源下载。个人感觉这里安装还是比较快的安装完成弹出的命令行不要关闭,等待安装完成后再关闭添加环境变量新建环境变量,可以为当前用户添加也可以添加到系统的环境变量中在Path中添加可以直接在Path中添加绝对路径,也可以新建一个变量,变量格式如下,在Path中将绝对路径中与变量值相同的部分用%IDF_PATH%代替变量名:IDF_PATH变量值:指定到安装目录下的Espressif(也可能是.espressif)在找到环境变量中的Path,打开并新建环境变量配置VScode在扩展中搜索ESP-IDF,选择红色图标那个安装安装好扩展后,按F1,输入esp-idf configure由于之前已经配置过,选择第三个:使用现有位置等待安装完成然后就可以USB连接ESP32芯片,再通过F1 输入new project创建自己的新项目
2022年03月08日
598 阅读
0 评论
0 点赞
2022-03-02
git简明使用教程
创建本地仓库git init · 将所在目录设置为git仓库git init -bare <文件名> 新建一个裸仓库拷贝远程仓库到本地git clone <链接> 拷贝仓库添加文件到版本库git add . 添加所有文件git add <文件名> 添加指定文件撤销文件添加git reset HEAD . 撤销所有文件添加git reset HEAD <文件名> 撤销添加指定文件git reset -mixed 文件退出暂存区,但修改保留文件提交到仓库git commit -m "提交的注释"查看提交git status远程仓库管理git remote add <版本库名> <链接> 添加远程版本库git remote remove <版本库名> 删除远程版本库推送到远程主机git push <版本库名> <远程分支名>
2022年03月02日
479 阅读
0 评论
0 点赞
2022-02-14
搭建一个个人的专属图床
什么是图床图床就是用来存放图片的空间,同时允许外链到其他网站。按照我自己的话来说,图床就是给自己的图片挂上一个链接,其他人能通过这个链接看到这张图片的一个服务器。为什么要搭建图床网站图片像我网站的背景图片、Logo、文章封面等等都是通过图床的链接实现的,当然也可以把这些图片放在站点的根目录下,通过文件绝对路径的方式来实现。还应该会有其他方法来实现,看个人自己的选择吧。Markdown很多人都应该听说过Markdown的大名。Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。Markdown在使用起来确实很方便,语法规则也比较少,随便学以下就可以很方便的编写自己的笔记之类的。但是,在我们写好自己的笔记分享给别人后却发现图片消失不见了;因为Markdown中粘贴进去的图片是以文件路径保存在自己的本地电脑上的,在别人电脑路径上没有这个文件就导致图片丢失。这时候图床就可以发挥重要作用了,由于此时的图片插入的是一个网址,只有这个网址对应的图片还在,图片就不会丢失。免费图床推荐SM.MS)免注册永久存储图片(图片不违法中国大陆和香港法律的前提下),可以直接选择文件进行上传,支持多种链接格式;虽然每天最多只能上传10次最大5MB的图片,但就稳定性和免费来说已经很不错了,如果每天写的内容较少图片也不多的情况下已经能够满足日常需求。ImgURL)国外老牌图床,图片存储稳定可靠,但由于是国外的国内访问速度并不可靠。路过图床](https://imgtu.com/))支持免注册上传图片,永久存储,支持HTTPS加密访问和调用图片,提供多种图片链接格式和SM.MS差不多。搭建一个自己的图床自己的图床掌控权在自己手中,没有大小和数量的限制,而且自建的才我们自己在用,访问速度会比免费的要快很多。但是自建图床也没没有那么简单,要一定的技术要求还要申请很多东西,而且自建并也需要有一定的花费,虽然每个月也就几毛钱,约等于白嫖了。如果嫌麻烦的话就老老实实用免费的吧。通过阿里云对象存储OSS搭建一个自己的图床阿里云最好有一个ICP备案过的域名没有的话也能用,但不能用CDN加速,CDN的流量是OSS的一半,会比较省钱。开通阿里云的对象存储:开通不要钱,要使用后才会产生费用开通OSS服务后,默认的付费方式为按量计费。针对部分计费项目,您也可以购买资源包(包年包月)进一步降低费用。OSS的使用费用每小时结算一次,计算公式为:费用=实际资源使用量×对应资源每小时单价。我直接购买了一个资源包,也不贵才一瓶饮料钱。创建Bucket名字可以随便取,不能和别人的重复。地区选离自己近的,要让别人也访问到权限要选公共读,其他的都不需要开通避免额外的费用支出绑定域名进入刚刚创建好的Bucket里面,找到传输管理展开后选择域名管理绑定自己的域名,这样以后就可以通过域名来访问到自己的图片。找到SSl证书,选择免费证书,给刚刚绑定的域名部署SSL证书再回到OSS域名管理处部署证书,如果上一步已经部署好了会有证书名称提示开启阿里云CDN加速增加资源站信息,选择OSS域名,在域名处会弹出自己的OSS域名。在域名管理处添加域名,根据官方提示添加域名解析。添加推荐配置,可以将时间设置得长一点创建专用用户把鼠标移动到阿里云账户上自己的头像,找到访问控制选择身份管理里面的用户,创建用户选择编程访问: 启用AccessKey ID和 Access Key Secret支持通过API或其他开发工具访问输入登录名称和显示名称,点击确认按钮。创建完成后用户信息只会出现一次,AccessKeySecret是无法找回的,要保存好上传图片到OSS,获取地址后测试是否可用。不成功的话,检查一下步骤。在Typora中使用图床安装PicGoPicGo](https://github.com/Molunerfinn/PicGo/releases)) 一个用于快速上传图片并获取图片 URL 链接的工具找到自己电脑的对应版本下载。添加阿里云OSSKeyID和设定KeySecret就是刚刚添加的新用户管理的其他的信息都可以在OSS管理界面看到设置Typora在Typora主界面左上角选择文件,找到偏好设置这样我们在用Typero写笔记文章的时候就可以自己上传图片了。由于这篇文章是我在搭好一段时间后才写的,有些关键图片没有截图保存,在自己尝试的时候如果有大问题可以在评论区留言,大家一起解决。
2022年02月14日
283 阅读
0 评论
0 点赞
1
2
3