自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hope_wisdom的技术博客

一起学习,一起成长,一起进步

  • 博客(291)
  • 资源 (19)
  • 问答 (2)
  • 收藏
  • 关注

原创 欧阳修,仕途波澜中的文坛巨匠

欧阳修的一生,是文学与政治交织的一生。他的科举成功开启了仕途,仕途的起伏直接影响了他的文学创作主题和风格。而政治理念的坚持,则贯穿了他整个文学创作和学术研究的始终。他的作品,不仅是文学艺术的瑰宝,也是研究宋代社会、政治、文化不可或缺的珍贵资料。

2024-06-16 18:26:53 190

原创 辛弃疾,笔墨剑影的一生

辛弃疾的一生,是理想与现实激烈碰撞的一生,也是英雄壮志与文人情怀交织的一生。他以词抒怀,将个人命运与国家兴衰紧密相连,成为中国文学史上不可多得的瑰宝。尽管最终未能亲眼见到北伐成功,但他的精神与作品,却激励着一代又一代中华儿女为理想与信念不懈奋斗。

2024-06-16 18:24:27 381

原创 C++ 20新特性之线程与jthread

C++ 20中新引入的std::jthread解决了C++ 11中std::thread的一些不便之处,特别是在线程生命周期管理上的自动化处理。std::jthread是一个智能指针风格的类,它自动join或detach与之关联的线程,从而避免了潜在的资源泄露问题。

2024-06-15 07:39:11 1111 8

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

Onvif的事件处理允许IPC等摄像头主动向客户端(比如:NVR、VMS、平台服务等)推送事件通知,比如:运动检测、音频侦测、视频丢失等报警事件。这种模式打破了传统的轮询查询方式,显著降低了延迟,提高了事件响应效率。这些事件的有效处理,不仅关乎系统的安全性,也直接影响到用户的使用体验。

2024-06-14 07:28:31 980 25

原创 C++ 20新特性之constexpr与consteval

C++ 20在编译时计算和模板元编程方面引入了一些比较重要的改进,其中,constexpr和consteval关键字是两个核心特性,大大增强了C++在编译时执行代码的能力。这两个关键字与C++的泛型编程、模板元编程紧密相关,能够帮助开发者编写出既高效又灵活的代码。

2024-06-14 07:24:45 671 10

原创 从零开始精通Onvif之云台控制

Onvif云台控制主要通过网络协议实现远程操控,具体来说,用户通过客户端软件或移动App向服务器发送控制指令,服务器将指令转发给支持Onvif标准的摄像头设备。摄像头设备接收到指令后,通过内置的电机驱动云台进行旋转、缩放、移动到指定预置位等操作,并将实时画面传输回客户端。整个过程基于网络传输,具有实时性、高效性和稳定性。云台控制,也叫PTZ控制,允许用户远程调节摄像机的平移(Pan)、俯仰(Tilt)和变焦(Zoom)。

2024-06-13 07:36:57 443 16

原创 C++ 20新特性之范围for初始化

在C++ 20之前,使用范围for循环时,必须预先声明迭代变量。这在绝大部分场景下,显得非常繁琐和冗余。在C++ 20中,可以直接在范围for循环中初始化集合。这一改进极大提升了代码的简洁性和易读性,允许开发者在一个循环头部声明并初始化集合,避免了单独的变量声明步骤。对于只需要在循环内部使用的临时集合,这个新特性避免了额外的变量声明,使得代码更加紧凑。另外,范围for初始化将集合的初始化与遍历逻辑紧密结合,使得代码逻辑更加直观,减少了因忘记初始化或错误使用外部变量导致的潜在错误。

2024-06-13 07:35:01 422 5

原创 从零开始精通Onvif之图像编码配置

图像编码,简单来说,就是把摄像头拍摄的画面转换成数字信号的过程。摄像头拍摄的原始画面非常大,但网络传输的带宽是有限的,磁盘存储的空间也是有限的,因此必须进行编码压缩。常见的视频编码格式有H264、H265、MJPEG等,它们就像压缩饼干,能在保证画面质量的同时,大幅度减少视频数据的大小,这对于节省存储空间和提高网络传输效率至关重要。

2024-06-12 07:23:49 358 13

原创 C++ 20新特性之进化的智能指针

智能指针作为C++ 11中自动管理内存的重要工具,包括:std::unique_ptr、std::shared_ptr和std::weak_ptr等。C++ 20对这些智能指针做了进一步的优化和扩展,并引入了新的与内存管理和资源控制相关的功能。下面,我们对一些主要的优化点进行详细的介绍。

2024-06-12 07:20:34 1028 25

原创 C++ 20新特性之Lambda优化

自从C++ 11标准引入Lambda表达式以来,它已经成为现代C++编程中不可或缺的一部分,极大方便了我们的开发工作,提升了效率。而C++ 20对Lambda表达式的进一步优化和扩展,更是增强了其灵活性和实用性。

2024-06-11 06:30:00 339 10

