- 博客(61)
- 资源 (1)
- 收藏
- 关注
原创 Rust:“变长参数”函数与回调
Mdbook 版:https://zjp-cn.github.io/rust-note/dcl/variadic.html前言Rust 中,“变长参数” (variadic) 总是离不开宏这个话题:众所周知,Rust 的宏有三个主要功能减少样板代码自定义语法 (DSL)变长参数接口作为静态语言的 Rust,函数参数的个数在声明时已经被固定,也不可能传入不同个数的参数。但我们真的无法针对函数设计出“变长参数”吗?背景首先,明确我们需要什么1。下面是一个略为复杂的 API 设计:me.
2022-05-26 23:41:39
1672
原创 【Rust】针对常量泛型参数的分类实现
mdbook 版:https://zjp-cn.github.io/rust-note/forum/impl-const-param.html问题const 在 Rust 中是一个关键字,而且总是围绕着常量表达式 (constant expressions) 和编译期求值等话题。而论及泛型参数 (generic parameters),我们总是想到 trait bounds和生命周期。或者有时候,我们完全没注意到“泛型参数”这个描述。我们知道,函数参数是列在函数名之后的 (...) 内的部分,.
2022-05-02 00:44:44
1110
转载 【Rust】从同质形式的 variants 中获取同类型的数据
本文内容整理自:https://users.rust-lang.org/t/generic-referencing-enum-inner-data/66342同质形式的 variants如果你定义一个这样的枚举体:#[derive(Debug)]enum Foo { Bar(u32), Bink(u32),}这是一种 data-carrying 的枚举体,而且它特殊在:variants 中携带你所关心的 u32 类型的数据;这个类型位于 tuple variant 在.
2021-10-26 23:49:26
492
原创 【Rust】argh:基于 derive 宏且对二进制体积进行优化的命令行解析工具
Derive-based argument parsing optimized for code size and conformance to the Fuchsia commandline tools specification.基于 derive 宏的参数解析工具,针对代码大小进行了优化,并且遵循 Fuchsia 命令行工具规范。repo:https://github.com/google/argh由 Google 开发者编写,但并非 Google 官方支持。过程宏-参数类型:swit.
2021-09-03 19:06:27
520
原创 Rust tokio 如何以异步非阻塞方式运行大量任务
tokio 官方给了一个完整的例子:手动构建 runtime ,利用 block_on 来运行多个任务。tokio 的任务是由 tokio::spawn 之类的函数产生的 JoinHandle 类型,而且是个 Future 。而下面利用 #[tokio::main] 和 await 编写了等价的版本(为了直观对比任务完成的实际顺序和总耗时,我对 sleep 的时间做了一些简化):use std::time::Instant;use tokio::time::{sleep, Duration};#
2021-08-31 20:31:39
1974
翻译 【译文】Rust Slice Pattern:切片模式
原文:Slice Patterns (by MICHAEL-F-BRYAN)译者注:这是一篇结合切片和模式匹配的范例,它运用了 Rust Book: Patterns and Matching 篇章的知识。Rust 的类型系统和模式匹配相辅相成,呈现出简洁而强大、抽象而具体的表达力。Rust 1.26 引入了一个漂亮的小功能,称为 Basic Slice Patterns (基础切片模式),它可以让你在 已知长度的切片上 进行模式匹配。后来在 Rust 1.42 中 ,这被扩展为允许使用 .. 语法
2021-08-18 16:06:51
191
原创 2021 年 matplotlib 优雅解决中文字体问题
google 搜出 matplotlib 解决自定义字体的问题,从十年前的解答到五六年前的解答,全试过一遍,结果当然都无法运行,函数早 deprecated 了。最近四五年的给的办法也曾经解决过问题,改 matplotlibrc 文件+ rebuild 刷新、找系统中文字体、复制字体、设置 rcParams 等等,搜来搜去就这么一些。几年没用 matplotlib ,现在又折腾在这,果然那些办法又不好使。matplotlib 是很优秀而强大的工具,本不应该让使用者花精力在这么简单而常见的问题上
2021-08-02 21:25:21
311
原创 【leetcode-37 解数独 | Rust 】3 种回溯、4种数据结构共 12 种方式对比
代码:_0037_sudoku_solver.rs// 测试结果仅供参考:// solve_sudoku_arrs_record: 122,181 ns/iter (+/- 7,597)// solve_sudoku_arr_record: 126,718 ns/iter (+/- 4,754)// solve_sudoku_arrs_simple: 127,047 ns/iter (+/- 5,597)// solve_sudoku_bit_simple:
2021-07-20 18:57:04
204
原创 Rust:binary_search 系易错的案例代码
在 playground 中运行有时候需要慎重选择 true 还是 false 。#[derive(Debug)]struct User { id: u32, pid: u32, name: String,}fn set_up_option() -> Vec<Option<User>> { // 注意修改了顺序 vec![Some(User { id: 0, pid: 1,
2021-07-08 17:46:44
377
原创 Rust:vim 环境配置
前言前段时间发现一篇 2021 年用什么 IDE 开发 Rust ?文章,梳理了大部分 IDE。我最感兴趣的是这张图:https://areweideyet.com/(Rust 的特色口号:Are we xx yet?)这个网站推荐了一些 Vim / Neovim 的重要插件。仔细一看,截止 2019-07-15???? 有些 IDE 和插件的介绍也都四五年前了 : (anyway 想找个深度体验+完整介绍的最新文章没找到。索性自己尝试和记录。比如图里面罗列的功能出自哪个插件、哪个插件提供的哪个
2021-06-30 23:42:18
8552
4
原创 Rust:资料搜集
优先在语雀上同步:https://www.yuque.com/zhoujiping/programming/rust-materials合辑❤❤ 官方教程(入门到进阶、最基础而全面):https://www.rust-lang.org/zh-CN/learn★ the book: 英文原版 | 官方中文版 | KaiserY 中文翻译版 | learnku 中文翻译版官方资讯动态公告:https://blog.rust-lang.org/周报:https://this-week-in-rust
2021-06-30 23:32:14
1027
原创 从 gussing game 的联想:print! 与终端输入
文章目录gussing gameprint 和 stdin 不在同一行显示解决方式1:flush 手动刷新解决方法2:`dialoguer` 终端对话利器gussing game猜数字游戏:产生 0-100 随机整数,由用户输入,提示输入值相比于随机数的大小,从而使用户猜对。use rand::Rng;use std::cmp::Ordering;use std::io;fn main() { println!("Guess the number!"); // 注意 gen_
2021-03-22 13:54:26
242
1
原创 解决 servo-fontconfig-sys 报错 freetype2 not found
安装 servo-fontconfig-sys (一个 rust 库)时发现 freetype2 未安装:configure: error: Package requirements (freetype2) were not met:No package 'freetype2' found使用以下命令安装:sudo apt install libfreetype-dev libfreetype6-dev...
2021-03-11 15:03:13
1253
原创 在 Rmd 中运行 python 代码
rmd 支持调用多种编程语言,使用 reticulate 包可以让 r 与 py 相互交互。在 rmd 中的 setup 块加入以下命令,来使用本地安装的 py3。例如:注意以下代码块复制粘贴后要去掉 ` 前的 " (代码块显示 ` 有些麻烦)"```{r setup, include=FALSE}# 使用 pythonlibrary(reticulate)use_python("/usr/bin/python3")"```使用 r 命令 py_config() 显示 r 识别的py环境"
2021-02-24 11:40:02
1227
1
原创 安装 tex 之后 RStudio / rmarkdown 找不到的解决方法
因为先装的 R 和 rstudio,后装的 texlive ,所以使用 rmd 编译成 pdf 时报错误pdflatex: not found原因很简单,rstudio 没找到 tex,因此只要加上 tex 目录即可(此外的前提是 tex 相关命令必须在系统环境里面,不在环境目录的话修改 sudo vim /etc/profile.d/R_conf.sh 添加内容 export PATH="$PATH:tex目录的绝对路径" 即可)在 rstudio / R 中使用Sys.getenv('PATH
2021-02-21 00:28:00
3059
1
原创 Rust GUI 库
文章目录eguiconrodnative-windows-gui-windows (推荐)iced (推荐)eguiWeb GUI库,编译到webAsemmbly在浏览器中运行,它实现了简单的布局功能,基础的表单组件,滚动条区域,树型组件,鼠标绘图等(目前所见过的最丰富组件的 Rust Web GUI,功能强大)github 项目:https://github.com/emilk/egui在线示例:https://emilk.github.io/egui/index.htmlconrod
2020-11-07 18:27:22
9339
1
原创 typora + picgo (core) + gitee 无界面 (CLI) 配置
下载安装 typora官网下载地址:https://typora.io安装 picgo (core)前提是安装好了 nodejs,命令行能运行 npm具体说明可以参考:此处廖雪峰博客在 cmd 窗口运行 npm install picgo -g安装 picgo 插件用于使用gitee作为图床 和 上传图片时能在文件前缀加上时间戳picgo install gitee-uploader super-prefix使用 picgo use plugins ,按空格键和上下方向键选择
2020-10-17 22:18:58
1380
1
原创 dephi 连接手机 target 没显示的解决方法
delphi 连接手机(真机)至少要满足以下条件delphi andriod SDK功能开启(一般是安装的时候选的),在【tools】→【options】→【Deployment SDK Manager】可以看到有 SDK 的路径。然后打开 【andriod tools】滑到最后的 extra,勾选 Google USB Driver 。这些默认都是安装时自动配置好的,只要检查一下有没有问题即可。2. 手机USB线连接到电脑(电脑能看到有硬件连接才算成功连接),且开启了调试模式(不同品牌手机开
2020-10-10 00:43:27
756
1
原创 julia add VegaLite 遇到 gyp permission denied 的解决方式
报错内容(@v1.5) pkg> add VegaLite... Building VegaLite → `~/.julia/packages/VegaLite/sHyyT/deps/build.log`┌ Error: Error building `VegaLite`:││ > canvas@2.5.0 install /root/.julia/packages/VegaLite/sHyyT/deps/node_modules/canvas│ > node-pre-
2020-10-08 19:55:35
278
原创 Linux 下 卸载 Julia 旧版本 & 更新到 1.5
julia版本迭代很快,卸载旧版本,更新到最新版本是很方便的。卸载 julia 其实就是删除安装目录和包目录a. 通常在安装的时候是用软连接把安装路径的执行文件与系统执行文件目录关联起来,使用以下命令找到真正的安装目录,并删除[root]# which julia/usr/local/bin/julia[root]# ll /usr/local/bin/julialrwxrwxrwx 1 root root 27 Oct 8 17:15 /usr/local/bin/julia ->
2020-10-08 19:35:43
2101
原创 centos 移动 Julia 安装文件目录之后更新 jupyter kernel
文章目录由于某个盘空间满了,不小心把 Julia 安装包移到了别的地方,原来关联的 jupyter kernel 肯定用不了,但是也不必重装,因为软件和安装包的文件都在,只是位置不在原地方,因此改地址就行了。使用 jupyter kernelspec list 查看之前的信息[root]# jupyter kernelspec list Available kernels: julia-1.3 /root/.local/share/jupyter/kernels/julia-1.3
2020-10-08 01:01:57
193
原创 R语言查看 function 的源代码的六种场合与方法
序号方法适用情况例子1运行函数名称自定义函数、简单的未封装函数lm / matrix2针对 S3 类型的函数,运行methods("函数名") 查看有哪些具体的函数:对于不带星号的函数,运行具体的函数名,对于带星号*的 不可见 函数运行getAnywhere("具体的函数名")输入函数名之后显示有 UseMethod("函数名") 一行则说明是 S3 类型methods("plot") + plot.default / getAnywhere("plot.facto...
2020-09-04 20:28:28
2014
原创 Markdown.jl 使用总结
Table of Contents1 从 docstring 开始2 利用 @doc 进行注释3 实现 MD 实例: 从字符串到 MD 对象3.1 用宏和函数解析 markdown 字符串3.2 函数式编程组建 markdown 结构4 MD 对象转化成 Strin...
2019-09-05 22:49:57
598
原创 CentOS 服务器安装 IJulia
使用国内镜像由于 Julia 的官方的 Registry 在 Github 上, 但是下载一个 package 常常遇到网速不稳定的问题. 国内的 Julia 镜像有中科大和浙大, 我们只需要将镜像网址增加到 Registry 即可, 按 ] 键进入 pkg 模式, 输入命令:(v1.3) pkg> registry add https://mirrors.zju.edu.cn/juli...
2019-08-22 20:35:13
1644
1
转载 linux 脚本安装 Fira Code 字体
创建 sh 脚本文件vim download_and_install.sh在文件中写入以下内容若需要指定字体安装的目录, 更改 file_path 的值即可#!/usr/bin/env bashfonts_dir="${HOME}/.local/share/fonts"if [ ! -d "${fonts_dir}" ]; then echo "mkdir -p $...
2019-08-21 14:20:08
3856
3
原创 在 centos 中运行 ubuntu docker 镜像
安装 dockeryum -y install docker查看版本docker version开启 docker 服务systemctl start docker.service若需要开机启动, 则使用一下命令systemctl enable docker.service使用镜像加速器/etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建...
2019-08-20 17:17:17
4080
翻译 Julia 科学计算应用算例 (1)
原文: https://lectures.quantecon.org/jl/getting_started_julia/julia_by_example.html导入模块using Pkgusing BenchmarkTools问题Problem 1不使用 Julia 自带的 factorial(n) 函数, 用 for 编写一个计算 n!n!n! (n 阶乘, n!=n×(n−1...
2019-08-15 23:27:54
712
原创 centos7 apache httpd 解决目录文件名中文乱码且文件名截断
修改页面默认语言编码打开编辑 /etc/httpd/conf/httpd.conf <Directory "/var/www/html"> #<-----找到网站根目录位置 .... IndexOptions Charset=UTF-8 #<-----添加此项 </Directory&...
2019-07-23 13:04:17
1856
1
原创 pandas:Timestamp 函数的 unit 和 tz 参数
文章目录时间单位 unit时区设定 tz例子给 pandas.Timestamp 函数传入整数时,计算从1970年1月1日(UTC/GMT的午夜)开始所经过的时间(不考虑闰秒),返回 UTC 时间。时间单位 unit时间单位由 unit 参数确定,默认为 ns (纳秒),可自行设定成 D (天), h (小时), m (分), s (秒), ms (毫秒), us (微妙), ns (纳秒...
2019-06-11 17:27:30
1848
原创 CentOS 7 安装 R 包报错,解决缺少 libcurl openssl libxml2
文章目录缺少 libcurl缺少 openssl缺少 libxml-2.0由于在服务器上新装 CentOS7 系统,缺少一些 lib,因此在安装一些 R 包的时候 出现一系列报错。安装 R 包时最重要的报错信息在第一条,缺啥包会提示地很清晰。比如本人在安装 tidyverse 的时候install.packages("tidyverse", INSTALL_opts = c('--no-lo...
2019-06-02 23:27:06
5625
原创 CentOS 7 安装 texlive2019
文章目录下载 iso 镜像挂载镜像到 /mnt/ 并执行安装命令卸载 iso 镜像设置环境变量设置清华源 更新所有宏包下载 iso 镜像wget -c https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/texlive2019.iso挂载镜像到 /mnt/ 并执行安装命令sumount -o loop tex...
2019-05-28 20:23:33
2717
原创 rmarkdown 编译成 pdf 文件时报错 LaTeX Error: File `xxx.sty' not found.
原帖:https://github.com/rstudio/rmarkdown/issues/39报错信息LaTeX Error: File 'framed.sty' not found.LaTeX Error: File 'titling.sty' not found.解决方法方法一使用 tex 的 tlmgr 包管理安装缺少的 .sty 文件tlmgr install fram...
2019-05-24 16:26:52
3899
2
原创 rstudo server 出现 ERROR: failed to create lock directory
报错命令行安装拓展包的时候出现 ERROR: failed to create lock directory xxx 信息,例如install.packages("Rcpp", dependencies=TRUE)报错信息有一行显示:ERROR: failed to create lock directory ‘/home/me/src/Rlibs/00LOCK-Rcpp’解决方法...
2019-05-24 16:19:41
1121
原创 CentOS7 server 安装 R 搭建 rstudio server
文章目录安装 R安装 rstudio-server登录 rstudio-server安装 R$ sudo yum install epel-release$ sudo yum install R安装 rstudio-server$ wget https://download2.rstudio.org/server/centos6/x86_64/rstudio-server-rhel-...
2019-05-24 15:35:20
2330
ffmpeg字体设置
2018-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人