逗号的博客

这里有一句格言,但我还没想好

Kettle 是 PDI 的旧称,在这里我们会不加区别地使用它们。我们将模拟一套生产环境用来实现以下需求

  1. 使用数据库保存作业和转换;
  2. 在 Windows 上编辑作业和转换,在 Linux 上执行作业和转换;
  3. 使用 POP 收信下载 Excel 附件;
  4. 将 Excel 数据导入数据库;
  5. 把 Excel 文件备份到另一个目录。
阅读全文 »

在 VirtualBox 上安装 Debian 系统还是比较简单的,让人感到有点困难的是 VirtualBox 的网络配置。以下是 Virtual Networking 关于网络模式的一个概览

比较省事儿的做法是使用桥接模式,这会在宿主机所在的网络加入一台电脑,在有的情况下这不是我们期望的,比如在公司网络中。我们的需求有两点,一是虚拟电脑能够访问外部网络,二是宿主机和虚拟电脑能够相互访问。从上面的网络模式概览中发现 NAT 和 Host-Only 模式的组合正好可以满足我们的需求。

在这篇文章中我们将从零开始在 Windows 上安装 VirtualBox,然后在 VirtualBox 上安装 Debian 系统。安装完成后会创建两个用户

用户 密码 备注
root 123456 超级用户,权限最大
acomma 123456 普通用户,日常使用

下面让我们开始整个安装与配置过程。

阅读全文 »

看雪论坛 0xEEEE逆向调用QQ截图NT与WeChatOCR这篇文章中发布了调用新版 QQ 截图功能的软件 QQScreenShotNT-Plus,虽然已经设置了 QQScreenshot.exe 的路径,但是每次启动这个软件都要提示是否重新自动获取,在设置中去掉“启动提示”依然无效。在那篇文章中作者说 QQScreenShotNT-Plus 是在 QQImpl 基础上实现的,但是作者没有发布对应的源代码,因此我准备基于 Windows Forms 技术复刻相关的功能。因为是第一次使用 .NET 相关技术开发 Windows 系统的应用软件,所以会详细地记录整个开发过程。源代码在 QQScreenShotLauncher

阅读全文 »

在 Java 语言中,当一个程序所有可能的语句都执行完成后程序就会自动退出。也可以调用 System#exitRuntime#exit 方法提前退出当前程序。

1
2
3
4
5
6
7
public class Application {
public static void main(String[] args) {
// System.exit(0);
// Runtime.getRuntime().exit(0);
System.out.println("Hello World!");
}
}

但是对一个 Spring Boot 应用程序来说,当所有可能的语句执行完成后程序却不会自动退出,这是为什么呢?

1
2
3
4
5
6
7
8
9
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
阅读全文 »

在使用 Jackson 序列化对象时可以使用 @JsonPropertyOrder 注解、@JsonProperty 注解,MapperFeature 枚举中 SORT_PROPERTIES_ALPHABETICALLYSORT_CREATOR_PROPERTIES_FIRSTSORT_CREATOR_PROPERTIES_BY_DECLARATION_ORDER 枚举值来控制字段的输出顺序。如果没有通过这些方式控制字段的输出顺序,则输出的结果与对象中的字段的定义顺序有关。那么排序的过程是怎样的呢?下面来看一看。

阅读全文 »

本文是在 Windows 的 VirtualBox 上安装 Debian 11.4.0 系统。安装完成后会创建两个用户

用户 密码 备注
root 123456 超级用户,权限最大
acomma 123456 普通用户,日常使用
阅读全文 »

场景描述

我们有一个系统在不停接收其他系统发来的消息,我们的任务任务是查询连续出现两次及以上的消息。下面是一些例子

  1. 假设依次收到的消息是 A 则结果为空;
  2. 假设依次收到的消息是 AB 则结果为空;
  3. 假设依次收到的消息是 AA 则结果为 AA;
  4. 假设依次收到的消息是 AABB 则结果为 AABB;
  5. 假设依次收到的消息是 ABB 则结果为 BB;
  6. 假设依次收到的消息是 AAB 则结果为 AA;
  7. 假设依次收到的消息是 AABCC 则结果为 AACC;
  8. 假设依次收到的消息是 AABCDD 则结果为 AADD;
  9. 假设依次收到的消息是 AABAACC 则结果为 AAAACC;
  10. 假设依次收到的消息是 AABAABCC 则结果为 AAAACC;
  11. 假设依次收到的消息是 AABAACDD 则结果为 AAAADD;
  12. 假设依次收到的消息是 AABCCBDD 则结果为 AACCDD;
阅读全文 »

如上图所示,有紫色、红色、黄色三个矩形区域,其中紫色区域完全在东半球,黄色区域完全在西半球,而红色区域一半在东半球一半在西半球,即它跨越了 180°(-180°) 经线。我们用左上/右下两个点来表示一个矩形区域,因此紫色区域表示为 (147.66, 36.31) / (159.71, 30.88),红色区域表示为 (173.53, 36.49) / (-173.32, 31.17),黄色区域表示为 (-160.49, 36.31) / (-147.24, 30.98)。在每一个区域中分布着一些点,现在需要一种把这些点查询出来的方法。

阅读全文 »
0%