简历面-面经03

面经04

项目细则

项目名称:基于鸿蒙的爱心云捐赠系统

鸿蒙开发

  • ArkTS语言

    ArkTS在继承TypeScript语法的基础上进行了优化,以提供更高的性能和开发效率。

    目前流行的编程语言TypeScript是在JavaScript基础上通过添加类型定义扩展而来的,而ArkTS则是TypeScript的进一步扩展

    类型安全:

    ArkTS支持强类型和弱类型的结合,能够有效防止运行时错误,提高代码的安全性。

    现代语法:

    ArkTS的语法灵活,受多种编程语言的影响,特别是JavaScript,易于上手,降低了开发者的学习曲线。

    支持异步编程:

    语言本身对异步编程有良好支持,使得开发者能够在处理I/O操作时,不会阻塞主线程,从而提升应用的流畅性。

    组件化开发:

    ArkTS支持组件化开发,能够将复杂的功能拆分成小的组件,便于管理和重用,提高开发效率。

    跨平台兼容性:

    以鸿蒙系统为基础,ArkTS具有良好的跨设备兼容性,能够在多种设备上运行,包括手机、平板、穿戴设备等。
     

  • 鸿蒙组件

    1. UI组件

      Text:用于显示文本内容,可以设置字体、颜色、大小等属性。

      Button:可点击的按钮组件,支持各种样式和点击事件。

      Image:用于显示图片,支持多种格式。

      List:用于展示列表数据,支持动态加载和无缝滚动。

      Grid:用于显示网格布局,让开发者能够更灵活地排列组件。

    2. 布局组件

      Container:基础容器,用于包裹其他组件,支持多种布局管理。

      Flexbox:灵活布局组件,支持流式布局和响应式设计。

      Column和Row:用于垂直或水平排列子组件的布局组件。

    3. 表单组件

      Input:文本输入框,支持多种输入类型,如文本、密码等。

      Checkbox和Radio:用于选择的输入组件,支持单选和多选操作。

      Slider:滑块组件,用于选择一个数值范围内的值。

    4. 导航组件

      Tab:用于页面之间的切换,支持多种样式和动画效果。

      Navigator:用于页面导航,可以实现页面的堆栈管理。

      Drawer:侧边菜单,可以容纳导航链接和功能按钮。

    5. 功能组件

      Toast:用于展示临时消息提示,不会打断用户的操作。

      Dialog:对话框组件,用于展示确认或提示信息。

      Progress:进度条,用于显示任务进度。

    6. 网络与数据组件

      Http:用于发起网络请求,支持RESTful API交互。

      Database:访问本地或云端数据库,支持数据的增删改查操作。

 

 

  • 在鸿蒙云函数的实现中,你是如何确保安全性和高效性的?具体采用了哪些策略?
     

    安全性策略

  1. 身份验证和授权

    • API Gateway:使用 API 网关管理云函数的访问和授权,确保只有经过身份验证的用户和合法的请求可以访问云函数。
    • Token 验证:使用 JWT(JSON Web Token)或 OAuth2.0 等机制进行身份验证,确保每个请求都是经过授权的。
  2. 数据传输加密

    • HTTPS:强制使用 HTTPS 进行数据传输,确保数据在传输过程中不会被窃听或篡改。
    • 加密存储:在存储敏感数据时,采用加密算法对数据进行加密,保护数据隐私。
  3. 输入验证

    • 输入校验:针对用户输入的数据进行严格校验,防止 SQL 注入、跨站脚本(XSS)等攻击。
    • 内容过滤:过滤请求中的可疑内容或危险代码,避免执行潜在的恶意代码。
  4. 角色和权限管理

    • 通过配置 IAM(身份与访问管理)策略,控制不同用户和服务对云函数的访问权限,遵循最小权限原则。
  5. 审计和监控

    • 实施日志记录和监控,实时跟踪云函数的调用、错误和其他安全事件,及时发现和响应安全威胁。

    高效性策略

  6. 冷启动优化

    • 常驻实例:根据业务需求,可以考虑使用常驻函数实例,减少冷启动时间。
    • 合理配置资源:根据函数的实际性能需求合理配置内存和 CPU 资源,提高函数的执行效率。
  7. 异步处理

    • 使用消息队列等中间件实现异步处理,将长耗时操作放到后台处理,避免阻塞 HTTP 请求的响应,提高整体性能。
  8. 资源管理

    • 监控函数的性能,自动调整资源配置,确保在高并发和突发流量下仍保持高可用性。
    • 采用 CDN 服务缓存静态资源,减轻云函数的负担,提高访问速度。
  9. 代码优化

    • 采用最佳实践优化代码,减少函数的执行时间和资源消耗,例如使用高效的数据结构和算法、减少不必要的计算和 I/O 操作。
  10. 结果缓存

    • 对频繁请求的数据进行缓存,减少数据库查询和计算,从而降低延迟和资源消耗。

     

