cat-after-surgery

小猫肚子上长了小瘤子

可能是乳腺瘤, 也可能是淋巴瘤

前者的话, 这次切除应该就好了

后者的话就比较惨了…

切下来后已经送检了, 下周应该就有结果了, GoodLuck.

小机器人

我看剧, 你看我...

手术后突然粘人

压到我的手啦

boredom-is-a-good-thing

分享一篇从 2021-01-31 开始的 关于 [无聊] 的感悟

如果心里有件想做的事, 那么这件事, 会屏蔽很多的可能性

具体来说: 当我很想玩游戏的时候, 阅读和学习带来成就感的那种感觉就被屏蔽了, 导致我不去想着做这些事

反过来也是一样的: 当我很想做成一件事的时候, 玩 这件事就不太会出现在脑袋里, 或者只是想一下, 但是没有要去 忍 的感觉

利用好这个, 应该会对我有挺大帮助的

如果我能让脑袋里总是有 比玩游戏 更能让我舒服的事, 那我就不会被玩游戏的快感把其他想做的事屏蔽掉

想玩游戏的时候, 想想今天的感悟, 唤起那些想做, 但玩游戏就会被耽误的事, 想想做了有意义的事后, 那种爽的感觉, 加油小李.

20210507 更新: 有的事, 只有在百无聊赖的情况下, 才会开始做; 总是有各种诱惑的时候, 是不会想着去做他们的.

又感觉到了 不玩游戏的话, 我的时间其实是很多的… 游戏会吞噬我很多时间, 我还不一定开心

如果我真能没心没肺玩游戏, 啥也不想也好 可惜玩完总会有负罪感…

  • 具体来说:
    • 当我想玩游戏的时候, 我会忘了, 有很多想看的 bilibili和youtube视频还没看
    • 有很多有趣是书还没读
    • 有很多有趣的事, 我还没去发现

就像LukeSmith说的, learn tobe bored, Boredom is a good thing Article

这个”多”, 会在一件事占满我的头脑的时候, 通通被冲走, 就像脑袋的内存被用光了一样.

20210919 更新: 百无聊赖 是很好的状态, 这种状态下, 更有可能去做一些平时想做,但是拖延着没做的事. 这种状态比 被各种 驱动的娱乐麻痹这好太多了.

editor-and-terminal-autorun

本篇分享怎么用编辑器和命令行打造一个”自动运行并显示结果”的调试环境

现象

学语言的时候, 总是需要敲一段示例, 然后运行一次(IDE的按钮, 或者用命令行)

这个过程很重复, 很机械, 刚好符合自动化的条件…

准备

  • sublime/或者其他编辑器(无所谓)
  • unix-like命令行(windows下应该有类似的命令)
  • watch 命令

watch 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
lijunwei@bxzy:lua(master)$ tldr watch

watch

Execute a program periodically, showing output fullscreen.

- Repeatedly run a command and show the result:
watch command

- Re-run a command every 60 seconds:
watch -n 60 command

- Monitor the contents of a directory, highlighting differences as they appear:
watch -d ls -l

watch 命令的含义很直观, 就是观察命令执行的结果

我最常用的就是 -d-n 参数了

  • -d 表示 如果命令的输出不同了, 展示出来
  • -n 表示 每几秒执行一次 某条命令(这个命令和在终端里输入命令是一样的, 只是需要注意有的时候需要上下文, 环境变量等)

开始

  • 以调试lua脚本为例
  • shell脚本也可以
  • java程序也行…
  • …发挥想象力就行, 重点是思路
1
2
3
4
5
6
7
8
9
10
11
12
cd $HOME/Desktop/temp
mkdir lua
cd lua
touch learn.lua
watch -d -n 1 "lua learn.lua"

# 屏幕分两半, 左边放浏览器, 右上放编辑器, 右下放命令行...

# 用编辑器打开当前工作目录
subl .

# 之后只需要在编辑器里输入练习的示例就行

OK 大功告成

amg-code-sharing

AMG: Alert Management Gateway

20210911做了一次AMG的核心代码分享, 为使用java重写做准备
参与的人主要是OSS组同事

AMG本质上, 是仿照Pagerduty做的

AMG做的几件事

接收告警
建任务, 跟踪进度
告警通知

代码入口

SOURCE TRIGGER_WAY PURPOSE CODE_ENTRY
阿里云监控.指标 MQ 告警触发/再次触发 script/polling.rb
阿里云监控.站点 MQ 告警触发 script/polling.rb
华为云监控 回调 告警触发/再次触发 app/controllers/hw_alert_controller.rb
北斗监控 回调 告警触发/再次触发 app/controllers/beidou_alert_controller.rb
北斗监控.事件 回调 告警触发 app/controllers/beidou_alert_controller.rb
AMG 定时任务 告警升级 script/check_alert_escalations.rb
JIRA7 回调 告警认领/处理通知 app/controllers/jira7_controller.rb
手机 回调 手机认领 app/controllers/incidents_controller.rb
腾讯云监控 回调 告警触发/再次触发 app/controllers/tencent_alert_controller.rb

