Mac 如何快速录制GiF小视频

在平时的沟通中经常有需要用到分享一个连续的操作等,在很多时候截图不能满足我的需求,录制视频文件的话呢,文件过大,不同平台限制过多是一个很麻烦的视频,所以录制GIF是一个非常好的解决办法,今天给大家推荐两款软件,关于录制GIF和GIF编辑。

录制工具(1) Kap

Kap是一款轻量级开源的GIF录制工具,这意味它是免费简单易用;你可以从官网下载。官网

安装完成,启动Kap,它是以一个圆环的形式显示在状态栏上,所有的界面都在这里,你可以点击红框直接开始录制,点击后你的屏幕上会出现一个虚线框,你可以通过拖动四角调整大小。

确定好录制范围之后,这时你发现Kap上红色录制按钮一个变成一个红色实心圆,再次单击即可开始录制。

在你操作完成之后,再次单击,即可结束录制。

录制工具(2) MacApp:QuickTime Player

以上管理Kap的使用GIF录制我是用过Mac自带的QuickTime Player录制,教程可以直接看 @JasonZone 的教程 链接

GIF编辑

在@JasonZone 最后使用的是一个网站进行了从mov转换为gif格式的操作,这里推荐一个Mac应用 Video to Gif Maker,可以批量进行多个GIF文件转换,也支持在GIF增加文字或图片,这很实用。

MacTips 单独设置程序语言

Mac 上系统语言设置成英文查看起来是最舒适的,所以我很早就将系统语言改成英文,但是在自身英语水平有限,应对基本的单词没有问题,但是在查看例如Word、PowerPoint这类应用时,有大量的选项大脑转化速度较慢,影响工作效率,所以有时在做PPT时,不得已要将系统切换到中文,这对我来说是一件很麻烦的事情,但是今天在网上找到一个帖子原文,其实一个命令就可以搞定我的问题,修改某一软件的默认语言。

Command
1
defaults write '{AppName}' AppleLanguages '("Your choose language")'

这不会影响到我们其他软件的使用。

Tips:

我在一次切换Outlook语言时使用上面的命令不能生效,经过研究稍微改造了一下命令:

1
defaults write com.microsoft.Outlook AppleLanguages -array zh
例子
  1. 修改Microsoft Office Applocation.
1
defaults write com.microsoft.Word AppleLanguages '("zh-CN")'
1
defaults write com.microsoft.Excel AppleLanguages '("zh-CN")'
1
defaults write com.microsoft.Powerpoint AppleLanguages '("zh-CN")'
  1. Mac 自带地图应

Mac 自带地图非常的好用,但是中文会更适合我们的查看和标记

1
defaults write com.apple.Maps AppleLanguages '("zh-CN")'

Tip:如果不知道程序名称时,可以在com.使用三次Tab键来查找程序名称.

结语

如上操作,仅适合本身支持中英文的应用程序,如果程序本身不带有中文或者英文是无法使用的,当然有些应用也内置了语言切换按钮,可以优先使用程序自带的设置选项。

去除设置

ok,在我们增加了特定程序语言环境之后,如果手动切换系统语言之后,已设置的程序语言环境仍保留我们的手动设置情境,如若不需要,可以采用以下命令去除。

1
defaults delete '{AppName}' AppleLanguages

Jmeter(一):使用BlazeMeter为Jmeter录制脚本

之前一直使用阿里云的PTS服务作为测试,但是今天发现阿里云的PTS服务正在升级无法使用,所以打算用Jmeter来做压力测试,并使用Chrome插件BlazeMeter来录制.jmx脚本。

安装BlazeMeter插件

插件安装 , 需要能登录到Chrome应用商店,如果不能登录的话,可以在网上搜索下载crx包,手动加载到Chrome中即可。

安装成功之后,在Chrome插件栏可以看到程序入口,

BlazeMeter限制需要登录才能导出jmx脚本,所以首先需要注册账号。成功登陆后,完整界面如图所示:

录制过程

填写测试脚本名称后,点击开始录制,执行一系列操作后,点停止录制,然后到处jmx文件到本地。

导入脚本到Jmeter

在Jmeter中”File-Open”导入你jmx脚本,为了方便观察结果,我们需要增加一些察看报告。

聚合报告(Aggregate Report)

我们可以在聚合报告中一些非常有用的信息,这有助于对性能测试的分析。

  • Samples : 一共完成了多少事务
  • Averge : 平均响应时间
  • Median : 统计意义上的响应时间的中值
  • 90% Line :90%的事务响应时间都小于xx ms
  • Min :最小响应时间 ms
  • Max : 最大响应时间 ms
  • Eror % : 出错率
  • Throughput : 吞吐量,事务/秒
  • KB/sec : 用流量来衡量的吞吐量