知识补充

JWT

JWT(JSON Web Token)是一种用于安全传输信息的开放标准(RFC 7519),它以一种紧凑和自包含的方式在各方之间安全地传递信息。

JWT 的结构

JWT 通常包含三个部分,使用点(.)分隔:

  1. 头部(Header)

    • 通常包括令牌的类型(typ,通常为 “JWT”)和所使用的签名算法(alg),如 HMAC SHA256 或 RSA。
    {"alg": "HS256","typ": "JWT"
    }
    
  2. 载荷(Payload)

    • 载荷中包含声明(claims),这些声明可以是关于实体(通常是用户)及其他数据的。声明分为三种类型:
      • 注册声明:JWT 规范中定义的一组标准声明,推荐使用,例如 iss(签发者)、exp(过期时间)、sub(主题)。
      • 公共声明:可以自行定义,但为了避免冲突,应该用 URI 命名,且如果声明的值是敏感的,应避免直接放在 JWT 中。
      • 私有声明:自定义的声明,通常用在特定的上下文中。
    {"sub": "1234567890","name": "John Doe","admin": true
    }
    
  3. 签名(Signature)

    • 为了确保 JWT 的完整性和真实性,签名部分是使用头部中指定的算法,对编码的头部和载荷进行签名。比如,使用 HMAC SHA256 算法的签名可以这样生成:
    HMACSHA256(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret)
    
JWT 的工作原理
  1. 登录:用户通过用户名和密码进行身份验证。
  2. 生成 Token:如果身份验证成功,服务器生成一个 JWT,并将其返回给用户。
  3. 请求:用户在后续请求中将 JWT 包含在 HTTP 请求的 Header 中(通常是 Authorization: Bearer <token>)。
  4. 验证 Token:服务器在接收到请求时解析 JWT,并验证其签名。如果验证成功,可以信任该请求,执行后续操作。
  5. 访问控制:可根据 JWT 中的声明(如用户角色等)进行访问控制。
使用场景
  • 用户身份验证:JWT 广泛应用于用户登录后保持其身份,尤其是在单页面应用(SPA)中。
  • 信息交换:由于 JWT 可以安全地传输信息,因此可以用于各种数据的传递,确保信息的真实性。
JWT 的优缺点
优点:
  • 自包含:JWT 中包含了所有用户所需的信息,避免请求时频繁查询数据库。
  • 跨域支持:JWT 可以通过 HTTP 请求中的 Authorization 头进行发送,支持跨域请求。
  • 无状态:服务器不需要存储会话信息,有助于水平扩展。
缺点:
  • 令牌失效问题:如果 JWT 被泄露,攻击者可以在令牌过期之前使用它。需考虑实现令牌的失效机制。
  • 载荷限制:由于 URL 长度的限制和性能问题,JWT 的载荷不应太大。
如何在应用程序中实施 JWT
  1. 生成 JWT

    • 登录成功时生成 JWT,通常使用服务端的库(如 Node.js 的 jsonwebtoken)。
    const jwt = require('jsonwebtoken');
    const token = jwt.sign({ id: user.id, role: 'admin' }, 'your_secret_key', { expiresIn: '1h' });
    
  2. 验证 JWT

    • 在需要身份验证的请求中验证 JWT。
    const token = req.headers['authorization'].split(' ')[1];
    jwt.verify(token, 'your_secret_key', (err, decoded) => {if (err) {return res.status(401).send('Unauthorized');}req.userId = decoded.id; // 将用户 ID 附加到请求中
    });
    
  3. 处理 Token 过期

    • 需要实现一种机制来处理过期的 JWT,如 token 刷新策略。

