-
简易遮罩弹窗层+JSON美化
一些后台系统,需要后端人员兼职前端进行一些建议的实现,年后回来针对年前 JSON 字符串的展示做了小小改动,特此记录。样式文件如下:/*定义表格边框*/table,tr,th, td { border: 1px solid;}thead th { background-color: green;}/*遮罩层样式*/.shadow{ position:fixed; z-index:998;/*定义层级*/ width:100%; height:100%; ...…
-
Shell 中检查某个命令是否存在
本文仅为参考文章的学习笔记记录。在 Linux 中,我们想检查某个命令是否存在,往往会使用:which、type、hash、command 进行查看。若存在对应命令则会返回命令路径信息且 $? 返回零值,若不存在则 $? 返回非零值且显示错误行。以下命令的展示效果是在 Ubuntu 系统下进行实验得到,不同发行版对于输出信息可能会不一致,但 $? 返回值绝大部分都是一致的。 which 命令的作用是在 PATH 变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。 ...…
-
Expect 实现SSH自动化登录
Expect 能做什么?Expect 是由 Don Libes 基于 Tcl(Tool Command Language) 脚本语言编写的一个扩展,常被用来处理程序的自动交互。如:SSH 的自动登录、FTP 登录下载、passwd 修改密码…等类似需要人机交互的场景,都可以用 Expect 来实现自动化处理。详情可阅读 Expect - Wikipedia 和 Expect - Linux man page。Tcl(Tool Command Language) 作为一个可跨平台的胶水脚本语...…
-
Git Hooks 配置
客户端钩子 pre-commitpre-commit 钩子属于客户端钩子,当用户在本地键入提交信息前运行(即:执行 git commit 的真正操作之前被触发),可用于检查即将提交的快照。如:检查代码格式、触发代码质量检测。如果 pre-commit 钩子以非 0 值退出,那么 Git 也将放弃本次的 Commit 操作。可以使用 git commit --no-verify#!/bin/sh# 定义受保护的分支的表达式protected_branch='master|dev|featur...…
-
Git commit 提交规范-约定式提交
为什么要约定式提交?在团队里进行代码协作,一旦人员离职要自己顶上维护代码时,很多时候需要依靠搜索代码关键词或Git提交日志的方式来定位代码或改动。奈何,经常有同事使用 ff、tt、一连 30 几个的bugfix提交信息且无具体内容,甚至有部分同事更是使用 Emoji 表情来书写提交信息,导致 git commit log 一片混乱。大家约定好提交日志信息的规范(就像语义化版本 Semver一样),好处很多,就如阮一峰老师的文章《Commit message 和 Change log 编写指...…
-
pre-commit hooks 引起的 GIT_DIR 下 COMMITMESSAGE 提交失败
背景最近在研究 git hooks 实现代码质量检测,并能否结合 git worktree 的方式实现目前测试环境的多分支环境的全量包部署。在 pre-commit 这个 hooks 脚本最后,我增加了自动检测 *.go 文件,使用 gofmt 自动格式化的脚步,然后今天突然发现 git commit 不了了。用命令行执行 git commit -m "message" 没有任何报错,但是用 GUI 工具提交的时候报了下面这个错误出来。排查一开始给整懵了,考虑到 Fork 是 GUI 工具...…
-
Go语言-程序流程控制
程序流程控制又叫做程序执行顺序。编程思想的体现就是程序流程控制的使用体现。所有的编程语言都主要有三大流程控制语句: 顺序控制 分支/条件控制 循环控制语句且各个控制流程之间可相互嵌套。事先需要注意以下几点: 流程控制语句:Go 编译器对 { 的位置有严格的要求。 单分支条件判断语句:if <condition> { //body },{ 必须跟 <condition> 同一行 多分支条件判断语句:if <condition&...…
-
Go语言-常量和枚举的使用
常量定义的注意事项 使用 const 关键字来进行命名 变量名、函数名、常量名:采用驼峰法 同一命名空间下,函数和常量不能重复定义使用 常量的数据类型只能是:boolean、rune、integer、float、complex、string Golang 语言中常量的命名规范并不像其他语言一样要求全部大写 若:变量名、函数名首字母大写,则可以被其他的包访问;如果首字母小写,则只能在本包中使用 可以理解为:首字母大写是公开-public。如:const Vers...…
-
Go语言-变量
Go 语言编程需知!!!!Go设计者的思想:一个问题尽量只有一个解决方法 【错误】package main 声明文件所属包的时候,包名main是不需要用双引号括起来的,括起来会报错 【错误】Golang 中字符串需要使用双引号括起来而不能使用单引号(单引号括起来的是单字符) 【错误】Golang 中花括弧 { 是不能单独成行的,且花括弧需要成对存在 【警告】Golang 中不需要在语句后方加分号;进行显示标注该语句结束 【错误】Go 语言中定义的变量或 import 的包在程序中...…
-
CSS 定义 border 样式
一条波浪线,难倒一个后端汉。今天要写一点前端样式,结果发现 HTML 的 border-style 只能订制:node - 无边框 、 solid - 实线、 double - 双实线、 dotted - 点虚线 、 dashed - 虚线。如何实现一个双虚线、波浪线的边框呢?查找研究了一番,记录一下。双虚线双虚线的样式比较好实现,样式代码如下:/*双虚线*/.border-double-dashed { border-top:2px dashed #000; border-botto...…
-
【转载】 VIM 教程
发现 vimtutor 的中文版没有线上阅读版本,因此将 vimtutor 导出记录一次。基本跟着操作一次就能掌握 vim/vi 的基本用法了。欢 迎 阅 读 《 VIM 教 程 》 —— 版 本 1.7Vim 是一个具有很多命令的功能非常强大的编辑器。限于篇幅,在本教程当中就不详细介绍了。本教程的设计目标是讲述一些必要的基本命令,而掌握好这些命令,您就能够很容易地将 Vim 当作一个通用编辑器来使用了。完成本教程的内容大约需要25-30分钟,取决于您训练的时间。注意: 每一节的命令操...…
-
如何查看出口IP?
想查询自己的出口 IP 是多少,之前都是通过访问 IP138.com 和 IP.cn 的方式来得到出口 IP。今天碰到同事在问出口IP的问题,想了一下:命令行下如何查看自己的出口 IP (公网IP)呢?在验证网上查阅的方法时,也遇到了一点小问题:之前一直用上述两个地址进行查询出口 IP,但是却没有仔细对比过,今天仔细一对比,居然发现两个站点给出的结果不一样。问了公司的运维同事得到了解惑,遂记录于此。总结: 同一个 WiFi 连接多台电脑,其出口 IP 不一定一样 同一个网络环境访问不同...…
-
错误:1251- Client does not support authentication protocol requested by server;consider upgrading Mysql client。
在腾讯云上购买了服务器,搭建了一些服务平时自己玩玩。开了一个 MySQL 用户给同学,自己测试过登录、建表等都没有问题,结果她使用 Navicat 登录的时候报错:1251- Client does not support authentication protocol requested by server;consider upgrading Mysql client。这里稍微记录一下问题原因、解决方法创建用户并授权-- 创建数据库CREATE DATABASE <databas...…
-
为什么Navicat行数和表实际行数不一致?
前天下班的时候将 130w+ 条数据导入到本地数据库中,第二天早上回来一看提示已经执行完毕。我通过 Navicat 打卡表查看数据,偶然瞟见 Navicat 的行数记录居然只是显示 2W+ 行。吓了我一跳,难道中途中断了?没全部导入成功?随即打开表 COUNT 查了一下表发现表数据确实是导入成功了的。那么为什么 Navicat 的行数记录居然只是显示 2W+ 行呢?按理来说 Navicat 只是显示 MySQL 的表信息而已,所以先翻查了 MySQL 的手册找了一下答案,确实是如此。MyS...…
-
MySQL 数据库中查询表是否被锁
由于线上数据库有一个字段类型太小,导致数据溢出产生了线上 bug。现需将 days 字段由 tinyint(3) 类型变更为 smallint(5)。变更数据库要考虑该操作是否会发生锁表操作?发生了锁表对当前业务是否会有致命影响?查阅了一下网上的资料,发现 5.6.11 之后 alter 操作“大部分”都是不会锁表了。因此,我想确认一下:我要执行的 SQL 到底是否会锁表呢?在网上翻阅了很久的资料,这里记录一下结果。1、确认表是否在被使用show open tables where in_...…
-
6月跑步闲谈
临近年中,身边的小伙伴都忙碌了起来。加班的多了,活跃的少了,时间也慢慢开始不太够用了。从三月中旬开始,在 Keep 上开启了跑步。没有啥目的的跑,就是单纯的跑步,必须要 5公里/周。今天终于跑够了 100+ 公里。其实每周 5 公里是一个很低很低的目标了,但前两周真是每天加班,晚上坐公交又需要等很久才有车,所以回到家已经 10 点左右,然后休息一下跑个步收拾完基本就 12 点多了,所以时间慢慢紧凑了起来。每天都会被夏日的晨光叫醒,然后起来发呆也好,看看书也好,或者起来洗漱完再回去赖一下床都...…
-
容器:我是谁?
Linux 中我们可以使用 whoami 或 id 命令进行查询打印当前用户的信息。今天在容器的技术群里,碰到一个群友询问:如何查询自己当前在那个容器中?我们都知道 Docker 在构建镜像时每一层镜像都有一个唯一镜像ID,同样每一个容器实例也都有其自己唯一的容器ID(叫:CONTAINER ID),我们可以有多种方式来确定当前自己的容器,譬如:通过容器ID、容器IP 这些唯一信息进行对比知道自己到底在那一个启动的容器中。想要获取这些信息我们可以通过 docker inspect <...…
-
费曼学习法
美国国家训练实验室曾就『学习内容平均留存率研究』做过一个调查,得出了著名的『学习金字塔』理论。该实验结果把学习分成了被动学习和主动学习,两者的区别在于: 被动学习就是:只有『输入』的学习。比如说听讲、阅读、试听、演示这些方法 主动学习就是:有『输出』的学习。比如说讨论、实践、教授他人 划重点:学习不要听完、看完就完事儿,学习输入完之后还要多输出。有时经常会出现一种情况就是:我感觉自己学懂了,但是别人一要自己表达的时候就嘴瓢说不清楚,这其实就是自己对只是掌握的不扎实导致的。时间一长,这...…
-
How To Cultivate Execution
—layout: posttitle: 对习惯拆解的一些思考date: 2021-05-17tags: [有话明说]—上周在读书会听了『张哥轻聊』里关于执行力的问题,听完之后心里直呼“前辈”,自己尝试摸索了很久的东西,张哥看个书就给总结了出来,而且毫无违和感玩视频号的期间内有一段时间,很多人觉得我精力十足,执行力还可以。说实际,我不觉自己执行力如何好,因为我好像没什么其他的东西是坚持了很久的。从中学到大学期间一直有坚持运动、大学有段时间坚持看书,似乎就没有。仔细一想想,可能也算一个优点吧...…
-
MySQL 中的视图
…