从零开始专题

Android从零开始搭建MVVM架构(5)—— LifeCycle详解

1.Lifecycle简介 为什么要使用lifecycle? activity 和fragment 是有声明周期的,有时候,我们的很多操作需要写在声明周期的方法中,比如,下载,文件操作等,这样很多情况下回导致,我们在activity中的声明周期方法中写越来越多的代码,activity或者fragment 越来越臃肿,代码维护越来越困难。 使用lifecycle就可以很好的解决这类问题。 lifec

Android从零开始搭建MVVM架构(4)——LiveData

LiveData 介绍 Livedata 是 Google 推荐的 Android 架构组件之一,是一个存放可被观察的数据持有类,有生命周期感知功能,解决了android开发者需要去手动处理生命周期的痛点。 比如当我们使用 Retrofit+Rxjava处理接口回调数据时,需要考虑activity 或 fragment 生命周期,以解决 onStop 或 onDestory之后回调数据的问题。现

Android从零开始搭建MVVM架构(3)——ViewModel

ViewModel类是被设计用来以可感知生命周期的方式存储和管理 UI 相关数据,ViewModel中数据会一直存活即使 activity configuration发生变化。 ViewModel有什么优势? 1.数据持久化 activity 在销毁重建时,之前我们可以用 activity 的onSaveInstanceState()机制保存和恢复数据,但缺点很明显,onSaveInstan

React+TS 从零开始教程(2):简中简 HelloWolrd

源码链接:https://pan.quark.cn/s/c6fbc31dcb02 这一节,我们来见识React+TS的威力,开始上手开发第一个组件,什么组件呢? 当然是简中简的 HelloWolrd组件啦。 在src下创建一个components,然后新建Hello.tsx 为什么是tsx呢,这个目的就是告诉编译器,我这个文件是支持jsx语法的,如果遇到你看不懂的标签,就当作React Ele

从零开始学数据结构系列之第三章《平衡二叉树基础概念》