输入校验

在处理用户输入时,输入校验是确保应用安全的关键环节,可以有效防止多种攻击,比如 SQL 注入、跨站脚本(XSS)、命令注入等。

1. SQL 注入防护
  • 使用预处理语句

    • 采用参数化查询或预处理语句(如使用 PreparedStatement),使用户输入的数据不会直接被拼接到 SQL 查询中,从而有效阻止注入。

      // 示例使用 Node.js 和 MySQL
      const sql = 'SELECT * FROM users WHERE username = ?';
      db.query(sql, [username], (err, results) => {// 处理查询结果
      });
      
  • 输入过滤

    • 对用户输入的内容进行过滤,移除或转义特殊字符(如单引号、双引号、分号等),这些字符在 SQL 语句中具有特殊意义。
  • 最小权限原则

    • 确保数据库用户仅有需要的权限,减少潜在的损害面。
2. 跨站脚本(XSS)防护
  • 输出编码

    • 对用户输入的数据进行 HTML 编码,确保在浏览器中输出时不被当作代码执行。

      // 在输出之前进行 HTML 编码
      const safeHTML = encodeHtml(userInput);
      
  • 不允许不必要的输入

    • 在表单中,限制用户输入的格式,例如使用正则表达式限制输入的字符类型。限制输入为纯文本的情况下,通过使用 <textarea> 输入框。
  • 内容安全策略(CSP)

    • 实施内容安全策略,通过 HTTP 响应头限制可执行的脚本源,减少 XSS 攻击的可能性。
3. 命令注入防护
  • 限制命令输出

    • 避免使用用户输入直接拼接到系统命令中,使用参数化形式执行系统命令(如果必须执行命令)。
  • 文件路径限制

    • 对用户输入的文件路径进行严格校验,确保只包含允许的值。
4. 正则表达式校验
  • 格式验证

    • 使用正则表达式校验输入的数据格式,例如电子邮件、手机号、用户名等。

      function isValidEmail(email) {const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return regex.test(email);
      }
      
  • 长度限制

    • 限制输入数据的长度,防止过长的输入导致缓冲区溢出等安全问题。常规来说,设置最大字符数。
5. 使用库和框架
  • 安全库

    • 利用成熟的安全库或框架,这些工具往往内建了针对常见攻击的防护措施,比如使用 DOMPurify 清理 XSS 攻击,还有其他库可以防止 SQL 注入等。
  • 框架支持

    • 在使用 web 框架(如 Express、Django)时,利用其提供的安全功能和中间件,例如自动防止 XSS、CSRF 保护等。
6. 日志监控与审计
  • 日志记录

    • 记录用户的输入和系统响应,监控异常请求和潜在攻击,并及时响应。
  • 异常处理

    • 捕获并处理潜在的错误,避免泄露内部系统信息。

权限管理

在鸿蒙云函数的环境中,配置身份与访问管理(IAM)策略是确保安全性的重要组成部分。通过IAM,可以有效控制不同用户和服务对云函数的访问权限,遵循最小权限原则,从而降低安全风险。

最小权限原则

最小权限原则要求每个用户、服务或程序仅获得其完成任务所需的最低权限,这样可以防止权限过大导致的潜在安全漏洞。

1. 定义用户和角色
  • 用户分类:根据用户的角色和职责划分用户类型,例如管理员、开发者和普通用户。
  • 角色创建:为不同的用户或服务创建特定的角色,这些角色具有不同的访问权限。例如,开发者角色可以管理函数代码,但不能删除函数。
2. 创建和配置 IAM 策略
  • 策略定义:在IAM中,可以创建策略以具体定义那些允许和拒绝的操作。例如:

    • 函数管理策略:允许某个角色调用、创建和更新云函数,但不允许删除。
    • 只读策略:允许用户查看云函数的配置和日志,但不允许进行任何修改。
  • 示例策略

    {"Version": "2012-10-17","Statement": [{"Effect": "Allow","Action": ["function:Invoke","function:GetFunction","function:ListFunctions"],"Resource": "arn:aws:function:REGION:ACCOUNT_ID:function:FUNCTION_NAME"},{"Effect": "Deny","Action": ["function:DeleteFunction"],"Resource": "arn:aws:function:REGION:ACCOUNT_ID:function:FUNCTION_NAME"}]
    }
    
