介绍

依赖于ffmpeg,允许传递起始时间、截图间隔、截图数量、视频文件地址等四个参数,其中时间单位为秒。

我在Linux Alpine中使用,可能部分依赖在其它Linux环境中会遇到问题,欢迎评论告知。

示例

1
2
3

sh snapshot.sh 600 800 6 Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265.mkv

你会得到六个文件,文件命名如下:

1
2
3
4
5
6
Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265_frame_001.jpg
Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265_frame_002.jpg
Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265_frame_003.jpg
Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265_frame_004.jpg
Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265_frame_005.jpg
Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265_frame_006.jpg

阅读全文 »

需求点分析

  1. 是否支持多类数据库以及脚本区分?
  2. 如何撤销变更?
  3. 版本是如何管理的?
  4. 费用问题?是否开源?开源协议是什么?
阅读全文 »

现象描述

正常启动服务时,突然遇到栈溢出异常,日志输出内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
java.lang.StackOverflowError: null
at org.springframework.data.util.TypeDiscoverer.createInfo(TypeDiscoverer.java:113) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.TypeDiscoverer.getSuperTypeInformation(TypeDiscoverer.java:443) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.ClassTypeInformation.getSuperTypeInformation(ClassTypeInformation.java:42) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.TypeDiscoverer.getSuperTypeInformation(TypeDiscoverer.java:449) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.ClassTypeInformation.getSuperTypeInformation(ClassTypeInformation.java:42) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.TypeDiscoverer.getSuperTypeInformation(TypeDiscoverer.java:449) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.ClassTypeInformation.getSuperTypeInformation(ClassTypeInformation.java:42) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.TypeDiscoverer.getSuperTypeInformation(TypeDiscoverer.java:449) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.ClassTypeInformation.getSuperTypeInformation(ClassTypeInformation.java:42) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.TypeDiscoverer.getSuperTypeInformation(TypeDiscoverer.java:449) ~[spring-data-commons-2.5.1.jar:2.5.1]
...
阅读全文 »

Windows查看快捷键占用程序

使用openark即可

实际并不是很准确,我就没找到占用Shift+F6的程序是哪个。

解决Windows平台 IDEA Shift+F6 快捷键冲突

实际是因为微软拼音输入法占用了,需要开启兼容模式

参考:微软拼音输入法占用Shift+F6快捷键

这个话题还是很有意思的,银行卡号有点类似于身份证号的设计。

银行卡的卡号长度及结构符合ISO 7812-1 有关规定,由13-19位数字表示,具体由以下几部分组成:

发卡行标识代码 自定义位 校验位
XXXXX X……X X

其中校验位是通过一个名为Luhn的校验算法得出的。

然而实际上一些商业银行不遵守这个规范,所以导致Luhn设计被废弃了,具体可以见这个Github Issue的讨论。

现在更推荐使用一些开放平台提供的API接口来实现,比如支付宝开放平台以及中国银联开放平台

中国银联开放平台有准入门槛,需要先申请,如果只是做银行卡是否有效的验证,不校验对应所有人身份信息的话可以直接用支付宝提供的接口。

接口请求示例:

1
curl "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=银行卡卡号&cardBinCheck=true"

比如我们请求:

1
curl https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=6214832018989180&cardBinCheck=true

我们可以拿到请求结果为:

1
2
3
4
5
6
7
8
{
cardType: "DC",
bank: "CMB",
key: "6214832018989180",
messages: [ ],
validated: true,
stat: "ok"
}

这里需要注意的是支付宝开放平台-文档中心:银行简码——混合渠道这篇文章是2015年所写的,一直也没有更新,只是个局部参考,如果真的要相对稳定的接口,还是建议使用中国银联开放平台。

注:

  1. 支付宝开放平台-文档中心:银行简码——混合渠道这篇文章是2015年所写的,一直也没有更新,只是个局部参考,如果真的要相对稳定的接口,还是建议使用中国银联开放平台;
  2. 支付宝的这个接口其实也支持其他卡组织的卡号校验(境外卡号我没有试过);

本文参考:

oh-my-zsh的Github仓库地址:https://github.com/ohmyzsh/ohmyzsh

安装zsh

oh-my-zsh安装之前必须要先将shell环境切换成zsh

https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH

for centos

1
2
sudo yum update && sudo yum -y install zsh && \
chsh -s $(which zsh)

for debian

1
2
sudo apt install -y zsh && \
chsh -s $(which zsh)

安装 on-my-zsh

1
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

或者

1
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

国内安装特别慢,建议使用魔法

插件安装

zsh-autosuggestions

介绍: 可以根据历史记录提供提示命令
github地址: https://github.com/zsh-users/zsh-autosuggestions
安装教程: https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md

1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
1
plugins=(zsh-autosuggestions)

extract

介绍: 一键解压,不用再去记tar各种命令
github地址: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/extract

不需要安装直接在plugins中增加extract即可

zsh-syntax-highlighting

介绍: 命令高亮提示
github地址: https://github.com/zsh-users/zsh-syntax-highlighting

1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
1
plugins=( [plugins...] zsh-syntax-highlighting)

git-open

介绍:直接在终端界面打开对应仓库的页面信息

1
git clone https://github.com/paulirish/git-open.git $ZSH_CUSTOM/plugins/git-open

主题

powerlevel10k/powerlevel10k

github地址: https://github.com/romkatv/powerlevel10k

1
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k

然后修改.zshrc

1
ZSH_THEME="powerlevel10k/powerlevel10k"
0%