这里是:webpack插件 vuecli-electron-bytenode-webpack-plugin 中文文档。
1 简介1.1 背景介绍随着electron框架的广泛应用,应用程序的安全性和性能正在逐渐受到重视。把js文件编译成字节码,不仅使得逆向分析难以进行,也可以省去V8的字节码编译步骤,可能带来一定的加载性能提升。
vuecli3-electron-bytenode-webpack-plugin是一个发布在npm和yarn上的webpack插件,致力于在构建流程中自动且可靠地进行上述工作,受到electron-bytenode-webpack-plugin的启发。我在其基础上增加了对vue-cli的支持,以及更多、更灵活的配置项,使得开发者可以根据自己的需求进行定制。
1.2 适用条件以下条件同时满足,是本插件可以正常发挥作用的充分不必要条件:
最终代码运行环境:Electron,且渲染进程开启了Node.js环境集成
构建工具:Webpack
脚手架:Vue-cli
1.3 为什么我要开发这个插件?虽然已经有了electron-bytenode-web ...
最近正在入门stm32开发,进行一个简单的蓝牙图片显示终端和温湿度计搭建,在这期间碰到了不少有意思的事情,遂分享之。(进入大学之后,可支配的时间比高中多了不少,我也有更多的精力可以放在自己的爱好上了。)
1 软硬件概况
主控:STM32f103c8t6, 72MHz, ARM-Cortex M3内核,使用一块32.768的晶振作为HSE
片上系统:FreeRTOS v11
液晶显示屏:128 * 128 TFT屏,由st7735s驱动,走SPI协议
温湿度传感器:AHT20,走I2C协议
蓝牙模块:DX-BT24,UART串口
开发环境:HAL库,Keil v5,cmsis接口
2 湿度传感器模块原理和代码AHT20通过探测聚合物的水合程度来测量相对湿度(即绝对湿度与当前环境温度下水蒸气达到饱和的绝对湿度之比)。
传感器总线I2C通信协议时序:
ATH20的主机与从机通讯命令格式:
响应数据的第7字节为CRC校验数据,在不追求数据准确性的情况下可以直接忽略。Data0到Data2为湿度数据,Data2到Data4为温度数据,解析出来的数据值均为uint32_t。注意Data ...
1 项目简介1.1 项目简介「隐域」(英文名Gcrypt)是一款数据加密软件,简单易用,能够较好地保护那些你不想让外界得知的数据。涉及到加密的核心部分基于nodejs的crypto模块,软件的GUI则基于Electron+Vue。目前还只是一个仅供我自己使用的小项目,代码量在1.1w行左右,大部分代码在我高中时期完成。一个典型的加密库至少包含entry.json文件作为入口点。
1.2 项目起因高中阶段,我有一批涉及隐私的数据急需加密存放。我曾经考虑过veracrypt这一成熟的解决方案,但是其创建的加密卷是单文件(也许是考虑到安全性吧),不利于坚果云这类同步软件进行同步与备份。在一番思考下,我决定使用自己熟悉的技术去从头开发一款类似的数据加密软件,勉强能用即可,同时还能够拓展我的技术栈、提升我的技术熟练度。因此,「隐域」项目就在这一天诞生了。
2 项目分析2.1 项目文件结构隐域的项目文件结构严格遵守electron-vue模式。
components目录下存储用于构建用户界面的各类组件,包括高性能虚拟列表、顶部基础工具栏(由每个需要使用工具栏的父组件独立维护,当需要全局模态时,通 ...
前言🚧🚧🚧施工注意:本文尚未完成,作者正在努力填坑🚧🚧🚧
Minecraft是一款非常优秀的沙盒游戏,作为一名练习时长七年半的老玩家,笔者不仅见证了它的无数次迭代,也从最开始的萌新玩家成长为这款游戏的原理的研究者。
本文旨在从区块加载、地形生成、3D渲染、游戏机制、资源管控、数学运算等方面盘点Java版Minecraft中为了提升游戏性能而曾经采取的优化措施及其原理(除了官方优化之外,还包括optifine、foamfix、lithium等第三方优化mod)。
阅读本文前,你需要掌握:
较为完整的Minecraft游戏经验
一定的计算机知识(计算机语言、算法、数据结构、计算机组成原理等),够用就行
了解Minecraft基本技术概念,如:游戏刻、区块、实体、Client/Server模型、NBT数据格式
本文中出现的所有Minecraft源码仅供学习交流使用,取自Java版1.12.2和1.14.4,前者使用mcp提供的映射表反编译而来,后者使用官方map获得。所有源码在反编译的基础上已经过本人的适度修改,以确保和原版不同。
修订记录
2023.8.5 ...
✨简介隐域(又名Gcrypt)是我高中时期做的项目。总的来说,隐域是一个基于OpenSSL的数据加密软件,用来加密和存放那些你觉得应该加密的文件。
在隐域,你的数据通过”加密库”来统一管理。比如,如果你想加密电脑上的若干文件和文件夹,你只需要创建一个带密码的加密库,再将文件直接拖入。
与VMWare虚拟机的虚拟磁盘文件类似,一个加密库对应物理硬盘上一个.gcrypt文件,但在这个文件中可以包含上万数量的加密文件。这极大方便了网盘传输和数据的搬迁。为此,我专门实现了一个基于链式文件分配树技术的内建文件系统,用于操作加密库。核心代码位于/src/api/core下。为了应对可能出现的复杂文件树结构,我还为文件系统实现了一个粗陋的LRU缓存。
该项目使用electron+TS+vue3全家桶开发。⌨️项目源代码全部代码:https://github.com/g122622/gcrypt
windows版安装包下载:https://github.com/g122622/gcrypt/releases/download/v2.1.1/gcrypt-.Setup.2. ...
最近想用Electron给知乎做一个电脑端App,使用到了Vuetify组件库
项目组成:
应用框架Electron v13
响应式框架Vue3
状态管理Vuex
事件总线Mitt
TypeScript+JavaScript混编
vue-cli
electron-bulider
Webpack 5
NodeJs v14.18.1
但是按照官方文档的步骤将Vuetify add到了项目中之后,webpack编译无法进行(直接卡在了最开始的时候),并且之后我手动去掉相关import Vuetify的代码,还是给我如图的错误。
↓尝试重新安装Vuetify 提示我不能覆盖安装
解决问题大概分析了一下:初次安装vuetify时我选择安装了nightly bulid,怀疑是这个选择安装的nightly bulid引起module缺失,因此我想重新安装vuetify的3.0.0-beta版本来覆盖掉这个nightly bulid版本。
重新安装并不顺利,vue-cli由于检测到nightly-build而拒绝安装3.0.0-beta。
既然覆盖的路走不通,于是决定卸掉vuetify重装。
...
前言:utools
utools是基于electron和react构建的快捷工具箱,我也推荐大家使用这款软件来提一提使用电脑的效率和体验。本着学习的目的,我想研究一下这款软件的运行机制,特别是插件加载相关内容。
修改main.js的几个字符
由于是商业软件,utools并不开源,我只能拿到被构建工具压缩后的版本。但是通过asar解包和代码格式化,修改main.js的几个字符即可让utools认为自己处于开发模式,让我们能够随时打开devtools一探它的奥秘。
一、模版插件的运行需要借助的内容:
1.plugin由一个子窗口单独显示:electron官网对创建子窗口部分的api描述如下:
Parent and child windows
By using parent option, you can create child windows:
123456const { BrowserWindow } = require('electron')const top = new BrowserWindow()const child = new Br ...
1.性能优化类(两篇都是字节的文章)
借助lighthouse进行页面性能优化mp.weixin.qq.com/s/12Xppi2LCXddRWy9Mjw43Q
输入url到页面展示完整过程,覆盖点全面mp.weixin.qq.com/s/wJxj5QbOHwH9cKmqU5eSQw
2.新的css特性
虽然近些年 CSS 变化很快,但我认为 2021 年是 CSS 的元年。在即将过去的 2021 年,CSS 变化非常地大,其中新增了很多特性,比如 CSS 容器查询、CSS 父选择器、CSS 层叠控制规则、CSS 子网格等等。而且这些特性已经在个别,甚至是在大部分主流浏览器已经可以看到了。 几大主流浏览器(Chrome、Firefox、Safari和Edge)还专注于修复浏览器兼容性痛点,让 Web 开发者的工作变得更轻松。
2022:zhuanlan.zhihu.com/p/452468980
3.趣闻集锦2021年7月,B站瘫痪在了寥寥数行lua代码激起的千层波澜下
www.bilibili.com/read/c ...
总述
REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。–wiki
最近阅读了redis的部分源代码,这里是我初读时的一些笔记和感受。应该会随着时间不断更新。
1.哈希表的自动扩容Redis用变量dict_can_resize记录哈希是否可以自动扩容,由两个方法 dictEnableResize()和dictDisableResize()设置该变量。
dictExpand()进行扩容时,会先选择一个满足size需求的2的指数,然后分配内存空间,创建新的哈希表。
这与C++ STL中的vector扩 ...
1.第一天的一道题
答案里求解时取了一个完整实心柱体来列方程,得到了一个一阶微分方程。
但是,我以一个薄圆柱壳来列方程,得到的是二阶微分方程。
我觉得我的过程并没有什么问题,因为《难题集萃》上有道类似题也是像我这样得到的是二阶微分方程。
2.在太空中,水会漂浮成为一个水球。不用量纲分析,求施加微扰后水球振动频率。(某届复赛题)
我尝试使用能量法来解,表面能可以勉强写出来,但是动能真的不知道怎么写
3.源自日本某学校自主招生题:如图一,杆ab斜靠在墙角,其受重力而倒下。已知初始oab=30度,逐渐倒下时当oab为60度时,求杆扫过的面积(如图二,很诡异的图形)
仔细观察,你会发现图形的上边界是有弧度的,如果角度变化的夸张些,上边界会变成下面这样子:
4.一个质量为m的均匀圆柱的底面始终与地面接触,初始时质心以v速度平动,且圆柱绕轴以Ω角速度转动。已知重力加速度g和摩擦系数μ。求圆柱底面所受滑动摩擦力的合力大小与方向。(列式子后不知道怎么解)
5.两个圆环如图对称放置,求二者引力大小
6.一道争议题,第三问提供了两种做法,答案不同
做法一
做法二
可以解释一下为什么 ...