qnx log写入文件 简单实现

qnx log写入文件 简单实现 #ifndef __COMMON_LOG__ #define __COMMON_LOG__ #include "fcntl.h" #include "pthread.h" #include "stdarg.h" #include "unistd.h" #include <stdio.h> #include <string.h> //#define _LOG_FILE_NAME "/tmp/easy.log" #define _LOG_FILE_NAME "easy.log" #if defined _LOG_FILE_NAME void __file_log_com(char *log_str, ...); #define __file__ \ ({ \ char *_rs = strrchr((char*)__FILE__, '/'); \ _rs ? (_rs + 1) : __FILE__; \ }) #define _COM_FILE_PARSE(lgType, prefix, fmt, args...) \ do { \ __file_log_com("[%s][%s:%s:%d][%s]" fmt, lgType, __file__, __func__, __LINE__, prefix, ##args); \ } while (0) #define ts_log_info(dev, fmt, args.

C++57个入门知识点_34_虚函数的模拟实现-理解(利用函数指针替代virtual的虚函数功能;虚函数的本质即为函数的覆盖,子类一旦对父类同名成员函数重载,对象在调用时使用的是子类的函数)

上篇C++57个入门知识点_33_深入理解虚函数的原理-重点(间接调用:先查虚表地址,再查虚表中的虚函数指针;编译器先取对象的前4个字节地址,再取对应地址下函数指针;查看内存、反汇编的方法;成员函数指针)介绍了虚函数的原理,本篇将会介绍虚函数的c语言的模拟实现,对虚函数有一个更深的理解。 虚函数本质上是函数,虚表本质上是函数指针的数组,此处完全将virtual关键字去掉,看是否可以得到与上篇一样的效果。 1. 虚函数调用对象虚表中函数的步骤总结 (1)找到对象头部四个字节–虚表地址 (2)根据虚函数的位置(在cpp中定义的顺序),确定该虚函数在虚表的下标 (3)找到对应的虚函数地址,直接调用该地址 用下图也可以看出 2. 整体代码 2.1 整体结构如下图 2.2 Chinese.h/cpp Chinese.h #pragma once #include <iostream> #include "Person.h" class CChinese :public CPerson { public: CChinese() { //将每个类对应的虚表地址赋给虚表指针 m_pVirTable = m_ChsTable; } ~CChinese() { } void speak() { printf("Speak Chinese!"); } //每一个类有自己的虚表,需要重新定义 static PEN_VIRTUAL m_ChsTable[2]; }; Chinese.cpp #include "Chinese.h" //函数覆盖 PEN_VIRTUAL CChinese::m_ChsTable[2] = { (PEN_VIRTUAL)&CChinese::speak, (PEN_VIRTUAL)&CPerson::eat }; 2.3 English.h/cpp English.h #pragma once #include <iostream> #include "Person.h" class CEnglish :public CPerson { public: CEnglish() { //将每个类对应的虚表地址赋给虚表指针 m_pVirTable = m_EngTable; } ~CEnglish() { } void speak() { printf("

计算机网络——网络

