使用Rust实现systemd配置文件解析工具
Gitee Issue开发指导参考:https://gitee.com/openeuler/open-source-summer/issues/I6XKVU?from=project-issue
当前rust支持toml格式,systemd与toml格式有不少异同,例如,
systemd的所有值不需要添加引号,
对于特定的值解析方式不同,date、time、bool等类型
因此该题目详细的实现要求如下:
能够识别解析.service,.socket, .target, .mount等systemd支持的后缀
将配置文件中的键值对,加载并解析成对应的数据结构,可直接使用,参赛者无须关心使用者如何定义该struct。譬如
123456789101112131415#[derive(Config, Default, Clone, Debug, Serialize, Deserialize)]pub(super) struct SectionService { pub Type: ServiceType, pub ExecStart: Option<VecD ...
Rust圣经学习记录
Rust Course
安装环境Linux/macOS参考: https://rsproxy.cn/,字节跳动的镜像仓库
1curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh
Windows下载:https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe
VsCode插件rust-analyzer,Error Lens,Even Better TOML,CodeLLDB
镜像源配置crates.io 镜像
~/.cargo/config:
1234567891011121314[source.crates-io]# To use sparse index, change 'rsproxy' to 'rsproxy-sparse'replace-with = 'rsproxy'[source.rsproxy]re ...
数学建模-Python
规划问题线性规划问题标准形式
样例1
过程c为所求的z,[2,3,-5]
Ax≤b即,A为[[-2,5,-1][1,3,1]],b为[-10,12]
Aeq为等式左边的[1,1,1],beq为等式右边的[7]
求解参数第一个为-c(因求解c的最大值即求c的最小值),后面依次为A,b,Aeq,beq
注意:Aeq和A的维度,即[]的层数
代码1234567891011# 使用scipy实现from scipy import optimizeimport numpy as npc = np.array([2,3,-5])A = np.array([[-2,5,-1],[1,3,1]])B = np.array([-10,12])Aeq = np.array([[1,1,1]])Beq = np.array([7])res = optimize.linprog(-c,A,B,Aeq,Beq)print(res)
con: array([1.80713222e-09])
fun: -14.57142856564506
message: 'Optimization ...
Julia
JuliaJulia是一种高性能动态语言,具有灵活的语法和库生态系统,旨在通过高效地利用计算机硬件来加速科学计算、数值分析和数据科学任务。Julia解决了多重派发和类型推断等问题,从而使得编写高性能代码变得更加容易。
简介Julia是由MIT开发的,旨在成为一种优雅而高效的科学计算语言。与Python和R等其他常用的数据科学工具不同,Julia旨在通过与C/Fortran相媲美的性能进行快速计算,并且让研究人员和工程师可以轻松地将其工作整合到现有的计算机科学环境中。
安装Julia可以从其官方网站(https://julialang.org/downloads/)上下载并安装。安装完成后,您可以在命令行中输入“julia”以启动Julia REPL(Read-Eval-Print Loop)。
入门要开始使用Julia,您需要了解其基本语法、变量、函数、类型和模块。您可以通过阅读Julia官方文档或参考《Julia高级编程》等书籍来学习。
以下是一个简单的例子,该例子演示了如何编写一个函数并调用它:
1234567# 定义一个函数function greet(name) prin ...
Java面试
Java后端摆烂1. Java基础1.1 Java异常体系Java异常体系是Java语言中用来描述程序运行期间发生的错误情况的一套机制。异常分为受检异常和非受检异常两种,其中受检异常必须在代码中显式地进行处理,而非受检异常则可以不处理。
常见的异常类型包括NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException、ArithmeticException等。
1.2 怎么获取class对象获取Class对象的方式有三种:
使用类名.class语法获取
调用对象的getClass()方法获取
使用Class.forName()方法获取
1.3 反射是什么,有什么优缺点,有哪些应用场景反射是指在运行时动态地获取类的信息,包括类的属性、方法、接口等,并且可以在运行时通过反射调用对象的方法或修改对象的属性值。它可以让我们在编写代码时不需要预先知道要操作的类的具体信息,从而实现更加灵活的编程。
反射的优点是提高了程序的灵活性和可扩展性,缺点是会降低程序的性能并增加了代码的复杂度。应用场景包括:动态代理、依赖注入、 ...
考研-高等数学
七种未定式高等数学中的七种未定式极限是:
$\frac{0}{0}$型极限:当函数分子和分母同时趋于零时,如$\lim_{x\rightarrow a}\frac{f(x)-f(a)}{x-a}$,可以尝试使用洛必达法则或泰勒公式等方法求解。
$\frac{\infty}{\infty}$型极限:当函数分子和分母同时趋于正无穷或负无穷时,如$\lim_{x\rightarrow \infty}\frac{f(x)}{g(x)}$,可以尝试使用洛必达法则、夹逼定理等方法求解。
$0\times \infty$型极限:当函数中有一个因子趋于零,另一个因子趋于正无穷或负无穷时,如$\lim_{x\rightarrow 0}x\ln x$,可以尝试使用变量代换、洛必达法则等方法求解。
$\infty - \infty$型极限:当函数中有两个趋于正无穷或负无穷的项相减时,如$\lim_{x\rightarrow \infty}(x-\ln x)$,可以尝试使用变量代换、洛必达法则等方法求解。
$1^{\infty}$型极限:当函数中有以常数为底、指数趋于正无穷或负无穷的幂次函数时,如$\lim ...
Bazel
BazelBazel是一个非常流行的构建工具,特别适合用于构建大型的软件项目,本文将详细介绍它的基本概念和如何使用它来构建C++项目。
什么是Bazel?Bazel是一个由Google开发的构建工具,它的主要目标是提高构建速度和可重现性。与其他构建工具相比,Bazel最大的优点是它能够利用缓存系统来加速构建过程,并且只会重新构建那些需要更新的部分。
Bazel的核心概念在开始使用Bazel之前,我们需要了解一些其核心概念:
Target在Bazel中,Target是指一个构建目标,它可以是一个二进制文件、一个库文件、一个测试文件或者其他一些需要构建的东西。每个Target都必须有一个唯一的名称,这个名称会被用于管理依赖关系和构建顺序。
例如,如果你正在编写一个C++应用程序,那么你可能会有多个Target,比如:
一个名为”my_app”的二进制Target,用于生成可执行文件。
一个名为”my_lib”的库Target,用于生成静态或动态库文件。
若干个名为”my_test1”、”my_test2”等的测试Target,分别用于测试不同的组件或模块。
Rule在Bazel中,Ru ...
Linux常用工具
valgrind
简介
安装
工具
使用
memcheck
dust
hyperfine
duf
bottom
exa
zoxide
ripgrep
httpie
安装
使用
POST
procs
awk
sed
grep
fzf
fd
ps
ssh
vim
git
valgrind
Linux程序内存监测分析软件
简介valgrind是一个用于Linux程序内存监测分析的软件,它可以检测程序中的内存泄漏、内存访问越界等问题,是一个非常有用的工具。它可以检测程序中的内存泄漏、内存访问越界等问题,是一个非常有用的工具。
安装1sudo apt install valgrind
工具
memcheck:内存检测工具,可以检测内存泄漏、内存访问越界等问题
cachegrind:缓存检测工具,可以检测程序中的缓存使用情况
helgrind:线程检测工具,可以检测程序中的线程问题
callgrind:函数调用检测工具,可以检测程序中的函数调用情况
massif:内存使用检测工具,可以检测程序中的内存使用情况
使用memcheck1valgrind - ...
IoT
IoT
题目要求
使用说明
设计思路
文档
TODO LIST
初步实现
2022.11.22
IoT
IoT 2022 期末作业
题目要求
使用说明设计思路文档TODO LIST
[x] 2022.11.22: 项目初始化
[ ] 完成发布和订阅端的基本通信功能
[ ] 实现发布端的数据采集功能
[ ] 实现订阅端的数据展示功能
[ ] 实现数据的持久化存储
[ ] 实现机器学习模型的训练和预测
[ ] 实现数据的可视化展示初步实现
2022.11.22
创建一个新的项目
1pnpm init
添加mqtt依赖
1pnpm add mqtt
创建index.js
1touch index.js
添加start脚本
1vim package.json
123456789101112131415{ "name": "iot", "version": "1.0.0", "des ...