3. 分配角色与权限
  • 为用户分配角色:确保每个用户被分配适当的角色,使他们只获得所需的权限。例如,开发者可能只需要访问特定的云函数,而不需要对所有函数的完全访问权限。
  • 服务角色:为应用或服务(如API Gateway、Lambda等)分配服务角色,确保这些服务只获得执行其任务所需的权限。
4. 定期审计和评估权限
  • 权限审计:定期检查和审计IAM角色和策略,确保没有多余的权限被分配给用户或服务。
  • 访问日志:启用访问日志以监控对云函数的访问情况,确保所有操作都在可控范围内。
5. 使用 IAM 条件
  • 条件限制:使用 IAM 策略中的条件元素来限制访问。例如,可以依据用户的 IP 地址、时间段或源请求限制访问权限。
  • 例子
    {"Effect": "Allow","Action": "function:Invoke","Resource": "arn:aws:function:REGION:ACCOUNT_ID:function:FUNCTION_NAME","Condition": {"IpAddress": {"aws:SourceIp": "192.0.2.0/24"}}
    }
    

异步处理

在云函数的实现中,异步处理是提高性能和用户体验的一个重要策略。使用消息队列等中间件可以有效地将耗时的操作移到后台处理,从而避免阻塞 HTTP 请求的响应。

异步处理的基本原理

异步处理允许应用程序在开始某项长期操作(例如数据库操作、文件处理或外部 API 调用)后,可以立即返回响应,而不必等待操作完成。通过这种方式,可以提高系统的整体吞吐量和响应速度。

实现步骤
  1. 选择消息队列中间件

    • 常见的消息队列服务包括 Kafka、RabbitMQ、Amazon SQS、阿里云消息队列等。选择一个适合你应用场景的消息队列服务。
  2. 发送异步任务

    • 在云函数中,当接收到 HTTP 请求后,不直接处理长耗时操作,而是将任务信息(如数据的背景处理参数)放入消息队列中,并立即返回 HTTP 响应给客户端。

    示例代码:

    const sendMessageToQueue = async (message) => {// 使用消息队列 SDK,将消息发送到队列await queueService.send(message);
    };exports.main = async (event, context) => {// 提取请求参数const requestData = event.body;// 将任务信息发送到消息队列await sendMessageToQueue(requestData);// 立即响应客户端return {statusCode: 202, // 表示请求已接受body: JSON.stringify({ message: '任务已接受,正在处理中...' })};
    };
    
  3. 处理消息队列中的任务

    • 另一个独立的消费者服务(可以是另一个云函数)从消息队列中读取消息并处理任务。这个函数专注于执行长耗时的操作。

    示例代码:

    const processMessage = async (message) => {// 执行长耗时操作await executeLongRunningTask(message);
    };exports.processQueueItem = async (message) => {// 从消息中提取数据const taskData = message.data;// 处理任务await processMessage(taskData);// 确认消息处置完成return { status: 'Processed' };
    };
    
  4. 错误处理与重试策略

    • 考虑到任务处理过程中可能出现错误,必须实现有效的错误处理和重试机制。消息队列通常提供重试和死信队列(DLQ)功能,以处理失败的任务。
优势
  • 非阻塞设计:客户端可以立即收到响应,避免长时间等待,提升用户体验。
  • 提高系统响应能力:即使在高负载情况下,系统仍可快速响应,减少 API 的响应时间。
  • 可扩展性:可以根据处理需求动态扩展消费者的数量,以适应流量波动。
  • 减少故障传播:长时间运行的任务在单独的工作流程中执行,可以隔离可能导致系统崩溃的错误。
最佳实践
  • 合理设计消息格式:确保消息内容简洁明了,所有必要的信息都包含在内,避免不必要的复杂性。
  • 监控和日志记录:监控消息队列的健康状态,记录消息处理的成功与失败情况,以便日后分析和优化。
  • 测试与优化:对异步处理流程进行充分的测试,确保在高并发情况下也能够顺利处理请求。
  • 安全性:确保消息内容的机密性和完整性,避免敏感数据泄露或被篡改。

