- 博客(212)
- 资源 (2)
- 收藏
- 关注

原创 2023 electron最新最简版windows、mac打包、自动升级详解
这里我将讲解一下从0搭建一个electron最简版架子,以及如何实现打包自动化更新之前我有写过两篇文章关于electron框架概述以及 常用api的使用,感兴趣的同学可以看看。
2023-11-05 18:54:47
6582
4

原创 nodejs 高级编程-通信
利用一些 node 内置的核心模块,配合着一些第三方工具包,实现自己的命令行工具,使可以调用相应的命令,在指定的目录下来启动一个 web 服务,接着就可以使用浏览器来访问当前目录下的所有静态资源。已经存在的 serve 工具的操作是如果我们访问的是一个目录,它就会把它下边的所有资源名称展示出来,放在浏览器所对应的界面当中进行显示,这里也这样操作。这里的主要逻辑都放在 main.js 里在www.js 里直接引入就行,也可以直接放在 www.js 里,比较臃肿就不便于维护了。明确目标主机IP地址。
2023-07-10 19:34:08
1118
2

原创 nodejs高级编程-核心模块
01 打开 a 文件,利用 read 将数据保存到 buffer 暂存起来* 02 打开 b 文件,利用 write 将 buffer 中数据写入到 b 文件中*/ let buf = Buffer . alloc(10) // 01 打开指定的文件 /* fs.open('a.txt', 'r', (err, rfd) => {// 03 打开 b 文件,用于执行数据写入操作// 02 从打开的文件中读取数据// 04 将 buffer 中的数据写入到 b.txt 当中。
2023-07-10 19:33:39
386

原创 vscode多语言实现原理
vscode是默认显示英文,如何使其默认显示中文?跟踪了一段时间其代码,这里做下总结。传统前端 App 多语言最简单的实现可以由一套响应式数据流管理系统来托管多语言文案,切换语言时通过数据流的变化使得界面根据文案重新渲染。但由于 VS Code 架构的复杂性,需要有一套能兼容 Electron 渲染窗口(Chromium)及 Node.js 进程的多语言方案。
2023-07-04 16:34:08
1344