吞吐量=完成的事务数/完成这些事务数所需要的时间;

平均响应时间=所有响应时间的总和/完成的事务数;

失败率=失败的个数/事务数。

查看结果树(View Results Tree)

通过查看结果树,可以看到每个事务的返回结果,其中红色是出错,绿色则为正常。建议在测试开始前将log/Display Only中Errors打上勾即可,不然会输出很多东西,不方便查看。

How to install MariaDB 10.1 on CentOS 7.x

CentOS 7.x 默认的MariaDB版本是5.5,但是在有些情况我们需要用到10版本,注意MariaDB与MySQL版本是不一样的,下面简单降下如何快速安装MariaDB10.1 到CentOS 7.x.

创建MariaDB 10.1的Yum源

1
2
3
4
5
6
7
8
9
cat <<EOF | sudo tee -a /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.1 CentOS repository list
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

注意MariaDB会随着时间的推移版本不断更新,你可以到repo仓库获取对应版本链接

使用Yum安装MariaDB 10.1 即可

1
sudo yum install MariaDB-server MariaDB-client -y

启动MariaDB并设置为开机自启动

1
2
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

初始化MariaDB设置

1
2
3
4
5
6
7
8
9
10
11
12
sudo /usr/bin/mysql_secure_installation

# 回答以下问题,请记住你的数据库root用户密码:

Enter current password for root (enter for none): 回车
Set root password? [Y/n]: Y
New password: 你要设置的数据库root密码
Re-enter new password: 你要设置的数据库root密码
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

Git 使用规范流程

团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。下图是比较常规的Git使用规范流程,这能适合绝大多数团队开发的需求,推荐你们也这样使用。

1. 分支管理

  1. 主分支Master:首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。

  2. 开发分支Develop:主分支只用来分布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。

  3. 临时性分支

    1. 功能分支 : 为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop,功能分支的名字,可以采用feature-*的形式命名。

    2. 预发布分支 : 指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试,预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合并进Develop和Master分支。它的命名,可以采用release-*的形式。

    3. 修补bug分支:软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用fixbug-*的形式

2. 新建分支

Master分支不允许进行开发,所有的开发相关操作都必须基于develop分支.

1
2
3
4
5
# 获取主分支最新代码
git chekcout master

# 新建develop分支进行开发
git checkout -b develop
3. 提交分支

分支修改后,使用commit提交修改。

1
2
3
4
5
# add 所有新增的文件
git add --all

# 提交更新, 每次提交必须写增加的东西和修改内容,保证协同开发是其他看到代码就能知道你做了什么
gti commit -m "first commit"
4. 推送到远程仓库

commit 之后,其实代码还在本地仓库,这时我们需要将本地版本与git远端仓库进行同步

1
2
# 推送到远程develop分支
git push origin develop
5. 合并分支

当代码提交到远端develop分支后,应该让别人进行代码review和测试,确认无误后,合并到Master分支,完成开发。

bypy-百度网盘Python客户端

最近在GitHub上发现一个有趣的项目,百度网盘Python客户端(bypy),主要使用在Linux命令行下,这样很大的一个好处是可以利用到百度云盘2TB的存储空间(如果你是会员有6TB);你可以在任何服务器上,利用自动化脚本实现一些数据文件、日志文件等等备份操作,同时也提供丰富的文件列表、上传、下载、对比、同步以及批量操作等。

虽然百度网盘Python客户端提供很大的便利,但是我强烈不建议将一些重要数据放到百度云盘

实验目的

数据库备份文件自动上传到百度网盘

环境依赖

  • Python 2.7 or 3.0 以上
  • Encoding UTF-8

Python 环境

首先使用python -V检查你的Python版本,如果你的版本是2.7或以上,那么就不需要做任何操作,可以直接安装bypy,但是如果你像我一样多数是CentOS 6.x 那么就需要先升级Python版本。我这里是将Python升级到2.7。

Install Python 2.7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Check current Python version
➜ ~ python -V
Python 2.6.6

# Download python 2.7.13 or new packge.
➜ ~ wget http://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz

# Extract and change in
➜ ~ tar xf Python-2.7.13.tar.xz
➜ ~ cd Python-2.7.13

# Run the configure:
➜ Python-2.7.13 ./configure --prefix=/usr/local

# Compile and install it:
➜ Python-2.7.13 make && make altinstall

# Check Python Version
➜ Python-2.7.13 python2.7 -V
Python 2.7.13

虽然Python2.7已经安装成功了,但是默认的Python仍然是2.6版本,所以我们要替换默认Python命令指到2.7