mindspore

1. 主要特性
  • 自动微分:MindSpore 提供了自动微分功能,简化了神经网络模型的训练过程,用户可以更方便地计算梯度。

  • 动态图与静态图支持:MindSpore 支持动态图和静态图模式。动态图模式便于调试和动态场景下的开发,静态图模式则在性能上进行优化,适合生产环境。

  • 异构计算:MindSpore 允许用户在各种计算平台上高效运行,包括 CPU、GPU 和华为自家的 Ascend AI 芯片。它能够根据设备特性自动优化计算图。

  • 高效性能优化:通过自动化推理优化以及图优化技术,MindSpore 提供了高性能的模型训练和推理能力。

  • 安全性:MindSpore 在隐私保护和数据安全方面提供了承诺,支持数据加密和联邦学习等特性,帮助用户保护敏感数据。

2. 架构
  • 前端:MindSpore 提供丰富的 API 和工具,支持 Python 和 C++ 开发。前端 API 允许用户灵活构建和训练模型。

  • 图计算引擎:MindSpore 的核心是图计算引擎,支持高效的计算图构建和优化,能够执行复杂的深度学习操作。

  • 运行时:MindSpore 运行时支持多种硬件平台,自动调度和优化计算资源的使用,从而提升性能。

  • 模型库:MindSpore 提供了一系列预训练模型,用户可以快速进行迁移学习和微调,适用于多种任务。

3. 应用场景
  • 计算机视觉:在图像分类、目标检测、图像生成等领域,MindSpore 提供了高效的工具和模型支持。

  • 自然语言处理:支持文本分类、情感分析、机器翻译等 NLP 任务,MindSpore 提供了适合的模型和训练框架。

  • 语音识别:在语音到文本、语音合成等应用中,MindSpore 也展现了其强大的计算能力。

  • 联邦学习:支持分布式学习,保护用户数据隐私,适用于边缘计算场景。

4. 入门示例

这是一个使用 MindSpore 进行简单模型训练的示例:

import mindspore
import mindspore.nn as nn
from mindspore import Model
from mindspore import Tensor
import numpy as np# 定义一个简单的神经网络
class SimpleNet(nn.Cell):def __init__(self):super(SimpleNet, self).__init__()self.dense1 = nn.Dense(10, 5)self.dense2 = nn.Dense(5, 1)def construct(self, x):x = self.dense1(x)x = self.dense2(x)return x# 创建模型实例
net = SimpleNet()# 定义损失函数和优化器
loss_fn = nn.MSELoss()
optimizer = nn.Adam(net.trainable_params(), learning_rate=0.01)# 创建模型
model = Model(net, loss_fn=loss_fn, optimizer=optimizer)# 生成一些示例数据
x_data = np.random.rand(10, 10).astype(np.float32)
y_data = np.random.rand(10, 1).astype(np.float32)# 进行训练
model.train(10, Tensor(x_data), Tensor(y_data))

区别tf、py

下面是关于 MindSpore、PyTorch 和 TensorFlow 的主要区别

特性TensorFlowPyTorchMindSpore
开发背景- 由 Google 开发,首次发布于 2015 年。- 由 Facebook AI 研究部门开发,首次发布于 2016 年。- 由华为开发,首次发布于 2020 年。
目标- 目标是提供灵活、可扩展的生态系统,支持大规模机器学习。- 旨在提供动态计算图,灵活调试和模型开发。- 统一开发架构,简化机器学习使用,优化 AI 应用。
编程模型- 早期使用静态计算图,后引入 Eager Execution 支持动态图。- 动态计算图,运行时生成计算图,易于调试。- 支持动态图和静态图切换,根据需求选择模式。
社区与生态- 拥有庞大社区和丰富的生态系统,广泛应用于生产环境。- 迅速壮大的社区受研究人员喜爱,工具和库不断增加。- 起步较晚但快速扩展,特别是在中国市场。
性能与优化- 强大的性能优化选项,支持 XLA 编译器,提高执行速度。- 进行多项优化,支持并行计算和分布式训练。- 内置多种优化,针对华为硬件,支持算子融合和混合精度训练。
适用场景- 适合大规模生产环境。- 灵活且易于研究与开发。- 优化与华为硬件兼容性,适合各类 AI 应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/61051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins升级到最新版本后无法启动

