自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Julia & Rust & Python

A hello world's life

  • 博客(1687)
  • 收藏
  • 关注

转载 Rust: 实现 async/await的详细代码【来源脚本之家】

实际上,Rust 选择将 executor 的实现交给第三方,自己只保留相关的交互接口(我在隔壁C++看了看,似乎也是一样的做法,并没有一个官方的 executor 实现,我唯一所知的在语言层面提供支持的只有Golang 的 goroutine)。值得注意的是,在第一种情况下,所有的 Future 都 poll 了一遍,FuturesUnordered 会调用一次 wake,告诉 executor FuturesUnordered 已经运行了一个轮回,wake 具体的实现则取决于 executor。

2024-09-18 13:27:25 169

原创 Rust : 从事量化的生态现状与前景

尽管做适不适合的评价,有点不太靠谱的。就象“黑神话:悟空”,你在设计之前,不同的技术选型,也一定是结合自身的特点和工具、平台自身的优劣来得出来的,可能有一些无奈,可能也有一些经验。回到最初的问题上:在策略开发上,是否适合,这个取决个人的水平,出活快就适合,出活快就算了;即使是一件确定的事呢,也会有不同的答案,因此不同的人,自然有不同的看法。角色和场景不同:有人做策略开发,有人做策略部署,有人做全栈,有人做风控或绩效评估等;语言精通水平不同:有人出神入化,有人只懂皮毛,出活有快有慢,自然会得出不同的结论。

2024-09-06 16:36:07 747

原创 Rust :也谈Json与转换

serde_json常见方法是from_str()、from_value(),from_bytes()、from_reader()。Json类型是一种重要“可读”的数据类型,用到的地方很多,Rust在Json上各种处理还是很人性化,使用起来也很方便。不管是创建类似python dict类型,还是从字符类型来生成,都是很方便的。也就是说,可以从字符串,从文件,从字节都可以转换至特定或不特定的对象。2、分有类型与Struct的转化和无类型(Value)两种。1、Json如何创建?

2024-09-03 17:48:13 423

原创 Rust: Web框架Axum和Rest Client协同测试

在vscode中下载Rest Client插件后,通过创建以.http 或 .rest为结尾的文件,进行http请求测试。具体Rest Client功能很强大,这里只介绍,与Axum配合测试的方案。Axum作为Rust当红Web框架,值得了解一下。下面实例包括几个典型的常场场景。涉及到简单路由和提取器等,包括主要类型的文件形态的处理。二、Rest Client工具协同测试。

2024-08-29 17:55:53 682

原创 Rust : 数据分析利器polars用法

需要说明的是,在Rust中,不少的功能都需要对应features引入设置,这些需要特别注意,否则编译通不过。Polars虽牛刀小试,就显博大精深,在数据分析上,未来有重要一席。部分函数功能还没有完成,用todo标示,请大家注意。以下polars的版本是0.41.3。下面主要列举一些常见用法。

2024-08-16 13:24:42 498

转载 聚宽揭秘:为什么量化研究员喜欢在Kubernetes上使用Fluid简化数据管理 ?

我们以 Kubernetes 为底座,同时使用了阿里云 NAS,OSS,SLS,GPU 共享调度,HPA,Prometheus,Airflow, Prometheus 等云和云原生技术,得益于其计算成本和易于规模扩展的优势,以及容器化在高效部署和敏捷迭代方面的长处,囊括了越来越多的计算场景,例如海量金融历史数据驱动的因子计算、量化模型训练、投研策略回测等。通过应用预热和按照业务规律进行扩缩容操作,Fluid 帮助客户在高峰时快速扩展计算资源,同时通过维护自我管理的数据缓存,实现数据缓存吞吐的动态弹性控制。

2024-07-23 10:03:59 173

原创 Rust: 关于Pin以及move前后分析