原创 C++ 20新特性之Ranges

任何可以被迭代的对象都可以视为Ranges,包括标准库容器(比如:vector、list、map等)、数组,甚至是由函数生成的连续或非连续元素序列。Ranges提供了一组函数和操作符,让我们能够以更加函数式的方式处理容器中的数据。这些函数和操作符通常与现有的STL算法具有相同的功能,但它们更简洁,也更易于使用。

2024-06-10 09:38:13 1018 18

原创 从零开始精通Onvif之获取设备信息

发现设备之后,与设备进行交互的第一步,是连接上设备,并获取设备的信息。连接设备,可以直接使用Python中的zeep库。zeep库是Python中用于消费SOAP Web服务的一个流行库,特别适合用来与遵循Onvif规范的设备进行交互。连接上设备之后,通常需要获取一些比较重要的信息,具体包括:基本信息、系统时间、能力信息、配置文件等。

2024-06-10 09:35:13 893 19

原创 C++ 20新特性之三向比较运算符

三向比较运算符,即,通常称为“太空船运算符”(Spaceship operator)。这个运算符的设计初衷是为了简化用户自定义类型的比较操作,以前需要分别重载、==等多个比较运算符,而现在仅需一个运算符就能完成所有比较逻辑的定义。运算符在内部执行两个操作数的比较,并根据它们的相对大小返回一个特殊类型。这个类型属于std::compare_three_way的结果类型分类,具体可以是以下三种。

2024-06-08 06:46:18 1269 31

原创 C++ 20新特性之std::format