1
2
3
4
5
# Update bin python to python2.7
➜ ~ ll /usr/bin/python /usr/local/bin/python2.7
➜ ~ ll /usr/bin/python-config /usr/local/bin/python2.7-config
➜ ~ python -V
Python 2.7.13
Can not use Yum ?

因为yum必须要使用Python2.6 ,所以当升级成功之后,发现yum无法使用,这时我们要稍微修改下:

1
2
3
4
5
➜  ~ which-command yum
/usr/bin/yum

#Update frist line "#!/usr/bin/python" to "#!/usr/bin/python2.6"
➜ ~ vim /usr/bin/yum

安装bypy

Install Setuptools & requests
1
2
3
4
5
➜  ~ wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz
tar xf setuptools-1.4.2.tar.gz
➜ ~ python setup.py install

➜ ~ pip2.7 install requests
Clone & Install
1
2
3
➜  ~ git clone https://github.com/houtianze/bypy.git
➜ ~ cd bypy
➜ bypy git:(master) python setup.py install

如果安装失败,注意看报错,是否缺少Python依赖包,或者版本不对

基本操作

在成功安装完成之后,以下需要注意:

授权

首次安装之后,需要进行授权,只需要运行任何一个命令都可以,例如bypy info,然后根据提示,打开网页登录你的百度网盘账号,取得授权码,即可。

复制上图中的链接到你的浏览器中,打开可以看到百度API授权页面,如下图,将授权码粘贴到命令行,然后回车等待验证通过即可。

然后再次运行命令时,就不需要进行身份验证了

1
2
3
[root@localhost bypy]# bypy info
Quota: 6.103TB
Used: 180.074GB

你可以看到我的百度网盘有6.103TB的空间,已经使用了180.074GB

常用操作

由于百度PCS API权限限制,程序只能存取百度云端/apps/bypy目录下面的文件和目录。通过以下链接可以打开你的bypy默认路径:

https://pan.baidu.com/disk/home#list/vmode=list&path=%2Fapps%2Fbypy

查看

我在百度网盘内增加了一个v6的文件夹,对应我服务器名称,这是我在服务器内利用命令即可看到。

1
2
3
[root@localhost bypy]# bypy list
/apps/bypy ($t $f $s $m $d):
D v6 0 2017-06-02, 10:28:41
创建文件夹
1
2
3
4
[root@localhost ~]# bypy mkdir v6/bypy
[root@localhost ~]# bypy list v6
/apps/bypy/v6 ($t $f $s $m $d):
D bypy 0 2017-06-02, 10:35:53
上传
1
2
3
4
5
6
[root@localhost ~]# bypy upload bypy.tgz
[root@localhost ~]# bypy list
/apps/bypy ($t $f $s $m $d):
D v6 0 2017-06-02, 10:28:41
D v6_1 0 2017-06-02, 10:34:52
F bypy.tgz 2867963 2017-06-02, 10:37:30 aa4160cdbf2f4eca9baf0fcd395241fe
本地同步到百度网盘

使用syncup参数将本地目录文件同步到百度网盘

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
[root@localhost ~]# bypy syncup ./bypy v6/bypy
[root@localhost ~]# bypy list v6/bypy
/apps/bypy/v6/bypy ($t $f $s $m $d):
D .git 0 2017-06-02, 10:45:31
D baidudoc 0 2017-06-02, 10:44:50
D build 0 2017-06-02, 10:45:11
D bypy 0 2017-06-02, 10:45:54
D bypy.egg-info 0 2017-06-02, 10:45:00
D dist 0 2017-06-02, 10:44:54
D update 0 2017-06-02, 10:45:08
F .editorconfig 277 2017-06-02, 10:45:08 d9f71b00f908626ae68da571ca47cbe2
F .gitignore 484 2017-06-02, 10:45:00 833d8511a69044a1f1c6e0fe4b3c3117
F .travis.yml 628 2017-06-02, 10:44:58 9f377251309ced0a55548c18896ebd7a
F CONTRIBUTING.md 683 2017-06-02, 10:44:52 f5e8a568937039e5853613ff0fe296ee
F genrst.py 129 2017-06-02, 10:45:30 4565eddf226c2e8bed73d2c30dfae9f3
F HISTORY.md 2542 2017-06-02, 10:45:11 16605670a55a3dd9768d4c862543eac4
F HISTORY.rst 2639 2017-06-02, 10:44:57 7215fbd0a3be667fd7f9fda14f06c1a9
F LICENSE 1078 2017-06-02, 10:44:59 ebd1a0c53ea3046f505b995629faf8fb
F MANIFEST.in 116 2017-06-02, 10:44:50 c98e18e65329b318f13abd031a4397c4
F README.md 6276 2017-06-02, 10:46:15 d4b88fd543d93c6b63863d28f5c4e716
F release.sh 1795 2017-06-02, 10:45:53 c086eb283e9554bbcd23daf0888e2819
F requirements.txt 42 2017-06-02, 10:44:54 28b314f2f2d2ed79957a7a7e6d3f7c17
F setup.cfg 70 2017-06-02, 10:45:11 b23579970dcedbcaeaaa00636d601335
F setup.py 2377 2017-06-02, 10:44:58 34d63d5143ab02d3db7808321a7f9df4
[root@localhost ~]# bypy syncup ./bypy v6/bypy
[root@localhost ~]#
搜索

