香橙派Orange AI Pro 初体验

什么是香橙派 ? 香橙派(Orange Pi)是深圳市迅龙软件有限公司旗下的开源产品品牌。它专注于为全球个人和企业提供高性价比的开源硬件、开源软件以及OEM/ODM服务。香橙派已经迭代了30多款产品,形成了涵盖开源硬件、开源软件、开源芯片、配套视频、论坛社区的完整开源教育生态圈。 贴个官网链接 : http://www.orangepi.cn/ 下面文章我将体验香橙派家的Orange AI Pro产品。 Orange Pi AIpro 配置 **处理器:**配备华为昇腾310 NPU,支持高效的人工智能计算,适用于深度学习和推理任务。 **内存:**8GB LPDDR4内存,确保多任务处理和数据密集型应用的流畅运行。 存储:提供eMMC存储接口和MicroSD卡插槽,方便用户扩展存储空间。 接口:丰富的接口配置,包括USB 3.0、USB 2.0、HDMI、以太网口、音频输出、GPIO等,满足多种外设连接需求。 网络:内置千兆以太网接口和Wi-Fi模块,支持高速网络连接和无线传输。 操作系统:兼容多种操作系统,包括Ubuntu、Debian和Android,提供广泛的软件支持和开发环境。 Orange AI Pro 外观展示 开箱 : 塑料箱 + 主板 + 32G 内存卡 + 快充电头 + 双口type-c 数据线 官方文档以及学习社区 他家的文档做的非常的全PDF、而且还有源码、机械图、原理图、镜像、烧录工具。 链接 : http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html 光一个说明书就174页, 可以看出香橙派对这款产品的用心了。 昇腾论坛社区 : https://www.hiascend.com/forum/forum-0142139138315991002-1.html 微信群与大佬交流 ,良好的学习氛围 。 AI功能体验 通过使用说明书,不用多久,我就启动了 Orange Pi AI PRO。 我用的VsCode的SSH连接香橙派,因为Orange Pi AIpro 自带 Wifi 天线 (这一点我很爱),我可以直接使用wifi功能连接我的热点,这一点很方便,省去配置的时间。 在Orange Pi AIpro 上运行我的第一个cpp程序:

Flink向Doris表写入数据(Sink)

业务场景 最近在工作中遇到了Flink处理kafka中的数据,最后写入Doris存储的场景。 Apache Doris 是一款基于 MPP 架构的高性能、实时的分析型数据库,以高效、简单、统一的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建大屏看板、用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。 以上介绍来自于Doris的官网,关于Doris的内容不做过多的介绍,可以参考官档 快速体验 Apache Doris - Apache Doris 依赖 本人是通过datastream的方式向Doris写入数据,并非通过FlinkSQL的方式,不过不管使用哪种方式,都需要以下的依赖 <dependency> <groupId>org.apache.doris</groupId> <artifactId>flink-doris-connector-1.16</artifactId> <version>1.6.0</version> </dependency> 代码实现 在doris的官档中,数据通过datastream写入doris,支持两种不同的序列化方法,一种是String 数据流 (SimpleStringSerializer),另一种是RowData 数据流 (RowDataSerializer)。本人使用的是后者,因为后者可以很好的兼容json类型的数据。 现将主类的业务代码提供如下,重点处通过注释做了说明 package cn.gwm.dp.main; import cn.gwm.dp.consts.Constant; import cn.gwm.dp.entity.TaskDetail; import cn.gwm.dp.entity.TaskSum; import cn.gwm.dp.entity.YRcanbus; import cn.gwm.dp.functions.KafkaFunction; import cn.gwm.dp.functions.KeyedFunction; import cn.gwm.dp.functions.RowDataFunction; import cn.gwm.dp.functions.TosFunction; import org.apache.doris.flink.cfg.DorisExecutionOptions; import org.apache.doris.flink.cfg.DorisOptions; import org.apache.doris.flink.cfg.DorisReadOptions; import org.apache.doris.flink.sink.DorisSink; import org.apache.doris.flink.sink.writer.serializer.RowDataSerializer; import org.apache.flink.api.common.eventtime.WatermarkStrategy; import org.apache.flink.api.common.restartstrategy.RestartStrategies; import org.apache.flink.api.common.serialization.SimpleStringSchema; import org.apache.flink.api.common.time.Time; import org.apache.flink.api.java.tuple.Tuple2; import org.

Unity Android接入支付宝支付

1、在Android Studio中创建一个新工程 选择No Activity 选项如下 Unity的Minimum API Level如下图所示 点击Finish,如下图,第一步结束 2、创建Module 点击Android切换到Project 切换完如下图所示 右键MyApplication,创建一个Module 选项如下,点击Finish 查看build.gradle,确保compileSdk和targetSdk和Unity的Target API Level保持一致 3、导入Unity相关文件和库 首先,导入classes.jar 该文件在D:\Program Files\Unity\Hub\Editor\2021.3.37f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Classes里 即“你的Unity.exe所在文件夹”/../“对应Editor版本”/../下,其中2021.3.37f1c1是我所用的Editor版本,il2cpp、Release对应Unity的配置,如下图,如果Unity里的Scripting Backend是Mono,则选mono文件夹下的 将这个classes.jar复制到mylibrary的libs文件夹下,并且Add As Library,如下图 Add As Library之后,你会在build.gradle里看到 implementation files('libs\\classes.jar') 这样classes.jar就导入完成了。 然后,导入UnityPlayerActivity.java 该文件在D:\Program Files\Unity\Hub\Editor\2021.3.37f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Source,直接将com文件夹复制到mylibrary/src/main/java文件夹下,如下图 至此,导入unity文件结束。 4、接入支付宝支付 1、去Alipay的maven地址下载最新的支付sdk,https://mvnrepository.com/artifact/com.alipay.sdk/alipaysdk-android 2、将下载好的文件alipaysdk-android-15.8.17.aar,复制到mylibrary的libs文件夹下,这次不用Add As Library了,因为aar没有这个选项,用另一种方式引入aar,导入后如下图所示 3、引入alipaysdk-android-15.8.17.aar,操作如下,操作完之后就能使用支付宝支付的api了。 compileOnly fileTree(include: ['*.jar','*.aar'], dir: 'libs') 4、编写支付代码 在mylibrary/src/main/java/com.xxx.xxxx下创建一个java文件,我这里取名为MainActivity MainActivity.java代码如下 package com.xxx.xxxx; import android.os.Bundle; import android.util.Log; import com.alipay.sdk.app.PayTask; import com.unity3d.player.UnityPlayer; import com.unity3d.player.UnityPlayerActivity; public class MainActivity extends UnityPlayerActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.

解锁 AI 潜力:香橙派 AIpro 评测与实操指南

