自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(259)
  • 资源 (12)
  • 收藏
  • 关注

原创 Saas、Paas、Faas、Baas的概念学习与对比

PaaS:提供一个平台供开发者使用,用于开发、测试和部署应用程序。BaaS:提供后端服务,使开发者能够快速集成应用所需的后端功能。FaaS:作为一种无服务器的计算方式,提供函数作为服务。SaaS:最高层次,直接提供软件作为服务。

2025-04-23 15:21:24 847

原创 大语言模型减少幻觉的常见方案

大语言模型的幻觉(Hallucination)是指模型在生成文本时,输出与输入无关、不符合事实、逻辑错误或完全虚构的内容。这种现象主要源于模型基于概率生成文本的本质,其目标是生成语法合理、上下文连贯的文本,而非严格追求事实准确性。

2025-04-18 20:41:09 788

原创 LLM的局限性学习

大型语言模型(LLM)在自然语言处理领域取得了显著成就,但也存在一些局限性,导致其在某些任务上表现不佳或无法完成。

2025-04-06 02:07:08 218

原创 软件开发中的YAGNI原则

YAGNI是一个原则,鼓励开发人员在功能或特性明确被需要之前避免将其添加到系统中。该原则基于这样的前提:添加不必要的功能可能导致复杂性增加、开发时间延长,以及可能产生更多的bug。相反,开发人员应该专注于提供符合当前需求的最简单解决方案。YAGNI原则在软件开发的各个方面都具有价值。它提倡简单性,减少不必要的复杂性,并帮助团队专注于交付基本功能。通过应用YAGNI,开发人员可以提升生产力、可维护性及整体项目成功。然而,重要的是要保持平衡,不要误将YAGNI作为忽视前瞻性或架构考虑的借口。

2025-03-28 00:59:27 890

原创 双因素拆解法 - 分析比例型指标的因子贡献度

对于比例型指标,双因素拆解法的核心是将指标的变化量分解为。

2025-03-13 20:35:47 943

原创 Gini系数的应用 - 指标波动贡献分析

波动贡献值 = (维度值的波动值 / 整体波动) × 100。通过基尼系数,可以快速判断哪个维度更可能是导致指标异常的根源。我们需要计算每个维度下各维度值对整体销售额波动的贡献值。对于每个维度值,计算其本期销售额与上期销售额的差值。,且已按从小到大排序。根据波动贡献值,可以计算每个维度的基尼系数。

2025-03-10 20:38:54 968

原创 大语言模型微调的基本概念介绍

大型语言模型(LLM)微调是指在预训练模型的基础上,进一步使用较小且特定的数据集进行训练,以提升模型在特定任务或领域的能力和性能。微调的目的在于将通用模型转变为专业化模型。它弥合了通用预训练模型与具体应用独特需求之间的差距,确保语言模型更好地符合人类的期望。以OpenAI的GPT-3为例,这是一种设计用于广泛自然语言处理(NLP)任务的先进大型语言模型。假设某家医疗机构希望使用GPT-3帮助医生从文字记录中生成病人报告。

2025-03-02 21:07:44 699

原创 基于时间序列的预测方法进行异常值检测概述

与时间相关的数据分析和预测问题指数据的变动与时间的变化密切相关。具体来说,这类问题的核心在于数据的观测值随时间推移而变化,并且这种变化可能呈现出一定的规律性或受特定时间或事件的影响。时间序列预测方法正是为了解决这类问题而设计的,帮助我们从历史数据中提取规律,并预测未来的变化。

2025-02-23 21:35:13 882

原创 大语言模型Agent

LLM Agent是一种高级人工智能系统,专为创建需要顺序推理的复杂文本而设计。它们可以进行前瞻性思考,记住过去的对话,并根据需要的情境和风格使用不同的工具来调整其回应。考虑一个在法律领域的问题,如下所示:“在加利福尼亚,某种类型的合同违约可能产生的法律后果是什么?一个带有检索增强生成(RAG)系统的基本LLM可以轻松地从法律数据库中获取所需信息。在这种情况下,当项目需要顺序推理、规划和记忆时,LLM代理就会发挥作用。对于这个问题,代理可以将其任务分解为如下子任务。