文章目录 前言什么是平衡二叉树往期回顾 前言 ​   在前面的学习过程中,我们了解到二叉排序树可以在一定程度上提高查找(搜索)的效率,但仍然会出现特殊情况,让二叉排序树失效。例如,将序列{1,2,3,4,5,6}中的元素依次插入到二叉排序树中,会得到右斜树,这就相当于一个单链表了,搜索效率降低为O(n)。   于是在 1962 年,一个姓 AV 的大佬(G. M. Ade

从零开始搭建一个酷炫的个人博客

效果图 一、搭建网站 git和hexo准备 注册GitHub本地安装Git绑定GitHub并提交文件安装npm和hexo,并绑定github上的仓库注意:上述教程都是Windows系统,Mac系统会更简单! 域名准备 购买域名,买的是腾讯云域名,购买完成之后的域名管理解析域名域名备案 二、优化网站 使用的Fluid主题,Hexo Fluid 用户手册 增加图床,图片可以放在g

【GD32】从零开始学兆易创新32位微处理器——RTC实时时钟+日历例程

1 简介 RTC实时时钟顾名思义作用和墙上挂的时钟差不多,都是用于记录时间和日历,同时也有闹钟的功能。从硬件实现上来说,其实它就是一个特殊的计时器,它内部有一个32位的寄存器用于计时。RTC在低功耗应用中可以说相当重要,因为在使用外部低速晶振的条件下,它在所有的低功耗模式下都可以工作,这使得RTC很适合实现芯片的低功耗唤醒。下面是RTC的框图。 咋一看RTC的内部还挺复杂的。 2 硬件时

从零开始的Ollama指南:部署私域大模型

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模型问答项目问答性能评估方法大模型数据侧总结大模型token等基本概念及参数和内存的关系大模型应用开发-华为大模型生态规划从零开始的LLaMA-Factor

在webstorm配置nodejs(从零开始)

在webstorm配置nodejs之前,需要先下载node.js和webStorm。 按下win+r,输入cmd打开命令行 输入node -v和npm -v会出现相应的版本,如果报错则需要去下载node.js。 打开webStorm,File—settings 搜索node 选择node.exe安装位置 重启webStorm

从零开始学数据结构系列之第三章《后续线索二叉树线索化理论》

文章目录 线索化线索化带来的问题与解决后续线索化查找首节点往期回顾 线索化 我们将对二叉树以某种次序遍历使其变为线索二叉树的过程称为线索化 。 现将某结点的空指针域指向该结点的前驱后继,定义规则如下: 若结点的左子树为空,则该结点的左孩子指针指向其前驱结点若结点的右子树为空,则该结点的右孩子指针指向其后继结点这种指向前驱和后继的指针称为线索,将一棵普通的二叉树以某种次序

从零开始:精通基于大型语言模型(LLM)的Agent应用开发

一、引言 随着人工智能技术的飞速发展,大型语言模型(Large Language Model,简称LLM)已经成为自然语言处理(NLP)领域的核心技术之一。这些模型,如GPT、BERT等,通过大量的文本数据训练,能够生成人类难以区分的自然语言文本,并在各种NLP任务中展现出卓越的性能。基于LLM的Agent应用开发,旨在将这些强大的语言处理能力应用于实际场景中,为用户提供更加智能、高效的服务。本

从零开始做ROS机器人

文章目录 ROS机器人整体介绍运动底盘的控制(串口通信控制)运动底盘(运动学分析)ROS相关的ubuntu基础教程ROS基础干货ROS应用电机PID控制轮式机器人运动学分析自主导航图像处理深度学习语音识别 ROS机器人整体介绍 ROS机器人系统介绍 运动底盘的控制(串口通信控制) 运动底盘(运动学分析) ROS相关的ubuntu基础教程 ROS基础干货 ROS应用

从零开始学数据结构系列之第三章《先序线索二叉树理论及线索化》

文章目录 线索化线索化带来的问题与解决结构初始化创树先序线索化往期回顾 线索化 我们将对二叉树以某种次序遍历使其变为线索二叉树的过程称为线索化 。 现将某结点的空指针域指向该结点的前驱后继,定义规则如下: 若结点的左子树为空,则该结点的左孩子指针指向其前驱结点若结点的右子树为空,则该结点的右孩子指针指向其后继结点这种指向前驱和后继的指针称为线索,将一棵普通的二叉树以某种

探索AI创新的前沿——从零开始学习和运用SpringAI

1.SpringAI介绍 SpringAI是AI工程师的一个应用框架,它提供了一个友好的API和开发AI应用的抽象,旨在简化AI应用的开发工序。 目标是将可移植性和模块化设计等设计原则应用于AI领域的Spring生态系统,并将POJO作为应用程序的构建块推广到AI领域。 跨AI提供商的便携API支持聊天、文本到图像和嵌入模型。同时支持同步和流API选项。还支持各种定制的功能。 总的来说就是:Sp

从零开始学数据结构系列之第三章《中序线索二叉树线索化及总代码》

文章目录 中序线索化总代码往期回顾 中序线索化 void inThreadTree(TreeNode* T, TreeNode** pre) {if(T){inThreadTree(T->lchild,pre);if(T->lchild == NULL){T->ltag = 1;T->lchild = *pre;}if(*pre != NULL && (*pre)->

实况:老菜鸟自力更生从零开始重学spring目标是画出一张唬人大图(二、源码下载编译)

前情提要:调试前的基础知识梳理 速览 “Spring”包含哪些东西源码下载源码编译1、编译工具选择:gradle2、使用gradle编译spring并导入idea预编译spring-oxm导入IDEA确认合适的jdk版本排除spring-aspects模块 开始调试 “Spring”包含哪些东西    可以明确的是,“spring”不是一个东西,而是一系列东西。最原始的“sp

【scikit-learn入门指南】:机器学习从零开始

1. 简介 scikit-learn是一款用于数据挖掘和数据分析的简单高效的工具,基于NumPy、SciPy和Matplotlib构建。它能够进行各种机器学习任务,如分类、回归和聚类。 2. 安装scikit-learn 在开始使用scikit-learn之前,需要确保已经安装了scikit-learn库。可以使用以下命令安装: pip install scikit-learn 3

画图从零开始

2018/03/17 时隔一年又重新开始捡起来机器学习的东西,还是从最简单的画图开始吧。 当然数据集还是从iris开始。 还是在服务器上运行,这部分还是使用原来的那个命令,引入后执行use('Agg')保证可以保存。 从官方文档处学习:http://scikit-learn.org/stable/auto_examples/datasets/plot_iris_dataset.html#sph

从零开始!Jupyter Notebook的安装教程

前言 Jupyter Notebook是一种强大的工具,广泛应用于数据科学、机器学习和学术研究领域。它不仅提供了一个交互式的环境,让用户能够编写代码、进行数据分析和创建可视化,而且还能保存和分享工作成果。对于初学者来说,安装和配置Jupyter Notebook可能会有些挑战。因此,这篇文章将详细介绍如何从零开始安装Jupyter Notebook,帮助你顺利地搭建这一强大的开发环境。 安装前

iOS底层探索(一) - 从零开始认识Clang与LLVM

入门起步 从编译器说起 为什么需要编译? 大家都知道,我们的计算机CPU只能读懂机器码(machine code,也就是由一堆0和1组成的编码);但我们现在编写的代码并不是机器码,而是高级编程语言(Objective-C、Swift、Java、...),最终也可以被计算机所执行,这就需要编译了,在编译的过程中,编译器的作用便是把我们的高级编程语言通过一系列的操作转化成可被计算机执行的机器

从零开始! jupyter notebook的安装教程

Jupyter Notebook 是一个开源的 web 应用程序,可以创建和共享包含代码、方程、可视化和文本的文档。它广泛用于数据清理和转换、数值模拟、统计建模、机器学习等数据科学领域。以下是从零开始安装 Jupyter Notebook 的详细步骤。 ### 步骤 1: 安装 Python Jupyter Notebook 需要 Python 环境。如果你的系统还没有安装 Python,请先

从零开始!JupyterNotebook的安装教程

Jupyter Notebook是一个开源的Web应用程序,允许用户创建和共享包含代码、文本、数学方程、可视化和其他输出的文档。它支持超过40种编程语言,是数据科学和机器学习领域非常流行的工具。 安装Jupyter Notebook 使用Anaconda安装 Anaconda是一个流行的Python数据科学平台,它预装了Jupyter Notebook。以下是安装Anaconda的步骤:

从零开始精通Onvif之事件处理

💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。 概述         Onvif的事件处理允许IPC等摄像头主动向客户端(比如:NVR、VMS、平台服务等)推送事件通知,比如:运动检测、音频侦测、视频丢失等报警事件。这种模式打破了传统的轮询查询方式,显著降低了延迟,提高了事件响应效率。这些事件的有效处理,不仅关乎系统的安全性,也直接影响到用

从零开始学jquery Validate 自定义验证

/*** 身份证号码验证**/function isIdCardNo(num) {var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);var parityBit=new Array("1","0","X","9","8","7","6","5","4","3","2");var varArray = new Array(

从零开始学jQuery Validate 之01

jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API。所有的捆绑方法默认使用英语作为错误信息,且已翻译成其他 37 种语言。 该插件是由 Jörn Zaefferer 编写和维护的,他是 jQue

从零开始的<vue2项目脚手架>搭建:vite+vue2+eslint

前言 为了写 demo 或者研究某些问题,我经常需要新建空项目。每次搭建项目都要从头配置,很麻烦。所以我决定自己搭建一个项目初始化的脚手架(取名为 lily-cli)。 脚手架(scaffolding):创建项目时,自动完成的创建初始文件等初始化工作。这些工作往往是每次新建工程都要进行的重复性工作。 目标:我只需要执行 npm init lily-cli,就会自动创建一个符合我要求(即