(2)自引用结构move后,可以看见:尽管对象的struct内存地址发生变化后,但对象中的content的地址也发生了新的变化,但对象中的自引用对应指针并没有变化(还是指向move前的对象的content地址),并没指向新对象content所对应的内存地址。不知大家注意到没有,上面的代码,SelfRef对象被安排了2次move,但是经过2次move的对象,其自引用指针的内存还是指次第1次move前的对象的地址位置。UnPin是trait。需要说明的是,如果对象是unpin的,再如何Pin也是pin不住的。

2024-07-08 18:33:35 613

原创 Rust: 高性能序列化库Fury PK bincode

对于二进制库来讲,据Fury官网的介绍,Fury性能要远远好于protobuf,且不象protobuf还需要定义IDL(即写.proto文件),非常轻便,随取随用。3、从序列化的内容对比来看,对应的u8字列向量,Fury的长度为114;1、对于Fury库而言,大家可以比较一下,不同结构序列化和反序列化的性能。在序列化库中,传统的有Json,XML,性能好的有thrift,protobuf等。不管是序列化和反序列化。目前Rust Fury库,还是初期,还是建议在github官网中,下载到本地。

2024-07-05 17:07:36 597

原创 Rust: polars行遍历,从dataframe到struct及Bar设计比较

由于polars底层的arrow是列存储模式,行操作效率低下,官方也不推荐以行方式进行数据操作。场景:polars读取相应的关于历史股价的csv文件,其中有基本的行情信息,那么,如何对读取到的文件进行快速的行遍历?pandas提供了iterrows()、itertuples()、apply等行遍历的方式,还是比较方便的。polars对features的设置要求高,有些用到的特性需要准确打开,否则代码编译会通不过。此外,dataframe转bars的效率并不高,期待找到更高效的方式替代。

2024-07-02 11:20:33 760

原创 Rust: duckdb和polars读csv文件比较

结论:从上面的样本来看,分别用duckdb和polars来读csv两个不同大小的文件,polars有较明显的优势。

2024-06-26 15:55:16 696

原创 Rust : windows下protobuf和压缩传输方案

proto文件中主要模拟了一个dbpystream中一个get_price函数的输入和输出的格式,输入HistoryBarRequest ,输出HistoryBarResponse。HistoryBarResponse中,有代码名称,日期,开盘价,最高价等。上面polars,chrono,prost-types,prost-build,prost是关键库,其它暂时可以不看。可见,在src/目录下,创建了一个pb文件夹,存放未来生成的dbdata.proto文件。四、原始数据、main.rs。

2024-06-08 16:30:03 1118 1

转载 【转】Rust 解码 Protobuf 数据比 Go 慢五倍?记一次性能调优之旅