解锁 AI 潜力:香橙派 AIpro 评测与实操指南 引言 在智能科技飞速发展的今天,AI 技术正逐渐改变我们的生活方式。作为开发者,找到一款高性能、易用且经济实惠的开发板至关重要。香橙派 AIpro(OrangePi AIpro)凭借其卓越的硬件配置和强大的 AI 计算能力,相信未来会迅速成为市场上的一匹黑马。本文将带你全面了解这款开发板,通过实际操作和详细评测,揭示其在 AI 开发中的巨大潜力。无论你是初学者还是资深开发者,香橙派 AIpro 都能助你迈向 AI 开发的新高度。准备好了吗?让我们一同探索这款令人兴奋的 AI 开发工具! 文章目录 解锁 AI 潜力:香橙派 AIpro 评测与实操指南引言多功能强大性能的硬件之选🥇🍊高性能处理器🍊大容量内存🍊丰富的接口设计🍊无线连接🍊多样的电源接口🍊摄像头接口🍊其他特色功能 开发体验香橙派AIpro引脚图实物连接串口打印 使用Mobaxterm串口工具直接第一次上电参数选择首次登陆账号密码接入wifi网络使用ssh网络通信💻 AI 模型部署步骤环境搭建安装必要依赖下载llama.cpp以及对应中文工具包编译llama.cpp下载中文llama模型 量化部署 性能查看(TOP)结果演示推荐选择结束 多功能强大性能的硬件之选🥇 🍊高性能处理器 首先,最值得关注的是这款开发板的核心处理器。它搭载了一个4核64位处理器,配合AI处理器,能提供强劲的计算能力和高效的AI处理性能。这样的配置不仅满足了日常的计算需求,还能应对复杂的人工智能算法和深度学习任务。对于需要处理大量数据和进行高性能计算的开发者来说,这无疑是一个巨大的优势。 🍊大容量内存 在内存方面,这款开发板提供了8GB或16GB的LPDDR4X内存选择。LPDDR4X内存相比传统的DDR内存具有更高的带宽和更低的功耗,这对于需要频繁进行数据交换和高性能运算的应用场景来说,能显著提升系统的整体性能和响应速度。无论是用于图像处理、视频解码,还是复杂的计算任务,大容量内存都能提供可靠的保障。 🍊丰富的接口设计 这款开发板的接口设计非常丰富,几乎涵盖了所有常见的外设连接需求。 双HDMI 2.0接口:支持4K视频输出,可以同时连接两个显示器,满足多屏显示和复杂显示任务的需求。 USB 3.0接口:提供两个USB 3.0接口,支持高速数据传输,方便连接各种USB外设,如键盘、鼠标、U盘等。 Type-C 3.0接口:支持最新的Type-C接口标准,提供更高的传输速率和更便利的连接方式。 耳机孔音频输入/输出:提供标准的3.5mm耳机孔,支持音频输入和输出,方便音频设备的连接。 🍊无线连接 在无线连接方面,这款开发板也表现出色。它内置了2.4G/5G双频WiFi和蓝牙5.0模块,支持更高速率和更稳定的无线网络连接,同时兼容蓝牙4.2设备。这样的配置不仅能提供快速的网络连接,还能方便各种蓝牙设备的接入,如无线耳机、蓝牙键盘、鼠标等,为用户带来更多的使用便利。 🍊多样的电源接口 为了适应不同的应用场景和供电需求,这款开发板提供了多种电源接口: 3.3V、5V电源接口:方便连接各种外设和传感器。 12V散热风扇接口:支持连接外部散热风扇,确保系统在高负载运行时依然保持稳定。 2Pin电池接头:支持外接电池供电,适用于移动设备和野外使用场景。 🍊摄像头接口 这款开发板还提供了2个MIPI CSI摄像头接口和1个MIPI DSI显示接口。MIPI CSI接口可以连接高性能摄像头模块,适用于图像处理和计算机视觉等应用。MIPI DSI接口则能提供更高的显示带宽和更丰富的显示效果,适用于需要高质量显示的项目。 🍊其他特色功能 千兆网口:支持高速有线网络连接,确保数据传输的稳定性和高速性。 烧录按键和RESET键:方便系统调试和开发过程中对系统进行重置和程序烧录。 40Pin扩展接口:提供了丰富的GPIO接口,支持各种外设和传感器的连接,方便用户进行二次开发和功能扩展。 具体的详情参数OrangePi官方网址也已提供,请各位读者点击链接参考。👇👇👇 http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/parameter/Orange-Pi-AIpro.html 实际应用场景 这款开发板由于其强大的性能和丰富的接口,适用于多种实际应用场景: 物联网应用:得益于其强大的处理能力和丰富的接口设计,这款开发板非常适合物联网项目。无论是智能家居、智慧城市,还是工业物联网应用,都能轻松应对。

WebGL学习(一)渲染关系

学习webgl 开发理解渲染关系是必须的,也非常重要,很多人忽视了这个过程。 我这里先简单写一下,后面尽量用通俗易懂的方式,举例讲解。 WebGL,全称Web Graphics Library,是一种在网页上渲染3D图形的技术。它允许开发者使用JavaScript和HTML5的Canvas元素来创建和渲染3D图形。WebGL渲染管线可以想象成一个工厂流水线,它将3D模型转换为2D图像,供我们的眼睛欣赏。这个流水线分为几个主要阶段,每个阶段都对最终图像的生成起着至关重要的作用。 模型阶段(Modeling): 想象一下,你有一个3D的玩具模型,你想要把它展示在屏幕上。在这个阶段,你需要定义玩具模型的形状、大小和位置。 顶点着色器(Vertex Shader): 顶点着色器是流水线的第一个环节。它处理3D模型的顶点(模型的角和边)。它会告诉每个顶点在屏幕上的大概位置。 图元装配(Primitive Assembly): 这个阶段将顶点组装成基本图形,比如三角形或四边形。这就像是把玩具的各个部分拼凑起来。 光栅化(Rasterization): 光栅化阶段将图元转换成像素。这就像是用相机拍摄玩具,把3D模型转换成2D图像。 片段着色器(Fragment Shader): 片段着色器处理每个像素的颜色和特性。它决定了每个像素的颜色、透明度等,就像是给玩具上色。 深度测试(Depth Test): 在3D世界中,物体的前后关系很重要。深度测试确保物体按照正确的前后顺序显示,避免出现“穿模”现象。 模板测试(Stencil Test): 模板测试用于控制像素的可见性,它可以帮助实现一些特殊的视觉效果,比如遮挡和裁剪。 混合(Blending): 混合阶段调整像素的颜色,以实现透明效果或者混合不同颜色的像素,让图像看起来更加自然。 输出到帧缓冲区(Frame Buffer): 最后,经过所有处理的像素被输出到帧缓冲区,这是一个临时存储图像的地方。当一切准备就绪后,这些图像就会被显示在屏幕上。 整个WebGL渲染管线就像是一个精心设计的工厂,每个阶段都有其特定的任务,确保最终的图像既美观又符合3D世界的规则。通过这个流水线,我们能够在网页上享受到生动的3D图形效果。 后面我会详细的讲解,放到 http://www.threelab.cn 中作为专项梳理,以为渲染关系,不是一句话两句话就可以讲明白的。

【AIGC调研系列】LlamaFS-使用llama3操作文件夹

