摘要: 问题 业务场景:应用会创建一个<name,id>的Map并缓存,其中key,value会被其他业务模块调用,最终数据落盘到HDFS上。 问题:发现一个奇怪的bug:id在Map中的值和业务表中的值有时候对不上,比如在业务表中查到一个id=100,但是在Map中找不到这个值。 经过分析定位,发现问题代 阅读全文
posted @ 2023-10-26 23:13 MaxStack 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 在外企工作,发现老外和国人一个很明显的区别就是:老外很懂怎么“say no”。国人大多都很“实在”,一般要么不“say no”,加班加点蒙头肝。要么“say no”了,但是理由半天说不明白,别人只以为你能力不行,故意找茬。 正常接需求 举一个自己的例子。我们做的是数据仓库,来了一个新需求,需要加载一 阅读全文
posted @ 2023-09-03 15:18 MaxStack 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 最近ChatGPT很火,那么今天就来试一下。 ChatGPI 注册 首先,用梯子“合理上网”。墙内 ChatGPT 不提供服务。 其次,租一个可以接受国外短信的号码,常用的网站是这个:https://sms-activate.org/。 充值1美金=~70卢布就够了。一个美国号码50卢布,英国号码3 阅读全文
posted @ 2023-02-25 18:50 MaxStack 阅读(692) 评论(0) 推荐(0) 编辑
摘要: 不想当将军的士兵,不是好士兵。从Associate到VP,是一个飞跃,既需要机遇,也需要个人软实力的提升。笔者就站在职位介于Associate-VP之间的视角,结合自身所感以及历任VP老板的特点,总结下需要哪些方面的提升。 ## 自身的职责 一个很表面的区别:大部分Associate需要“干活”,很 阅读全文
posted @ 2022-11-03 13:46 MaxStack 阅读(18) 评论(0) 推荐(0) 编辑
摘要: ## 定律 马尔文·康威1967年提出:“设计系统的架构受制于产生这些设计的组织的沟通结构。” 换句话说:“如果团队、部门、子部门等的组织结构没有紧密反映产品的必要组成或产品组成的关系,那么项目将会遇到麻烦。因此,应该确保组织结构兼容于产品架构。” 随着业务的发展与架构的演进,我对于康威定律有了更深 阅读全文
posted @ 2022-10-27 10:07 MaxStack 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 用途 产生全局唯一的大量的ID。 理解 组成:1位不用,41位时间戳,5位数据中心编号,5位机器编号,12位序列号 Q: 生成的 ID 最大有多少位? A: 1+41+5+5+12=64位,正好和 Java 的 long 类型一样。 Q: 如何保证唯一性? A: 通过时间戳保证唯一性。使用64位二进 阅读全文
posted @ 2022-08-30 20:59 MaxStack 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 因为工作原因,每天要处理大量的数据,我不禁好奇:大数据到底对我们的生活有什么影响? ## 被动 其实,互联网+大数据早已经不是什么新鲜的事,我们每天都置身其中,被动地受到影响。 ### 新闻 首先,我每天点开头条,浏览新闻,软件就会根据我的喜好把可能我会感兴趣的内容推送给我。比如,我经常浏览体育新闻 阅读全文
posted @ 2022-05-27 21:13 MaxStack 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 问题 Windows系统,本地 Git , SourceTree 等软件工作正常,最近切换到 TortoiseGit ,每次使用 git pull / push 命令都会弹出密码输入框。 解决1 TortoiseGit 默认使用自带的 Git 和 SSH Connect 客户端。 我们可以把默认的 阅读全文
posted @ 2022-04-06 20:35 MaxStack 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 作为一个软件从业工作者,每天的工作有很大的一部分是通过和电脑交互完成的。 刚工作的时候,公司电脑里面几乎是空的,然后慢慢地一点点往里面加东西。工作了几年之后,东西越来越多,有时候要找一个特定的文件变得很难。 所以,一个合理的,有规范的文件夹结构是非常重要的。 我把文件夹分为以下几个层次。 共享 Ev 阅读全文
posted @ 2022-04-04 11:11 MaxStack 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 介绍 Mapped Diagnostic Context (MDC) 是主流 log 框架自带的功能,将某些信息存在 context 中,然后反映到日志中去。 用的好的话,可以使得日志看起来有条理很多。 背景 一个 batch processing 的应用,每个批次都有一个特定的 DATASET I 阅读全文
posted @ 2022-03-19 15:32 MaxStack 阅读(485) 评论(0) 推荐(0) 编辑
摘要: # 问题 用户在看报表的时候,发现数据有问题,在某一天,某一个 ETF 的 risk exposure 没有被正确地拆分成它的成分。 比如,这个基金 SPDR S&P 500 ETF Trust 2021-01-01,它是这样的: ![1](https://img2022.cnblogs.com/b 阅读全文
posted @ 2022-02-25 20:05 MaxStack 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 背景 在测试过程中,有的时候我们需要根据打出的日志来判断整个 process flow 是否正确。这就需要用到 LogCaptor 。 兼容性 支持 Java 8 和 Java 11+ 。 主流的 Logging framework 都支持。 SLFJ4 Logback Java Util Logg 阅读全文
posted @ 2022-02-14 17:39 MaxStack 阅读(171) 评论(0) 推荐(0) 编辑
摘要: ## 问题 对现有模块进行重构,在上线之后,发现重构的时候有BUG1(某块逻辑写得不对),在调查的时候,发现了另一个BUG2。这个BUG2,就和NFS延迟有关。 我发现: NFS 写文件的时候有延迟,实际文件最终修改时间戳要晚于日志中打印出的文件写操作结束时间。而这个问题,会导致 -> 后续读文件的 阅读全文
posted @ 2022-01-18 09:30 MaxStack 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 问题 最近项目重构,改用 Spring Boot 框架,遇到个问题:当程序 catch 住某些 exception ,需要停掉整个 application ,然后人工介入查看。但是,发现没有办法停掉应用,应用本身也不继续跑下去,它就 hang 在那了。报错如下: o.s.c.s.DefaultLif 阅读全文
posted @ 2021-12-09 21:52 MaxStack 阅读(1870) 评论(0) 推荐(0) 编辑
摘要: 问题 换了新电脑,买了一个 WIFI 6 AX200 无线网卡。家中有两个路由,一个是电信 '天翼宽带' 入网赠送的路由器,一个是华为 'Q2S' 路由器。 发现只能连上'天翼宽带',连不上'Q2S'。 因为平时连上 'Q2S' 网速要快一些,所以还是有必要折腾下。 驱动 尝试1:通过xxx驱动大师 阅读全文
posted @ 2021-11-28 10:55 MaxStack 阅读(5786) 评论(1) 推荐(0) 编辑
摘要: 在 Linux 环境,服务器启动 / 使用各种 ssh 工具 (e.g. putty) 开启新的 session 登录时,系统会加载启动文件导入环境变量等。本文就是探讨启动文件的加载顺序。 启动文件 有两种类型的启动文件 全局文件:适用于所有登录服务器的用户。一般在/etc目录下。比如: /etc/ 阅读全文
posted @ 2021-11-03 21:35 MaxStack 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 背景 公司使用 Git 做版本管理,使用 Jenkins 做自动化 Build 。但是在发布的时候,还是有很多人工的活。 步骤如下: 在 Jenkins 上运行 release job: build develop branch 。 手动填写 release version 。 (说明1)在背后,J 阅读全文
posted @ 2021-11-01 17:30 MaxStack 阅读(202) 评论(0) 推荐(1) 编辑
摘要: 人生总有高潮和低谷,团队也是这样,有的时候表现好,有的时候表现欠佳。在带队的过程中,我遇到了一系列的挑战。 ## 进度慢 在一个 Sprint 两周的时间内,我给开发人员 Bob (化名)总共安排了三个活 A, B, C。根据以往的表现和能力, Bob 应该能够完成这些东西,并且还有一些富余。 但是 阅读全文
posted @ 2021-10-30 15:45 MaxStack 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 问题 我改了 moudule_A 和 module_B。 并且,moudule_A 依赖于 module_B。 在本地测试通过了。 但是,提交代码之后,自动 build 的 Jenkins pipeline 挂了。 报错信息提炼如下,前面是一堆 plugin job 正常跑,然后到 compile 阅读全文
posted @ 2021-08-27 18:31 MaxStack 阅读(262) 评论(0) 推荐(0) 编辑
摘要: Java 8 新引入的 Optional 和 Stream 功能很强大,用的好可以大大简化代码,提高效率。同时,大数据编程框架的源码以及业务代码大量使用了流式编程的思想。所以,这一块必须熟练掌握。 但是,流式编程不是 "the silver bullet" ,有些场景使用可能 overkill ,让 阅读全文
posted @ 2021-08-20 18:27 MaxStack 阅读(82) 评论(0) 推荐(0) 编辑