计算机网络——网络 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU)前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家, [跳转到网站](https://www.captainbed.cn/qianqiu) 无线网络和移动网络概述概念解读 无线链路和网络的特征有线链路和无线链路的区别 Wifi频段和通道安全性覆盖范围速率和性能连接管理Wifi总结 移动IP特点总结 无线和移动性:对高层协议的影响 小程一言 我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络自顶向下方法而整理的,包括各大高校教学都是以此顺序进行的。 面向群体:在学计网的在校大学生,工作后想要提升的各位伙伴, 专栏链接: link 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家, 跳转到网站 无线网络和移动网络 计算机网络自顶向下第七章内容总结 概述 无线网络是通过无线电波进行数据传输的网络,最常见的无线网络是Wi-Fi网络,它使用无线路由器或接入点来连接设备,实现了设备之间的无线通信和连接。Wi-Fi网络通常用于家庭、办公室、公共场所等局域网环境中移动网络是通过移动通信基站进行数据传输的网络,最常见的移动网络包括2G、3G、4G和5G网络。移动网络主要用于移动设备(如手机、平板电脑)在不同地点之间的通信,用户可以通过移动网络进行语音通话、短信发送和互联网访问。无线网络和移动网络的发展使得人们可以随时随地获取信息,进行通信和互联网访问。无线网络和移动网络的技术不断进步,如5G技术的推出,使得网络速度更快、延迟更低,为人们的生活和工作带来了更多便利。同时,无线网络和移动网络也面临着安全性、覆盖范围和网络容量等方面的挑战,需要不断进行技术创新和优化。 概念解读 无线主机:指使用无线技术连接到网络的计算机或设备。无线主机可以是笔记本电脑、智能手机、平板电脑或其他具备无线通信功能的设备。无线链路:是指通过无线信号进行通信和数据传输的连接。无线链路可以是指两个无线设备之间的直接连接,也可以是指设备与无线接入点或基站之间的连接。基站:是无线通信系统中的一个重要组成部分,用于提供覆盖范围内的通信服务。基站通过无线电波与移动设备进行通信,管理和控制通信连接,是移动网络中数据传输的关键节点。网络基础设施:指构成计算机网络基础的各种硬件设备和设施,包括路由器、交换机、服务器、基站、无线接入点等。网络基础设施为网络的正常运行和通信提供了支持。单跳:在无线传感器网络中,单跳是指数据从一个传感器节点直接传输到另一个节点的过程,没有经过中继节点。单跳通信适用于节点之间距离较近的情况。多跳:在无线传感器网络中,多跳是指数据通过多个中继节点进行传输,最终到达目标节点的过程。多跳通信适用于节点之间距离较远,无法直接通信的情况。 无线链路和网络的特征 有线链路和无线链路的区别 传输介质:有线链路使用物理的电缆或光纤等有线传输介质进行数据传输,而无线链路则通过无线电波进行数据传输,不需要物理连接线缆。 覆盖范围:有线链路的覆盖范围通常较为有限,需要布设电缆或光纤,因此适用于局域网或城域网等范围较小的网络;而无线链路可以实现更大范围的覆盖,适用于无线局域网、城市覆盖等范围较广的网络。 安装和维护:有线链路需要进行电缆或光纤的铺设和连接,安装和维护相对复杂;而无线链路不需要物理连接,安装和维护相对简单。 受环境影响:有线链路受到建筑物、地形等环境因素的限制,布线困难;而无线链路受到电磁干扰、障碍物等影响,信号覆盖可能存在盲区或信号衰减的问题。 传输速率:通常情况下,有线链路的传输速率可以更高,受限于物理介质的特性,而无线链路的传输速率可能受到信号衰减、干扰等因素的影响。 总的来说,有线链路和无线链路各有优劣,可以根据具体的网络需求和环境来选择合适的连接方式。 Wifi Wi-Fi是一种无线局域网技术,它允许计算机、移动设备、智能家居设备等通过无线方式连接到互联网或局域网。以下是对Wi-Fi技术的分析: 工作原理:Wi-Fi技术基于IEEE 802.11系列标准,通过使用无线电波在2.4GHz或5GHz频段进行数据传输。Wi-Fi设备包括路由器、无线接入点和无线网卡,它们通过建立无线局域网(WLAN)来实现设备之间的通信。 频段和通道 Wi-Fi设备工作在2.4GHz和5GHz频段,不同频段有不同的特点和适用范围。每个频段又分为多个通道,通过选择合适的频段和通道可以减少干扰,提高传输速率。 安全性 Wi-Fi网络的安全性是一个重要问题,常见的安全机制包括WEP、WPA和WPA2等加密协议,用于保护Wi-Fi网络的数据安全,防止未经授权的访问和数据窃取。 覆盖范围 Wi-Fi网络的覆盖范围受到信号强度和障碍物等因素的影响,通常在室内环境下的覆盖范围较为有限,需要通过布设多个无线接入点来扩大覆盖范围。 速率和性能 Wi-Fi技术支持不同的传输速率,包括802.11b/g/n/ac等标准,速率取决于信道宽度、天线技术、信号质量等因素。近年来,Wi-Fi 6(802.11ax)标准的推出提高了Wi-Fi网络的性能和容量。 连接管理 Wi-Fi网络可以通过路由器或无线接入点进行连接管理,允许设备进行接入控制、流量管理和负载均衡等操作,以确保网络的稳定性和性能。 Wifi总结 Wi-Fi技术作为一种重要的无线网络技术,为人们提供了便捷的无线上网方式,并在移动通信、物联网等领域发挥着重要作用。对Wi-Fi技术的深入了解有助于更好地理解和应用无线网络技术。 移动IP 移动IP(Mobile IP)是一种网络协议,允许移动设备在不同的网络中保持连接并保持相同的IP地址。这种协议允许用户在移动时保持与互联网的连接,而不需要改变IP地址。 特点 IP地址保持不变:移动IP允许移动设备在切换到不同的网络时保持相同的IP地址,这样就可以保持与互联网的连接,而不需要重新分配IP地址位置更新:当移动设备从一个网络切换到另一个网络时,移动IP协议需要进行位置更新,以便路由器知道移动设备的新位置,并将数据传输到正确的地方。三个关键组件:移动IP一般包括三个关键组件:移动节点(Mobile Node,MN)表示移动设备,它可以在不同的网络中移动;家庭代理(Home Agent,HA)是在家庭网络中的路由器,负责与移动设备通信;外部代理(Foreign Agent,FA)是在外部网络中的路由器,负责与家庭代理通信。数据传输:当移动设备在外部网络中时,数据包将首先传输到外部代理,然后再被转发到移动设备;当移动设备回到家庭网络时,数据包将被家庭代理接收并转发给移动设备。支持移动性:移动IP协议支持移动设备在不同网络中的移动性,使得移动设备可以在不同的网络中自由切换而不会影响与互联网的连接。 总结 移动IP协议为移动设备提供了灵活性和便利性,使得用户可以在不同网络之间自由切换而不会丢失连接。这对于移动设备用户来说是非常重要的,特别是在移动设备越来越普遍的今天。 无线和移动性:对高层协议的影响 无线和移动性对高层协议有着重要的影响。在无线网络中,移动设备可以在不同的网络之间自由切换,这种移动性对高层协议产生了一些特殊的影响。 首先:由于无线网络的特性,数据传输可能会受到干扰、丢包和延迟等问题的影响,因此高层协议需要具备一定的容错和重传机制,以确保数据传输的可靠性和完整性。 其次:移动性会导致移动设备的IP地址发生变化,这对一些基于IP地址的高层协议(如传输层的TCP协议)产生了影响。为了保证连接的连续性,高层协议需要能够适应移动设备IP地址的变化,或者依靠移动IP等技术来实现移动设备的无缝切换。 另外:由于无线网络的特殊性,网络中可能存在更多的丢包和延迟,因此一些实时性要求较高的高层协议(如实时音视频传输的协议)需要特别考虑网络延迟和带宽的限制,以保证传输质量和用户体验。 总之:无线和移动性对高层协议提出了更高的要求,需要在传输可靠性、连接连续性和网络质量等方面进行特殊的考虑和优化。

R语言学习case12:ggplot 置信区间(多线型)

接上文:多条曲线 R语言学习case11:ggplot 置信区间(包含多子图) 在ggplot2中,每个geom函数都接受一个映射参数。然而,并非每个美学属性都适用于每个geom。你可以设置点的形状,但不能设置线的“形状”。另一方面,你可以设置线的线型。geom_smooth()将为您映射到线型的每个唯一值绘制不同的线,具有不同的线型。 单一曲线 ggplot(data = mpg) + geom_smooth(mapping = aes(x = displ, y = hwy)) 多曲线 ggplot(data = mpg) + geom_smooth(mapping = aes(x = displ, y = hwy, group = drv)) 多曲线(不同线型) ggplot2中的每个geom函数都接受一个映射参数。然而,并非每个美学属性都适用于每个geom。你可以设置点的形状,但无法设置线的“形状”。另一方面,你可以设置线的线型。geom_smooth()将为您映射到线型的每个唯一值绘制不同的线,具有不同的线型。 ggplot(data = mpg) + geom_smooth(mapping = aes(x = displ, y = hwy, linetype = drv)) 多曲线(不同颜色) ggplot(data = mpg) + geom_smooth( mapping = aes(x = displ, y = hwy, color = drv), show.legend = TRUE )

R语言学习case11:ggplot 置信区间(包含多子图)

ggplot Geometric objects How are these two plots similar? 两个图都包含相同的x变量、相同的y变量,并且描述相同的数据。但是这两个图并不相同。每个图使用不同的可视化对象来表示数据。在ggplot2语法中,我们说它们使用不同的geoms。 geom是绘图使用的几何对象,用于表示数据。人们通常通过绘图使用的geom类型来描述图表。例如,柱状图使用bar geoms,折线图使用line geoms,箱线图使用boxplot geoms,以此类推。散点图打破了这个趋势;它们使用point geom。正如我们在上面看到的,您可以使用不同的geoms来绘制相同的数据。左侧的图使用point geom,右侧的图使用smooth geom,即对数据拟合的平滑曲线。 要更改图中的geom,请更改添加到ggplot()的geom函数。例如,要制作上面的图,您可以使用以下代码: # left ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy)) # right ggplot(data = mpg) + geom_smooth(mapping = aes(x = displ, y = hwy)) 多子图绘制 library(gridExtra) # left plot1 <- ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy)) # right plot2 <- ggplot(data = mpg) + geom_smooth(mapping = aes(x = displ, y = hwy)) # 将2个图形组合成一个1x2的子图布局 grid.

R语言学习case10:ggplot基础画图Parallel Coordinate Plot 平行坐标图

step1: 导入ggplot2库文件 library(ggplot2) step2:带入自带的iris数据集 iris <- datasets::iris step3:查看数据信息 dim(iris) 维度为 [150,5] head(iris) 查看数据前6行的信息 step4:利用ggplot工具包绘图 plot5 <- ggparcoord(data = iris,columns = 1:4, groupColumn = "Species",scale = "center")+ theme_bw(base_size = 14)+ theme(plot.title = element_text(hjust = 0.5), legend.position = "bottom")+ ggtitle("平行坐标图")+labs(x = "") plot5 这段代码使用了 ggparcoord 函数来创建一个平行坐标图。以下是代码的解释: ggparcoord(data = iris, columns = 1:4, groupColumn = "Species", scale = "center"):这一部分调用了 ggparcoord 函数,用于创建平行坐标图。参数 data 指定了数据集,这里使用了 iris 数据集。参数 columns 指定了要在平行坐标图中显示的列,这里选择了第1到第4列,即花萼长度、花萼宽度、花瓣长度和花瓣宽度。参数 groupColumn 指定了用于分组的列,这里选择了 Species 列,表示按照不同的鸢尾花种类分组。参数 scale 指定了数据的缩放方式,这里选择了 “center”,表示将数据缩放到中心。

2023启示录丨中国ESG这一年:在矛盾与摸索中前行

图片|Photo by Colby Winfield on Unsplash ©自象限原创 作者丨罗辑 编辑丨程心 2023年,许多行业开始争抢ESG人才,在猎聘APP上搜索“ESG”,相关岗位月薪可以达到10W~13W,甚至一些行业应届生的起薪都达到2~4万。在就业普遍面临压力的2023年,这种反常很能说明问题。 更宏观的数据也有证明,在2023年11月发布的《中国上市公司ESG发展报告(2023年)》数据显示,2023年有接近1800家A股上市公司单独发布ESG相关报告,披露率超过35%,相较去年有大幅增长。 当然,也同样不可否认,中国ESG仍然处在非常早期的阶段。从数据也可以看到,虽然独立披露ESG的企业在持续增长,但占比仍然较少。 从投资领域来看,截止2022年末,全球可持续基金总资产规模达2.744万亿美元。欧洲占到总规模的81%,美国约占13%;而整个亚洲(不含日本)总资产才接近520亿美元,占比约1.9%。 除了规模较小,独立发布ESG的企业占比较低外,中国企业对于ESG的理解也存在较大的分化。 目前,在ESG领域比较活跃的当属互联网企业,这些企业更容易接受先进理念,同时在创业时期接受国际资本,具有全球视野,并且大多在海外上市,在ESG方面受到的监管也更加严格。 这些原因共同造就了他们在ESG上更加活跃的事实。但作为对比,以制造业、食品零售等为代表的传统行业,虽然许多也已经具备了ESG的意识,但对ESG的理解仍然停留在承担社会责任的层面,而没有从企业自身的角度出发。 当然,中国ESG迈出第一步,这无论如何都不是一种批评。但参考国际范围对ESG的反常态度,我们会发现:企业牺牲自身利益承担社会责任,这伟大但不可持续,前期这种“副作用”并没有突显,但下一个阶段就会发现:搞ESG本身并不符合ESG可持续发展的理念。 毕竟任何事情,有投入有产出才是正向循环。 ESG的本质,并不是要企业牺牲自身利益来承担社会责任,而是通过规范治理,让企业本身可以可持续发展。至于社会责任,其实是企业良好经营之后,自然而然创造的一种正向的外部性,这也是在给中国企业提了一个醒:我们不能再重蹈覆辙,前路没有参考,需要再度创新。 所以从这个角度回顾整个2023年,中国企业在ESG的理解和实践,暗处仍藏礁石。 ESG,从核心业务中开花 前文提到,在中国ESG市场上最活跃的是互联网企业,但这些企业在ESG实践和披露的侧重点上,其实也各有不同。 通过我们全面复盘之后发现,在国内头部的互联网上市企业中,阿里和腾讯披露的ESG报告相对详细。其内容不仅涵盖了环境、社会、企业治理在内的各个方向,还展开了详细的执行方案和取得的效果。其中包括十分具体的内容,如公司治理ESG的组织架构与权责关系,公司董事会的人员配比,相关执行案例的推进情况等等。 但阿里和腾讯的切入点各有不同。阿里更侧重生态的协同和供应链的管理,即通过上下游的产业协作,带动整个产业链生态共同完成ESG的目标;而腾讯则侧重信息安全、个人隐私保护、青少年关怀以及产业火数字化等领域。 ▲ 图源:阿里巴巴ESG官网截图 这种特点,显然与这两家企业在业务和基因的不同有关,毕竟阿里以电商为核心,整个供应链、生态涉及的企业规模和生产环节异常庞大。作为对比,腾讯则以社交和游戏为核心,在2018年930变革之后,腾讯的重心也在逐渐向着产业互联网转移。 简单的说,每家互联网企业的ESG策略与其本身的业务和集团属性有关。不止阿里腾讯,我们看到百度也延续其AI战略,ESG的关键以技术为抓手,2023年,百度并没有发布ESG报告,但从其官网已经公布的19件进展来看,其ESG主要集中在清理各种有害信息,保护用户隐私,以及通过AI能力赋能碳中、帮助女性 AI科学家发挥技术影响力、基于辅助相关研究和社会发展等方面。 但同样是电商企业,京东与阿里也各有不同。京东今年的整体战略更侧重供应链,ESG策略也更加注重供应来和一线快递人员的福利保障。这一特点无疑是源于自建物流的京东,供应链是其核心能力,同时物流直营也带来的数量庞大的一线员工。 ▲ 图源:京东ESG官网截图 而作为对比,同样是电商平台的拼多多对ESG却并不怎么上心,拼多多曾在2020年发布过一次ESG报告,但之后并没有新的更新。 有意思的是,拼多多的中国官网并没有ESG或社会责任相关的栏目和报告。但在拼多多的英文版官网上,却有独立的“社会责任”一栏,这似乎也体现出,或许该企业对于国内市场的ESG的并不如国外重视。 由于国内并没有声音,我们只能参考拼多多在海外版官网提到的相关动作,主要集中在农业领域,涉及农业科研、农业供应链改造,农民技术培训和农业扶贫相关的内容。这和拼多多的企业发展一脉相承,拼多多长期重视农业电商,并将农产品打造成平台的一大特色。但即便如此,拼多多在这一块披露的信息也比较简单,且信息基本都停留在2020年。 ▲ 图源:拼多多英文版官网截图 与电商平台不同,美团不仅发布了ESG报告,也发布了CSR报告,两份内容互为补充。 但与腾讯、阿里从宏观视角较为详细展开自家企业在ESG各方面的工作不同,美团的ESG报告更多侧重在环境部分。在这一块的内容,美团具体到了各个分/子公司,各个业务模块用水用电的数字,可谓事无巨细。但跳出环境这个板块,在社会及企业治理,其中尤其是企业治理相关的内容,则相对粗放,报告只是列举了公司的理念和规章制度,而缺少具体的执行报告和定量的数据分析支持。 不过,即便行业不同,美团和京东在业务模式上有着一定的相似之处,即拥有大量的一线人员,包括京东快递员、美团外卖员等等。当然,如果准确来讲,京东的快递员是直接受雇于京东的,美团的部分外卖员却并不直接受雇于美团,但这不是重点。 从美团披露的ESG报告来看,其关于外卖骑手的关怀主要依靠的是对供应商的管理,然后由供应商去完成对骑手福利、工作环境、安全保障等方面的落地。所以在ESG报告中,相关策略措施,也更多是条例型的内容。 当然,即便大多数互联网企业在ESG报告的披露上还处在相对早期的水平,但相对于传统行业来说,也已经十分领先了。 今年1月在北京举行的2024中国餐饮业社会责任大会发布了《2023年中国餐饮行业ESG实践报告》提到,餐饮行业的的ESG主要集中在两个方面,其中一方面是捐款捐物的社会责任,另一方面则是集中在环保材料,再生能源等环境相关。 毫无疑问,大量传统实体行业对于ESG的理解,或者实践仍然比较表面。一些企业将ESG作为CSR的一个变种,或者简单将ESG理解为环保和碳中和。 所以整体看,中国企业的ESG水平,呈现出极大的两极分化,而中国企业对于ESG的理解还需要市场和时间来培育。 中国ESG的矛盾和出路 那么,除了简单粗暴的“早期阶段”,我们应该如何更具象化地理解当前中国企业ESG的处境呢?讨论这个问题其实仍然要回到商业的逻辑上来。 从ESG的角度来讲,无论是环境、社会、还是治理,本质都是可持续的发展理念。但这个理念在实践的过程中,却存在一个悖论。 即要实现ESG的长期目标,需要前期投入大量的成本,比如在环境方面,放弃更有性价比的普通材料,而采用更具有环保性的材料,比如建设大量的基础设施,保证某个业务运行环节资源的重复利用。比如在社会环节,需要企业附带的承担许多不能产生经济“经济效益”的事情,耗费企业资源的同时却没有效益产生。比如在企业治理环节,更公平、公开的企业管理组织架构,必然让企业的当权者的权利受到制约,但ESG的推动却又依赖于这些企业当权者的推动。 整体上,ESG的实施过程多少有点“欲练此功,必先自宫”的味道。即由这一代人的投入,来为下一代创造利益,这种来自时间上的利益错配,才是对人性、对ESG的最大考验。 从这些角度来看,但凡是一个正常的管理者,以普遍理性的角度,都很难为ESG买单。 我们在许多有影响力的文学作品中看到这样的场景。比如在《流浪地球》中,大量人员反对流浪地球计划,就是因为牺牲当代人的利益去拯救未来的人类。而在《三体》中,人类为了对抗三体危机而改变了全球经济、科技的发展方向,最终导致人类进入大低谷时代,在痛苦和反思中,人类悟出了“给岁月以文明,而非给文明以岁月”的哲理。 ▲ 图源:《流浪地球2》剧照 这种哲学的思考自然也出现在ESG的落地上。中金公司研究部也曾提到,“ESG建设初期,新增的ESG投入会损害公司的利润,只有到一定的时间或者是评级达到一定的评分,才会产生正向收益。” 所以如何去调动企业在当前阶段的积极性,平衡短期和长期的利益其实才是ESG实现的最大考验。 中国的企业家其实都是非常务实的企业家,比如我们前面提到,许多企业的ESG以捐款为主,我们说这是对ESG理解浅薄的表现。但其实除此之外,它的另一个原因,是捐款是满足社会政策对企业ESG的强制要求最简单便捷的路径。 这从ESG的角度而言,显然是企业在政策强制要求下的一种被动敷衍的行为。但虽然我们明确其中的原因,从ESG 的悖论来看,当前阶段也仍然只能依靠一些刚性的政策指标来推动企业来完成ESG的前期投入。 比如在环境领域,中国提出的“3050目标”。比如2023年2月,深交所发布新修订的《深圳证券交易所上市公司自律监管指引第3号——行业信息披露》,提出要强化ESG信息披露等多项要求。 比如港交所进入2022年之后就开始全面执行新版ESG指引,并对ESG采取强制性的监管。如今在港交所上市的企业需要按照新版ESG指引披露ESG报告,如不披露就需要解释。 ▲ 图源:thesafetymag 除此之外,在资本市场上,随着打着ESG旗号的基金越来越多,上市公司如果想要以更低的成本募资,也必需公布相应的ESG报告。这些因素,都在强制推动着企业将ESG的相关工作落到实处。 通过这种政策和市场因素带来的强制性,能够推动企业走过ESG最艰难的投入阶段。 在这个阶段,企业会将ESG的投入看做是一种成本。当走过了成本投入阶段,当ESG的效益得到了体现,后期企业对于ESG的投入就更多会被视为是一种投资。 当然,通过政策和市场推动,对于一种理念的实践来讲,并不是一个长久之计计。真正要让企业的主动性和积极性,还是要让企业在实践ESG的过程中真正有利可图。 企业本质上的追求利润的,而让企业可持续发展的ESG维护的也是企业的长期利益。而这种企业发展的微妙平衡,还需要在实践中更多的去摸索。 结尾 虽然整个2023年,ESG的发展并不顺利。但毫无疑问,走过20年的ESG已经在全球范围成为了一种共识。

俄罗斯方块游戏的Python代码

这是一个简单的俄罗斯方块游戏的Python代码,使用了pygame库。请确保你已经安装了pygame库。如果没有,你可以使用以下命令进行安装: pip install pygame 然后,你可以使用以下代码来创建一个简单的俄罗斯方块游戏: import pygame import random # 初始化pygame pygame.init() # 设置屏幕大小和标题 screen_width = 800 screen_height = 600 screen = pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption("俄罗斯方块") # 设置颜色 WHITE = (255, 255, 255) RED = (255, 0, 0) GREEN = (0, 255, 0) BLACK = (0, 0, 0) # 定义方块类 class Block(pygame.sprite.Sprite): def __init__(self): super().__init__() self.image = pygame.Surface([20, 20]) self.image.fill(RED) self.rect = self.image.get_rect() self.rect.x = random.randint(0, screen_width - 20) self.rect.y = random.

R语言学习case9:ggplot基础画图(Scatter Metrics 矩阵散点图)

step1: 导入ggplot2库文件 library(ggplot2) step2:带入自带的iris数据集 iris <- datasets::iris step3:查看数据信息 dim(iris) 维度为 [150,5] head(iris) 查看数据前6行的信息 step4:利用ggplot工具包绘图 开发者们在ggplot2的基础上,还开发出了其它画图包,比如GGally。 下面画图需要用到GGally install.packages("GGally") library(GGally) 安装导入GGally plot4 <- ggscatmat(data = iris, columns = 1:4, color = "Species", alpha = 0.8)+ theme_bw(base_size = 14)+ theme(plot.title = element_text(hjust = 0.5))+ ggtitle("Scatter Metrics 矩阵散点图") plot4 这段代码是用于创建一个散点矩阵图(Scatter Matrix Plot),其中使用了ggscatmat函数从ggally包中创建。让我逐步解释每一部分的含义: ggscatmat(data = iris, columns = 1:4, color = "Species", alpha = 0.8): 这部分指定了要绘制的散点矩阵图的数据来源、要包含的列以及颜色和透明度的设置。具体地: data = iris: 使用了内置的鸢尾花(iris)数据集。columns = 1:4: 表示要使用数据集中的第1列到第4列作为散点矩阵的变量。color = "

weblogic安装部署详解

0x01 weblogic下载安装 去Oracle官网下载Weblogic 10.3.6,选择Generic版本,各版本选择下载地址:http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-main-097127.html Weblogic 10.3.6 下载地址:http://download.oracle.com/otn/nt/middleware/11g/wls/1036/wls1036_generic.jar 下载完成后,打开命令提示符,在命令提示符下使用下面命令安装64位的Weblogic: java -D64 -jar wls1036_generic.jar 1、启动安装,直接点击下一步 2、选择“创建新的中间件主目录”,选择中间件主目录,建议除C盘外的盘符,避免占用系统盘空间,点击“下一步”,(这里是虚拟机,只有一个C盘) 3、注册安全更新这一步,直接点击下一步 4、如果弹出连接失败,选择我希望不接收。。。。点击继续 5、默认选择“典型”安装,点击下一步 6、选择jdk目录,默认产品安装目录,点击“下一步” 7、默认选择所有用户,下一步 8、安装概要,下一步 9、开始安装。 10、如果需要直接创建weblogic域,选择“运行Quickstart”,点击“完成”按钮,进入快速启动页面;如果想要稍后再进行创建,取消“运行Quickstart”,点击“完成”按钮,安装完成 11、点击“Ggetting started with WebLogic Server”,进入Fusion Middleware配置向导 12、选择创建新的weblogic域 13、直接进入下一步 14、输入域的名称和位置,直接默认即可,点击“下一步” 15、配置管理员用户名、密码,之后启动weblogic和登陆控制台需要用到,输入后点击“下一步” 用户名默认:weblogic 口令:要求最少八位, 16、选择“生产模式”、JDK最好选择Weblogic自带jdk,点击“下一步” 17、选择“管理服务器”、“受管服务器、集群和计算机”,点击“下一步” 18、名称默认即可,选择本地监听地址(本机IP地址)端口号默认7001,点击“下一步” 19、无需配置受管服务器,直接点击“下一步” 20、无需配置集群,直接点击下一步 21、无需配置计算机,直接点击下一步 22、开始创建 22、创建域完成,点击完成 0x02 weblogic配置 1、进入“C:\Oracle\Middleware\user_projects\domains\base_domain”,双击“startWebLogic.cmd”,启动weblogic 2、输入刚才设置weblogic用户名和密码 3、打开浏览器输入控制台url,进入控制台进行管理 http://192.168.204.143:7001/console/ 0x03 控制台上传获取webshell 1、点击锁定并编辑 2、选择部署,进一步点击右边的安装 3、 点击上传文件--进入文件上传界面,选择要上传的war包 4、选择要上传的war包 5、选择路径,下一步 6、选择将此部署安装为应用程序 7、完成部署 8、选择激活更改后,状态变更为准备就绪,启动该服务 9、访问url,获取webshell

Weblogic集群部署详解

Weblogic集群部署 Weblogic包官方下载地址:Free Oracle WebLogic Server 12c (12.2.1) Installers for Development | Oracle 中国 服务规划: 我们使用2台设备进行搭建,其中一台设备上部署控制台管理节点和受管理节点,一台设备上只部署受管理节点 该部署以Red Hat 7为例 安装前准备(所有设备): 1.安装JDK环境 该环境的安装可以参考我之前写的JDK的安装配置。 2.关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service 3.关闭SELinux setenforce 0 vi /etc/selinux/config SELINUX=enforcing改为SELINUX=disabled 4.创建weblogic用户及用户组 groupadd weblogic useradd -g weblogic -m weblogic echo "weblogic " |passwd --stdin weblogic 注:接下来的所有操作全部使用weblogic用户进行操作 安装Weblogic 1.部署Weblogic(两台设备都需要进行部署) #请使用weblogic用户直接进行登录,不要使用su - 的方式,否则可能会无法弹出图形化界面 java -jar fmw_12.1.3.0.0_wls.jar #若还是无法弹出图形化界面,可参考如下步骤进行 1.执行xhost +,查看状态,若是open disabled 2.执行export DISPLAY=(本地设备的IP,不是服务器的):0.0 3.再查看状态xhost + ,状态为access control disabled,clients can...则说明可以连接了 #若无xhost +命令,则可以使用root用户执行yum groupinstall "

linux离线安装telnet

标题离线安装包下载地址:https://www.rpmfind.net/linux/rpm2html/search.php?query=telnet&submit=Search+…&system=&arch= 进入界面后如图所示: 下载的安装包对应的版本如下: 根据自己系统的下载对应的版本,此处下载的是centos8版本的 一共需要下载3个离线包,分别为:telnet、telnet-server、xinetd,对应的版本根据自己的需求进行下载 telnet包下载: telnet-server包下载: xinetd包下载: 此处无图,同上面根据搜索条件找到相同的版本下载即可 标题1、先检测是否这些软件包是否已经安装 rpm -qa | grep telnet rpm -qa | grep telnet-server rpm -qa | grep xinetd 说明:输入指令后没有任何输出就是没有安装 注意:telnet-server服务启动依赖xinetd服务, 需要首先安装,如果telnet-server服务在xinetd之前安装了,要先删除telnet-server,再安装xinetd 安装顺序:xinetd–>telnet–>telnet-server 标题2、卸载rpm包(如果已经安装了,又不清楚顺序,可以都卸载后统一安装) rpm -e telnet-0.17-64.el7.x86_64 rpm -e telnet-server-0.17-64.el7.x86_64 rpm -e xinetd-2.3.15-14.el7.x86_64 标题3、安装rpm包,安装前先将下载的包放在需要安装的服务器上 文件目录按照自己要求来 安装顺序:xinetd–>telnet–>telnet-server 先进入离线安装包所在的目录。然后执行安装命令: rpm -ivh xinetd-2.3.15-14.el7.x86_64 rpm -ivh telnet-0.17-64.el7.x86_64 rpm -ivh telnet-server-0.17-64.el7.x86_64 标题4、开启服务 telnet服务之后,默认是不开启服务,修改文件/etc/xinetd.d/telnet来开启服务。 注:如有则修改,第一次修改,此文件若不存在,可自己vim创建。修改 disable = yes 为 disable = no 修改后的telnet文件为: # default: on # description: The telnet server serves telnet sessions; it uses # unencrypted username/password pairs for authentication.

计算机网络——运输层(1)暨小程送书

计算机网络——运输层(1)暨小程送书 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU)前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家, [跳转到网站](https://www.captainbed.cn/qianqiu) 运输层(1)概述两个主要协议运输层和网络层的关系网络层运输层总结 多路复用与多路分解多路复用多路分解不同的技术实现时分复用(TDM)频分复用(FDM)码分复用(CDM) 总结 UDP——无连接运输特点&功能无连接面向数据报不可靠性低开销 总结 可靠数据传输原理机制 TCP——面向连接的传输特点&功能面向连接可靠性高开销 总结 小程送书《巧用ChatGPT高效搞定Excel数据分析》内容简介参与方式正品链接 小程一言 我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络自顶向下方法而整理的,包括各大高校教学都是以此顺序进行的。 面向群体:在学计网的在校大学生,工作后想要提升的各位伙伴, 讲述了应用层,遵循自顶向下原则,下面就是运输层的内容讲解了 专栏链接: link 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家, 跳转到网站 运输层(1) 概述 计算机网络的运输层是位于应用层和网络层之间的一层,它负责在网络中的不同主机之间提供端到端的数据传输服务。运输层的主要功能包括数据分段、传输控制、错误检测和纠正等。 两个主要协议 传输控制协议:TCP提供可靠的数据传输服务,它通过数据分段、流量控制、拥塞控制等机制来确保数据的可靠传输。用户数据报协议:UDP则提供不可靠的数据传输服务,它主要用于一些对数据传输延迟要求较低的应用,如音视频传输等。 运输层和网络层的关系 运输层和网络层是计算机网络中的两个重要组成部分,它们之间有着密切的关系。 网络层 负责在网络中的不同主机之间提供数据包的传输和路由选择,它使用IP协议来实现主机之间的通信。网络层的主要功能是将数据包从源主机传输到目标主机,它负责确定数据包的路径和转发。 运输层 负责在不同主机之间提供端到端的数据传输服务,它使用TCP或UDP协议来实现数据的可靠传输。运输层的主要功能是对数据进行分段、传输控制、错误检测和纠正等,以确保数据在端到端之间的可靠传输。 总结 网络层提供了数据包的传输和路由功能,而运输层则在此基础上提供了端到端的数据传输服务。两者之间的关系可以理解为网络层提供了基础的数据传输能力,而运输层在此基础上增加了更高层次的数据传输服务,使得应用层能够更加方便地进行数据通信。 多路复用与多路分解 多路复用和多路分解是两种重要的数据传输技术,它们允许在单个通信信道上同时传输多个数据流。 多路复用 将多个数据流合并成一个数据流进行传输的过程。在发送端,多路复用将来自不同源的数据流合并成一个数据流,然后通过网络传输到接收端。在接收端 多路分解 将接收到的数据流分解成原始的多个数据流,并交付给相应的目标。 不同的技术实现 时分复用(TDM) 在时分复用中,不同的数据流按照时间片的方式依次传输,每个数据流被分配一个固定的时间段进行传输。接收端根据时间信息来分解数据流。 频分复用(FDM) 在频分复用中,不同的数据流通过在不同的频率范围内传输,每个数据流占据不同的频率带宽。接收端根据频率信息来分解数据流。 码分复用(CDM) 在码分复用中,不同的数据流使用不同的编码方式进行传输,接收端根据编码信息来分解数据流。 总结 多路复用和多路分解技术可以提高通信信道的利用率,允许多个数据流通过同一信道进行传输,从而减少了通信资源的浪费。这些技术在计算机网络中得到了广泛的应用,例如在电话网络、无线通信网络以及互联网传输中都有多路复用和多路分解的应用。 UDP——无连接运输 UDP是计算机网络中的一种无连接的运输层协议。与TCP协议不同,UDP协议不需要在发送数据之前建立连接,也不需要在数据传输后拆除连接。 特点&功能 无连接 UDP协议是无连接的,发送端在发送数据之前不需要与接收端建立连接,也不需要维护连接状态。这使得UDP协议的数据传输速度更快,但也意味着它不提供数据的可靠性保证。 面向数据报 UDP协议是面向数据报的,每个UDP数据包都是独立的,没有先后顺序的要求。这意味着UDP数据包之间的传输没有关联,每个数据包都是独立处理的。 不可靠性 UDP协议不提供数据的可靠传输保证,它不保证数据包的顺序到达、不保证数据的完整性,也不提供重传机制。因此,UDP协议在传输过程中可能会出现丢包、重复、乱序等问题。 低开销 相比于TCP协议,UDP协议的开销更低,不需要维护连接状态、不需要进行拥塞控制和流量控制,因此在一些对传输速度要求较高的应用场景下更为适用。 总结 UDP协议通常用于那些对数据传输时延要求较高,但对数据可靠性要求较低的应用场景,例如音视频流媒体传输、在线游戏数据传输等。由于UDP协议的特点,它能够提供更快的数据传输速度和更低的传输开销,但在传输过程中可能会出现数据丢失或乱序的情况。因此,在选择使用UDP协议时,需要根据具体的应用场景和需求来权衡其优劣。 可靠数据传输原理 可靠数据传输是指在计算机网络中,确保数据在传输过程中不会丢失、损坏或重复,并且能够按照正确的顺序到达目的地的过程。 机制 确认和重传机制:发送方在发送数据后等待接收方的确认消息,如果一定时间内没有收到确认消息,发送方会重新发送数据。这样可以确保数据的可靠传输。序列号和校验和:在发送数据时,每个数据包都会被赋予一个唯一的序列号,接收方可以根据序列号来检查数据包的顺序是否正确。同时,每个数据包都会附带一个校验和,接收方可以通过校验和来检查数据包是否损坏。流量控制和拥塞控制:流量控制用于控制发送方发送数据的速率,以确保接收方能够处理数据。拥塞控制用于避免网络拥塞,通过动态调整发送方的发送速率来保证网络的稳定性。超时重传:发送方在发送数据后会设置一个超时时间,如果在超时时间内没有收到确认消息,发送方会重新发送数据。确认机制:接收方在接收到数据后会发送确认消息给发送方,以确保发送方知道数据已经成功到达。 TCP——面向连接的传输 TCP是一种面向连接的、可靠的传输层协议,与UDP协议不同,TCP协议是面向连接的,它在数据传输之前需要先建立连接,在数据传输完成后需要拆除连接。然而,您提到的“TCP无连接运输”似乎存在一些混淆,因为TCP协议本身并不支持无连接的传输。 特点&功能 面向连接 TCP协议是面向连接的,数据传输之前需要通过三次握手建立连接,传输完成后需要通过四次挥手拆除连接。这种面向连接的特性保证了数据的可靠传输和顺序传输。

关于STM32 HAL库 (I2C/IIC)问题的解决方法

1.情况介绍: 因为某个项目想要颜色识别,去识别球的颜色,但是又不想多来个摄像头,所以想尝试一下颜色传感器的方案,简化流程。然后在淘宝上买了个TCS34725来试试,随后就遇到了问题:HAL库 I2C通信了几次就死锁了 。我之前也接触过I2C,OLED屏,tft屏,我那时候是通过GPIO口模拟I2C(因为淘宝的和网上的例程大多是这个)来实现的。还有就是九轴陀螺仪的磁力计数据读取,ist8310的例程是HAL库的,但是我那时候的问题是我用我的cubeMX去修改配置,更新之后,I2C就死锁了,但是那时候也没有太过深入,因为没有使用九轴陀螺仪的必要,就改成了六轴陀螺仪,间接没有使用I2C了。现在这个问题又给我撞上了,正好解决一下当年没有完成的事情。 以下是我环境配置: 【STM32cubeMX Vision】:6.0.1 【FreeRTOS Vision】 :CMSIS_1 是的,我是用FreeRTOS跑的。 具体的情况是:我移植了例程之后,开始跑调试看数据 数据开头全零,意料之中。 将断点打到里面去,是能执行的,就是卡在了HAL_I2C_Master_Transmit返回值有问题上。一路追查下去,卡在了if (I2C_MasterRequestWrite(hi2c, DevAddress, Timeout, tickstart) != HAL_OK),再追下去卡在了if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK)。超时了!看了一眼官方注释:Wait until ADDR flag is set。再追下去,__HAL_I2C_GET_FLAG(I2C_FLAG_ADDR)和 __HAL_I2C_GET_FLAG(I2C_FLAG_AF) 属于是这两个标志位没有到位报错。 参考:I2C_GetFlagStatus()函数返回值说明,IIC的标志位-CSDN博客 I2C_FLAG_ADDR:表示I2C地址发送完成的标志位。 SET:表示I2C地址发送完成。RESET:表示I2C地址未发送完成。 I2C_FLAG_AF:表示I2C Acknowledge失败的标志位。 SET:表示I2C Acknowledge失败。RESET:表示I2C Acknowledge成功。 额额额~,没有发送,也没有应答。这就开始难办了。 结构体里面的ErrorCode 也是这个问题。 没办法,只能先求助网上了。 ******************************************************************************************************** 2.网上问题描述集合 1. HAL_I2C_Master_Transmit 或者 HAL_I2C_Master_Receive 一直返回 BUSY 或 TIMEOUT 参考:STM32 I2C 死锁问题_if (i2c_waitonflaguntiltimeout(hi2c, i2c_flag_busy-CSDN博客 他这一篇已经比较完备的介绍了问题,提出了几个解决方法: 1.当I2C报错时,对其写入一个stop信号,将管脚配置为普通输出管脚后,实现电平的反转,以达到解除死锁,再将其恢复为 I2C 配置。这个方法是很简单的,我也试过了这个方法,问题依旧,然后就发现一直在给我重置,我就知道我的 I2C 一直在超时,一直在报错了,对我遇到的问题没有作用。这个方法仅适用于间接性报错,如果是有明确错误原因的不适用,不然会一直重置。 2.他发现当出现 TIMEOUT 或 ERROR 时,STM32 Master 并不会产生 STOP 信号。这应该是老版cubeMX的遗漏了,我V6.

【论文+综述+视觉换衣】视觉虚拟换衣调研:StableVITON、OutfitAnyone、TryOnDiffusion、HR-VITON

23.12.StableVITON (韩国科学技术院 KAIST):基于潜在扩散模型的虚拟试穿语义对应学习:Learning Semantic Correspondence with Latent Diffusion Model for Virtual Try-On 23.12.OutfitAnyone(阿里未开源): 超高质量的虚拟试穿,适合任何服装和任何人: Outfit Anyone: Ultra-high quality virtual try-on for Any Clothing and Any Person 23.06.TryOnDiffusion: (Google未开源)基于diffusion的试穿模型: 2个Unet网络的故事 (阿里着重参考) A Tale of Two UNets:项目地址 | 论文 22.11 Paint by Example: 将换衣作为去除衣服后的填充方法 Exemplar-based Image Editing with Diffusion Models 22.06 HR-VITON:(韩国科学技术院开源) High-Resolution Virtual Try-On with Misalignment and Occlusion-Handled Conditions | code 21.03 VITON-HD: (韩国科学技术院开源) High-Resolution Virtual Try-On via Misalignment-Aware Normalization | code

常用十大爬虫软件

1、八爪鱼 国内知名度最高、业界最先进的网络爬虫软件之一。八爪鱼软件能满足多种业务场景,适合产品、运营、销售、数据分析、政府机关、电商从业者、学术研究等多种身份职业,可模板采集、智能采集、不间断云采集、自定义采集、多层级采集、全自动数据格式化等。软件现提供免费版和收费版,免费版有功能限制,收费版分旗舰版、旗舰+版、私有云版,价格每年约1999元至6.98万元不等。 2、火车头 火车头是使用人数最多、最受欢迎的互联网数据抓取、处理、分析,挖掘软件之一。它凭借其灵活的配置与强大的性能领先国内数据采集类产品,历经十余年的升级更新,积累了大量用户和良好口碑。软件采集时不限网页,不限内容,支持多种扩展,打破操作局限;分布式高速采集系统,多个大型服务端同时稳定运作,快速分解任务量,最大化提升效率;内置采集监控系统,实时报错及时修复。软件为收费制,性价比较高,每年约960元起。 3、集搜客GooSeeker 集搜客GooSeeker始于2007年,是国内最早的网络爬虫工具之一,近年来,集搜客已把互联网内容结构化和语义化技术成功推广到金融、保险、电信运营、电信设备制造、电子制造、零售、电商、旅游、教育等行业。软件通用于国内外网站,免编程,大批量抓取,可作为微博采集工具箱,采集数据一键输出至Excel表格;软件还可自动分词和情感分析、报表摘录和笔记等。软件现提供免费版、专业版、旗舰版、VIP版,每年约399元至2万元不等。 4、神箭手 神箭手亦是使用人数最多的网络爬虫软件之一,它封装了复杂的算法和分布式逻辑,可提供灵活简单的开发接口;应用自动分布式部署和运行,可视化简单操作,弹性扩展计算和存储资源;统一可视化管理不同来源的数据,restful接口/webhook推送/graphql访问等高级功能让用户无缝对接现有系统。软件现提供企业标准版和高级版,每年约5699元至1.49万,以及企业定制版。此外,神箭手支持私有云部署,可为企业、学校、政府机关等提供高效的一站式大数据中心。 5、Import.io Import.io是一款来自英国伦敦的收费制网络爬虫工具,在美国开设有分公司,曾凭借三年收入增长640%,而被评为“美国成长最快的100家软件公司之一”,后入选《Inc》杂志评选的“年度公司5000强榜单”。作为十大爬虫软件之一,Import.io提供了从数据爬取、清洗、加工到应用的一套完整解决方案,涉及零售与制造业、数据爬取与加工、机器学习算法、风控等领域;Magic、Extractor、Crawler和Connector是其四大特色功能。 6、HTTrack HTTracks是一款免费的网络爬虫软件,适用于Windows、Linux、Sun Solaris和其他Unix系统。它可以将一个或多个Web站点下载到本地目录,递归构建全部目录,以及获取HTML、图像和其它文件到本地计算机。HTTrack会维持原站点的相对链接结构,用户可以用浏览器打开本地的镜像页面,并逐个链接浏览,与在线浏览无异。HTTrack也支持对已有镜像站点的更新,以及从中断点恢复下载。HTTrack高度可配置,并提供帮助文档。 7、WebMagic WebMagic是一个开源的Java垂直爬虫框架,核心简单但涵盖爬虫的全部流程,灵活而强大,适合爬虫入门学习。WebMagic无需配置,只用少量代码即可实现一个爬虫,其组件PageProcessor、Scheduler、Downloader和Pipeline,对应爬虫生命周期中的处理、管理、下载和持久化等功能。其特色之处在于完全模块化设计,拥有强大的可扩展性;支持多线程;支持分布式;支持爬取js动态渲染的页面等。 8、后羿采集器 后羿采集器是买购网编辑认为最好用的网络爬虫工具之一,它适用于Linux、Windows和Mac,提供的免费功能可以解决绝大部分编程小白的数据抓取需求,而收费的专业版、旗舰版、OEM版,可以满足更高级更复杂的需求。另外不同于其他同类软件的特色之处,就是后羿采集器还支持无限制免费导出,支持TXT、EXCEL、CSV和HTML文件格式,或直接发布到数据库MySQL、MongoDB、SQL Server和PostgreSQL。 9、Octoparse Octoparse是八爪鱼的海外版本,是最优秀的爬虫软件之一,提供免费版和付费版,付费版均提供云服务。作为一款功能齐全的互联网采集工具,Octoparse内置了许多高效工具,用户无需任何编码技能便可从复杂网页结构中收集结构化数据。采集页面设计简单友好,完全可视化操作,适用于新手用户。广告封锁功能,可提高采集效率;提供Xpath设置,精准定位网页数据的元素;支持导出多种数据格式如CSV、Excel、XML等。 10、ParseHub ParseHub是一款免费免编码的爬虫工具,同时提供付费版,适用于Windows、Mac OS X和Linux系统。ParseHub支持从使用了AJAX、JavaScript、cookie等技术的网站收集数据,其机器学习技术可以读取、分析,然后将Web文档转换为相关数据。作为免费软件,用户能在Parsehub中设置不超过5个publice项目,而付费版允许创建至少20个private项目来抓取网站。

中国500米分辨率LAI数据集(2000-2020)

中国500米分辨率LAI数据集(2000-2020) 叶面积指数LAI(Leaf Area Index)是描述植被冠层几何结构的基本参数之一,被定义为单位地表面积上所有叶片面积的倍数,它控制着植被的许多生物物理过程,如光合作用、呼吸作用、蒸腾作用、碳循环和降水截获等,是陆面过程一个十分重要的结构参数。 叶面积指数是生态系统的一个重要结构参数,用来反映植物叶面数量、冠层结构变化、植物群落生命活力及其环境效应,为植物冠层表面物质和能量交换的描述提供结构化的定量信息,并在生态系统碳积累、植被生产力和土壤、植物、大气间相互作用的能量平衡,植被遥感等方面起到重要作用。 地球资源数据云(GRDC)在MODIS陆地产品的基础上,处理得到2000-2020年叶面积指数(LAI)年度数据,数据格式为GeoTiff,空间分辨率为500米,单位m²/m²,有效值域范围0-100,(使用过程需*0.1),255为填充值,空间范围覆盖为中国全境。 卫星遥感数据具有空间尺度大、探测光谱丰富、时间和空间分辨率高等优点,是估算大范围地表叶面积指数的重要手段。2020年全国平均叶面积指数在空间上可以看出在江南、华南、西南地区和青藏高原东南部最高,东北、华北、关中及黄淮地区次之,如图所示。 数据时间:2000-2020年 数据空间位置:全国 数据格式:tiff 数据空间分辨率:500m 数据坐标系:WGS1984 欢迎大家关注、收藏和留言,如果您想要什么数据,可以在搜索网址地球资源数据云,我会分享更多的好的数据给大家~~~~~ 以上是关于中国500米分辨率LAI数据集(2000-2020)详情,欢迎小伙伴们一起学习和分享。

SpringBoot 集成 ClickHouse

SpringBoot 集成 ClickHouse 1. 引入maven 依赖 <dependency> <groupId>com.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>${clickhouse.jdbc.version}</version> </dependency> 最新版本可以 在 mvnrepository 搜索 https://mvnrepository.com/ 2. 添加ck的数据源 spring: datasource: driver-class-name: com.clickhouse.jdbc.ClickHouseDriver url: jdbc:clickhouse://localhost:8123/default username: username password: password 3. 持久层的编写 由于项目当中使用的是mybatis plus 所以代码就按照对应的格式编写,正常调用即可 @Mapper public interface LocalMapper extends BaseMapper<LocalEntity> { } @Getter @Setter @Accessors(chain = true) @TableName("local") public class LocalEntity { /** * 主键ID */ private String id; @TableField("status") private Integer status; }

利用GEE和站点坐标处理MODIS的LAI数据

最近要用到LAI数据,结合各位前辈的分享和向GPT请教,突击了一晚上。因为我最终要得到的是站点的数据,并且想直接得到.csv格式,省掉用Arcgis处理tiff文件。最终的代码如下: 我尝试了MOD15A2H和MCD15A3H,两个数据集,一个8天,一个4天尺度,结果差别不是很大,可以根据实际需求选择。 // 设置站点的经纬度坐标 var siteCoordinates = ee.Geometry.Point([276.6529, 41.6285]); // 请用实际的经纬度替换 lon 和 lat // 根据站点坐标创建一个缓冲区 var siteBuffer = siteCoordinates.buffer(500); // 缓冲区半径为 500 米,可以根据实际情况调整 // 以站点为中心加载 MODIS 数据集 var dataset = ee.ImageCollection("MODIS/061/MOD15A2H") .filterBounds(siteBuffer) .filterDate('2011-01-01', '2013-12-31') .select('Lai_500m'); // 在地图上显示站点和 MODIS 数据 Map.centerObject(siteBuffer, 6); Map.addLayer(siteBuffer, {color: 'red'}, 'Site Buffer'); Map.addLayer(dataset, {bands: ['Lai_500m'], min: 0, max: 100}, 'MODIS LAI'); // 定义一个函数,用于在每个图像上进行采样 var sampleImage = function(image) { // 使用 reduceRegion 采样 var sampledValue = image.

SSH 远程登录报错:Permission denied, please try again. 解决办法

在嵌入式 Linux 开发中,我们经常会用到 SSH 工具进行远程登陆,本文介绍在通过 SSH 客户端登录 Linux 时,提示 Permission denied, please try again 错误的解决方案。 问题背景 在使用虚拟机系统 Ubuntu 16.04 通过 SSH 连接 ZYNQ 运行的 Linux 时,即使输入了正确密码,也出现了权限拒绝的错误,如下所示: Permission denied, please try again.拒绝许可,请重试。 问题原因 SSH 配置了禁止 root 用户登录策略;使用 cat 命令查看 /etc/ssh/sshd_config 配置信息: cat /etc/ssh/sshd_config 查看 PermitRootLogin 参数: 解决办法 在 sudo 模式下使用 vi 编辑器打开配置文件: sudo vi /etc/ssh/sshd_config 按下 i 进入编辑模式,将参数 PermitRootLogin 的值修改为 yes: 修改完成后,按下 ESC,输入 :wq! ,按下回车保存并退出;重启 SSH 服务: service sshd restart 再次重新连接即可: ssh osrc@192.