1. 场景还原 最近在web界面将jenkins升级到最新版本后&#xff0c;后台无法启动jenkins服务&#xff0c;服务状态如下&#xff1a; 运行jenkins命令提示invalid Java version jenkins --version jenkins: invalid Java version: java version "1.8.0_202" Java(TM)…

【计算机视觉+MATLAB】自动检测并可视化圆形目标:通过 imfindcircles 和 viscircles 函数

引言 自动检测图像中的圆形或圆形对象&#xff0c;并可视化检测到的圆形。 函数详解 imfindcircles imfindcircles是MATLAB中的一个函数&#xff0c;用于在图像中检测并找出圆形区域。 基本语法&#xff1a; [centers, radii] imfindcircles(A, radiusRange) [centers, r…

鸿蒙NEXT元服务:利用App Linking实现无缝跳转与二维码拉起

【效果】 元服务链接格式&#xff08;API>12适用&#xff09;&#xff1a;https://hoas.drcn.agconnect.link/ggMRM 生成二维码后效果&#xff1a; 【参考网址】 使用App Linking实现元服务跳转&#xff1a;文档中心 草料二维码&#xff1a;草料二维码生成器 【引言】 …

下载安装Android Studio

&#xff08;一&#xff09;Android Studio下载地址 https://developer.android.google.cn/studio 滑动到 点击下载文档 打开新网页 切换到english ![](https://i-blog.csdnimg.cn/direct/b7052b434f9d4418b9d56c66cdd59fae.png 等待一会&#xff0c;出现 点同意后&#xff0…

【C/C++】深入解析 Stack 与 Queue 数据结构(详解):实现原理、应用场景与性能优化

文章目录 引言栈&#xff08;Stack&#xff09;数据结构详解1. 栈的基本概念2. 栈的实现原理3. C中的栈实现4. 栈的应用场景5. 栈的性能分析6. 实战示例&#xff1a;括号匹配 队列&#xff08;Queue&#xff09;数据结构详解1. 队列的基本概念2. 队列的实现原理3. C中的队列实现…

【css实现收货地址下边的平行四边形彩色线条】

废话不多说&#xff0c;直接上代码&#xff1a; <div class"address-block" ><!-- 其他内容... --><div class"checked-ar"></div> </div> .address-block{height:120px;position: relative;overflow: hidden;width: 500p…

从零开始配置Qt+VsCode环境

从零开始配置QtVsCode环境 文章目录 从零开始配置QtVsCode环境写在前面扩展安装及配置Qt Configure配置 VsCode创建Qt工程VsCodeQMakeMinGwVsCodeQMakeMsvcVsCodeCMakeMinGwVsCodeCMakeMsvcQtCreatorQMakeMinGw->VsCodeQtCreatorQMakeMsvc->VsCodeQtCreatorCMakeMinGw-&g…

【前端】JavaScript中的字面量概念与应用详解

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;字面量1. 数字字面量2. 字符串字面量3. 布尔字面量4. 空值字面量&#xff08;null&#xff09;5. 对象字面量6. 数组字面量7. 正则表达式字面量8. 特殊值字面量9. 函数字…

Python使用ffmpeg进行本地视频拉流,并使用训练模型识别人脸,并将识别后的模型推流源码

前言&#xff1a; Windows上搭建nginx-rtsp流媒体服务器&#xff0c;实现FFmpeg推流、录像转rtsp推流 - WayWayWayne - 博客园参考上述文章和一些webRTC前端拉流文章 主要是缕一缕思路和每个部分的代码功能&#xff0c;文件命名高度相似导致。 效果&#xff1a; 代码&#x…

【去毛刺】OpenCV图像处理基础:腐蚀与膨胀操作入门

在数字图像处理中&#xff0c;形态学操作是一种常用的技术&#xff0c;用于提取图像中的特定形状或特征。其中&#xff0c;腐蚀&#xff08;Erosion&#xff09;和膨胀&#xff08;Dilation&#xff09;是两种基本的形态学运算。本文将通过一个简单的例子来演示如何使用Python中…

2024年11月27日Github流行趋势

