南七小僧
在读博士,互联网大厂TPM,深耕人工智能、边缘计算及应用与落地
展开
-
SOK:安全多方计算的通用编译器
翻译计划第二弹发布, 此次给大家带来的是《SoK: General Purpose Compilers for SecureMulti-Party Computation》文章的翻译, 相信对于研究MPC工程应用的小伙伴能够从中获取到有用知识信息.感谢此次参与翻译的小伙伴: starry(摘要、第一章), 夕月一弯(第二章), 松山(第三章), 宋小宋(第四章、第五章)、Shirley杨(第六章-前五节)、林立可(第六章-后六节), 栾某人(第七章), 云中雨雾、六三(审稿)此外, 请关注我们的官方账号,及原创 2023-07-13 22:46:57 · 206 阅读 · 0 评论 -
安全多方计算从入门到精通:MPC简介&JUGO平台
从数据价值角度来看,数据孤岛——数据之间由于各种原因造成了壁垒,(政府数据由于政策保密性完全不能对外公布,运营商、互联网每家都在收集客户的数据信息,但他们不会将这些数据透露给第三者),所有这些,使得这些数据都无法互通,那么就不能够为数据使用者提供利用价值,达不到1+1>2的效果。保证各方数据安全的同时,又得到预期计算的结果。而通过MPC则可以设计一个协议,在这个协议中,算法取代中间人的角色,Alice和Bob的薪资以及比较的逻辑均交由算法处理,参与方只需执行计算协议,而不用依赖于一个完全可信的第三方。原创 2023-07-12 22:52:10 · 312 阅读 · 0 评论 -
蚂蚁集团开源可信隐私计算框架「隐语」:开放、通用
基于在隐私计算各个方向上的沉淀和积累,结合开源共建的目标,蚂蚁能够确保开源的 “隐语” 是一个高质量、可扩展的技术框架,也希望能够吸引更多的优质的开发者和用户能够加入到隐语的空间中。更重要一点,它安全性和性能的判断,一方面要有理论的验证,其次具体实现是不是跟理论有差距,从这个角度来说,闭源的情况下技术做到什么程度是很难判断的,将带来更多的损失。通过这样的协作,双子座实验室协议可以按照一个简单的对接接口实现到隐语中,能被上层隐语所有的算法使用,不需要从上到下,所有东西都去重现,能够非常快的发挥价值。原创 2023-07-12 22:42:27 · 1279 阅读 · 0 评论 -
Apache Calcite 简介
Calcite 抛弃了这两部分,而是专注于上层更加通用的模块,使得自己能够轻装上阵,系统的复杂性得到控制,开发人员的精力也不至于铺的太开。比如,作为一个 SQL 解决方案,关键的 SQL 解析这一步,Calcite 没有选择造轮子,而是直接使用了开源的 JavaCC,来将 SQL 语句转化为 Java 代码,然后转化成一颗 AST 供下一阶段使用。Apache Calcite 的出现,让你能够很容易的给你的系统套上一个 SQL 的壳子,并且能提供足够高效的查询性能优化。原创 2023-07-12 22:33:41 · 395 阅读 · 0 评论 -
安全多方计算之MP-SPDZ实例初探
主体语言是python,众所周知,python是世界最好的语言。在此基础上定义了很多新的关于MPC的类和库,具体可查看用户手册。这个实例很简单,这个执行程序是基于秘密分享技术进行运算的,实际他还有别技术运算,如混淆电路,HE。对应的不同地执行过程。我明白的一定知无不言,我不会的,大家一起讨论讨论说不定就解决啦。这个是官方提供的命令,一次性安装几乎所有需要的工具库。本篇博文想要实现一个简单的三方求和程序,来展示一个SPDZ的多方计算使用流程。我的SPDZ专栏还有更多关于MP-SPDZ的文章,欢迎浏览。原创 2023-07-12 22:29:42 · 311 阅读 · 0 评论 -
MySQL中length()、char_length()的区别和用法
MySQL5.0.3版本之后varchar类型大小的计算方式有所变化,从最早的按字节算大小varchar(length)改成了varchar(char_length)。(4)通过length()char_length()可以用来检验是否含有中文字符。(2)查询应用表(app_info)中标题(appName)最长的10篇文章。(3)查出用户名长度小于6个字符的用户列表。的长度(比如本站网址)原创 2023-07-12 00:02:50 · 285 阅读 · 0 评论 -
Spark——Spark SQL逻辑计划(Logical Plan)、物理计划(Physical Plan)和Catalyst优化器(Catalyst Optimizer)
Spark SQL的核心是Catalyst优化器,它以一种与众不同的方式利用高级编程语言特性来构建可扩展的查询优化器。Catalyst是一个基于Scala的函数式编程结构设计的可扩展优化器。Catalyst的可扩展设计有两个目的:首先,我们希望能够方便地为SQL添加新的优化技术和特性,特别是为了解决我们在大数据方面看到的各种问题(例如,半结构化数据和高级分析);其次,我们希望外部开发人员能够扩展优化器,例如,通过给不同的数据源添加不同的规则,来将过滤或聚合操作下推到数据源存储系统端,或支持新的数据类型。原创 2023-07-05 21:29:35 · 163 阅读 · 0 评论 -
Vue中使用dagre-d3绘制流程图实用指南
【代码】Vue中使用dagre-d3绘制流程图实用指南。原创 2023-07-02 16:20:39 · 683 阅读 · 0 评论 -
如何构建知识图谱?
还有商品Tag词的提取,他的数据源来源于结构化数据,标题文本,商品描述,商品图片等。手机很好说,但是衣服的话,从一手状态就不太好标品化,这有一套另外的解决方案,首先还是基于知识图谱制作,查找图谱中最近的TopN个出售商品,在聚合出售的价格,删除异常点,进行数据变化,计算价格区间,最后进行逆变换,生成商品价格区间。有了正态分布之后,我们可以做区间的划分,首先我们希望这个区间可以涵盖大多数的商品,可以求均值,标准差,根据不同业务的需要,计算出价格区间,然后将计算出来的区间的上下限,做Box-Cox逆变换。原创 2023-07-02 15:01:43 · 1289 阅读 · 0 评论 -
js vuejs dagre-d3绘制流程图实用指南 有向图可视化
之前有小伙伴问我如何使用 D3 在前端绘制流程图,今天在这里给安排上,与大家分享。明确一点,只要你的数据计算能力足够强,使用原生D3绘制流程图绝对可以的,但是,为了让大家更容易上手,避免重复造轮子,给大家推荐一个专门绘制流程图的 D3 插件 dagre-d3。首先认识下 dagre。dagre 是专注于有向图布局的 javascript 库,由于 dagre 仅仅专注于图形布局,需要使用其他方案根据 dagre 的布局信息来实际渲染图形,而 dagre-d3 就是 dagre 基于 D3 的渲染方案。原创 2023-07-02 12:34:41 · 1266 阅读 · 0 评论 -
【networkx全教程】python DAG有向无环图 包含 edge 边缘标注text教程
1 基础教程NetworkX官方介绍:登录后复制比如,可以直接求出最短路径:登录后复制登录后复制下面开始打开学习的大门。原创 2023-07-02 12:13:54 · 640 阅读 · 0 评论 -
MySQL的Join
Join连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接。内连接又叫等值连接,此时的可以省略。MySQL中连接SQL语句中,ON子句的语法格式为:table1.column_name = table2.column_name。当模式设计对联接表的列采用了相同的命名样式时,就可以使用 语法来简化 ON 语法,格式为:。 所以,USING的功能相当于ON,区别在于USING指定一个属性名用于连接两个表,而ON指定一个条件。另外,SELECT *时,USING会去除USING指定的列,而ON不会。自原创 2023-07-02 11:03:27 · 381 阅读 · 1 评论 -
Antlr4 语法解析器(下)
Visitor方式和Listener方式。原创 2023-07-01 22:50:22 · 283 阅读 · 0 评论 -
做sql的一个解析器,已经生成ast了,接下来要怎么做呢?到ast这一步之后不知道接下来怎么做
(干货在后面,着急的同学可以跳过这段)。Deathhush/HushDB 是以前我想写一个类似“手把手教你实现数据库”系列文章的时候,做的一个示例数据库,当时觉得数据库相关的文章和书,讲实现的都讲得太深,而浅的都在讲应用,缺一个由浅入深讲数据库实现的。HushDB现在可以做类似这样的事:但后来因为我兴趣太广泛,这个项目就被搁置了(逃…)。现在HushDB大概2700行代码,实现了Heap File, Buffer Pool, Metadata Catalog和一个基本的Query Processor的框架原创 2023-07-01 22:46:13 · 184 阅读 · 0 评论 -
【python】使用Antlr4实现识别sql中的表或视图名
先上成果预览图吧作为一个数据库sql开发者,肯定有很多人和我一样,想要有一个工具,能传入任意sql,解析出sql中的所有表。我之前有一篇文章【AIO】将任意查询sql转换成带远程数据库DBLINK的sql中就提到了,使用纯文本硬解析会存在很多不确定因素,比如oracle新版本就添加了新的sql语法,有些场景太难处理,而解析器则只需要配置好规则,并且标准化规则的语法,那么扩展性就很强了。githubAntlr这个老早就有了,如今已经比较成熟,像代码高亮插件prism就是用的这个。原创 2023-07-01 22:35:48 · 916 阅读 · 0 评论 -
通过SQL操作Excel(基于Python + Antlr实现)
编写访问器的具体逻辑 – create_visitor.py。词法文件 – MODBLexerRules.g4。使用访问器模式生成词法分析器和语法分析器。客户端程序 – moclient.py。语法文件 – MODB.g4。原创 2023-07-01 21:57:05 · 1147 阅读 · 0 评论 -
从定义到AST及其遍历方式,一文带你搞懂Antlr4
Antlr4(Another Tool for Language Recognition)是一款基于Java开发的开源的语法分析器生成工具,能够根据语法规则文件生成对应的语法分析器,广泛应用于DSL构建,语言词法语法解析等领域。原创 2023-07-01 21:19:48 · 144 阅读 · 0 评论 -
Apache Calcite的解析与优化
Calcite 本身的架构比较好理解,但是具体到代码层面就不是那么好理解了,它抛出了很多的概念,如果不把这些概念搞明白,代码基本看得也是云里雾里,特别是之前没有接触过这块内容的同学(我最开始看 Calcite 代码时是真的头大),入门的门槛确实高一些,但是当这些流程梳理清楚之后,其实再回头看,也没有多少东西,在生产中用的时候主要也是针对具体的业务场景扩展相应的 SQL 语法、进行具体的规则优化。原创 2023-07-01 17:46:49 · 516 阅读 · 0 评论 -
从AI到BI:隐语SCQL深度解读(附视频)
虽然在SCQL中没有明确把这一列选出,但是在计算时会根据hint,不会将这一列放到密文中去,因为已经允许别人选择,那么计算的过程当中,即使别人不把明文选出来,计算的时候明文计算肯定是没有问题的,即使对方看到也没有关系,所以CCL提供的hint可以帮助我们去做优化。计算引擎会先将DB的数据读出并进行计算,图中右下是SCQL计算引擎的架构,其中包含很多算子实现,也是明密文的混合,明文计算直接使用Arrow进行计算,密文使用隐语已经开源的SPU,如果大家对隐语有了解,就知道两个密态计算引擎完成这个计算。原创 2023-07-01 15:35:13 · 1313 阅读 · 0 评论