bypy 同样支持搜索,根据文件名检索,自动递归所有目录

1
2
3
[root@localhost ~]# bypy search release.sh
Found:
F /apps/bypy/v6/bypy/release.sh 1795 2017-06-02, 10:45:53 2017-06-02, 10:45:53 c086eb283e9554bbcd23daf0888e2819
比较本地与百度网盘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 先删除本地一个文件
[root@localhost ~]# rm ./bypy/release.sh

# 对比
[root@localhost ~]# bypy compare v6/bypy ./bypy
==== Same files ===
F - MANIFEST.in
... omit ...
F - bypy/monkey.py
F - README.md
==== Different files ===
==== Local only ====
==== Remote only ====
F - release.sh

Statistics:
--------------------------------
Same: 131
Different: 0
Local only: 0
Remote only: 1

通过以上可以看到,相同文件131,远程目录多了一个文件。

其他

bypy支持的操作很多,使用bypy help即可以看到,若要调试,使用以下参数可以打开对应调试信息:

  • 运行时添加-v参数,会显示进度详情。
  • 运行时添加-d,会显示一些调试信息。
  • 运行时添加-ddd,还会会显示HTTP通讯信息(警告:非常多

数据库备份自动上传到百度网盘

之前也写过很多关于Mysql备份的文章,如果要详细查看,请打开以下链接:分类MySQL

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# create back script.
[root@localhost ~]# touch mysql_back.sh

# add executable permissions
[root@localhost ~]# chmod +x mysql_back.sh

[root@localhost ~]# vim mysql_back.sh
#!/bin/bash
#
# backup mysqldump file to baidu yunPan
# filepath: /usr/local/bin/mysql_back.sh
# Author: samzong
#

function upload_file(){
TIME=`date "+%Y%m%d%H%M%S"`
folder="/mysqlbak"
filename="db_$TIME.sql"
filePath=$folder/$filename

if [ ! -f $filePath ]; then
echo "[ERROR]["`date +%Y-%m-%d' '%H:%M:%S`"] $folder/$filename not found."
else
echo "[INFO]["`date +%Y-%m-%d' '%H:%M:%S`"] $folder/$filename has been found. Start uploading ......"
bypy upload "$filePath" "v6/mysql_backup/$filename"
echo "[INFO]["`date +%Y-%m-%d' '%H:%M:%S`"] Uploading end."
fi
}

# set TIME variable
TIME=`date "+%Y%m%d%H%M%S"`

# backup db ghost to /mysqlbak/
mysqldump --single-transaction -h localhost -u ghost_backuser -pbackupPass ghost > /mysqlbak/db_$TIME.sql

# tar sql file
tar czvf /mysqlbak/ghost_$TIME.sql.tgz /mysqlbak/ghost_$TIME.sql --remove-files

# upload sql file to baidu yunPan.
upload_file;

# send mial to admin'mial
if [ $? -eq 0 ]; then
echo "ghost SQL dump is successfully. At time: `date` " | mail -s ghost-dump-successfully samzong.lu@gmail.com
else
echo " Error Error ghost SQL dump is Error. At time: `date` " | mail -s ghost-dump-error samzong.lu@gmail.com
fi

添加计划任务

1
2
 ~ crontab -e
00 00 * * * sh /usr/local/bin/mysql_back.sh

使用国内pypi源加速pip安装

在解决将AWS Cloudwatch的监控信息展示在Zabbix上时,需要安装AWS的一个python 工具包boto3,但是在安装过程中,碰到了如上图的错误信息;问题是由于国内网络问题导致连接python库超时,所以将库改为国内

国内pypi源站点

Windows 修改

编辑 %HOMEPATH%\pip\pip.ini

1
2
[global]
index-url = http://pypi.douban.com/simple

Linux 修改

编辑 ~/.pip/pip.conf , 如果文件不存在,可以先创建

1
2
[global]
index-url = http://pypi.douban.com/simple

修改easy_install 源

编辑 ~/.pydistutils.cfg

1
2
[global]
index-url = http://pypi.douban.com/simple

临时使用

如果你不想修改源,只是临时使用的话,可以在pip安装时使用-i参数临时指定源站点

1
pip -i http://pypi.douban.com/simple install boto3

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×