项目名称&#xff1a;screenshot-to-code 项目维护者&#xff1a;abi clean99 sweep-ai kachbit vagusX项目介绍&#xff1a;通过上传截图将其转换为整洁的代码&#xff08;支持HTML/Tailwind/React/Vue&#xff09;。项目star数&#xff1a;62,429项目fork数&#xff1a;7,614…

Linux八股积累与笔记

1、iptables 是一个用于配置Linux内核防火墙规则的工具。四表五链&#xff1a;在iptables中&#xff0c;有四个表&#xff08;tables&#xff09;和五个链&#xff08;chains&#xff09;&#xff0c;用于管理不同类型的数据包过滤规则。如下&#xff1a; 表&#xff08;Tabl…

Qt5.14.2的安装与环境变量及一些依赖库的配置

目录 1.Qt5.14.2安装 2.Qt环境变量及一些依赖库的配置 1.Qt5.14.2安装 QT从入门到入土&#xff08;一&#xff09;——Qt5.14.2安装教程和VS2019环境配置 - 唯有自己强大 - 博客园 2.Qt环境变量及一些依赖库的配置 假设QT安装目录为: D:\Qt\Qt5.14.2 将目录: D:\Qt\Qt5.14.…

初识Linux(4):Linux基础环境工具(下)

1. Git Git是一种版本控制系统&#xff0c;是一种工具&#xff0c;用于代码的存储和版本控制。 而我们常见的Gitee和Gitehub都是基于Git&#xff08;Git是开源的&#xff09;实现的在线代码仓库&#xff0c;而前者服务器位于中国&#xff0c;后者服务器位于美国。 总的来说&…

12.Three.js纹理动画与动效墙案例

12.Three.js纹理动画与动效墙案例 在Three.js的数字孪生场景应用中&#xff0c;我们通常会使用到一些动画渲染效果&#xff0c;如动效墙&#xff0c;飞线、雷达等等&#xff0c;今天主要了解一下其中一种动画渲染效果&#xff1a;纹理动画。下面实现以下动效墙效果&#xff08…

《白帽子讲Web安全》13-14章

《白帽子讲Web安全》13-14章 《白帽子讲Web安全》13-14章13、应用层拒绝服务攻击13.1、DDOS简介13.2、应用层DDOS13.2.1、CC攻击13.2.2、限制请求频率13.2.3、道高一尺&#xff0c;魔高一丈 13.3、验证码的那些事儿13.4、防御应用层DDOS13.5、资源耗尽攻击13.5.1、Slowloris攻击…

【电子元器件】Nand Flash基础介绍

本文章是笔者理论结合实践进行整理的备忘笔记。希望在帮助自己温习避免遗忘的同时&#xff0c;也能帮助其他需要参考的朋友。如有谬误&#xff0c;欢迎大家进行指正。 一、什么是Nand Flash Flash主要分两种&#xff0c;Nand Flash和Nor flash。 Nor的成本相对高&#xff0c…

JVM_垃圾收集器详解

1、 前言 JVM就是Java虚拟机&#xff0c;说白了就是为了屏蔽底层操作系统的不一致而设计出来的一个虚拟机&#xff0c;让用户更加专注上层&#xff0c;而不用在乎下层的一个产品。这就是JVM的跨平台&#xff0c;一次编译&#xff0c;到处运行。 而JVM中的核心功能其实就是自动…

python除了熟悉的pandas,openpyxl库也很方便的支持编辑Excel表

excel表格是大家经常用到的文件格式&#xff0c;各行各业都会跟它打交道。之前文章我们介绍了使用openpyxl和xlrd库读取excel表数据&#xff0c;使用xlwt库创建和编辑excel表&#xff0c;在办公自动化方面可以方便我们快速处理数据&#xff0c;帮助我们提升效率。 python之open…

网络知识1-TCP/IP模型

从用户端到服务端&#xff0c;tcp/ip模型可分为应用层、传输层、网络层、网络接口层 以下使用寄快递为例进行解释 应用层职责&#xff1a; 只关注与为用户提供应用功能&#xff0c;如HTTP、FTP、telnet、DNS、SMTP等 &#xff0c;应用层的职责就像我们寄快递时将快递给快递员…