Jenkins 全局变量参考

docker The docker variable offers convenient access to Docker-related functions from a Pipeline script.Methods needing a slave will implicitly run a node {…} block if you have not wrapped them in one. It is a good idea to enclose a block of steps which should all run on the same node in such a block yourself. (If using a Swarm server, or any other specific Docker server, this probably does not matter, but if you are using the default server on localhost it likely will.)Some methods return instances of auxiliary classes which serve as holders for an ID and which have their own methods and properties. Methods taking a body return any value returned by the body itself. Some method parameters are optional and are enclosed with []. Reference: ...

2019-08-06 13:48:59 · 8 min · Eddie Wang

【笔记】操作系统:虚拟化 并发 持久化

虚拟化 问题: 操作系统如何虚拟化? 虚拟化有什么好处? 操作系统向下控制硬件,向上提供API给应用程序调用。 系统的资源是有限的,应用程序都需要资源才能正常运行,所以操作系统也要负责资源的分配和协调。通常计算机有以下的资源。 cpu 内存 磁盘 网络 有些资源可以轮流使用,而有些资源只能被独占使用。

2019-08-01 13:20:13 · 1 min · Eddie Wang

问题排查方法论

处理问题的关键在于收集数据,基于数据找出触发条件。 1. 处理步骤 收集信息并记录:包括日志,截图,抓包,客户反馈等等。注意:原始数据非常重要,如果不记录下来,有可能再也无法去重现。 分析数据:注意:分析数据不要有提前的结果倾向,否者只会找有利于该倾向的证据。 给出报告和建议,以及解决方案,并记录存档 2. 概率维度 问题出现的概率,是一个非常重要的指标,需要提前明确 必然出现:在某个条件下,问题必然出现 注意:必然出现的问题,也可能是小范围内的必然,放到大范围内,就不是必然出现。 偶然出现:问题出现有一定的概率性 注意:问题偶然出现也并不一定说明问题是偶然的,有可能因为没有找到唯一确定的触发条件,导致问题看起来是偶然的。 3. 特征维度 时间特征:集中于某一段时间产生 地理特征:集中于某一片区域产生 人群特征:集中于某几个人产生 设备特征:集中于某些电脑或者客户端

2019-08-01 08:20:34 · 1 min · Eddie Wang

解决问题的思维模式

问题分为两种,一种是搜索引擎能够找到答案的,另一种是搜索引擎找不到答案的。 按照80-20原则,前者估计能占到80%,而后者能占到20%。 1 搜索引擎的使用 1.1 如何让搜索引擎更加理解你? 如果你能理解搜索引擎,那么搜索引擎会更加理解你。 搜索引擎是基于关键词去搜索的,所以尽量给搜索引擎关键词,而不是大段的报错 关键词的顺序很重要,把重要的关键词放在靠前的位置 1.2 如何提炼关键词? 1.3 不错的所搜引擎推荐? 2 当搜索引擎无法解决时? 当搜索引擎无法解决时,可以从哪些方面思考? 拼写或者格式等错误 上下文不理解,语境不清晰,断章取义

2019-07-30 20:16:39 · 1 min · Eddie Wang

现代诗 五首 摘抄

梦与诗 胡适 醉过才知酒浓爱过才知情重你不能做我的诗正如我不能做你的梦 情歌 刘半农天上飘着些微云地上吹着些微风啊!微风吹动了我的头发教我如何不想她? 沙扬娜拉 赠日本女郎 徐志摩最是那一低头的温柔像一朵水莲花不胜凉风的娇羞道一声珍重道一声珍重那一声珍重里有蜜甜的忧愁沙扬娜拉! ...

2019-07-29 22:20:59 · 1 min · Eddie Wang

ghost博客 固定feature博客

Docker ghost 安装 docker run -d --name myghost -p 8090:2368 -e url=http://172.16.200.228:8090/ \ -v /root/volumes/ghost:/var/lib/ghost/content ghost 模板修改 参考 https://www.ghostforbeginners.com/move-featured-posts-to-the-top-of-your-blog/

2019-07-22 17:30:35 · 1 min · Eddie Wang

MySql学习