主要功能

FUNCTIONALITY IS_ESSENTIAL CODE_ENTRY
指标告警 Y 回调/定时轮询(script/polling.rb, *_alert_controller.rb)
站点监控告警 Y lib/site_monitor/message_handler.rb
电话告警 Y lib/call_center/*.rb
告警升级 Y script/check_alert_escalations.rb
告警记录 Y lib/jira/*.rb
告警统计 N script/import/*.rb
拓扑监控数据源 N lib/tuopu_source/*.rb
手机认领 N app/controllers/incidents_controller.rb
告警分级 Y lib/alert_message_handler/*.rb
历史原因 Y lib/history_reason/*.rb

架构关系

时序图

最大的函数做了什么?

handler数量 = (阿里云 华为云 腾讯云) x (紧急 重要 次要 提示) = 16+

函数: xxx_handler

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
+ 建 event
+ 建 alert

+ 建 incident
+ 判断 是否去重
+ 建 jira

+ 如果重复 那么返回

+ 判断 是否是再次告警
+ 判断 当前jira任务的状态
+ 拓扑监控数据源
+ 分析历史原因
+ 打电话
+ 告警沉默时间
+ 向Oncall群发消息
+ 向告警订阅者发消息
+ 回调北斗, 通知消息已发送

“代码就是设计文档, 顺便让计算机执行”

函数重构的思路

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
+ 初始化数据
+ 建 event
+ 建 alert
+ 建 incident
+ 判断 是否去重
+ 建 jira

+ 通知
+ (先写: 如果xxx, 那么不通知, 再处理通知的逻辑)
+ 如果告警沉默, 那么不通知
+ 判断 是否是再次告警
+ 判断 当前jira任务的状态
+ 打电话
+ 向Oncall群发消息
+ 向告警订阅者发消息

+ 统计数据
+ 拓扑监控数据源
+ 分析历史原因

sublime-text-handle-trailing-space

Ref: Bind shortcut to command palette command?

  1. 使用 sublime 自带的功能 Trim Trailing White Space (cmd+shift+p -> type in “trim” -> enter)

  2. 安装插件 Highlight Trailing Whitespace

  3. 找出清除最后的空格的命令: sublime -> view -> “show console” -> type in “sublime.log_commands(True)” -> cmd+shift+p -> trim -> enter -> record the command -> setup the keybindings

1
2
// sublime -> preference -> keybindings
{ "keys": ["ctrl+shift+t"], "command": "trim_trailing_white_space" }

custom-omz-plugins

命令行+编辑器 的使用受雷哥影响, 感谢指导. ref: REPO

今天整理了一下常用的git相关的helper-functions, 原本是放在notebook的某个目录里, 每增加一个, 就去 $HOME/.zshrc里source一下

虽然脚本很好用, 但是每次去修改$HOME/.zshrc太蛋疼了

Old way

1
2
3
4
5
source $HOME/Documents/notebook/learn/git/custom_git_scripts.sh
source $HOME/Documents/notebook/learn/git/git.open.web.commit.page.sh
source $HOME/Documents/notebook/learn/git/git-clone-and-cd-into.sh
source $HOME/Documents/notebook/learn/git/git.dfff.enhance.sh
source $HOME/Documents/notebook/learn/git/git.open.repo.in.browser.sh

使用oh-my-zsh的插件功能, 结合github管理这些插件 欢迎拿去用

Better way

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cd $HOME/.oh-my-zsh/custom/plugins/
git init
git add .; git commit -am 'Init';
git remote add origin git@github.com:liijunwei/custom-omz-plugins.git
git push

# Add plugin in $HOME/.zshrc
plugins=(
git
gitfast
zsh_reload
zsh-autosuggestions
git-auto-fetch
demo # hey there
git-ljw # and there
)

source $HOME/.zshrc

And… enjoy your custom functions~

Thought

做正确的事, 找到最佳实践, 并且遵守最佳实践.

Your life will be a lot easier

sublime-text-and-merge

今天购买了sublime+sublime-merge的证书

  • 感受.1 买证书并升级为sublime4后,体验更好了(丢掉了之前8块在淘宝上买的证书…)
  • 感受.2 Sublime Merge对于熟悉命令行操作的我来说,太多功能是多余的(买之前总想要,买之后才发现是多余的…)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Hello,

Thanks for purchasing a copy of Sublime Text & Merge! Your license key is:

----- BEGIN LICENSE -----
lijunwei
Single User License
XXXX-XXXXXXX-XXXXXXX
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
------ END LICENSE ------
Entering the license details:

1. Open Sublime Text & Merge, and select Help/Enter License from the menu.
2. Copy the license above (including the BEGIN LICENSE and END LICENSE lines) and paste them into the license box.
3. Press the Use License button and Sublime Text & Merge will enter into licensed mode.

Please find your invoice attached to this email.

Regards,

Sales
SUBLIME HQ PTY LTD