关于Minecraft NBT的一些记录
偶然看到电脑里存的一份记录着Minecraft NBT用法的文本文档,干脆拿过来当文章了(恼 都有些啥? 在一个大的json里套了一堆东西,如果写TypeScript表示那更好,但可惜不想写(懒 大部分都是从minecraft fandom找的 附魔 Enchantments 1 2 3 4 5 6 { Enchantments:[ {id:"魔咒ID",lvl:#魔咒等级}, {id:"魔咒ID",lvl:#魔咒等级} ] } 类型: List 字段定义: 字段名 类型 意义 id String 魔咒的id lvl uint8_t(雾) 魔咒的等级 名称显示 display 1 2 3 4 5 6 7 { display:{ Name:"物品名称的JSON文本", color:"颜色代码", Lore:["第一行","第二行"] } } 类型: Object 字段定义: 字段名 类型 意义 Name String 物品名称的JSON文本 Color String with int 颜色代码 Lore List of String 物品描述 属性 AttributeModifiers 1 2 3 4 5 6 { AttributeModifiers:[ {AttributeName:"#",Name:"#",Amount:#,Operation:#,UUID:[I;#,#,#,#],Slot:#}, {AttributeName:"#",Name:"#",Amount:#,Operation:#,UUID:[I;#,#,#,#],Slot:#} ] } 类型: List...
FreeRTOS学习笔记 - API规范记录
❗ 注意 文章内容较长且多为字典用途,请结合上面的目录使用。 Ayala看b站UP主孤独的二进制的FreeRTOS教学视频有感,打算对视频内容进行一些总结和归纳,方便以后的使用,遂有此篇。 为什么要使用RTOS (Real-Time Operating System,RTOS)即实时操作系统,通常应用于嵌入式等对实时性要求较高的产品中,它会按照排序运行、管理系统资源,并为开发应用程序提供一致的基础。 实时操作系统与一般的操作系统相比,最大的特色就是“实时性”,如果有一个任务需要执行,实时操作系统会马上(在较短时间内)执行该任务,不会有较长的延时。这种特性保证了各个任务的及时执行。 FreeRTOS与Arduino框架的区别 在ESP32平台上,Arduino是运行在RTOS上的一个任务(Task),分为设置代码setup()和基础循环loop(),其在RTOS中的表示大概是这样的: 1 2 3 4 5 6 7 8 9 10 11 void task_arduino(void* ptParam) { setup() for (;;) { loop() } } void app_main() { xTaskCreatePinnedToCore(task_arduino,"arduino",1024*128,NULL,1,NULL,1) // 以上一条代码不需要管 } 而一个标准的Arduino的程序看起来是这样的: 1 2 3 4 5 6 void setup() { ... } void loop() { ... } 使用Arduino-ESP32这个库会将上述代码代入前一个代码,所以即便你可能用的是ArduinoIDE,但是实际上仍会被翻译成ESP-IDF项目,所以你可以在你的Arduino-ESP32项目中使用FreeRTOS。 FreeRTOS有什么API需要注意 💬 引用: b站 孤独的二进制:有相当部分的内容来自于此 ESP32文档和FreeRTOS的文档翻译:函数原型、参数、返回值等的描述 可能还有一些没标注到的,请在评论区联系我。 创建、删除任务,任务绑定核心 xTaskCreate 创建任务 1 2 3 4 5 6 7 8 BaseType_t xTaskCreate( TaskFunction_t pvTaskCode, const char * const pcName, configSTACK_DEPTH_TYPE usStackDepth, void *pvParameters, UBaseType_t uxPriority, TaskHandle_t *pxCreatedTask ); 参数 功能 注意点 pvTaskCode 任务函数 传入一个函数指针,函数需要一个空类型指针作为参数 pcName 任务名 传入一个字符串 usStackDepth 任务栈大小 即内存空间,一般的写法为1024*n(n为任务需求的内存大小) pvParameters 任务参数 使用空类型指针,可以传结构体指针,只要前面加上(void *)进行强制类型转换,但是在任务内部仍需转换回来 uxPriority 任务优先级 一般是0-24,24为最高优先级,如果高优先级任务不block或者暂停,那么低优先级任务永不执行 pxCreatedTask 任务句柄 用于控制这个任务,比如删除、暂停、设置优先级等 返回值 意义 pdPass 表示任务已经创建成功 errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY 表示无法创建任务,因为FreeRTOS没有足够的堆内存来分配任务数据结构和堆栈 xTaskCreatePinnedToCore 在指定核心上创建任务。...
Pytorch学习笔记 - 安装Anaconda&PyTorch
❗ 注意 这篇文章有部分尚未完成。 先看网址 PyTorch https://pytorch.org/ Anaconda https://www.anaconda.com/ PyCharm (可选) https://www.jetbrains.com/pycharm/ 本站不提供镜像 安装思路 Anaconda是一个Python发行版,使用Anaconda做环境分隔可以解决很多环境干扰问题(不搞base环境的话基本上没啥大问题),我们将在Anaconda创建一个虚拟环境,然后在这个虚拟环境上安装PyTorch,并测试这个PyTorch环境。 安装步骤 step 1 下载并安装Anaconda 打开Anaconda网站,并点击“Download”, 可能会下的有点慢,可以选择使用迅雷加速 下载完成后双击安装包安装 接下来一路Next->I Agree->Next->Next ▲ 应该没人用多用户吧(比如跑在服务器上 接下来这一步有两个选项,不够我在这里给个小建议,当然你们也可以根据实际情况自己选择: 当你电脑里没有Python:建议全选 当你电脑里有python,但版本号与选项2给出的版本不一致:建议全选 当你电脑里有Python,但版本号与选项2给出的版本一致:建议只选第一项 当然你可以都不选(建议电脑里面没有预先安装的Python),在后期自己添加环境变量(详见教程ep 1,请记住上一步的安装位置) 查看python版本号,在这里只看前两位: 1 python -V # Python 3.9.7 选好之后点击Install,然后就是Next->Next->Finish 接下来弹出一个PyCharm的广告,虽然我自己用的VS Code,不过PyCharm社区版免费,也挺好用的,何乐而不为呢? 接下来两个勾勾都取消然后就可以Finish啦。 step 2 创建并配置conda环境 当Anaconda被正确安装之后,首先打开你的命令行软件(CMD或者PowerShell),我们需要执行conda init命令来应用环境。 1 $ conda init 接下来我们创建一个名为torch的环境,使用Python3.9 1 $ conda create -n torch python=3.9 使用这条指令创建的环境将只包含一些基础且必须的包(比如pip等),如果你需要额外安装其他的东西(比如numpy或者jupyter等),你需要在命令的末尾添加anaconda,这里我们并不需要这么做。 在执行过程中可能需要联网下载一些文件,速度比较慢的话请耐心等待。 接着我们激活这个环境,当显示以下图片即意味着conda环境创建成功了 1 $ conda activate torch 常用conda指令见ep 3...
利用牛顿法求解开方
1.思路 给定一个数x,求解x的开方,取半值逐渐逼近。 GoLang 1 2 3 4 5 6 7 func Sqrt(x float64) float64 { z := x / 2 // 猜测值 for i := 0; i < 10; i++ { z -= (z*z - x) / (2 * z) // 逐渐逼近 } return z } Python 1 2 3 4 5 def Sqrt(x: float) -> float: z = x/2 for i in range(10): z -= (z*z - x)/(2 * z) return z
MATLAB 小笔记
基本 变量域与格式 清理工作区变量:clear、清理命令行窗口:clc。 调整输出格式: 1 format [style] 其中style有: style 描述 rat 以分数形式输出 compact 以紧凑型格式输出 short 以四位小数输出 long 输出较长的小数位 shortEng 以科学计数法输出较短小数 longEng 以科学计数法输出较长小数 hex 以 16 进制数输出 输入输出 函数名 用法示例 描述 disp() disp(String) 显示一段文字 fprintf() fprintf(formated string{,data}) 格式输出(字面意思) print() print(Target,data) 向Target展示data(不常用) 逻辑运算 判断语句: 1 2 3 4 5 6 7 if (条件语句) 运算式 elseif (条件语句2) 运算式2 else 运算式3 end for 循环: 1 2 3 4 5 6 7 8 for 变数 = 矩阵 运算式 end % 等差数列 for i = 1:6 disp(i) % 逐行输出 1 2 3 4 5 6 end while 循环:...
2020-bilibili-sec1024
本记录由 TePuint Club 赞助完成,原始链接:GitHub ❗ 注意 如果你没有达到70分请不要往下查看 活动地址:sec1024 第一题 - 页面的背后是什么? 打开DevTool审查元素,在<input>中找到data 第二题 - 真正的秘密只有特殊的设备才能看到 修改浏览器的User-Agent为 bilibili Security Browser,然后刷新网页,就可以看到flag了。 第三题 - 密码是啥? 就是弱口令,完全靠猜,用户名 admin ,密码 bilibili 。 或者直接在Console中输入: 1 2 3 4 5 6 7 8 9 10 11 12 13 $.ajax({ url: "api/ctf/3", type: "post", contentType: "application/json", dataType: "json", data: JSON.stringify({ username: "admin", passwd: "bilibili", }), success: function (data) { console.log(data.data) } }) 第四题 - 对不起,权限不足~ cookies中 role 对应的值为user的MD5,所以将这个值改为 Administrator 的MD5,即 7b7bc2512ee1fedcd76bdc68926d4f7b ,然后刷新网页,就可以看到flag了。...
图鉴日图 - 我制作了一些(一个)方便web使用的API
❗ 警告 由于小站于近期更新,导致部分或全部功能无法使用,将会陆续恢复,特此告知。 前言 刚创建网站时,我看着我选择的首页大图,如果一成不变,那固然会让人索然乏味,于是我打算随机的获取一张美图。一开始,我瞄上了必应日图,但是苦于没有制作API方面的知识,只能单纯的下载一张图片放上去,久而久之甚是疲惫。后来我在网上也找到一些相关的API,但是它们的访问速度都太慢,小蒋(没错,又是他)就推荐我来到了图鉴的开发组,经过我的了解,他们并没有可以直接获取随机图片的API,我又需要使用他们的接口二次开发,于是这个项目又不了了之。 今年夏天,我自学了一点C#,参与到了图鉴的开发当中,制作了一个还不错的桌面版图鉴的内核,也了解到了不少API调用方面的知识。于是,我便打算重新开始这个项目。 关于图鉴 图鉴日图(Dailypics)是一个人工精选日图的壁纸软件。每天清晨,从用户上传图片中选出两张作为今日日图,小而不杂。 在酷安上查看: API文档 随机选图 GET https://papernote.cn/dpic/random.php Args: type : *图片类型 “pc/mobile” raw : *是否以代理方式返回图片,false时会返回一个301 type参数可以指定“pc”或者“mobile”来输出适合指定设备浏览的图片,当不指定或者选择了错误的选项,则返回完全随机的图片。 raw选项决定返回的是重定向还是图片,当raw=true时,则返回一张图片,反之,则重定向到图鉴的图床服务器,该参数默认为false。 调用示例: https://papernote.cn/dpic/random.php?type=pc&raw=true https://papernote.cn/dpic/random.php?type=mobile&raw=true https://papernote.cn/dpic/random.php?type=pc https://papernote.cn/dpic/random.php?raw=true https://papernote.cn/dpic/random.php 搜索图片 ❗ 注意 最近CDN有些抽风,有些样式炸了,呜呜呜。 搜索图片的话我直接制作了一个网页版,图鉴自带的API我就不放出来了。传送门(API) (话说官网的搜索什么时候更新啊喂) 没事没事,自己写个假的压压惊。 根据PID获取指定图片(高级功能,需有能力获取PID) 这目前是我个人拿来做图床的功能,以后会在搜索图片中添加图片的详细信息。 来自未来的Ayala:这个做了,但是效果不好于是没拿出来 注意事项 接口调用 1M的小水管,如果实在嫌太慢,就不要打开raw开关了亲。如果因为跨域(无论是本域名还是图床域名)而无法访问,请在评论区联系我,我将在第一时间解决。 图源免责 图片来自图鉴用户的投稿,与图鉴(Dailypics)和本站(papernote.cn)无关,若用户的行为侵犯了著作权人的合法权利,请联系:Chimon@Chimon.me,我们将第一时间解决。 为爱发电 图鉴的制作人也挺辛苦的,欢迎你们为Createlite发电!
从Batch到JAVA Script,NowChat的脱胎换骨之路!
❗ 警告 由于小站于近期更新,导致部分或全部功能无法使用,将会陆续恢复,特此告知。 前传: 点击这里,查看首发帖。 2018-08-14 21:20 NowChat Batch Edition正式在百度bat吧公布 2018-08-14 21:31 与吴先森交涉,决定使用自己的服务器 2018-08-14 21:37 用户登陆的种种设想均已完备 2018-08-14 21:53 决定使用GardensKernel进行聊天室开发 2018-08-15 12:02 登陆部分完成 2018-08-15 18:15 对所有的错误指定了错误页 2018-08-15 18:22 更新了账号生成的规则,添加了密码保护 2018-08-18 23:45 完成公共聊天室 某年月日 GK开发到可以使用,准备让NowChat接轨 某年月日 NowChat接轨完成,拥有较完美的GUI 某年月日 为NowChat开发了一些GK专有模块 某年月日 我的硬盘第一次炸 某年月日 我开学了 某年月日 2020年寒假,我重装了系统,但GK和NC开始鸽了 某年月日 我的系统又一次炸,当天重装系统后心血来潮更新NC,但是排版爆炸 2020-02-15 我通过Magic方法找到了Goeasy,正式开始了NC web的开发 2020-02-17 NowChat Web Edition第一个预览版开发完成 正文: CMD版NowChat为什么弃坑? 这是最后一个CMD版本的NowChat,因为高三的缘故鸽了半年,在之前的帖子中rain提到,我正在开发其他东西,而这“东西”,正是“Gardens Kernel”(以下简称 GK),开发GK的初衷是简化复杂bat项目的构建,而GK正拥有这些特性: 标准ini的读取 众多的模块(包括对第三方的调用) 完整的外部调用能力(调用里面的模块,并且返回) 好用的Debug系统 windows平台统一化 随着GK开发进度的推进,终于迎来了在TE内部的测试,但是测试结果不太理想,三个演示demo中最重要的那个出现了问题,而这问题只有在我的电脑上才正常,测试结果表明,在我的CMD中,没有字符间距,而其他人那里均出现夸张的排版问题,于是GK的开发便告一段落(其实是我自愧不如山归山的“batchhander”)。 后来在我某次重装系统过后,我再一次打开了NowChat,排版问题出现了: 这可能是导致NowChat工程项目再一次搁浅的间接原因,还有一部分原因是因为学业繁忙。 WEB版NowChat,NC的春天? 不过没想到今年的寒假会那么的长,于是我便开发了NowChat的WEB版,不过这个WEB版只经历了三天左右的开发周期,经由TE和init的内部测试,尚且有许多bug(比如说网页劫持啊,登陆故障啊,移动设备兼容啊等等)。 开发过程中,我依然采用MDUI作为网页框架 ,而网络部分使用了基于WebSocket的Goeasy(话说回来,Goeasy开发聊天室是真的方便!),至于排版,emmmmm……不喜勿喷!我最终的目标是在小屏设备上,这个聊天室可以撑满整个页面,目前宽度已做了响应式,但是影响原先排版,高度打算让js来,但如果MDUI有原生解决方案就最好了。...