原创 vscode 插件系统的运行机制!
经过处理后的最终数据格式} ... // 点击执行事件 override async run() : Promise < any > {if(!return;// 这里下载 const extension = await this . install(this . extension);
2023-07-01 22:18:29
1928
原创 鸿蒙开发-HMS Kit能力集(地图服务、华为支付服务)
Map Kit(地图服务)是鸿蒙生态下的一个地图服务,为开发者提供强大而便捷的地图能力,助力全球开发者实现个性化地图呈现、地图搜索和路线规划等功能,轻松完成地图构建工作。Map Kit提供了千万级别的 Poi(Point of Interest,兴趣点)。在地图表达中,一个 Poi 可代表一家商铺、一栋办公楼、一处景点等等。Map Kit在Poi和路网信息展示方面,根据Poi属性信息及区域路网差异,在不同层级比例尺条件下,为用户展示更合适的Poi和路网信息。
2024-12-02 22:03:33
1467
原创 鸿蒙开发-HMS Kit能力集(位置服务、扫码服务、游戏登录)
自定义界面扫码需要申请相机权限,确保应用拥有访问相机的权限。在“module.json5”文件中配置允许使用相机扫码的权限“ohos.permission.CAMERA”,该权限授权方式为“user_grant”,在配置权限时需要描述申请权限原因reason和调用时机usedScene。...// CustomPage.ets 其他方法参见源代码// 自定义界面扫码参数scanTypes: [scanCore.ScanType.ALL], // 扫码类型,可选参数。
2024-12-01 13:27:22
965
原创 鸿蒙开发-ArkWeb
/ 构造响应数据})''缓存管理在移动应用中起着重要的作用。提升性能:将已访问过的页面、资源等保存在本地,下次加载同样内容直接从本地缓存获取。离线访问:无网也可访问之前看过的页面或资源。节省流量:减少联网依赖,对于网络条件差或流量限制下很重要。Default : 优先使用未过期的缓存,否则从网络获取None : 加载资源使用cache,如果缓存中无该资源则从网络中获取Online : 在线模式Only :离线模式build() {Column() {
2024-11-30 15:59:23
673
原创 鸿蒙开发-应用通知与提醒、axios
旨在让用户以合适的方式及时获得有用的新消息,帮助用户高效地处理任务。应用可发送通知消息,用户在通知栏能查看通知内容,也可点击来打开应用。在发出通知后,使用您之前使用的相同通知ID,再次调用notificationManager.publish来实现通知的更新。如果之前的通知是关闭的,将会创建新通知。将不同类型的通知分为不同的组,以便用户可以更好的管理他们。当同组的通知有多条的时候,会自动折叠起来,避免通知比较多的时候,通知界面比较杂乱,例如当通知栏里有聊天消息通知和商品推荐通知时,我们只需要通过设置字段
2024-11-30 15:58:25
847
原创 鸿蒙开发-文件与分享
用户文件:所有者是登录到该终端设备的用户,包括用户私有的图片、视频、音频、文档等。系统文件:与应用和用户无关的其他文件,包括公共库、设备文件、系统资源文件等。应用文件:所有者为应用,包括应用安装文件、应用资源文件、应用缓存文件等。应用场景:应用A主动分享文件给应用B,应用B完成文件接收。应用沙箱(虚拟目录,仅应用自己可见)
2024-11-23 22:50:37
433
原创 鸿蒙开发-音视频
可通过AVRecorder的state属性,获取当前状态或使用on(‘stateChange’)方法监听状态变化。开发过程中应该严格遵循状态机要求,例如只能在started状态下调用pause(),只能在paused状态下调用resume()。配置播放参数PlayParameters,并调用play方法播放音频。on(‘loadComplete’)方法,用于监听“资源加载完成”on(‘playFinished’)方法,用于监听“播放完成”on(‘error’)方法,设置错误类型监听。
2024-11-23 12:26:33
1263
1
原创 鸿蒙开发-网络数据访问、应用本地数据保存
用户首选项为应用提供Key-Value键值型的数据存储能力,支持应用持久化轻量级数据,并对其进行增删除改查等。该存储对象中的数据会被缓存在内存中,因此它可以获得更快的存取速度,下面详细介绍下用户首选项的开发过程。常用接口有:保存数据(put)、获取数据(get)、是否包含指定的key(has)、数据持久化(flush)、删除数据(delete)等,后面依次详细介绍接口使用。
2024-11-16 12:44:58
725
原创 鸿蒙-构建更丰富的高级页面
组件内状态: @State子组件接收父组件传播的状态: @Prop子组件接收父组件状态,但可以反馈更改:@Link组件不向特定的子孙组件提供状态:@Provide,子孙接受:@Consume深层属性观察:@Observed / @ObjectLink。
2024-11-16 10:42:19
163
原创 鸿蒙UIAbility
UIAbility 是 HarmonyOS 中一种包含 UI 界面的应用组件,主要用于与用户进行交互。它也是系统调度的基本单元,为应用提供绘制界面的窗口。一个 UIAbility 组件中可以通过多个页面来实现一个功能模块。每一个 UIAbility 组件实例,都对应于一个最近任务列表中的任务。因此,对于开发者而言,可以根据具体的场景选择单个或多个 UIAbility。
2024-11-13 11:52:04
1116
原创 鸿蒙开发基础入门
ArkTS是为构建高性能应用设计的编程语言,语法继承TypeScript,并进行了优化,拥有更强的类型约束ArkTS提供了声明式UI范式,符合移动开发的最新趋势ArkTS摒弃了部分影响运行时的性能的语法,比如Any。取而代之的是显式类型定义或类型推断ArkTS提供了更强的并发编程能力ArkTS兼容JS/TS三方库当界面中有相同结构的模块时,可以封装成一个独立组件。比如每一行代办事项都是由一张图片和一个文本组成。自定义组件用@Component装饰器来声明。
2024-11-10 22:15:23
1056
原创 python学习12 - 大模型提示词-编写 Prompt 的原则1
你应该通过提供尽可能清晰和具体的指令来表达您希望模型执行的操作。这将引导模型给出正确的输出,并减少你得到无关或不正确响应的可能。编写清晰的指令不意味着简短的指令,因为在许多情况下,更长的提示实际上更清晰且提供了更多上下文,这实际上可能导致更详细更相关的输出。
2024-09-21 14:43:54
1602
原创 python学习12-transformer1
这个过程展示了从基于规则的系统到统计方法,再到深度学习和最终的Transformer模型的逐步演进。Transformer的创新在于其能力处理长距离依赖关系,以及高效地在大规模数据集上进行训练,使其成为当今自然语言处理的核心技术。自然语言处理(NLP)的发展经历了多个重要的阶段,直到最终演变成如今广泛使用的Transformer模型。token_type_ids,默认通常全为0,如果要处理2个句子输入,可能会将第一句的token对应为0,第二句对应为1。
2024-09-16 10:47:56
713
原创 python学习11-Pytorch张量与数据处理1
LaTex表达式是一种简单的、常见的一种数学公式表达形式,在很多地方都有出现,相信正在看博客的你会深有体会,LaTex表达式不难,甚至说很简单,但是对于没有没有接触过得小伙伴来说,会非常费脑,复杂的表达式到底该如何书写呢?在此需要注意的是:LaTex表达式默认的是 “ _ ” “ ^ ” 之后的一位才是上下标的内容,对于超过一个字母的上下标需要使用 { } 将它括起来,比如。就是它的LaTex表达式,同样的对于需要下标的同样使用下划线表示 “ _ ” , 对于多个字符组成的需要添加 { } 将其包括。
2024-09-07 16:11:17
909
原创 python学习11-Pytorch环境安装与模型搭建
CUDA(Compute Unified Device Architecture)是一种并行计算平台和编程模型,旨在利用 NVIDIA GPU(图形处理单元)的强大并行计算能力。它允许开发者使用 GPU 进行通用目的的高性能计算,而不仅仅是图形渲染。为什么要使用 CUDA?使用 CUDA 有以下几个优点:并行计算: GPU 具有大量的处理单元和内存带宽,适用于处理大规模的并行计算任务,如深度学习的神经网络训练。加速深度学习: 深度学习中的大多数计算操作都可以受益于 CUDA 的并行性。
2024-09-01 22:30:04
2150
2
原创 python学习10-机器学习了解
机器学习(Machine Learning)是一种人工智能的分支,它使计算机系统能够通过学习和经验改进性能,而不必进行显式的编程。机器学习的目标是使计算机系统具备从数据中提取模式、进行预测和做出决策的能力,而无需显式地编写规则。机器学习的核心思想是通过训练模型来实现任务。训练模型意味着使用输入数据和相关的标签(或答案)来调整模型的参数,以便模型能够准确地对新数据进行预测。这种学习过程可以分为监督学习、无监督学习和强化学习等不同类型。
2024-08-26 15:35:53
1077
原创 python学习8-数据获取与整理4
本文将详细讲解Pandas中与时间和日期相关的知识点,包括时间戳的处理、日期的格式化、时间序列的生成与分析等。级联操作是指将一系列的操作按顺序应用到数据集上,并且每个操作的结果都会被保留下来,作为下一步操作的输入。在上面的示例中,我们首先创建了一个数据集df,然后使用groupby(‘Category’)将数据按照"Category"列进行分组,然后使用sum()函数对"Value"列进行求和操作。然后,通过直接相减,可以得到两个时间点之间的时间差,结果将存储在timedelta类型的变量中。
2024-08-25 22:12:58
1103
原创 python学习7-数据获取与整理3
在Pandas中,重建索引(reindexing)是指根据新的索引对原始DataFrame或Series的数据进行重新排列的过程。这个过程对于数据的清洗和准备是非常有用的,特别是在你希望对数据集的索引顺序进行改变或者将两个不同索引的数据集合并时。默认情况下,rank() 为元素分配平均排名,但你可以修改方法来使用不同的排名策略,例如最小排名、最大排名等。这里可以看到,根据新索引重建后,原来索引中的行保持了它们的数据,而新引入的索引’label’(如’d’)的行被填充了NaN。这对于元素级的操作非常有用。
2024-08-25 21:05:47
1052
原创 python学习6-数据获取与整理2
一个轴是数组的一个维度,在 NumPy 中,每个轴都有一个关联的整数索引,从 0 开始。在NumPy中,添加和删除数组元素通常不如在Python原生的数据结构(如列表)中那么自由,因为NumPy的数组是固定大小的。umPy(Numerical Python的缩写)是Python中用于科学计算的基础包之一,它提供了大量的数学函数来对数组进行操作。NumPy 提供了一系列的字符串函数,这些函数可以对数组中的字符串元素进行向量化操作。在 NumPy 中,可以使用多种方式对数组中的每个元素进行平方操作。
2024-08-25 14:05:02
610
原创 python学习6-数据获取与整理1
它包含了一个强大的N维数组对象ndarray,提供了矩阵运算的功能,也包含了许多高级的数值编程工具,如:矩阵数据类型、高效的元素级数组运算以及用于整合C/C++和Fortran代码的工具等。所以,点积是一对一对元素相乘然后加起来,而矩阵乘法是矩阵的每一行与另一个矩阵的每一列做点积,最后得到一个新的矩阵。假设你不仅买了苹果和香蕉,还买了橘子,价格分别是2元、3元和4元。这里的结果 [23, 16, 6] 表示你的总花费是23元,你的第一个朋友的总花费是16元,你的第二个朋友的总花费是6元。
2024-08-25 10:54:31
923
原创 python学习5
读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。Pickle的问题和所有其他编程语言特有的序列化问题一样,就是它只能用于Python,并且可能不同版本的Python彼此都不兼容,因此,只能用Pickle保存那些不重要的数据,不能成功地反序列化也没关系。
2024-08-20 18:20:41
949
原创 Python学习4
这是因为调用s.birth时,首先转换为方法调用,在执行return self.birth时,又视为访问self的属性,于是又转换为方法调用,造成无限递归,最终导致栈溢出报错RecursionError。所以,简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。@property广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。
2024-08-18 19:47:26
832
原创 Python学习3
set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用。语句什么都不做,那有什么用?
2024-08-17 15:49:05
725
原创 Python学习2
函数主要有 file 和 mode 两个参数,其中 file 为需要读写文件的路径。三个引号的情况不太常见,但是它在一些场合有特定的作用(如函数文档 doc-strings)函数会返回一个 文件对象。函数用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数。w 模式会覆盖之前的文件。如果你想在文件后面追加内容,可以使用 a 模式操作。注意每次操作结束后,及时通过 close( ) 方法关闭文件。不同模式下返回的文件对象功能也会不同。用切片来获取字符串的一部分。
2024-08-04 17:29:57
281
原创 Python学习1
Python由 荷兰数学和 计算机科学研究学会的 吉多·范罗苏姆于1990年代初设计,作为一门叫做 ABC语言的替代品。Python提供了高效的高级 数据结构,还能简单有效地 面向对象编程。Python 语法和动态类型,以及 解释型语言的本质,使它成为多数平台上写 脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、 大型项目的开发。简介Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。——
2024-08-04 12:35:05
1100
原创 AI应用开发前景与目标
AIGC最基本的能力是生成内容,包括文本、图像、视频、代码、3D内容或者几种媒介类型转换组合形成的“多模态内容”。生成算法、预训练模型、多模态等技术累积融合,以及深度模型方面的技术创新,共同催生了AIGC的大爆发。AGC是相对于过去的PGC、UGC、AUGC而提出的。过去的传统A偏向于分析能力,基于已有内容;现在的A基于训练数据和生成算法模型,可以自主生成各种形式的内容和数据。2022年,AIGC(A-Generated Content,人工智能生成内容)爆火出圈。
2024-08-03 17:08:34
770
原创 Nuxt3+Vue3(Composition API)+TS+Vite+Ant Design Vue 搭建
最近官网搭建选择了nuxtjs,由于框架更新了,其中语法也有很多变化,中间遇到了一些问题点做下总结。
2024-02-16 13:05:22
3420
原创 threejs(18) - 地图模型加载
GeoJSON对象的坐标参考系统(CRS)是由它的"crs"成员(指的是下面的CRS对象)来确定的。如果对象没有crs成员,那么它的父对象或者祖父对象的crs成员可能被获取作为它的crs。特征对戏那个必须有一个名字为“properties"的成员,这个属性成员的值是一个对象(任何JSON对象或者JSON的null值)。特征对象必须由一个名字为"geometry"的成员,这个几何成员的值是上面定义的几何对象或者JSON的null值。如果特征是常用的标识符,那么这个标识符应当包含名字为“id”的特征对象成员。
2024-01-18 21:11:49
1355
原创 threejs(19)-Cesium生成3D地图
国内的地图数据获取,天地图:// 是否显示信息窗口// 是否显示查询按钮// 不显示home按钮// 控制查看器的显示模式// 是否显示图层选择// 是否显示帮助按钮// 是否播放动画// 是否显示时间轴// 是否显示全屏按钮// 设置天空盒sources: {},}),// 天地图矢量路径图// }),// 天地图影像服务// }),// OSM地图,// }),// 高德矢量地图,}),});// 是否显示信息窗口// 设置地形// }),}),})
2024-01-18 21:10:29
2383
原创 threejs(13)-着色器设置点材质
gl_FragCoord内置变量是vec2类型,它表示WebGL在canvas画布上渲染的所有片元或者说像素的坐标,坐标原点是canvas画布的左上角,x轴水平向右,y竖直向下,gl_FragCoord坐标的单位是像素,gl_FragCoord的值是vec2(x,y),通过gl_FragCoord.x、gl_FragCoord.y方式可以分别访问片元坐标的纵横坐标。而gl_PointCoord是在点渲染模式中生效的,而它的范围是对应小正方形面,同样是左上角[0,0]到右下角[1,1]。
2023-11-14 15:21:16
585
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人