原本 WriteRequest 需要完整解析出来之后才会转换为 GreptimeDB 的 RowInsertRequest,我们去除了中间结构,直接在反序列化 WriteRequest 的过程中直接将 TimeSeries 结构转换为表维度的写入数据,从而减少了一次对所有时间线的遍历(#3425[13],#3478[14]),也降低了中间结构的内存开销。在本文中采取了一个折中的办法即通过 unsafe 方法绕过 Bytes 的引用计数机制,手动确保反序列化的输入 buffer 在输出的整个生命周期内有效。

2024-06-05 10:21:45 224

转载 【转】Protocol Buffers 编译器 (protoc)在 Windows 中怎么安装

Protocol Buffers(简称为 protobuf)是一种由 Google 开发的轻量级、高效、可扩展的数据交换格式。它的编译器(protoc)用于将.proto 文件编译成不同编程语言的源代码,以便在各种平台上使用。以下是在 Windows 上安装 Protocol Buffers 编译器的步骤。Protocol Buffers 编译器 (protoc)在 Windows 中怎么安装。2、找到win64-zip,下载。相关步骤见,很详细。

2024-06-05 09:08:00 569

原创 Rust : 声明宏在不同K线bar类型中的应用

Rust的宏功能博大精深。在K线bar中,往往有很多不同分时k线图,比如1,2,3,5,。60,120,250,300…我们先考虑,impl_single_bar接受单一的类型参数,比如Bar1,Bar3,Bar5,…如果不用宏,那么手写会比较麻烦。下面就试用一下宏来实现不同类型的bar.这里就需要用到rust宏的重复的写法。这里不特别展开,相关的资料很多。为了简单起见,我们把不同分时的Bar抽象成下面的结构。这样的确方便了一些,但是因为参数是一个个输入,需要。每一个类型,写一行函数,还是不太方便。

2024-05-04 14:08:15 753

原创 Rust : condvar中一对一和多对一模式初探

但其它典型的场景可能还有多对一,不断发送通知给一个接收者。假定一个员工收到一个任务,就是模拟是一个时间片,到时了,就会触发通知发出(notify_one)。要注意notify_one()到wait()这个过程,需要特别小心,否则可能会想象中不一样。condvar是不经常碰到的,但其实在tokio之类库中,还是非常核心的作用。通过Mutex中包裹一个Hashmap结构,来对多个通知的状态进行管理。想进一步体会condvar的使用,还是从场景出发。一、一个通知发送者,一个接收者。二、多个通知者,一个接收者。

2024-04-19 13:28:31 518

转载 陈果:日本软件行业衰败究竟是做错了什么?中国该如何吸取教训

日本软件行业衰败究竟是做错了什么?中国该如何吸取教训原创 GEORGE陈果 陈果George 2024-01-05 00:08 上海【陈果按】去年初我在《中欧商业评论》上发表的《企业管理软件的中国模式》文章,提出了中美日软件模式的比较,一年多来受到了国内业界广泛关注。今天我将加州大学伯克利分校哈斯商学院名誉教授、五十多年来一直研究日本产业和信息技术对组织影响的罗伯特·科尔以及日本学者中田喜文教授发表在《加州管理评论》2014 年 11 月刊上《日本软件行业:什么搞错了以及我们如何吸取教训The Japa

2024-04-15 17:26:18 314

原创 dbpystream:证券股票数据服务API开源

基于上面的痛点 ,dbpystream的目的是根据自身的业务需要,把企业内部的数据进行服务化,让企业内的员工能方便得到数据服务,而不再让数据服务只是一小部分人的特权,让数据可以在更广泛的层面得到充分的利用,并发挥数据驱动业务的价值。dbpystream只做整合部分,不能替代供应商API,是对供应商API服务包装,为了让服务更好的落地,而供应商API做的是一套完整的生产和质量管理流程。供应商的API的服务质量是dbpystream的天花板,没有优秀的供应商服务(源头),就不可能有好的内部服务。

2024-03-01 18:05:26 601

原创 Python:关于数据服务中的Web API的设计

需要说明的是,这里讨论的是web api前后端,当然还有其它方案,thrift,grpc等。在web api的基础上,可以提供封装sdk库,供前端函数式调用服务或纯手动写restful api 的方式,自己封装调用函数服务。可以考虑在前端提供不同的选择,比如,是python sdk模式(提供安装包),还是纯restful模式(手写post,get等),以及不同的语言选择,来指定特定后端的序列化和压缩库的选择,便于前端有更好的适用性和体验。不仅需要考虑性能,选择读写高效的库,而且还要考虑跨语言的问题。

2024-02-29 08:49:10 817

原创 Rust: reqwest库示例

主要看tokio和reqwest设置就可以了。其它是个人其它的库,没有删除。也可以处理中文字符的问题。cargo.toml文件,同上。二、异步处理多个任务。

2024-02-22 17:15:15 947

转载 简评新《公司法》对基金公司治理等方面的影响——从公司章程修订的视角

新《公司法》调整了法定代表人的选任范围, 从原《公司法》规定的董事长/执行董事或经理担任, 调整为由“代表公司执行公司事务的董事或者经理”担任。对于此等规定, 同前文关于“不应删除监事会/监事设置”的分析, 根据《公募管理人管理办法》第二十九条、第三十四条等证监会相关监管规则的要求, 董事会同样是基金公司必备的内部治理机构, 且由于基金公司董事会中独立董事人数和比例的强制性监管要求在原《公司法》允许不设董事会的规定下即已存在, 在新《公司法》施行后基金公司仍应按证监会的监管要求保留董事会的设置。

2024-02-21 14:54:55 382

转载 幻化成风:Rust使用SMTP发邮件

当然,需要在QQ邮箱内,进行手机绑定后,生成相应的授权码,把授权码替代“ Email::new(“demo@qq.com”, “xxx”, “smtp.qq.com”),”中"xxx"。// 发信人邮件列表,要改成自己的(邮箱地址改成自己的;说明文章来源于:Rust使用SMTP发邮件 - 幻化成风的文章 - 知乎。password, // 邮箱的密码或者授权码。本人已经对QQ邮件进行了验证,是Ok的。一、Rust使用SMTP发邮件。下面的代码会用多线程发送邮件。以上的代码来自于知乎。

2024-02-20 09:48:30 444

转载 什么是信创?信创涉及哪些方面?如何申请成为信创产品?

N”则指的是汽车、物流等各行各业。硬件领域分为底层硬件和基础设施,其中底层硬件包括芯片、固件等,业界将鲲鹏、飞腾、海光、兆芯、龙芯、申威这六大国产芯片统称为“国产CPU六君子“,基础设施包括存储设备、整机和通讯设施等,代表公司有清华同方、晋华、紫晶存储等。信创未来发展空间巨大,也是大势所趋,信创产业将会蓬勃发展,随之而来的是,各信创产业链环节都将会出现强劲的信创产品,我国实现真正的自主创新,信创也将引领各行各业实现数字化升级浪潮,从而整体实现数据安全、网络安全、自主创新、数字经济的辉煌局面。

2024-01-16 09:44:41 2566

转载 私募量化的2023:依旧美好

从管理人维度中位数可以看到,2023年全年1000指增超额约15%,500指增超额约11%,300指增超额约7%,比私募指增指数的业绩稍微高一些。以500指增为例,2023年大多数头部管理人的超额都在10%以上,回撤都在2%以内,反映出2023年市场风格连续性较强,尤其是小微盘大行其道的行情下,超额稳定性较高。规模永远是它自身业绩的敌人,受制于市场交易量和策略容量,如果无法及时更新迭代策略,适应市场风格,提高交易能力,仅仅是放松风控,加大偏离博取风险收益,规模魔咒会对业绩形成反噬。

2024-01-12 09:56:20 211

转载 央行重磅发布!2022年度金融科技发展奖10家基金获奖

一位公募从业人员说道。促进创新和业务拓展方面,在永赢基金看来,随着金融科技的不断发展,特别是大数据、人工智能等新技术的应用,公募基金通过数据洞察可以更精准地挖掘客户的需求,通过人工智能的应用可以拓展包括智能服务、智能投顾、智能营销等业务场景,金融科技也推动跨行业的新的业务模式和服务的不断涌现。首先,金融科技在数据分析与处理方面的应用为投资研究领域带来了革命性的变化,利用大数据分析、人工智能等技术,资管机构能够获得更深入的市场洞察,识别投资机会,同时通过精准的风险控制策略,实现对市场的敏感响应。

2024-01-10 14:48:17 252

转载 李博杰:A100/H100 太贵,何不用 4090?

哦,只剩下 HBM 了,当前 DRAM 市场疲软得都快要死掉一家的鬼样了,即使是 HBM3 大抵都是亏本在卖,差不多只需要 $15/GB,嗯,80GB 的容量成本是 $1200。就如最开始说的,在这个世界的商业规则下,$2000 成本的东西卖 $30000,只有一家,销售量还很大,这是不符合逻辑的,这种金母鸡得有航母才守得住。封装和风扇这些东西,算它 $300。我在 LA 已经住了两周,公司租的房子使用面积是我北京房子的 4 倍,但售价只贵了 30%,还带个小院,相当于单位面积的房价是北京的 1/3。

2024-01-03 10:08:42 947

转载 Rust性能优化指南:写出更快的代码

通过深入理解Rust的语言特性和工作原理,你可以写出更快、更高效的Rust代码。记住,最好的性能优化往往来自于对问题的深入理解和对可用工具的正确使用。Rust虽然以其高效性能闻名,但正确的优化技巧能够进一步提升代码的运行速度和资源利用率。今天我们就来详细探讨一些Rust性能优化的关键技巧,并为每种技巧提供具体的代码示例。不同的数据结构适用于不同的场景,正确的选择可以显著提高性能。Rust的迭代器和闭包是处理集合数据的强大工具,能够写出既简洁又高效的代码。Rust的并行处理能力是其性能优化的重要方面。

2023-12-06 13:50:50 478

转载 Atom Capital:大模型在金融领域落地,想说爱你不容易

梳理目前LLM与金融领域结合的项目时我们发现,保险领域是LLM应用最多的方向,在保险的销售、承保、出险等各个环节,都有创业公司在尝试,保险是个从业者众多,销售及售后服务流程复杂的行业,LLM的信息抽取整合能力、对用户意图的识别及沟通能力,能够很好地帮助提升保险行业的效率及客户体验。如营销、客服等,LLM技术的介入有助于提升客户体验与转化率,也有可能帮助金融机构开发出新的市场——当服务用户的成本进一步下降,新的增量市场就会出现,触达那些之前无法得到金融服务的人群,正如之前很多Fintech公司所做到的那样。

2023-10-04 09:40:34 579

原创 CTP:关于cc和bindgen库及rust工程组织

在这个目录下,建一个build.rs,用bindgen库生成cpp.h的头文件相应的rust绑定文件,生成的文件放在ctp-api目录下。这里去除了test,这里这样设置就可以了 .layout_tests(false),否则文件太长了,6-7万行。由ctp-sdk下的build.rs生成(在ctp-sdk下运行cargo build --release).。主要的目的是基于bindgen库生成与cpp的.h文件相对应一个binding.rs文件,后面供策略使用。主要是对ctp进行相关的组织。

2023-09-29 22:38:24 2371 1

原创 Rust :mod.rs和lib.rs中use的作用

在上面rusttoc库中,在src目录下,除了有lib.rs文件,还有一个bar文件夹,在这个文件夹下,还有3个.rs文件,其中包括一个mod.rs文件。当然,如果一个库中,包含若干个子库,那也会存在多个不同层次的lib.rs的文件。在每层mod.rs和lib.rs文件中,要通过use来约束对外开放的程度和范围。很显然,mod.rs是把data.rs和ffi.rs综合在一起对外开放的文件。而lib.rs是在rusttoc这个层次,综合起来的一个对外开放的文件。一、mod.rs和lib.rs。

2023-09-27 16:15:58 2447

原创 Rust : 与C交互动态库和静态库的尝试

c_part下放了ctools.c文件,里面有一些库函数,需要让rust调用。当然,ctools.c也可以放在其它地方,只需要后面的地址一致即可以。需要注意的是,file中ctool.c文件地址一定要准确,否则会有如下报错信息(但没有明示说路径不对,找不到文件之类)。如果rust要调用自建的C库中的函数,情况会较上面复杂一些。今天介绍通过cc库,通过build生成脚本的方式,实现rust调用c端库函数。rust调用C端的库函数,有很多方法,场景也有所不同。三、rust调用C封装好的静态库或动态库。

2023-09-16 11:59:33 4056

转载 C:细说指针

在例一中,指针所指向的类型已经有了,但由于指针还未初始化,所以它所指向的内存区是不存在的,或者说是无意义的。第二,它是一个常量指针,该指针的类型是TYPE*,该指针指向的类型是TYPE,也就是数组单元的类型,该指针指向的内存区就是数组第0 号单元,该指针自己占有单独的内存区,注意它和数组第0 号单元占据的内存区是不同的。"的第一个字符的地址,即’H’的地址。)中,array 扮演的是指针,故array+n 的结果是一个指针,它的类型是TYPE *,它指向的类型是TYPE,它指向数组第n号单元。

2023-09-12 10:02:16 144

原创 Rust: cargo rustc 与HIR代码

【代码】Rust: cargo rustc 与HIR代码。

2023-09-02 22:03:58 247

原创 Rust: 聊聊 *const ()和fn(*const ())

在Bytes库在github源码(https://docs.rs/bytes/1.1.0/src/bytes/bytes.rs.html#94-100)有关Bytes的定义中,进而,查看https://doc.rust-lang.org/src/core/sync/atomic.rs.html#175,可以了解AtomicPtr的定义,另外,*const ()也自然,也可以联想到,它可能是表示指向一个固定的函数的raw pointer.其中的data字段中有(),一般地,()表示一个空元组。

2023-08-16 10:01:43 1396

原创 Rust: Vec类型的into_boxed_slice()方法及其它

比如,我们经常看到Vec类型,但取转其裸指针,经常会看到into_boxed_slice()方法,这是为何?也就是说,转成了Box后,指针所指向的类型,更简短了。这样,从操作上来讲,更加节省内存空间。其实,你看标准文档,就很清楚,

2023-07-27 13:09:54 1006

转载 银行数字人如何“破圈”?

为了降低数字人的应用门槛,为各行各业提供多种数字人的生成和内容生产服务,中国银行自研虚拟数字人自动生成平台建设方案,将虚拟数字人核心技术能力、运营管理等功能进行整合,满足客户多场景业务需求,提高数字人生成的效率,提升新时代跨媒介传播能力。金融虚拟数字人从算法到设计,再到工程化和集成环节是非常复杂的,金融虚拟数字人集成了视觉、语义、语音等多种人工智能技术的多模态交互技术,能对人体的形态、表情和动作进行模拟仿真,打造出高度拟人化的虚拟形象,并具备听与说的能力。安全性上,内容安全是虚拟数字人治理的关键。

2023-07-18 13:55:27 290

转载 Rust std::mem::transmute实例讲解

要转换容器内容的内部类型,您必须确保不违反任何容器的不变量。其他容器可能依赖于类型的大小、对齐方式,甚至是 TypeId ,在这种情况下,如果不违反容器不变量,就根本不可能进行转换。),调用者必须确保正确对齐指向的值。本文章向大家介绍Rust std::mem::transmute实例讲解,主要分析其语法、参数、返回值和注意事项,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。以下是transmute 的常见应用,可以用更安全的构造替换。将一种类型的值的位重新解释为另一种类型。

2023-03-10 14:29:36 1684 1

原创 关于Rust中的自引用:差之毫厘?!

【代码】关于Rust中的自引用以及指针变化。

2023-02-28 15:20:49 1306 1

原创 Python: 打包发布到PyPi及踩坑经历

经常会碰到python包要打包成sdk放到PyPi上开源的情况。下面的操作具体参考:https://packaging.python.org/en/latest/tutorials/packaging-projects/。

2022-11-21 16:27:02 5187

原创 python : pandas 中多重索引multiindex与多个标的dataframe

多个标的dataframe,如何转成多重索引的dataframe.有点象,有中证500股票的数据,如何把这500只股票,整成一个多重索引的dataframe?500只股票,整成一个多重索引的dataframe?

2022-10-12 11:20:39 3873

转载 美空军新版《首席信息官战略》解读

美空军新版《首席信息官战略》解读原创 Cismag 信息安全与通信保密杂志社 2022-10-09 14:47 发表于四川2022年8月26日,美空军发布其首份《首席信息官战略》草案,该战略将指导空军从2023财年到2028年的投资领域、时间和重点,明确了六大工作路线:加速云应用、网络安全的未来、建立人才管理战略、IT 投资组合管理、卓越的核心 IT 和任务支持服务,以及数据与人工智能。新战略的主要目标是创建一个安全的战略环境,增加系统、专业人员和技术之间的协调,以及为创建安全、数字化和以数据为中心的空天

2022-10-10 11:05:01 2672

空空如也

空空如也

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

TA关注的人

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