test-day-126

Today’s Task

  • write image release pipeline for onebox-command-generator

Additional Task

Thought

既然在家很少用站立式的布局,现在也很少打游戏,

不如把 22 寸那台显示器竖过来放 4k 旁边

test-day-125

Today’s Task

  • Fix Sox Audit
  • Add more components to Create Emergancy Branch Job
  • Split Check STG Pod status

Additional Task

  • Check qahandler, billing, hyas pod status and restart them
  • Fix ReleaseMe gitlab runner
  • store property key-value pair in LocalStorage in one Key

Thought

1

想读技术书的话可以和 Ding 说,也可以和 Kyle 交流书单

这样可以直接借来看,还不用花钱买

书非借不能读也

test-day-124

Today’s Task

  • Release Support
  • Add more components to Create Emergancy Branch Job
  • Split Check STG Pod status

Additional Task

Thought

1

一早解决了个 Merge Conflict,是修 test 的时候注释和删掉的冲突

有没有能避免发生 Merge Conflict 的方法……

下午修了下 release me 的 dockerfile,这样 gitlab runner MR蓝莓小火车应该能过了

在 dockerfile 里面的时候,是真的很容易迷路,不知道自己在哪里

sox audit 用了新的 Cassandra,还是原来的问题

用户名密码是拿不到 token 的,需要处理一下

还需要绕开 security 的限制,肯定不能明文写进去

test-day-123

Today’s Task

  • Setup Cassandra
  • Add more components to Create Emergancy Branch Job
  • Split Check STG Pod status

Additional Task

  • Failure Tracking Mail

Thought

1

我好像 task 都做得有点慢……

碰到问题卡住了要马上去问!

Update: 问下来发现并没有得到答案…

还是得自己看…

比如 sox audit 为啥会需要三个小时

还有 vue 3 是不是应该用 sfc 以及它的好处

test-day-122

Today’s Task

  • Property Page
    • Fix Issues after review

Additional Task

Thought

1

竟有如此离谱

JB 的 Ktor Http Api 示例代码,在家跑能起来

但跑测试的表现是请求 8080 端口 404

同一份代码直接 clone 下来在办公室机器上就通了……

回去看看这个端口开了没,是不是被占用了

2

说起来经常会有 8080 被占用,但 idea 上跑着的所有项目都停掉了

1
netstat -ano | grep :8080

win 下可以用:

1
taskkill /PID ${PID of process using 8080} /F

Code Review:

1. 为啥我老是喜欢用 forEach 捏

哦拜托这样真的超罗嗦的

forEach() 返回的是 undefined,map 至少会给个数组

所以这里在 forEach() 里面试图塞进数组的行为显得相当机车

而且这里 properties 永远不会 === null,它是初值个 {} ,而 {} != {} 且 {} !== {}

1
2
3
4
5
6
7
renderOptions(properties: {[key: string]: string}) {
let options: {value: string, label: JSX.Element}[] = [];
if (properties !== null) {
Object.keys(properties)?.forEach((key) => options.push(this.renderOptionItem(key, properties[key])))
}
return options;
}

Emmmm that looks better

1
2
3
renderOptions(properties: {[key: string]: string}) {
return Object.keys(properties)?.map((key) => this.renderOptionItem(key, properties[key]));
}

2. map 到底返回了个啥?

1
2
3
4
5
6
7
8
9
10
11
let tableItem: JSX.Element[] = [];
if (dataSource !== null) {
Object.keys(dataSource)?.map( key => {
tableItem.push(
<tr key={key}>
<td>{key}</td>
<td>{dataSource[key]}</td>
</tr>
)
})
}

map 本身返回的就是个数组,就不用再特地开个新的去存进去

1
2
3
4
5
6
7
8
{
Object.keys(dataSource)?.map( (key) => (
<tr key={key}>
<td>{key}</td>
<td>{dataSource[key]}</td>
</tr>
))
}

3. 展开运算符

1
2
3
4
5
let history = this.state.searchHistory;
if (history != null) {
history[property] = this.state.property;
}
this.setState( {searchHistory: history});
1
2
3
let history = { [property]: this.state.property };
let mergedHistory = { ...this.state.searchHistory, ...history }
this.setState( {searchHistory: mergedHistory});

test-day-121

Today’s Task

  • Property Page
    • Search History in Local Storage
    • Two Tables
    • Rewrite it to be more pretty

Additional Task

Thought

1

2>&1

2: stderr

1: stdour

&: 跟在后面的是文件描述符,而不是文件名

2

peer dependency conflict

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
15:08:39  + npm install
15:08:45 npm ERR! code ERESOLVE
15:08:45 npm ERR! ERESOLVE unable to resolve dependency tree
15:08:45 npm ERR!
15:08:45 npm ERR! While resolving: release_me@0.1.0
15:08:45 npm ERR! Found: react@16.14.0
15:08:45 npm ERR! node_modules/react
15:08:45 npm ERR! react@"^16.13.2" from the root project
15:08:45 npm ERR!
15:08:45 npm ERR! Could not resolve dependency:
15:08:45 npm ERR! peer react@"^17.0.0" from react-mde@11.5.0
15:08:45 npm ERR! node_modules/react-mde
15:08:45 npm ERR! react-mde@"^11.5.0" from the root project
15:08:45 npm ERR!
15:08:45 npm ERR! Fix the upstream dependency conflict, or retry
15:08:45 npm ERR! this command with --force, or --legacy-peer-deps
15:08:45 npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
15:08:45 npm ERR!
15:08:45 npm ERR! See /root/.npm/eresolve-report.txt for a full report.

