自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 线程上下文传递

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

2024-07-21 16:17:16 701

原创 Apache Calcite Linq4j学习

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

2024-06-28 01:36:51 793

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

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

2024-06-18 02:14:17 1678

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

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

2024-06-17 00:56:17 1062

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

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

2024-06-02 15:17:53 801

原创 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 1110

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

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

2024-06-01 17:35:03 1232

翻译 Apache Calcite简介

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

2024-05-19 17:11:42 266

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

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

2024-04-13 20:25:39 256

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

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

2024-03-24 15:42:42 907

原创 hive窗口函数学习总结

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

2024-03-23 13:19:36 1119

翻译 软件架构模式概述

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

2024-02-21 20:39:35 73

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

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

2024-01-28 17:10:10 1018

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

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

2024-01-01 17:08:31 1446

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

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

2023-12-24 17:53:37 614

翻译 LangChain简介

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

2023-12-17 21:06:05 488

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

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

2023-12-10 18:03:01 1054

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

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

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

翻译 Java中MapDB使用简介

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

2023-11-26 21:43:54 1206

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

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

2023-08-20 03:26:13 2735

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

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

2023-08-13 15:03:52 5408

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

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

2023-08-06 21:36:30 235

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

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

2023-04-30 22:51:55 2652 1

翻译 linux服务器中部署java应用在jar包中搜索指定的文件及文件中的字符串

class文件是一个字节码文件,包含了类或接口的字节码定义。JavaRuntime(JAR)是一个基于ZIP格式的压缩归档文件,将Java字节码、源码、数据、元数据文件在一起,文件的扩展名是.jar。这样打包组织可以更方便部署、使用。定位问题通常要通过搜索来完成,先明确要搜索的对象,然后按部分完成不同部分搜索,最终定位问题。

2023-03-05 17:14:15 1843

翻译 linux通过端口号定位进程的几种方法

日常在linux 服务器上排查问题时,会有根据端口号找对应pid(进程id)的需求,最终通过定位pid来排查问题。本文将介绍如何在linux系统上通过监听端口号找到相关的进程。本文介绍了3个命令可以可以找出监听某个端口的进程id,日常排查网络连接数过多,分析来源可以通过这些命令帮助我们快速发现问题。

2023-02-28 22:57:03 13284

原创 汇报写作学习总结

上述过程是需要投入时间,不断长期练习的,不可能一次就掌握。因此要保持耐心,长期刻意练习最终提高。

2023-01-23 11:34:34 1737

翻译 Java单元测试对私有方法测试

本文简要讲了为什么测试私有方法不是一个好的实践,其次演示了如果一定要测试私有方法,如何通过反射的方式进行测试。

2022-12-31 07:15:10 4373 2

翻译 MacOS下Chrome浏览器打开文件选择对话框快速切换路径的方法

当我们打开浏览器,选择打开文件对话框按钮,此时会弹出文件选择对话框这时要选择的文件可能藏的很深,经过很多次路径选择才能找到,十分繁琐。

2022-10-22 16:52:15 835

翻译 团队绩效沟通的注意事项

绩效沟通通常是在一个考核周期结束时,主管与下属共同参与分析下属在考核周期内的针对目标完成情况,分析亮点与不足,最终制定计划针对不足进行改进,帮助下属提高。

2022-08-27 19:48:44 332

翻译 Java单元测试对void方法的测试

日常系统单测开发都是通过对方法的返回值进行验证。而void方法没有返回值,这是我们可以对其行为进行验证。下面是几个常见的例子,被验证方法均是void方法。这时我们就可以通过mock并验证这组行为是否发生。在java项目中一般通过mockito来实现。......

2022-08-13 23:27:00 8195 1

翻译 团队协作常见问题分析与解决

尽管团队成员彼此信任,在冲突中进行争执,对所做的决定做出承诺,并且主动承担起相应的责任,但他们很可能会只从个人角度确定自己认为有利于团队的需求、日常工作及关注点。他们很可能只关注他们部门在团队中的位置、个人职业的发展,忽视了代表团队集体成功的结果,所以需要所有团队成员紧盯团队结果,为集体成功而努力。这是因为他们相信所有的意见和想法都已经拿到桌面上进行了考虑,也就说不存在任何芥蒂地对团队成员给与了信赖,这样当他们找不到更好的答案时,他们愿意拥护执行当前的决议,兑现对决议的承诺。......

2022-07-23 18:10:21 4935

翻译 性能衡量指标-吞吐量与响应时间