2025-02-18 01:49:20 874

原创 阅读能力提升训练指南

提升阅读能力包含三部分,阅读速度、阅读深度、总结输出能力。在当前时代下,有大量的渠道接收信息。如何快速理解、输出是一项关键的技能。

2025-02-16 20:06:44 557

原创 项目规划写作说明

在项目启动前根据项目类型制定一份相应的规划,有助于我们更好的推进项目,降低项目风险。

2025-02-14 13:30:49 962

原创 Apache Calcite - calcite jdbc驱动使用场景

在使用calcite时,根据合适的场景选择是否需要使用calcite jdbc驱动来,前文举例中「查询优化器」可以使用也可以直接通过Calcite的API来创建优化所需要的schema。而查询场景我们基于JDBC接口来完成,就需要前置通过Calcite驱动来获取连接对象。

2024-11-23 21:42:29 1286

原创 Apache Calcite - 查询优化之自定义优化规则

输入sqlFROM (我们生成对应的关系表达式树自定义优化规则,自定义规则的作用就是将过滤下推到投影之前。最终调用transform方法将整个匹配到的子树(即 Filter 节点及其子节点 Project)替换为新的子树(即 newProject 节点及其子节点)。// 定义子节点的匹配模式@Override// 获取匹配的 Filter 和 Project 节点// 创建一个新的 Project 节点,其子节点为原 Project 节点的输入。

2024-11-03 12:44:59 1034

原创 Apache Calcite - 基于规则的查询优化

ProjectFilterTransposeRule:ProjectFilterTransposeRule 将 Project 操作下推到 Filter 之后,从而减少不必要的数据传输和处理。FilterJoinRule:FilterJoinRule 将 Filter 操作下推到 Join 之前,或者将过滤条件分解并分别应用到连接的两侧。JoinCommuteRule:JoinCommuteRule 交换 Join 操作的左右输入,从而可能找到更优的连接顺序。

2024-10-23 01:17:20 1569

原创 Apache Calcite - 查询优化之逻辑优化简介

Calcite的逻辑查询优化的一个重要目标是通过减少关系表达式树的深度、操作数量、连接顺序。来优化查询。最终这种优化可以为后续优化提高效率。减少关系表达式树的深度谓词下推:将过滤条件尽早应用,以减少中间结果集的大小。例如,将 WHERE 子句中的条件下推到扫描操作之前。投影下推:将选择的列尽早应用,以减少中间结果集的宽度。例如,将 SELECT 子句中的列选择下推到扫描操作之前。减少操作数量子查询合并:将子查询合并到主查询中,以减少嵌套查询的数量。

2024-10-21 13:45:55 1182

原创 Apache Calcite - 将Sql转换为关系表达式

我们为了进行转换创建了自定义Schema,用过Sql解析都知道Sql解析时不需要Schema,而验证转换为关系表达式时需要schema。解析是将SQL字符串转换为抽象语法树(AST)的过程,这个过程只需要了解SQL的语法规则,不需要知道具体的表和字段。解析的结果是一个 SqlNode 对象,它表示SQL语句的结构。解析器根据SQL语法规则将SQL字符串解析成SqlNode。这个过程只涉及语法分析,不涉及具体的表和字段,因此不需要Schema信息。

2024-10-18 01:24:01 1289 1

原创 Apache Calcite查询优化 - 构建关系代数表达式

在Apache Calcite中,RelNode(关系表达式节点)是用于表示关系查询计划的基本单元。每个RelNode 都代表逻辑或物理操作符,诸如扫描表、过滤、联接等。构建RelNode 是进行SQL优化的第一步,因为它为优化和执行提供了一种结构化的表示方式。标准化SQL表示:SQL查询是以字符串形式表达的,需要转换为一种结构化的形式,以便进行分析和优化。RelNode 提供了标准化的表示,可以对其进行各种转换和优化操作。逻辑与物理优化:通过构建RelNode,你可以创建SQL查询的逻辑计划。

2024-08-31 20:47:18 889

原创 Java 线程上下文传递

在Java并发编程中,线程上下文(Thread Context)是指与执行线程相关的环境和状态信息。这包括线程的局部变量、事务上下文、安全凭证、用户会话信息等。在多线程应用程序中,每个线程可能需要处理不同的任务,这些任务可能需要访问和修改与当前线程相关的特定数据。通常有下列常见的使用场景。数据隔离:在并发编程中,数据隔离是保证线程安全的关键。使用线程上下文可以确保每个线程都有自己的数据副本,从而避免了数据共享时的并发问题。

2024-07-21 16:17:16 1155

原创 Apache Calcite Linq4j学习

Linq4j是Apache Calcite项目中的一个模块,它提供了类似于LINQ(Language-Integrated Query)的功能,用于在Java中进行数据查询和操作。Linq4j可以将逻辑查询转换为物理查询,支持对集合进行筛选、映射、分组等操作。

2024-06-28 01:36:51 1208

原创 Apache Calcite - 使用框架Sql解析器解析Sql

Calcite提供的解析器和一般的语言解析器用法类似,均是基于访问者模式进行解析,最终实现特定的功能。

2024-06-18 02:14:17 3021

原创 Apache Calcite - 使用框架Reflective schema访问Java内存数据

Apache Calcite中的ReflectiveSchema是一种机制,允许Calcite通过反射来访问Java对象作为数据库的模式。即可以将普通的Java对象集合作为数据库表来查询。ReflectiveSchema可以将Java对象的字段映射为表的列,对象的集合映射为表的行。基于ReflectiveSchema适配器可以简化我们的工作,提升效率。但该工具有一定局限性 ,要么调整使用方式,要么改写核心方法。

2024-06-17 00:56:17 1326

原创 Apache Calcite - 自定义标量函数

为了方便演示,我们实现一个无用的简单方法,对整数减1接着扩展前文中用到的schema,实现getFunctionMultimap方法,并增加添加函数的方法@Override@Override最后我们在schema中注册函数完成上述工作后,在sql中使用自定义的函数打印结果,可以看到自定义方法的计算结果95 9421 2047 46实现自定义标量函数,注册到schema最后使用,schema是核心,维护了各类元信息,并提供了扩展接口来实现自定义的能力。

2024-06-02 15:17:53 1174

原创 Apache Calcite - 使用内置函数

Apache Calcite 提供了广泛的 SQL 函数支持,包括但不限于标准的 SQL 函数(如聚合函数、数学函数、字符串函数等)以及一些 Calcite 特有的扩展函数。这些函数可以在 SQL 查询中使用,以执行复杂的数据处理和分析任务。详细的介绍可以参考[1]。下面是对参考手册中函数的分类介绍聚合函数:如 COUNT, SUM, AVG, MIN, MAX 等。数学函数:如 ABS, EXP, LOG, POWER, SQRT, SIN, COS 等。

2024-06-01 20:17:35 1662

原创 Apache Calcite - 自定义数据源适配之访问内存列表

为了适配多源数据,根据上一篇文章,我们需要扩展实现Calcite中的Schema与Table。实现多源访问,了解框架结构及核心类最终实现。

2024-06-01 17:35:03 1799 6

翻译 Apache Calcite简介

在这篇文章中,我们探讨了Apache Calcite的能力,它能快速地为数据库提供标准化的SQL解析器,验证器和优化器。这让供应商无需花费太多时间开发查询引擎,使他们能够优先考虑后端存储。此外,Calcite的适配器简化了与各种数据库的连接,有助于开发统一的集成接口。更进一步,通过利用Calcite,数据库开发者可以加快产品上市的时间,同时提供强大、多功能的SQL功能。

2024-05-19 17:11:42 574

原创 软件团队协作常见问题与应对方法

一个团队成员均有各自的任务,更多关注自己的事情,导致团队整体协作时没有形成合力效应。例如成员A做架构升级,成员B做新业务迭代,他们都希望对方能支持自己的工作,但是都没有响应。这样的分工就是简单的加法逻辑,没有发挥出乘法效应。

2024-04-13 20:25:39 464

原创 日常工作中时间管理的方法学习总结

时间管理不仅仅是关于工作的效率,它还关系到生活的质量。有效的时间管理可以让你有更多的时间去做自己喜爱的事情,提高工作和生活的满意度。

2024-03-24 15:42:42 1165

原创 hive窗口函数学习总结

Hive中的窗口函数主要用于在数据集的子集(窗口)上执行计算。窗口函数可以解决一些复杂的数据分析问题,例如计算移动平均值、累计和、排名等。例如,如果你想要计算每个用户的购买总额排名,或者计算每个月的销售额是前三个月的平均值的多少倍,这些问题都可以通过窗口函数来解决。窗口函数的主要特点是可以在不改变原始数据行数的情况下,为每一行提供一个基于窗口的计算结果。这与聚合函数不同,聚合函数会将多行数据聚合成一行。

2024-03-23 13:19:36 1179

翻译 软件架构模式概述

架构模式是我们设计应用程序的核心。虽然我们可能选择不同的模式,但通过识别和理解它们的共性,我们可以遵循一些基础原则,这些原则将为设计关键的业务应用程序提供坚实的基础。在我看来,理解这些规则帮助我创建出了可扩展、可测试的软件系统。

2024-02-21 20:39:35 182

原创 使用py-spy对python程序进行性能诊断学习

py-spy是一个强大的工具,它可以帮助Python开发者进行性能分析而不影响程序的正常运行。通过生成火焰图和提供实时的性能数据,py-spy使得性能优化变得更加直观和高效。

2024-01-28 17:10:10 1541

原创 Python异常处理TypeError: translation() got an unexpected keyword argument ‘codeset‘

学习安装好依赖后执行命令仅接着出现下列错误,主要提示是 「TypeError: translation() got an unexpected keyword argument ‘codeset’」

2024-01-01 17:08:31 1777

翻译 软件研发中技术主R的职责

在项目管理中,“项目主R"中的"R"通常是"Responsibility”(责任)的缩写,表示这个人在项目中担任主要责任。而"技术主R"一般指的是一次项目中技术侧实施负责人。技术主R并不一定要承担项目经理全部的职责,但要从项目管理的角度推进技术的落地。从技术负责人的视角看,项目管理可以被划分为四个阶段:需求阶段、设计阶段、开发阶段和上线阶段。作为负责人,就是确保项目生命周期中的每个阶段都被妥善处理。

2023-12-24 17:53:37 1415

翻译 LangChain简介

这就是我们对LangChain的简单介绍——一个允许我们基于LLMs构建更高级应用程序的库,如OpenAI的GPT-3模型或通过Hugging Face提供的模型。

2023-12-17 21:06:05 558

原创 提示(Prompt)工程中提示词的开发优化基础概念学习总结

本文为Prompt工程学习总结,仅对基本思路进行说明,结果在不同的模型上会有差异。

2023-12-10 18:03:01 1244

原创 基于大语言模型的垂直领域知识问答系统流程学习

大模型能回答多数一般性问题,但在垂直领中,模型知识深度、准确度有限。为了解决该问题,我们可以利用向量数据库结合大模型和私有知识,构建垂直领域的智能服务。

2023-12-03 22:01:50 1957 2

翻译 Java中MapDB使用简介

在这篇文章中,我们深入研究了MapDB的嵌入式数据库引擎和集合框架。我们首先研究了核心类DB和DBMaker来配置、打开和管理我们的数据库。然后,我们通过一些例子来看MapDB提供的数据结构如何处理我们的记录。最后,我们看了MapDB相比传统数据库或Java集合的优势。

2023-11-26 21:43:54 1659

原创 数据可视化diff工具jsondiffpatch使用学习

数据迁移工程中diff是重要的一环,便于我们排查问题,提高迁移的质量。基于这个工具,我们可以实现可视化比较。当有定制化比较诉求是,通过扩展函数实现定制化功能,最终可以搭建起我们的diff工具服务。

2023-08-20 03:26:13 3476

原创 Spring Boot单元测试使用MockBean注解向Service注入Mock对象

MockBean注解是Spring Boot提供的一个注解,用于模拟依赖对象。它的作用是在Spring上下文中创建一个模拟对象,并将其注入到被测试对象中,以便进行单元测试。

2023-08-13 15:03:52 7116

翻译 使用h2database对java关系数据库访问逻辑进行测试

h2database是一个用Java编写的嵌入式关系型数据库管理系统,可以在内存中运行。h2database支持标准的SQL语法和JDBC API。高性能:采用了高效的算法和数据结构,具有出色的性能。轻量:的代码量非常小,可以很容易地嵌入到应用程序中,同时也支持多种部署方式。兼容性强:支持标准的SQL语法和JDBC API,同时也支持多种数据库的兼容模式。可靠性高:采用了事务机制和数据持久化技术,可以保证数据的一致性和可靠性。使用简介:提供了丰富的文档和示例,可以很容易地上手使用。

2023-08-06 21:36:30 311

翻译 Linux查看CPU使用信息-负载/利用率

本文介绍了CPU负载和利用率的区别,并介绍了多个工具查看CPU使用信息。

2023-04-30 22:51:55 3024

FASTJSON那些事.pptx

这篇文章告诉大家: * Fastjson究竟有多快 * 为什么Fastjson这么快 * 你能用Fastjson来做什么! * 如何获得fastjson?

2019-09-22

xtext 2.7.3

Xtext是一个真正的实现编程语言的开源框架。它使用了人们熟知的方法来实现语言,比如解释器、符号表、编译器等。

2016-05-06

WxWidget教程

wxWidgets是一个给程序员使用的开发包,这个开发包用来开发用于桌面电脑或者移动设备的 GUI(图形用户界面,下同)应用程序。它提供了一个编程框架,作了很多底层的工作以便给应用程序 及其控件提供默认的行为。wxWidgets库给程序员提供了大量的类,这些类支持很多方法(方法是C+ +中的关键词)以供其使用,程序员可以通过重载这些方法来实现定制的行为. 一个典型GUI程序所作 的事情包括: 显示一个包含各种控件的窗口,在窗口中绘制特定的图形或者图像,响应来自鼠标,键 盘以及其它输入设备的输入,和其它的进程通信,调用别的应用程序等,wxWidgets所做的事情,就是 让程序员可以通过更简单的手段来实现所有这些当代应用程序的通用特性.

2015-09-13

程序员面试金典 英文版 第四版

程序员面试金典 英文版 第四版,讲解了面试中的经典题目。英文版文字版质量很高。

2015-08-20

2014SAP实习生笔试题

SAP实习生笔试题目,包括三部分C++,SQL,及Javascript

2014-05-21

Winsock简单的多线程TCP服务器与客户端

Winsock实现的简单的多线程TCP服务器与客户端。 可以进行文件下载。

2014-03-13

软件项目管理的九阴真经

1 前言(连载一) 2 如何做业务调研? 2.1 调研工作如何组织? 2.2 调研准备阶段容易犯哪些错误?(上)(连载二) 2.3 调研准备阶段容易犯哪些错误?(中)(连载三) 2.4 调研准备阶段容易犯哪些错误?(下)(连载四) 2.5 现场调研阶段容易犯哪些错误?(一)(连载五) 2.6 现场调研阶段容易犯哪些错误?(二)(连载六) 2.7 现场调研阶段容易犯哪些错误?(三)(连载七) 2.8 现场调研阶段容易犯哪些错误?(四)(连载八) 2.9 现场调研阶段容易犯哪些错误?(五)(连载九) 2.10 现场调研阶段容易犯哪些错误?(六)(连载十) 2.11 调研工作方法推荐(连载十一) 2.12 接口调研背景知识(上)(连载十二) 2.13 接口调研背景知识(下)(连载十三) 2.14 调研后续工作落实阶段(连载十四) 3 如何写解决方案? 3.1 解决方案难写在哪里?(连载十五) 3.2 坏的解决方案有哪些特征?(上)(连载十六) 3.3 坏的解决方案有哪些特征?(中)(连载十七) 3.4 坏的解决方案有哪些特征?(下)(连载十八) 3.5 写好方案心得(上)(连载十九) 3.6 写好方案心得(下)(连载二十) 3.7 方案分类及用途(连载二十一) 4 如何做产品演示? 4.1 什么是演示?(连载二十二) 4.2 演示的目的 4.3 售前演示为什么效果不好?(上)(连载二十三) 4.4 售前演示为什么效果不好?(下)(连载二十四) 4.5 售前演示工作应如何组织?(上)(连载二十五) 4.6 售前演示工作应如何组织?(下)(连载二十六) 4.7 如何准备标准演示套路?(上)(连载二十七) 4.8 如何准备标准演示套路?(下)(连载二十八) 4.9 如何进行现场演示(一)(连载二十九) 4.10 如何进行现场演示(二)(连载三十) 4.11 如何进行现场演示(三)(连载三十一) 4.12 如何进行现场演示(四)(连载三十二) 4.13 如何进行现场演示(五)(连载三十三) 4.14 如何组织演示后工作(连载三十四) 4.15 演示方案准备经常考虑的问题(连载三十五) 5 如何做用户考察? 5.1 前言(连载三十六) 5.2 典型用户有什么意义? 5.3 典型用户应如何管理(上)(连载三十七) 5.4 典型用户应如何管理(下)(连载三十八) 5.5 用户现场考察应如何组织?(上)(连载三十九) 5.6 用户现场考察应如何组织?(中)(连载四十) 5.7 用户现场考察应如何组织?(下)(连载四十一) 6 如何做公司介绍? 6.1 前言(连载四十二) 6.2 哪些情况下需要公司介绍 6.3 正式陈述时常见错误? 6.4 口头和会面介绍时常见技巧(连载四十三) 6.5 在客户处进行公司介绍三个要点 6.6 如何对在公司考察客户做介绍(连载四十四) 6.7 做好总部公司介绍的三个决窍 6.8 公司总部接待考察客户要注意的细节 7.1 培训工作在项目实施中作用(上)(连载四十五) 7.2 培训工作在项目实施中作用(中)(连载四十六) 7.3 培训工作在项目实施中作用(下)(连载四十七) 7.4 培训工作应如何组织?(连载四十八) 7.5 培训注意事项(连载四十九) 7.6 总部培训 8 如何做现场推广? 8.1 现场推广工作可进行条件?(连载五十) 8.2 现场推广工作为什么进展慢? 8.2.2 要推广的业务流不完整(连载五十一) 8.2.4 没有激发用户的主动性(连载五十二) 8.2.6 边界总在变更(连载五十三) 8.3 现场推广工作如何才能做好?(连载五十四) 9 如何做项目验收? 9.1 验收工作应如何组织?(连载五十五) 9.1.3 主动沟通(连载五十六) 9.1.4 写好备忘录(连载五十七) 9.2 如何催款? 10 如何做项目团队管理 10.1 如何做项目团队管理之前言(连载五十八) 10.2 好的项目团队构建要求 10.3 好团队的两个特征(连载五十九) 10.4 如何看待项目经理在团队中作用 10.5 团队建设心得和误区(连载六十)

2013-10-04

《Visual C++音频/视频技术开发与实战》前9章源码

《Visual C++音频/视频技术开发与实战》前9章源码 含有可执行文件,不过原书代码存在问题用的话自己要修改一下。

2013-05-13

软件设计师考试试题 数据库部分收集

软件设计师考试试题 数据库部分,主要是理论部分。

2012-01-08

程序设计培训讲义 递归

程序设计培训讲义递归 ppt 用c 来描述的。

2012-01-08

空空如也

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

TA关注的人

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