LlamaFS是一个基于Llama 3模型的自组织文件管理系统,旨在帮助用户自动重命名和组织电脑中的文件。它通过智能化的AI技术,能够根据文件内容和已知约定(例如时间)自动进行文件的重命名和分类整理[1][5][8]。 LlamaFS有两种运行模式:批量处理模式和监视模式。在批量处理模式下,用户可以一次性处理大量文件,避免了手动整理的繁琐[6][10]。而在监视模式下,LlamaFS作为守护进程运行,实时监控目录中的文件操作,并根据用户最近的编辑行为进行预测和自动分类[5]。 此外,LlamaFS支持多种文件类型,包括图像和音频文件,并且能够处理连续的对话,理解并执行用户的指令,自动完成网上搜索、导航和信息检索等操作[2][7][9]。 使用LlamaFS进行文件夹操作时,可以选择适合的运行模式(批量处理或监视模式),并利用其强大的AI技术来自动重命名和组织文件,从而大大提高文件整理的效率并保持桌面的整洁[3][4]. LlamaFS的AI技术是如何工作的,特别是在文件重命名和分类方面的具体机制是什么? LlamaFS的AI技术主要基于Llama 3模型,能够自动重命名和组织文件。其工作机制如下: 自组织能力:LlamaFS是一个自我组织的文件管理系统,它能够根据文件的内容和已知的约定(例如时间)自动对文件进行重命名和分类整理[11]。支持多种文件类型:该系统不仅支持普通文件,还能处理图像(通过Moondream)和音频(通过Whisper)文件[11][14]。批处理和实时监控模式:LlamaFS提供两种运行模式:批处理模式和实时监控模式。在批处理模式下,它可以一次性处理大量文件;而在实时监控模式下,它会持续监控文件系统并自动进行重命名和分类[13]。隐身模式:为了保护用户隐私,LlamaFS还提供了隐身模式,这在处理敏感信息时尤为重要[13]。自动整理文件:LlamaFS能够根据文件内容和时间等信息,自动对文件进行重命名和分类整理。这使得用户的桌面变得井井有条[12]。 LlamaFS在处理大量文件时的性能表现如何,是否存在已知的限制或优化策略? LlamaFS在处理大量文件时的性能表现和优化策略可以从多个方面进行分析。 LlamaFS是一个自动文件整理系统,具备强大的文件识别能力,能够自动识别文件类型并进行相应的整理[22]。这意味着它可以高效地处理不同类型的文件,省去了手动分类的繁琐过程。此外,LlamaFS还采用了新的模型设计策略,同时优化了效率[23]。这些优化措施有助于提高其在处理大量文件时的性能表现。 然而,尽管LlamaFS在文件识别和分类方面表现出色,但在处理极大量文件时仍可能存在一些限制。例如,高效的训练策略表明,即使是最小的LLaMA模型也需要大量内存[18]。这可能意味着在处理大量文件时,LlamaFS需要更多的内存资源,这可能会成为其性能的一个瓶颈。 为了进一步优化性能,可以考虑以下几种策略: 内存优化:通过减少内存占用来提高性能。例如,使用更高效的数据结构和算法来减少内存消耗[21]。量化部署:通过特定的工具和技术对代码进行优化和打包,以便在目标环境中更有效地运行。这包括对代码进行静态和动态分析,识别瓶颈并进行优化,以及使用高效的编译和链接技术来减小二进制文件的大小和提高运行速度[19]。超参数调整:在训练过程中选择合适的超参数和优化器,例如学习率、批次大小、优化器类型等,并根据实际情况调整训练策略,例如早停、学习率调整等[17]。 LlamaFS支持哪些具体的监视模式,以及每种模式下的具体功能和使用场景是什么? LlamaFS支持两种具体的监视模式:批处理和实时监控。 批处理模式: 功能:在批处理模式下,用户可以一次性处理多个文件或文件夹。这种模式适用于需要对大量文件进行重命名、分类或其他操作的场景。使用场景:当用户需要对大量文件进行统一的管理和整理时,批处理模式非常有用,例如整理下载的文件夹中的图片和音频文件。实时监控模式: 功能:实时监控模式允许系统持续监视指定的文件夹,并自动执行预设的操作,如重命名和分类文件。使用场景:这种模式适用于需要持续跟踪和管理新生成文件的场景,例如视频录制后的文件自动分类,或是实时捕捉网络下载的文件并进行分类。 LlamaFS如何确保用户数据的安全性和隐私保护? LlamaFS通过多种措施确保用户数据的安全性和隐私保护。首先,LlamaFS采用了先进的加密技术来保护用户数据,确保数据在传输和存储过程中不被未授权访问[27]。此外,LlamaFS还支持数据备份和恢复机制,这可以有效防止数据丢失[27][28]。 为了进一步增强隐私保护,LlamaFS还引入了基于属性的加密技术,这种技术可以确保在推理过程中,用户的隐私数据始终保持加密状态,即使攻击者试图获取推理过程中的数据,也无法成功[29]。此外,LlamaFS还采用了差分隐私技术,对用户输入进行处理,以保护用户隐私[30]。 总结来说,LlamaFS通过结合加密技术、数据备份与恢复机制以及差分隐私技术等多重措施,确保了用户数据的安全性和隐私保护。 LlamaFS与其他文件管理软件(如WinDirStat、TreeSize等)相比有哪些独特优势和不足? LlamaFS(Llama File System)与其他文件管理软件(如WinDirStat、TreeSize等)相比,有其独特的优势和不足。以下是详细分析: 独特优势 LlamaFS作为一个文件系统,能够在多种操作系统上运行,包括Windows、MacOS、Linux等。这使得它在跨平台使用方面具有显著优势,而像WinDirStat和TreeSize这样的工具通常只针对特定操作系统设计[45]。 LlamaFS在处理大量数据时表现出色,能够有效地管理大型文件系统。相比之下,WinDirStat和TreeSize虽然也能进行磁盘空间分析,但在处理极大规模数据集时可能会遇到性能瓶颈[38]。 LlamaFS可以通过命令行或图形界面进行管理,提供了更多的自定义选项和灵活性。例如,它可以配置为自动扫描和优化磁盘空间,而WinDirStat和TreeSize则主要依赖于图形界面[42]。 LlamaFS不仅仅是一个文件管理工具,还可以集成其他功能,如文件备份、权限管理等,这些功能在WinDirStat和TreeSize中并不常见[44]。 不足之处 LlamaFS的用户界面可能比WinDirStat和TreeSize更为复杂,新用户可能需要花费更多时间来熟悉其操作方式[38]。 由于LlamaFS需要处理更多的数据和功能,其在运行时可能会占用更多的内存和CPU资源。这在高负载环境下可能会影响系统性能[41]。 相比于WinDirStat和TreeSize,LlamaFS可能没有那么强大的社区支持和丰富的第三方插件生态系统。这意味着用户在遇到问题时可能需要寻求官方帮助或自行解决[40]。 尽管LlamaFS提供了高度的自定义能力,但其初学者友好性可能不如WinDirStat和TreeSize。这些后者通过简洁直观的界面,使得用户能够快速上手并进行磁盘空间分析[38]。 LlamaFS在跨平台支持、高性能、灵活性和集成功能方面具有显著优势,但在用户界面复杂性、资源消耗、社区支持和易用性方面存在一些不足。 参考资料 1. LlamaFS | Devpost [2024-05-12] 2. LlamaFS:基于Llama 3模型的自组织文件管... 来自爱可可 [2024-05-27] 3. LlamaFS:基于Llama 3的自动整理小助手,拯救你的桌面混乱 4. 你乱糟糟的桌面有救了!LlamaFS:基于Llama 3的自动整理小 ... [2024-05-27] 5. LlamaFS LlamaFS LlamaFS 是一个自动化的文件管理工具,通过基于文件内容和常见的命名约定(例如,时间)来自动重命名并组织 ... 6. 你乱糟糟的桌面有救了!LlamaFS:基于Llama 3的自动整理小助手_动态_新闻资讯 - 编程客栈