吞吐量(Throughput)吞吐量用来衡量系统总体性能。对于事务处理系统来说,吞吐量通常通过TPS(每秒事务数)或TPM(每分钟事务数)来衡量。 根据定义可以看到通过数量反应问题一个指标。吞吐量的高低通常与下列因素有关:机器配置参数软件处理任务的开销数据在磁盘上的分布软件系统或硬件系统的并行度被处理事务的类型吞吐量的衡量方式 :在应用程序代码中记录事物Ways to measure throughputThe best way to measure throughput for a

2022-05-08 15:00:37 2286

翻译 Java中职责链的泛化使用

ChannelInboundHandlerAdapter 与 ChannelOutboundHandlerAdapterif (packet instanceof LoginRequestPacket) {// …} else if (packet instanceof MessageRequestPacket) {// …} else if …public class LoginRequestHandler extends SimpleChannelInboundHandler {@Over

2022-04-30 23:14:25 226

翻译 通过Java学习与演示CQRS与事件溯源模式

1 简介本文将介绍CQRS与Event Sourcing设计模式的基本概念。我们首先分别学习两种模式,最后学习二者是如何结合使用。此外还有一些支持这些模式的框架,如Axon。但为了学习两种模式本文不会使用框架演示,而是编写一个简单的应用来理解基本概念。2 基本概念使用前先需要理解模式,通常这两个模式在企业应用中是结合在一起使用2.1 事件溯源(Event Sourcing)Event Sourcing 模式是将应用程序的状态以一系列事件的进行持久化,最终可以在任何时候查询这些状态并将应用恢复到任意

2022-03-31 23:39:08 1186

翻译 Java Hamcrest学习

1 概述在Java生态中,Hamcrest是一个用在单元测试中的框架。该框架与JUnit集成。Java中使用JUnit进行单元测试。JUnit提供了若干断言工具。 如assertEquals、assertTrue等。此外我们还可以通过扩展能力来增强assert*的表达。这时我们使用assertThatpublic static void assertThat(T actual,Matcher<? super T> matcher)通过指定不同的matcher,来判断actual对

2022-02-15 22:29:40 618

翻译 linux服务器java应用cpu load超过阈值常见问题分析与解决

1. 分析服务发布时间分析:在服务发布一段时间后,出现该问题,可以断定与服务发布相关。通过ps命令,可以看到一个进程的启动时间。如果启动时间与cpu load飙升时间点符合,或服务发布后的几分钟内产生,可以判断是新服务启动导致。ps -ef | grep [pid]解决:分析新上线代码,进行处理2. 排查系统进程数分析:根据负载的定义,可以排查是否是系统进程数量过多导致。这是我们会用到vmstat命令。vmstat 1 10 # 每一秒显示一次,显示10次输出的指标可分为6类[1]

2021-11-21 11:53:50 739

翻译 Java 线程池拒绝策略

0 前置依赖本例中会依赖assertj-core完成单测,maven依赖如下: <!-- https://mvnrepository.com/artifact/org.assertj/assertj-core --> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> &l

2021-10-30 20:13:32 1081

翻译 Idea中单测JunitTest环境运行Maven spring项目profile环境选择

1 背景Idea单测4.xSpring项目常见一种写法如下@RunWithapplicationContextAbstractTransactionalJUnit4SpringContextTests@RunWith(SpringJUnit4ClassRunner.class)@Rollback(false)@ContextConfiguration(locations = {"classpath:/applicationContext.xml"})public abstract cla

2021-09-19 19:38:00 1498

翻译 基于消息的分布式事务的概念学习

这里写自定义目录标题1.背景2 事务消息机制3. 本地消息表4. 远程调用支持扩展5. ACID特性分析1.背景在日常业务中存在本地事务操作和MQ共同使用的场景,可能出现任意一个失败,导致数据不一致的问题。常见教程中一个例子:对于订单系统来说,它创建订单的过程中实际上执行了2个步骤的操作:1在订单库中插入一条订单数据,创建订单;1.1 发消息给消息队列,消息的内容就是刚刚创建的订单。1.2 发消息给消息队列,消息的内容就是刚刚创建的订单。2 购物车系统订阅相应的主题,接收订单创建的消息,然

2021-08-22 22:12:26 301

翻译 Java中两种json diff的实现学习

Java中两种json diff的实现学习json diff就是找两个json的差异,找差异时维度可以是第一层字段维度。或者是深度差异比较。为了演示这个功能,需要依赖两个工具包。 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <versio

2021-07-04 15:55:12 6671 2

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关注的人

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