npm 7 以后会去看 Peer Dependencies 是不是和项目依赖冲突,如果冲突的话就会给 Error

–legacy-peer-deps 可以暂时不去管它,但终究是需要解决冲突的

3

我每天究竟在做些什么……

为什么在一个对 WLB 极度友善的环境下,我可以每天晚上熬到凌晨……

但也只是像以往一样,对着文档搭积木,同时又记不住太多细节

短期记忆几乎报废,只能抓住瞬间记录下来才不至于彻底忘掉

甚至思维的速度与深度都极度受限,希望这仅仅是岁月的侵蚀而不是劫后余生

最近甚至连对气味都不敏感了,大抵是对于未来的焦虑与不安吧

唯一的安慰是,看到 IDEA 的 Dracula 主题还能闻到紫菜蛋汤的味道

淡黄色的部分自然是蛋液高温变性后的颜色,橙色的部分是胡萝卜和南瓜

而我又经常会为了解决当下心理上的困扰,去忽视现实中存在的更为迫切的问题

比如说现在凌晨三点为了理清楚思绪情愿不睡觉也要朝 github 上继续灌水

即便这些东西深埋在南极的冰川下,有朝一日终究会灌进水

也许这么干可以让我联通一小会四年前的自己和七年前的自己吧,听听他们是如何骂我的

工作至今半年有余,维护了半年的 Bash 和 Groovy,把他们移来移去,

却依然会在 git 同步仓库这件简单的事情上弄不清楚应当如何优雅完成

回过神来,想要写点东西都磕磕绊绊的了

四年前写过那么几个 commit 的 TS + Vue,甚至已经认不出那些青涩的 commit message

只有在 clone 当年那个仓库的时候,看到一缕日出的 HDR

而我又在焦虑些什么,心中最深处的忧虑又从何而来

我的底气从何而来,应当如何重新构建内心的安宁?

太久不读书,自己照照镜子都会觉得面目可憎,几近失去对复杂信息的处理能力

肉体上的质量倒是猛增了 10 kg,全围在腰上了

test-day-120

Today’s Task

  • Property Page
    • Search History in Local Storage
    • Two Tables

Additional Task

Afterwork Task

  • Try Ktor HTTP API Demo
  • Read about Kotlin Coroutines

Thought

1

CKLT:

  • access
  • catalog
  • crypto
  • customerportal
  • dynamic-config-ui //need nucleus
  • hyas
  • kakapo
  • keymaster
  • nam
  • nexus
  • nucleus //17GB source code
  • nucleussolr //need nucleus
  • playercard
  • playerownership-cassandra
  • playerownership
  • porpoise
  • saola
  • sloth
  • tos
  • vaquita

2

git Q&A

1. 每次同步打出 commit 的目的

同一个 branch 会有不同的 commit

需要具体的 commit id 来确认改动

同一个 branch 在同一时刻指向的 commit 是确定的,一定是当时的 top commit

但是在之后如果有新的 commit 进去了,就不能确认这时候的 branch 里面是不是多了不需要的 commit

2. 带上 tag 的好处

tag 用来标记某个 commit

对于 Jenkins 来说有点奇怪

但对于人类可以更加直观

可以知道在某个确切的 commit 的时刻,当时这个 branch 里的内容是什么,而不是当时做了什么

branch 总是指向 top commit,而 tag 不会变

3. pull 和 fetch 的区别

git fetch 会去拿新的改动 metadata,然后也会下下来改动的文件

fetch 不会动到自己的 branch,

pull 会把 origin 同名的分支合到本地分支

如果 origin 没有同名分支或者冲突的话,行为就不知道了

4. 只用 git checkout ${branch} 的问题

同名的 branch 如果本地也存在,它就不会去同步 origin 的更新

比起 checkout 完了再去 merge origin/${branch}

更好的办法是

checkout -f 强制切换到目标 branch,丢掉当前 local change

5. git fetch 的问题

remote branch 如果删掉了,本地指向这个 branch 的 refs 也需要处理掉

所以需要再去 prune 一次

git fetch --prune

相当于

git fetch --all && git remote prune

会在 prune 之前,从 remote 拿一下最新的状态

6. git push –force-with-lease

force 强行把本地分支推上远端覆盖掉

force-with-lease 不会覆盖远端分支里面别人加进去的 commit

test-day-119

Today’s Task

  • Property Page

    • Search History in Local Storage
  • Release Support

Additional Task

  • Check Hyas Image Script
  • Deploy Citadel to STG AWS
  • nucleus liquibase & cassandra deploy

Afterwork

  • Read git source code to get general ideas
  • Try HTTP API Demos with Spring Boot

Thought

1

抄了一段写了再改的 git 同步代码

结果写得非常非常烂

才发现我其实对 git 真的一丁点都不熟悉……

回去要去翻源码

最最起码要去看 Git Repo 里的 Document

真的有被自己菜到

如果有疑问,必须立刻满足自己的求知欲

千万不要憋着

Value Transfer 是做什么的?

每个项目分别都是做什么事情的?

它们是如何撑起全球所有玩家的同时访问的?

开始担心自己的时间不够用

test-day-118

Today’s Task

  • Property Page
  • Oracle Password Rotation q4-22 PRD
  • Release Scripts Port

Additional Task

Thought

1

深夜的时候看了好久 Kotlin

结果发现台式机没装 JB 全家桶

花了好长时间在 linux 下搭环境……

终究没看多少就只好去睡觉了