在C++ 20之前,我们通常使用printf、stringstream、cout等流对象,并结合各种流操作符(比如:

2024-06-07 07:17:32 821 10

原创 从零开始精通Onvif之设备发现

首先,设备发现有效简化了集成的复杂度。在下面的ProbeMatch响应消息报文中,ProbeMatch元素包含了设备的端点引用(EndpointReference)、服务类型(Types)、作用域范围(Scopes)、服务地址(XAddrs,通常指向设备的Onvif服务地址)以及元数据版本(MetadataVersion)等。随着物联网(IoT)、人工智能(AI)、云计算等技术的蓬勃发展,Onvif设备发现机制为这些技术的融合提供了基础,使得安防系统能够更加智能、高效地融入更广泛的智能生态系统中。

2024-06-06 07:38:46 1684 31

原创 C++ 20新特性之指定初始化器

为了解决聚合初始化无法指定某些成员变量进行初始化的问题,C++ 20中引入了指定初始化器。指定初始化器允许在初始化结构体、联合体或类的对象时,明确指定成员变量的初始化。这一特性比较适用于大型或复杂的结构体,当我们只想初始化部分成员,或者想明确指出每个成员的初始值时,非常有用。注意:并非所有的类和结构体都能使用指定初始化器。为了使用该特性,类和结构体必须满足以下两个条件。1、必须是聚合类型,这就意味着,没有自定义构造函数,没有私有或受保护的非静态数据成员,没有基类,也没有虚函数。

2024-06-05 07:41:49 1041 21

原创 从零开始精通Onvif之SOAP协议详解

在安防监控领域,Onvif协议如同一把钥匙,打开了不同厂商设备之间互联互通的大门。而要深入理解并应用Onvif协议,掌握SOAP协议是基础中的基础。SOAP,英文全称为Simple Object Access Protocol,中文全称为简单对象访问协议,是一种基于XML的、用于在分布式环境中交换结构化和类型化信息的轻量级协议。听起来挺唬人,其实说白了,就是一种让不同系统之间能够互相“说话”的规则和标准。SOAP协议使用XML来封装信息,确保无论什么操作系统,只要遵循SOAP规则,就能愉快地交换数据。

2024-06-05 07:39:36 642 10

原创 C++ 20新特性之结构化绑定

在C++ 20出现之前,当我们需要访问一个结构体或类的多个成员时,通常使用.或->操作符。对于复杂的数据结构,这种访问方式往往会显得冗长,也难以理解。C++ 20中引入的结构化绑定允许我们直接从一个聚合类型(比如:tuple、struct、class等)中提取出多个成员,并为它们分别命名。这一特性大大简化了对复杂数据结构的访问方式,使代码更加清晰、易读。

2024-06-04 05:46:24 567 15

原创 从零开始精通Onvif之WSDL详解

WSDL,英文全称Web Services Description Language,中文全称为网络服务描述语言,是XML的一种扩展应用,用于描述网络服务及其如何被调用。在Onvif中,WSDL文件描述了网络视频设备提供的各种服务接口,包括:设备管理、媒体流处理、事件处理等。简单来说,WSDL文件就是一份“说明书”,告诉开发者如何与设备进行通信。想象一下,你刚买了一个全新的IPC摄像头,想要让它乖乖听命于你。但设备不会说话,你也不会它的“语言”。这时候,WSDL就扮演了翻译和指导手册的角色。

2024-06-04 05:44:05 789 19

原创 C++ 20新特性之Concepts

在C++ 20之前,我们在编写泛型代码时,模板参数的约束往往通过复杂的SFINAE(Substitution Failure Is Not An Error)策略或繁琐的Traits类来实现。这不仅难以阅读,也非常容易出错,导致很多程序员在提及泛型编程时,总是心有余悸、脊背发凉。

2024-06-03 07:27:56 1444 25

原创 从零开始精通Onvif之历史与演变

Profile S的出现,标志着安防设备跨品牌兼容性的巨大飞跃,用户首次可以自由混搭不同供应商的产品,构建最适合自己的监控系统,而无需担忧兼容性问题。随着人工智能和机器学习技术在安防领域的广泛应用,Onvif可能会继续深化Profile M的功能,支持更广泛的智能分析应用,比如:行为分析、异常检测等。考虑到物联网和云服务的普及,Onvif还可能会推出或更新配置文件以更好地支持云存储、云管理以及物联网设备的互操作性,确保安防系统能够无缝融入更广泛的智能生态系统中,实现数据的远程访问、分析和智能联动。

2024-06-03 07:23:39 972 19

原创 曾巩,散文的艺术与哲思

曾巩的一生,是与文学相伴,与时代共舞的一生。他用自己的笔,记录下了时代的变迁,抒发了个人的情怀。在那个群星璀璨的文学时代,曾巩以他独特的光芒,照亮了一方天地,成为后人敬仰的文学巨匠。他的一生,是文学与人生交织的典范。他的文学精神和人生哲学,将永远激励着后人不断前行。

2024-06-01 08:50:38 1213 6

原创 Rust面试宝典第16题:买卖股票的最佳时机

通过这道题,我们学习了暴力法、贪心算法、动态规划算法在解决买卖股票问题时的解题思路。但是,你真的理解透彻了吗?下面是一道关于买卖股票问题的扩展题,快来试一下吧!给定一个整型数组,它的第i个元素是一支给定股票第i天的价格。如果不限制交易次数,设计一个算法来计算你所能获取的最大利润。注意:你不能同时参与多笔交易(你必须在再次购买前,出售掉之前所有的股票,且不能在卖出股票后的同一天再买入股票)。输入: [7, 1, 5, 3, 6, 4]输出: 7。

2024-05-31 08:26:16 300 13

原创 从零开始精通Onvif之初识网络视频接口

💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智。

2024-05-30 08:50:04 1454 24

原创 苏洵,大器晚成的家风塑造者

苏洵的一生,是不断求索与自我超越的生动写照。从早年的不羁到晚年的文名远播,他用自己的经历证明了“勤能补拙是良训,一分辛苦一分才”的道理。他的文章,如同静水深流,不张扬却蕴含力量,影响着一代又一代的读者。

2024-05-29 08:33:47 579 11

原创 超级好用的C++实用库之跨平台实用方法

C++跨平台开发时,我们经常会遇到一系列挑战和问题。这些问题主要源自不同操作系统和编译器之间的差异,这些差异包括但不限于以下几点。1、不同的编译器(比如:GCC、Clang、MSVC等)对C++标准的支持程度和扩展特性存在差异,这可能导致同样的代码在不同平台上编译失败或行为不一致。2、不同平台的系统头文件路径和库文件位置可能不同,需要通过条件编译或构建系统(比如:CMake)来进行适配。3、Windows使用反斜杠\作为路径分隔符,而Unix-like系统使用正斜杠/。

2024-05-29 08:30:10 1763 30

原创 柳宗元,政治坎坷与文学辉煌的交织

柳宗元的文学成就主要体现在散文和诗歌上,他的散文理论与实践,对后世产生了深远影响。其文章风格峻切、议论透彻。尤其是山水游记,开创了中国古典散文中寓言式山水游记的先河,对宋代的“文以载道”观念产生了重要启发。诗歌方面,他擅长以自然景象寓言人生哲理,笔下山水既展现了自然之美,又透露出人文关怀与哲理思考。同时,他的作品也大量关注社会现实和人民疾苦,反映了他对国家和人民的深深忧虑和关切。

2024-05-28 08:32:23 889 7

原创 超级好用的C++实用库之套接字

C++中的Socket编程是实现网络通信的基础,允许程序通过网络与其他程序交换数据。但Socket编程在Windows和Linux系统上存在一些差异,主要包括如下几点。1、Linux涉及网络编程的头文件主要为、、,Windows上的头文件主要为。2、Linux不需要显式初始化和清理操作,Windows需要使用WSAStartup和WSACleanup进行显式初始化和清理操作。

2024-05-28 08:29:52 2510 25

原创 韩愈,文起八代之衰的儒学巨匠

韩愈的一生,是不懈追求学问与真理的一生,也是积极入世、勇于担当的一生。他的文学成就和思想贡献,不仅在当时引领了文学复古的潮流,更对后世产生了深远的影响。宋代以后,韩愈被尊为“唐宋八大家”之首,其文学理念和作品被广泛传颂,对中国文学的发展起到了承前启后的作用。韩愈逝世于长庆四年(824年),享年五十七岁。他的名字,如同一座丰碑,矗立在中国文化史上,象征着文学与思想的双重高峰,激励着一代又一代的文人学者,在追求学问的同时,不忘社会责任与文化使命。

2024-05-27 08:55:59 831 13

原创 超级好用的C++实用库之环形内存池

环形内存池是一种高效的内存管理技术,特别适合于高并发、实时性要求高的系统中,比如:网络服务器、游戏引擎、实时音视频等领域。它的设计基于环形缓冲区的概念,通过循环利用内存空间来减少内存碎片和分配效率问题。环形内存池一次性申请大块内存,并切分为固定大小的内存块,避免了频繁的系统级内存请求,降低了系统调用开销。环形内存池的设计有效提高了内存分配和回收的效率,特别适合于那些内存分配模式可预测、频繁分配和释放小块内存的场景。

2024-05-27 08:52:39 623 20

原创 王安石,变革年代的文学巨匠

王安石的一生,是一部波澜壮阔的改革史,也是一部充满诗意的文学史。他的经历和作品相互交织、相互映衬,共同构成了他丰富多彩的人生画卷。他的一生,是对改革事业的执着追求和不懈奋斗;他的作品,是对人生和社会的深刻思考和真挚表达。他的一生和作品,将永远闪耀在历史的星空之中。

2024-05-25 08:30:34 647 4

原创 超级好用的C++实用库之国密sm4算法

国密SM4算法,全称为国家密码管理局制定的SM4分组密码算法,是中国自主设计的商用密码算法标准之一,用于数据的对称加密。由于其国产化属性和安全性,SM4广泛应用于中国国内的金融、电子政务、网络安全、通信等多个领域。在国密HTTPS协议中,SM4用于数据的加密传输,确保网络通信的安全。除此之外,它还应用于无线互联网加密、智能卡、加密芯片、以及各种需要高强度数据保护的场景。

2024-05-24 07:27:52 1124 7

原创 Rust面试宝典第15题:最长公共前缀

通过这道题,我们学习了横向扫描法、纵向扫描法和分治法。横向扫描法也称为宽度优先搜索(BFS)方法,纵向扫描法也称为竖直扫描法或深度优先搜索(DFS)方法,两种方法扫描的方式有所不同。分治法则是一种通用的算法设计技术,可以应用于各种问题,其时间复杂度取决于问题的具体情况。

2024-05-23 06:38:11 698 25

原创 杜甫,心怀百姓和社稷的诗圣

杜甫的诗歌,以其深厚的现实主义精神、广阔的社会视野和精湛的艺术技巧,开创了唐代诗歌的新纪元。他的诗作不仅记录了个人的悲欢离合,更是唐代社会历史的生动写照,被誉为“诗史”。杜甫不仅是一位伟大的诗人,更是一位深具人文关怀的思想者,其诗歌中流露出的对国家、对人民的深切关怀,至今仍激励着无数读者。

2024-05-23 06:34:12 158 10

原创 Rust面试宝典第14题:旋转数组

一个问题的解决方案可能远不止一种,正所谓“条条大路通罗马”,如何在众多解决方案中找出最优解,实际上非常考验软件开发工程师的综合能力。从多个角度、多个维度分析和思考问题,是一种非常有效的思维方式,可以帮助我们更全面地理解问题,并找到更好更优的解决方案。

2024-05-22 07:54:13 577 9

原创 超级好用的C++实用库之sha256算法

SHA-256,英文全称为Secure Hash Algorithm 256-bit,是一种广泛使用的密码散列函数,属于SHA-2家族。SHA-256算法由美国国家安全局(NSA)设计,并由美国国家标准与技术研究院(NIST)于2001年发布。SHA-256算法主要用于提供数据完整性校验和安全认证,生成一个固定长度为256位(即32字节)的散列值,通常以64个字符的十六进制字符串形式表示。SHA-256算法主要有以下4个特点。1、安全性。

2024-05-22 07:50:19 938 19

原创 李白,扶摇直上九万里的诗仙

李白的诗歌,以其雄奇的想象力、豪放的风格、深邃的情感和独特的艺术魅力,开创了中国诗歌的新境界,对后世产生了深远的影响。他擅长运用夸张、比喻等修辞手法,使诗歌具有强烈的画面感和音乐美,令人叹为观止。李白的一生,是对自由的追求,对美的热爱,对理想的坚守。他的诗,如同他的人生,充满了浪漫与激情,同时也承载着孤独与忧伤。李白不仅是中国文学史上的一座丰碑,也是世界文化宝库中一颗璀璨的明珠,其诗歌跨越时空,触动着每一个渴望自由与美好的心灵。

2024-05-21 07:07:39 973 11

原创 超级好用的C++实用库之网络

在网络相关的项目中,我们经常需要去获取和设置设备的IP地址、子网掩码、网关地址、MAC地址等信息。这些信息一般与操作系统相关,在Windows系统和Linux系统上调用的接口是不一样的。在Linux系统和基于Linux的一些嵌入式系统上,还涉及一些其他操作,比如:添加指定网卡的路由,使能指定网卡的广播路由,或获取指定网卡的丢包率等。简化所有这些信息的获取与设置,并提供跨平台的统一接口,是非常有必要的。可以看到,我们提供了非常多实用的网络接口。

2024-05-21 07:05:05 1534 19

原创 苏轼,以笔墨诗词笑对人生的巨匠

苏轼的一生,是才华横溢与坎坷人生交织的一生。他的文学作品,尤其是诗词散文,蕴含着深邃的人生哲理、豁达的人生态度和对自然美的热爱,对后世文学产生了深远的影响。苏轼不仅是宋代文学的领军人物,更是中国文化史上一座不可逾越的高峰。其人生态度和艺术成就,至今仍为人们所敬仰和传颂。

2024-05-20 08:41:10 870 8

原创 超级好用的C++实用库之国密sm3算法

国密SM3是一种由中国国家密码管理局制定的密码散列函数标准,全称为“商用密码SM3杂凑算法”。它用于提供数据完整性校验和安全性认证,类似于国际上的SHA-256等散列函数,但具有中国自主知识产权。SM3算法在多种安全应用场景中扮演关键角色,比如:电子签名、消息认证码生成、数据校验以及密码协议的安全基础等。SM3算法的设计目标是达到至少128位的安全强度,能够抵抗已知的各种攻击方法,包括碰撞攻击、原像攻击等。其输出是一个256位的哈希值,即32个字节。

2024-05-20 08:38:51 1119 15

IPC库 + 跨平台 + Ingenic芯片方案

专栏《手把手教你封装跨芯片方案的IPC通用库 》地址:https://blog.csdn.net/hope_wisdom/category_12186076.html 专栏《手把手教你封装基于君正芯片方案的IPC库 》地址:https://blog.csdn.net/hope_wisdom/category_12353290.html 1、所有源码严格遵守统一的编码规范。 2、手把手教学,让你从零开始,深入了解君正方案IPC库的方方面面。 3、纯C++接口,接口封装严谨,接口功能丰富,应用层调用简单便捷。 4、近二十年行业经验和技术积累打造的高质量商用级代码,架构清晰合理,便于扩展和维护。 5、绝不空谈概念和原理,实打实地进行源码的展示和要点的讲解。专栏一共15篇,已完结。 6、根据功能模块分章节进行详细介绍,每个章节可独立阅读,让你真正吃透每一个功能模块。 7、通过学习本专栏,你可以深入了解君正底层API、ISP使用、视频采集、音频采集、音频播放、云台电机控制、移动侦测、移动跟踪、人形检测等一系列君正芯片方案相关的专业知识。

2024-06-02

超级好用的C++实用库 + 跨平台 + 通用

对应专栏的地址为:https://blog.csdn.net/hope_wisdom/category_12641233.html 本专栏将介绍一个超级好用的C++实用库,可跨平台(包括:Windows、Linux等桌面操作系统,Android、iOS、鸿蒙等手机操作系统,海思、富瀚微、君正等嵌入式操作系统)使用,内容包括:base64编解码、des加解密、md5信息摘要算法、sha256算法、socket封装类、字节流合成器、字节流解析器、互斥锁、文件类、点阵字体、地理相关接口类、日志类、内存缓冲区类、环形内存池、字符编码转换类、线程基类等。 超级好用的C++实用库的源码

2024-05-23

微信小程序+淘宝客完整源码+PHP后台

微信淘宝客小程序源码是一款专为淘宝客设计的小程序应用,用户可通过小程序便捷搜索、浏览、分享淘宝商品,每成功引导一次购买,淘宝客即可获得相应佣金。核心功能包括: 商品搜索与筛选:集成淘宝联盟API,支持关键词搜索、类目筛选、销量排序、价格区间过滤等精细化查找商品。 商品详情展示:呈现商品图片、价格、销量、评价等详细信息,一键生成专属推广链接或二维码,方便用户分享至微信好友、群聊或朋友圈。 订单跟踪与佣金统计:实时同步淘宝联盟后台数据,展示推广订单状态、预计佣金、结算周期等信息,帮助淘宝客清晰掌握收益情况。 个人中心与设置:用户可查阅账户余额、提现记录,设置收款信息,参与推广任务,接收系统通知等,实现一站式淘宝客运营管理。 社交裂变与营销工具:内置邀请好友、拼团、优惠券等营销插件,鼓励用户邀请新用户注册,提升平台活跃度与用户黏性。

2024-04-27

微信小程序+云商城+PHP后端

技术栈 Codeigniter LeanCloud Bootstrap Admin-LTE jQuery fex-webuploader Codeigniter是一个老牌的php框架,零配置,文档极其丰富。它没有ORM,没有模板引擎,用它,只是因为够用了,LeanCloud自身就是ORM,而PHP天生就是模板语言,所以CI有没有ORM与模板引擎也无所谓。 后台界面,使用了Admin-LTE,它是基于Bootstrap的一套UI,打包了很多现成的组件,菜单目录树,表格,下拉框,颜色选择器,编辑器,日历,报表,聊天窗口。 在登录与修改页面,还用到vue+element-ui

2024-04-27

微信小程序+百货商城源码

百货商城小程序源码是专为移动端设计的商城解决方案,它集成了商品浏览、购物车管理、在线支付、物流跟踪等核心功能。此源码以微信小程序为载体,具有轻便、快捷的特点,便于用户在手机上随时随地进行购物。源码简洁高效,易于商家进行个性化定制,以满足特定的业务需求。通过使用百货商城小程序源码,商家可以迅速拥有一个功能完善的移动端商城,为用户提供便捷的购物体验,从而促进销售增长。

2024-04-27

pyhon小游戏+碰撞检测+贪吃蛇+练手

玩法介绍: 回车键:开始游戏 空格键:暂停 / 继续 运行前,请安装pygame包:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame 贪吃蛇这个游戏很简单,屏幕上随机出现一个点,表示“食物”,上下左右控制“蛇”的移动,吃到“食物”以后“蛇”的身体加长,“蛇”碰到边框或自己的身体,则游戏结束。 我们先来分析一下,要写出这个游戏来需要注意哪些点。 1、蛇怎么表示 我们可以将整个游戏区域划分成一个个的小格子,由一组连在一起的小格子组成“蛇”,我们可以用不同的颜色来表示,如上图中,我以深色表示背景,浅色表示“蛇”。 我们可以用坐标来表示每一个小方格,X 轴和 Y 轴的范围都是可以设定好的。用一个列表来存放“蛇身”的坐标,那么一条“蛇”就出来了,最后只要显示的时候以不同的颜色表示即可。 2、蛇怎么移动? 第一反应就是像蚯蚓蠕动一样,每一个小方块向前移动一格,但这样实现起来很麻烦。一开始就是被这里卡住了。

2024-03-16

Linux常用命令大全(从入门到精通)

在开源世界中,Linux操作系统凭借其稳定、高效和强大的特性赢得了广泛的赞誉。而掌握Linux命令行工具是每位Linux用户必备的基本技能,它能极大地提升系统管理、编程开发、运维部署等方面的工作效率。本文将对Linux的常用命令进行详尽解读,力求覆盖文件操作、系统信息查询、进程管理、搜索查找等多个维度,帮助您构建坚实的Linux命令行使用基础。 一、文件与目录操作 二、文件内容查看与编辑 三、系统信息查询与管理 四、搜索与查找 五、网络相关命令 六、其他常用命令 1. uname:查看系统信息,如uname -a可以输出详细的系统内核信息。 2. whoami:显示当前登录用户名。 3. id:显示用户的UID、GID及附加组信息。 4. pwd:打印当前工作目录路径。 5. top 或 htop:动态显示系统中各个进程的状态信息,包括CPU占用率、内存使用情况等。 6. ps:报告当前系统的进程状态,结合aux参数使用可以获取更多信息,如ps aux。

2024-03-05

音视频领域相关的基础知识

说到视频,大家自己脑子里基本都会想起电影、电视剧、在线视频等等,也会想起一些视频格式 AVI、MP4、RMVB、MKV等等。 但是我们如果认真思考这些应该就有很多疑问,比如以下问题: • mp4 和 mkv有什么区别 ? • 视频封装格式 和 解码格式 有什么区别? • 什么是H.264 ?什么是 mpeg ? 等等很多疑问,我们不知道这些问题的答案是因为我们没有去了解他们背后的东西,下面我会给大家分享当初我学习时候的整理的一些知识。 以下会介绍的内容: 一、光与颜色 二、电视制式 三、照相机与摄像机 四、声音 五、视频相关专业术语 六、视频的构成 七、播放一个网络上视频需要的步骤

2024-02-29

C&C++编程规范(超级实用)

1. 文件结构 1.1 版权和版本的声明 1.2 头文件的结构 1.3 定义文件的结构 1.4 目录结构 2. 程序版式 2.1 空行 2.2 代码行 2.3 代码行内的空格 2.4 对齐 2.5 长行拆分 2.6 修饰符的位置 2.7 注释 2.8 类的版式 3 命名规则 3.1 共性规则 3.2 Windows 应用程序命名规则 3.3 Linux 应用程序函数命名规则 4. 表达式和基本语句 4.1 运算符的优先级 4.2 复合表达式 4.3 if 语句 4.3.1 布尔变量与零值比较 4.3.2 整型变量与零值比较 4.3.3 浮点变量与零值比较 4.3.4 指针变量与零值比较 4.4 循环语句的效率 4.5 for 语句的循环控制变量 4.6 switch 语句 4.7 goto 语句 5. 常量 5.1 const 与#define 的比较 5.2 常量定义规则 6. 函数设计 6.1 参数的规则 6.2 返回值的规则 6.3 函数内部实现的规则 6.4 其它建议 6.5 使用断言 6.6 引用与指针的比较 软件测试系列 7 重载和内联 7.1 普通函数重载 7.2 内联

2024-02-13

软件开发培训之深度学习基本概念和原理

第一阶段: 模拟人类神经元 感知机模型 第二阶段: 分布式知识表达 神经网络反向传播 非线性分类 卷积神经网络 第三阶段: 海量数据 计算性能大幅提升 深度神经网络兴起 一个标准的卷积神经网络,主要包括:输入层(Input Layer)、卷积层(Convolutional Layer)、池化层(Pooling Layer)、激活层(Activation Layer)、全连接层(Fully Connected Layer)、损失层(Loss Layer)。 深度学习框架:Caffe/Caffe2、TensorFlow、MXNet、PyTorch等。 基本原理: 1、神经网络由其权重来参数化。 2、损失函数用来衡量网络输出结果的质量。 3、将损失值作为反馈信号来调节权重。 4、前向传播与反向传播。 5、梯度下降法。

2024-02-13

软件开发培训之如何编写优雅的代码

何为优雅的代码? □ 遵守规范 优雅的代码,首先让人看起来就是很整洁的。而这种整洁,则来源于代码规范。严格地遵守代码规范,是提高且保证代码质量的最有效方法。从个人开发的角度来看,一份良好的代码规范,能够对代码整洁起到指导帮助作用。从多人协作的角度来看,统一的代码规范能够有效减少沟通的阻碍。 □ 逻辑清晰 代码是逻辑的产物。编写代码时,业务相关的逻辑一定要清晰明确,不能模棱两可。除此之外,对于所定义的变量、代码块、数据结构、方法、类、模块等,也要有逻辑地组织它们。 □ 严谨可靠 严谨的代码,才能保证它的可靠性,减少bug的发生几率。一份代码即使严格遵守了代码规范,但思考不全面,逻辑不严谨,到处都是各种漏洞和bug,也不能称之为优雅。 □ 平均来说,一次编写的代码会被阅读十次,所以尽力保持代码优雅是有意义的。当养成习惯之后,你会发现基本不需要花什么力气,更优雅、更具维护性的代码很快就会产生收益。 □ 优雅的代码有助于理解开发语言、模式和架构,也有利于提升开发水平。

2024-02-13

软件开发培训之JavaScript ES6介绍

ES6,全称ECMAScript 6.0,正式名称为ECMAScript 2015,是JavaScript的下一个版本标准,于2015年6月17日发布。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 1997年,ECMAScript 1.0诞生。 1998年6月,ECMAScript 2.0诞生,包含一些小的更改,用于同步独立的ISO国际标准。 1999年12月,ECMAScript 3.0诞生,在业界得到了广泛的支持,它奠定了JS的基本语法。 2000年的ECMAScript 4.0是ES6的前身,但由于这个版本太过激烈,所以暂时被“和谐”了。 2009年12月,ECMAScript 5.0版正式发布。ECMA专家组预计ECMAScript的第五个版本会在2013年中期到2018年作为主流的开发标准。2011年6月,ES 5.1版发布,并且成为ISO国际标准。 2013年,ES6草案被冻结,不再添加新的功能,新的功能将被放到ES7中。 2015年6月,ES6正式通过,成为国际标准。 ES6新特性包括:let关键字、const关键字等。

2024-02-13

软件开发培训之TypeScript简介

□ TypeScript起源于使用JavaScript开发的大型项目。由于JavaScript语言本身的局限性,难以胜任和维护大型项目开发,因此微软开发了TypeScript,使得其能够胜任开发大型项目。 □ TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行于任何浏览器,任何操作系统。 □ 2012年10月,微软发布了首个公开版本的TypeScript。2013年6月19日,在经历了一个预览版之后,微软发布了正式版的TypeScript。 □ TypeScript的作者是安德斯·海尔斯伯格,他也是C#的首席架构师。 TypeScript是一种给JavaScript添加特性的语言扩展,是JavaScript 的一个超集。 具体特性包括:类型批注、接口、装饰器、模块、类、泛型等。

2024-02-13

软件开发培训之如何理解设计模式

□ 设计模式描述了在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该解决方案而不必重复劳动。 □ 设计模式实际上就是类与相互通信的对象之间的组织关系,包括它们的角色、职责、协作方式等方面。 □ 设计模式通常和面向对象编程结合起来使用。面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”是指那些可以满足 “应对变化,提高复用”的设计。 □ 现代软件设计的特征是:需求频繁变化。设计模式的要点是:寻找变化点,然后在变化点处应用设计模式,从而来更好地应对需求的变化。 □ 软件开发是一项实践工作,最直接的方法就是编程。没有从来不下棋却熟悉定式的围棋高手。掌握设计模式是水到渠成的事情,不要强求。随着理论和实践的不断积累,可能会“渐悟”或者“顿悟”。 □ 设计模式解决的是设计不足的问题,但同时也要避免设计过度。一定要牢记简洁原则,要知道设计模式是为了使设计简单,而不是更复杂。如果引入设计模式使得设计变得复杂,只能说我们把简单问题复杂化了,问题本身不需要设计模式。

2024-02-13

软件开发培训之深度学习简介

人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 机器学习(Machine Learning)是指用某些算法指导计算机利用已知数据得出适当的模型,并利用此模型对新的情境给出判断的过程。 深度学习(Deep Learning)的概念源于人工神经网络的研究,它通过组合低层特征形成更加抽象的高层特征,以发现数据的分布式特征表示。 1、深度学习的发展历程。 2、深度学习的应用领域。 3、深度学习的未来展望。

2024-02-13

软件开发培训之64位程序开发注意事项

□ 64位Windows系统下也能运行32位程序,是因为有一个WOW64子系统。它能将32位应用程序的API调用转换成对原生64位系统的调用。正是因为WOW64的存在,32位应用程序在64位系统下并不能发挥最佳的性能,反而比在32位系统下有大约2%的性能损失。如果开发的是64位应用程序,则不需要依赖WOW64运行,并可带来大约5%-15%的性能提升(5%-10%由于采用了64位架构,1%-5%由于未使用WOW64)。 □ 32位程序的最大地址空间是4GB,64位程序的最大地址空间是可以大于4GB的。 □ 64位程序不再区分cdecl、stdcall等各种调用方式。gcc在64位下面,不再支持__attribute((cdecl))__和__attribute((stdcall))__。 □ 64位程序不再使用ESP,而是使用增加的几个64位寄存器,因为ESP不支持64位空间的栈。 □ 虽然在64位Windows系统下可以运行64位和32位进程,但是64位代码和32位代码不能在相同进程上运行。你的代码要么全部是64位,要么全部是32位,要加载的库和组件也要满足这一要求。

2024-02-13

软件开发培训之如何全面思考问题

□ 在软件开发中,对一个问题思考得越全面,编写出的代码就会越严谨,出现bug的几率就越低;反之,如果没有对一个问题进行全面而深入的思考,编写出的代码就会漏洞百出,出现各种莫名其妙、无法复现的bug的几率也就急剧增加。 实例1:输入若干个整数作为数组,将数组中每一个元素除以第一个元素的结果,作为新的数组元素值。 实例2:封装一个函数,用于实现内存拷贝,函数原型如下: void *memcpy(void *dest, const void *src, size_ 实例3:在嵌入式软件开发中,通常将用户的一些选项配置保存到Flash中的特定区域。实际使用时,嵌入式硬件经常会发生异常断电等情况,如果此时正在将选项配置写入Flash,则会导致选项配置数据被损坏。一般采用掉电备份机制来解决该问题,请简要叙述该机制的工作原理。 实例4:蚂蚁爬杆问题。 实例5:我们的模组进行升级时,支持升级uboot、内核、根文件系统和程序。以升级程序为例,我们在升级时的大致流程是什么样的?有哪些需要注意的地方?

2024-02-13

软件开发培训之指针使用注意事项

□ C语言之父丹尼斯·里奇曾说过:“C语言诡异离奇,陷阱重重,却获得了巨大成功!”这句话一方面体现了C语言的灵活性以及广泛的使用,另一方面也体现了C语言的复杂性。在使用C/C++遇到的所有陷阱和问题中,和指针相关的占了绝大部分。 □ C/C++是灵活度和自由度较大的编程语言,指针更是让程序员可以越过安全的栅栏,对某些内存区域进行破坏性访问,从而引发安全风险和严重问题。 □ C/C++的指针是一把双刃剑,为我们带来灵活性的同时,也带来了各种各样的问题(使用不当的话)。有人曾统计过,C/C++程序员处理的所有bug中,有一半是由指针引起的bug。可想而知,指针中包含的陷阱是多么可怕。 □ 要想在编写代码的时候尽可能避免指针带来的各种陷阱和问题,就需要知道不恰当地使用指针到底会引发哪些问题, 为什么会引发这些问题,以及如何去解决这些问题。 1、使用空指针 2、使用指向随机内容的指针 3、使用野指针 4、不恰当的指针声明 5、访问指针越界或溢出 6、内存泄露

2024-02-13

软件开发培训之结构体使用注意事项

1、结构体变量初始化。 (1)顺序初始化。 (2)指定初始化。 (3)构造函数初始化。 2、结构体变量赋值。 3、结构体对齐,包括: (1)字节对齐。 (2)协议设计中的字节对齐。 (3)Win32平台下的微软C编译器的对齐策略。 (4)GNU GCC编译器的对齐策略。 (5)含位域的结构体对齐。 (6)字节对齐测试。 (7)结构体对齐总结。

2024-02-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除