澎湃算力 玩转AI 华为昇腾AI开发板——香橙派OriengePi AiPro边缘计算案例评测
澎湃算力 玩转AI 华为昇腾AI开发板 香橙派OriengePi AiPro 边缘计算案例评测
人工智能(AI)技术正以前所未有的速度改变着我们的生活、工作乃至整个社会的面貌。作为推动这一变革的关键力量,边缘计算与AI技术的深度融合正成为行业发展的新趋势。正是基于这样的背景,香橙派与华为昇腾携手合作,共同推出了OrangePi AIpro一款专为边缘计算设计的AI开发板,它不仅承载着双方对技术创新的不懈追求,更预示着AI技术普及与应用的新篇章。
OrangePi AIpro的诞生,是香橙派在智能硬件领域深耕细作与华为昇腾在AI技术方面深厚积累的完美结合。香橙派,作为开源硬件领域的佼佼者,一直致力于为开发者提供高性能、易上手的硬件平台;而华为昇腾,作为华为在AI领域的核心品牌,其先进的AI处理器和解决方案在全球范围内享有盛誉。两者的合作,无疑为AI开发者们带来了一款集高性能、灵活性、易用性于一身的优质产品。
本次开箱测评,我有幸成为体验者之一,将探索OrangePi AIpro的每一个细节,从外观设计到内部构造,从硬件配置到软件生态,全方位、多角度地展现这款产品的魅力所在。我相信,通过我的测评,广大读者将能够更加直观地了解OrangePi AIpro的优势与特点,为他们的AI项目选择最合适的硬件平台提供有力参考。
OrangePi AIpro 开发板官方网站
http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-AIpro.html
华为昇腾 AI 技术
华为昇腾 AI 技术路线以CANN作为核心架构基础,CANN(Compute Architecture for Neural Networks)是华为针对AI场景推出的异构计算架构,对上支持多种AI框架,对下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。支持的AI框架包括华为全场景AI框架昇思MindSpore,也包括常见的AI开发框架(PyTorch,TensorFlow,Paddlepaddle)等。
官方网址 https://www.hiascend.com/#/
开发文档 https://www.hiascend.com/zh/document
1.OriengePi AiPro 开发板开箱
-
硬件资源
CPU 4核64位处理器+ AI处理器(昇腾310B4) GPU 集成图形处理器 AI算力 8-12TOPS算力 内存 LPDDR4X:8GB/16GB(可选),速率:3200Mbps 存储 • SPI FLASH:32MB • SATA/NVME SSD(M.2接口2280) • eMMC插槽:32GB/64GB/128GB/256GB(可选),eMMC5.1 HS400 • TF插槽 WIFI+蓝牙 Wi-Fi 5双频2.4G和5G BT4.2/BLE 以太网收发器 10/100/1000Mbps以太网 显示 • 2xHDMI2.0 Type-A TX 4K@60FPS • 1x2 lane MIPI DSI via FPC connector 摄像头 2x2-lane MIPI CSI camera interface,兼容树莓派摄像头 USB • USB 3.0 HOST x2 • USB Type-C 3.0 HOST x1 • Micro USB x1 串口打印功能 音频 3.5mm耳机孔音频输入/输出 按键 1x关机键、1xRESET键、2x启动方式拨动键、1x烧录按键 40PIN 40PIN 功能扩展接口,支持以下接口类型: GPIO、UART、I2C、SPI、 I2S、PWM 风扇 风扇接口x1 预留接口 2PIN电池接口 电源 Type-C PD 20V IN ,标准65W 支持的操作系统 Ubuntu、openEuler 产品尺寸 107*68mm 重量 82g -
软件资源
OrangePi官方提供大量的开发板的资料,主要包括官方工具,用户使用手册,以及官方镜像文件。官方提供的用户使用手册记录比较丰富,从软件安装,环境搭建,到AI案例应用测试。
同时在昇腾论坛上有大量的教程,例如香橙派AIpro学习资源一站式导航香橙派AIpro学习资源可以去参考学习。
在操作系统方面,Orange Pi AIpro支持Ubuntu、openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求,可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。Ubuntu、openEuler操作系统镜像下载地址如下:
Openeuler镜像
Ubuntu镜像
- 开发板实物效果展示
从申请到拿到开发板很快啊,我已经迫不及待的想玩了。打开包装后,首先映入眼帘的是精心排列的配件。除了OrangePi AIpro开发板本体之外,还配备了电源适配器和数据线、一张预装了操作系统的SD卡。这些配件的配备充分考虑了用户在实际使用中的需求,为用户提供了极大的便利。拿到的开发板实物默认跑Openeuler系统的,我立马接上HDMI,电源线,USB线,开玩。
2.OriengePi AiPro 开发板环境搭建
以Ubuntu 版本镜像进行烧录,以完成下面的评测。(主要是熟悉在Ubuntu系统进行开发,Openeuler版本不怎么熟悉,但是有时间也去体验Openeuler版本的系统进行测试学习)。开发环境搭建主要会使用到下面的东西,基本上都在官方提供的网盘里面,自行下载即可。
-
下载官方镜像文件
其中ubuntu22.04_minimal是纯命令行的版本,ubuntu22.04_deskto是带桌面的版本。(为了方便使用,下载的是带桌面的版本,从百度网盘里面下载之后,需要解压,系统镜像较大,需要一段时间)。 -
SD卡烧录镜像
在烧录SD卡镜像之前,需要将镜像文件下载到SD中,因此需要下载的官方工具中的 BalenaEtcher进行处理。(这里我下载的balenaEtcher-Portable-1.18.4版本,不需要安装,点击打开就可以直接使用)
但是在使用BalenaEtcher烧录镜像过程中,虽然能够烧录完成,但是会出现验证失败,导致烧录镜像,出现问题。可能的原因包括读卡器有问题,或者SD卡有问题,因此我换了卡和读卡器,打算重新下载。当然在搜索解决问题的方法过程中,有人指出BalenaEtcher软件需要以管理员身份运行,但是按照管理员身份运行还是下载失败。经过群友的指点,使用了昇腾开发者套件一键制卡工具,完成了系统镜像烧录。
-
启动开发板
开发板支持从 TF 卡、eMMC 和 SSD(支持 NVMe SSD 和 SATA SSD)启动。具体从哪个设备启动是由开发板背面的两个拨码(BOOT1 和 BOOT2)开关来控制的BOOT1 和 BOOT2 两个拨码开关都支持左右两种设置状态,所以总共有 4 种设置状态,开发板目前只使用了其中的三种。开发板BOOT1 和 BOOT2 两个拨码默认都是右边状态,不需要改动。镜像烧录完成后,我们将TF卡重新插回到香橙派AIpro开发板中,开机,启动,然后就是输入密码,默认密码为:Mind@123,进入系统。
-
查看开发板信息
打开香橙派 AIpro终端,输入以下代码:npu-smi info;
-
连接网络
-
连接串口线,登录开发板
使用串口登陆开发板,一切正常。
- SSH远程登录
SSH远程远程登陆需要配置一下网络。先扫描无线热点:使用命令扫描 nmcli dev wifi ,这样就可以看到我的无线热点了。
连接无线热点:使用以下命令连接指定的热点,注意【ap-name】【ap-passwprd】要替换成你自己的无线热点名称和对应的密码。sudo nmcli dev wifi connect ap-name password ap-passwprd
显示连接无线热点成功后,可以查看OrangePi板子的IP地址。
使用SSH工具登陆即可。
- 简单使用测试
简单的Linux测试,Git使用,PDF阅读,播放视频没有任何问题。
- 简单使用测试总结
在简单的使用OrangePi AIpro开发板测试之后,其完全可以被视为一个小型电脑。它集成了高性能的处理器、足够的内存和存储空间(通过SD卡或外接硬盘扩展),以及丰富的输入输出接口,这使得它能够处理多种复杂的计算任务和应用场景。
3.OriengePi AiPro 开发板案例测试
- 测试部署YOLOv5模型
YOLOv5 是一个面向实时工业应用而开源的目标检测算法,受到了广泛关注。YOLOv5 的不同变体(如 YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x 和 YOLOv5n)表示不同大小和复杂性的模型。这些变体在速度和准确度之间提供了不同的权衡,以适应不同的计算能力和实时性需求。下面简要介绍这些变体的区别:
YOLOv5s:这是 YOLOv5 系列中最小的模型。“s” 代表 “small”(小)。该模型在计算资源有限的设备上表现最佳,如移动设备或边缘设备。YOLOv5s 的检测速度最快,但准确度相对较低。
YOLOv5m:这是 YOLOv5 系列中一个中等大小的模型。“m” 代表 “medium”(中)。YOLOv5m 在速度和准确度之间提供了较好的平衡,适用于具有一定计算能力的设备。
YOLOv5l:这是 YOLOv5 系列中一个较大的模型。“l” 代表 “large”(大)。YOLOv5l 的准确度相对较高,但检测速度较慢。适用于需要较高准确度,且具有较强计算能力的设备。
YOLOv5x:这是 YOLOv5 系列中最大的模型。“x” 代表 “extra large”(超大)。YOLOv5x 在准确度方面表现最好,但检测速度最慢。适用于需要极高准确度的任务,且具有强大计算能力(如 GPU)的设备。
YOLOv5n:这是 YOLOv5 系列中的一个变体,专为 Nano 设备(如 NVIDIA Jetson Nano)进行优化。YOLOv5n 在保持较快速度的同时,提供适用于边缘设备的准确度。
从Yolov5 的网络结构图,可以看出,还是分为Input、Backbone、Neck、Prediction四个部分。
(1)Input:Mosaic数据增强、自适应锚框计算、自适应图片缩放
(2)Backbone:Focus结构,CSP结构
(3)Neck:FPN+PAN结构
(4)Prediction:GIOU_Loss
Python是运行YOLOv5的基础条件,开发板的环境中,已经默认安装了Python 3.9,因此无需安装。
从GitHub克隆YOLOv5的官方仓库:
安装YOLOv5依赖:git clone https://github.com/ultralytics/yolov5.git cd yolov5
在YOLOv5仓库的根目录下,使用pip安装requirements.txt中列出的依赖.(第一次按照速度可能比较慢,因此需要等待)
当然如果上面无法git clone 下来可以直接下载压缩包即可。pip install -r requirements.txt
为了测试YOLOv5模型的效果,我们将使用预训练模型识别一些图片。
运行以下命令:
python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpgpython segment/predict.py --weights yolov5m-seg.pt --data data/images/by.jpgpython segment/predict.py --weights yolov5m-seg.pt --data data/images/hw.jpg
这个里面的yolov5m-seg.pt如果不存在,会自动到github上去下载,但是速度极慢,建议是下载好,然后指定对应路径的pt文件。测试效果如下:
使用yolo对视频进行实时监测,则需要添加video文件夹,添加视频文件。
使用yolo对视频进行实时监测,需要修改源码detect.py的361行。
修改代码如下
# parser.add_argument("--source", type=str, default=ROOT / "data/images", help="file/dir/URL/glob/screen/0(webcam)")parser.add_argument("--source", type=str, default=ROOT / "data/video", help="file/dir/URL/glob/screen/0(webcam)")
运行代码,测试效果如下:
python segment/predict.py --weights ~/Documents/yolov5m-seg.pt --source ~/Downloads/yolo.mp4
python segment/predict.py --weights ~/Documents/yolov5m-seg.pt --source ~/Downloads/foot.mp4
澎湃算力 玩转AI 华为昇腾AI开发板YoloV5测试
2. 测试基于Yolov5的车牌识别系统
此是一个基于深度学习的 车牌号检测和识别系统 ,旨在提供一个高效、准确的解决方案,用于识别 中国车牌号 。该项目利用先进的卷积神经网络 (CNN) 技术,实现了从图像中 自动检测 和 识别车牌号 的功能,是智能交通系统中的重要组成部分。
代码地址 https://github.com/we0091234/Chinese_license_plate_detection_recognition
4.OriengePi AiPro 使用体会
自从我开始使用Orange Pi AIpro这款基于昇腾深度研发的AI开发板以来,它给我留下了深刻而积极的印象。作为一款业界领先的AI开发工具,Orange Pi AIpro不仅在技术规格上令人瞩目,更在实际应用中展现了其强大的实力和广泛的适用性。从下面几个角度进行总结:
丰富的接口与扩展性:Orange Pi AIpro提供了多种接口和扩展选项,包括但不限于USB、HDMI、GPIO等,方便用户连接各种传感器、摄像头、显示屏等外设。这种高度的灵活性和可扩展性使得Orange Pi AIpro能够轻松适应不同的应用场景和需求。
应用领域广泛:Orange Pi AIpro的广泛适用性也是其一大亮点。从AI边缘计算到深度视觉学习,从视频图像分析到自然语言处理,再到智能小车、机械臂、无人机等AI应用场景,Orange Pi AIpro都能发挥其独特优势,为各行各业提供强大的技术支持。这种跨领域的适用性使得Orange Pi AIpro成为了我手中不可或缺的AI开发工具。
性能表现:在性能方面,Orange Pi AIpro展现出了令人满意的实力。其强大的处理能力和高效的运算速度,使得AI算法的原型验证和推理应用开发变得轻松愉快。无论是在深度视觉学习、视频流AI分析还是自然语言处理等领域,Orange Pi AIpro都能游刃有余地完成任务,为我的项目开发节省了大量时间和成本。
易用的开发环境与技术支持:为了降低开发门槛,Orange Pi AIpro提供了友好的开发环境和完善的开发工具链。这包括详细的硬件规格书、软件开发包(SDK)、示例代码、教程以及活跃的开发者社区等。这些资源有助于开发者快速上手并高效地完成项目开发。此外,Orange Pi AIpro的技术服务支持也是我非常满意的一点。官方提供了详尽的技术文档和教程,帮助用户快速上手并解决问题。同时,社区内的活跃氛围也让我感受到了来自同行的支持和帮助。在遇到难题时,我总能从社区中找到答案或得到启发。
总结
总的来说,Orange Pi AIpro是一款性能卓越、易于上手、服务完善的AI开发板。它不仅满足了我对AI算法原型验证和推理应用开发的需求,还为我打开了通往AI世界的大门。Orange Pi AIpro社区有不少的大佬,都有GPT大模型部署的案例了,有时间我也一定去玩玩本地部署大模型。我相信在未来的AI项目中,Orange Pi AIpro将继续发挥重要作用,助我实现更多创新想法和应用场景。
相关文章:
澎湃算力 玩转AI 华为昇腾AI开发板——香橙派OriengePi AiPro边缘计算案例评测
澎湃算力 玩转AI 华为昇腾AI开发板 香橙派OriengePi AiPro 边缘计算案例评测 人工智能(AI)技术正以前所未有的速度改变着我们的生活、工作乃至整个社会的面貌。作为推动这一变革的关键力量,边缘计算与AI技术的深度融合正成为行业发展的新趋势…...
<数据集>铁轨缺陷检测数据集<目标检测>
数据集格式:VOCYOLO格式 图片数量:844张 标注数量(xml文件个数):844 标注数量(txt文件个数):844 标注类别数:3 标注类别名称:[Spalling, Squat, Wheel Burn] 序号类别名称图片数框数1Spalling3315522…...
第2章 矩阵
A 乘以此列向量,1的位置依次往下,所以A的列向量全为0 B C、D 取BE 要统一...
抖音seo短视频矩阵源码系统开发搭建----开源+二次开发
抖音seo短视频矩阵源码系统开发搭建 是一项技术密集型工作,需要对大数据处理、人工智能等领域有深入了解。该系统开发过程中需要用到多种编程语言,如Java、Python等。同时,需要使用一些框架和技术,如Hadoop、Spark、PyTorch等&am…...
【ELK】简述
ELK 堆栈的作用 大规模日志管理与分析 随着系统规模的扩大,应用程序、服务器和网络设备会产生大量的日志数据。ELK 堆栈可以集中收集、存储和索引这些分散在不同服务器和系统中的日志,方便快速检索和分析,帮助您快速定位系统故障、异常事件和…...
PyTorch张量数值计算
文章目录 1、张量基本运算2、阿达玛积3、点积运算4、指定运算设备⭐5、解决在GPU运行PyTorch的问题 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法&am…...
Dockerfile相关命令
Dockerfile Dockerfile 是一个用来构建Docker镜像的文本文件,包含了一系列构建镜像所需的指令和参数。 指令详解 Dockerfile 指令说明FROM指定基础镜像,用于后续的指令构建,必须为第一个命令MAINTAINER指定Dockerfile的作者/维护者。&…...
【AI教程-吴恩达讲解Prompts】第1篇 - 课程简介
文章目录 简介Prompt学习相关资源 两类大模型原则与技巧 简介 欢迎来到面向开发者的提示工程部分,本部分内容基于吴恩达老师的《Prompt Engineering for Developer》课程进行编写。《Prompt Engineering for Developer》课程是由吴恩达老师与 OpenAI 技术团队成员 I…...
Leetcode - 周赛406
目录 一,3216. 交换后字典序最小的字符串 二,3217. 从链表中移除在数组中存在的节点 三,3218. 切蛋糕的最小总开销 I 四,3219. 切蛋糕的最小总开销 II 一,3216. 交换后字典序最小的字符串 本题要求交换一次相邻字符…...
【JavaScript 算法】拓扑排序:有向无环图的应用
🔥 个人主页:空白诗 文章目录 一、算法原理二、算法实现方法一:Kahn算法方法二:深度优先搜索(DFS)注释说明: 三、应用场景四、总结 拓扑排序(Topological Sorting)是一种…...
Fastgpt本地或服务器私有化部署常见问题
一、错误排查方式 遇到问题先按下面方式排查。 docker ps -a 查看所有容器运行状态,检查是否全部 running,如有异常,尝试docker logs 容器名查看对应日志。容器都运行正常的,docker logs 容器名 查看报错日志带有requestId的,都是 OneAPI 提示错误,大部分都是因为模型接…...
基于深度学习的股票预测
基于深度学习的股票预测是一项复杂且具有挑战性的任务,涉及金融数据的分析和预测。其目的是利用深度学习模型来预测股票价格的走势,从而帮助投资者做出更为准确的投资决策。以下是对这一领域的系统介绍: 1. 任务和目标 股票预测的主要任务和…...
UNiapp 微信小程序渐变不生效
开始用的一直是这个,调试一直没问题,但是重新启动就没生效,经查询这个不适合小程序使用:不适合没生效 background-image:linear-gradient(to right, #33f38d8a,#6dd5ed00); 正确使用下面这个: 生效,适合…...
FinClip 率先入驻 AWS Marketplace,加速全球市场布局
近日,凡泰极客旗下的小程序数字管理平台 FinClip 已成功上线亚马逊云科技(AWS)Marketplace。未来,FinClip 将主要服务于海外市场的开放银行、超级钱包、财富管理、社交电商、智慧城市解决方案等领域。 在全球市场的多样性需求推动…...
ChatGPT对话:Windows如何将Python训练模型转换为TensorFlow.js格式
【编者按】编者目前正在做手机上的人工智能软件,第一次做这种工作,从一些基本工作开始与ChatGPT交流。对初学者应该有帮助。 一天后修改文章补充内容: 解决TensorFlow 2.X与TensorFlow Decision Forests版本冲突问题: 在使用tens…...
封装网络请求 鸿蒙APP HarmonyOS ArkTS
一、效果展示 通过在页面直接调用 userLogin(params) 方法,获取登录令牌 二、申请网络权限 访问网络时候首先需要申请网络权限,需要修改 src/main 目录下的 module.json5 文件,加入 requestPermissions 属性,详见官方文档 【声明权…...
2024年度上半年中国汽车保值率报告
来源:中国汽车流通协会&精真估 近期历史回顾: 2024上半年房地产企业数智化转型报告.pdf 2024国产院线电影路演数据洞察报告.pdf 空间数据智能大模型研究-2024年中国空间数据智能战略发展白皮书.pdf 2024年全球资产管理报告 2024年中型律师事务所的法…...
Go语言之内存分配
文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ Go 语言程序所管理的虚拟内存空间会被分为两部分:堆内…...
北京交通大学《深度学习》专业课,实验3卷积、空洞卷积、残差神经网络实验
一、实验要求 1. 二维卷积实验(平台课与专业课要求相同) ⚫ 手写二维卷积的实现,并在至少一个数据集上进行实验,从训练时间、预测精 度、Loss变化等角度分析实验结果(最好使用图表展示) ⚫ 使用torch.nn…...
WPF中UI元素继承关系
在 WPF(Windows Presentation Foundation)框架中,UI 元素是基于一个层次化的类结构构建的,这个结构以 FrameworkElement 类为核心,大多数 UI 元素都是 FrameworkElement 或其派生类的子类。FrameworkElement 类本身又继…...
qml 实现一个listview
主要通过qml实现listvie功能,主要包括右键菜单,滚动条,拖动改变内容等,c 与 qml之间的变量和函数的调用。 main.cpp #include <QQuickItem> #include <QQmlContext> #include "testlistmodel.h" int main…...
【Leetcode】十六、深度优先搜索 宽度优先搜索 :二叉树的层序遍历
文章目录 1、深度优先搜索算法2、宽度优先搜索算法3、leetcode102:二叉树的层序遍历4、leetcode107:二叉树的层序遍历II5、leetcode938:二叉搜索树的范围和 1、深度优先搜索算法 深度优先搜索,即DFS,从root节点开始&a…...
Ruby教程
Ruby是一种动态的、面向对象的、解释型的脚本语言,以其简洁和易读性而闻名。Ruby的设计哲学强调程序员的生产力和代码的可读性,同时也融合了功能性和面向对象编程的特性。 以下是一个基础的Ruby教程,涵盖了一些基本概念和语法: …...
react + pro-components + ts完成单文件上传和批量上传
上传部分使用的是antd中的Upload组件,具体如下: GradingFilingReportUpload方法是后端已经做好文件流,前端只需要调用接口即可 单文件上传 <Uploadkey{upload_${record.id}}showUploadList{false}accept".xlsx"maxCount{1}customRequest{({ file }) > {const …...
暑假第一周——ZARA仿写
iOS学习 前言首页:无限轮播图商城:分类我的:自定义cell总结 前言 结束了UI的基础学习,现在综合运用开始写第一个demo,在实践中提升。 首页:无限轮播图 先给出效果: 无限轮播图,顾…...
github.com/antchfx/jsonquery基本使用
要在 GitHub 上使用 antchfx/jsonquery 库来查找 JSON 文档中的元素,首先需要了解这个库的基本用法。jsonquery 是一个用于查询 JSON 数据的 Go 语言库,允许使用 XPath 表达式来查找和选择 JSON 数据中的元素。 以下是一些基本步骤和示例,演…...
【python虚拟环境管理】【mac m3】使用poetry管理python项目
文章目录 一. 为什么选择poetry二. poetry相关操作1. 创建并激活环境2. 依赖包管理2.1. 安装项目依赖1.2. 管理不同开发环境的依赖1.3. 依赖维护1.4. 项目相关 Poetry是Python中用于依赖管理和打包的工具。它允许您声明项目所依赖的库,并将为您管理(安装…...
《JavaSE》---16.<抽象类接口Object类>
目录 前言 一、抽象类 1.1什么是抽象类 1.2抽象类代码实现 1.3 抽象类特点 1.4抽象类的作用 二、接口 2.1什么是接口 2.2接口的代码书写 2.3 接口使用 2.4 接口特点 2.5 实现多个接口 快捷键(ctrl i ): 2.6接口的好处 2.7 接…...
简单修改,让UE4/5着色器编译速度变快
简单修改,让UE4/5着色器编译速度变快 目录 简单修改,让UE4/5着色器编译速度变快 一、问题描述 二、解决方法 (一)硬件升级 (二)调整相关设置和提升优先级 1.调整相关设置 (1)…...
如何查看极狐GitLab Helm Chart?
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署…...
网站做博彩反向代理违法/口碑营销公司
在前文中,基于git介绍了webrev工具。实际上,webrev工具还支持hg和svn。最近的工作中不可避免地要使用svn,故在此总结一下如何基于svn在Linux上创建webrev。顺便吐个槽,没有网页版的代码比对,用svn diff简直就是刀耕火种…...
wordpress订单邮件内容修改/廊坊百度关键词优化怎么做
我直接就打开了,而且还显示了旧的仓库,没有提示要登录注册什么的 MacOS SourceTree 安装与使用 - 简书...
小说网站开发业务逻辑/seo黑帽有哪些技术
计算属性 1.作用 1.当需要处理一些复杂的业务逻辑时,需要用到计算属性. 2.一行表达式无法完成的计算时,需要使用计算属性2.使用 * 1.计算属性中定义的属性名可以直接显示在视图中 * 2.计算属性值必须要有return 3.计算属性中属性名不能和data中的属性名重叠 书写规范: comput…...
旅游网站建设目的/by网站域名
一、go的搭建 二、初识go 三、混个脸熟--go 四、go的语言结构 五、go的常量与变量 六、go基础数据类型 七、go 条件语句 八、go 运算符 九、go条件语句switch 十、go循环语句 十一、go之数组 十二、go初级函数 十三、go函数高级运用 十四、go之变量、指针、内存地址 十五、go之…...
网站开发公司上/优化公司网站
大家有没有这样的感受,一涉及XML文档操作就得百度一遍。是不是非!常!烦!。各种类型,各种方法,更别提为了找到一个节点多费劲。本来想写个XML操作的工具方法,写了两行一想既然XML文档是有规律的&…...
苏州沧浪区做网站的/友情链接出售平台
warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default] 警告:不兼容的隐式声明的内置函数的strlen(默认启用) 出现此错误的原因:函数声明的头文件没有包含进来,故将strlen的头文件string.h包含进来&#…...