ollama+open-webui,本地部署自己的大模型

目录 一、效果预览 二、部署ollama 1.ollama说明 2.安装流程 2.1 windows系统 2.1.1下载安装包 2.1.2验证安装结果 2.1.3设置模型文件保存地址 2.1.4拉取大模型镜像 2.2linux系统 2.2.1下载并安装ollama 2.2.2设置环境变量 2.2.3拉取模型文件 三、部署open-webui 1.open-webui介绍 2.安装流程 2.1windows 2.1.1下载源码 2.1.2用pycharm新建一个虚拟环境​编辑​ 2.1.3安装nodejs依赖 2.1.4安装python依赖 2.1.5启动webui 四、注意事项 一、效果预览 基于ollama和open-webui,本地部署类似chatgpt的网页版大模型。先看看部署效果 如果不习惯英文界面,可以设置成中文界面 二、部署ollama 1.ollama说明 ollama的官网https://www.ollama.com/ ollama的github项目地址https://github.com/ollama/ollama ollama,是一个大模型容器管理框架,它可以帮助用户快速在本地运行大模型,类似于docker。ollama可以运行在GPU或CPU,它会自动根据你电脑硬件,选择GPU或CPU运行。 windows只支持win10或更高的版本,官方说明如下。 ​ ollama 支持具有 5.0+ 计算能力的 Nvidia GPU,显卡计算能力如下图所示 ​ ollama也支持AMD,详见官方文档说明ollama/docs/gpu.md at main · ollama/ollama (github.com)https://github.com/ollama/ollama/blob/main/docs/gpu.md ollama管理的大模型都是经过量化后的大模型,所以它的模型文件会小很多。以ollama中llama3-8b为例,llama3-8b原始模型大小接近15G,量化模型的只有4.7G,需要的硬件条件大大降低(老破小的福音)。 ​ 2.安装流程 2.1 windows系统 windows只支持win10或更高的版本。 2.1.1下载安装包 windows系统,直接下载安装程序(默认是最新的版本),下载完成后,直接点击安装即可,默认安装在C:\Users\Administrator\AppData\Local\Programs\Ollama。 Download Ollama on Windowshttps://ollama.com/download​ 2.1.2验证安装结果 安装完成后,电脑右下角任务栏处显示ollama图标。安装后,打开cmd命令窗口,输入ollama -v查看安装版本,如果不小心关闭了ollama程序,输入ollama serve即可重新启动ollama服务,ollama自带运行日志管理。 ollama serve默认端口为127.0.0.1:11434,这个端口在部署open-webui时需要用到,建议默认即可。如果需要修改默认端口,则需要添加一个环境变量OLLAMA_HOST=0.0.0.0:11434。 ​ ​ 2.1.3设置模型文件保存地址 设置模型文件保存位置,打开系统环境变量配置,添加一个环境变量OLLAMA_MODELS=D:\huggingface\ollama(自己指定任意一个文件夹路径),然后点确定。

【基础算法总结】前缀和二