表复制 # 不跨数据库 insert into subscriber_copy(id, username) select id, username from subscriber # 跨数据库 需要在表名前加上数据库名 insert into wdd.test(id, username) select id, username from opensips.subscriber 调整表结构 增加字段 ALTER TABLE test ADD `username` char(64) not null default '' 随机选择一个数据 SELECT name FROM table_name order by rand() limit 1

2019-07-16 21:15:53 · 1 min · Eddie Wang

无题 再读唐诗宋词

【少年】慈母手中线,游子身上衣【毕业】浔阳江头夜送客,枫叶荻花秋瑟瑟【实习】千呼万唤始出来,犹抱琵琶半遮面【工作加班】衣带渐宽终不悔,为伊消得人憔悴【同学结婚】昔别君未婚,儿女忽成行【表白】欲得周郎顾,时时误拂弦【恋爱】在天愿作比翼鸟,在地愿为连理枝【分手】别有幽愁暗恨生,此时无声胜有声【春节回家】近乡情更怯,不敢问来人【车站遇友】马上相逢无纸笔,凭君传语报平安【外婆去世】洛阳亲友如相问,一片冰心在玉壶【节后会沪】两岸猿声啼不住,动车已过万重山【情人节】天阶夜色凉如水,坐看牵牛织女星【重游南京】浮云一别后,流水十年间【秦淮灯会】云想衣裳花想容,春风拂槛露华浓

2019-07-15 21:20:08 · 1 min · Eddie Wang

从千与千寻谈编程风格

汤婆婆给千寻签订了契约,之后千寻的名字被抹去了,每个人都叫千寻小千,甚至千寻自己,也忘记了自己原来的名字。 但是只有白先生告诫千寻,一定要记住自己的名字,否则再也无法回到原来的世界。而白先生自己,就是那个已经无法回到原来世界的人。 最重要的是记住自己的名字 名字要有意义 不要使用缩写,缩写会让你忘记自己的原来的名字 没有工作的人,会变成妖怪的 没有用的变量,会变成垃圾 别吃得太胖,会被杀掉的 别占用太多内存,会被操作系统给杀掉的

2019-07-15 21:06:47 · 1 min · Eddie Wang

如何维护老代码?

Photo by Blair Fraser on Unsplash 从头开发一个软件只是小儿科,改进一个程序才显真本事。《若为自由故 自由软件之父理查德·斯托曼传》 每个人都有从零开发软件的处女情结,但是事实上我们大多数时候都在维护别人的代码。 所以,别人写的代码如何糟糕,你再抱怨也是无意义的。 从内心中问自己,你究竟是在抱怨别人,还是不敢面对自己脆弱的内心。 老代码的意义 廉颇老矣,尚能饭否。 老代码的有很多缺点,如难以维护,逻辑混乱。但是老代码有唯一的好处,就是老代码经过生产环境的洗礼。这至少能证明老代码能够稳定运行,不出问题。 东西,如果不出问题,就不要动它。 老代码可能存在哪些问题 老代码的问题,就是我们重构的点。首先我们要明确,老代码中有哪些问题。 模块性不强,重复代码太多 逻辑混乱,业务逻辑和框架逻辑混杂 注释混乱:特别要小心,很多老代码中的注释都可能不知道祖传多少代了。如果你要按着注释去理解,很可能南辕北辙,走火入魔。按照代码的执行去理解业务逻辑,而不是按照注释。 配置性的硬代码和业务逻辑混杂,这个是需要在后期抽离的 如果你无法理解,请勿重构 带着respect, 也带着质疑,阅读并理解老代码。取其精华,去其糟粕。如果你还不理解老代码,就别急着重构它,让子弹飞一会。 等自己能够理解老代码时,再去重构。我相信在理解基础上重构,会更快,也更安全。 不要大段改写,要见缝插针 不要在老代码中直接写自己的代码,应该使用函数。 在老代码中改动一行,调用自己写的函数。 几乎每种语言中都有函数这种组织代码的形式,通过见缝插针调用函数的方式。能够尽量减少老代码的改动,如果出现问题,也比较容易调试。

2019-07-15 20:10:13 · 1 min · Eddie Wang