前缀和二 1.和为 K 的子数组2.和可被 K 整除的子数组3.连续数组4. 矩阵区域和 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.和为 K 的子数组 题目链接:560. 和为 K 的子数组 题目分析: 子数组是连续的! 算法原理: 解法一:暴力枚举 定位一个下标然后从前往后遍历,两层for循环把所有子数组都找出来,把和为k的数组个数统计一下。肯定能解决问题,但时间复杂度是O(N^2)。并且这道题要注意范围是从负数到整数,因此定位一个下标从前往后走,即使找到了也不能停下,还要继续往后面找。万一后面数是0呢,万一后面数加起来是0呢。所以每次都要找到结尾! 以前也做过找子数组和的问题,那个时候用的是滑动窗口,本质就是同向双指针,right不往回走,但是今天这道题就不行了,滑动窗口的使用:数组要具有单调性或者说数组内都是正整数(大于0)才能用! 这道题数组里面可能有0,可能有负数,现在left和right指向一个区间了,但是区间内部可能还有符合的,right必须要回去才行,因此 不能用滑动窗口优化。 解法二:前缀和 以i位置为结尾的所有子数组 我们暴力枚举是以某点为起点的子数组。这里我们以某点为结尾的子数组。 只看前面到这个点为结尾而不看从这个位置往后,也是可以把所有子数组都枚举出来的。那以某个点为结尾的子数组中找到和为K的子数组有多少个,然后把所有情况加起来。 我们把它抽象出来,先看以i为结尾的子数组,后面先不看 如果是直接从i往前找和等于K的就和暴力枚举没区别了,此时引入前缀和思想。当枚举到i位置时,我已经知道以i为结尾的前缀和,假设是 sum[i], 此时我们需要找一个区间和为K,那仅需找一个前缀和让它等于 sum[i]-K 不就可以了嘛 。 这样就转化为 在【0,n-1】区间内,有多少个前缀和等于 sum【i】- K 如果直接把前缀和数组搞出来然后找i位置之前有多少个前缀和等于sum[i]-k ,那还需要从前到i位置遍历,这样就比暴力枚举时间复杂度还高。没有必要。如果要快速查找一个东西可以使用哈希表。 因此解法二:前缀和+哈希表 细节问题: 1.前缀和加入哈希表的时机? 第一种就是把所有前缀和都算出来都加入到hash表在找,这种方式有问题,我要找i位置之前这样把i位置之后的和也加入到哈希表了,是有问题的。 在计算i位置之前,哈希表里面只保存 [0,i-1] 位置的前缀和,计算完i位置之和,才把i位置的前缀和加入哈希表。 2.不用真的创建一个前缀和数组,用一个变量 sum 来标记前一个位置的前缀和即可 3.如果到i位置整个前缀和等于K? 那是不是要去[0,-1] 去找0,但是没有这个区间,但是[0,i]等于k也是一种情况,因此hash表特殊处理 hash[0]=1 class Solution { public: int subarraySum(vector<int>& nums, int k) { unordered_map<int,int> hash;//统计前缀和出现次数 hash[0]=1; int sum=0,ret=0; for(auto& x:nums) { sum+=x; //计算当前位置前缀和 if(hash.

【MySQL】库的操作+表的操作

库的操作+表的操作 1.库的操作1.1创建数据库1.2删除数据库1.3查找数据库1.4修改数据库1.5数据库备份和恢复1.6查看连接情况 2.库的操作2.1创建表2.2查看表结构2.3修改表2.4删除表 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.库的操作 1.1创建数据库 语法: CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name 大写的表示关键字[] 是可选项CHARACTER SET: 指定数据库采用的字符集COLLATE: 指定数据库字符集的校验规则 show databases; //查看当前数据库 对应的就是右边一个个蓝色的目录,这我们在前面就已经说过了 创建数据库 create database d1; 创建好之后,在查看就有了,同样在 /var/lib/mysql 数据目录下也有一个d1目录 如果不想用这个数据库了,同样也可以删掉。 删除数据库 drop database d1; 创建数据库:本质就是在Linux环境下MySQL特定的路径(数据路径)var/lib/mysql 创建一个目录。 删除数据库:删除目录。 那如果在该路径下创建一个目录也是数据库吗? 是的没错,删除也同样是删除数据库。但是绝对不建议这样做! 还有一种写法,如果当前没有这个数据库就创建,如果存在就不创建 create database if not exists d1; 数据库创建我们已经说完,下面谈的就是数据库的编码问题! 一般数据库相关常见数据库编码有两个重要的编码,一个是数据库字符集,一个是数据库校验集。 创建数据库的时候,有两个编码集: 1.数据库编码集 2.数据库校验集 只要是数据无论是未来的存储还是读取,数据一定是要有对应的编码格式的。数据库这种与数据打交道的软件更加注重编码集。编码集必须是统一的,就是存数据之前采用什么编码,取数据时必须以同样的编码去取。 1.数据库编码集 —> 数据库未来存储数据采用的编码集 将来把数据存到数据库里,未来要对数据做各种增、删、查、改。所有只要你这样你就是要做比较。要比较对应的某些字段一样,前提是都要先被读出来,那两个字段的被读出来的校验规则或者被读取时的编码规则必须也是一样的。要不然怎么保证是一样的呢。

SpringbootActuator未授权访问漏洞

漏洞介绍 Actuator 是 SpringBoot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。然而,其默认配置会出现接口未授权访问,导致部分接口会泄露网站数据库连接信息等配置信息,使用Jolokia库特性甚至可以远程执行任意代码,获取服务器权限。 1、漏洞危害 1、信息泄露:未授权的访问者可以通过Actuator端点获取敏感信息,如应用程序的配置信息、运行时环境、日志内容等。这些信息可以被攻击者用于识别系统的弱点,并进行更深入的攻击。 2、系统破坏:攻击者可以通过Actuator端点的未授权访问,执行恶意操作,如修改配置、篡改数据、重启应用程序、关闭数据库连接等,从而破坏应用程序的正常运行。 3、命令执行:当系统使用Jolokia库特性甚至可以远程执行任意代码,获取服务器权限。 3 端点描述: 2、端点描述 官方文档对每个端点的功能进行了描述。 路径 描述 路径描述漏洞利用点/autoconfig提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过/beans描述应用程序上下文里全部的Bean,以及它们的关系/env获取全部环境属性/configprops描述配置属性(包含默认值)如何注入Bean/dump获取线程活动的快照/health报告应用程序的健康指标,这些值由HealthIndicator的实现类提供/info获取应用程序的定制信息,这些信息由info打头的属性提供/mappings描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系/metrics报告各种应用程序度量信息,比如内存用量和HTTP请求计数/shutdown关闭应用程序,要求endpoints.shutdown.enabled设置为true/trace提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)访问/trace端点获取到近期服务器收到的请求信息。如果存在登录用户的操作请求,可以伪造cookie进行登录 3 检测 可以使用https://github.com/AabyssZG/SpringBoot-Scan工具,一把扫出所有的未授权路径 4修复 https://www.cnblogs.com/wsx2019/p/17453170.html 参考: https://blog.csdn.net/weixin_44106034/article/details/133934404 https://huaweicloud.csdn.net/63874f0cdacf622b8df8aa9f.html SpringBoot 未授权访问漏洞挖掘 浅析SpringBoot框架常见未授权访问漏洞

亚信安慧AntDB数据库与华为数据存储完成兼容性互认证

迎接数智时代,供给核心科技。日前,湖南亚信安慧科技有限公司(简称:亚信安慧)与华为技术有限公司(简称:华为),完成了AntDB数据库产品与OceanProtect备份一体机及Oceanstor Dorado全闪存存储系统的兼容性互认证。 经过双方团队的严格测试,AntDB数据库与华为OceanProtect备份一体机、Oceanstor Dorado全闪存存储系统展现出了卓越的兼容性,整体运行稳定高效,集成使用方便快捷,推进信创产业更上一层楼。 图:产品兼容互认证明 当前,我国信创产业加速推进,万亿蓝海大有可为。亚信安慧与华为作为国内领先的通信和信息技术解决方案提供商,双方产品的兼容性互认证,有助于推动产业链上下游的合作,构建更加完善的国产IT生态系统,提供更高效、更可靠的数据库解决方案,满足金融、政务、通信等行业对高性能、高安全性数据库的庞大需求。 兼容性互认证,共筑数字化转型安全高效新生态 湖南亚信安慧科技有限公司是一家面向各行业提供数据库、中间件等基础软件产品和服务的公司。亚信安慧AntDB数据库作为亚信安慧的拳头产品,是一款可扩展、多租户、高可用、高性能、国产自主的分布式数据库产品,具备自动高可用、在线弹性扩容、内核级读写分离等特性,支持SQL2016标准,提供高并发、高吞吐、低时延的PB级数据处理能力。目前已支撑通信运营商核心业务系统平稳运行16年,服务国内24个省、市、自治区的数亿用户。 华为数据存储依托从芯片到算法等人工智能基础研究领域的深厚积累,在闪存原生架构设计、数据缩减算法、备份软件等多个方面实现突破。Oceanstor Dorado全闪存存储系统是面向企业核心业务打造的存储性能和可靠性标杆,OceanProtect备份一体机提供业界领先的数据缩减性能和可靠性,帮助用户实现关键数据高效备份,价值数据快速利用,节省数据保护投资,为企业数字化转型保驾护航。 亚信安慧AntDB数据库与OceanProtect备份一体机、Oceanstor Dorado全闪存存储系统均是业界领先的创新产品,双方产品的兼容性互认证,将为用户的数字化转型带来以下显著优势: 数据更安全:华为的数据存储产品具有防勒索病毒等安全特性,结合AntDB数据库的安全功能,可提供更高级别的数据保护。 运行更高效:AntDB数据库的US级响应结合OceanStor Dorado全闪存存储等产品的高性能特点,可提升数据处理速度和业务响应时间。 效益更突出:通过算法优化提升存储利用率,降低企业运营成本;同时提供专业的技术支持和服务,保障系统持续运行。 流程更简化:兼容性互认证意味着企业可以采用统一的管理工具和流程来管理数据存储,简化IT管理。 未来,亚信安慧与华为数据存储将继续深化合作,围绕提升产品性能、优化用户体验和加强安全保障等方面联合创新,构建开放、合作、共赢的产业生态,为用户提供更加稳定可靠的数据服务。推动产业升级。双方共同致力于为用户提供更加稳定可靠的数据服务,为我国信创产业的可持续发展贡献核心动力。 关于亚信安慧AntDB数据库 AntDB数据库始于2008年,在运营商的核心系统上,服务国内24个省市自治区的数亿用户,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行超十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。

生信入门-R/Rstudio近期安装GSVA包后使用gsva函数报错Calling gsva(expr=., gset.idx.list=., method=., ...) is defunct

解决方法如下: (我的R版本4.4.0,GSVA版本1.52.5,官方表示只要保证均为最新应该是一句warning而不是error(然已确认全部最新版本但并未解决,因此出此方法)): 首先给一个gsvaP(or other names) <- ssgseaParam( exprData = expr, geneSets = cellMarker, assay = NA_character_, annotation = NA_character_, minSize = 1, maxSize = Inf, alpha = 0.25, normalize = TRUE ) 再gsva_data(or other names) <- gsva(gsvaP) 附解决思路:网页检索/仔细看报错/?gsva查看帮助页更新(最终解决途径) P.S.: 个人R自学记录,为帮助遇到同样问题的朋友们,如有不对或更简单的解决方法欢迎大佬赐教

Android Activity 设计详解

文章目录 Android Activity 设计说明1. `Activity` 的生命周期2. `Activity` 的启动模式3. `Activity` 的通信4. `Activity` 的布局和视图管理5. `Activity` 的配置变化处理6. `Activity` 的保存和恢复状态7. `Activity` 的任务和返回栈 总结 Android Activity 设计说明 在 Android 中,Activity 是一个应用程序组件,提供一个屏幕供用户进行交互。每个 Activity 负责管理用户界面的一个独立部分,并处理用户的交互。下面是 Activity 的设计及其关键部分的详细说明。 1. Activity 的生命周期 Activity 的生命周期方法用于管理其状态转换。主要的生命周期方法有: onCreate(Bundle savedInstanceState): Activity 被创建时调用。在这里进行初始化,如设置布局、初始化组件等。onStart(): Activity 即将可见时调用。onResume(): Activity 即将开始与用户交互时调用。onPause(): 系统即将启动另一个 Activity 时调用。用于保存状态和释放资源。onStop(): Activity 不再可见时调用。通常用于释放资源。onDestroy(): Activity 被销毁前调用。用于清理资源。onRestart(): Activity 从停止状态再次启动前调用。 这些方法帮助 Activity 管理其状态并与用户进行交互。 2. Activity 的启动模式 Android 提供了几种不同的启动模式,用于定义 Activity 的启动行为。主要有以下几种: standard: 每次启动 Activity 都会创建一个新的实例。singleTop: 如果当前任务的栈顶已经有该 Activity 实例,则重用该实例,否则创建新的实例。singleTask: 在栈中只保留一个 Activity 实例,如果实例存在,则将其置于栈顶。singleInstance: 创建一个单独的任务栈来管理该 Activity,并且在该任务栈中只存在这一个 Activity 实例。 启动模式在 AndroidManifest.

使用 Go 实现 HelloWorld 程序,并分析其结构

在学习任何新的编程语言时,编写一个 “Hello, World” 程序通常是最初的入门步骤。这不仅是一个传统,也是一种快速了解语言基本语法和运行机制的有效方法。对于 Go 语言,这个过程不仅可以帮助新手快速入门,还提供了一个窗口,通过它可以深入了解 Go 的一些核心概念,如包管理、函数声明、以及其他语言结构。 本文旨在通过实现一个简单的 “Hello, World” 程序,展示如何使用 Go 语言。我们不仅会逐行分析代码,还会探讨 Go 的编译和执行流程,以及如何使用标准库中的功能。通过这种方式,我们可以清楚地看到 Go 程序的基本构成,以及它为什么能够在软件开发中提供高效率和高性能。 文章目录 1、Hello World1.1、创建示例程序文件夹2.2、编写并运行第一个 Go 程序 2、"hello,world" 示例程序的结构2.1、包声明与 main 包2.2、导入语句2.3、主函数 1、Hello World 程序员这个职业虽然历史不长,但它继承了一项悠久的编程传统:几乎每种编程语言的学习都从一个名为"hello, world"的示例程序开始。这一传统始于 20 世纪 70 年代,由布莱恩·科尼根(Brian W. Kernighan)和 C 语言之父丹尼斯·里奇(Dennis M. Ritchie)合著的著名书籍《C 程序设计语言》。 接下来,我们将遵循这一传统,使用 Go 语言编写一个打印"hello, world"的示例程序,开启我们的 Go 编程之旅。希望通过这个示例,你能对 Go 程序的结构有一个直观且清晰的理解。在正式开始之前,请注意,对于开发 Go 程序所使用的编辑器工具,我们没有任何具体的要求。 1.1、创建示例程序文件夹 在 Go 语言中编写一个打印"hello, world"的程序是一个简单且经典的入门练习,整个过程只需要两步:创建文件夹和编写及运行代码。首先,我们需要创建一个文件夹来存储我们的 Go 代码。 现在,我们可以打开终端并使用以下命令来创建一个名为 “helloworld” 的文件夹,这个文件夹将用来存储我们的 “hello, world” 示例程序。无论是在 Linux 系统、macOS 系统,还是在 Windows 系统的 PowerShell 终端,这个命令都是相同的:

基于大数据+Spark电力能耗数据分析与可视化平台设计与实现

博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作✌ 主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅ Java项目精品实战案例《100套》 Java微信小程序项目实战《100套》 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人 目录 一、前言介绍: 二、功能设计: 三、功能实现: 四、库表设计: 五、关键代码: 六、论文参考: 七、其他案例: 八、推荐项目: 九、源码获取: 一、前言介绍: 随着经济的发展和人口的增加,能源消耗也在不断增加。电力作为人们生产和生活中不可或缺的一部分,对于能源消耗的贡献也非常大。传统的电力供应模式已经无法满足人们对电力的需求,同时也带来了环境污染等问题。如何优化电力供应模式,提高能源利用效率,成为了当前亟待解决的问题。而电力能耗数据分析正是解决这一问题的有效手段之一。本研究基于Spark技术对电力能耗数据进行分析,旨在为电力企业提供决策支持,优化能源消耗结构,提高能源利用效率。通过对历史用电数据的分析,可以得到不同时间段内的用电趋势、用电负荷分布、能源消耗结构等信息,为电力企业的生产管理和决策提供科学依据。该系统可以帮助政府制定合理的能源政策,促进可持续发展。还可以为普通用户提供更加智能化的用电服务,提高用电效率,节约能源。因此,本研究具有重要的理论和实践意义。 近年来,随着大数据技术的快速发展,电力能耗数据分析系统在国内得到了广泛的关注和应用。国内学者和研究人员在电力能耗数据分析领域开展了大量的研究工作,涉及到数据清洗、特征提取、模型训练等方面。基于Spark技术的电力能耗数据分析系统成为了研究的热点之一。许多研究者利用Spark技术对电力能耗数据进行分析,得出了不同时间段内的用电趋势、用电负荷分布、能源消耗结构等信息,为电力企业的生产管理和决策提供了科学依据。 在国外,电力能耗数据分析也受到了广泛的关注和应用。许多国外的研究机构和企业都在开展相关的研究工作。其中,美国、欧洲等发达国家在电力能耗数据分析领域的研究处于领先地位。这些国家的研究者们利用先进的技术和方法对电力能耗数据进行分析,探索出了一些新的模型和方法,如深度学习、神经网络等。这些国家还注重将研究成果应用到实际生产中,为电力企业提供更加智能化的决策支持。 二、功能设计: 三、功能实现: 四、库表设计: 五、关键代码: # # -*- coding: utf-8 -*- # 数据爬取文件 import scrapy import pymysql import pymssql from ..items import DianlixinxiItem import time from datetime import datetime,timedelta import datetime as formattime import re import random import platform import json import os import urllib from urllib.

【高阶数据结构(七)】B+树, 索引原理讲解

💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:高阶数据结构专栏⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习更多数据结构 🔝🔝 高阶数据结构 1. 前言2. B+树讲解3. B*树讲解4. 索引原理5. 总结 1. 前言 B树并不常用,就是因为有B+树的存在. MySQL的索引底层其实就是使用了B+树,请听我娓娓道来 本章重点: 本篇文章着重讲解B+树, B*树的概念和结构, 讲解引擎:MyISAM和 InnoDB的索引的底层原理 2. B+树讲解 B+树是B树的变形,是在B树基础上优化的多路平衡搜索树,B+树的规则跟B树基本类似,但是又在B树的基础上做了以下几点改进优化: 分支节点的子树指针与关键字个数相同分支节点的子树指针p[i]指向关键字值大小在[k[i],k[i+1])区间之间所有叶子节点增加一个链接指针链接在一起所有关键字及其映射数据都在叶子节点出现 B+树的这个改进有效的减少了B树的消耗. 在最左边的叶子节点中, 是用链表将不同值链接起来的,并且父节点的关键字5就是链表的第一个元素, 链表中所有的元素都满足 5<=x<10. 所以可以看出, B树系列的数据结构就是一颗矮胖树,设计成为矮胖树的原因是查找时, 进行磁盘OI的次数少了,自然就提高效率了. 某种意义上来讲,B树系列更像是书本前面的目录, 方便你轻松的查找到一个值 B+树的分裂: 当一个结点满时,分配一个新的结点,并将原结点中1/2的数据复制到新结点,最后在父结点中增加新结点的指针;B+树的分裂只影响原结点和父结点,而不会影响兄弟结点,所以它不需要指向兄弟的指针。 分裂属于拓展,有兴趣可自行查资料 3. B*树讲解 B*树是B+树的变形,在B+树的非根和非叶子节点再增加指向兄弟节点的指针。 B*树的分裂: 当一个结点满时,如果它的下一个兄弟结点未满,那么将一部分数据移到兄弟结点中,再在原结点插入关键字,最后修改父结点中兄弟结点的关键字(因为兄弟结点的关键字范围改变了);如果兄弟也满了,则在原结点与兄弟结点之间增加新结点,并各复制1/3的数据到新结点,最后在父结点增加新结点的指针。所以,B*树分配新结点的概率比B+树要低,空间使用率更高; 虽然说B*树的空间利用率更高, 但是它的设计更绕更复杂, 所以在实际生活中, 反而B+树的运用场景比较多 4. 索引原理 B-树最常见的应用就是用来做索引。索引通俗的说就是为了方便用户快速找到所寻之物,比如: 书籍目录可以让读者快速找到相关信息,hao123网页导航网站,为了让用户能够快速的找到有价 值的分类网站,本质上就是互联网页面中的索引结构。 MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构,简单来说:索引就是数据结构。 MyISAM引擎: B+树 MyISAM引擎的B+树的叶子节点只是保存了表数据的地址, 当你通过索引查找对应的地址后, 再使用此地址直接找到数据. 这种索引方式称为非聚簇索引 InnoDB引擎: B+ InnoDB支持B+树索引、全文索引、哈希索引。但InnoDB使用B+Tree作为索引结构时,具体实现方式却与MyISAM截然不同。第一个区别是InnoDB的数据文件本身就是索引文件。MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。而InnoDB索引,表数据文件本身就是按B+Tree组织的一个索引结构,这棵树的叶节点data域保存了完整的数据记录。这个索引的key是数据表的主键,因此InnoDB表数据文件本身就是主索引. 叶节点包含了完整的数据记录,这种索引叫做聚集索引. 因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键. 学过MySQL的伙伴可能知道, 不仅仅主键可以根据主键创建索引, 还有唯一键索引,普通索引等. 那么他们是怎样工作的呢? 答案是, 非主键索引的B+树的叶子节点中存储的是这一行对应的主键值, 然后再根据这个主键值去主键索引中找到所有数据

Debian常用命令

Debian是一种广泛使用的Linux发行版,它是基于自由软件的原则而开发的,并且有着庞大的软件仓库和活跃的社区。在使用Debian时,了解一些常用命令是非常有帮助的,下面是一些常用的Debian命令: apt-get:这是Debian中最常用的命令之一,用于安装、升级、移除和管理软件包。例如,使用apt-get install命令可以安装一个软件包,使用apt-get upgrade命令可以升级系统中的所有软件包。 dpkg:这是Debian中的软件包管理工具,可以用来安装、升级和移除软件包。dpkg命令比apt-get更底层,通常用于操作本地的二进制软件包。 apt-cache:这是一个用于查询软件包信息的命令。apt-cache search命令可以用来搜索特定的软件包,apt-cache show命令可以显示软件包的详细信息。 aptitude:这是一个功能强大的命令行界面的软件包管理器。它可以用来安装、升级、移除和管理软件包。aptitude比apt-get更高级,具有更多的功能和选项。 apt:这是Debian中的高级软件包管理工具,包含了apt-get、apt-cache等命令的功能。apt命令提供了一个更简单和一致的界面,可以用来安装、升级、移除和管理软件包。 wget:这是一个用于从网络上下载文件的命令。wget命令非常强大,支持断点续传、递归下载、下载限速等功能。 tar:这是一个用于打包和解压缩文件的命令。tar命令可以创建.tar文件(也称为tarball)和.tar.gz文件(也称为tarball压缩文件),并可以用来解压缩这些文件。 gzip:这是一个用于压缩文件的命令。gzip命令可以将文件压缩成.gz文件,并可以用gunzip命令解压缩这些文件。 find:这是一个用于查找文件和目录的命令。find命令可以根据文件名、文件类型、文件大小等条件进行搜索。 grep:这是一个用于在文件中搜索特定模式的命令。grep命令可以根据正则表达式进行搜索,并可以通过选项指定搜索的范围和条件。 ls:这是一个用于列出文件和目录的命令。ls命令可以显示文件的权限、所有者、大小、修改日期等信息。 cd:这是一个用于改变当前工作目录的命令。cd命令可以切换到指定的目录,也可以通过特殊符号(如..表示上级目录)进行相对路径的切换。 pwd:这是一个用于显示当前工作目录的命令。pwd命令可以显示当前所处的目录的绝对路径。 rm:这是一个用于删除文件和目录的命令。rm命令可以用来删除文件,使用-r选项可以删除目录。 cp:这是一个用于复制文件和目录的命令。cp命令可以将文件从一个位置复制到另一个位置,使用-r选项可以复制目录。 mv:这是一个用于移动文件和目录的命令。mv命令可以将文件从一个位置移动到另一个位置,也可以用来重命名文件。 chmod:这是一个用于修改文件和目录的权限的命令。chmod命令可以改变文件的所有者、所属组和权限。 chown:这是一个用于修改文件和目录的所有者和所属组的命令。chown命令可以改变文件的所有者和所属组。 chgrp:这是一个用于修改文件和目录的所属组的命令。chgrp命令可以改变文件的所属组。 passwd:这是一个用于修改用户密码的命令。passwd命令可以用来修改当前用户和其他用户的密码。 useradd:这是一个用于创建新用户的命令。useradd命令可以用来创建新的系统用户,并可以指定用户的家目录、所属组等信息。 userdel:这是一个用于删除用户的命令。userdel命令可以用来删除系统用户,并可以选择是否同时删除用户的家目录。 groupadd:这是一个用于创建新用户组的命令。groupadd命令可以用来创建新的用户组,并可以指定用户组的ID号。 groupdel:这是一个用于删除用户组的命令。groupdel命令可以用来删除用户组,并可以选择是否同时删除用户组中的用户。 ifconfig:这是一个用于配置和显示网络接口的命令。ifconfig命令可以用来查看当前系统中的网络接口信息,并可以用来配置网络接口的IP地址、子网掩码等参数。 route:这是一个用于显示和配置系统的路由表的命令。route命令可以用来查看当前系统中的路由表信息,并可以用来添加、删除和修改路由规则。 netstat:这是一个用于显示网络连接和网络统计信息的命令。netstat命令可以用来查看当前系统中的网络连接和对应的进程,并可以显示网络接口的信息和网络统计信息。 ping:这是一个用于测试网络连通性的命令。ping命令可以用来发送ICMP回显请求到目标主机,并可以显示目标主机的响应时间。 ssh:这是一个用于远程登录和执行命令的命令。ssh命令可以用来通过安全的加密通道连接到远程主机,并可以在远程主机上执行命令。 scp:这是一个用于在本地主机和远程主机之间复制文件的命令。scp命令可以用来通过安全的加密通道复制文件,类似于cp命令。 这只是Debian中一些常用的命令的概览,还有很多其他命令和工具可以用来完成更特定的任务。希望这些命令能对你在Debian中的使用有所帮助。

苹果iOS18将引入ChatGPT;美国AI禁令再升级;微软首发Phi-3多模态模型 | AI头条

整理 | 王轶群 出品 | AI 科技大本营(ID:rgznai100) 一分钟速览新闻点! 谷歌努力手动删除搜索中奇怪的人工智能答案 苹果和OpenAI签订协议,将在iOS18引入ChatGPT 微软发布主打视觉能力的 Phi-3-vision 模型 苹果押注庞大的用户群助力其在人工智能领域取胜 软银寻求每年90亿美元的AI投资,同时寻求更大的交易 在关于现实问题和日常任务的回答测试上,Perplexity总分位列第一,超越ChatGPT、Copilot、Gemini、Claude Rapidus 确认在 2nm 采用 0.33NA EUV 光刻机,已规划 1.4nm 节点 研究发现 GPT-4 在预测未来企业盈利增长方面的表现优于人类分析师 第一部人工智能长篇小说《天命使徒》在上海发布 美国 AI 禁令再升级:在美从事 AI 职业中国人或需要特殊许可 全球 AI 要闻 谷歌努力手动删除搜索中奇怪的人工智能答案 社交媒体上充斥着谷歌新 AI Overview 产品说怪话的例子,从告诉用户在披萨上涂胶水到建议他们吃石头。这种混乱的出现,意味着谷歌正在竞相手动禁用特定搜索的 AI Overview,这就是为什么用户看到很多表情包在发布到社交网络后不久就消失了。 谷歌表示,其 AI 概览产品主要向用户输出“高质量信息”。谷歌正在“迅速采取行动”,在“符合我们内容政策的适当情况下”删除某些查询的 AI Overviews。谷歌发言人 Meghann Farnsworth 在给The Verge 的电子邮件中表示:“我们看到的许多示例都是不常见的查询,我们也看到了被篡改或我们无法重现的示例。” Farnsworth 还证实,该公司正在“迅速采取行动”,根据我们的内容政策删除某些查询的 AI 概览,并利用这些示例对我们的系统进行更广泛的改进,其中一些改进已经开始推出。”(The Verge) 苹果和OpenAI签订协议,将在iOS18引入ChatGPT 据彭博社记者马克-格尔曼(Mark Gurman)报道,苹果的 iOS 18 更新将推出新功能,进一步定制 iPhone 的主屏幕。古尔曼在其最新一期“Power On”时事通讯中称,苹果将允许用户在 iOS 18 中更改应用程序图标的颜色。例如,"

【Ambari】Docker 安装Ambari 大数据单机版本

目录 一、前期准备 1.1 部署 docker 1.2 部署 docker-compose 1.3 版本说明 二 、镜像构建启动 2.1 系统镜像构建 2.2 安装包源镜像构建 2.3 kdc镜像构建 2.4 集群安装 2.5 容器导出为镜像 三、Ubuntu环境安装测试 3.1 环境准备 3.2 集群容器启动 一、前期准备 1.1 部署 docker # 安装yum-config-manager配置工具 yum -y install yum-utils # 建议使用阿里云yum源:(推荐) #yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装docker-ce版本 yum install -y docker-ce # 启动并开机启动 systemctl enable --now docker docker --version docker info 1.2 部署 docker-compose curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose --version 创建网络

【面试干货】插入排序

【面试干货】插入排序 1、实现思想2、代码实现 💖The Begin💖点点关注,收藏不迷路💖 1、实现思想 插入排序的实现思想是将数组分为已排序区间和未排序区间。初始时,已排序区间只包含第一个元素,然后依次从未排序区间取出元素,插入到已排序区间的合适位置,使得已排序区间仍然保持有序。 具体步骤如下: 从第一个元素开始,该元素可以认为已经被排序。取出下一个元素,在已经排序的元素序列中从后向前扫描。如果该元素(已排序)大于新元素,将该元素移到下一位置。重复步骤 3,直到找到已排序的元素小于或者等于新元素的位置。将新元素插入到该位置中。重复步骤 2,直到所有元素都排序完成。 通过不断将未排序区间的元素插入到已排序区间的合适位置,最终完成整个数组的排序。插入排序是一种稳定的排序算法,时间复杂度为O(n^2),适用于小规模数据或基本有序的数据。 2、代码实现 package csdn; import java.util.Scanner; // 导入Scanner类,用于从控制台读取输入 public class InsertionSort { /** * 插入排序 * * 从第一个元素开始,该元素可以认为已经被排序 * 取出下一个元素,在已经排序的元素序列中从后向前扫描 * 如果该元素(已排序)大于新元素,将该元素移到下一位置 * 重复步骤 3,直到找到已排序的元素小于或者等于新元素的位置 * 将新元素插入到该位置中 * 重复步骤 2 * * @param numbers 待排序的数组 */ public static void insertSort(int[] numbers) { int size = numbers.length, temp, j; // 声明变量size为数组长度,temp用于暂存当前元素,j用于记录位置 for (int i = 1; i < size; i++) { // 外层循环,从第二个元素开始遍历数组 temp = numbers[i]; // 取出当前元素 for (j = i; j > 0 && temp < numbers[j - 1]; j--) { // 内层循环,向前比较并移动元素 numbers[j] = numbers[j - 1]; // 将大于当前元素的元素向后移动 } numbers[j] = temp; // 将当前元素插入到正确位置 } } public static void main(String[] args) { Scanner scanner = new Scanner(System.